feat(card-frames): 커스텀 카드 프레임 — 직업×등급 프레임·보상 가중 추첨 (P13) #50

Merged
gahusb merged 8 commits from feature/p13-card-frames into main 2026-06-13 00:11:02 +09:00
Owner

P13 — 커스텀 카드 프레임

사용자 제작 카드 프레임 이미지(warior·mage·bandit × normal·unique·legend, 263×366)를 인게임 카드 UI 전체에 적용.

주요 변경

  • 리소스: 메이커 로컬 임포트 .sprite 9종 커밋 (bandit은 도적 클래스 대비 보류)
  • 데이터: data/cardframes.json 신설 (frames RUID·classToFrame·rewardWeights), cards.json 32종에 rarity 배정 (normal 10 / unique 17 / legend 5)
  • 렌더링: 카드 배경을 프레임 ImageRUID로 교체 — ApplyCardFace가 class×rarity 조회. cardFaceLayout(W) 헬퍼로 손패·보상·상점·덱 조회·전체 덱 5곳 레이아웃 통합 (코스트 육각·이름 배너·중앙 아트 110px·하단 설명 박스, 먹색/흰색 글자). 단색판(NamePlate/CostPlate) 제거
  • 보상: 전투 보상 3장 등급 가중 추첨 70/25/5 (Lua + JS 미러 rarityForRoll 경계 테스트)
  • 하네스 수정 (중요): 메이커 refresh는 엔티티 id 기준 in-place 병합이라 id를 다른 path에 재사용하면 자식 엔티티가 소실됨 → 카드 단위 엔티티에 v2 네임스페이스(ins2/all2/rwd2/shp2) 신규 발급 + 생성기에 id 중복 검증 추가

검증

  • node --test 41건 통과 (rarityForRoll 경계 4건 추가)
  • 메이커 빌드 0에러, 플레이테스트 스크린샷: 전사/법사 손패·모든 덱 그리드·보상(등급 혼합)·텍스트 가독성 확인
## P13 — 커스텀 카드 프레임 사용자 제작 카드 프레임 이미지(warior·mage·bandit × normal·unique·legend, 263×366)를 인게임 카드 UI 전체에 적용. ### 주요 변경 - **리소스**: 메이커 로컬 임포트 `.sprite` 9종 커밋 (bandit은 도적 클래스 대비 보류) - **데이터**: `data/cardframes.json` 신설 (frames RUID·classToFrame·rewardWeights), `cards.json` 32종에 `rarity` 배정 (normal 10 / unique 17 / legend 5) - **렌더링**: 카드 배경을 프레임 ImageRUID로 교체 — `ApplyCardFace`가 class×rarity 조회. `cardFaceLayout(W)` 헬퍼로 손패·보상·상점·덱 조회·전체 덱 5곳 레이아웃 통합 (코스트 육각·이름 배너·중앙 아트 110px·하단 설명 박스, 먹색/흰색 글자). 단색판(NamePlate/CostPlate) 제거 - **보상**: 전투 보상 3장 등급 가중 추첨 70/25/5 (Lua + JS 미러 `rarityForRoll` 경계 테스트) - **하네스 수정 (중요)**: 메이커 refresh는 엔티티 id 기준 in-place 병합이라 **id를 다른 path에 재사용하면 자식 엔티티가 소실**됨 → 카드 단위 엔티티에 v2 네임스페이스(ins2/all2/rwd2/shp2) 신규 발급 + 생성기에 id 중복 검증 추가 ### 검증 - node --test 41건 통과 (rarityForRoll 경계 4건 추가) - 메이커 빌드 0에러, 플레이테스트 스크린샷: 전사/법사 손패·모든 덱 그리드·보상(등급 혼합)·텍스트 가독성 확인
gahusb added 8 commits 2026-06-13 00:10:47 +09:00
gahusb merged commit 6a6b64cbc5 into main 2026-06-13 00:11:02 +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#50