최종 갱신 (KST)

← 일감 목록
T-029

상자 개봉 — 인벤토리의 상자를 까면 아이템이 나온다

진우 Closed 우선순위 보통 목표 미정 · 보관됨

배경

"아이템이 나오는 재미"가 지금 게임에 없다. 채취는 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 역할 축 제안