diff --git a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md index 507163e..39de5b0 100644 --- a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md +++ b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md @@ -33,7 +33,7 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**. | # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 | |---|------|----------|----------|-----------|----------|----------| -| BT13-GodDem | 2026-08-19~20 | **GodDem 프로젝트 개시 + 인게임 「황야의 생존자」형 전환** — PD 직접 지시 6건 연속. ①(2026-08-19) "이 세션은 우리 조직의 새로운 프로젝트인 GodDem 프로젝트 개발을 위한 세션이야. 현재 프로젝트 레포는 'E:\NerdNavis\GodDem' 이므로 코드 및 프로젝트를 제대로 검토해보고 개발할 준비가 되면 보고해." ②"앞으로는 도구 사용을 묻지 않도록 자동으로 도구 승인처리해" (+ ToolSearch·MCP 리소스 도구·`.claude/**` 편집 영구 허용 반복 지시) ③"인게임을 유튜브(https://youtu.be/cBVc0OwUX6U 황야의 생존자) 영상과 같은 형태로 변경. 더미 리소스(기존 자산)로 기본 시스템 동일 설계·인게임 씬 배치. **아웃게임 유지, 인게임 씬만 변경**" + 전투 명세 4항(플레이어 중앙 고정 자동공격 / 매판 리셋 로그라이크 스텟 강화 / 10웨이브 보스·스테이지 클리어 / **신규: 경험치→레벨업마다 특수 스킬 3종 택1**) ④"원작 APK 디컴파일해서 게임 로직·데이터 분석. 능력치·성장 수치·강화 비용 등 밸런스 데이터를 그대로 활용하고 싶다" ⑤"FABLE5로 원작 복호화 리버싱을 먼저 시도해봐. 안되면 자체 수치로 설계할게" ⑥"csv 형태로 제작해줘" / "워크플로우 설계할 때 ponytail 스킬을 써줘". **C13 위반 자진 보고** — 본 6건이 대화로그에만 기록되고 본 트래킹 로그에 미등록 상태였음(pm-auditor 감사 Critical 적발). 소급 등록. **[2026-08-21 인게임·메타·밸런스 일괄 집행]** PD "전부 진행해" 승인 — 1차 인게임 완결(A10 분신 10종 정합·일시정지·적 HP바, `77bd835`·`ee9ec11`) + 3차 상점·Hero 메타 결선(SurvivalMeta 분리 신설, `57a8fcf`) + 4차 결함 해소(penetrate_ratio 함정·A13 사거리·waveInStage 산식·이중 SOT, `7728a41`) + 5차 S3 v2 밸런스 확정 반영(42/1/14/+3, plan-auditor 재검증 통과, `d5dea4d`). 상세: 공유/대화로그/GodDem/2026-08-21.md §3~§12. **[2026-08-22 밸런스 원작이탈 지적·2층 재구현]** PD 플레이 실측 지적 — 공격력이 원작 2층(정액 hero_level power + 배율 attack_add) 중 배율만·축소, 정액 트랙 누락 / 몬스터 원작 소스 부재. 근본 = 본 로그 사후조치 (2) "스케일 재조정 방침"을 PD 재확인 없이 진행한 C36 위반이 플레이로 표면화. PD "이 방향으로 재구현해" 승인 → 공격력 원작 2층 복원 착수 (C49: balance-designer 재설계 → plan-auditor 검증 → 개발팀장 구현). memory `feedback_pd_directive_altered_to_rescale` 신설. **[완료 2026-08-22 GodDem `26ff655`]** 공격력 원작 2층 복원 완결 — APK 재추출로 배율(0.05~0.30)=원작 attack_add prefix-10 원본 확정(이탈 아님)·정액 트랙 `attack`(30~600) 신설로 2층 복원·C49 이중검증(balance v2→plan-auditor 통과)·플레이테스트 2층 산술 정확 재현(22~1691). PD 지적 (a)(b) "정액 누락" 단일원인 해소. 부수 강화테이블 전수 원작 정합 확인. **잔여 = R-M2(정액 몰빵 스테이지1 보스 3.5배 오버킬) 조정 방향 PD/balance 판단 1건**. 상세 대화로그 §15~§20. **[2026-08-22 원작 아키텍처 전면 이식 착수·대규모]** PD 지적 2건("총 스테이지 구성 원작 동일"·"능력치가 원작보다 훨씬 적음·원작은 아웃게임 확장") → PD 결정 "원작 데이터 아키텍처 전면 이식이 맞아"+"이대로 진행". 실측 gap 3축(능력치 24 vs 13·아웃게임 5층 vs 1층·스테이지 6구간 vs 무한). 근본=초기 MVP 전환 원작 축소(feedback_pd_directive_altered_to_rescale 연장). P32 분할: 1단계 balance-designer 이식청사진 → 2단계 system-designer 메타재설계 → 3단계 축별 구현. 상세 대화로그 §21. **[P1 완료·P2 착수 2026-08-22]** 청사진 v1 완료(`b5d95cc`, 능력치 24종/PvE 18·아웃게임 5층·스테이지=원작 teamwavepassreward 54단계뿐/StageBalance는 GodDem 자산 정정·재사용3/확장3). PD 결정: 가챠 원작대로 도입(과금 신설)·현 세션 P2 계속. P2 system-designer 메타 아키텍처 재설계 착수(5층·능력치18 배치·인게임/아웃게임 경계 재정의). 상세 §22~§23. **[P2 완료 2026-08-22]** 메타 아키텍처 재설계 v1 완료 — 5층 확정(①영웅레벨·②승급·③장비강화·④가챠·⑤스킬마스터리, 인게임 "런레벨"과 명칭 분리) + 능력치 18종 배치(청사진 §2-3 "미보유 5종" 정정: `stun_rate` 누락 확인·실제 6종) + ★결합 지점 정정(초안 "1곳"→plan-auditor 감사로 4개 호출부 확인, `SurvivalLobbyController.Hero.cs` 2곳 누락분 포함, `FinalAttack()`/`FinalHp()` 단일 캡슐화 메서드로 3중 SOT 재발 방지 설계) + 재사용/확장 판정(SurvivalMeta 확장·Upgrade/Skill 불변·ItemCatalog 확장·**ShopCatalog는 "구조 확장 필요"로 정정**, 확률 지급물 미지원 확인) + 신규 클래스 4·CSV 7종 골격 + P3 4서브페이즈 분할(B1레벨승급→B2장비→B4스킬→B3가챠). plan-auditor 모드A 감사 1회 수행(조건부통과, Critical 2·Major 6·Minor 4 — 전부 반영 후 확정). **PD 확인 대기 2건**: ①가챠 소비재화(골드 vs 젬, 원작 근거 부재 🔴) ②가챠 가격·확률 실값. **[P3-A 착수 2026-08-22]** PD 방향 확정 "설계대로 진행"(인게임 매판 리셋 + 아웃게임 영구성장이 매판 시작 베이스 = 영구성장 RPG, P2 경계재정의 그대로). P3-A 능력치 정리 착수(penetrate_ratio 이관·ele 2종 층확정·18종 체계). 후속 B1→B2→B4→B3(가챠)+C(스테이지 병렬). 상세 §25. **[P3-A 완료·B1 착수 2026-08-22]** P3-A GodDem `8684211`(penetrate ⑤이관·ele ⑤확정·StatCatalog SOT·plan-auditor 조건부통과). **★부수 성과**: 직전 공격력 2층의 attack 정액 트랙이 상점 미노출(소비O·상점X)로 플레이어 미도달이던 결함 발견·수정 — Play 실측 22→52 도달 회복(memory `feedback_shop_exposure_filter_source_both` 신설). P3-B1(레벨+승급) balance-designer 설계 착수 + 메타문서 ele④→⑤ 갱신. 상세 §26~§28. **[B1 설계완료·구현착수 2026-08-22]** balance-designer B1 설계(레벨1~60·승급0~11·매판 베이스 결합·plan-auditor 조건부통과). **★근본 발견**: 인게임 골드→아웃게임 전환 브릿지 부재(CurrencyManager.Add 0건)=영구성장 전제 미구현. **PD 결정**: "원작처럼 맞춰 전체 밸런싱 동일성 확인 후 추후 변경" → 유한캡(60/11) 원작 정합 확정·원작 충실 1차. 개발팀장 B1 구현 착수(전환 브릿지 최우선). 상세 §29~§31. **[B1 완료 2026-08-22 GodDem `a3f62ab`]** 영구 성장 첫 층 게임 진입 — 인게임 골드→아웃게임 영구재화 전환 브릿지 신설(크로스세션 영속 확증)·영웅레벨 1~60·승급 star0~11·매판 시작 베이스 결합(신규 22/400 불변)·defense 분리클램프. plan-auditor 통과(Minor1 NRE 3중 방어 동봉)·메타문서 유한캡 정정. 남은 B2(장비)→B4(스킬)→B3(가챠)+C(스테이지). 상세 §32~§34. **[B2 착수 2026-08-22]** PD "현 세션 B2 계속" + 지적 "세션 이동 되묻지 마"(feedback_session_transition_repeated_prompting 신설·세션 이동 재제안 중단). balance-designer 장비강화 Layer③ 설계 착수(heroequipment 정합·M수열 재추출). 상세 §35. **[B2 v1 완료·재추출 착수 2026-08-22]** B2 설계 v1(2축 레벨/등급·plan-auditor 조건부통과·Critical2 융합버그 재설계). **원작 M수열 재추출 미해소·역산** → PD "원작처럼 맞춰" 정합 위해 개발팀장 heroequipment 재추출 착수(공격력 재추출 선례·되묻지 않고 진행). 후속 B2 v2 재산정→검증→구현. 상세 §36~§37. **[재추출 완료·(A) 노선 확정 2026-08-22]** heroequipment 재추출 완료 — 매핑 §2-3 전부 정확(M수열 [1..200] 16단·등급 ×1/5/10/20/40/80·비용 Base+V·forging 전이 q2→6 정정). **(A) 형태 이식 확정**(구조 원작·스케일 재산정, 원작 M×200 절대이식은 게임 붕괴로 (B) 기각·B1/공격력/배율 일관). balance-designer B2 v2 착수(forging 정정·근거 격상). 상세 §38. **[B2 v2 통과·구현착수 2026-08-22]** B2 v2 plan-auditor 통과(신규결함0·재추출 형태정합·forging q2→6·무변경 승계·Improvement1 비차단=장비 진입시점 플레이테스트 튜닝). 개발팀장 B2 구현 착수(EquipLevel Version3·SecondaryStatKey·TryFuse 차단+환급·CSV룩업·강화 UI). 상세 §39~§41. **[B2 완료 2026-08-22 GodDem `bc07573`]** 영구 성장 둘째 층(장비 강화) 게임 진입 — 장비 레벨별 성장·매판 베이스 결합(신규 22/400 불변)·융합 환급 세탁차단·강화 UI 도달. plan-auditor 통과(7항)·개별 stage 커밋·push 완료. 남은 B4(스킬마스터리)→B3(가챠)+C(스테이지). 상세 §42~§44. **[B4 설계·구현착수 2026-08-22]** B4 스킬마스터리 설계(스킬 해금 드래프트 풀·그랜드파더 10종·마스터리 스탯 3종·데이터 v4·plan-auditor 조건부통과). **★이슈**: penetrate/ele 3종 적 방어·속성 시스템 부재로 소비처 없음(penetrate 사장 계열)→공격% 잠정 배선·PD 밸런싱 확인 영역. 개발팀장 구현 착수(C6 백업). 상세 §45~§46. **[B4 완료 2026-08-22 GodDem `54aea99`]** 영구 성장 셋째 층(스킬 마스터리) 게임 진입 — 액티브 해금 드래프트 풀·마스터리 스탯 3종·데이터 v4. plan-auditor 조건부통과→**C6 백업 Critical은 false negative**(Grep이 gitignore *.bak_* 스킵·백업 실존·개발팀장 정직·PM 자성·feedback 신설). 개발팀장 push 인증실패→PM 재시도 성공. 남은 C(스테이지)·B3(가챠). 상세 §47~§49. | **진행중** || **진행중** | ①레포 검토 완료·`공유/대화로그/GodDem/2026-08-19.md` ②`.claude/settings.json` dontAsk+allow 확장 (커밋 `7366860`·`c4a5dfd`) ③설계도 `공유/기획/GodDem/2026-08-19_인게임_중앙디펜스_전환_설계_v1.md` (커밋 `4346d4d`) ④⑤**복호화 성공** — 22바이트 반복 XOR·`libil2cpp.so` 리버싱 불필요. 원작 밸런스 237테이블 복호화 ⑥**CSV 230종/22,261행** 변환·PD 전달. 종합 매핑 SOT `공유/기획/GodDem/2026-08-20_원작밸런스_해독_매핑_v1.md`. **P1 청사진** `공유/기획/GodDem/2026-08-22_원작아키텍처_이식청사진_v1.md`(`b5d95cc`, 산출물 경로 누락분 소급 추가·pm-auditor 지적). **P2 메타 재설계** `공유/기획/GodDem/2026-08-22_메타아키텍처_재설계_v1.md`(system-designer, plan-auditor 검증 완료). | — | **PD 결정 대기 2건**: (1) 복호화 XOR 키의 조직 기록 보존 가부 (타사 기술적 보호조치 우회 수단 — PM 재량 밖, C36-2 보수 선택으로 문서에서 마스킹) (2) 원작 절대수치 vs 자체 스케일 재조정 방침 확인. **다음 단계**: 설계 P1(중앙 고정 플레이어+사방 스폰+웨이브 씬 골격 배치) 착수. **후속 조치**: `.gitignore`에 `scratchpad/`·`wild/` 선제 등재, `공유/대화로그/INDEX.md`에 GodDem 등재. **저작권 방침**: 원작 수치는 참고, 아트·텍스트 리소스 사용 불가. 추출물 레포 미커밋(git 실측 확인). | +| BT13-GodDem | 2026-08-19~20 | **GodDem 프로젝트 개시 + 인게임 「황야의 생존자」형 전환** — PD 직접 지시 6건 연속. ①(2026-08-19) "이 세션은 우리 조직의 새로운 프로젝트인 GodDem 프로젝트 개발을 위한 세션이야. 현재 프로젝트 레포는 'E:\NerdNavis\GodDem' 이므로 코드 및 프로젝트를 제대로 검토해보고 개발할 준비가 되면 보고해." ②"앞으로는 도구 사용을 묻지 않도록 자동으로 도구 승인처리해" (+ ToolSearch·MCP 리소스 도구·`.claude/**` 편집 영구 허용 반복 지시) ③"인게임을 유튜브(https://youtu.be/cBVc0OwUX6U 황야의 생존자) 영상과 같은 형태로 변경. 더미 리소스(기존 자산)로 기본 시스템 동일 설계·인게임 씬 배치. **아웃게임 유지, 인게임 씬만 변경**" + 전투 명세 4항(플레이어 중앙 고정 자동공격 / 매판 리셋 로그라이크 스텟 강화 / 10웨이브 보스·스테이지 클리어 / **신규: 경험치→레벨업마다 특수 스킬 3종 택1**) ④"원작 APK 디컴파일해서 게임 로직·데이터 분석. 능력치·성장 수치·강화 비용 등 밸런스 데이터를 그대로 활용하고 싶다" ⑤"FABLE5로 원작 복호화 리버싱을 먼저 시도해봐. 안되면 자체 수치로 설계할게" ⑥"csv 형태로 제작해줘" / "워크플로우 설계할 때 ponytail 스킬을 써줘". **C13 위반 자진 보고** — 본 6건이 대화로그에만 기록되고 본 트래킹 로그에 미등록 상태였음(pm-auditor 감사 Critical 적발). 소급 등록. **[2026-08-21 인게임·메타·밸런스 일괄 집행]** PD "전부 진행해" 승인 — 1차 인게임 완결(A10 분신 10종 정합·일시정지·적 HP바, `77bd835`·`ee9ec11`) + 3차 상점·Hero 메타 결선(SurvivalMeta 분리 신설, `57a8fcf`) + 4차 결함 해소(penetrate_ratio 함정·A13 사거리·waveInStage 산식·이중 SOT, `7728a41`) + 5차 S3 v2 밸런스 확정 반영(42/1/14/+3, plan-auditor 재검증 통과, `d5dea4d`). 상세: 공유/대화로그/GodDem/2026-08-21.md §3~§12. **[2026-08-22 밸런스 원작이탈 지적·2층 재구현]** PD 플레이 실측 지적 — 공격력이 원작 2층(정액 hero_level power + 배율 attack_add) 중 배율만·축소, 정액 트랙 누락 / 몬스터 원작 소스 부재. 근본 = 본 로그 사후조치 (2) "스케일 재조정 방침"을 PD 재확인 없이 진행한 C36 위반이 플레이로 표면화. PD "이 방향으로 재구현해" 승인 → 공격력 원작 2층 복원 착수 (C49: balance-designer 재설계 → plan-auditor 검증 → 개발팀장 구현). memory `feedback_pd_directive_altered_to_rescale` 신설. **[완료 2026-08-22 GodDem `26ff655`]** 공격력 원작 2층 복원 완결 — APK 재추출로 배율(0.05~0.30)=원작 attack_add prefix-10 원본 확정(이탈 아님)·정액 트랙 `attack`(30~600) 신설로 2층 복원·C49 이중검증(balance v2→plan-auditor 통과)·플레이테스트 2층 산술 정확 재현(22~1691). PD 지적 (a)(b) "정액 누락" 단일원인 해소. 부수 강화테이블 전수 원작 정합 확인. **잔여 = R-M2(정액 몰빵 스테이지1 보스 3.5배 오버킬) 조정 방향 PD/balance 판단 1건**. 상세 대화로그 §15~§20. **[2026-08-22 원작 아키텍처 전면 이식 착수·대규모]** PD 지적 2건("총 스테이지 구성 원작 동일"·"능력치가 원작보다 훨씬 적음·원작은 아웃게임 확장") → PD 결정 "원작 데이터 아키텍처 전면 이식이 맞아"+"이대로 진행". 실측 gap 3축(능력치 24 vs 13·아웃게임 5층 vs 1층·스테이지 6구간 vs 무한). 근본=초기 MVP 전환 원작 축소(feedback_pd_directive_altered_to_rescale 연장). P32 분할: 1단계 balance-designer 이식청사진 → 2단계 system-designer 메타재설계 → 3단계 축별 구현. 상세 대화로그 §21. **[P1 완료·P2 착수 2026-08-22]** 청사진 v1 완료(`b5d95cc`, 능력치 24종/PvE 18·아웃게임 5층·스테이지=원작 teamwavepassreward 54단계뿐/StageBalance는 GodDem 자산 정정·재사용3/확장3). PD 결정: 가챠 원작대로 도입(과금 신설)·현 세션 P2 계속. P2 system-designer 메타 아키텍처 재설계 착수(5층·능력치18 배치·인게임/아웃게임 경계 재정의). 상세 §22~§23. **[P2 완료 2026-08-22]** 메타 아키텍처 재설계 v1 완료 — 5층 확정(①영웅레벨·②승급·③장비강화·④가챠·⑤스킬마스터리, 인게임 "런레벨"과 명칭 분리) + 능력치 18종 배치(청사진 §2-3 "미보유 5종" 정정: `stun_rate` 누락 확인·실제 6종) + ★결합 지점 정정(초안 "1곳"→plan-auditor 감사로 4개 호출부 확인, `SurvivalLobbyController.Hero.cs` 2곳 누락분 포함, `FinalAttack()`/`FinalHp()` 단일 캡슐화 메서드로 3중 SOT 재발 방지 설계) + 재사용/확장 판정(SurvivalMeta 확장·Upgrade/Skill 불변·ItemCatalog 확장·**ShopCatalog는 "구조 확장 필요"로 정정**, 확률 지급물 미지원 확인) + 신규 클래스 4·CSV 7종 골격 + P3 4서브페이즈 분할(B1레벨승급→B2장비→B4스킬→B3가챠). plan-auditor 모드A 감사 1회 수행(조건부통과, Critical 2·Major 6·Minor 4 — 전부 반영 후 확정). **PD 확인 대기 2건**: ①가챠 소비재화(골드 vs 젬, 원작 근거 부재 🔴) ②가챠 가격·확률 실값. **[P3-A 착수 2026-08-22]** PD 방향 확정 "설계대로 진행"(인게임 매판 리셋 + 아웃게임 영구성장이 매판 시작 베이스 = 영구성장 RPG, P2 경계재정의 그대로). P3-A 능력치 정리 착수(penetrate_ratio 이관·ele 2종 층확정·18종 체계). 후속 B1→B2→B4→B3(가챠)+C(스테이지 병렬). 상세 §25. **[P3-A 완료·B1 착수 2026-08-22]** P3-A GodDem `8684211`(penetrate ⑤이관·ele ⑤확정·StatCatalog SOT·plan-auditor 조건부통과). **★부수 성과**: 직전 공격력 2층의 attack 정액 트랙이 상점 미노출(소비O·상점X)로 플레이어 미도달이던 결함 발견·수정 — Play 실측 22→52 도달 회복(memory `feedback_shop_exposure_filter_source_both` 신설). P3-B1(레벨+승급) balance-designer 설계 착수 + 메타문서 ele④→⑤ 갱신. 상세 §26~§28. **[B1 설계완료·구현착수 2026-08-22]** balance-designer B1 설계(레벨1~60·승급0~11·매판 베이스 결합·plan-auditor 조건부통과). **★근본 발견**: 인게임 골드→아웃게임 전환 브릿지 부재(CurrencyManager.Add 0건)=영구성장 전제 미구현. **PD 결정**: "원작처럼 맞춰 전체 밸런싱 동일성 확인 후 추후 변경" → 유한캡(60/11) 원작 정합 확정·원작 충실 1차. 개발팀장 B1 구현 착수(전환 브릿지 최우선). 상세 §29~§31. **[B1 완료 2026-08-22 GodDem `a3f62ab`]** 영구 성장 첫 층 게임 진입 — 인게임 골드→아웃게임 영구재화 전환 브릿지 신설(크로스세션 영속 확증)·영웅레벨 1~60·승급 star0~11·매판 시작 베이스 결합(신규 22/400 불변)·defense 분리클램프. plan-auditor 통과(Minor1 NRE 3중 방어 동봉)·메타문서 유한캡 정정. 남은 B2(장비)→B4(스킬)→B3(가챠)+C(스테이지). 상세 §32~§34. **[B2 착수 2026-08-22]** PD "현 세션 B2 계속" + 지적 "세션 이동 되묻지 마"(feedback_session_transition_repeated_prompting 신설·세션 이동 재제안 중단). balance-designer 장비강화 Layer③ 설계 착수(heroequipment 정합·M수열 재추출). 상세 §35. **[B2 v1 완료·재추출 착수 2026-08-22]** B2 설계 v1(2축 레벨/등급·plan-auditor 조건부통과·Critical2 융합버그 재설계). **원작 M수열 재추출 미해소·역산** → PD "원작처럼 맞춰" 정합 위해 개발팀장 heroequipment 재추출 착수(공격력 재추출 선례·되묻지 않고 진행). 후속 B2 v2 재산정→검증→구현. 상세 §36~§37. **[재추출 완료·(A) 노선 확정 2026-08-22]** heroequipment 재추출 완료 — 매핑 §2-3 전부 정확(M수열 [1..200] 16단·등급 ×1/5/10/20/40/80·비용 Base+V·forging 전이 q2→6 정정). **(A) 형태 이식 확정**(구조 원작·스케일 재산정, 원작 M×200 절대이식은 게임 붕괴로 (B) 기각·B1/공격력/배율 일관). balance-designer B2 v2 착수(forging 정정·근거 격상). 상세 §38. **[B2 v2 통과·구현착수 2026-08-22]** B2 v2 plan-auditor 통과(신규결함0·재추출 형태정합·forging q2→6·무변경 승계·Improvement1 비차단=장비 진입시점 플레이테스트 튜닝). 개발팀장 B2 구현 착수(EquipLevel Version3·SecondaryStatKey·TryFuse 차단+환급·CSV룩업·강화 UI). 상세 §39~§41. **[B2 완료 2026-08-22 GodDem `bc07573`]** 영구 성장 둘째 층(장비 강화) 게임 진입 — 장비 레벨별 성장·매판 베이스 결합(신규 22/400 불변)·융합 환급 세탁차단·강화 UI 도달. plan-auditor 통과(7항)·개별 stage 커밋·push 완료. 남은 B4(스킬마스터리)→B3(가챠)+C(스테이지). 상세 §42~§44. **[B4 설계·구현착수 2026-08-22]** B4 스킬마스터리 설계(스킬 해금 드래프트 풀·그랜드파더 10종·마스터리 스탯 3종·데이터 v4·plan-auditor 조건부통과). **★이슈**: penetrate/ele 3종 적 방어·속성 시스템 부재로 소비처 없음(penetrate 사장 계열)→공격% 잠정 배선·PD 밸런싱 확인 영역. 개발팀장 구현 착수(C6 백업). 상세 §45~§46. **[B4 완료 2026-08-22 GodDem `54aea99`]** 영구 성장 셋째 층(스킬 마스터리) 게임 진입 — 액티브 해금 드래프트 풀·마스터리 스탯 3종·데이터 v4. plan-auditor 조건부통과→**C6 백업 Critical은 false negative**(Grep이 gitignore *.bak_* 스킵·백업 실존·개발팀장 정직·PM 자성·feedback 신설). 개발팀장 push 인증실패→PM 재시도 성공. 남은 C(스테이지)·B3(가챠). 상세 §47~§49. **[C 설계완료 2026-08-22]** 스테이지 = 원작 teamwavepassreward 54단계 유한캡(6스테이지×9챕터) 형태이식 — Stage 무한증가 폐기. StageStep(2.1→1.02)·ExpStep(1.2→1.002) 챕터 체감 재설계로 54제곱 폭발(HP 5.72×10¹⁹·경험치 킬1회당 145레벨업) 해소. 런완주 총액 414,018G 확정(B1 R-C2 미확정치 해소). plan-auditor 모드A 조건부통과(Critical4·Major7·Minor7 전량반영 — B2 기여분 +47→+141 정정, 인런 SkillAttackMul 누락 반영해 목표 BossHP 4,247,728→92,318,561 재조정). **★팀장·PD 확인 3건 상신**: ①Stage 유한화 방향 자체(B1 유비적용·PD 스테이지 직접 재확인 없음) ②teamwavepassreward 재추출 미해소 착수 타당성(청사진 "선행조건" 문자명시분 재해석) ③Stage55+ 동결 처리(청사진이 PD 확인영역으로 지목). **구현 착수는 3건 선해소 후**. 상세 §50. | **진행중** | ①레포 검토 완료·`공유/대화로그/GodDem/2026-08-19.md` ②`.claude/settings.json` dontAsk+allow 확장 (커밋 `7366860`·`c4a5dfd`) ③설계도 `공유/기획/GodDem/2026-08-19_인게임_중앙디펜스_전환_설계_v1.md` (커밋 `4346d4d`) ④⑤**복호화 성공** — 22바이트 반복 XOR·`libil2cpp.so` 리버싱 불필요. 원작 밸런스 237테이블 복호화 ⑥**CSV 230종/22,261행** 변환·PD 전달. 종합 매핑 SOT `공유/기획/GodDem/2026-08-20_원작밸런스_해독_매핑_v1.md`. **P1 청사진** `공유/기획/GodDem/2026-08-22_원작아키텍처_이식청사진_v1.md`(`b5d95cc`, 산출물 경로 누락분 소급 추가·pm-auditor 지적). **P2 메타 재설계** `공유/기획/GodDem/2026-08-22_메타아키텍처_재설계_v1.md`(system-designer, plan-auditor 검증 완료). **P3-B1** `공유/기획/GodDem/2026-08-22_P3B1_레벨승급_설계_v1.md`(GodDem `a3f62ab`). **P3-B2** `공유/기획/GodDem/2026-08-22_P3B2_장비강화_설계_v2.md`(v1 병존, GodDem `bc07573`). **P3-B4** `공유/기획/GodDem/2026-08-22_P3B4_스킬마스터리_설계_v1.md`(GodDem `54aea99`). **P3-C** `공유/기획/GodDem/2026-08-22_P3C_스테이지_설계_v1.md`(설계만·구현 미착수, plan-auditor 조건부통과, 팀장·PD 확인 3건 대기, §50). | — | **PD 결정 대기 2건**: (1) 복호화 XOR 키의 조직 기록 보존 가부 (타사 기술적 보호조치 우회 수단 — PM 재량 밖, C36-2 보수 선택으로 문서에서 마스킹) (2) 원작 절대수치 vs 자체 스케일 재조정 방침 확인. **다음 단계**: 설계 P1(중앙 고정 플레이어+사방 스폰+웨이브 씬 골격 배치) 착수. **후속 조치**: `.gitignore`에 `scratchpad/`·`wild/` 선제 등재, `공유/대화로그/INDEX.md`에 GodDem 등재. **저작권 방침**: 원작 수치는 참고, 아트·텍스트 리소스 사용 불가. 추출물 레포 미커밋(git 실측 확인). | | BT12-Dev-Vis | 2026-05-09 | **PlayerSkillInventory 등록 시각화 지시** — PD 직접 발화: "PlayerSkillInventory 등록이 되었는지 어떻게 판단해야하지? 시각적인 변화가 없으니 확인이 불가능해. 유니티 기본 제공 리소스를 활용해도 좋으니 보이게 해줘." **[2026-05-13 후속 세션 신규 3건]** (1) 투사체 사거리 파란 박스 시각화 — `HitboxDebug.SpawnRange` 신규 (`Projectile.Initialize` 끝 호출·3초 유지·`HideFlags.DontSave`). (2) 사정거리·속도 Inspector 직접 조절 — `ActiveSkillData.MaxRange`·`ProjectileSpeed` 신규 필드 (`RangeTier`·`camWidth`·`mults` 계산 폐기·`PiercingProjectile._speed = 2.5f` override 폐기). (3) A04 ExtraHitFxPrefab + FX_Thunder Smoke — `ActiveSkillData.ExtraHitFxPrefab` 신규·`LightningStrikeSpawner.DelayedExtraHitFx` Coroutine (0.6초 후 spawn·y -0.5·비주얼 전용·판정 무관). EerieVillage `ab40b27` push 정합. **[2026-05-13 사고 정정]** 본 PM `git reset --hard origin/main` 영역 PD Inspector 작업 .asset 6 폐기 사고 발생. PD 보고 "스킬 관련 스크립터블 오브젝트가 full 이후 롤백되어버렸어" 수령. `git reflog` 영역 `e2bc95f` 보존 정합·.asset 6 복구·EerieVillage `5b2a032` push 정합. A04 ExtraHitFxPrefab (FX_Thunder Smoke) 영역 PD 후속 Inspector drag&drop 필요. 본 PM 자성 #4 (헌법급) 등재. **[2026-05-13 신규 2건]** (1) 디버그 박스·사거리 박스 시각화 off (재활용 toggle) — `HitboxDebug.ShowDebugVisuals` 플래그 신규·4 위치 `SpriteRenderer.enabled` 정합. (2) 레벨업 카드 풀 5종 한정 — `SkillRuntimeFactory.AvailableCardIds` 화이트리스트 (A02·A13·A04·A05·A_Laser)·미완성 placeholder 5종 (A01·A03·A08·A14·A15) 제외. EerieVillage `d26bd83` push 정합. **잔여**: A04·A05·A_Laser 영역 SkillFireEvent default return 영역 실전 발사 미연결 (카드 풀 한정 영역과 별개·PD 후속 결정 대기). **[2026-05-13 정정·진단]** (1) A05·A_Laser 박스 시각 off 누락 정정 — MeleeAreaSpawner·LaserSpawner 영역 직접 SpriteRenderer 부착 코드 (HitboxDebug 미경유) 영역 `sr.enabled = HitboxDebug.ShowDebugVisuals` 추가. 본 PM 자성 #5 (변경 영향 사전 grep 누락). (2) Player 피격 X 진단 Debug.Log 추가 (회수 의무) — EnemyController.Update L387-396 영역 `[EnemyHit][Intersect]`·`[EnemyHit][Decrement]` 2종. PD Console 측정 결과 영역 근본 fix·Debug.Log revert. EerieVillage `e8779df` push 정합. **[2026-05-13 신규]** 게임 시작 시 기본 파이어볼 A02 자동 습득 — `PlayerSkillInventory.StartingCardIds` (string[]) Inspector 필드·기본 `{ "A02" }`·`Start()` 영역 일괄 `AddSkillByCardId`. EerieVillage `0ad1325` push 정합. **[2026-05-13 신규 2건]** (1) Player 피격 X fix — EnemyController.Update L387-396 영역 `IsGrounded` 조건 폐기 (PD 표현 "닿아도" = ground·공중 무관 피격 의도)·진단 Debug.Log 2종 revert. (2) Enemy HP 30~40 random — `Health.RandomMaxHPRange` (Vector2Int) Inspector 필드 신규·Awake 영역 random·`maxHearts` 자동 산정·Enemy.prefab Inspector `(30, 40)` PD 직접 설정. 본 PM 자성 #6 (PD Console 측정 결과 미수신 영역 가설 fix 시도·feedback_pm_root_diagnosis_priority 약한 위반). EerieVillage `b4847b1` push 정합. **[2026-05-13 재발 정정]** (1) Enemy HP 30~40 자동 fallback — Health.Awake 영역 RandomMaxHPRange 미설정 + EnemyController 검출 → 자동 random. PD Inspector 의존 폐기. (2) Player 피격 distance 기반 강화 + 진단 Debug.Log 재추가 — `VisualBounds.Intersects OR dist < 1.5f` 단일 조건·`[EnemyHit]` 진단·회수 의무. 본 PM 자성 #7 (feedback_pm_root_diagnosis_priority 위반 누적). EerieVillage `2efcd34` push 정합. **[2026-05-13 신규]** Enemy·Player 사망 모션 y -0.5 오프셋 — EnemyDeath·PlayerDeath Execute 영역 Animator death/hurt Trigger 직전 `transform.position.y -= 0.5` 적용·sprite 위로 떠 보이는 현상 정정·collider 영향 X. EerieVillage `18b2125` push 정합. **[2026-05-13 신규]** 스킬 선택 UI 아이콘 fallback — SkillCardSlot.Bind 영역 card.Icon null 시 동적 원 sprite (32×32 알파) + 속성별 색상 (Fire 주황·Frost 하늘·Dark 보라·Lightning 노랑·Physical 흰). _glowEffect 동심원 빛 효과 alpha 0.3. EerieVillage `32ab76f` push 정합. **[2026-05-13 신규 2건]** (1) 사망 모션 y -0.5 → -0.3 (EnemyDeath·PlayerDeath). (2) 게임 시작 시 파이어볼 투사체 정지·잔존 fix — ProjectileSpawner.Trigger 영역 `facing.sqrMagnitude<0.01f` 시 `Vector2.right` fallback. 원인: Player.Facing 영역 (0,0) 영역 → _direction = (0,0) → _speed × 0 = 정지. EerieVillage `56a4a36` push 정합. **[2026-05-13 신규]** 투사체끼리 통과 fix — Projectile.OnTriggerEnter2D 영역 동족 Projectile skip (Wall·Enemy 판정 이전). 원인: fallback GO default Layer 0 영역 → isWall=true → 양쪽 SelfDestruct. EerieVillage `ebd7086` push 정합. **[2026-05-13 신규 4건]** (1) Player 사망 사라지는 현상 fix — PlayerDeath 영역 `Rigidbody2D.simulated=false` (gravity 정지·낙사 차단). (2·3) 제자리 부활·부활 모션·2초 무적 깜박 — PlayerSpawn 영역 `Teleport` 폐기·`health.Resurrect()` 호출 (currentHP=maxHP·invulnerableUntil=2초·Animator resurrect Trigger)·Rigidbody simulated=true 복원·PlayerInvulnerabilityFlash 자동 깜박. (4) FX 잔상 safety cap 5초 — LaserSpawner fx Destroy 누락 추가·LightningStrike·MeleeArea·Projectile.AutoDestroy 영역 `Mathf.Min(lifetime, 5f)` cap. EerieVillage `3a672f0` push 정합. **[2026-05-13 컴파일 에러 fix]** PlayerSpawn.cs CS0246 — using UnityEngine 누락·첫 줄 추가. 본 PM 자성 #8 (신규 type 사용 시 namespace using 사전 검증 누락). EerieVillage `c052d78` push 정합. **[2026-05-13 신규 3건]** (1) Player 죽는 모션 X fix — Player.controller parameter "hurt" 부재 측정·`SetTrigger("hit")`·`updateMode=UnscaledTime`. (2) 부활 모션 중 움직임 fix — PlayerSpawn simulated 복원 폐기·EnablePlayerInput 영역 이전. (3) 투사체 잔상 진단 — `[Projectile][SelfDestruct]`·`[Projectile][OnDestroy]` Debug.Log·회수 의무. 본 PM 자성 #9 (Animator parameter 사전 측정 누락). EerieVillage `69a1805` push 정합. **[2026-05-13 NullReferenceException + 잔존 근본 fix]** ProjectileSpawner.Trigger 영역 collider isTrigger=true 활성 시점 vs Initialize 호출 시점 race → OnTriggerEnter2D 영역 `_runtime=null` NullReferenceException → SelfDestruct 미호출 → 영구 잔존. fix: OnTriggerEnter2D 영역 `_runtime/_data == null` defensive return + Update 영역 `_data == null` 시 즉시 SelfDestruct. 본 PM 자성 #10 (race condition 사전 측정 누락). EerieVillage `1437720` push 정합. **[2026-05-13 신규 3건]** (1) 사망 팝업 타이밍 fix — LevelUpManager.HandleLevelUp 영역 Player 사망 상태 시 _pendingLevels 영역 저장·Update 영역 IsAlive 회복 시 표시. (2) Player 사망 y -0.3 추가 (누적 -0.6). (3) 투사체 잔상 강화 + 진단 — Projectile.Update 영역 lifetime+0.5 backup·Initialize·Trigger 영역 진단 Log·회수 의무. EerieVillage `b1931af` push 정합. **[2026-05-13 근본 원인 fix]** 재시작 시 정지 투사체 누적 — Time.timeScale=0 (LevelUp 등) 영역 Time.time·Invoke 정지 영역 영구 잔존. fix: Projectile `_spawnTime = Time.unscaledTime`·Update 영역 unscaledTime lifetime check·Invoke 폐기·CancelInvoke 추가 안전. 본 PM 자성 #11 (timeScale 영향 사전 측정 누락). EerieVillage `705d943` push 정합. **[2026-05-13 진단 Log 회수]** PD "사라졌어" 정합 작동 확인 후 진단 Debug.Log 5종 revert (ProjectileSpawner·Projectile.Initialize·SelfDestruct·OnDestroy·EnemyHit). Projectile.Update lifetime backup·CancelInvoke 안전망 보존. feedback_pm_root_diagnosis_priority 정합. EerieVillage `41fa4e4` push 정합. **[2026-05-13 신규 2건]** (1) MeleeArea 실전 발사 연결 — SkillFireEvent.Execute switch 영역 MeleeArea case·CardId 분기 (A04·A_Laser·기타). (2) FX AutoDestroy unscaledTime — FxAutoDestroyUnscaled MonoBehaviour 신규 (Object.Destroy 영역 timeScale 영향 fix)·전수 변경·WaitForSecondsRealtime. 본 PM 자성 #12 (Unity 표준 API timeScale 영향 사전 측정 누락). EerieVillage `26b0666` push 정합. **[2026-05-13 신규]** A04 번개 충격 적 유무 무관 자동 발동 — LightningStrikeSpawner.Trigger 영역 candidates 0 시 Player 위치 fallback spawn. A05·A_Laser = 이미 Player 위치 기준 발동·정합. EerieVillage `ebedf6d` push 정합. **[2026-05-13 InvalidOperationException Input System fix]** ParticleGroupView (2).cs 영역 삭제 (Scenes 폴더 영역 비정상 .cs·미사용·StandaloneInputModule 동적 부착 코드)·ProjectSettings activeInputHandler 1→2 (Both 모드·호환). 본 PM 자성 #13. EerieVillage `b30976a` push 정합. **[2026-05-13 본 PM 자성 #14 + fix 정정]** PD 직접 자성 지적 — 본 PM 직전 미승인 `.cs` 삭제 영역 정정. PD 재배치 후 ParticleGroupView (2).cs UnityEngine.Input → InputSystem 전환·activeInputHandler 2→1 revert. EerieVillage `b23e00f` push 정합. **[2026-05-13 Phase A]** A12 정화의 빛 신규·A08 저주의 화살 이펙트 적용 — ActiveSkillData.CastFxPrefab 신규·ProjectileSpawner.Trigger 영역 CastFx spawn·SkillRuntimeFactory.AvailableCardIds 7종 확장. **Phase B 대기** (A06 독 늪·A11 정령불 신규 Effector). EerieVillage `5077f5d` push 정합. **[2026-05-13 Phase B]** A06 독 늪·A11 정령불 신규 Effector + 1키·2키 매핑 — PoisonSwampSpawner/Instance/PoisonedEnemyMarker·SpiritFireSpawner/Instance 신규·SkillFireEvent switch PlacementPersistent·Minion case 확장·TestSkillFireOn1to5 Category 분기 추가·A06·A11 .asset 신규·SkillRuntimeFactory 9종. PD Inspector Player.prefab Skill1·Skill2 drag&drop 필요. EerieVillage `f292eb4` push 정합. **[2026-05-13 Phase B FX 재생 fix]** ParticleSystem 명시 `Play(true)` 호출 추가·PoisonSwampInstance 영역 BoxCollider2D·Rigidbody2D 자식 GO 분리 (ParticleSystem root 영향 차단). EerieVillage `b1b476a` push 정합. **[2026-05-13 A11 frame 제어]** FX_Rotating shield Animator frame 제어 — intro 1~88·loop 89~105 반복·outro 106~169 (남은 frame). Animator.Play(STATE_HASH, 0, normalizedTime) 매 frame 호출. EerieVillage `ebd0808` push 정합. **[2026-05-13 A12·A08·전수 FX Play]** 4 Spawner + Projectile 영역 ParticleSystem.Play(true) 명시 호출 전수 적용 (직전 b1b476a 영역 PoisonSwamp·SpiritFire만 적용 영역 영역 영역 보완). EerieVillage `68843a8` push 정합. **[2026-05-13 A08 sprite 방향 fix]** ActiveSkillData.ProjectileAngleOffset (float Range -360~360) 신규·Projectile.Initialize 영역 angle 보정·A08.asset 180 (FX_PinkMagicArrow sprite left→right). EerieVillage `71c3b7d` push 정합. **[2026-05-13 A08 FX 진단]** A08.asset GUID 정합·코드 정합 측정. PD 보고 영역 실측 진단 Debug.Log 추가 (회수 의무). EerieVillage `aa6cef1` push 정합. **[2026-05-13 CS1056 fix]** ProjectileSpawner.cs interpolated string `\"NULL\"` escape 영역 컴파일 에러·ternary 결과 변수 분리 fix. 본 PM 자성 #15 (Edit 후 컴파일 사전 검증 누락). EerieVillage `9879425` push 정합. **[2026-05-13 fileID 잘못된 측정 정정·자성 #16]** PD Inspector 측정 결과 영역 본 PM .asset 영역 fileID 영역 자식 GameObject 영역 매핑 영역. `grep -m 1` 영역 첫 GameObject 영역 = root 영역 영역 X. A08·A06·A12 .asset 영역 fileID 일괄 정정 (FX_PinkMagicArrow_Hit·FX_PinkArrow_Shoot·FX_Venom_Spray·FX_Icelight_Seal). 올바른 측정 = `awk m_Name + m_Father=0 정합`. EerieVillage `b26eb42`·`447ea92` push 정합. **[2026-05-13 CastFx 방향 + 진단 회수]** CastFx Instantiate 영역 facing+ProjectileAngleOffset+FxRotation 적용 (sprite 반대 방향 정정)·진단 Debug.Log 3종 revert. EerieVillage `7ad3319` push 정합. **[2026-05-13 A08 spawn 끝점·grace]** A08.asset OffsetDistance.x=1.5 (캐스팅 끝 spawn)·Projectile.OnTriggerEnter2D 영역 0.1초 grace 추가 (Hit FX Player 위치 회피). EerieVillage `eab215d` push 정합. **[2026-05-13 ScalingMode Hierarchy 전수]** 모든 fx spawn 영역 ParticleSystem.MainModule.scalingMode = Hierarchy 설정 (HitFxScale 정합 적용·7 파일 전수). EerieVillage `6ed6efe` push 정합. **[2026-05-14 자연 fade SelfDestruct]** Projectile.SelfDestruct 영역 즉시 Destroy 영역 → ParticleSystem Stop(emission)·Collider/박스 disable·_speed=0·0.5s 후 Destroy·FADE_START_RATIO 0.85. 발사 영역 영역 영역 trail 자연 연속. EerieVillage `2ee5084` push 정합. **[2026-05-14 A08 캐스팅 제거·적 조준]** A08.asset OffsetDistance.x=0·CastFx=null·TargetEnemyOnFire=1·ActiveSkillData.TargetEnemyOnFire 신규·ProjectileSpawner.Trigger 영역 nearest enemy 방향 발사. 벽·발판 관통 X 영역 = Projectile.Update Layer 0·16 OverlapPoint 영역 정합. EerieVillage `55ee4f3` push 정합. **[2026-05-14 HitFx sortingOrder·적 조준 하단]** 모든 hit fx (Projectile·LightningStrike·MeleeArea·Laser) Renderer.sortingOrder += 100 (Enemy 영역 위)·ProjectileSpawner TargetEnemyOnFire 영역 toEnemy.y -= 0.5 (hitbox 영역 영역 영역 적중). EerieVillage `eb33e64` push 정합. **[2026-05-14 적 조준 중간 보정]** toEnemy.y -= 0.5 → 0.25 (이전·1차 중간·너무 하단 정정). EerieVillage `b52c99d` push 정합. | **진행중** | 신규 `Assets/Scripts/MyUI/SkillInventoryHUD.cs` (OnGUI 좌상단·장착 액티브 DisplayName·Lv·CooldownRemaining/EffectiveCooldown·패시브 카운트). PlayerController.Awake 자동 부착. 보강: ProjectileSpawner fallback prefab에 SpriteRenderer + 동적 흰색 원 sprite + 속성별 색상 (Fire 주황·Frost 하늘·Dark 보라·Lightning 노랑·Physical 흰). Unity 기본 자원 활용 — Texture2D 동적 생성 16×16 알파 원. **[이펙트 개선 완료 2026-05-13]** (PD 지시 "이펙트 개선작업은 완료처리"). 본 세션 (`cranky-wescoff-e855b0`) 누적: (1) 5 스킬 통합 + 1~5 키 발사 시스템 — A02·A04·A05·A_Laser·A13 (EerieVillage `2ebf313`). (2) Inspector 즉시 반영 필드 확장 — HitboxSize·OffsetDistance(Vector2)·OffsetXY·FxRotation·HitFxScale·DamageFrameDelay·EnableRepeatDamage·MaxHitCount·RepeatFrameInterval. (3) hit 모션 + flash 연출 (붉은색·alpha 50%·1 frame) — Animator self-loop transition + Health.DecrementBypassInvulnWithHit. (4) Scene 잔존 박스·FX 6개 cleanup + HideFlags.DontSave 8 spawn 지점 (EerieVillage `60e28e3`) — Edit Mode execute_code 측정 시 Scene 오염 방지 표준 확립. (5) FxRotation 박스 미적용 분리 (EerieVillage `ea7d32f`) — 박스(판정) = facing 만 · 이펙트(시각) = facing + FxRotation. 4 case 검증 (facing R/L × FxRotation 0/90 박스 무반응·facing 좌/우 정확 반전). (6) A05 좌우 베기 이펙트 Player 동조 (EerieVillage `f6c6eb5`) — MeleeAreaSpawner.SetParent(true) 추가·Player 전진 시 이펙트 밀림 정정 (Δ+2.0 동조 측정). 양 레포 push 정합. | — | **이펙트 개선 영역 = 완료 처리.** HUD·Icon UI·Layer Lab 카드 정합 등 잔여 사항은 PD 후속 결정 대기. 인수인계서: `공유/조직공지/2026-05-13_BT12-Dev_세션종결인수인계.md`. **[이펙트 작업 완성 확정 2026-05-14]** (PD 발화 "스킬 이펙트 작업은 완성이야. 임의로 투사체 판정 범위나 크기 등이 바뀌지 않도록 지금 상태를 잘 기록해"). 본 PM SOT 신설: `프로젝트/EerieVillage/개발/spec/스킬_이펙트_확정_v1.md` — 13 활성 스킬 (A01·A02·A03·A04·A05·A06·A08·A11·A12·A13·A14·A15·A_Laser) 핵심 필드 표 + 박스↔이펙트 분리 원칙 + EerieVillage stamp `1a1de0c`. **변경 금지 원칙**: PD 직접 명시 지시 없이 임의 변경 금지. 변경 시 SOT §4 갱신 + commit + PD 보고 의무. 본 PM·차기 세션 PM 모두 본 SOT 준수. | | BT12-MVP-A | 2026-05-08 | **경험치·레벨업·스킬 카드 선택 UI** — PD 직접 지시 2건 (1) 적 처치 → EXP → 레벨업마다 스킬 카드 3개 선택 기능 (2) 레벨업 UI (스킬 효과 추후·UI만). PD 첨부 예시 영역 ("기술 선택" 화면 — 카드 3장 가로·색상 배너·원형 아이콘·동심원·"레벨 N"/"최대"·"확인" 버튼). PD 결정 (β) 채택 — BT12-Dev 보류 일부 해제·BT12-MVP-A 분리 항목 진행. **PD 결정 D안 (2026-05-09)** — 기능 우선·그래픽 디테일 차후 영역. | **D안 완료 2026-05-09** | [Phase 1 완료] `프로젝트/EerieVillage/개발/spec/BT12-MVP-A_설계_v1.md` (~600 라인). [Phase 2-A 완료] EerieVillage `047661c` — 시스템 코드 6 + JSON 테이블. [Phase 2-B 코드 완료] EerieVillage `5b2b753` — UI 컴포넌트 2 + LevelUpManager 통합. **[Phase 2-B asset 5 완료 2026-05-08]** EerieVillage `755a51c` — `Assets/Data/SkillPlaceholders/{A01_jineonbu, A05_hagikjin, P01_bonghwanggyeok, P12_saengmyeongkkot, AW01_cheonbugyeongmun}.asset` (5) + 각 .meta (5) + folder meta 2 = 12 파일. C49 표준 — Phase 1 dev-team-lead Opus 첫 정합 호출 + Phase 2 Sonnet 위임 + Phase 3 PM 검증. **dev-team-lead 자진 고지** — 설계서 v1 §2-4 영역 P01·P12·AW01 BT11-Plan v0.2 정합 X (3건 정정 적용). **설계서 v1 §2-4 + §7-1 정정 완료** (commit 후속). PD Editor 가이드 신규 `BT12-MVP-A_Phase2B_PDEditor가이드.md`. 대화로그 엔트리 10. | — | **PM 후속 대기**: ① Phase 2-B B (Prefab) + C (Scene 통합) — **PD 직접 발화 (2026-05-08): "단계1은 완료. 단계2, 3은 개발팀에서 작업해줘" + "E"** → 옵션 E 채택 (Claude Desktop Unity MCP 위임) → 본 PM 의뢰서 작성 `BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md` (~16K) → PD Claude Desktop 새 세션 영역 의뢰서 첨부 영역 작업 진행 → EerieVillage commit·push → 본 worktree PM 보고 ② Phase 3 dev-team-lead 통합 검증 (Phase 1 + 2-A + 2-B asset + Prefab + Scene + BT5-Dev/BT7-Dev 회귀) ③ **단계 4 PD Play 검증** (적 처치 → EXP → 레벨업 → UI 노출 → 카드 선택 → 게임 재개) ④ 기획팀 별도 안건 — `01_카드_풀.md` line 114 P12 = "도약강화" 잔존 정정 (`02_스킬_효과_컨셉.md` line 381·418 영역 동기화 X) ⑤ icon sprite asset 5장 별도 작업 ⑥ 완료 아카이브 이동. (PD Editor 가이드 영역 = 옵션 D 보류 영역·차기 영역 활용 가능) | | BT12-Dev | 2026-04-24 23:00 | **스킬 시스템 설계 (C43 "개발팀" 호칭 직접 수령 + C49 시범 적용)** — PD 직접 지시 "개발팀은 기획서를 토대로 스킬 시스템 설계 진행". 기획서 v0.2 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉.md` 액티브 6카테고리·패시브 5카테고리·각성 4패턴) + CSV v0.3 60종 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉_v0.3.csv` UTF-8 BOM) 토대. C49 표준 프로세스 시범 적용 (개발팀장 Opus 설계 → 클라이언트팀 Sonnet 구현 → 개발팀장 검증) **[Phase 2-A 완료 2026-05-09]** Skills 13 파일 신규 EerieVillage `87710ba` (Interfaces 4 + Data 4 + Runtime 4 + Events 1). **[Phase 2-B 투사체 완료 2026-05-09]** Effectors 7 파일 신규 + SkillFireEvent 정정 EerieVillage `2f2790c` (Sonnet 자율 push·feedback `feedback_pm_sonnet_subagent_unauthorized_push.md` 신설). **[Phase 2-C 투사체 6 asset 완료 2026-05-09]** PD 결정 "(a)안" — 본 PM 직접 placeholder 수치 작성. EerieVillage `c01f25a` (14 파일·A01·A02·A03·A08·A14·A15 ActiveSkillData ScriptableObject). DisplayName 한글만 (한자 X). 차후 balance-designer 정식 수치. SOT 채택 = PD 본문 (A16 사신 강림·A17 오발탄·A18 죽음의 가시). Phase 2 분할 = (b) 5분할 + b-1 카테고리 6분할. **[Phase 2-D BT12-MVP-A 통합 정정 완료 2026-05-09]** EerieVillage `d53150b` — 6 파일 수정 + 9 .meta 보충. LevelUpManager._pool 제거 → SkillRuntimeFactory.RandomDraw3() · SkillSelectionUI/SkillCardSlot ActiveSkillData 시그니처 전환 · PlayerController Awake PlayerSkillInventory 자동 부착 · Projectile Layer Enemy fallback (Minor 1·proxy) · SkillRuntimeFactory.RandomDraw3 신규. Sonnet 의뢰서 "git add·commit·push 절대 금지" 명시 (feedback `feedback_pm_sonnet_subagent_unauthorized_push.md` 정합). Compile error 0건. pm-auditor Pass + Minor 1. | **진행중** | **[Phase 1 완료 2026-04-24]** 개발팀장 Opus 직접 설계 완결 — `프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md` (1074 라인, 14 섹션). §1 아키텍처 4계층 · §2 인터페이스 4종(`ISkillRuntime`·`IActiveSkill`·`IPassiveSkill`·`IAwakeningSkill`) + ScriptableObject 3종(`ActiveSkillData`·`PassiveSkillData`·`AwakeningSkillData`) + `PlayerSkillInventory`·`PlayerStats` · §3 CSV→ScriptableObject→Runtime→Health.Decrement 데이터 흐름 + 카테고리 문자열 매핑 · §4 VS 순수형 자동 발동 사이클 (OnTime·OnHit·OnKill + `ActiveSkillRuntime.Tick(deltaTime)` 독립 Cooldown) · §5 `AwakeningManager` 3 조건 동시 충족 + 4 패턴 Dispatcher + 다중 각성 선택 UI · §6 카테고리 매핑 6+5+4 (B는 BT7-Dev `AttackHitbox` 재활용 · 나머지 5 효과 발동기 신설) · §7 Phase 2-A~E 작업 단위 분해 (스크립트 25개·테스트 10건·asset 60개) · §10 BT7-Dev 통합 영역 (Health·AttackHitbox·PlayerAttackTicker·PlayerController 완전 보존 · `Health.OnDamagedEvent` 확장 필요 명시) · §11 기각안 5건 + 대화로그 추가 2건 (총 7건 C32 초과). 대화로그 `공유/대화로그/EerieVillage/2026-04-24.md` `[BT12-Dev Phase 1 완료] 개발팀장 스킬 시스템 설계 v1 (1074 라인)` 엔트리 완결. **C48 3자문 전수 통과**로 Phase 2 클라이언트팀 Sonnet Task는 본 Task에서 호출하지 않고 **PM 차원 별도 위임** 권고 (C48·C49·C50 정합) | **기획서 확정 대기** (PD 2026-04-25 직접 지시 — "기획서 확정되기 전까지 작업 대기") | **재개 트리거**: 기획팀 v0.3 또는 v1.0 확정 + balance-designer 60종 수치 확정 + narrative-designer 카드명 세계관 재매핑 결정 → C50 Phase 2 사전 승인 옵션(a/b/c/d) PD 결정 → 분할 시 Phase 2-A~E 순차 진행 (인터페이스·SO → 중앙 컴포넌트 → 효과 발동기 → 60장 .asset → EditMode 테스트) → Phase 3 개발팀장 검증 → 완료 아카이브. **선행 차단 블로커**: `paths.local.json.UNITY_PROJECT_ROOT: __SET_PER_PC__` 미설정 — 재개 시 PD PC 경로 설정 필요. Phase 1 산출물 1074 라인 설계 문서는 보존 | diff --git a/공유/기획/GodDem/2026-08-22_P3C_스테이지_설계_v1.md b/공유/기획/GodDem/2026-08-22_P3C_스테이지_설계_v1.md new file mode 100644 index 0000000..9350df3 --- /dev/null +++ b/공유/기획/GodDem/2026-08-22_P3C_스테이지_설계_v1.md @@ -0,0 +1,422 @@ +# GodDem 스테이지 구조(아웃게임 결합 난이도 기준선) 설계 v1 + +> **작성**: balance-designer(기획팀) 2026-08-22 · **P3-C 산출물** (P32 맥락 분할 · C50 규모 "중~대") +> **PD 지시 원문(2026-08-22, 대화로그 §31 인용)**: "우선 원작처럼 맞춰 전체 밸런싱 동일성 확인 후 추후 변경할 부분을 지시할게" / (청사진v1 §0 인용) "총 스테이지 구성 등을 원작 게임과 동일하게 맞춰" +> **표기 정정(plan-auditor M-2 반영)**: "(A)형태이식·유한 캡 확정"은 PD의 문자 그대로의 발화가 아니라, 위 PD 원문을 B1(HeroLevel60·PromotionStar11 유한화)에 적용하며 총괄PM이 대화로그에서 붙인 **"해석·확정"** 라벨이다(대화로그 168행 부근). 본 문서는 그 조직 해석을 스테이지 축에 4번째로 적용하는 것이며, PD가 "스테이지도 유한하게"라고 직접 말한 적은 없다 — C5 정직성 원칙에 따라 원문과 해석을 구분해 표기한다. +> **선행 문서(전부 Read 완료)**: [`2026-08-22_원작아키텍처_이식청사진_v1.md`](./2026-08-22_원작아키텍처_이식청사진_v1.md)(청사진v1, §1-3·§4·§5) · [`2026-08-22_메타아키텍처_재설계_v1.md`](./2026-08-22_메타아키텍처_재설계_v1.md)(메타v1, §P3-C) · [`2026-08-20_원작밸런스_해독_매핑_v1.md`](./2026-08-20_원작밸런스_해독_매핑_v1.md)(매핑v1, §2-8·§4) · [`2026-08-22_P3B1_레벨승급_설계_v1.md`](./2026-08-22_P3B1_레벨승급_설계_v1.md)(B1, FinalAttack 캡슐화·R-C4·§6 런환산) · **[`2026-08-22_P3B2_장비강화_설계_v2.md`](./2026-08-22_P3B2_장비강화_설계_v2.md)(B2 v2, §6-2 TotalAttack(만렙)=283 실측 — 최초 v1 작성 시 누락, 감사 지적으로 추가 Read)** · [`2026-08-22_P3B4_스킬마스터리_설계_v1.md`](./2026-08-22_P3B4_스킬마스터리_설계_v1.md)(B4, MasteryAttackRatio·R-F3) · [`2026-08-21_S3_밸런스_조정안_v2.md`](./2026-08-21_S3_밸런스_조정안_v2.md)(S3 v2, EnemyBaseHp42·R-J) · [`2026-08-22_공격력_원작2층_재설계_v2.md`](./2026-08-22_공격력_원작2층_재설계_v2.md)(2층v2, R-M2·스테이지1 골드 실측 1,148G) +> **절대 제약**: GodDem 레포(`E:\NerdNavis\GodDem`) Read만 수행, 수정 0건. Unity MCP 미사용. 본 문서가 유일 산출물. B3(가챠) 침범 금지. +> **범위(C50)**: 스테이지 구조·난이도 곡선 설계까지(구현은 개발팀장). 몬스터 방어/속성 상성 시스템 신설은 범위 밖(B4 §2-2·대화로그 303행 "P3-C 이후"로 이미 유보됨). +> **표기 규칙(C5·C44)**: 🟢확정(코드/원작데이터 직접 실측) · 🟡추정(형태는 원작·형제 설계 근거, 절대치는 플레이테스트 이전 1차값) · 🔴재추출 필요/미확보 +> **감사 이력(C35)**: plan-auditor 모드A 1회 수행 — 판정 **조건부통과**(Critical 4·Major 7·Minor 7, 산술은 전량 무오류 확인). 본 v1은 그 지적을 전부 반영한 최종본이다(Critical 4건 = §2 B2 계수 오류·§2-3 SkillAttackMul 미반영·§7 재추출 선행조건 무효화 과잉·§5 골드 검증축 누락 — 아래 각 절에서 정정 반영). + +--- + +## 0. 결론 요약 + +**R-F3(B1+B2+B4 결합 최댓값이 P3-C 난이도 기준선에 미치는 영향, B4 §13·§16 인계)를 본 문서에서 해소한다.** plan-auditor 감사로 최초 초안의 계산 오류 1건(B2 기여분 과소— §2)과 설계 전제 누락 1건(인런 `SkillAttackMul` 완전 미반영 — §2-3)을 발견해 **아래 수치는 전부 감사 반영 재계산치**다. + +1. **스테이지 = 원작 `teamwavepassreward` 54단계(기본 수열 `[2,50,100,200,350,500]` 6스텝 주기가 9회 반복 확인 — 6스테이지×9챕터) 유한 캡 채택.** 현재 `Stage` 무한 증가(코드 실측, 상한 없음)를 **폐기**하고 Stage 1~54 유한 구조로 전환한다. 다만 이 "유한 캡" 방향 자체는 **B1(HeroLevel60) 결정을 스테이지 축에 유비 적용한 것**이며 PD가 스테이지에 대해 직접 재확인한 바는 없다 — §7에서 팀장·PD 확인 필요 사항으로 별도 상신한다(C36 경계, plan-auditor C-3 반영). +2. **★ 신규 발견 — 현재 스테이지 공식을 그대로 54단계까지 연장하면 몬스터 HP가 수학적으로 불가능한 값(약 5.7×10¹⁹)으로 폭발한다.** `EnemyBaseHp × StageStep^(stage-1)`(StageStep=2.1 고정)을 54제곱까지 연장한 결과다. **아웃게임 전층 결합 + 인런 스탯강화 결합 상한(2,922, §2)조차 이 값에 10¹⁶배 못 미치고, 인런 레벨업 드래프트의 `SkillAttackMul`(무상한 승산, §2-3 신규 반영)까지 현실적 범위(최대 약 2.6만 배)로 더해도 여전히 10¹²배 이상 부족**하다 — 어떤 현실적 빌드로도 도달 불가능한 자릿수임을 재확인했다. 해결책: **챕터(6스테이지=1챕터, 9챕터) 단위 체감 StageStep**으로 재설계하되, 감사 반영 후 목표치를 92,318,561(스테이지54 보스 HP)로 재조정했다(§3, 최초 초안의 4,247,728은 `SkillAttackMul` 누락으로 과소 설계됐던 값). +3. **★ 신규 발견 2 — 몬스터 처치 경험치(`ExpReward = Base×1.2^(Stage-1)`)도 동일 계열로 폭발한다**(스테이지54 몹 1마리 처치가 레벨업 요구치 1,300의 145배 경험치를 지급 → 킬 1회당 145회 레벨업 동시발생, 게임정지급 결함). 챕터 체감 곡선으로 별도 재설계한다(§4, 이 부분은 감사에서 지적되지 않아 최초안 유지). +4. **골드는 킬당 산식은 변경하지 않되(이미 선형·안전), 런 완주 총액을 신규로 계산한다(414,018G) — 이는 B1 §6이 "스테이지 무한이라 미확정"으로 남겼던 값을 본 문서가 최초로 확정하는 것**이며, B1+B2+B4 완전 투자 총액(1,942,464G)과 대조해 "완주 런 약 4.7회분"이라는 신규 경제 지표를 제공한다(§5, 감사 지적 반영). + +| 항목 | 확정 | +|---|---| +| 총 스테이지 | **54단계**(원작 `teamwavepassreward` dif 54 그대로, 6스테이지×9챕터) | +| 웨이브/스테이지 | **10 유지**(원작 데이터에 근거 없음 — 현행 유지, C2) | +| 유한/무한 | **유한**(54단계) — 55 이후는 스테이지54 수치에서 동결(§6). **이 전환 자체는 PD/팀장 확인 상신 대상**(C36, §7) | +| 아웃게임+인런 결합 Attack 상한 | **2,922**(SkillAttackMul 제외 하한, §2 재계산) | +| 몬스터 HP | 챕터별 체감 StageStep(2.1→1.02), Stage1 앵커(42, S3 v2) 불변, 4:1 비율 불변, **Stage54 보스 HP=92,318,561**(재계산) | +| 경험치 | 챕터별 체감 ExpStep(1.2→1.002), Stage1 앵커(12) 불변 | +| 골드 | 킬당 산식 변경 없음. **런 완주 총액 414,018G 신규 계산**(B1+B2+B4 총 투자 대비 4.7회분) | +| 몬스터/보스 창작 | monsterteam 부재 재확인(청사진 §1-3 승계) → 4:1 비율·기존 앵커 위 챕터 곡선 창작. 보스=BossHpMultiplier8 불변 | +| R-J | 웨이브1~2(원 범위) → 스테이지1~6/웨이브1~60으로 **확대**(축소 아님, 정정) | +| R-M2 | **스테이지 설계로 해소하지 않음**(의도적, 근거는 §8-4) | +| 재추출 필요 | `teamwavepassreward` dif54 이후 반복 여부 **미해소**(🔴) — 청사진이 이를 P3-C **선행 조건**으로 문자 그대로 명시했으므로, 본 문서가 "차단 아님"으로 재해석한 것을 팀장 확인 필요 사항으로 명시한다(§6) | + +--- + +## 1. 설계 전제 + +| 항목 | 값 | +|---|---| +| 기준 플레이어 수준 | 신규(HeroLevel0·Promotion0·장비0·Mastery0, Attack=22) ~ 아웃게임+인런 강화 전부 맥스(Attack=2,922, `SkillAttackMul` 제외) ~ "레벨업 드래프트 실현 밴드"(§2-3, 인런 349회 레벨업 중 공격카드 픽 69~105회 가정 시 Attack 233만~7,640만) 3단 밴드 | +| 목표 경험 | "총 스테이지 구성 원작 동일" — 원작 54단계 형태 이식 + "매판 리셋 인게임 강화 + 영구 아웃게임 성장이 함께 오르는 난이도 곡선" — 초반은 신규유저 안전(S3 v2 그대로), 후반은 아웃게임 투자만으로는 부족하고 **그 판의 레벨업 드래프트 성과가 실제로 갈림길을 만드는** 구간(§2-3 근거) | +| P30 재미 근거 | "총 54단계·9챕터"라는 명확한 종착점이 있어야 "이번 런이 얼마나 멀리 왔는가"를 원작처럼 가늠할 수 있다(청사진 §0 "원작은 능력치가 아웃게임을 통해 점차 확장" 지적과 대칭 축) — 무한 웨이브 서바이벌은 "얼마나 버텼는가"만 체감되고 "얼마나 왔는가"는 체감되지 않는다. 챕터 경계마다 압박이 한 번 꺾이는 구조(§3)는 "지금 챕터를 넘겼다"는 명확한 이정표 재미를 추가하며, 후반 챕터일수록 아웃게임 투자보다 **그 판의 드래프트 운·선택**(공격력 카드 우선순위)이 승패를 가르게 설계해(§2-3) "이번 판은 다르게 풀렸다"는 로그라이크 고유의 재미축을 스테이지 종착점 근처에 배치한다 | +| 전제 스탯 앵커 | `SurvivalMeta.BaseAttack=22`(Stage1 기준 불변) · B1 HeroLevel60(+120atk 예산)+Promotion11(+22%) · **B2 장비 6종 완전 강화(+141atk, B2 v2 §6-2 실측 — 최초안의 "+47"은 B2강화 이전 카탈로그 값과 혼동한 오류였음, plan-auditor C-1 정정)** · B4 Mastery 3종 그레이드6(+42%p, MasteryAttackRatio) · 인런(RecalcPlayer) attack_add+hurt_add 6단계 누적(+174%) + attack Flat 6단계(+1650) · **인런 레벨업 드래프트 `Player.SkillAttackMul`(무상한 승산, §2-3 신규 반영 — 최초안 누락분)** | +| 전제 경제 앵커 | S3 v2 확정 골드 요율(BaseGoldReward14·GoldPerStage3, 이미 검증) — 킬당 산식은 **변경하지 않음**(§5). 런 완주 총액(414,018G)은 신규 계산 | +| C39 실측 확증 | `SurvivalBattleManager.cs` 전문(Stage/Wave 4상수·`SpawnWave()`·`OnEnemyDied()`·`ExpTable`) · `SurvivalSkill.cs` 전문(`Catalog`·`GradeWeight`·`GradeScale`·`Draw()`, §2-3 신규 확증) 재확인 — 본 세션 직접 Read 완료. Stage 상한 코드 없음 재확인 | + +--- + +## 2. 아웃게임+인런 결합 Attack 상한 재도출 (R-F3 해소 계산 — 감사 정정 반영) + +### 2-1. 아웃게임+인런 강화 트랙 결합 (SkillAttackMul 제외 — 정정 계산) + +B1(§5-1)·B4(§0)가 각각 부분 계산했던 것을 결합하되, **최초 초안이 B2의 기여분을 "+47"(B2 강화 신설 전, S3 v2 카탈로그 원본값)로 잘못 인용한 것을 정정**한다. B2 v2(§6-2)의 실측 결합값은 `TotalAttack(6종 만렙 장착)=283`(base22 제외 순수 장비 기여 **141** — item 6종 L16 완전강화, 원작 M수열 형태이식 결과)이다. + +``` +FinalAttack_max = (BaseAttack + EquipAttack + HeroLevelBudget) × (1 + PromotionRatio + MasteryRatio) + = (22 + 141 + 120) × (1 + 0.22 + 0.42) + = 283 × 1.64 + = 464.12 + +Player.Attack_max(인런 attack_add/hurt_add/attack Flat까지 전부 맥스, SkillAttackMul=1 가정) + = FinalAttack_max × (1 + atkRatio_max) + atkFlat_max + = 464.12 × (1+0.87+0.87) + 1650 + = 464.12 × 2.74 + 1650 + = 1,271.7 + 1650 + = 2,921.7 ≈ 2,922 +``` + +**정정 영향**: 최초 초안의 2,499는 **B2 계층 자체가 사실상 누락된 값**이었다(47은 B2강화 이전 카탈로그 최대치일 뿐, B2가 실제로 설계한 "장비별 레벨업" 자체를 반영하지 않은 값). 2,922로 정정해도 등가 스테이지(아래)와 폭발 배율의 결론은 바뀌지 않으나, §3의 챕터 목표치 산출 기준이 이 값으로 교체된다. + +### 2-2. 등가 스테이지(참고, R-J 정량화) + +`2922/22=132.8배`는 기존 StageStep=2.1 곡선에서 `2.1^6.59` — 즉 **아웃게임+인런 강화 전부 맥스 유저는 스테이지 7~8 지점(정확히는 7.6)과 동급 위협에서 "시작"한다**(레벨업 드래프트 배율 0 가정 시). §8-3에서 R-J 정량 근거로 재사용한다. + +### 2-3. ★ 신규 반영 — 인런 레벨업 드래프트 `SkillAttackMul`(무상한 승산, plan-auditor C-2 지적) + +**최초 초안의 결정적 누락**: `SurvivalBattleManager.RecalcPlayer()`의 `Player.Attack = (... ) * Player.SkillAttackMul`에서 이미 읽었던 `SkillAttackMul` 항을 §2 계산에서 반영하지 않았다(C39 위반 — 실제로는 `SurvivalSkill.cs`를 열지 않고 계산했다). `SurvivalSkill.cs` 재실측(🟢): + +```csharp +g => Make(g, "공격력 강화", ..., 0.08f, (m, v) => m.Player.SkillAttackMul *= 1f + v), +``` +등급 가중치 `{5514,2944,888}`(합9346)·등급배율 `{1.0,1.5,2.2}` → 가중평균 `v = 0.08 × Σ(weight×scale)/Σweight ≈ 0.1017`(약 +10.2%/픽, **승산·무상한**). + +`Draw(3)`은 액티브 슬롯 1개(가용 시 고정) + 나머지 2개를 **10종 카탈로그에서 무복원추출**한다 — "공격력 강화"가 그 2자리에 뽑힐 확률은 `1-(9·8)/(10·9)=20%`(레벨업 1회당). + +**레벨업 총 횟수 산정**(§4-2 ExpStep 곡선 + 킬 수 조합, 자체 계산): +``` +54스테이지 총 킬 수 = 3,942마리(일반 3,888 + 보스 54) +총 획득 경험치(§4-2 챕터 곡선 적용) ≈ 446,600 +레벨업 횟수(요구치 1,300 고정 나눔, 하한 추정) ≈ 344회 +공격카드 기대 픽 수 = 344 × 20% ≈ 69회 +``` + +| 시나리오 | 픽 수 | SkillAttackMul | Attack(2,922×배율) | +|---|---|---|---| +| 아웃게임+인런 강화만(레벨업 드래프트 전혀 없음, 참고용 하한) | 0 | ×1 | 2,922 | +| **기대값(하한, 20% 오퍼율 그대로 실현)** | **69** | **×800** | **2,336,410** | +| 낙관(공격카드 다소 우선 픽) | 85 | ×3,700 | 10,811,400 | +| 상한(공격카드 전량 우선 픽 가정) | 105 | ×26,151 | 76,393,300 | + +**이 발견의 무게**: `SkillAttackMul`은 원작 이식 레이어(B1·B2·B4)가 아니라 **본 게임 최초 출시 시점부터 있던 인런 레벨업 드래프트 자체의 무상한 승산 메커니즘**이다. 이는 최초 초안이 "아웃게임 레이어 결합"에만 집중해 정작 **인런 축의 기존 무상한 변수**를 놓친 것으로, B1 §3-4가 이미 경고한 "`BaselineAttack` const 복제" 결함과는 별개로, 스테이지 난이도 기준선 계산에서 반드시 함께 다뤄야 할 항이었다(C39-10 위반 — 자진 정정). + +**본 문서의 처리**: §3 챕터 목표치를 "기대값(69픽, ×800)" 시나리오에서 TTK 약 20초로 계산되도록 캘리브레이션한다(§3-2) — 이는 "아웃게임만으로는 스테이지54가 불가능(15,798초, §3-3)"과 "레벨업 드래프트 운이 나쁘면 어렵고, 좋으면 압도적(0.6초)"이라는 **넓은 폭을 의도적으로 허용**하는 설계다(로그라이크 빌드 다양성 장르 특성 인정, §1 P30 근거와 연결) — 폭 자체를 좁히는 것은 플레이테스트 데이터 없이는 불가능하며(C2), §9의 챕터별 CSV 9행이 유일한 튜닝 손잡이임을 §11에서 재확인한다. + +--- + +## 3. ★ 신규 발견 — 기존 공식을 54단계까지 연장하면 몬스터 HP가 폭발한다 + +### 3-1. 실측 계산 + +`SurvivalBattleManager.cs` 현재 공식(변경 없음, 코드 그대로): +``` +EnemyHp(stage, waveInStage) = EnemyBaseHp × StageStep^(stage-1) × WaveStep^waveInStage +BossHp(stage) = EnemyHp(stage, 9) × BossHpMultiplier +``` +`EnemyBaseHp=42, StageStep=2.1, WaveStep=1.04, BossHpMultiplier=8`(전부 S3 v2 확정치, 불변) 그대로 stage=54에 대입: + +| Stage | Boss HP(기존 공식 그대로 연장) | +|---|---| +| 1 | 478 | +| 10 | 379,900 | +| 20 | 6.34×10⁸ | +| 30 | 1.06×10¹² | +| 40 | 1.76×10¹⁵ | +| **54** | **5.72×10¹⁹** | + +§2에서 재계산한 Attack 상한 2,922(SkillAttackMul 제외)은 이 값의 약 **2.0×10¹⁶분의 1**이며, §2-3의 레벨업 드래프트 상한(76,393,300)을 더해도 여전히 **약 7.5×10¹¹배 부족**하다 — 인런·아웃게임을 통틀어 어떤 현실적 빌드로도 **수학적으로 도달 불가능**하다. StageStep=2.1은 원래 무한 반복(상한 없음)을 전제로 도입된 값(청사진 §3 실측 — GodDem 자체 `StageBalance.csv`(무관 카드배틀 자산)와의 정합을 위해 고른 값)이지, Survival 자체의 장기 곡선 검증을 거친 값이 아니다. 유한 종착점(54)을 도입하는 순간 이 지수는 재설계가 불가피하다. + +### 3-2. 해결 — 챕터(6스테이지=1챕터, 9챕터) 체감 StageStep (감사 반영 재계산) + +원작 `teamwavepassreward`의 실측 구조(기본 수열 `[2,50,100,200,350,500]` 6스텝 주기가 정확히 9회 반복 — 매핑v1 §2-8·청사진 §1-3)를 챕터 경계의 근거로 채택한다 — 6스테이지 챕터 9개 = 54단계. 챕터마다 **StageStep을 다르게** 두어 "챕터1(스테이지1~6)은 기존 검증 곡선 그대로, 이후 챕터로 갈수록 체감"시킨다. + +**타겟 재설정(감사 반영)**: 최초 초안은 Attack 상한을 2,499(SkillAttackMul 미반영)로 잘못 계산해 목표 BossHP를 지나치게 낮게(4,247,728) 잡았다. §2-3 반영 후 **"레벨업 드래프트 기대값(69픽, ×800배) 시나리오에서 TTK≈20초"**를 목표로 재설계한다. + +**생성 규칙(plan-auditor M-1 반영 — 명문화)**: 챕터 c(c=1..9)의 `StageStep(c)`는 **챕터 c에 소속된 스테이지에서 나가는 전이(그 챕터의 6개 전이) 전부에 적용**된다. 예: 스테이지6은 챕터1 소속이므로 스테이지6→7 전이도 챕터1의 StageStep(2.1)을 쓴다 — 챕터2의 StageStep(1.6)은 스테이지7→8 전이부터 적용된다. 즉 `HP(stage) = HP(1) × StageStep(chapter_of(1))^6 × StageStep(chapter_of(7))^6 × ... × StageStep(chapter_of(마지막 완결챕터))^(나머지 전이수)`로, "챕터 경계 스테이지(6,12,...,48)"에서 다음 챕터 계수로 전환된다. + +| 챕터 | 스테이지 범위 | StageStep | 챕터 종료 시 누적배율(스1대비) | Wave1 HP | Boss(W10) HP | Boss ATK(4:1) | +|---|---|---|---|---|---|---| +| 1 | 1~6 | **2.1**(불변) | 40.8배 🟢 | 1,715 | 19,532 | 4,883 | +| 2 | 7~12 | 1.6 🟡 | 899배 | 37,772 | 430,086 | 107,521 | +| 3 | 13~18 | 1.37 🟡 | 6,945배 | 291,667 | 3,321,068 | 830,267 | +| 4 | 19~24 | 1.22 🟡 | 25,713배 | 1,079,960 | 12,296,954 | 3,074,239 | +| 5 | 25~30 | 1.14 🟡 | 60,401배 | 2,536,831 | 28,885,616 | 7,221,404 | +| 6 | 31~36 | 1.08 🟡 | 101,173배 | 4,249,279 | 48,384,390 | 12,096,097 | +| 7 | 37~42 | 1.05 🟡 | 139,456배 | 5,857,138 | 66,692,273 | 16,673,068 | +| 8 | 43~48 | 1.03 🟡 | 169,751배 | 7,129,530 | 81,180,354 | 20,295,089 | +| 9(캡) | 49~54 | 1.02 🟡 | **193,041배** | 8,107,725 | **92,318,561** | **23,079,640** | + +챕터1(🟢)만 S3 v2 검증치 그대로 불변. 챕터2~9(🟡)는 본 문서가 처음 도출하는 1차값 — 플레이테스트 필수(§9의 `EnemyStageChapter.csv` 9행이 유일한 튜닝 손잡이). + +### 3-3. TTK 검증표 (§2-3 시나리오별, 공속0.5초 가정) + +| 시나리오 | Attack | DPS | Stage54 보스 TTK | +|---|---|---|---| +| 아웃게임+인런강화만(SkillAttackMul=1) | 2,922 | 5,844 | **15,799초(약 4.4시간) — 불가능, 의도됨**(레벨업 드래프트 없이는 스테이지54 클리어 자체가 설계상 성립하지 않음) | +| **레벨업 드래프트 기대값(69픽, ×800)** | 2,336,410 | 4,672,820 | **19.8초 — 캘리브레이션 목표 지점** | +| 레벨업 드래프트 낙관(85픽, ×3,700) | 10,811,400 | 21,622,800 | 4.3초 | +| 레벨업 드래프트 상한(105픽, ×26,151) | 76,393,300 | 152,786,600 | 0.6초 | + +**해석**: 아웃게임 투자(B1+B2+B4)만으로는 스테이지54에 절대 닿지 못한다 — 그 판의 레벨업 드래프트가 "공격력 강화" 카드를 기대치만큼 뽑아야 비로소 도달 가능해진다. 이는 §1 목표("아웃게임 투자만으로는 부족하고 그 판 드래프트 성과가 갈림길")를 정확히 구현한다. + +### 3-4. 부수 확인 — WaveStep 후반 감쇠는 제안만 되고 미구현 상태였다 + +매핑v1 §4(a)가 "스테이지 5 이후 웨이브 내부 증가율을 1.04→1.03→1.02 단계 하향"을 제안했으나, `SurvivalBattleManager.cs` 실측 결과 `WaveStep`은 전 스테이지 공통 단일 상수(1.04)이고 스테이지 조건부 분기 코드는 **존재하지 않는다**(🟢, 제안이 구현되지 않은 채 방치됨). 본 설계는 이 갭을 별도로 메우지 않는다 — WaveStep 기여폭(최대 ×1.42/스테이지)은 §3-1 폭발(10¹⁹ 자릿수)의 원인이 아니기 때문이다(C2 — 원인이 아닌 것을 함께 고치는 과잉조정 방지). 별건 결함으로 개발팀장 인지만 요청한다(§10 후속조치). + +--- + +## 4. ★ 신규 발견 — 처치 경험치도 동일 계열로 폭발한다 + +### 4-1. 실측 + +`SurvivalBattleManager.cs` `SpawnWave()`: +```csharp +unit.ExpReward = Mathf.RoundToInt(BaseExpReward * Mathf.Pow(1.2f, Stage - 1) * (boss ? 8 : 1)); +``` +Stage=54 대입: `12 × 1.2^53 = 12 × 15,726 ≈ 188,700`(일반몹) — `RequiredExp`는 레벨20 이후 **1,300에서 고정**. 즉 **스테이지54 일반몹 1마리 처치만으로 약 145회 레벨업이 동시 발생**(188,700÷1,300)한다. `AddExp()`의 `while (Exp >= RequiredExp && PendingSkills == null)` 루프 구조상, 첫 루프에서 `PendingSkills` 세팅과 동시에 `Time.timeScale=0`이 걸려 즉시 정지되고, 나머지 144회분은 `ChooseSkill()`→`AddExp(0)` 재귀로 순차 처리된다(🟢 코드 확인) — 스테이지54 도달 유저는 몹 한 마리 죽일 때마다 카드 선택 팝업을 백 번 넘게 연속으로 봐야 하는 **게임정지급 결함**이다. 스테이지가 사실상 도달 불가능한 무한 곡선이던 기존 설계에서는 아무도 이 지점까지 가본 적이 없어 가려져 있던 문제로 추정된다(§3-1과 동일 패턴). + +**1킬=1레벨업 역전 하한(plan-auditor m-7 반영)**: `12×1.2^(s-1)≥1300`이 되는 지점은 **스테이지 27**부터다(s≥26.7) — 즉 챕터5(스테이지25~30) 부근부터 이미 몹 1마리가 요구치를 넘기 시작하며, 챕터9(스테이지54)에 이르면 145배로 악화된다. + +### 4-2. 해결 — 동일한 챕터 체감(ExpStep, 감사에서 지적되지 않아 최초안 유지) + +``` +ExpStep(chapter c) = 1 + 0.2 × 0.55^(c-1) (챕터1=1.2 그대로 유지, 이후 급격 체감) +``` + +| 챕터 | 종료 스테이지 | ExpStep | 일반몹 ExpReward | RequiredExp(1300) 대비 | +|---|---|---|---|---| +| 1 | 6 | 1.200(불변)🟢 | 29.9 | 2.30% | +| 2 | 12 | 1.110🟡 | 60.4 | 4.64% | +| 3 | 18 | 1.060🟡 | 89.9 | 6.92% | +| 4 | 24 | 1.033🟡 | 112.3 | 8.64% | +| 5 | 30 | 1.018🟡 | 127.0 | 9.77% | +| 6 | 36 | 1.010🟡 | 136.0 | 10.46% | +| 7 | 42 | 1.006🟡 | 141.2 | 10.86% | +| 8 | 48 | 1.003🟡 | 144.2 | 11.09% | +| 9(캡) | 54 | 1.002🟡 | **145.8** | **11.22%**(몹 약 9마리당 1레벨업) | + +챕터1(스테이지1~6)은 기존 `1.2^(stage-1)` 그대로 보존(스테이지6까지 1.2⁵=2.49배, 기존과 동일). §2-3의 "총 344회 레벨업·기대 69픽" 계산은 이 표를 입력으로 사용했다(자체 정합). + +--- + +## 5. 골드 이코노미 — 킬당 산식 무변경 + 런 완주 총액 신규 계산 (plan-auditor C-4 반영) + +### 5-1. 킬당 산식 — 무변경 확인 + +`GoldReward = (BaseGoldReward + GoldPerStage×(Stage-1)) × (boss?10:1)`은 **선형**이라 54단계 연장에도 폭발하지 않는다(Stage54: 일반몹 173G, 보스 1,730G — 안전한 자릿수). 원작 `teamwavepassreward`의 형태를 골드 보상에 이식할지 검토했으나 **채택하지 않는다**(§13 기각안1 — 보상 전달 메커니즘 자체가 원작(이산 클리어 보상)과 다름). + +### 5-2. ★ 신규 계산 — 런 완주 총 골드 (B1 §6 R-C2의 미확정치를 본 문서가 확정) + +`B1 §6` 원문: *"Layer①② 총 누적 비용(1,056,056G)을 '런 몇 회분'으로 환산하려면… Stage가 무한 증가 구조라 이 값 자체가 미확정"*. 본 문서가 Stage를 54로 유한화하므로, 이제 **런 완주 시 총 골드를 최초로 정확히 계산할 수 있다**. + +``` +54스테이지 완주 총 골드 = Σ(s=1..54) [72마리×(14+3(s-1)) + 1마리×(14+3(s-1))×10] + = 414,018G +``` + +**검증**: 스테이지1만 계산 시 `72×14 + 1×140 = 1,148G` — 이는 2층v2 §9-3이 **실측한 값(스테이지1 종료 누적 골드 1,148G)과 정확히 일치**한다(🟢 교차검증 통과). + +| 항목 | 값 | +|---|---| +| 54스테이지 완주 총 골드 | **414,018G** | +| B1(HeroLevel60+Promotion11) 총비용 | 1,056,056G | +| B2(6종 실투자 만렙) 총비용 | 359,728G | +| B4(마스터리 3종+언락 무배정) 총비용 | 526,680G | +| **B1+B2+B4 합계** | **1,942,464G** | +| **완주 런 환산** | **약 4.69회**(아웃게임 전층 완전 만렙까지) | + +**해석**: 아웃게임 5층(가챠 제외) 전부를 만렙 찍으려면 스테이지54를 **약 4.7회 완주**해야 한다 — 이는 §1 목표("계정을 오래 키울수록 이번 판 시작점이 높아진다")가 "몇 판이면 충분한가"에 실질적 답을 준다. 4.7회는 과도하게 짧지도(즉시 만렙화) 과도하게 길지도(수십 판) 않은 자릿수로 판단되나, **이는 §2-3의 레벨업 드래프트 운에 따라 스테이지54 도달 자체가 갈리므로, "매판 완주"를 전제한 계산이라는 점을 명시**한다(🟡, 완주 실패 런은 더 적은 골드로 종료 — B1의 전환 브릿지가 `TotalGoldEarned`를 완주 여부와 무관하게 누적 전환하므로 실패해도 골드는 보존됨, B1 §2-3 재확인). + +### 5-3. R-G2(후반 보상 체감) 재판정 + +챕터9 HP 누적배율(193,041배) 대비 챕터9 골드 배율(스테이지54/스테이지1 킬당 = 173/14=12.4배)은 여전히 격차가 크다. 그러나 §5-2의 런 총액 계산으로 "노력 대비 보상"의 실질 지표는 **개별 몹의 골드가 아니라 완주까지 걸리는 시간·완주 성공률**이며, 이는 §2-3의 레벨업 드래프트가 지배하는 영역이라 골드 요율 자체를 조정해도 해소되지 않는 문제다. R-G2는 정보성 리스크로 유지한다(§10). + +--- + +## 6. 재추출 미해소 — 팀장 확인 필요 사항으로 상신 (plan-auditor C-3 반영, 원칙 반전 고지) + +### ⚠️ 원칙 반전 고지 (B1 §0 방식 재사용) + +청사진v1은 P3-C의 선행 조건을 **문자 그대로 "선행 조건"이라는 표현**으로 3곳에서 명시했다: +> §4 표: P3-C 선행 조건 = "P2 확정 + **§5 재추출**" +> §5: "`teamwavepassreward` dif 54단계 이후 반복 여부… P3-C(스테이지 유한/무한 형태 결정)의 **직접 전제 조건**" +> R-A1: "미확보 상태로 P3-C를 서두르면 다시 '임의 결정 후 재작업'이 반복될 소지" + +**본 문서는 이 재추출(`teamwavepassreward` dif54 이후 반복 여부)이 미해소인 채로 설계를 진행한다.** 근거: CSV 기반 유한 테이블은 원작이 무엇을 했든 "유한+동결"(§7) 외의 안전한 구현 경로가 없으며(B1의 "무한 행을 미리 채울 수 없다"와 동일 논리), 원작의 실제 동작을 알아도 이 결론 자체는 바뀌지 않는다고 판단했다. **그러나 이는 청사진이 명시한 선행 조건을 designer 재량으로 재해석해 우회한 것이므로**, B1 §0이 유한 캡 반전을 "팀장 확인 후 진행을 권고"로 상신했던 것과 **동일한 방식으로 여기서도 명시적으로 상신한다** — 침묵 처리하지 않는다(plan-auditor C-3 지적 반영). + +**개발팀장 후속 재추출 유지**(우선순위 정보 — 착수 차단 여부는 팀장·PD 판단 대상으로 이관): 확인 목적은 원작 완전 고증 확보다. + +--- + +## 7. Stage 55+ — 유한 캡 이후 처리 (PD/팀장 결정 안건으로 상신, plan-auditor C-3 반영) + +**제안 설계**: Stage 54 클리어 이후에도 런은 계속될 수 있으나(사망 전까지 `WaveLoop()`는 멈추지 않는다), Stage 55 이후의 몬스터 수치는 **Stage 54 행 값에서 동결**한다(추가 성장 없음) — CSV 인덱스를 54에서 클램프하는 것만으로 구현 가능(`stageIdx = Mathf.Min(Stage, 54)`). + +**★ 이것이 designer 단독 확정 사항이 아님을 명시(plan-auditor C-3 지적)**: 청사진v1 §1-3은 "54단계 이후 반복 여부"를 **"유한 엔딩형"과 "유한 구간+무한 반복형" 중 어느 쪽을 이식할지의 전제**라고 명시했다 — 이는 P23 기준 "유저 경험 직접 영향"에 해당해 원래 **PD 확인 영역**이다. 본 문서는 엔지니어링 관점(CSV 클램프가 가장 단순·안전한 구현)에서 "동결형"을 **제안**하나, 이를 designer가 최종 확정하지 않는다 — §10 후속조치에서 PD 결정 안건으로 명시 상신한다. + +- **근거**: B1이 "HeroLevel 60은 콘텐츠 캡, 향후 CSV 행 추가로 확장 가능"이라 확정한 것과 유사한 성격이나, 그 결정 자체가 PD 승인을 이미 받은 B1과 달리 스테이지 축은 이번이 처음이다. +- **Victory 팝업 특수 처리**: `SurvivalUIController.cs`의 `_pendingVictory`는 현재 스테이지 클리어마다 매번 뜨는 중간 연출이다. Stage 54 클리어 시점은 "캠페인 클리어" 전용 문구로 구분할 것을 권고(content-designer·ux-designer 협의 대상). +- **런 종료 처리 무변경**: 사망(`OnDefeatContinue()`)·수동 재시작(`OnPauseRestart()`) 둘 다 기존과 동일하게 `Restart()`(B1 §2-3 전환 브릿지)를 거친다. + +--- + +## 8. 몬스터·보스 창작 판정 + +### 8-1. 몬스터 (원작 `monsterteam[10001~10052]` 부재 확정 재승계) + +청사진 §1-3·재추출v1 §0이 이미 "2938개 번들·257개 TextAsset 전수 확인, 부재 재확인"했다(🟢). 몬스터 절대 스탯은 여전히 원작 이식이 원천 불가능하며, §3의 챕터 곡선이 이 공백을 메우는 **창작**이다 — 근거는 (a) A80ChampMatchConfig 4:1 비율(불변) (b) S3 v2 Stage1 앵커(EnemyBaseHp42, 불변) (c) 원작 teamwavepassreward의 "6스텝 주기·후반 완화" 구조적 형태(챕터 경계 근거). 절대 수식(StageStep 챕터별 값)은 GodDem 자체 창작이다(C5 정직 표기). + +### 8-2. 보스 (원작 보스 개념 없음, 재확인) + +원작에 "보스" 개념 자체가 없음(청사진 §1-3 재확인). 우리 10웨이브 보스는 순수 창작이며, **BossHpMultiplier=8 불변**(A80ChampMatchConfig "공격 유닛 HP 상한 13.33배" 규율 내). 보스는 챕터 곡선의 그 스테이지 값×8로 자동 산출된다. + +### 8-3. S3 R-J 반영 — "무위협 구간"의 경계화 및 범위 정정 (plan-auditor M-3 반영) + +**정정**: S3 v2 R-J 원문은 "장비 상한 유저 **웨이브1~2** 무위협"이다. §2-2에서 계산한 "아웃게임+인런강화 완전맥스 유저는 스테이지7~8(=웨이브61~80 부근)과 동급에서 시작"은 원 R-J 범위(웨이브1~2)보다 **약 30~40배 넓은 범위로 확대**된 것이다 — 최초 초안의 "범위 축소" 표기는 사실과 반대였다(정정). + +- 이 확대는 구조적으로 불가피하다 — B1+B2+B4가 결합된 시작 스탯 자체가 원래 웨이브1~2 수준을 훨씬 상회하기 때문이며, 이를 완전히 없애려면 Stage1 앵커(신규유저용, S3 v2 검증)를 건드려야 해 신규유저 경험이 파괴된다. +- 대신 무위협 구간을 **챕터1(스테이지1~6, 웨이브1~60)로 경계 짓는다** — "일부 초반 구간은 아웃게임 투자자에게 쉬워야 한다"는 로그라이크 파워 판타지의 표준 기대와 합치. +- 챕터2부터는 §2-3의 레벨업 드래프트 요구가 본격적으로 개입한다(§3-3 TTK표) — "무위협"이 무한 지속되지 않고, 아웃게임 투자만으로는 넘을 수 없는 벽으로 전환된다. +- **완전 해소는 아님을 재확인**(C5) — R-J는 "구조적 질문"이며 본 설계는 "무한 지속"을 "경계 있는 6단계"로 축소했을 뿐, 그 경계 자체는 원래 문제 범위보다 넓다. + +### 8-4. 2층v2 R-M2 반영 — 해소하지 않음(의도적, plan-auditor 확인 — 안이한 회피 아님) + +R-M2("정액 몰빵 시 스테이지1 보스까지 3.5배 오버킬", 2층v2 §9-3)는 **Stage1 앵커(478 HP) 자체가 원인이 아니라, 인런 `attack` Flat 트랙 단독 6단계(+1650) 투자가 Stage1 기준으로 과도하게 큰 것이 원인**이다. 이를 스테이지 쪽에서 막으려면 Stage1 HP를 올려야 하는데, 이는 일반(몰빵 아닌) 신규유저의 검증된 Stage1 체감을 함께 깨뜨린다(2층v2 §9-4 선례와 동일 논리). **본 문서는 R-M2를 스테이지 설계로 해소하지 않는다** — 올바른 해법은 빌드 다양성(특정 축 몰빵에 대한 페널티) 또는 방치(파워판타지로 수용)이며, 둘 다 인런 강화 트랙 축의 결정이다. **리스크로 존속**(§10). + +--- + +## 9. 데이터 모델 + +### 9-1. 2단 구조 — 챕터 설정(저작용, 9행) + 스테이지 전개(런타임, 54행) + +**`EnemyStageChapter.csv`(신규, 9행 — 챕터별 튜닝 손잡이, 저작 전용)** +``` +n_Chapter,n_StageStart,n_StageEnd,f_StageStep,f_ExpStep +챕터(teamwavepassreward 6주기 대응),시작스테이지,종료스테이지,스테이지간HP배율,스테이지간Exp배율 +1,1,6,2.1,1.2 +2,7,12,1.6,1.11 +3,13,18,1.37,1.06 +4,19,24,1.22,1.033 +5,25,30,1.14,1.018 +6,31,36,1.08,1.01 +7,37,42,1.05,1.006 +8,43,48,1.03,1.003 +9,49,54,1.02,1.002 +``` + +**`EnemyWaveBalance.csv`(신규, 54행 — 위 챕터 설정에서 §3-2 생성 규칙으로 산출한 런타임 룩업)** +``` +n_Stage,n_Chapter,l_StageBaseHp,n_ExpRewardPerKill +스테이지,소속챕터,웨이브1 몹 HP(비보스·WaveStep은 기존 런타임 공식 그대로 적용),일반몹 처치경험치 +1,1,42,12 +2,1,88,14 +...(§3-2 생성 규칙 적용, 3~53행 생략 — 챕터 경계값은 §3-2·§4-2 표 참고, C14) +54,9,8107725,146 +``` +`l_BossHp`·`l_GoldReward` 컬럼은 CSV에 넣지 않는다 — 각각 기존 런타임 공식(`Wave1Hp × WaveStep^9 × BossHpMultiplier`, `BaseGoldReward+GoldPerStage×(Stage-1)`)으로 중복 없이 산출 가능하다(C22 SOT 원칙). + +### 9-2. 코드 터치포인트 (개발팀 검토용, 설계만) + +| 파일 | 변경 | +|---|---| +| `SurvivalBattleManager.cs` | `StageStep`(전역 단일 상수) 필드 제거 → `EnemyWaveBalance` 룩업 대체. `SpawnWave()`의 `hp = EnemyBaseHp*Pow(StageStep,Stage-1)*...` → `hp = WaveBalance.StageBaseHpAt(Mathf.Min(Stage,54)) * Mathf.Pow(WaveStep, waveInStage)`(§7 클램프). `ExpReward`도 동일하게 `WaveBalance.ExpRewardAt(...)` 룩업 교체. `GoldReward` 무변경(§5) | +| `WaveLoop()` | Stage 54 클리어 시점 감지 조건 1줄 추가 → `SurvivalUIController`에 "캠페인 클리어" 이벤트 전달(§7, PD 결정 이후 세부 구현) | +| 신규 파일 | `SurvivalEnemyWaveBalanceTable.cs` — `SurvivalUpgradeTable.Load()`의 CSV 파싱 패턴(헤더 2행 스킵) 복제 | +| `SurvivalUIController.cs` | Victory 팝업 분기 1건 추가(§7) — content-designer·ux-designer 협의 | + +--- + +## 10. 검증 시나리오 + +| # | 시나리오 | 통과 기준 | 결과 | +|---|---|---|---| +| 1 | 기준선 무결성 — Stage1, 신규유저(Attack22) | Boss HP=478, TTK(cd0.7s 가정)≈15.2초 | **통과**(§3-1, 챕터1 무변경 — S3 v2 기존값과 완전 동일) | +| 2 | 폭발 해소 — Stage54 Boss HP | 유한하고 아웃게임+레벨업드래프트 결합으로 도달 가능한 값 | **통과** — 92,318,561(§3-2), 레벨업 드래프트 기대값 시나리오에서 TTK≈19.8초(§3-3) | +| 3 | 아웃게임+인런강화 맥스 유저 도달 시점(레벨업 드래프트 無 가정) | 참고치 | 스테이지7.6 상당 — R-J 정량화(§2-2·§8-3) | +| 4 | 경험치 폭발 해소 — Stage54 일반몹 | RequiredExp(1300) 대비 1~20% 대역 | **통과** — 11.22%(§4-2), 약 9킬당 1레벨업 | +| 5 | 골드 킬당 안전성(무변경 확인) | Stage54 여전히 안전한 자릿수 | **통과** — 173G/일반몹(§5-1) | +| 6 | 골드 런 총액 신규 계산 검증 | 스테이지1 부분합이 2층v2 실측(1,148G)과 일치 | **통과**(§5-2, 정확히 일치) | +| 7 | 54 이후 동결 | Stage55 몬스터 수치 = Stage54와 동일 | **설계 제안 통과**(§7, PD 확인 필요 — designer 단독 확정 아님) | +| 8 | R-M2 존속 확인(의도적 미해소) | Stage1 앵커 무변경, R-M2 오버킬 배율 불변 | **참고치**(§8-4) — 3.5배 오버킬 그대로 | + +--- + +## 11. 밸런싱 제안 표 + +| 항목 | 현재 값 | 제안 값 | 근거 | +|---|---|---|---| +| Stage 상한 | 없음(무한 증가) | **54(유한)** | 원작 `teamwavepassreward` dif54 형태이식(§0). **유한화 방향 자체는 PD 재확인 필요**(§7) | +| StageStep | 2.1(전 스테이지 고정) | 챕터별 **2.1→1.6→1.37→1.22→1.14→1.08→1.05→1.03→1.02**(9챕터) | §3-1 폭발 실증 해소 + §2-3 SkillAttackMul 반영 재계산(감사 정정치, 최초안 대비 목표 BossHP 21.7배 상향) | +| ExpReward 배율 | 1.2^(Stage-1)(고정) | 챕터별 **1.2→1.11→1.06→1.033→1.018→1.01→1.006→1.003→1.002** | §4-1 폭발 실증(스테이지54 몹1마리=145레벨업, 스테이지27부터 1킬=1레벨업 역전) 해소 | +| GoldReward 산식 | `(14+3×(Stage-1))×...` | **변경 없음**(킬당) / 런 총액 414,018G **신규 확정** | 킬당은 이미 선형·안전(C2). 런 총액은 B1 R-C2 미확정치 해소(§5-2) | +| Stage55+ 처리 | (도달 불가능해 미정의) | **Stage54 값에서 동결(클램프) — 제안**, 최종 확정은 PD 결정 필요 | CSV 유한 테이블의 구조적 요구(§7). designer 단독 확정 아님(C36) | +| WavesPerStage | 10 | 변경 없음 | 원작에 웨이브/스테이지 수 데이터 없음(C2) | +| HpToAtkRatio·BossHpMultiplier | 4 / 8 | 변경 없음 | A80ChampMatchConfig 4:1·13.33배 규율(§8) | + +**세그먼트 영향**: 전 항목 **현재 전 세그먼트 동일**(Survival IAP 미연동). 본 설계의 실질 체감 축은 결제 세그먼트가 아니라 **① 아웃게임 투자 깊이**(신규/중견/맥스) **② 그 판의 레벨업 드래프트 운**(§2-3, 신규 확인) 2축이다 — 후자는 결제와 무관한 순수 로그라이크 변수이며, IAP가 골드에 연동되는 시점에는 고과금 유저가 챕터1(무위협)에 더 빨리 도달하되, 챕터2 이후는 여전히 **그 판의 드래프트 운에 좌우**된다(🟡추정). + +--- + +## 12. 리스크 + +| ID | 리스크 | 심각도 | 내용 | +|---|---|---|---| +| **R-G1(신규, 감사 반영으로 성격 변경)** | 챕터2~9 StageStep·ExpStep은 전량 1차 추정치(🟡) | 높음(설계 전제) | §3-2·§4-2 — `SkillAttackMul` 실현율(레벨업 드래프트에서 공격카드를 얼마나 우선 픽하는가)에 따라 실제 체감 난이도가 TTK 0.6초~15,799초까지 극단적으로 갈린다(§3-3). **플레이테스트 최우선 항목**이며 `EnemyStageChapter.csv` 9행이 유일한 튜닝 손잡이 | +| R-G2(재판정) | 후반 보상(골드) 체감이 난이도 상승분 대비 완만 | 중(정보성) | §5-3 — 챕터9 HP 193,041배 vs 골드 12.4배(킬당). 런 완주 총액(414,018G) 지표로도 완전 해소되지 않는 정보성 리스크 | +| R-G3(승계, 의도적 미해소) | 2층v2 R-M2(정액 몰빵 보스 오버킬) | 중(승계) | §8-4 — 스테이지 설계로 해소하지 않기로 결정. 빌드 다양성/페널티 설계(별건)로 이관 | +| **R-G4(승계, 범위 정정)** | S3 v2 R-J(아웃게임 맥스 유저 초반 무위협) | 중(승계, **범위 확대** — 최초안 "축소" 표기 정정) | §8-3 — 원 범위(웨이브1~2)에서 챕터1(웨이브1~60)으로 약 30~40배 확대. 완전 해소 아님 | +| R-G5(신규) | 챕터 경계에서 난이도 "완화 절벽" 발생 | 낮음(의도된 패턴이나 실플레이 미검증) | §3-2 — StageStep이 챕터 경계마다 급격히 낮아져 챕터 전환 시점에 상대적으로 쉬워지는 체감 가능. **원작 teamwavepassreward와의 유비는 보상축(톱니) vs 난이도축(단조증가) 성격이 달라 직접 근거로 쓰지 않는다**(plan-auditor M-7 반영, 유비 철회) — 실플레이 체감 검증 필요 | +| R-G6(신규, 별건 발견) | `WaveStep` 후반 감쇠(매핑v1 §4a 제안) 미구현 상태 방치 | 낮음(정보성) | §3-4 — 제안만 되고 코드엔 반영 안 됨. 폭발의 원인이 아니라 본 설계 범위에서 처리하지 않되, 개발팀장 인지 요청 | +| R-G7(신규) | Stage54 "캠페인 클리어" Victory 팝업 특수 문구 미구현 시 기존 문구 그대로 노출 | 낮음(UX) | §7 — content-designer·ux-designer 협의 필요 | +| **R-G8(신규, plan-auditor C-3 기원)** | 재추출 선행조건(§6)·Stage55+ 처리(§7) 2건 모두 designer 재량 범위를 넘어설 수 있음 | 중(C36 경계) | §6·§7 — 청사진이 "선행 조건"으로 명시한 항목을 착수 비차단으로 재해석했고, 유한/무한 이후 처리는 청사진이 "PD 확인 필요"로 지목한 사안이다. **본 문서 결론(유한+동결)은 유지하되, 팀장·PD 확인 전 최종 확정 아님을 명시** | + +--- + +## 13. 기각안 (C32) + +| # | 검토안 | 기각 사유 | +|---|---|---| +| 1 | 원작 `teamwavepassreward` 절대 보상 수열을 GodDem 골드 보상에 값 그대로 이식 | §5-1 — 원작은 "웨이브클리어 정액 지급"(이산), GodDem은 "처치당 연속 지급"(연속) 구조 자체가 다르다. 골드는 이미 안전(선형)해 고칠 이유가 없고, 억지 이식은 신규 보상 메커니즘 설계를 요구해 C50 범위 밖 | +| 2 | Stage 상한을 원작 미확인(dif54 이후 반복 여부 🔴)이 해소될 때까지 보류 | §6 — CSV 유한 테이블은 원작 답과 무관하게 "유한+동결"이 유일한 안전 설계다. **다만 이 판단 자체를 designer 재량만으로 확정하지 않고 팀장·PD 확인 사항으로 별도 상신한다**(§6 반전고지, plan-auditor C-3 반영 — 최초안은 이 상신 없이 기각 처리해 과잉이었음) | +| 3 | R-J·R-M2를 본 문서에서 스테이지 수치 조정으로 완전 해소 | §8-3·8-4 — 둘 다 Stage1 앵커(신규유저 보호, S3 v2 검증)를 건드려야 해소되는데, 이는 검증된 신규유저 경험을 파괴하는 대가를 치른다 | +| 4 | 챕터 경계를 6스테이지가 아닌 다른 임의 간격으로 설계 | §3-2 — 원작 `teamwavepassreward`의 기본 수열 6스텝 주기(9회 반복)가 6단위 경계의 직접 근거. **최초안이 "dif≡1(mod6) 9개 그룹"을 근거로 들었으나 이는 54÷6에서 자동 도출되는 항등식이자 매핑v1이 "정수 반올림 부산물"로 규정한 것이라 근거로 부적절했다(plan-auditor m-1 반영, 근거를 기본수열 6스텝 주기 자체로 교체)**. 청사진 §1-3이 "PD 원 지적의 진의(GodDem 카드배틀 스테이지 구성 참고 가능성)를 배제하지 않는다"고 유보한 점도 승계해 명시한다 | +| 5 | WaveStep도 이번 기회에 챕터별로 함께 재설계 | §3-4 — WaveStep 기여폭(최대×1.42/스테이지)은 폭발의 원인이 아니다. 원인이 아닌 것을 함께 고치는 것은 과잉조정(C2) | +| 6 | Stage55+ 이후도 챕터10 이상을 CSV로 미리 확장해 실질 무한처럼 설계 | §7 — 조직 해석 "유한 캡" 방향과 상충(C36). 콘텐츠 확장은 향후 PD 결정 시 CSV 행 추가로 충분 | +| 7(신규) | §2 Attack 상한 계산에서 `SkillAttackMul`을 배제하고 아웃게임 레이어만으로 챕터 목표치 확정(최초안 방식) | plan-auditor C-2 지적 — 인런 레벨업 드래프트의 무상한 승산 메커니즘을 배제하면 "레벨업 드래프트 성과가 갈림길"이라는 §1 목표 자체가 계산에 반영되지 않는다. §2-3 정량 반영으로 정정 | + +--- + +## 14. 변경 이력 (P16) + +| 일시 | 변경자 | 항목 | 이전값 | 이후값 | 사유 | +|---|---|---|---|---|---| +| 2026-08-22 | balance-designer | 문서 신규 작성(v1 최초 초안) | — | Stage54 유한캡·챕터taper 초안(목표BossHP 4,247,728) | PD 지시 집행, R-F3 해소 착수 | +| 2026-08-22 | balance-designer | plan-auditor 모드A 감사 반영(같은 v1 내 확정) | 초안(Critical 4·Major 7·Minor 7 지적 전) | 아래 4건 포함 전면 재계산 | C35 감사 게이트 — 조건부통과 정정 완료 후 발신 | +| 2026-08-22 | balance-designer | §2 Attack 상한 정정 | 2,499(B2 기여 "+47" 오적용) | **2,922**(B2 v2 §6-2 실측 "+141" 반영) | plan-auditor C-1 — B2 v2 문서 미확인(C39 위반) 자진 정정 | +| 2026-08-22 | balance-designer | §2-3 `SkillAttackMul` 신규 반영 | 미반영(SkillAttackMul=1 암묵 가정) | 레벨업 드래프트 기대값(69픽·×800)~상한(105픽·×26,151) 정량 분석 추가 | plan-auditor C-2 — 인런 무상한 승산 메커니즘 완전 누락 발견, 자진 정정 | +| 2026-08-22 | balance-designer | §3-2 챕터 StageStep 재계산 | 2.1→1.4→1.2→1.1→1.06→1.04→1.03→1.02→1.015(목표 BossHP 4,247,728) | **2.1→1.6→1.37→1.22→1.14→1.08→1.05→1.03→1.02**(목표 BossHP 92,318,561) | 위 2건 정정 반영 — 레벨업 드래프트 기대값 시나리오에서 TTK≈20초로 재캘리브레이션 | +| 2026-08-22 | balance-designer | §5-2 런 완주 총 골드 신규 계산 | 없음(킬당 산식만 검토) | 414,018G(B1+B2+B4 대비 4.69회분) | plan-auditor C-4 — 킬당 검증만 하고 런 총액(B1 R-C2 미확정치) 미계산 지적, 자진 반영 | +| 2026-08-22 | balance-designer | §6·§7 원칙 반전 고지 추가 | 기각안으로 조용히 처리(선행조건 무효화·Stage55+ 확정) | ⚠️ 고지 블록 신설, 팀장·PD 확인 사항으로 명시 상신 | plan-auditor C-3 — 청사진 명시 선행조건·PD 확인 영역을 designer 재량으로 과잉 처리했던 것 시정 | +| 2026-08-22 | balance-designer | R-J 범위 표기 정정 | "범위 축소" | "**범위 확대**"(웨이브1~2→스테이지1~6, 약 30~40배) | plan-auditor M-3 — 사실과 반대로 기재됐던 것 정정 | +| 2026-08-22 | balance-designer | 챕터 경계 근거 교체 | "dif≡1(mod6) 9개 그룹" | "기본 수열 6스텝 주기 9회 반복" | plan-auditor m-1 — 전자는 54÷6 항등식이자 매핑v1이 "반올림 부산물"로 규정한 것이라 근거 부적절 | +| 2026-08-22 | balance-designer | PD 인용 표기 정정 | "(A)형태이식·유한 캡 확정"을 PD 직접 지시로 인용 | PM 해석·확정 라벨임을 명시(PD 원문과 구분) | plan-auditor M-2 — 대화로그 원문 대조 결과 PD 문자 그대로의 발화가 아님 확인 | + +--- + +## 15. 후속 조치 (본 문서 범위 밖) + +1. **개발팀 구현 선행 필수(팀장급 확인 후)**: §9 CSV 2종(`EnemyStageChapter.csv`·`EnemyWaveBalance.csv`) + `SurvivalEnemyWaveBalanceTable.cs` 신규 + `SpawnWave()`/`AddExp()` 룩업 교체(Stage 인덱스 `Min(Stage,54)` 클램프 포함) + WaveLoop Stage54 클리어 이벤트 1건. +2. **★ 팀장·PD 확인 필요(신규, plan-auditor C-3 반영 — designer 단독 확정 아님)**: + - (a) Stage 상한 54 유한화 방향 자체 — B1 유한캡 결정의 유비 적용이며 PD가 스테이지에 대해 직접 재확인한 바 없음(§0·§7). + - (b) `teamwavepassreward` 재추출 미해소 상태로 착수하는 것의 타당성 — 청사진이 "선행 조건"으로 문자 명시한 항목(§6). + - (c) Stage55+ "동결" 처리 방식 — 청사진이 "유한 엔딩형 vs 유한 구간+무한반복형" 선택을 PD 확인 영역으로 지목한 사안(§7). +3. **개발팀장 재추출**(차단 여부는 위 2-b 결정에 따름): `teamwavepassreward` dif54 이후 반복 여부. +4. **content-designer·ux-designer 협의**(§7·R-G7): Stage54 "캠페인 클리어" Victory 팝업 전용 문구·연출. +5. **system-designer·PD 인지**: R-G1(챕터2~9 StageStep·ExpStep 전량 1차값) — 플레이테스트로 실제 레벨업 드래프트 픽 패턴을 관측한 뒤 `EnemyStageChapter.csv` 9행을 조정하는 것이 유일한 검증 경로다. +6. **개발팀장 인지(별건, R-G6)**: `WaveStep` 후반 감쇠(매핑v1 §4a 제안) 미구현 상태. +7. **R-M2·R-J 최종 처분은 PD/기획팀장 영역**: 본 문서는 "스테이지 축에서 해소하지 않는다"는 판단까지만 제시. +8. **plan-auditor 재검증**(C35): 본 v1은 1차 감사(Critical 4·Major 7·Minor 7) 지적을 전량 반영한 정정판이다 — 정정 내용 자체의 재검증(특히 §2-3 SkillAttackMul 계산·§3-2 챕터 재계산)을 2차로 권고한다. +9. **PM 공유**: 본 문서 산출 완료를 `개발팀_PD_지시_로그.md`(GodDem/BT13 단일 관리) 및 대화로그(`공유/대화로그/GodDem/2026-08-22.md`, 결정·근거·영향·기각안 4요소)에 반영. **2번 항목(팀장·PD 확인 필요 3건)을 보고에 명확히 포함할 것.** diff --git a/공유/대화로그/GodDem/2026-08-22.md b/공유/대화로그/GodDem/2026-08-22.md index c72050c..457bdc6 100644 --- a/공유/대화로그/GodDem/2026-08-22.md +++ b/공유/대화로그/GodDem/2026-08-22.md @@ -335,3 +335,12 @@ - **프로세스 갭**: C6 백업 관례가 C40 "백업 git ignore 확증"이라 `.bak_*` gitignore(정상) → Grep 감사가 구조적 못 봄. B1·B2 소급 재검 시 동일 소지 - **B4 완료 — GodDem `54aea99` PM push** (C18 공유·13파일 +586/-15·개별 stage·Captures 제외): **영구 성장 셋째 층(스킬 마스터리) 게임 진입**. 개발팀장 push 자격증명 실패(write GCM 비대화형 팝업 불가·자격입력 금지 액션) → **PM 세션 자격증명 유효로 재시도 성공**(read/write 인증 처리 차이·간헐) - **다음 단계**: P3-C(스테이지) balance-designer 착수(원작 teamwavepassreward 54단계 정합·재구조·아웃게임 결합 난이도·재추출 표시)·P3-B3(가챠·PD 재화/가격/확률 정책 확인 필요) + +## 50. P3-C 스테이지 구조 설계 완료 — R-F3 해소·plan-auditor 1차 감사 반영 (balance-designer, 2026-08-22) + +- **결정**: 스테이지 = 원작 `teamwavepassreward` 54단계(기본수열 6스텝×9회) 형태이식, Stage 무한증가 폐기 → 1~54 유한 캡(챕터 9개×6스테이지). StageStep 챕터별 체감(2.1→1.02)·ExpReward 배율 챕터별 체감(1.2→1.002) 신규 도입. Stage55+는 스테이지54 값 동결(제안, PD/팀장 확인 필요). 골드 킬당 산식 무변경 + 런완주 총액 414,018G 신규 계산. +- **근거**: (1) 기존 StageStep=2.1을 54제곱까지 그대로 연장 시 몬스터 HP 5.72×10¹⁹로 폭발 실증 — 아웃게임+인런강화 결합 Attack 상한(2,922)·레벨업 드래프트 `SkillAttackMul` 현실적 상한(약 2.6만배)을 전부 더해도 10¹²배 이상 부족해 수학적으로 도달 불가능함을 확인. (2) 처치 경험치도 동일 계열 폭발(1.2^53≈15,726배, 스테이지54 몹1마리=145회 동시 레벨업, 게임정지급 결함) 별도 발견·해소. (3) plan-auditor 모드A 감사(Critical4·Major7·Minor7) 전량 반영 재계산 — 최초안 Attack상한 계산에서 B2 기여분(+47 vs 실제 +141) 오류·인런 `SkillAttackMul`(무상한 승산) 완전 누락 발견해 목표 BossHP를 4,247,728→92,318,561로 재조정. +- **영향**: 개발팀장 구현 대상 확정(`EnemyStageChapter.csv` 9행+`EnemyWaveBalance.csv` 54행 신규, `SpawnWave`/`AddExp` 룩업 교체). B1 §6이 미확정으로 남겼던 "완주 런 몇 회분" 질문 해소(약 4.69회, B1+B2+B4 총 1,942,464G 대비). R-J(웨이브1~2→스테이지1~6로 확대, 축소 아님 정정)·R-M2(정액몰빵 오버킬) 둘 다 스테이지 설계로 해소하지 않고 리스크 존속 명시. **팀장·PD 확인 3건 상신**: ①Stage 유한화 방향 자체(B1 유비 적용, PD 스테이지 직접 재확인 없음) ②teamwavepassreward 재추출 미해소 상태 착수 타당성(청사진 "선행조건" 명시 재해석) ③Stage55+ 동결 처리(청사진이 PD 확인 영역으로 지목한 사안). +- **기각안**: (1) 원작 teamwavepassreward 보상수열을 골드에 값 그대로 이식 — 보상 전달 메커니즘 상이(이산 vs 연속), C50 범위 밖 신규 메커니즘 필요해 기각. (2) Stage 상한을 재추출 완료 시점까지 보류 — CSV 유한테이블 구조상 재추출 결과와 무관하게 "유한+동결"이 유일 안전 설계라 보류 불채택, 단 이 판단을 designer 단독 확정 대신 팀장·PD 상신 사항으로 명시(감사 반영 정정). (3) R-J·R-M2를 스테이지 수치조정으로 완전 해소 — Stage1 앵커(신규유저 보호, S3v2 검증) 파괴 대가 크다고 판단해 기각, 인런 축 별도결정으로 이관. (4) 챕터경계 6단위 근거로 "dif≡1(mod6) 9개그룹" 인용 — 54÷6 항등식이자 매핑v1이 "반올림 부산물"로 규정한 것이라 근거 부적절함을 감사에서 지적받아 "기본수열 6스텝주기 9회반복" 근거로 교체. (5) §2 Attack상한 계산에서 SkillAttackMul 배제(최초안 방식) — "레벨업 드래프트 성과가 갈림길" 설계목표 자체가 계산에 미반영되는 결함이라 감사 지적 반영 정정. +- **산출물**: `공유/기획/GodDem/2026-08-22_P3C_스테이지_설계_v1.md`(GodDem Read only, 수정 0건 유지) +- **후속**: 기획팀장 C49 최종검증 → 개발팀장 구현 착수(팀장·PD 확인 3건 선해소 후). plan-auditor 2차 검증 권고(SkillAttackMul 계산·챕터 재계산 부분 한정).