Commit Graph

116 Commits

Author SHA1 Message Date
34531b184f 도적 카드 공용 효과 추가 2026-06-19 21:59:49 +09:00
acf295d56c 도적 카드 공용 효과 추가 2026-06-19 02:57:11 +09:00
b2bf1bf4dd 카드 설명 키워드 하이라이트 추가 2026-06-19 01:51:36 +09:00
71435a2c91 밴딧 카드 공용 효과 확장 2026-06-19 01:26:15 +09:00
f64e35668d Merge origin/main into main 2026-06-19 00:58:31 +09:00
ba1651e52c 밴딧 공용 효과와 문서 정리 2026-06-19 00:56:08 +09:00
c703bd9b4d feat(charselect): 캐릭터 선택 UI 동작 배선 (초상화·흰 테두리·직업 정보·Art 클리핑)
사용자가 메이커에서 재구성한 CharacterSelectHud(SelectedClass/Eng/Status·
SelectedCharacterArt 신설, ThiefButton→BanditButton 개명)에 컨트롤러 연결.

RenderCharacterSelect:
- 버튼 클릭 시 해당 버튼 하위 Art의 ImageRUID를 SelectedCharacterArt로 복사(큰 그림)
- 선택 버튼 테두리 흰색(1,1,1,1)·비선택 디밍
- SelectedClass(한글)·SelectedClassEng(Warrior/Thief/Magician)·SelectedClassStatus
  ("직업군 · 모험가" + 설명) 갱신. 개행은 string.char(10) 연결(Lua 문자열 raw 개행 문법오류 회피)
- 각 Button에 MaskComponent(기본 Shape Rect) 런타임 부착 → Art를 Button 영역으로
  클리핑(Art 크기 불변, 넘치는 부분 숨김)
경로 교정: BindMenuButtons ThiefButton→BanditButton, StartNewGame Status→SelectedClassStatus.

UI(메이커 저작): CharacterSelectHud 재구성 + MageButton/BanditButton Art 위치 미세조정,
char-select 배경 에셋 01_blue_background_clean(sprite ac448e…) 추가.

산출물 재생성: SlayDeckController.codeblock + common.gamelogic.
검증: cbgap GAP 0, JS 미러 41/41, 인게임(초상화·테두리·텍스트·Art 클리핑) 확인.
(map01·타 UIGroup의 메이커 재직렬화 churn은 revert.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 09:56:19 +09:00
8702d5209e feat(boot): 시작 시 MainMenu 대신 로비로 바로 진입 (MainMenu 일시 비활성)
OnBeginPlay에서 UI 로드 후 self:ShowMainMenu() 대신 self:ShowLobby() 호출.
게임 시작하면 MainMenu를 거치지 않고 곧장 로비 맵(LobbyUIGroup)으로 진입한다.
ShowState("lobby")가 MainMenu를 숨기므로 메뉴는 표시되지 않음.

MainMenu는 한동안 비활성이지만 ShowMainMenu 메서드·BindMenuButtons·
DefaultGroup/MainMenu UI는 그대로 유지 — 추후 싱글/멀티/게임 종료 선택
메뉴가 필요할 때 OnBeginPlay를 self:ShowMainMenu()로 되돌리면 복구된다.

산출물 재생성: SlayDeckController.codeblock. 검증: cbgap GAP 0, JS 41/41.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 02:08:08 +09:00
bdea6a8c28 fix(debug): Ctrl+Shift+E 치트에 체력 회복 추가 (체력+에너지 전체 회복)
원인: Ctrl+Shift+E의 CheatFillEnergy는 #75에서 energy-only로 만들어져
self.Energy만 채우고 self.PlayerHp는 전혀 건드리지 않았다(설계상 체력 미회복).
바인딩·발동은 정상(Ctrl+Shift+C 카드 picker와 동일 입력 메커니즘)이라
에너지는 차지만 체력은 회복된 적이 없었음 → "체력 회복 안됨".

수정: CheatFillEnergy에 self.PlayerHp = self.PlayerMaxHp 추가 + RenderCombat()
호출(HP 표시 갱신). 누르던 Ctrl+Shift+E 그대로 체력+에너지 전체 회복으로 확장.
토스트 "치트: 체력·에너지 회복", README 디버그 단축키 표기도 갱신.

산출물 재생성: SlayDeckController.codeblock. 검증: cbgap GAP 0, JS 41/41.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 01:56:30 +09:00
db76870d4e fix(deck): 카드 picker 표시·클릭 복구 + UIGroup 렌더 순서/덱 레이아웃 조정
덱창(카드 picker)의 카드가 표시·클릭되지 않던 두 버그를 근본 수정.

표시 버그: 덱뷰 render(RenderAllDeck/RenderClassDeckTabs/RenderDeckInspect)가
비-DefaultGroup(DeckUIGroup) 카드를 직접 e.Enable로 켰는데, 깊게 중첩된
ExecSpace 6 호출이라 .Enable 토글이 스코프 상실로 무효(문서화된 afac34d 버그).
Maker 저작 DeckAllHud 카드는 기본 enable=false라 안 보였음. → SetEntityEnabled
(ExecSpace 2 ClientOnly, 인라인 실행) 경유로 변경(전투 HUD와 동일 패턴).

클릭 버그: Maker 저작 DeckAllHud 카드 120장의 SpriteGUIRendererComponent.
RaycastTarget=false라 클릭 레이를 못 받아 런타임 부착 ButtonComponent에 클릭이
도달 못함(같은 패널 탭/Close는 raycast=true라 정상이던 게 결정적 단서). →
BindButtons 카드 루프에서 RaycastTarget=true 런타임 주입.

README: 디버그 단축키 섹션 추가(Ctrl+Shift+C 카드 picker / Ctrl+Shift+E 에너지).

Maker UI 저작(메이커 편집분 동반): 6개 UIGroup GroupOrder 재배치
(DeckUIGroup 최상단 4→6 등) + DeckUIGroup 카드 그리드 위치 조정(180장).

산출물 재생성: SlayDeckController.codeblock.
검증: cbgap GAP 0, JS 미러 41/41, 인게임 클릭 동작 확인.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 01:33:26 +09:00
491833b025 Merge remote-tracking branch 'origin/main' into feature/maker-ui-edit 2026-06-17 23:26:20 +09:00
83de73c2c1 fix(combat): map01 신규 몬스터 6종 enemies.json 등록 — 랜덤 행동 복구
메이커 저작(964cf7c)에서 map01에 수작업 배치한 몬스터
octopus·kapa_drake·junior_neki·junior_bugi(combat) / dile·mano(elite)의
EnemyId가 enemies.json에 미등록 상태였다. 전투 시 BuildMonsters가
self.Enemies[id]=nil → fallback {maxHp=10, intents={{Attack,5}}}(단일 intent)
으로 떨어져, EnemyActStep의 math.random(1,#intents)가 random(1,1)이 되어
항상 "공격 5"만 반복 → 행동 랜덤화 불가·이름 raw id·HP 10 고정.

수정: 6종을 기존 티어 밸런스(combat HP15~24/elite HP65~80, 다중 intent)에
맞춰 enemies.json에 등록하고 SlayDeckController.codeblock 재생성(산출물).
맵은 이미 해당 id를 참조하므로 맵 재생성 불필요(수작업 배치 유지).

검증: 전 맵 EnemyId 매핑 OK 33/MISSING 0, JS 미러 테스트 41/41.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 23:14:14 +09:00
b06ad8e8ee Merge PR #75: 도적 버림/보존 카드 흐름 구현 2026-06-17 23:07:49 +09:00
bc80b96875 Add energy refill debug shortcut 2026-06-17 22:50:53 +09:00
f2828deb19 Implement thief discard and retain flows 2026-06-17 22:48:55 +09:00
5b21e7f436 Merge origin/main (#73 도적 카드 아이콘 + in-combat card picker) into feature/maker-ui-edit
#73이 우리 분기(#72) 이후 main에 머지돼 충돌. 해결:
- 소스(boot·deckturn·deckview·gen-slaydeck·data/cards·legacy/hud/deckall): 자동머지로 통합
  (우리 부트폴링/버튼수정/슬롯추종 + #73 thief 아이콘/card-picker 공존).
- 산출물 ui/DefaultGroup.ui: 우리것(메이커 저작 6 UIGroup) 유지(#73의 옛 단일그룹 생성본 폐기).
- 산출물 SlayDeckController.codeblock: 머지된 소스로 재생성(양쪽 기능 모두 반영).
- card-picker reconcile: #73 새 코드의 옛 경로(/ui/DefaultGroup/DeckAllHud)를
  reconnect-ui-paths로 DeckUIGroup으로 remap + 120카드 ButtonComponent 런타임 부착 wrap.
- 검증: cbgap GAP 0, OpenDebugCardPicker/OnAllDeckCardButton 보존, .ui churn 0, JS 41/41.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 22:33:37 +09:00
43530bee60 chore(deck): 산출물 재생성 — 슬롯 지속 추종 반영 2026-06-17 22:14:42 +09:00
2b3d77c588 chore(deck): 산출물 재생성 — 버튼 ButtonComponent 부착 반영
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 08:37:25 +09:00
5f8475d018 chore(deck): 산출물 재생성 — UIGroup 표시 복구 반영 컨트롤러
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 08:15:44 +09:00
9fba9b5aaa chore(deck): 산출물 재생성 — 재연결·부트 반영 컨트롤러/common
산출물 재생성: SlayDeckController.codeblock + common.gamelogic.
- 컨트롤러 UI 경로가 새 UIGroup(Select/Lobby/Run/Deck)으로 재연결됨
- 부트 흐름(MainMenu→로비) 반영
- 검증: .ui 무변경, DefaultGroup 이동섹션 0, JS 미러 테스트 50/50 pass

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 02:54:55 +09:00
ea832ad846 feat(debug): add in-combat card picker 2026-06-16 23:18:16 +09:00
4288c4101b feat(cards): add thief card icons 2026-06-16 23:05:40 +09:00
eeca77df35 feat(charselect): 캐릭터 이미지 컨트롤러 런타임 주입 (ClassPortraits)
luaCharsTable() 신설(characters.json→self.ClassPortraits), boot/run 시드 +
prop, RenderCharacterSelect가 각 {key}Button/Art ImageRUID를 경로로 주입.
(메이커 저작 레이아웃이어도 컨트롤러가 이미지 채움 = 패턴 b 내용주입.)
산출물: SlayDeckController.codeblock 재생성 포함.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 08:19:13 +09:00
255781d969 Merge pull request '표창 카드 손패 생성 구현' (#69) from codex/implement-shuriken-cards into main
Reviewed-on: #69
2026-06-16 07:26:11 +09:00
62187db5dd 표창 카드 손패 생성 구현 2026-06-16 02:19:22 +09:00
a902cb8bce 캐릭터 선택 덱보기 버튼 제거 2026-06-16 02:06:13 +09:00
98ca1668c8 Implement dex and thorns effects 2026-06-16 01:59:40 +09:00
3e4619ed2f Merge origin/main into exhaust tooltip branch 2026-06-16 01:31:36 +09:00
8309b25ec5 chore: 산출물 재생성 (charselect 캐릭터 이미지 + 뒤로가기)
node tools/deck/gen-slaydeck.mjs 산출물. 소스 변경(이전 커밋)의 결정적 재생성.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 01:16:07 +09:00
bda35eefc7 Add exhaust pile and restore keyword tooltips 2026-06-15 23:34:26 +09:00
44010e0fce fix(camera): 전투 진입 시 StS2 고정 카메라 재적용(KickCombatCamera)
회귀: 로비 follow(ConfineCameraArea=false)로 푼 공유 카메라가 전투맵에서 플레이어 중심으로 보임 — MapCamera의 1회성 true-set으론 재confine 안 됨. StartCombat에서 플레이어가 전투 위치(-6) 정착 후 false→true '킥'(0.2s)으로 재confine해야 StS2(플레이어 좌·몬스터 우) 복원(맵 로드 시점엔 텔레포트/낙하 중이라 바운드 오계산). data/camera.json 값 사용, 로비 follow 불변.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 23:26:55 +09:00
7c776864e2 Add card keyword hover tooltips 2026-06-15 23:15:04 +09:00
72370aab23 Merge pull request 'Fix combat target cleanup and damage popups' (#59) from codex/fix-card-target-ui-dmgpop into main
Reviewed-on: #59
2026-06-15 23:05:46 +09:00
8a5b0d4f8d Fix combat target cleanup and damage popups 2026-06-15 22:46:10 +09:00
67d21a9619 feat(node-map): 우측 하단 노드 종류 범례 + 잠김 노드 밝기 상향(0.45→0.85)
범례: 6타입 아이콘+이름(전투/엘리트/보스/상점/휴식/보물) 패널(우하단). 잠김 노드 틴트를 밝게 해 타입 식별 가능.
2026-06-15 15:56:22 +09:00
5b41eb78a4 feat(node-map): MapHud 배경 이미지+오버레이, 노드 아이콘화(라벨 제거·확대), RenderMapNode ImageRUID+상태 틴트
타입별 공식 아이콘(주황버섯/골렘/발록/돈주머니/모닥불/상자) + 리스항구 배경. 절차 배치·간선·바인딩 불변.
2026-06-15 14:26:28 +09:00
e269154d17 feat(combat): render monster damage popups with digit skins 2026-06-15 01:10:20 +09:00
b65d4af1eb fix(ui): show target marker only while dragging 2026-06-15 00:51:50 +09:00
d5318ac86b feat(ui): style monster damage numbers 2026-06-15 00:50:17 +09:00
bd91c67483 feat(ui): add prominent target marker 2026-06-15 00:47:24 +09:00
b43ee02014 feat(cards): implement retain keyword 2026-06-15 00:45:11 +09:00
6427d23f50 feat(cards): highlight drag target monster 2026-06-15 00:42:40 +09:00
b40c8d11d8 fix(combat): clear temporary curse cards after combat 2026-06-15 00:37:57 +09:00
f9e7bc3603 fix(cards): support large hand drag positions 2026-06-15 00:29:48 +09:00
256433d3f3 feat(bandit): add discard card selection 2026-06-15 00:14:08 +09:00
05a06644cf feat(bandit): implement sly discard trigger 2026-06-15 00:06:53 +09:00
a24f3592c4 feat(bandit): STS2 사일런트 카드풀 반영 2026-06-14 21:14:13 +09:00
3db11f5d82 fix(ui): 전체덱 보기를 직업 탭으로 제한 2026-06-14 20:46:56 +09:00
304b2f3c2a fix(ui): 덱 미리보기에 직업 탭 추가 2026-06-14 19:38:43 +09:00
15bc17b351 feat(ui): 직업별 덱 미리보기 추가 2026-06-14 19:27:40 +09:00