BurningTimesAi/공유/대화로그/EerieVillage/2026-05-15.md

130 lines
8.1 KiB
Markdown
Raw Normal View History

# EerieVillage 대화로그 — 2026-05-15
## [BT12-Dev-Clone 1단계 완료] 개발팀장 Opus 직접 설계 (A10 분신 스킬)
**시간**: 2026-05-15 16:56
**주체**: 개발팀장 (`dev-team-lead`)
**Task ID**: PM 매니페스트 `BT12_Dev_Clone_A10_2026-05-15_2200` (4 target_files)
**C49 표준 프로세스 시범**: 1단계 (개발팀장 Opus 설계) → 2단계 (클라이언트팀 Sonnet 구현) → 3단계 (개발팀장 Opus 검증)
### 결정·근거·영향 (C32 의무 3요소)
**결정**: A10 분신 스킬 구조 = (나) `CloneInstance` 단일 MonoBehaviour + Player Inventory hook + 0.5초 지연 큐 + `IsCloneFireActive` 분기.
**근거**:
1. PD 명세 5항목 (위치 facing 반대 1유닛·반투명 alpha 0.5·동일 스킬·50% 반감·0.5초 딜레이) 전수 충족
2. v0.4 CSV A10 행 "분신 1기·동일 패턴 모방·공격력 비율 감소·무적" 정합
3. C11 자원 효율 — MonoBehaviour 1기·Singleton (별도 Inventory mirror 부재)
4. C11 코드 직관성 — "Player Fire 0.5초 뒤 분신 위치에서 동일 Effector + 50% damage" 단 1줄 멘탈 모델
5. 옵션 (가) 별도 GameObject + Inventory mirror = 코드 중복 (장착·Lv·각성 2중 동기화 부담) → 기각
6. 옵션 (다) Player+Clone 2회 동시 발동 = PD 명세 5번 "0.5초 뒤" 직접 위반 → 기각
**영향**:
- 기존 시스템 영향 최소 — `PlayerSkillInventory`에 4필드 + 1이벤트 추가, `ActiveSkillRuntime.Fire()` 1줄, `CalculateEffectiveDamage()` 1줄, `SkillFireEvent.Execute` Minion case CardId 분기, `SkillRuntimeFactory.AvailableCardIds` "A10" 추가
- 6개 Effector (Projectile·MeleeArea·LightningStrike·Laser·PoisonSwamp·SpiritFire) 영역 `IsCloneFireActive` 분기 일관 추가 (spawn 위치·facing) — 약 18줄
- BT12-Dev-Vis 진행 13 스킬 정상 동작 보장 (분신 hook이 Player 발동 영향 X — `IsCloneFireActive == false` 조건)
- Lv 업·각성 영향 X (분신 자체 Lv 업 X — Player Lv 업 시 분신 발동 damage 자동 갱신)
### 기각안 5건 (C32 의무 — 결정 엔트리 기각안 필드)
1. **별도 GameObject + 자체 `PlayerSkillInventory` mirror** — 코드 중복·동기화 부담
2. **Effector 한 번 호출 시 Player+Clone 2회 발동 (분신 = sprite만)** — PD 명세 0.5초 딜레이 위반
3. **`PlayerSkillInventory.transform.position` swap (1 frame)** — Camera·HUD·다른 컴포넌트 transform 참조 부작용 위험
4. **분신 lifetime 8초 (A11 동등)** — v0.4 CSV "분신 1기" + "긴 주기" 의미 무너짐
5. **분신 facing이 Player와 독립 (적 방향 자체 추적)** — "동일 패턴 모방" v0.4 CSV 정합 X·분신 = 독립 actor 의미 회귀
### 산출물
- `프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md` §A10 신설 (16 sub-section)
- `프로젝트/EerieVillage/개발/spec/스킬_이펙트_확정_v1.md` §3 A10 추가 + §4 변경 이력 갱신
- `공유/PD_지시_트래킹/개발팀_PD_지시_로그.md` BT12-Dev-Clone 행 1단계 완료 표기
### PD 결정 안건 (3단계 검증 시 보고)
1. **BaseCooldown 30** PM 추정 — balance-designer 후속 확정 영역
2. **facing 변경 시 분신 위치 처리** — spawn 시점 고정 vs Player 추종 (PM 1차: Player 자식 부착 + spawn facing 고정)
3. **분신 무적 spec** — collider 미부착 / 적이 분신 위 올라타거나 적 투사체 통과 영역 Play 검증
4. **Lv 업 (분신 수 증가 등) 1차 미반영** — 후속 PD 결정 안건
### 2단계 작업 단위 분해 (Sonnet Task 위임 예정)
**파일 13종**:
| # | 파일 | 작업 |
|---|------|------|
| 1 | `Assets/Scripts/Skills/Effectors/CloneInstance.cs` | 신규 — MonoBehaviour + 0.5초 지연 큐 |
| 2 | `Assets/Scripts/Skills/Effectors/CloneEffector.cs` | 신규 — IEffector 구현 |
| 3 | `Assets/Scripts/Skills/Runtime/PlayerSkillInventory.cs` | 수정 — 4필드 + OnPlayerSkillFired 이벤트 |
| 4 | `Assets/Scripts/Skills/Runtime/ActiveSkillRuntime.cs` | 수정 — Fire() + CalculateEffectiveDamage() |
| 5 | `Assets/Scripts/Skills/Events/SkillFireEvent.cs` | 수정 — Minion CardId 분기 + Cleanup reset |
| 6 | `Assets/Scripts/Skills/Runtime/SkillRuntimeFactory.cs` | 수정 — AvailableCardIds "A10" 추가 |
| 7~12 | 6개 Effector | 수정 — IsCloneFireActive 분기 일관 추가 |
| 13 | `Assets/Resources/Skills/Active/A10_bunsin.asset` | 신규 — A11 동등 패턴 + A10 고유 필드 |
| 14 | `Assets/Tests/Editor/CloneSkillTests.cs` | 신규 — EditMode 7건 |
---
## [BT12-Dev-Clone PD 결정 4건 반영 2026-05-15]
**시각**: 2026-05-15 (1단계 결과 보고 후 PD 응답)
**주체**: PM 직접 SOT 갱신 (C48 시범 — Task 회피)
**영역**: BT12-Dev-Clone 1단계 설계 핵심 영역 변경
**유형**: PD 결정 채택 + SOT 4종 갱신
### PD 결정 4건
| # | PD 명세 | PM 1차 안 | PD 결정 |
|---|---------|----------|---------|
| 1 | BaseCooldown | 30초 | **25초** |
| 2 | lifetime | 영구 1기 (재발동 시 대체) | **12초 자동 소멸 + Singleton 1기** |
| 3 | facing | 고정 (PM 1차) | **고정 확정** |
| 4 | 무적 | Collider 미부착 (PM 1차) | **Collider 미부착 확정** |
| 5 | Lv 업 | 분신 수 X · 1차 미반영 | **분신 수 X · 추후 지속시간↑ + 플레이어 참조 데미지 비율(%)↑** (balance-designer 후속) |
### 핵심 변경 — lifetime 12초 자동 소멸
PM 1차 영구 1기 (Singleton·재발동 시 대체) → PD 결정 **12초 지속 + Singleton 1기**. spawn 시점 `unscaledTime + 12초` 후 자동 destroy. 12초 내 재발동 시 기존 destroy + 새 spawn (Singleton 패턴). BaseCooldown 25초 < lifetime 12초 분신 활성 재발동 자동 갱신.
### SOT 반영 완료 (PM 직접 Edit)
| 파일 | 영역 | 변경 |
|------|------|------|
| `프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md` | §A10-1 | lifetime 12초·BaseCooldown 25·Lv 업 메커니즘 명시 |
| `프로젝트/EerieVillage/개발/spec/스킬_이펙트_확정_v1.md` | §3 A10 | BaseCooldown 25·MinionLifetime 12·PD 결정 4건 주석 |
| `프로젝트/EerieVillage/개발/spec/스킬_이펙트_확정_v1.md` | §4 변경 이력 | PD 결정 4건 행 추가 |
| `공유/PD_지시_트래킹/개발팀_PD_지시_로그.md` | BT12-Dev-Clone 사후 조치 | PD 결정 4건 표기 |
| `공유/대화로그/EerieVillage/2026-05-15.md` | 본 엔트리 | PD 결정 엔트리 |
### 2단계 진행 결정
PM 권고 (b) 4분할 채택 (PD 명시 옵션 결정 X·PM 권고 default 적용). α 분할 진행 대기:
- **α**: `CloneInstance.cs`·`CloneEffector.cs` 신규 2 파일 (코어 컴포넌트)
- **β**: `PlayerSkillInventory`·`ActiveSkillRuntime`·`SkillFireEvent`·`SkillRuntimeFactory` 수정 4
- **γ**: 6 Effector `IsCloneFireActive` 분기 일관 추가
- **δ**: `A10_bunsin.asset` 신규 (BaseCooldown 25·MinionLifetime 12·PD 결정 반영) + `CloneSkillTests.cs` EditMode 7건
### 잔존 정리 영역 (commit 직전 일괄)
설계 v1 §A10 1421·1429·1522·1523·1570 라인 영역 BaseCooldown 30 잔존 표기 → 25 정정. 본 응답 핵심 SOT (§A10-1·§3 A10) 우선 반영·세부 표 영역 후속 일괄 정정 (commit 직전).
### 결정·근거·영향
**결정**: PD 결정 4건 즉시 SOT 반영. 2단계 (b) 4분할 진행 채택.
**근거**: PD 2026-05-15 직접 결정 (= C1).
**영향**:
- lifetime 12초 변경 = 1단계 설계 핵심 영역 변경. CloneInstance Update에 lifetime 타이머 추가 의무 (α 단계 구현 영역)
- Lv 업 메커니즘 명시 = balance-designer 후속 수치 안건 명확화 (지속시간 Lv별 증가량·데미지 비율 Lv별 증가량)
- BaseCooldown 25 < lifetime 12 분신 활성 재발동 갱신 가능 (25초 마다 분신 재spawn)
### 관련 규칙
- C1 (PD 결정 = 승인) · C5 · C22 (PD 도입 용어 보존 — "지속시간"·"분신 수"·"플레이어 참조 데미지 비율(%)") · C25 · C32 · C34-11
- C43 호칭 라우팅 (개발팀 직접 수령)
- **C48 시범** (PM 직접 SOT Edit·Task 회피)
- **C49 1단계 완료** (개발팀장 설계)·2단계 Sonnet/PM 진행 대기
- **C50** (1단계 25K + 2단계 60~80K 4분할 + 3단계 15~20K = 본 BT12-Dev-Clone 총량 100~125K)
---