Commit Graph

402 Commits

Author SHA1 Message Date
911f45407c docs(F): 밸런스 시뮬레이터 설계·구현 계획 문서
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 01:39:21 +09:00
f42e03a006 feat(F): AI 전투 밸런스 시뮬레이터 tools/sim-balance.mjs
data/*.json을 입력으로 전투를 몬테카를로 N회 시뮬 → 승률·턴·OP 카드 리포트.

- 전투 엔진 JS 재현(gen-slaydeck Lua 미러): 에너지3·드로우5·방어우선차감·결정적 의도·승패·턴상한
- 플레이어 휴리스틱 정책: 치사 우선 → 적 공격의도 시 방어 → 공격 우선, 에너지 효율순
- 시드 PRNG(mulberry32)로 재현성, OP 탐지(kind별 효율 중앙값 1.5배↑ 플래그)
- CLI: node tools/sim-balance.mjs [N] [--seed S]
- node:test 단위 테스트 10종(applyDamage·정책·엔진·집계)
- 검증: 현 데이터 승률 100%(슬라임 약함 신호), 적 HP 45→300 시 평균턴 5.6→39.6(데이터 반영)
- 전투 규칙은 Lua와 중복이라 동기화 주석 명시

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 01:39:21 +09:00
e6994f92f7 Merge pull request 'feat(D): 카드/적 데이터 외부화 (data/*.json)' (#11) from feature/data-externalization into main
Reviewed-on: #11
2026-06-09 01:29:03 +09:00
929347c599 docs(D): 데이터 외부화 설계·구현 계획 문서
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 01:25:25 +09:00
8789330a4e feat(D): 카드/적 데이터 외부화 (data/*.json)
Cards·시작덱·적 정의를 data/cards.json·data/enemies.json으로 분리, gen-slaydeck가 로드·검증·주입.

- data/cards.json: 카드 정의(name/cost/kind/damage|block/desc) + starterDeck
- data/enemies.json: 적 정의(name/maxHp/intents) + activeEnemy
- 생성기: JSON 로드 + fail-fast 검증(미존재 카드/적 id) + Lua 직렬화 헬퍼
- StartCombat·EnemyMaxHp·카드 미리보기·CombatHud 초기텍스트를 데이터에서 생성
- codeblock 출력은 기존과 동일(순수 리팩터), ui 미리보기는 카드 종류 순환 표시
- 검증: 데이터 1장 수치 변경→재생성 반영 확인, 결정성, fail-fast(exit1), 메이커 Play 정상
- 수치는 임시 placeholder, 추후 메이플 IP대로 카드/적 확장 예정

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 01:25:25 +09:00
9550302137 Merge pull request 'docs(A): README·framework 문서를 실제 구현에 맞게 정정' (#10) from feature/docs-alignment into main
Reviewed-on: #10
2026-06-09 01:12:17 +09:00
e8ed467cda docs(A): README·framework 문서를 실제 구현에 맞게 정정
미존재 3컴포넌트(SlayCardCatalog/SlayRunState/SlayCombatManager)를 구현된 것처럼 서술하던 부분을 정정.

- '게임 프레임워크 현황'을 실제 구현(SlayDeckController 기반 카드 전투 + B 결과)으로 재작성
- 3대 컴포넌트는 '향후 설계(미구현 — 목표 아키텍처)' 섹션으로 분리 보존
- 디렉토리 트리·codeblock 목록·생성기(tools/) 반영, SlayDeckController 추가
- 스크립트 호출 예시를 실제 메서드(PlayCard/EndPlayerTurn/StartCombat)로 교체
- '다음 구현 단계'에서 전투 UI·전투 루프 완료 표시, D/F/E 반영
- 수치는 임시 placeholder임을 명시
- framework 문서도 동일 기조로 재작성 + Planned 섹션에 3컴포넌트 보존

검증: 문서에 적힌 컴포넌트명을 코드와 grep 교차확인 (SlayDeckController 실재, 3컴포넌트 코드 0건).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 01:10:35 +09:00
9206018fbe Merge pull request 'carddeck(B): CombatHud 적 패널 정렬·정수 표기 수정' (#9) from feature/combat-hud-polish into main
Reviewed-on: #9
2026-06-09 01:03:44 +09:00
788167b1ae carddeck(B): CombatHud 적 패널 정렬·정수 표기 수정
런타임 검증에서 발견된 시각 결함 2건 수정.

- 적 텍스트(이름/HP/방어/의도)를 EnemyBg 패널(y=300) 위로 정렬 (기존 center 배치로 패널과 분리됨)
- HP/방어/에너지 등 codeblock number Property를 string.format("%d")로 정수 표기 (Lua tostring의 .0 제거)

생성기 단일 소스에서 재생성. 메이커 Play로 정렬·정수 갱신 확인.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 01:02:56 +09:00
e5a75a83b5 Merge pull request '카드 전투 통합 (TODO B) + 미커밋 노이즈 정리 (C)' (#8) from feature/deck-controller-fixes into main
Reviewed-on: #8
2026-06-09 00:51:04 +09:00
724cd5a04d docs(B): 카드 전투 통합 설계·구현 계획 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 00:04:33 +09:00
bd02865f4f carddeck(B): 카드 전투 통합 — 적/플레이어 전투 상태·의도·승패
PlayCard가 토스트 대신 실제 효과를 적용하도록 통합.

- 카드 데이터에 damage/block 수치 필드 추가 (desc 파싱 폐기)
- 전투 상태: 플레이어 HP/Block, 적 HP/Block/의도(결정적 사이클)
- PlayCard: Attack→적 HP 감소(방어 우선 차감), Skill→플레이어 Block 증가
- EndPlayerTurn→적 턴(의도 실행)→다음 플레이어 턴, 승패 판정
- CombatHud UI: 적 패널(이름/HP/방어/의도)·플레이어 패널(HP/방어)·결과 텍스트
- 수치(플레이어80/적45/의도10·6·방8)는 임시 placeholder (D에서 캐릭터/몬스터별 외부화)

생성기 단일 소스(tools/gen-slaydeck.mjs)에서 생성. 결정적 출력 확인.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 00:04:26 +09:00
8f08e67e4c 미사용 고아 리소스 invincible belief.sprite 제거
카드 5장 통일로 이미지 카드가 손패에서 빠져 이 스프라이트는 미참조 고아가 됨.
descriptor Id가 무효라 플레이마다 LEA-3021 에러를 유발하므로 제거.
(맵 Background.WebUrl의 휴면 참조는 Type=Template이라 미사용 — 무해, 유지)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 01:24:25 +09:00
4bf7e29315 Maker 세션 재저장분(맵 02/05/06/07/10/11) 복구 포함
stash해 둔 로컬 맵 재저장분 복구. 몬스터 2종·old 스프라이트 미사용·타일셋 교체·유효 GUID 무결성 검증 완료.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 01:13:46 +09:00
b1921ee843 gen-slaydeck: 유효한 GUID 생성으로 수정 (DeckHud·카드 자식 entity id)
기존 guid() prefix+4hex는 8-4-4-4-12 형식이 아니어서 Maker가 적용 거부(LEA-3054).
네임스페이스 바이트 기반 hex GUID로 변경하고, 기존 자식 id도 재생성 시 정규화.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 01:11:44 +09:00
f508952960 재생성: 카드 클릭 사용·균일 카드·핸들러 클로저 반영
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 01:08:40 +09:00
5bc5b3dc5c 덱 컨트롤러 생성기: 핸들러 클로저화·카드데이터 단일화·카드클릭 사용·pcall 제거
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 01:07:46 +09:00
6c392764d5 덱 컨트롤러 코드리뷰 수정 설계 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 01:01:42 +09:00
14449373e0 Merge pull request 'Add main menu flow' (#7) from feature/main-menu into feature/slay-deck-controller
Reviewed-on: #7
2026-06-08 00:38:29 +09:00
b0f0188106 Merge pull request 'Add slay deck controller UI' (#6) from feature/slay-deck-controller into main
Reviewed-on: #6
2026-06-08 00:37:54 +09:00
maple
27818e92c7 Fix turn combat facing and player movement 2026-06-08 00:01:46 +09:00
maple
1299d718e2 Disable monster patrol movement 2026-06-07 23:56:20 +09:00
maple
913b4f1721 Avoid client state transition for monsters 2026-06-07 23:42:05 +09:00
maple
a9926feea3 Freeze monsters for turn combat 2026-06-07 23:39:58 +09:00
maple
8eab9a75ac Fix generated UI GUIDs 2026-06-07 23:33:44 +09:00
maple
8c397cbc09 Add main menu flow 2026-06-07 23:27:44 +09:00
maple
cfc41ac3d9 Add slay deck controller UI 2026-06-07 22:35:00 +09:00
3ab7f10182 Merge pull request '맵 10개 추가: 맵별 배경·타일·몬스터 다양화 + StS2 전투 배치' (#5) from feature/maps-batch into main
Reviewed-on: #5
2026-06-06 14:31:25 +09:00
dd5acafab4 맵10개 개선: 수확한 다양한 몬스터 2종(StS2 우측 배치) + 맵별 타일셋
공식 필드맵 import로 몬스터 변형 9종·타일셋 12종 수확. map01 기존 4종 미사용.
각 맵: 서로 다른 몬스터 2마리(x=3.5/5.5 우측), 맵별 다른 타일셋, 기존 배경 유지.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 14:09:45 +09:00
bce13fc788 맵 생성기: 수확한 다양한 몬스터 2종(StS2 우측 배치) + 맵별 타일셋 교체
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 14:07:10 +09:00
b5d6f913e3 맵 개선(다양한 몬스터+타일셋+StS2 배치) 설계 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 13:39:39 +09:00
989031239b 맵 10개 생성 구현 계획 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 12:42:19 +09:00
9b3276e5a4 맵 10개(map02~map11) 생성: 공식 스셌러리 배경 10종 + 몬스터 2마리, sector 등록
map01 템플릿 복제, 엔티티 GUID 재발급. 배경은 공식 MapleStory 맵에서
수확한 Background 타입 RUID 10종(맵마다 다르게). 몬스터는 기존 4종에서
랜덤 2마리 + 랜덤 위치.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 12:42:19 +09:00
de2fcdbe7c 맵 생성기 추가 (map01 템플릿 복제·배경/몬스터 주입)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 12:19:11 +09:00
874d6792dc 맵 10개 생성 (랜덤 배경+몬스터) 설계 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 12:10:56 +09:00
9bc1163103 Merge pull request '전투 화면 하단 카드 손패 UI + 5번 카드 이미지 적용' (#4) from feature/sts2-combat-layout into main
Reviewed-on: #4
2026-06-06 12:00:08 +09:00
6a049def85 카드 슬롯 이미지 적용 구현 계획 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 11:54:44 +09:00
d1e8723954 5번 카드에 리부트 프로토콜 이미지 카드 적용 (로컬 워크스페이스 스프라이트)
invincible belief.png를 Maker 로컬 워크스페이스 스프라이트로 임포트해
Card5 SpriteGUIRenderer의 ImageRUID로 지정. 클라우드 계정 리소스는
로컬 워크스페이스 플레이에서 로드되지 않아 로컬 임포트 RUID 사용.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 11:54:33 +09:00
a5f3bf1829 카드 손패 생성기: image 필드 지원 (5번 카드 이미지 적용)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 08:19:36 +09:00
42e300878d 카드 슬롯 이미지 적용 설계 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 08:12:16 +09:00
4f9798ec3f 하단 카드 손패 구현 계획 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 05:58:46 +09:00
c9c761db04 카드 손패를 화면 하단에 배치 (AlignmentOption BottomCenter 교정) + 단색 카드 배경
MSW가 AlignmentOption으로 앵커를 결정하는 점을 반영해 컨테이너를 BottomCenter(6)로,
카드 내부 텍스트는 Center 기준 오프셋으로 교정. 카드 배경은 단색 채움으로 변경.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 05:58:25 +09:00
700e3ee373 전투 화면 하단에 카드 손패 5장 목업 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 05:49:34 +09:00
2c390660fb 카드 손패 생성기: UUID 형식 교정 및 중앙정렬 일반화 2026-06-06 01:50:25 +09:00
3b2e6afbcf 카드 손패 생성기: 기존 파일 줄바꿈(CRLF) 보존 2026-06-06 01:42:20 +09:00
af3480d8b6 하단 카드 손패 엔티티 생성 스크립트 추가 2026-06-06 01:38:38 +09:00
bff67f48bd 하단 카드 손패 UI 목업 설계 문서 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 01:27:05 +09:00
c9ba86e264 Merge pull request '맵 전투 구도를 Slay the Spire 2 스타일로 재배치' (#2) from feature/sts2-combat-layout into main
Reviewed-on: #2
2026-06-06 01:22:21 +09:00
1046a22753 Merge pull request 'Add Holodragon King model' (#3) from codex/msw-project-updates into main
Reviewed-on: #3
2026-06-06 01:21:56 +09:00
maple
84b82415a9 Add Holodragon King model 2026-06-06 01:17:53 +09:00