최종 갱신 (KST)

← 일감 목록
T-026

캐릭터 뽑기 — 가챠로 캐릭터를 얻어 배치까지

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

배경

캐릭터 종류가 1종뿐인 것이 지금 게임 전체의 병목이다. 시작 지급 1001(전 산업 적성 1) 하나라 배치 화면의 잠금 표시가 화면에 나타나지 않고, 산업 레벨 해금 조건 ①(보유 캐릭터 중 그 산업 적성의 최댓값 ≥ N)도 검증할 수 없다 → 산업 레벨 3장.

가챠는 이미 돌고 있지만 아이템만 준다. GachaService · GachaPoolCatalog · Gacha.xlsx → GachaTable이 완성돼 있고, 현재 풀 1번은 테스트용 아이템 6종 (100001~100006)을 준다. 여기에 보상 종류 축을 넣어 캐릭터를 줄 수 있게 한다.

기획상 캐릭터 획득 경로는 "가챠가 유력하나 미확정" 이었다 → 캐릭터 5장 #4. 이 일감으로 가챠로 확정하고 문서에 반영한다.

할 일

  • [x] 기획 확정 반영 — 캐릭터 획득 경로 = 가챠
    • [x] 캐릭터 5.1을 확정으로 옮겼다 (중복·정원은 1.1)
    • [x] 아이템 4장 "가챠 결과물의 정체 미정"을 해소했다
    • [x] 게임기획코어 5장 확정/미확정 표 갱신
    • [x] 하위 문서 전파 — 산업레벨 · 퀘스트 · 게임UI · 작업슬롯 · 기획평가
    • [x] check-doc-graph.ps1 -Changed — 그래프 정합성 OK
  • [x] 엑셀 — 보상 종류 축 (⚠️ 컬럼 분기 대신 시트를 갈랐다)
    • [x] Enum.xlsx에 GachaRewardType 신설 (Item = 1 · Character = 2) — 뒤에만 추가
    • [x] GachaTable → GachaItemTable 개명 · GachaCharacterTable 신설 (컬럼에 종류를 적는 대신 출처 시트가 종류를 정한다 — Ref가 각 시트에서 그대로 산다)
    • [x] 캐릭터 풀 신설 (GachaId = 2) — CharacterTable 30종을 등급별 가중치로
    • [x] generate-tables.ps1 실행 · 엑셀 + 생성물 같은 커밋
  • [x] 캐릭터 30종 (사용자 요청으로 이 일감에 합류)
    • [x] CharacterTable에 GlobalRarity 컬럼 추가 — 등급이 곧 최고 적성의 상한
    • [x] 1007~1030 24종 입력 → 총 30종 (등급별 6/8/7/5/3/1)
  • [x] 서버
    • [x] GachaEntry에 RewardType·RewardTID 반영 · GachaPoolCatalog가 두 시트를 한 풀로 합친다
    • [x] GachaService.Draw에 캐릭터 지급 분기 (GrantCharacterRepository 재사용)
    • [x] S_GachaDrawResponse의 GachaRewardInfo에 RewardType·CharacterTid 추가
    • [x] 뽑은 뒤 S_CharacterListResponse를 갱신해 내려보낸다 (User.OnGachaCharactersGranted)
    • [x] 테스트 — 캐릭터 풀 추첨 · 지급 요청 수 · 아이템 풀 기존 동작 유지 (GachaServiceTest)
  • [x] 프로토콜 미러 커밋 — Assets/Scripts_Server/Protocol 갱신분을 같은 커밋에 담는다

결정된 것

항목 결정
중복 캐릭터 처리 그대로 개체를 늘린다. 조각·강화로 바꾸지 않는다
캐릭터 정원 두지 않는다. 목록 UI가 감당하지 못할 때 다시 본다
보상 종류 축의 형태 컬럼 분기가 아니라 시트 분리(GachaItemTable / GachaCharacterTable)
캐릭터 등급 GlobalRarity 재사용. 등급 = 최고 적성의 상한 (총합이 아니다)

Mythic(1030 별빛드래곤)은 전 산업 7이고 단일 산업 1위가 아니다. 한 명이 모든 산업에서 최고면 배치가 "그 캐릭터부터 채우기"로 수렴해 퍼즐이 무너진다.

완료 조건

더미 클라에서 캐릭터 풀을 10연차로 뽑으면 보유 캐릭터가 10명 늘고, 그중 적성이 다른 캐릭터를 슬롯에 배치해 산업별 속도 차이가 실제로 나타난다.

⏳ 실물 확인은 남았다. 서버 유닛 테스트(208개)는 전부 통과했지만, 더미 클라 왕복은 골드가 있어야 돌릴 수 있다 → T-028 즉시 판매.

막고 있는 것 / 선행 일감

  • 없음

관련 커밋

  • 미커밋 (worktree-T-026-character-gacha)

참고

  • Server/WSGameServer/Gacha/GachaService.cs · GachaPoolCatalog.cs
  • Server/WSGameServer/Repository/GrantCharacterRepository.cs · User/User.Character.cs
  • GameDesign/Excel/Gacha.xlsx · Character.xlsx · Enum.xlsx