feat(charselect): 직업 선택 캐릭터 이미지 + 뒤로가기 #65

Merged
gahusb merged 5 commits from feature/charselect-images into main 2026-06-16 01:19:11 +09:00
Owner

요약

런 시작 직업 선택 화면(CharacterSelectHud) 개선:

  1. 단색 박스 → 캐릭터 이미지 카드(warrior/mage/bandit), 선택 시 금색 테두리
  2. 뒤로가기 버튼 → 로비 복귀

브레인스토밍 → 스펙 → 계획 → 구현(executing-plans). 문서: docs/superpowers/specs/2026-06-16-charselect-images-back-design.md, docs/superpowers/plans/2026-06-16-charselect-images-back.md.

변경

  • data/characters.json 신설: 직업 3종 초상화 RUID 단일 소스(메이커 로컬 임포트). warrior 28c88fdc…, magician 3b9ea1f0…, bandit efa920e5…. 교체 = 이 파일 RUID만 바꿔 재생성.
  • gen-slaydeck.mjs: characters.json 로드·fail-fast 검증; CharacterSelectHud 카드 이미지화(Art 풀블리드 258×318 + 하단 NameBanner, 기존 Portrait/Desc 제거); RenderCharacterSelect 선택 표시를 카드 테두리 금색으로(Art 6px 인셋 뒤로 테두리 노출); BackButton emit + BindMenuButtons 바인딩(→ShowLobby()) + prop CharBackHandler. 클릭→SelectClassStartNewGameStartRun 경로 불변.
  • 산출물 재생성: ui/DefaultGroup.ui, RootDesk/MyDesk/SlayDeckController.codeblock.
  • 캐릭터 .sprite 임포트 15종: 기본 3종 사용 + 2차전직 12종(hero/palladin/darkknight/archmage×2/cleric/nightlord/shadower/bowmaster/hunter/pirate/singung)은 향후 2차 전직 선택 이미지용.

검증

  • tools/verify/count.mjs: ui JSON 유효, 초상화 RUID 3종 각 1회, BackButton·*Button/Art 존재, WarriorButton/Portrait 0(제거), NameBanner 존재; codeblock에 BackButton 바인딩·CharBackHandler·금색 Color(1, 0.82, 0.3, 1) 확인. 결정적 생성기 + 소스 리뷰.
  • ⚠️ 런타임 검증은 메이커 플레이테스트(사용자 reload 후): 로비 NPC → 직업 선택 → 3 카드 캐릭터 이미지 표시 → 클릭 시 금색 테두리·Status 갱신 → 시작 시 해당 직업으로 런 → 뒤로가기 시 로비 복귀. 빌드 콘솔 0 에러.
    • 이미지 비율 왜곡/잘림 보이면 Art size(258×318) 조정.
    • 뒤로가기 재텔레포트 jolt 보이면 바인딩을 ShowState("lobby")로 축소.

메모

  • MonsterAttack 픽스(PR #64)와 독립. base = main.

🤖 Generated with Claude Code

## 요약 런 시작 **직업 선택 화면(CharacterSelectHud)** 개선: 1. 단색 박스 → **캐릭터 이미지 카드**(warrior/mage/bandit), 선택 시 **금색 테두리** 2. **뒤로가기 버튼** → 로비 복귀 브레인스토밍 → 스펙 → 계획 → 구현(executing-plans). 문서: `docs/superpowers/specs/2026-06-16-charselect-images-back-design.md`, `docs/superpowers/plans/2026-06-16-charselect-images-back.md`. ## 변경 - **`data/characters.json` 신설**: 직업 3종 초상화 RUID 단일 소스(메이커 로컬 임포트). warrior `28c88fdc…`, magician `3b9ea1f0…`, bandit `efa920e5…`. 교체 = 이 파일 RUID만 바꿔 재생성. - **`gen-slaydeck.mjs`**: characters.json 로드·fail-fast 검증; CharacterSelectHud 카드 이미지화(`Art` 풀블리드 258×318 + 하단 `NameBanner`, 기존 `Portrait`/`Desc` 제거); `RenderCharacterSelect` 선택 표시를 **카드 테두리 금색**으로(Art 6px 인셋 뒤로 테두리 노출); `BackButton` emit + `BindMenuButtons` 바인딩(→`ShowLobby()`) + prop `CharBackHandler`. 클릭→`SelectClass`→`StartNewGame`→`StartRun` 경로 불변. - **산출물 재생성**: `ui/DefaultGroup.ui`, `RootDesk/MyDesk/SlayDeckController.codeblock`. - **캐릭터 `.sprite` 임포트 15종**: 기본 3종 사용 + 2차전직 12종(hero/palladin/darkknight/archmage×2/cleric/nightlord/shadower/bowmaster/hunter/pirate/singung)은 향후 2차 전직 선택 이미지용. ## 검증 - `tools/verify/count.mjs`: ui JSON 유효, 초상화 RUID 3종 각 1회, `BackButton`·`*Button/Art` 존재, `WarriorButton/Portrait` 0(제거), `NameBanner` 존재; codeblock에 BackButton 바인딩·`CharBackHandler`·금색 `Color(1, 0.82, 0.3, 1)` 확인. 결정적 생성기 + 소스 리뷰. - ⚠️ **런타임 검증은 메이커 플레이테스트(사용자 reload 후)**: 로비 NPC → 직업 선택 → 3 카드 캐릭터 이미지 표시 → 클릭 시 금색 테두리·Status 갱신 → 시작 시 해당 직업으로 런 → 뒤로가기 시 로비 복귀. 빌드 콘솔 0 에러. - 이미지 비율 왜곡/잘림 보이면 `Art` size(258×318) 조정. - 뒤로가기 재텔레포트 jolt 보이면 바인딩을 `ShowState("lobby")`로 축소. ## 메모 - MonsterAttack 픽스(PR #64)와 독립. base = main. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
gahusb added 5 commits 2026-06-16 01:17:22 +09:00
CharacterSelectHud 단색 박스 → 캐릭터 이미지 카드(이름 하단 배너·선택 금색
테두리), 뒤로가기→로비. data/characters.json 단일 소스(메이커 임포트 RUID).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- data/characters.json 신설(전사/법사/도적 초상화 RUID 단일 소스), 생성기 로드·검증
- CharacterSelectHud: 단색 박스 → 카드 전체 캐릭터 이미지(Art 풀블리드 258×318)
  + 하단 이름 배너(NameBanner), Portrait/Desc 제거
- RenderCharacterSelect: 선택 시 카드 테두리 금색(Art 6px 인셋 뒤로)
- BackButton 추가 + BindMenuButtons 바인딩 → ShowLobby(로비 복귀), prop CharBackHandler

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
node tools/deck/gen-slaydeck.mjs 산출물. 소스 변경(이전 커밋)의 결정적 재생성.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
메이커 로컬 임포트 .sprite 디스크립터. 이번 직업 선택 화면은 기본 3종
(warrior/mage/bandit)을 사용. 나머지(hero·palladin·darkknight·archmage×2·
cleric·nightlord·shadower·bowmaster·hunter·pirate·singung)는 향후
2차 전직 선택 이미지용으로 임포트해 둠.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gahusb requested review from maple 2026-06-16 01:19:03 +09:00
gahusb merged commit aa872afa7b into main 2026-06-16 01:19:11 +09:00
gahusb deleted branch feature/charselect-images 2026-06-16 01:19:15 +09:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gahusb/maplecontest#65