feat(monster): 적 종별 모델(프리팹) + 스테이지 로스터 배치 #107

Merged
gahusb merged 12 commits from feature/monster-models into main 2026-07-03 01:34:27 +09:00

12 Commits

Author SHA1 Message Date
ffcec649fa chore: 산출물 재생성 — map01~05 몬스터 인스턴스 entry_id 수정 반영
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-03 01:18:06 +09:00
3b678e35d1 fix(monster): 맵 인스턴스 origin.entry_id를 modelId와 일치시켜 MissingModel 해소
메이커가 엔티티의 원본 모델을 origin.entry_id로 해석하는데, entry_id를
enemyId("junior_bugi")로 넣어 model://monster-junior_bugi(실제 EntryKey)와
불일치 → [LEA-3028] MissingModel로 전 몬스터 미표시. entry_id를
modelEntryId(=modelId="monster-<id>")로 수정. 메이커 인게임 검증: 전투에서
전 종 정상 렌더(stump=1110101도 나무토막 확인).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-03 01:18:06 +09:00
ee68fb5bb0 chore: 산출물 재생성 — stump 모델 + map04 배치 (18/18·전 5맵 완성)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 20:24:39 +09:00
a7f949fad8 data: stump(나무토막) 외형 추가 (mob 1110101) — 18/18 완성
MSW "나무토막" localized 검색에 잡힌 유일한 저레벨 몹 클립셋(1110101:
stand/hit/die/move) 채택. 시각 확정은 플레이테스트(map04)에서.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 20:24:39 +09:00
9fbf8e8574 chore: 산출물 재생성 — 모델 17종 + map02/03/05 로스터 배치
적 외형 8종 추가로 모델 8개 신규(slime·pig·mushmom·blue_mushroom 등),
map02/03/05가 준비도 가드 통과해 종별 모델 인스턴스로 재배치.
map04는 stump 미보유로 보존(스킵).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 19:57:40 +09:00
d61628d359 data: 적 외형 8종 추가 (공식 리소스 RUID 수확) — stump 제외 17/18
MSW 자산 검색으로 공식 maplestory 몹 클립 확보:
- slime(0210100)·slime_elite/boss(슬라임 재사용, box 스케일)
- pig(1210100)·mushmom(6130101)·blue_mushroom(2220110)
- red_snail·modified_snail(snail 0100100 — 빨강변형 0100102는 카탈로그 부재)
stump(나무토막)는 카탈로그에서 미발견 → 미보유 유지(map04 준비도 가드 스킵).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 19:57:40 +09:00
18da7a7983 docs: 몬스터 종별 모델 산출물 규칙(RULES §1)·README 반영
RULES §1 표에 Models/Monsters/<enemyId>.model 행 + 보조 생성기 3종 갱신.
README 디렉토리 구조·기능 표(몬스터 종별 모델)·재생성 명령 반영.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 13:57:22 +09:00
695f048c2d chore(map): 산출물 재생성 — map01 로스터 기반 몬스터 재배치(종별 모델 9마리)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 13:55:46 +09:00
6e82d0f128 feat(map): 인카운터를 encounters.json 로스터 기반 모델 인스턴스 배치로 개편
MONSTER_VARIANTS 랜덤 외형 제거(외형=enemies.json appearance로 정체성 고정).
buildMonsterInstance로 종별 모델(monster-<id>) 인스턴스 배치, 준비도 가드로
appearance 미보유 로스터 맵은 보존(Task 2 RUID 수확 후 재생성).
gen-combat-monster는 codeblock 생성만(맵 부착은 encounters 생성기로 흡수).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 13:55:46 +09:00
1390b9ec50 feat(monster): 적 종별 모델 생성기 + 모델 산출물 재생성(9종)
단일 소스 data/enemies.json appearance → Models/Monsters/<enemyId>.model.
EntryKey model://monster-<id> 네임스페이스(기존 모델과 충돌 가드), 태생 AI-free.
appearance 미확보 9종(slime 등)은 Task 2(RUID 수확) 후 추가 예정.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 13:52:45 +09:00
cdfc79cd57 feat(monster): 몬스터 모델·인스턴스 공용 빌더 lib + 단위테스트
buildMonsterModel(.model 골격 복제·외형/EnemyId 베이크·AI-free) +
buildMonsterInstance(맵 엔티티) + modelEntryId. fs 접근 없는 순수 함수.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 13:51:58 +09:00
bfb9ee5bef data: 적 외형(appearance) 9종 + 맵별 로스터(encounters.json) 신설
map01 메이커 큐레이션 외형을 enemies.json으로 흡수(단일 소스화).
encounters.json: map01=현 실태, map02~05=티어별 초안(기존 18종 내).
appearance는 luaEnemiesTable 화이트리스트 밖이라 codeblock 불변(diffcheck IDENTICAL).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
2026-07-02 13:50:42 +09:00