11 KiB
11 KiB
BT12-Dev-Clone 세션 종결 인수인계 (2026-05-18)
세션 영역: 2026-05-15 ~ 2026-05-18 주 안건: BT12-Dev-Clone — A10 분신 스킬 4단계 완전 구현 + 본 PM 자성 #1~#7 누적 commit 누적: EerieVillage 외부 git 15건 + BT 레포 1건 (
72ee04a) + 본 commit (post-commit)
1. 본 세션 작업 누적
1-A. 세션 초반 (2026-04-24~25 영역 영역 누적 commit)
- BT11-Plan 완료 (
72ee04a) — 60종 카드 컨셉 표 + CSV v0.3 + 캐주얼 명명 - BT12 통합 — C48·C49·C50 신설 + 5종 에이전트 본문 인용 + PD 결정 3건 채택 (안건 1 B 잠정 절충·안건 2 C 병존·안건 3 A PM 직접)
1-B. BT12-Dev-Clone (2026-05-15 ~ 2026-05-18)
PD 직접 지시 (2026-05-15)
"분신 스킬 구현 — 플레이어 x 1 뒤쪽 반투명 분신·동일 스킬·50% 반감·0.5초 딜레이"
PD 결정 4건 (2026-05-15)
| # | PD 결정 |
|---|---|
| 1 | BaseCooldown 25초 (PM 1차 30 → 조정) |
| 2 | MinionLifetime 12초 자동 소멸 + Singleton (영구 1기 → 변경) |
| 3 | facing 고정 |
| 4 | 무적 = Collider 미부착 |
| 5 | Lv 업 시 분신 수 X · 지속시간+데미지 비율(%)↑ (balance 후속) |
C49 표준 프로세스 4단계 — 단계적 진행 + 확인 시점 보고
| 단계 | 작업 | EerieVillage commit |
|---|---|---|
| α | CloneInstance.cs (218 라인) + CloneEffector.cs (24 라인) 신규 | 171506e |
| β | PlayerSkillInventory·ActiveSkillRuntime·SkillFireEvent·SkillRuntimeFactory 수정 (4) | 171506e |
| γ | GetSpawnAnchor·GetSpawnFacing helper + 6 Effector 분기 (Projectile·Laser·MeleeArea·LightningStrike·PoisonSwamp·SpiritFire) | 171506e |
| δ | A10_bunsin.asset + CloneSkillTests.cs EditMode 7건 | 171506e |
컴파일 오류 fix 누적 (본 PM 자성 #1~#5)
| # | 자성 영역 | EerieVillage commit |
|---|---|---|
| 1 | CloneInstance namespace 추정 (Events 부재) |
70c98dd |
| 2 | asmdef autoReferenced 추정 (main reference 자동 X) |
618525d |
| 3 | asmdef 메커니즘 추정 (default assembly 격리) → asmdef 삭제 | 9b955ee |
| 4 | C# event 외부 Invoke() 추정 (CS0070) → RaisePlayerSkillFired 메서드 |
a5fcab0 |
| 5 | Test assembly internal 접근 추정 (CS0117·CS1061) → public |
13b7c36 |
PD 직접 지시 (자성 #5 후) — "MCP로 검증한 후 보고할 수 없어?" → 본 PM 모든 fix 영역 MCP 사전 검증 강제 채택 (refresh_unity·read_console·run_tests·get_test_job).
MCP 검증 통과:
- 컴파일 오류 0
- EditMode CloneSkillTests 7건 전수 green (T01~T07·0.7초)
PD 후속 영역 fix 누적 (2026-05-18)
| # | PD 보고 | EerieVillage commit |
|---|---|---|
| - | 판정 박스 시각화 off | 931d8c9 |
| - | 1번키 영역 A10 매핑 강제 + Minion CardId 분기 | 30b765b |
| - | Player 자식 부착 + Fire 영역 hook + localScale 정합 | bacc76d |
| - | FIRE_DELAY 0.5 → 0.25 (50% 단축) | d603e59 |
| - | 분신 크기 lossyScale 정합 | e9f9d72 |
| - | 분신 이동 방향 flipX 정정 (deltaX 영역) | c3749dd |
| - | worldPos 동조 + SPAWN_OFFSET 1.0 → 0.5 (50% 단축) | 081c771 |
| - | 분신 flipX Player 즉시 동조 (deltaX 폐기·자성 #6·#7) | 779f316 |
| - | 분신 facing 매 frame 갱신 (투사체 방향) + Player IsAlive 영역 분신 destroy | 412dedb |
2. 산출물 영역
Unity 외부 git (E:/EerieVillage)
| 분류 | 경로 |
|---|---|
| 신규 | Assets/Scripts/Skills/Effectors/CloneInstance.cs |
| 신규 | Assets/Scripts/Skills/Effectors/CloneEffector.cs |
| 신규 | Assets/Resources/Skills/Active/A10_bunsin.asset |
| 신규 | Assets/Tests/Editor/CloneSkillTests.cs (EditMode 7건) |
| 수정 | Assets/Scripts/Skills/Runtime/PlayerSkillInventory.cs (필드·event·helper·Raise 메서드) |
| 수정 | Assets/Scripts/Skills/Runtime/ActiveSkillRuntime.cs (Fire hook·50% 분기) |
| 수정 | Assets/Scripts/Skills/Events/SkillFireEvent.cs (Minion CardId 분기·Cleanup reset) |
| 수정 | Assets/Scripts/Skills/Runtime/SkillRuntimeFactory.cs (A10 추가) |
| 수정 | Assets/Scripts/Skills/Effectors/{ProjectileSpawner·LaserSpawner·MeleeAreaSpawner·LightningStrikeSpawner·PoisonSwampSpawner·SpiritFireSpawner}.cs (6 Effector 분기) |
| 수정 | Assets/Scripts/Skills/Effectors/HitboxDebug.cs (toggle off) |
| 수정 | Assets/Scripts/Skills/Test/TestSkillFireOn1to5.cs (1번키 A10·Minion CardId) |
| 삭제 | Assets/Tests/Editor/EerieVillage.Tests.Editor.asmdef (default Assembly-CSharp-Editor 흡수) |
BT 레포 (E:/BurningTimes)
| 분류 | 경로 |
|---|---|
| 수정 | 프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md §A10 신설 (1063~1586·+512 라인) + 잔존 5 위치 PD 결정 정합 |
| 수정 | 프로젝트/EerieVillage/개발/spec/스킬_이펙트_확정_v1.md §3 A10 + §4 변경 이력 |
| 수정 | 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md BT12-Dev-Clone 완료 표기 |
| 신규 | 공유/대화로그/EerieVillage/2026-05-15.md (BT12-Dev-Clone 1단계·PD 결정 4건) |
| 신규 | 공유/조직공지/2026-05-18_BT12-Dev-Clone_세션종결인수인계.md (본 문서) |
3. PD 명세 5 + PD 결정 4 + PD 후속 영역 정합 확정
| 항목 | 코드 위치 |
|---|---|
| 위치 (facing 반대 0.5 영역) | CloneInstance.SyncSpriteAndPosition playerWorldPos + (-signX * 0.5) |
| 외형 (반투명 alpha 0.5) | SpawnOrReplace color.a = 0.5f |
| 동일 스킬 사용 | OnPlayerSkillFired hook → EnqueuePlayerFire → FireAtClonePosition |
| 50% 반감 | ActiveSkillRuntime.CalculateEffectiveDamage IsCloneFireActive ? × 0.5f |
| 0.25초 딜레이 | FIRE_DELAY_SECONDS = 0.25f (PD 50% 단축) |
| BaseCooldown 25 | A10_bunsin.asset |
| lifetime 12초 자동 소멸 | CloneInstance.Update Time.unscaledTime - _spawnTime >= 12 |
| facing 매 frame 갱신 | SyncSpriteAndPosition _spawnFacingX = facing.x < 0 ? -1 : 1 |
| 무적 (Collider 미부착) | SpawnOrReplace 영역 Collider/Rigidbody2D 미부착 |
| 분신 sprite·flipX 매 frame Player 동조 | SyncSpriteAndPosition _cloneSr.sprite = _playerSr.sprite + flipX = _playerSr.flipX |
| 위치 영역 영역 영역 (MoveTowards) | Vector3.MoveTowards(currentPos, _targetLocalPos, MOVE_SPEED * Time.deltaTime) (MOVE_SPEED=3f) |
| Player IsAlive 영역 분신 즉시 destroy | Update 영역 if (!playerHealth.IsAlive) Destroy(gameObject) |
| 1번키 영역 A10 강제 매핑 | TestSkillFireOn1to5.EnsureRuntimes 영역 Resources.Load("Skills/Active/A10_bunsin") |
| Lv 업 메커니즘 | 1차 미반영 (balance-designer 후속) |
4. 본 PM 자성 #1~#7 누적 — C39-10 위반 패턴
feedback_new_code_existing_system_dependency_unmeasured 7회 재발 — 본 BT12-Dev-Clone 단일 안건.
| # | 영역 | 추정 vs 실제 |
|---|---|---|
| 1 | CloneInstance namespace | EerieVillage.Skills.Events 추정 → 실제 EerieVillage.Skills |
| 2 | asmdef autoReferenced | main 자동 reference 추정 → 실제 X (default assembly 격리) |
| 3 | asmdef 메커니즘 | autoReferenced 해결 추정 → 실제 asmdef 자체 삭제 필요 |
| 4 | C# event 외부 invoke | .Invoke() 가능 추정 → 실제 CS0070 |
| 5 | Test assembly internal 접근 | internal 동일 assembly 영역 가정 → 실제 X (별도 assembly) |
| 6 | 분신 flipX 영역 영역 (deltaX 영역) | deltaX 영역 영역 영역 영역 추정 → 실제 Player.flipX 영역 영역 영역 영역 영역 |
| 7 | PlayerController 영역 영역 영역 영역 | spriteRenderer.flipX 영역 영역 영역 사전 실측 X (L306·L311 영역 사전 Grep X) |
근본 패턴: 본 PM 영역 C# 언어·Unity asmdef·기존 코드 영역 사전 실측 X·7회 누적.
신뢰 회복 영역 (PD 직접 지시 채택): 이후 모든 코드 fix MCP 사전 검증 강제 (refresh_unity + read_console + run_tests).
5. BT12-Dev-Clone 최종 동작 영역 (PD 확정)
PD Refresh 후 영역 검증 정합:
| 항목 | 동작 |
|---|---|
| 1번키 | A10 분신 spawn (Player 반대 방향 0.5 유닛·반투명 0.5·크기 동일·무적·12초 자동 소멸) |
| Player 영역 영역 | 분신 영역 영역 영역 영역 영역 (MoveTowards·달리는 sprite·flipX 동조) |
| Player 영역 영역 | 분신 영역 영역 영역 영역 영역 영역 영역 → 자연 영역 |
| Player 스킬 발동 (2·3·4·5 키) | 분신 영역 0.25초 후 동일 스킬 미러링 (50% 데미지·분신 위치·매 frame Player facing 정합) |
| 25초 재발동 | 기존 분신 destroy + 새 분신 spawn (Singleton) |
| Player Death | 분신 즉시 destroy (영역 영역 X) |
6. 활성 PD 지시 영역 (세션 종결 시점)
| 안건 | 상태 | 트리거 |
|---|---|---|
| BT12-Dev-Clone | 완료 2026-05-18 (본 commit 영역 영역 영역) | 본 commit 후 완료 아카이브 이동 |
| BT12-Dev-Vis | 진행중 | HUD·Icon 잔여 (PD 후속) |
| BT12-Dev | 보류 | 기획서 v0.3 확정 대기 |
| BT12-MVP-A | D안 완료 | 단계 4 PD Play 검증 |
| BT12-Dev-Death | 완료 영역 영역 | 활성 영역 잔존·아카이브 이동 |
| BT7-Dev | 진행중 | PD Editor Play 검증 |
| BT5-Dev | 진행중 | 좁은 영역 Enemy 패턴 영역 (PD 재요청) |
| BT7-Plan | 진행중 | 카드 시스템 개정 영역 영역 |
7. 다음 세션 첫 프롬프트 템플릿 (C40-2)
세션 갱신해. BT12-Dev-Clone 완료 영역 영역 + 활성 안건 영역 영역 영역 보고.
직전 commit (E:/EerieVillage `412dedb` + BT 레포 본 세션 commit) 정합 확인.
또는:
BT12 보류 영역 영역 (기획서 확정) 또는 BT7-Plan 카드 시스템 개정 영역 우선순위 결정 영역.
8. PM 후속 영역 (본 commit 후)
- BT12-Dev-Clone 활성 → 완료 아카이브 이동 — P19 정합·다음 commit
- balance-designer 이관 안건 — 분신 Lv 업 지속시간·데미지 비율(%) Lv별 수치
- PD 결정 우선순위 — BT12-Dev 보류 해제 (기획서 확정 영역) vs BT7-Plan 카드 시스템 개정 vs 다른 안건
9. 관련 규칙·feedback
- C1 (PD 지시 = 승인) · C29 (자율 수행) · C32 (대화로그) · C40 (세션 종결 완결성) · C42 (사전 검증) · C44 (팩트 우선) · C46 (정체성) · C47 (능동 추론)
- C43 호칭 라우팅 (개발팀 직접 수령)
- C48 시범 (PM 직접 처리·Task 회피)
- C49 시범 (개발팀장 Opus 설계 → PM 직접 작업 → MCP 검증)
- C50 적용 (Phase 2 60~80K 사전 승인·옵션 b 4분할 채택)
- feedback_new_code_existing_system_dependency_unmeasured 7회 재발 누적