배경
지금 화면은 잠긴 칸과 열린 빈 칸을 구분하지 못한다.
작업슬롯 목록의 프레임은 씬에 8칸이 있고, 전부
Assets/Prefabs/WorkSlotFrame.prefab의 "비어있음." 을 띄운다.
서버가 열어 주는 슬롯은 현재 0번 하나뿐이라, 1~7번을 누르면
배치 화면이 열리고 → 배치 요청이 나가고 → 서버가 InvalidSlotIndex로 거절해
"아직 열리지 않은 작업 슬롯입니다" 알림이 뜬다.
플레이어 입장에서는 "왜 안 되는지"는 알아도 "어떻게 여는지"는 알 수 없다. 잠긴 칸에 여는 방법을 표시하고, 그 자리에서 열 수 있어야 한다.
할 일
2026-09-16 — ⏸ → ▶. T-038이 끝나 패킷 3종(
C_UnlockRequest·S_UnlockResponse·S_UnlockListResponse)과 로그인 시 열린 목록(슬롯 스냅샷보다 앞)이 들어왔다. 신규 계정은 2칸으로 시작하고 잠긴 칸은 스냅샷에 없다. 착수 가능.2026-09-14 — 슬롯 해금은 해금 시스템으로 통일됐다. 조건은 클라가 테이블에서 만든다 —
WorkSlotTable.WorkSlotTID(칸 번호) →UnlockTID→UnlockTable의 골드·선행·계정 레벨. 테이블은 이미 미러돼 있어 표시는 지금 만들 수 있다. 요청·열린 목록 패킷(C_UnlockRequest·S_UnlockResponse·S_UnlockListResponse)은 T-038로 들어갔다.
요청·결과 항목의 서버 패킷은 들어갔다 (T-038). 아래 ⏸ 표기는 2026-09-16에 풀렸다.
2026-09-17 — ▶ → 🎨. 조건 표시 → 조건 충족 후 요청 → 실제 해금까지 플레이로 확인됐다. 남은 것은 🎨 해금 연출(아트)뿐이다.
2026-09-16 — 잠김 표시(조건 문구) · 클릭 분기(선행·골드 부족 알림 → 확인 팝업
UIManager.AskConfirm) · 요청·대기·결과 문구까지 코드가 들어갔다. "지금 열 수 있음"을 칸에서 따로 구분하지는 않는다 — 골드 부족은 누르면 알림으로 안다.
- [x] 잠긴 칸을 "비어있음."이 아니라 잠김 상태로 그린다 — 열림 여부는
S_UnlockListResponse· 칸 목록은WorkSlotTable(WorkSlotFrame.prefab+WorkStationListPresenter.Rebuild) - [x] 칸에 여는 방법을 표시한다 —
UnlockTable의 골드·선행(Name으로 표시)·계정 레벨을 문구로. 보유 골드와 대조해 "지금 열 수 있음"도 구분 - [x] 잠긴 칸 클릭 → 배치 화면이 아니라 해금 안내·구매로 분기한다.
지금은
WorkStationListPresenter.OpenSelect가 배치 여부와 무관하게 무조건 배치 화면을 연다 - [x]
C_UnlockRequest{UnlockTID, Currency}전송(지금은 골드뿐) +ServerWaitManager.Begin대기 + 결과 문구 (UI/Shared/ResultMessages.cs에InvalidUnlockTID·AlreadyUnlocked·UnlockLocked문구를 더한다 —NotEnoughCurrency는 있다) - [x] 해금 성공 시 슬롯 목록이 즉시 갱신되는지 확인 (
PlayerDataModel경유) - [ ] 🎨 해금 연출
완료 조건
잠긴 칸이 잠긴 것으로 보이고, 여는 조건이 칸에 적혀 있으며, 조건을 만족한 상태에서 그 칸을 눌러 실제로 슬롯이 열린다.
막고 있는 것 / 선행 일감
관련 커밋
- b684fb3 — 잠긴 작업슬롯 표시와 해금 요청
참고
Assets/Scripts_Client/UI/Main/WorkStationListPresenter/WorkStationListPresenter.csAssets/Prefabs/WorkSlotFrame.prefab— "비어있음." 라벨Assets/Scripts_Client/UI/Shared/ResultMessages.csMain 규칙.md— 화면 전환 흐름