76e60d3350
Add character select start menu
2026-06-10 20:57:43 +09:00
e241382d09
chore(model): Model_monster-43 을 Models/Monsters/ 로 재배치
...
메이커에서 수행한 모델 재배치 반영.
- RootDesk/MyDesk/Model_monster-43.model → RootDesk/MyDesk/Models/Monsters/Model_monster-43.model (이동, 내용 동일)
- freeze-turn-monsters.mjs 의 모델 경로 참조를 새 위치로 갱신 (이동 후에도 생성기가 모델을 찾도록)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 20:55:19 +09:00
f4b349532d
fix(ui): render deck popups above monster hp
2026-06-10 20:20:42 +09:00
683ea88271
Merge pull request 'Map monster combat' from feature/map-monster-combat
...
# Conflicts:
# RootDesk/MyDesk/SlayDeckController.codeblock
2026-06-10 19:58:56 +09:00
516348c0ec
Merge pull request 'Add all deck popup' from feature/deck-pile-inspector
2026-06-10 19:57:37 +09:00
f211a79c82
Merge remote-tracking branch 'origin/main' into feature/map-monster-combat
...
# Conflicts:
# RootDesk/MyDesk/SlayDeckController.codeblock
2026-06-10 08:34:23 +09:00
f33a5507db
fix(combat): 플레이테스트 반영 — 상태전이 실행공간 에러 제거 + 슬롯 좌표 정렬
...
- ReviveMonsterEntity/KillMonster의 StateComponent:ChangeState 제거
(client 실행공간에서 LEA-3022 InvalidExecSpace 발생) → SetVisible 기반 표시/숨김으로 대체
- monster-slots.json 좌표를 맵 우측 몬스터 무리 위로 조정
- 메이커 플레이테스트로 전체 전투 루프(등록·타겟·공격·적턴·처치·승리·보상) 무에러 확인
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 02:15:40 +09:00
647516d0cd
feat(combat): 맵 몬스터 카드 전투 산출물 재생성 (UI 슬롯·컨트롤러)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 01:31:03 +09:00
f704d0f14e
refactor(combat): 죽은 단일적 코드 제거 + HP_BAR_W 상수 추출
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 01:29:27 +09:00
f0569d9a53
feat(combat-ui): 몬스터 슬롯 UI(HP바·의도·타겟버튼) + monster-slots.json
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 01:21:45 +09:00
a5c7d96770
feat(combat): 승리조건(전체 처치)·몬스터 슬롯 렌더·HP바·타겟 클릭
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 01:17:32 +09:00
423407325d
feat(combat): EnemyTurn 생존 몬스터 각자 행동
2026-06-10 01:15:12 +09:00
ec45438b3c
feat(combat): PlayCard 타겟 몬스터 공격 + 사망 처리/연출
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 01:13:33 +09:00
020be477e6
feat(combat): 컨트롤러 멀티 몬스터 상태 + 등록/BuildMonsters/부활
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 01:09:27 +09:00
9eef5eb66e
fix(monster): gen-combat-monster 방어적 가드(componentNames/@components) + 코드블록 trailing newline
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 01:06:11 +09:00
185e0f3a94
feat(monster): CombatMonster 마커(EnemyId·자기등록) + 11맵 몬스터 패치
2026-06-10 01:00:23 +09:00
de23829439
fix(sim): 빈 인카운터 즉시 승리·타겟 타이브레이크 결정성·주석·draw/empty 테스트
2026-06-10 00:57:53 +09:00
4ef3d1811d
feat(sim): 전투 규칙을 멀티 몬스터로 (타겟 선택·각자 의도·전체 처치 승리)
2026-06-10 00:52:17 +09:00
b14b614d94
feat(combat-data): 맵 몬스터 적 타입(주황/파란버섯) + simEncounter 추가
2026-06-10 00:48:46 +09:00
0cbcf4c70d
docs(map-monster-combat): 구현 계획 (9개 태스크)
...
데이터→sim(TDD)→CombatMonster 마커→컨트롤러 멀티 전투(상태/PlayCard/EnemyTurn/승리/렌더)→슬롯 UI→재생성·플레이테스트.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 00:45:40 +09:00
1583f7ec26
Add all deck popup
2026-06-10 00:38:34 +09:00
da5dd03183
docs(map-monster-combat): 맵 몬스터 카드 전투 설계
...
추상 단일 적 → 맵 실제 몬스터 멀티 전투(클릭 타겟·각자 HP/의도·전체 처치 시 승리).
컨트롤러 단일 소유 + script.CombatMonster(EnemyId) 매핑 + 월드 HP바 슬롯.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 00:35:49 +09:00
c0cbea42a2
Merge pull request 'Add deck pile inspector UI' ( #24 ) from feature/deck-pile-inspector into main
...
Reviewed-on: #24
2026-06-10 00:24:38 +09:00
de6e12c765
Add deck pile inspector UI
2026-06-10 00:17:00 +09:00
f38a3c98b1
Merge pull request 'feat(map01): 주황버섯 추격 몬스터 배치 + 카메라 시점 미세조정' ( #23 ) from feature/map01-monster into main
...
Reviewed-on: #23
2026-06-10 00:16:21 +09:00
62e76f7db2
feat(map01): 주황버섯 추격 몬스터 배치 + 카메라 시점 미세조정
...
- map01: StaticMonsterTemplate → 주황버섯(ChaseMonster 모델) 교체
(애니메이션 move/stand/jump/hit/die·히트박스·위치 x 5.2 갱신, 이동은 턴전투용 정지)
- 타일맵 TemplateRUID 변경
- 카메라 cameraOffsetY -1 → -0.83 (data/camera.json + MapCamera.codeblock)
- 메이커 저장 재직렬화 포함: common.gamelogic 수치 표기(0→0.0), map02~11 컴포넌트 순서, ui/DefaultGroup.ui
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 00:14:43 +09:00
ff91680f18
Merge pull request '.mjs 주체별 폴더 분류 + 카메라/플레이어 제어 분리' ( #22 ) from feature/map-camera into main
...
Reviewed-on: #22
2026-06-10 00:01:12 +09:00
b18c44f0a5
Merge remote-tracking branch 'origin/main' into feature/map-camera
...
# Conflicts:
# README.md
2026-06-09 23:59:44 +09:00
124e49b938
refactor(tools): .mjs를 주체별 폴더로 분류 + 카메라/플레이어 제어 분리
...
- tools/{player,monster,camera,map,deck,balance}/ 로 8개 스크립트 분류 (git mv 이력 보존)
- gen-camera의 플레이어 입력 차단·시선 고정을 tools/player/gen-player-lock.mjs(PlayerLock 코드블록)로 분리
- MapCamera 코드블록은 카메라 속성 전용으로 정리, 11개 맵 루트에 script.PlayerLock 부착
- README 및 스크립트 주석의 도구 경로 갱신
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 23:52:02 +09:00
c9f82708c8
Merge pull request '맵별 고정 카메라 + 시점 조정 + 플레이어 셋업(입력차단·오른쪽) + map01 배치' ( #21 ) from feature/map-camera into main
...
Reviewed-on: #21
2026-06-09 23:39:18 +09:00
f1d101f6a4
feat(map-camera): 게임 시작 시 플레이어 입력 차단·오른쪽 바라보기 + map01 몬스터 3마리 배치
...
MapCamera 스크립트(맵 진입 OnBeginPlay)가 카메라에 더해 플레이어도 셋업:
- PlayerControllerComponent.LookDirectionX=1 (오른쪽 — 기본은 -1 왼쪽)
- FixedLookAt=true (방향 고정)
- Enable=false (키보드 입력 차단: 이동/점프/공격)
- map01: 몬스터 3마리 배치(사용자 의도 변경 포함)
- 메이커 Play 검증: LookDirectionX=1·Enable=false 확인, 오른쪽키 입력→플레이어 미이동(입력 차단), 아바타 정상, 카메라 zoom90·offset(1.5,-1) 유지
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 23:35:58 +09:00
5dfbef4f0f
Merge pull request '맵별 고정 카메라 (MapCamera) — 11맵 카메라 framing 고정' ( #20 ) from feature/map-camera into main
...
Reviewed-on: #20
2026-06-09 23:28:57 +09:00
fbf5cfe19f
fix(map-camera): ScreenOffset→CameraOffset로 시점 조정 + zoom 90
...
ConfineCameraArea=true에서는 ScreenOffset이 무시됨(MSW 문서·실측 확인) → 시점 이동은 CameraOffset(월드 좌표)으로.
- data/camera.json: zoomRatio 90, cameraOffsetX 1.5, cameraOffsetY -1 추가 (x+ 오른쪽 / y- 아래)
- gen-camera: codeblock에 cam.CameraOffset = Vector2(...) 굽기 추가
- 메이커 Play 검증: 파이프라인(camera.json→gen-camera→reload)으로 zoom90·offset(1.5,-1) 적용, 시점이 우하단으로 이동 확인
- 참고: 시점 조정은 CameraOffset 사용(ScreenOffset은 confine=true에서 무효, 범위 0~1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 23:22:52 +09:00
9eeb12adf9
docs(map-camera): 고정 카메라 설계·구현 계획
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 22:24:09 +09:00
68c9333b59
feat(map-camera): 맵별 고정 카메라 — MapCamera 스크립트로 11맵 카메라 framing 고정
...
맵 로드 시 플레이어 CameraComponent를 data/camera.json 값(현재 map01: zoom100·screenOffset0.5/0.655·confine)으로 설정.
- data/camera.json: 카메라 framing 단일 설정
- tools/gen-camera.mjs: MapCamera.codeblock 생성 + 11맵 루트에 script.MapCamera 부착(idempotent)
- 새 CameraComponent 미생성(엔진 소유) — 기존 플레이어 카메라 속성만 런타임 설정
- OnBeginPlay(client, ExecSpace 6) + LocalPlayer 카메라 재시도 타이머
- 메이커 Play 검증: zoom 60 테스트로 적용 입증, 100으로 복원. idempotent·결정적
- 참고: 맵 루트 client 스크립트는 ExecSpace 6 필요(1은 미발동)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 22:24:09 +09:00
8405395d84
Merge pull request 'docs: README를 전체 구현(B~E6a+메인메뉴+freeze)에 맞게 갱신' ( #19 ) from docs/readme-full-status into main
...
Reviewed-on: #19
2026-06-09 13:52:38 +09:00
f310d2978e
docs: README를 전체 구현(B~E6a+메인메뉴+freeze)에 맞게 갱신
...
디렉토리 구조(data/·tools 도구), 게임 프레임워크 현황(메인메뉴·카드전투·런영속·보상·분기맵·상점/휴식·유물·멀티act·밸런스시뮬·freeze), 스크립트 호출, 다음 단계(저장·카드제거·밸런싱·IP확장) 반영.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 13:51:20 +09:00
971539a72f
Merge pull request 'feature/slay-deck-controller' ( #14 ) from feature/slay-deck-controller into main
...
Reviewed-on: #14
2026-06-09 13:39:16 +09:00
861442e2c1
Merge main into feature/slay-deck-controller — B~E6a 카드시스템 통합 + 메인 메뉴 이식
...
main의 35커밋(B 전투통합~E6a 멀티act)을 브랜치에 통합. 충돌 해결:
- tools/gen-slaydeck.mjs: main(B~E6a) 생성기 채택 + 브랜치 메인 메뉴(MainMenu UI·ShowMainMenu/BindMenuButtons/StartNewGame/SetEntityEnabled·OnBeginPlay→메뉴) 이식
- ui/DefaultGroup.ui·SlayDeckController.codeblock: 통합 생성기로 재생성
- map10·모델: main 채택 후 freeze 도구(freeze-turn-monsters/player) 재적용
정적 검증: 문법·JSON 유효·생성기 결정적·메뉴/B~E6a 양쪽 유지·freeze 적용.
⚠️ Maker 연결 해제로 메뉴→게임 런타임 검증은 미수행(사용자 메이커 확인 필요).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 13:29:28 +09:00
cb4d72ead2
Merge pull request '다음 막 진행·적 스케일 (TODO E6a) — 멀티 act 런' ( #18 ) from feature/floors into main
...
Reviewed-on: #18
2026-06-09 13:18:00 +09:00
376511dfa9
docs(E6a): 다음 막/멀티 act 설계·구현 계획
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 04:13:56 +09:00
f42628c2e9
feat(E6a): 다음 막 진행·적 스케일 — 멀티 act 런
...
보스 클리어 시 즉시 종료 대신 다음 막으로, 최종 막 보스에서 런 클리어.
- Floor를 막 카운터(1..ACT_COUNT=3)로 재정의, RunLength=ACT_COUNT
- StartCombat: 적을 막 배율(mult=1+(Floor-1)*0.6)로 스케일(maxHp·의도값, 새 테이블)
- CheckCombatEnd 보스 승리: Floor<RunLength면 다음 막(같은 맵 재사용·CurrentNodeId 리셋·ShowMap), 최종 막이면 '런 클리어!'
- HP/골드/덱/유물 막 간 유지(기존 영속), combatStart 유물 전투마다 재적용
- RenderRun HUD 라벨 '층'→'막'
- 메이커 Play 검증: 보스 120→192→264 스케일, 막 1→2→3, 3막 클리어, 영속 유지
- 제외: E6b 저장/불러오기(미진행)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 04:13:55 +09:00
ace489ed0f
Merge pull request '유물 시스템 (TODO E5) — 훅 패시브 + 3획득경로' ( #17 ) from feature/relics into main
...
Reviewed-on: #17
2026-06-09 04:04:31 +09:00
4c866f3cd9
docs(E5): 유물 설계·구현 계획
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 03:53:38 +09:00
5ebc781f81
feat(E5): 유물 시스템 — 훅 패시브 + 3획득경로
...
훅 기반 유물(패시브) + 시작/엘리트/상점 획득.
- data/relics.json: 유물 4종(강철심장 combatStart 방어+6, 에너지코어 turnStart 에너지+1, 흡혈 cardPlayed HP+1, 황금우상 combatReward 골드+10) + startingRelic + relicPool
- ApplyRelics(hook): RunRelics 순회·effect 적용. 4지점 연결(StartCombat/StartPlayerTurn/PlayCard Attack/CheckCombatEnd)
- 획득: AddRelic 공용 — StartRun 시작 유물(C), 엘리트 승리 무작위(A), 상점 BuyRelic 골드-60(B)
- UI: CombatHud 유물 바(RenderRelics)·ShopHud 유물 슬롯
- 생성기: relics.json 로드/검증/luaRelicsTable, RELIC_PRICE=60
- 메이커 Play 검증: 방어+6·에너지4·공격HP+1·승리골드+25·엘리트/상점 유물 획득
- 범위 밖: 부정 유물·조건부 효과·유물 제거·보스 유물
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 03:53:37 +09:00
edbc717426
Merge pull request '상점/휴식 노드 (TODO E4) — 골드 소비·HP 회복' ( #16 ) from feature/shop-rest into main
...
Reviewed-on: #16
2026-06-09 03:37:49 +09:00
03b59eeafc
docs(E4): 상점/휴식 설계·구현 계획
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 03:35:05 +09:00
0400291939
feat(E4): 상점/휴식 노드 — 골드 소비·HP 회복
...
맵에 상점/휴식 노드 추가, 진입 시 전투 대신 상호작용 UI로 분기.
- data/map.json: 4행 맵에 rest(휴식)·shop(상점) 노드 추가(enemy 없음)
- 생성기: enemy 선택적 검증/직렬화, MapHud 노드 y 행수 비례 중앙정렬, TYPE_KO에 상점/휴식
- PickNode 타입 분기: shop→ShowShop, rest→ShowRest, 그 외→StartCombat
- 상점: ShowShop(카드3 무작위)·RenderShop·BuyCard(골드-30·RunDeck+1·재구매/부족 가드)
- 휴식: ShowRest(HP+30 상한 클램프)
- LeaveNode(상점/휴식 공용 나가기→ShowMap)
- UI: ShopHud(카드3·가격·골드·나가기)·RestHud(회복 정보·나가기), 상수 CARD_PRICE=30·REST_HEAL=30
- 메이커 Play 검증: 상점 구매(부족/재구매 무시 포함)·휴식 회복·맵 분기 정상
- 알려진 튜닝: 골드/승리 15 < 카드값 30 → 경제 밸런싱 필요(sim-balance 활용)
- 범위 밖: 카드 제거(덱 보기 UI)·유물(E5)·저장(E6)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 03:35:05 +09:00
42ce7286f5
Merge pull request '분기 맵 노드 진행 (TODO E3) — 경로 선택·적 차등·보스 클리어' ( #15 ) from feature/map-nodes into main
...
Reviewed-on: #15
2026-06-09 03:20:13 +09:00
444d02367e
docs(E3): 분기 맵 노드 설계·구현 계획
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 03:18:49 +09:00