refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게 [공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류. 문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인). - Topic_Programming → Domain_Programming (내부 구조 보존) - Topic_Graphic → Domain_Design - Topic_Business → Domain_Product - Topic_General → Domain_General - _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning), Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing) - 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서) - 빈 폴더 정리 (memory/procedures) - 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
---
|
||||
id: wiki-2026-0508-jailing
|
||||
title: Jailing
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [Player Jailing, Pinning, Lockdown Tactics]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.85
|
||||
verification_status: applied
|
||||
tags: [game-design, pvp, mmo-strategy, war-commander]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: design-pattern
|
||||
framework: pvp-strategy
|
||||
---
|
||||
|
||||
# Jailing
|
||||
|
||||
## 매 한 줄
|
||||
> **"매 victim 의 base 의 around 매 cordon 의 build → 매 movement 의 prevent"**. Jailing 매 PvP MMO strategy 매 attacker 의 victim 의 surrounding tiles 의 occupy 하여 매 base relocation, scouting, alliance reinforcement 의 block. War Commander, Last War, Mobile Strike 매 default war tactic.
|
||||
|
||||
## 매 핵심
|
||||
|
||||
### 매 Mechanics
|
||||
- **Tile occupation**: 매 victim base 의 adjacent grid cells 의 attacker units 의 station.
|
||||
- **Bubble (shield) blocking**: 매 victim 의 peace shield 의 expire 후 매 immediate strike 의 setup.
|
||||
- **Travel time exploit**: 매 march time + tile cooldown 매 victim 의 reaction window 의 close.
|
||||
|
||||
### 매 Tactical Layers
|
||||
- **Solo jailing**: 매 1v1 attacker → defender 의 personal lockdown.
|
||||
- **Coordinated jailing**: 매 alliance-wide cordon, 매 multiple bases 의 simultaneously pin.
|
||||
- **Counter-jail**: 매 jailed player 의 alliance 의 rescue march 의 dispatch.
|
||||
|
||||
### 매 응용
|
||||
1. Pre-event farming — 매 high-value target 의 jail 한 후 매 resource 의 systematically loot.
|
||||
2. War objective — 매 enemy alliance leader 의 jail 매 morale crash 의 induce.
|
||||
3. Bullying/griefing concern — 매 design tension 매 healthy PvP vs toxic harassment.
|
||||
|
||||
## 💻 패턴
|
||||
|
||||
### Tile occupation check
|
||||
```typescript
|
||||
interface Tile { x: number; y: number; occupantId: string | null; }
|
||||
interface Base { ownerId: string; x: number; y: number; }
|
||||
|
||||
function isJailed(base: Base, tiles: Map<string, Tile>): boolean {
|
||||
const adjacent = [
|
||||
[-1, -1], [0, -1], [1, -1],
|
||||
[-1, 0], [1, 0],
|
||||
[-1, 1], [0, 1], [1, 1],
|
||||
];
|
||||
let blocked = 0;
|
||||
for (const [dx, dy] of adjacent) {
|
||||
const key = `${base.x + dx},${base.y + dy}`;
|
||||
const t = tiles.get(key);
|
||||
if (t?.occupantId && t.occupantId !== base.ownerId) blocked++;
|
||||
}
|
||||
return blocked >= 6; // 6/8 surrounding tiles occupied = jailed
|
||||
}
|
||||
```
|
||||
|
||||
### Relocation block validator
|
||||
```typescript
|
||||
function canRelocate(base: Base, tiles: Map<string, Tile>, cooldownMs: number, lastMove: number): Result<Tile> {
|
||||
if (Date.now() - lastMove < cooldownMs) {
|
||||
return { ok: false, error: 'RELOCATE_COOLDOWN' };
|
||||
}
|
||||
if (isJailed(base, tiles)) {
|
||||
return { ok: false, error: 'JAILED_CANNOT_RELOCATE' };
|
||||
}
|
||||
return { ok: true, value: { x: base.x, y: base.y, occupantId: null } };
|
||||
}
|
||||
```
|
||||
|
||||
### Alliance rescue march
|
||||
```typescript
|
||||
async function dispatchRescue(allianceId: string, jailedBaseId: string): Promise<MarchOrder[]> {
|
||||
const members = await getAllianceMembers(allianceId);
|
||||
const target = await getBase(jailedBaseId);
|
||||
return members
|
||||
.filter(m => marchTime(m.base, target) < 30 * MINUTE)
|
||||
.map(m => ({
|
||||
from: m.base,
|
||||
to: pickAdjacentEnemyTile(target),
|
||||
type: 'rally',
|
||||
arrivesAt: Date.now() + marchTime(m.base, target),
|
||||
}));
|
||||
}
|
||||
```
|
||||
|
||||
### Jail timer + escape window
|
||||
```typescript
|
||||
class JailState {
|
||||
jailedAt: number | null = null;
|
||||
consecutiveJailMs = 0;
|
||||
|
||||
tick(now: number, currentlyJailed: boolean) {
|
||||
if (currentlyJailed && this.jailedAt === null) this.jailedAt = now;
|
||||
if (currentlyJailed) this.consecutiveJailMs = now - (this.jailedAt ?? now);
|
||||
if (!currentlyJailed) { this.jailedAt = null; this.consecutiveJailMs = 0; }
|
||||
}
|
||||
|
||||
// Mercy mechanic: 매 24h+ jailing 매 forced teleport
|
||||
shouldForceTeleport(): boolean { return this.consecutiveJailMs > 24 * HOUR; }
|
||||
}
|
||||
```
|
||||
|
||||
### Anti-griefing throttle
|
||||
```typescript
|
||||
function canAttack(attacker: Player, defender: Player): boolean {
|
||||
const power = attacker.power / Math.max(1, defender.power);
|
||||
if (power > 5) return false; // 매 5x power gap 의 block
|
||||
if (defender.daysSinceInstall < 7) return false; // newbie protection
|
||||
return true;
|
||||
}
|
||||
```
|
||||
|
||||
## 매 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| Hardcore PvP MMO (War Commander, Last War) | 매 jailing 의 core mechanic 의 enable |
|
||||
| Casual / mid-core | 매 24h jail cap + auto-teleport 의 mercy |
|
||||
| New player onboarding | 매 first 7 days 의 immune |
|
||||
| Whale-vs-newbie 의 mismatch | 매 power gap throttle 의 enforce |
|
||||
|
||||
**기본값**: 매 jailing 의 enabled 하되 매 mercy timer + power throttle 의 always enforce.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[War Commander]]
|
||||
- 응용: [[Mobile Strike]] · [[Evolution-of-the-War-Commander-Combat-Ecosystem]]
|
||||
- Adjacent: [[Alliances-and-Sector-Hegemony]] · [[Defense-Buildings]] · [[Base-Layouts-and-Kill-Zones]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: Tactical guide drafting, alliance war debrief synthesis, anti-griefing policy copy.
|
||||
**언제 X**: Live combat decisions (latency), legal policy 매 toxic behavior boundary.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Unbounded jailing**: 매 mercy timer 매 absent 매 player churn 의 surge.
|
||||
- **No power throttle**: 매 whale 의 newbie 의 farm 매 acquisition funnel 의 destroy.
|
||||
- **Tile economy 의 absent**: 매 attacker 의 cost 매 zero 매 perpetual lockdown.
|
||||
- **Alliance rescue 의 broken**: 매 cooperative gameplay 매 stripped.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (War Commander community wikis, Mobile Strike PvP guides, MMO strategy literature 2024-2025).
|
||||
- 신뢰도 A-.
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — jailing mechanics, tile occupation, anti-grief throttles |
|
||||
Reference in New Issue
Block a user