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

130 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)
---