diff --git a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md index 78f39c4..35af7d6 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. **[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. **[재추출·원작 유한 확정·C v2 착수 2026-08-22]** teamwavepassreward 재추출로 **원작 유한 설계 확정**(dif55+ 부재·loop 필드 없음·wildernesspk next_id 0 종료)→C v1 유한 캡(54) 원작 정합·PD "총 스테이지 원작 동일" 정합. 확인 3건 중 ②재추출 데이터 해소·①③(유한화 채택·55+ 처리)은 PD 방향 정합으로 진행(되묻지 않음). monsterteam 서버측 확정(HP 창작 유일). balance-designer C v2 재산정 착수(유한 격상·모드 구분·55+ 잠정). 상세 §51~§52. **[C v2 통과·구현착수 2026-08-22]** C v2 plan-auditor 통과(6항·유한 격상·모드 구분·수치 승계·source-based Stage54 보스 92M SOT). 개발팀장 C 구현 착수(EnemyStageChapter/WaveBalance CSV·Stage 클램프 54·55+ 동결). PD 결정: 유한화 PD "원작 동일" 정합·55+ 잠정 동결. **C 완료 시 5층 중 4층 완료**·남은 B3(가챠·PD 정책). 상세 §53~§54. **[C 완료·4층 완료 2026-08-22 GodDem `d7519eb`]** 스테이지 원작 유한 54단계·챕터 난이도 곡선(source-based Stage54 보스 92M)·55+ 동결·신규유저 S3 보존. plan-auditor 통과(6항)·PM push(개발팀장 인증실패). **영구 성장 4층 완료**(레벨·승급/장비/스킬마스터리/스테이지)·**남은 B3(가챠)만·PD 재화/가격/확률 정책 확인 필요**. 상세 §55~§57. **[B3 가챠 재추출 착수 2026-08-22]** PD 가챠 재화 지시 = 원작 로직 동일 이식(3옵션 선택 아님)·힌트 "인게임 뽑기 일반 골드·특정 시점만 유료 재화·제대로 실측". 개발팀장 원작 가챠 재추출 착수(재화 구조·특정 시점 조건·가중추첨·천장·가격). 후속 B3 설계→검증→구현=**5층 완성**. 상세 §58. | **진행중** | ①레포 검토 완료·`공유/대화로그/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 실측 확인). | +| 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. **[재추출·원작 유한 확정·C v2 착수 2026-08-22]** teamwavepassreward 재추출로 **원작 유한 설계 확정**(dif55+ 부재·loop 필드 없음·wildernesspk next_id 0 종료)→C v1 유한 캡(54) 원작 정합·PD "총 스테이지 원작 동일" 정합. 확인 3건 중 ②재추출 데이터 해소·①③(유한화 채택·55+ 처리)은 PD 방향 정합으로 진행(되묻지 않음). monsterteam 서버측 확정(HP 창작 유일). balance-designer C v2 재산정 착수(유한 격상·모드 구분·55+ 잠정). 상세 §51~§52. **[C v2 통과·구현착수 2026-08-22]** C v2 plan-auditor 통과(6항·유한 격상·모드 구분·수치 승계·source-based Stage54 보스 92M SOT). 개발팀장 C 구현 착수(EnemyStageChapter/WaveBalance CSV·Stage 클램프 54·55+ 동결). PD 결정: 유한화 PD "원작 동일" 정합·55+ 잠정 동결. **C 완료 시 5층 중 4층 완료**·남은 B3(가챠·PD 정책). 상세 §53~§54. **[C 완료·4층 완료 2026-08-22 GodDem `d7519eb`]** 스테이지 원작 유한 54단계·챕터 난이도 곡선(source-based Stage54 보스 92M)·55+ 동결·신규유저 S3 보존. plan-auditor 통과(6항)·PM push(개발팀장 인증실패). **영구 성장 4층 완료**(레벨·승급/장비/스킬마스터리/스테이지)·**남은 B3(가챠)만·PD 재화/가격/확률 정책 확인 필요**. 상세 §55~§57. **[B3 가챠 재추출 착수 2026-08-22]** PD 가챠 재화 지시 = 원작 로직 동일 이식(3옵션 선택 아님)·힌트 "인게임 뽑기 일반 골드·특정 시점만 유료 재화·제대로 실측". 개발팀장 원작 가챠 재추출 착수(재화 구조·특정 시점 조건·가중추첨·천장·가격). 후속 B3 설계→검증→구현=**5층 완성**. 상세 §58. **[가챠 재추출 완료·B3 설계 착수 2026-08-22]** **PD 힌트 🟢 정합** — 원작 이원결제(1차 소환권·2차 특정시점 젬)·골드 원작 뽑기 미사용→소환권→GodDem 골드 매핑으로 PD "골드 일반·특정시점 유료" 성립·메타 §10 블로커 데이터 해소. 천장 라이브러리 3단(10 소프트·30 하드 q5/q6 100%). balance-designer B3 설계 착수(재화·가챠대상 4종·천장·경제). 상세 §59. | **진행중** | ①레포 검토 완료·`공유/대화로그/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_원작가챠_재추출_원본_v1.md b/공유/기획/GodDem/2026-08-22_원작가챠_재추출_원본_v1.md new file mode 100644 index 0000000..c5fa4c7 --- /dev/null +++ b/공유/기획/GodDem/2026-08-22_원작가챠_재추출_원본_v1.md @@ -0,0 +1,224 @@ +# 원작 Wild Survival 가챠(뽑기) 재화·확률 재추출 원본 SOT v1 + +> **작성**: 개발팀장 2026-08-22 · **근거**: 원작 APK(`com.and.wild.sur.victory` v862) `drawtype`·`drawlib`·`item`·`shop`·`pricetable`·`heroconst` 재복호화 실측 +> **트리거**: PD 직접 지시(2026-08-22) — "기존 원작의 로직을 살펴보고 동일하게 맞춰. **인게임 내 뽑기는 일반 골드를 쓰며 특정 시점에만 유료 재화를 쓰는 구조**야. 제대로 실측해서 구현해야 해." +> **관계**: 메타아키텍처 재설계 v1 §1-4·§10 기각안9·M-2가 **"가챠 소비 재화 = 원작 근거 부재(🔴), PD 이관"**으로 남긴 블로커를 **재추출로 해소**. 매핑v1 §2-6은 weight·천장만 다뤘고 `drawtype`의 소비 재화(`drawitem`/`drawitem2`)를 추출하지 않았다 — 본 문서가 가챠 소비 재화 트랙에 한해 매핑v1보다 상위 SOT. `2026-08-22_원작배율/장비/스테이지_재추출_원본_v1.md`와 동일 파이프라인·동일 known-plaintext 키 유도. +> **표기 규칙(C5·C44)**: 🟢확정(원작데이터 직접 실측) · 🟡추정(형태·정황 근거) · 🔴미확정. 원작 데이터는 참고 수치만 기재 — 원본 파일·복호화본·XOR 키 **레포 미커밋**(§9). + +--- + +## 0. 결론 요약 — ★ PD 힌트 데이터 정합 판정 + +| PD 힌트 명제 | 재추출 판정 | 근거 | +|------|------|------| +| **"인게임 내 뽑기는 일반 골드를 쓰며"** | 🟢 **LITERAL 불일치 — 원작 draw는 골드 미사용** | 전 draw 계열 8테이블(drawtype·optionaldraw·slotmachine·cycledraw*) 비용 필드 전수 스캔 결과 골드(`db_1001`) 사용 **0건**. 원작 뽑기의 "일반/획득" 재화는 **소환권(召唤卷 `dj_7001`/`dj_7002`)·보물열쇠(`dj_7011`)** — 획득형 티켓이다(§3). 골드(`db_1001` 金条)는 히어로 레벨업 소프트 재화이며 뽑기에 안 쓰인다(§2). | +| **"특정 시점에만 유료 재화를 쓰는 구조"** | 🟢 **구조 정합 (재화 종류만 상이)** | 원작 draw는 **이원 결제**: `drawitem`(획득 티켓, 1차) OR `drawitem2`(젬 `hb_2001`, 대체). 티켓 소진 시 젬으로 결제 = "특정 시점 유료"의 데이터 구현(§3-2). 추가로 **일일 무료 뽑기**(isfree=1) 3종 존재(§3-3). 단 유료재화는 **젬(hb_2001, 준프리미엄)**이며, 순수 실화폐 전용 재화(点券 `hb_1001`) 사용 draw는 **0건**. | +| **"제대로 실측"** | 🟢 **재복호화 재현 성공** | config 번들 203 TextAsset 재복호(valid JSON 187/무효16 = 이전 재추출 정확 일치). drawtype 전 행·drawlib 2485행·item 240행 실측(§1). | + +**총평 (정직)**: PD 힌트의 **구조**(획득 재화로 일반 뽑기 + 프리미엄 재화로 특정 시점)는 **원작과 정확히 일치**한다 — 이원 결제 + 일일 무료가 그 구현이다. 다만 원작의 "일반 획득 재화"는 **골드가 아니라 소환권(티켓)**이고, "특정 시점 유료 재화"는 **젬(hb_2001)**이다. GodDem은 소환권 개념이 없고 **골드(`GOLD_ID=201`)가 유일 획득 재화**이므로, **원작 소환권 → GodDem 골드** 매핑을 채택하면 PD 표현("골드로 일반 뽑기")이 **포트에서 literally 성립하며 동시에 원작 구조에 충실**하다(§7). 즉 PD 지시는 원작 구조 그대로이며, 재화 이름만 GodDem 경제(골드 단일)에 맞춰 번역하면 된다. 메타아키텍처 §10의 🔴(가챠 재화 근거 부재)는 본 재추출로 **데이터 해소**된다. + +--- + +## 1. 재복호화 결과 (재현 성공) + +| 항목 | 값 | +|------|-----| +| 원작 APK | `C:\Users\sw\Downloads\Wild+Survival+-+Idle+Defense_862_APKPure\UnityDataAssetPack.apk` (236MB) | +| config 번들 | `assets/yoo/DefaultPackage/60f4b8a79e0efed6b5ada257fb5d9ea8.bundle` (config TextAsset 203종) | +| 암호 방식 | TextAsset 내용에 **22바이트 반복 XOR** (자산마다 위치 0 리셋) | +| 키 유도 | **빈도분석**(각 mod-22 위치별 printable/JSON 문자 최대화) — 이전 재추출과 동일 결과. 🚫 **키 평문 미보존**(scratchpad 한정·runtime 유도·작업 후 정리, 디스크 미기록) | +| 검증 | valid JSON **187 / 무효 16** = 매핑v1·이전 재추출과 **정확 일치**(강력 검증). drawtype 등 무효 16종은 중국어 GBK·제어문자 포함 — 라인 기반 관용 파서(latin-1 무손실)로 숫자/ASCII 필드 정상 추출 | +| 가챠 핵심 테이블 | drawtype(전 행)·drawlib(2485)·drawshow(258)·herodraw(111)·item(240)·shop(1441)·pricetable(12)·slotmachine(type1/lib8/progress100)·optionaldraw(39)·cycledraw계열 | + +**재현 방법(요약, 키 비공개)**: ① `zipfile`로 APK에서 config 번들 추출 → UnityPy(1.25.3) 로드 ② TextAsset raw bytes 획득 ③ 22주기 XOR 키 빈도분석 유도 ④ XOR 복호 → JSON 파싱. libil2cpp 네이티브 리버싱 불요. + +--- + +## 2. 재화 정체 확정 (아이콘 + pricetable + shop 3중 교차) 🟢 + +`item.csv`의 `code` 필드가 보상/비용 토큰(`{code}_{amount}`)의 매핑 키다. 아이콘명(개발자 병음 명명)·실화폐 상품·상점 용도로 3중 교차 확정. + +| code (토큰) | icon (병음/한자) | 의미 | maintype | 실화폐 | 역할 | +|------|-------------------|------|----------|--------|------| +| **`db_1001`** | `icon_cg_jintiao` (金条) | **골드(금괴)** | 2 (db) | X | 히어로 레벨업 소프트 재화(§2-2) | +| `dj_1001` | `icon_cg_yingxiongjingyanshu` (英雄经验书) | **영웅 경험서** | 5 (dj) | X | 히어로 레벨업 EXP 재료 | +| **`hb_2001`** | `icon_cg_shanzuan` (闪钻) | **젬/다이아** | 1 (hb) | **O** | 프리미엄 — 실화폐 $29.99=800젬(상품 `gems800`)·뽑기 대체재화·리셋비용 | +| `hb_1001` | `icon_cg_dianquan` (点券) | 点券 바우처 | 1 (hb) | 🟡 | 고volume 상점 재화(상점 비용 851건, sl_장비·sk_스킬 구매) | +| `dj_7001` | `icon_cg_zhaohuanjuan` (召唤卷) | **기본 소환권** (q4) | 5 (dj) | X | 히어로 뽑기 티켓 | +| `dj_7002` | `icon_cg_zhaohuanjuan_03` (召唤卷) | **고급 소환권** (q5) | 5 (dj) | X | 히어로 뽑기 티켓(프리미엄 배너) | +| `dj_7003` | `icon_cg_zhaohuanjuan_02` (召唤卷) | 소환권 변형 (q6) | 5 (dj) | X | 히어로 뽑기 티켓 | +| `dj_7011` | `icon_cg_choujiang_baowu_yaoshi` (抽奖宝物钥匙) | **보물 열쇠** (q4) | 5 (dj) | X | 장비 뽑기 티켓 | + +### 2-1. ★ 골드 정체 정정 (스테이지 doc 오류 시정) +- `2026-08-22_원작스테이지_재추출_원본_v1.md` §4-2는 `dj_1001`을 "골드"로 라벨했으나, 아이콘명(`yingxiongjingyanshu` 英雄经验书)·`hero_level` 비용 실측 결과 **`dj_1001` = 영웅 경험서(EXP 재료)**다. **진짜 골드는 `db_1001`(金条, icon `jintiao`)** 이다. +- 근거(§2-2): `hero_level` 레벨업 비용 = `dj_1001_5; db_1001_10;` (경험서 5 + 골드 10). 원작은 히어로 육성에 **경험서(dj_1001) + 골드(db_1001) 2단 소비** — 메타아키텍처 §1-1이 이미 인지한 "골드→경험서 2단 경제". +- 이 정정은 스테이지 트랙 결론(유한 설계 등)에 영향 없음(재화 라벨만 시정). wildernesspk 보상 `dj_1001`도 "경험서"로 재해석해야 정확. + +### 2-2. hero_level 비용 실측 (골드 식별 근거) 🟢 +``` +레벨1: dj_1001_5; db_1001_10; +레벨2: dj_1001_22; db_1001_42; +레벨3: dj_1001_54; db_1001_99; +레벨4: dj_1001_104;db_1001_184; +``` +`heroconst`: `reset_cost = hb_2001_200`(리셋=200젬) · `drug_reset_cost = dj_3001_1` · `hero_sys_unlock_level=3`. + +--- + +## 3. ★ 뽑기 소비 재화 구조 (PD 지시 핵심) — `drawtype` 전수 실측 🟢 + +`drawtype` 스키마(22열): `id, drawtype, drawname, groupid, selecttype, selectcnt, category, drawnum, maxnum, isfree, displaytype, drawitem, drawitem2, libid1, libid2need, libid2, libid3need, libid3, libid4need, libid4, freetype, intervaltime`. + +- **`drawitem`** = 1차 비용(획득 티켓) · **`drawitem2`** = 대체 비용(젬) · **`isfree`/`freetype`/`intervaltime`/`maxnum`** = 무료 뽑기 게이트 · **`libidNneed`/`libidN`** = 천장 라이브러리 교체(§5). + +### 3-1. 뽑기별 비용 (활성 행 전수) + +| drawtype | 종류(category) | drawnum | drawitem (티켓 1차) | drawitem2 (젬 대체) | 무료 | +|---------|------|--------|--------------------|--------------------|------| +| 1701 | 히어로 단차(1) | 1 | `dj_7001_1` (기본소환권 1) | `hb_2001_20` (20젬) | - | +| 102 | 히어로 단차(1) | 1 | `dj_7002_1` (고급소환권 1) | `hb_2001_20` | - | +| 7 · 18 · 29 | 히어로 100차(3) | 100 | `dj_7002_100` (고급 100) | `hb_2001_1800` | - | +| 1301 | 열쇠 단차(1) | 1 | `dj_7011_1` (보물열쇠 1) | `hb_2001_20` | - | +| 217 | 열쇠 100차(3) | 100 | `dj_7011_100` | `hb_2001_1800` | - | +| 214 | 장비 단차(1) | 1 | `hb_2001_20` (젬 전용) | — | - | +| 212 | 장비 10차(2) | 10 | `hb_2001_200` (젬 전용) | — | - | +| 209 | 장비 100차(3) | 100 | `hb_2001_1800` (젬 전용) | — | - | +| **206** | **장비 무료(0)** | 1 | — | — | **isfree=1·freetype=1·max=5·300초 쿨** | +| **1402** | **히어로 무료(0)** | 1 | — | — | **isfree=1·max=1·300초 쿨** | +| **5101** | **히어로 무료(0)** | 1 | — | — | **isfree=1·max=1** | + +> sparse 행(drawtype 1·3·11·14·22·25·104·1201·1601·5401)은 배너 헤더/템플릿 행(id+drawtype+drawname만)으로 비용 데이터 없음. + +### 3-2. ★ 이원 결제 = "특정 시점 유료" 구현 🟢 +히어로/열쇠 뽑기(102·1701·7·1301·217…)는 **`drawitem`(획득 티켓)을 1차 소비, 티켓 없으면 `drawitem2`(젬)로 결제**한다. 즉: +- **일반(획득) 재화 = 소환권/열쇠** — 플레이·상점·이벤트로 획득. +- **특정 시점 유료 = 젬(hb_2001)** — 티켓 소진 후 계속 뽑을 때. +- 환율: 단차 1티켓 ≈ 20젬, 100차 100티켓 ≈ 1800젬(10% 할인, 100×20=2000→1800). + +이것이 PD가 말한 **"일반 재화로 뽑되 특정 시점에만 유료 재화"**의 정확한 데이터 구조다 — 다만 원작의 "일반 재화"가 골드가 아니라 티켓일 뿐. + +### 3-3. 무료 뽑기 (특정 시점 무과금 창구) 🟢 +- **장비 무료**(206): 하루 **5회**, 300초 쿨다운. +- **히어로 무료**(1402·5101): 1회, 300초 쿨. +- 무료 뽑기도 천장 라이브러리(libidNneed) 보유 → 무료분에도 등급 보정 적용. + +### 3-4. 티켓 획득처 (shop) — 골드로는 못 산다 🟢 +소환권(`dj_7001`)은 상점에서: +- `hb_2001`(젬) 20/1개 · 190/10개 · 1800/100개 (shop 3002~3004) +- `db`(이벤트·아레나 토큰) — db_2001_20, db_2003_30, db_2008_10 등 +- **골드(`db_1001`)로 소환권 구매 = 0건**. 상점 비용 재화 분포: hb_1001(点券) 851 · hb_2001(젬) 314 · db토큰 175 · sl 80 · dj 20 — **골드는 상점 주력 재화가 아니다**(원작은 젬/点券 중심 경제). + +--- + +## 4. 가중추첨 (`drawlib`) 🟢 + +- **2485행 / 192 고유 pool** = `(drawtype, libid)` 조합. 스키마 `id, drawtype, libid, position, itemid, weight, israre, sendmsg`. +- **weight/10000 basis point**: 192 pool 중 **102개 정확 합 10000**. 나머지는 8374(34)·9999(9)·9900(6)·9500(4) 등 **비정규화**(원작도 미통일 — 매핑v1 §2-6 재확인). 실 확률 = `weight / 활성 라이브러리 실합`. +- 히어로 뽑기 결과물 = `dj_5XXX` 히어로 조각(등급 인코딩: 51XX=q1 … 56XX=q6). 장비 뽑기 = `sl_XXXX`(장비) + `dj_6XXX`(재료) + `dj_1001`(경험서) + `dj_19001` 등. +- israre 플래그로 rare(고등급) 표식. 표시 확률은 `drawshow`(등급 티어별 아이템 목록)·`cycledrawshow`(showrate 명시, 0.005~0.12) 별도 보유. + +**히어로 단차(drawtype 102) 일반 pool(libid1) 실측** — 16 pos, 실합 9500: +``` +q1 조각 4종 × 1125 (11.842%) | q2 조각 4종 × 625 (6.579%) +q3 조각 4종 × 375 (3.947%) | q4 조각 4종 × 250 (2.632%) ← rare(q5+) 없음 +``` + +--- + +## 5. 천장 = 라이브러리 교체 (`drawtype` libidNneed → `drawlib` libid) 🟢 + +매핑v1 §2-6의 "라이브러리 교체 천장"을 **소프트/하드 2단으로 완전 규명**. `drawtype`이 `libid2need`/`libid3need` 카운트에 도달하면 활성 pool을 교체. + +### 5-1. 히어로 단차(drawtype 102) 3단 라이브러리 실측 ★ +| 라이브러리 | 발동 | pos·실합 | 구성 | +|-----------|------|---------|------| +| **libid1** (일반) | 1~9회 | 16·9500 | q1~q4만 (rare 0%) | +| **libid2** (소프트천장) | **10회차** (libid2need=9) | 23·7747 | q1~q4 + **q5 4종(1.291%)** + q6 3종(0.426%) — rare 등장 개시 | +| **libid3** (하드천장) | **30회차** (libid3need=29) | 7·499 | **q5 4종(20.04%) + q6 3종(6.613%)만 = rare 100% 확정** | + +→ **10회에 고등급 확률 개방, 30회에 고등급 확정**. 일반 pool은 저등급만, 천장 pool은 일반 아이템 weight를 0으로 죽여 고등급 확정. + +### 5-2. 뽑기별 천장 스케줄 +| drawtype | libid2need(소프트) | libid3need(하드) | 비고 | +|---------|------|------|------| +| 히어로 102·1701·7·18·29 | 9 (10회) | 29 (30회) | 히어로 표준 | +| 열쇠 1301 | 3 (4회) | 39 (40회) | 짧은 소프트천장 | +| 열쇠 217 | 4 (5회) | 39 (40회) | | +| 장비 209·214·206 | 61 (62회) | 99 (100회) | 장비는 장주기 | +| 장비 212(10차) | 61 | 99 | libid2·3=1 (교체 없음, 확률 고정형) | +| 히어로무료 1402 | 13 | 39 | | + +- `libid4need = 999` 전 행 = **미사용 4번째 슬롯**(매핑v1 §2-6 재확인). +- 라이브러리 교체 = 확률 보정 코드가 아니라 **테이블 스왑** → 기획자가 코드 없이 천장 튜닝 가능. + +--- + +## 6. 가격·경제 환산 🟢 + +- **1젬(hb_2001)** = $29.99 / 800 = **$0.0375** (pricetable id 40001, 상품 `gems800`). 매핑v1 §2-9 "$29.99→800젬" 정확 재확인. +- **히어로 단차** = 20젬 = **$0.75** (또는 소환권 1). +- **히어로 100차** = 1800젬 = **$67.5** (또는 소환권 100) — 단차 대비 10% 할인. +- **장비 단/10/100차** = 20 / 200 / 1800젬 (10차는 무할인, 100차만 10% 할인). +- pricetable 12행 = 실화폐 상품(gems800·premium·piggy·pack 등). 실화폐가 직접 지급하는 뽑기 재화는 **젬(hb_2001)뿐** — 소환권은 실화폐 직접 판매 없음(젬/토큰 경유). + +--- + +## 7. GodDem 이식 관점 (balance-designer P3-B3 인계) — ★ PD 힌트의 포트 실현 + +### 7-1. 재화 매핑 권고 (PD "골드 일반 + 특정시점 유료"의 포트 실현) +| 원작 | 역할 | GodDem 매핑 권고 | 결과 | +|------|------|-----------------|------| +| 소환권(`dj_7001/7002`)·열쇠(`dj_7011`) | 일반(획득) 뽑기 재화 | **골드(`GOLD_ID=201`)** 직접 소비 | PD "일반 골드로 뽑기"가 **literally 성립** | +| 젬(`hb_2001`) | 특정 시점 유료·티켓 대체 | **프리미엄 재화(젬)** — 미보유 시 신규 도입 or 기존 프리미엄 화폐 | PD "특정 시점 유료" 성립 | +| 일일 무료(206·1402·5101) | 무과금 창구 | **일일 무료 뽑기 N회** (쿨다운) | 원작 구조 계승 | + +- GodDem은 소환권 개념이 없고 골드가 유일 획득 재화 → **원작 티켓 = GodDem 골드**로 번역하면 원작 이원 결제(획득재화 1차 + 젬 대체)가 **골드 1차 + 젬 대체**로 그대로 이식된다. +- 메타아키텍처 §1-1(B1)·§1-3(B2)이 이미 `GOLD_ID=201` 직접 소비를 디폴트로 권고 — 가챠도 동일 재화축이면 SurvivalMeta 재화 시스템(CurrencyManager) 확장 없이 골드 소비 경로 재사용 가능. + +### 7-2. 확률·천장 이식 (구조 그대로) +- **가중추첨**: `drawlib` per-pool weight → GodDem `SurvivalMetaGachaPool.csv`(메타아키텍처 §5 명명). 전 풀 합 10000 basis point 강제(메타아키텍처 §1-4 채택 원칙과 정합). +- **천장**: 라이브러리 교체 2단(소프트/하드) → `SurvivalMetaGachaPity.csv`. GodDem 규모에 맞춰 히어로 표준(소프트 10·하드 30) 또는 열쇠형(소프트 4·하드 40) 중 선택. 라이브러리 스왑 = 확률코드 없이 테이블 3개로 구현. +- **등급 확정**: 하드천장 pool = 저등급 weight 0 → 고등급 100% (drawtype 102 libid3 실측 모델). + +### 7-3. B4 스킬마스터리 연계 +- 원작 히어로 뽑기 결과물은 `dj_5XXX` 히어로 조각(수집형). GodDem은 히어로 1명 구조이므로 **가챠 결과물 = 장비/옵션**(메타아키텍처 §1-4: hit/stun/retaliate/combo 4종 옵션 공급)로 이식됨이 이미 확정. +- 가챠(B3)와 스킬 언락(B4 `SurvivalMetaSkillUnlock`/마스터리)은 **별개 재화·별개 창구**여야 함(원작도 뽑기 재화 ≠ 스킬트리 재화). 가챠=골드/젬, 스킬마스터리=별도 획득 재화 유지 권고. + +--- + +## 8. 실측 검증 요약 (C5·C23·C44 — 정직 보고) + +| 검증 항목 | 결과 | 근거 | +|-----------|------|------| +| config 번들 재복호화 | 🟢 성공 | valid 187/무효16 = 이전 재추출 정확 일치 | +| drawtype 소비 재화 추출 | 🟢 완료 | 이원 결제(티켓+젬) 전 행 실측 — 매핑v1 미추출분 신규 확보 | +| **골드(db_1001) draw 비용 사용** | 🟢 **0건 확정** | 8 draw테이블 × 6 비용필드 전수 스캔 | +| **点券(hb_1001) draw 비용 사용** | 🟢 **0건 확정** | 동일 스캔 — 순수 실화폐재화 draw 없음 | +| 재화 정체(젬/골드/경험서/소환권) | 🟢 확정 | icon 병음 + pricetable(gems800) + shop 용도 3중 교차 | +| dj_1001 골드→경험서 정정 | 🟢 확정 | hero_level 비용 `dj_1001+db_1001` 실측 | +| 천장 라이브러리 3단(소프트10·하드30) | 🟢 확정 | drawtype 102 libid1/2/3 pool 실측(rare 0%→등장→100%) | +| 가중치 basis point | 🟢 확정 | 192 pool 합 분포(102개 10000·나머지 비정규화) | +| 가격($0.0375/젬·단차20·100차1800) | 🟢 확정 | pricetable + drawtype 실측 | + +### 8-1. 재추출 실패·부분 확정·한계 (정직 고지) +- **아이템명 영어/한글 미해석**: config 번들의 `A80_Language`는 ES/PT/TH만 보유(EN 없음)하고 아이템명(nameid 23xxx)은 **본 번들에 부재**(별도 localization 번들 추정). 재화 정체는 **아이콘 병음명 + 실화폐 상품ID + 상점 용도**로 확정했으며 명시적 번역 스트링은 미확보 — 단 3중 교차로 **오판 여지 실질 없음**. +- **소비 로직 명령어 미확증**: `drawitem` 1차 / `drawitem2` 대체의 소비 우선순위는 데이터 구조·통상 관행상 "티켓 우선, 없으면 젬"으로 해석되나, il2cpp **Beebyte 난독화**로 소비 코드 명령어 확증은 차단(이전 재추출과 동일 한계). 데이터 구조(2필드 병존)는 🟢 확정. +- **sparse drawtype 행**: 10개 행이 id+drawtype+drawname만 보유(배너 헤더/템플릿 추정) — 비용 데이터 없어 §3 표에서 제외. 활성 뽑기 13종은 전수 확보. +- **점券(hb_1001) 성격**: 상점 851건 사용·대량 단위(10만 단위)로 "고volume 획득형" 정황이나 실화폐 직접 지급 여부는 pricetable 12행에 없어 🟡. 단 **draw 비용 미사용은 🟢 확정**이라 가챠 결론에 무영향. + +--- + +## 9. 저작권·키 취급 (PD 방침 준수) + +- 원작 데이터는 **참고 수치만** 본 문서에 기재. 원본 파일·복호화본·추출 스크립트는 **scratchpad 한정**(`C:\Users\…\Temp\claude\…\scratchpad`, 레포 외부) — **작업 완료 후 정리**. +- 22바이트 XOR 키는 **runtime 빈도분석 유도만** — 디스크·본 문서·조직 기록에 **평문 미기록**. +- **레포 커밋 금지 확인**: 복호화 원본은 Temp 하위(레포 외부)라 자동 미커밋. GodDem 레포(`E:\NerdNavis\GodDem`) 수정 **0건**(데이터 추출만·Unity MCP 불요). 본 문서(참고 수치 전용)만 BurningTimes 레포 산출. +- 재해독 필요 시 원작 APK에서 §1 방법으로 재추출(빈도분석 키 유도 결정·재현 가능). + +--- + +## 10. 변경 이력 + +| 일시 | 작성 | 변경 | +|------|------|------| +| 2026-08-22 | 개발팀장 | **v1 신규** — PD 지시(원작 가챠 재화 재추출) 대응. drawtype 이원결제·천장 라이브러리 3단·재화 정체(골드=db_1001 정정)·PD 힌트 정합 판정. 메타아키텍처 §10 🔴(가챠 재화 근거 부재) 데이터 해소. balance-designer P3-B3 인계용. | diff --git a/공유/대화로그/GodDem/2026-08-22.md b/공유/대화로그/GodDem/2026-08-22.md index 717071f..a0f9449 100644 --- a/공유/대화로그/GodDem/2026-08-22.md +++ b/공유/대화로그/GodDem/2026-08-22.md @@ -409,3 +409,13 @@ - **개발팀장 원작 가챠 재추출 착수**(진행중): ①가챠 소비 재화 구조(일반 골드 vs 특정 시점 유료·"특정 시점" 조건 데이터 규명·PD 힌트 검증) ②가중추첨(heroequipmentskill weight) ③천장(drawtype libid need) ④가격. 산출 예정 `2026-08-22_원작가챠_재추출_원본_v1.md` - **후속 체인**: 재추출 → balance-designer B3 설계(원작 정합) → plan-auditor 검증 → 개발팀장 구현 → **영구 성장 5층 완성** - **원작 정합 방침 일관**: PD "원작처럼 맞춰" — 재화·확률·천장 모두 원작 재추출 실측 후 이식. 추정 배제(C44) + +## 59. 원작 가챠 재추출 완료 — PD 힌트 정합 + B3 설계 착수 (개발팀장→PM, 2026-08-22) + +- **★ PD 힌트 🟢 정합 확정**: 원작 뽑기 = **이원결제**(1차 획득재화 소환권 dj_7001/7002·열쇠 / 2차 특정시점 유료 젬 hb_2001). **"특정 시점 유료" 조건 3**: ①티켓 소진 시 젬 대체 ②일일 무료 초과(장비 5회/일·히어로 1회) ③순수 실화폐 뽑기 0건. **골드는 원작 뽑기 미사용**(레벨업 소프트재화 db_1001) +- **포트 매핑**: GodDem 소환권 없음·골드 유일 획득재화 → **원작 소환권→GodDem 골드** 매핑 시 PD "골드 일반·특정시점 유료(젬)" literally 성립·원작 이원결제 충실. **메타아키텍처 §10 가챠 재화 블로커(🔴 PD 이관) 데이터 해소** +- **가중추첨·천장·가격**: drawlib weight/10000(102 pool 합 10000)·**천장 라이브러리 교체 3단**(히어로 libid1 1~9→libid2 10회 소프트 q5/q6 등장→libid3 30회 하드 q5/q6 100%·장비형 62/100)·단차 20젬·100차 1800젬(10% 할인). 확률코드 없이 테이블 스왑 +- **재화 정정**: 진짜 골드=db_1001·dj_1001=영웅경험서(스테이지/장비 doc "dj_1001 골드" 오류 정정) +- **정직 한계**: drawitem/drawitem2 소비 우선순위(티켓 우선) 구조 해석·난독화 명령어 확증 차단(이전 재추출 동일)·데이터 구조(2필드 병존) 🟢 +- **balance-designer B3 설계 착수**(진행중): 재화(골드 일반·젬 특정시점)·가챠 대상(메타 §5 GachaOption hit/stun/retaliate/combo 4종)·천장 3단·경제 연계. 산출 `2026-08-22_P3B3_가챠_설계_v1.md` +- **후속**: B3 설계 → plan-auditor 검증 → 개발팀장 구현 → **원작 아키텍처 5층 완성**