배경
"아이템이 나오는 재미"가 지금 게임에 없다. 채취는 30초마다 아이템이 조용히 늘 뿐이고, 플레이어가 직접 여는 순간이 없다. 상자는 그 순간을 만든다 — 쌓아 뒀다가 한꺼번에 까는 것이 방치형의 대표적인 보상 장치다.
새 시스템을 만들지 않는다. 상자는 인벤토리 아이템이고, 개봉은 기존 가챠 풀을 도는 것이다.
GachaPoolCatalog·WeightedPicker가 그대로 재사용된다 —
상자마다 다른 풀을 가리키기만 하면 등급별 상자를 얼마든지 늘릴 수 있다.
할 일
- [x] 엑셀 — 상자 3종
100007~100009(Special · Common/Uncommon/Rare · 최대 99) ·ItemTable.OpenGachaId(Ref? GachaInfoTable) · 상자 풀 6·7·8(GachaInfoTable, 비용 재화None) · 골드 구간 시트GachaGoldTable· 상자 전용 특수 아이템100010~100012(임시 이름) - [x] 패킷 —
C_ItemUseRequest { ItemTID, Count }·S_ItemUseResponse { Result, ItemTID, Rewards, ItemChangeInfos }(GachaRewardInfo재사용) ·EGachaRewardType.Gold = 4· 결과 코드ItemNotUsable·InvalidUseCount - [x] 서버 —
GachaService.OpenBox·Draw와 지급 경로(Grant) 공유 · 상자 풀은 골드 뽑기 거절 · 골드는 구간 무작위 - [x] 상자에서 상자가 나오는 순환 — 데이터로 막고 테스트가 지킨다(
BoxSheetTest) - [x] 테스트 — 미보유·범위 밖·상자 아님 거절 · 개봉 시 차감·지급 일치 · 골드 구간 · 장비 지급 · 실데이터 검증
- [x] 실측 (2026-09-19 · 더미 클라 + 실서버) — 나무 10 · 은 3 · 황금 2 개봉 성공, 거절 3종 · 상자 풀 골드 뽑기 거절
- [x] 프로토콜 미러 커밋 —
15d5223에 함께 들어갔다 (2026-09-25 점검 ·Server/MikaProtocol과 미러가 일치)
결정 (2026-09-19 · 사용자)
- 상자 3등급(Common · Uncommon · Rare) · 아이템 취급 · 최대 99개 · TID는 가챠 전용 대역
- 상자에서 캐릭터는 나오지 않는다. 골드 · 자원 · 장비 · 상자 전용 특수 아이템이 나온다
- 골드는 구간(Min~Max) × 가중치
- 상자 풀은 골드로 뽑을 수 없다
완료 조건
더미 클라에서 상자를 10개 까면 상자가 10개 줄고 아이템이 나온다. 개봉 결과가 희귀도와 함께 응답에 실려 연출에 쓸 수 있다.
막고 있는 것 / 선행 일감
- 없음 — T-026(보상 종류 축
RewardType)은 2026-09-02에 끝났다
관련 커밋
15d5223— 상자 개봉 · 채취 공통 보상 (T-029 · T-030)7fc65ea— 상자 개봉 클라 구현 (클라 쪽은 T-033)d8ac663— 칸이 모자라면 상자 개봉 거절
참고
- ⚠️ 시트 이름이 갈렸다 (2026-09-02 · T-026) —
GachaTable이GachaItemTable로 바뀌고 비용 메타GachaInfoTable이 생겼다. 위 할 일의GachaTable은 이 이름으로 읽고, 상자 풀도 메타 행이 있어야 뽑힌다. Server/WSGameServer/Gacha/GachaPoolCatalog.cs— 풀 추첨 재사용 지점- 아이템 2장 —
ItemUsage역할 축 제안