최종 갱신 (KST)

← 일감 목록
T-078

클라 — 슬롯 설정의 산업 LV 정보 표시 (고른 레벨의 스펙)

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

배경

Industry Level Panel은 레벨을 고르게만 한다. 버튼 라벨이 Lv2 밭처럼 이름만 말하고, 그 레벨이 무엇을 바꾸는지가 화면 어디에도 없다.

  • 판정 주기가 얼마나 늘어나는지(RequiredScore) 모른다.
  • 무엇이 나오는지(드롭 목록) 모른다.
  • 판정당 경험치(ExpPerJudge)도 모른다.

그래서 레벨을 올릴 이유를 화면에서 알 수 없다. 특성 포인트를 써 가며 Lv2를 열어도 고른 뒤 실제로 돌려 보기 전에는 무엇이 달라졌는지 확인할 방법이 없다.

조사 결과 — 무엇이 이미 있나

서버·패킷 변경이 필요 없다. 그릴 값이 전부 클라 테이블에 이미 실려 있다.

무엇 어디
레벨 스펙(이름·요구 점수·판정당 경험치) IndustryLevelTable — GameDataLoader.TryGetIndustryLevel(산업, 레벨, out row)
드롭 목록 FarmingBasicTable · FishingBasicTable · MiningBasicTable · LoggingBasicTable · HuntingBasicTable (전부 Assets/StreamingAssets/Data/*.bytes로 클라에 실려 있다)
아이템 이름·등급 GameDataLoader.GetItemName · GetItemRarity
  • 드롭 테이블 행은 { DropTID, IndustryLevel, ItemTID, Weight }다. Weight 합으로 나누면 비율이 나온다.
  • 기준 주기는 RequiredScore / 1000초다 (엑셀은 초 × 천분율, 서버는 ×1000으로만 환산 — IndustryLevelCatalog.JudgeCostUnits).

수정 필요 파일

파일 무엇
Assets/Scripts_Client/Data/GameDataLoader.cs 드롭 조회 API가 없다. GetIndustryDrops(EIndustryType, int level) 추가 — 산업별 5개 테이블을 하나로 묶는 분기는 여기 한 곳에만 둔다
Assets/Scripts_Client/UI/Main/WorkStationSelectPresenter/WorkStationSelectPresenter.cs RefreshIndustryLevelButtons 옆에 정보 패널 그리기 추가. 산업·레벨이 바뀔 때마다 갱신
Assets/Scripts_Client/UI/Main/WorkStationSelectPresenter/EfficiencyRowView.cs 재사용 후보 — Bind(label, value) + SetNote가 이미 "항목/값/안내" 줄이다. 그대로 쓰면 프리팹을 하나 더 만들지 않아도 된다
씬 #Main Canvas > WorkStation Select Presenter Industry Level Panel 아래에 Industry Level Info Panel 신설
Assets/Scripts_Client/UI/UI 배치 현황.md · Main 규칙.md 새 패널 한 줄 · "배치는 축이 둘이다" 절 보강

영향 범위

  • Industry Level Panel은 1·2단계 공통 영역이다(Header·Industry·Industry Level이 항상 보인다). 그 아래에 붙이면 캐릭터 할당 목록(1단계)과 캐릭터 세팅 패널(2단계) 양쪽이 같이 눌린다. #Main Canvas가 pref 950 고정이라 새 패널 높이만큼 flexH 1 영역이 줄어든다 → 높이를 고정할지(pref) 접을 수 있게 할지 먼저 정한다.
  • 서버·패킷·DB 변경 없음. 기획 수치 확정(T-008·T-009·T-016)을 기다리지 않는다 — 지금 테이블에 든 테스트값을 그대로 보여 주면 된다. 값이 확정되면 표시도 저절로 맞는다.

결정 — 높이를 정하지 않는다, 기본은 펼침 (2026-09-24)

위 "영향 범위"가 남겨 둔 물음(pref로 고정할지 접을지)에 답한 것이다. 둘 다 아니게 끝났다.

  • 여는 방법은 레벨 탭 그 자체다 — 따로 여는 버튼을 두지 않았다. 고른 탭을 한 번 더 누르면 접힌다. 레벨을 고르는 순간이 곧 "이 레벨은 무엇이 나오나"를 묻는 순간이라 조작이 하나로 합쳐진다. 펼침 상태는 고른 버튼 라벨의 ▲/▼로 보인다.
  • 들어오면 펼쳐져 있다. 처음엔 접힘으로 뒀다가 사용자 확인 후 뒤집었다 — 자리를 아끼려고 접어 두면 있는 줄도 모른다.
  • 자리 다툼은 화면을 한 스크롤로 묶어 없앴다(같은 날 함께 작업 — 스크롤이 3중으로 겹쳐 있었다). 머리(제목·산업·레벨)만 고정이고 그 아래는 전부 함께 굴러간다. 그래서 이 패널은 높이를 정하지 않고 내용만큼 늘어난다(실측 12줄 = 425, 뷰포트 563).

할 일

  • [x] GameDataLoader에 산업별 드롭 조회 추가 (GetIndustryDrops + IndustryDrop struct)
  • [x] 씬에 Industry Level Info Panel 만들고 높이 규격 정하기 (고정 없음 · 내용만큼 · 기본 펼침)
  • [x] 고른 레벨의 스펙 그리기 — 기준 주기(RequiredScore / 1000초) · 판정당 경험치
  • [x] 파밍 자원 목록 그리기 — 아이템 이름 + Weight 비율 (등급 색은 RarityPalette)
  • [x] 줄을 두 묶음으로 가르기 — ■ 작업지 정보 · ■ 나오는 자원
  • [x] 자원 줄에 판매가 붙이기 (ItemTable.BasePrice — 비율 옆 칸)
  • [x] 자원 줄 전용 프리팹 IndustryDropRowView — 한 칸에 두 값을 넣으면 잘린다 (이름 / 확률 80 / 판매가 130)
  • [x] 레벨 버튼 라벨에 펼침 표시(▲/▼) + 버튼 폭 고정(LayoutElement)
  • [x] UI 배치 현황.md · Main 규칙.md 갱신
  • [x] 플레이 모드 실측 (아래)

실측 — 2026-09-24 사용자 확인 완료

  • [x] 슬롯에 들어오자마자 펼쳐져 있고, 고른 레벨 버튼에 ▲가 붙어 있다
  • [x] 고른 탭을 한 번 더 누르면 접히고 ▼로 바뀐다 · 다른 레벨을 누르면 다시 펼쳐진다
  • [x] ▲가 붙어도 레벨 버튼 5칸이 1:1:1:1:1을 유지한다
  • [x] 줄이 ■ 작업지 정보 / ■ 나오는 자원 두 묶음으로 갈려 보인다
  • [x] 자원 줄 바탕이 등급 색이고, 비율 옆에 판매가가 붙는다 · 비율 합이 대략 100%다
  • [x] 확률·판매가가 잘리지 않고 세로 열이 맞는다 (0.1%와 64.29%가 같은 자리에서 끝난다)
  • [x] 스크롤이 하나뿐이고 머리(제목·산업·레벨)는 굴려도 그대로 있다
  • [x] 캐릭터 목록이 비면 "해당 적성을 가진 캐릭터가 없습니다."가 첫 줄로 보인다(겹침 아님)
  • [x] 묶음 제목 줄에 등급 색이 묻어나지 않는다(재사용 색 복원)
  • [x] 산업을 바꾸면 펼친 채로 그 산업의 자원으로 갈린다
  • [x] 슬롯을 나갔다 다시 들어오면 접힌 채로 열린다
  • [x] 3단계에서 레벨을 바꾸면(요청 성공) 정보도 새 레벨로 따라간다
  • [x] 기준 주기가 효율 계산의 실효 주기와 다른 값으로 보인다(보정 전/후)

완료 조건

슬롯 설정에서 레벨 버튼을 누르는 것만으로 그 레벨의 기준 주기·판정당 경험치·나오는 자원을 아래에서 읽을 수 있다. 잠긴 레벨을 눌러도(누를 수 없으면 고른 레벨 기준으로) 정보가 어긋나지 않는다.

막고 있는 것 / 선행 일감

  • 없음 — 서버·패킷 변경이 필요 없고 데이터도 이미 클라에 있다.
  • 참고: 표시되는 수치 자체의 확정은 T-008 · T-009 · T-016. 이 일감을 막지 않는다.

남은 것은 기획·서버 몫이다 — 이슈 #33

화면에 드러나면서 드롭 목록 구성 자체의 문제가 보였다. 다섯 산업 Lv2~Lv5, 20개 테이블 전부 맨 아래에 Lv1 자원 2종(Common·Uncommon)이 붙어 있어 등급 순서가 거꾸로 꺾인다. Lv5는 판정 1회가 40분인데 10골드짜리 밀이 2.44% 확률로 나온다.

클라 몫은 아니다 — 테이블을 그대로 그릴 뿐이라 줄을 지우면 화면도 저절로 맞는다. 같은 이슈에 그 자리를 럭키 상자로 바꾸자는 제안도 함께 올렸다.

관련 커밋