ThreeKingdomsSlingshot/Assets/Scripts/OutGame/UI/BattleResultPanel.cs

302 lines
18 KiB
C#
Raw Permalink Normal View History

전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
using System.Collections.Generic;
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
using System.Text;
using UnityEngine;
using UnityEngine.UI;
namespace TKS.OutGame
{
/// <summary>
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
/// 전투 결과 패널(기획서 §6 · 비주얼 = Fable 제안서 §4-2 #1104) — 별 3(받침 원 + 등장 튀김) · 조건 행 3 · 보상 타일(골드 · 경험 · 보옥 · 장비 · 상자) ·
/// 버튼 = 「다시」(Tertiary · 같은 스테이지 재도전) + 「확인」(Primary 노랑) · 승리면 리본 뒤 금빛.
/// 전투 HUD 의 승리/패배 판(sortingOrder 100) 위에 덮는다 · 화면 아무 데나 탭 = 기존 그대로(SlingshotInput → 월드맵 복귀 · 「다시」 위만 제외).
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
/// </summary>
public class BattleResultPanel
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
// 패널 배치(UI px · 패널 왼쪽 위 기준)
const float PW = 920f;
const float PH = 1080f;
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
const float Side = 60f;
const float RowW = PW - Side * 2f;
const float RowH = 64f;
const float Tile = 132f;
const float BtnY = PH - 40f - 110f;
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
readonly OutGameRoot root;
readonly GameObject go;
readonly Text title;
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
readonly Image ribbon;
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
readonly Image glow;
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
readonly RectTransform starRow;
readonly Image[] starImg = new Image[3];
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
readonly RectTransform body;
readonly Text plain;
readonly Button retry;
readonly Button ok;
readonly Text retryCost;
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
string rewardsText = "";
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
public bool Visible
{
get { return go.activeSelf; }
}
public string RewardsText
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
get { return rewardsText; }
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
}
public BattleResultPanel(OutGameRoot r, RectTransform canvas)
{
root = r;
var dim = UiKit.Fill("Result", canvas);
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
UiKit.Paint(dim, UISkin.Col("dim", new Color(0f, 0f, 0f, 0.55f)), false);
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
go = dim.gameObject;
Image panel = null;
if (UISkin.Has("popup") && UISkin.Has("panel_frame"))
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
// 리본 뒤 금빛(승리만 · 팩 Glow_Circle01 · 호흡) → 팩 팝업 틀 → 제목 리본(승리 붉은 · 패배 회색)
if (UISkin.Has("glow_circle"))
{
glow = UiKit.Skin(UiKit.Rect("Glow", dim, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), new Vector2(0f, 20f + PH * 0.5f + 90f), new Vector2(1240f, 1240f)), "glow_circle", UiKit.Col("ribbon_glow", Color.clear));
var pulse = glow.gameObject.AddComponent<UiPulse>();
pulse.min = 0.65f;
pulse.period = 1.6f;
// 안쪽 한 겹 더(그림 가운데 α 0.5 라 한 장으로는 후광이 약함 · 검수2 보충)
var core = UiKit.Skin(UiKit.Rect("Core", glow.transform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), Vector2.zero, new Vector2(720f, 720f)), "glow_circle", UiKit.Col("ribbon_glow", Color.clear));
core.raycastTarget = false;
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
}
// 패널 = 섹션 패널 층(그림자 · 밝은 프레임 #3F4262 · 필드 #262840 · 윗면 광택 · 검수 결함 10)
var holder = UiKit.Rect("Panel", dim, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), new Vector2(0f, 20f), new Vector2(PW, PH));
RectTransform froot;
UiKit.SectionPanel(holder, "Frame", 0f, 0f, PW, PH, false, false, out froot);
var pt = (Transform)holder;
var rib = UiKit.Rect("Ribbon", pt, new Vector2(0.5f, 1f), new Vector2(0.5f, 0.5f), new Vector2(0f, 10f), new Vector2(1000f, 200f));
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
ribbon = UiKit.Skin(rib, "ribbon", Color.white);
title = UiKit.Title(UiKit.FillLabel(rib, "", 88, UiKit.White, TextAnchor.MiddleCenter, true, 150f), true);
title.rectTransform.offsetMin = new Vector2(150f, 34f);
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
// 별 3 = 받침 원(Circle78 chip_dark) + 별(가운데 크게 · 위로) · 0.15 s 간격 튀김
starRow = UiKit.At(pt, "StarRow", 0f, 120f, PW, 190f);
UiLayer.Nest(starRow.gameObject, UiRate.Frame, false); // 별 3 튀김 = 한 Frame 층(별마다 캔버스를 만들지 않음 · PD 2026-11-10)
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
for (int i = 0; i < 3; i++)
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
bool mid = i == 1;
float plate = mid ? 150f : 120f;
var pos = new Vector2((i - 1) * 190f, mid ? 12f : -14f);
UiKit.Skin(UiKit.Rect("Plate" + i, starRow, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), pos, new Vector2(plate, plate)), "circle_frame", UiKit.Col("chip_dark", UiKit.Dark));
starImg[i] = UiKit.Icon(starRow, "star_on_l", new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), pos + new Vector2(0f, 4f), mid ? 132f : 106f);
if (starImg[i] == null) continue;
UiKit.DropShadow(starImg[i], 5f);
starImg[i].gameObject.AddComponent<UiPop>().delay = 0.15f * i;
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
}
body = UiKit.Fill("Body", pt);
retry = UiKit.SkinBtn(pt, "Retry", "round08", UiKit.Col("menu_btn", UiKit.Dark), "다시", 34, UiKit.White, Side, BtnY, 260f, 110f, () => root.RetryStage());
retryCost = UiKit.BtnCost(retry, "cur_stamina", "", 36f, 28); // 재도전 = 군량 소모 표시(검수 결함 2)
ok = UiKit.SkinBtn(pt, "Ok", UISkin.Has("btn_l_yellow") ? "btn_l_yellow" : "button", UISkin.Has("btn_l_yellow") ? UiKit.White : UiKit.Coin, "확인", 46, UiKit.Col("text_on_yellow", UiKit.Ink), PW - Side - 520f, BtnY, 520f, 110f, null);
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
}
else
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
panel = UiKit.Box("Panel", dim, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), new Vector2(0f, 40f), new Vector2(PW, PH), UiKit.Paper);
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
UiKit.Border(panel, UiKit.Line, 4f);
var head = UiKit.TopBand("Head", panel.transform, 0f, 170f);
UiKit.Paint(head, UiKit.Dark);
title = UiKit.FillLabel(head, "", 96, UiKit.White);
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
plain = UiKit.Label(panel.transform, "", 36, UiKit.Ink, TextAnchor.UpperLeft, new Vector2(0.5f, 1f), new Vector2(0.5f, 1f), new Vector2(0f, -200f), new Vector2(760f, 860f), false);
plain.lineSpacing = 1.15f;
UiKit.Label(panel.transform, "화면을 탭하면 계속", 34, UiKit.InkSoft, TextAnchor.MiddleCenter, new Vector2(0.5f, 0f), new Vector2(0.5f, 0f), new Vector2(0f, 36f), new Vector2(800f, 60f), false);
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
}
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
go.SetActive(false);
}
public void SetVisible(bool on)
{
if (go.activeSelf != on) go.SetActive(on);
}
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
/// <summary>화면 좌표가 「다시」 버튼 위인가 — 화면 탭(월드맵 복귀)을 이 버튼에서는 건너뛴다.</summary>
public bool PointerOnRetry(Vector2 screen)
{
if (retry == null || !go.activeInHierarchy || !retry.gameObject.activeSelf) return false;
var c = go.GetComponentInParent<Canvas>();
return RectTransformUtility.RectangleContainsScreenPoint((RectTransform)retry.transform, screen, c != null ? c.worldCamera : null);
}
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
public void Fill(StageReward r)
{
var s = root.Session;
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
rewardsText = r.win ? RewardText(s, r) : "보상 없음";
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
title.text = (r.win ? "승리" : "패배") + " <size=44>" + r.chapter + "-" + r.stage + (r.boss ? " 보스" : "") + "</size>";
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
ShowStars(r.win ? r.stars : 0, r.win);
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
SetButtons(true);
if (retryCost != null && root.Battle != null && root.Battle.Config != null && root.Battle.StageIndex >= 0 && root.Battle.StageIndex < root.Battle.Config.stages.Length)
{
int cost = EconomyRules.StageCost(s.Db, s.Save, root.Battle.Config.stages[root.Battle.StageIndex]);
retryCost.text = cost.ToString();
retry.GetComponent<Image>().color = s.Save.stamina >= cost ? UiKit.Col("menu_btn", UiKit.Dark) : UiKit.Col("disabled", UiKit.Disabled);
}
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
if (body == null)
{
plain.text = (r.win ? "별 " + UiKit.Stars(r.stars, 3) + "\n\n" : "아군이 전멸했습니다\n\n") + rewardsText;
return;
}
UiKit.Clear(body);
float y = 330f;
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
if (r.win)
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
string[] cond = { "스테이지 클리어", "아군 전원 생존", r.starTurns + "턴 이내 클리어 <size=26>(" + r.turns + "턴)</size>" };
for (int i = 0; i < 3; i++)
UiKit.CondRow(body, "Cond" + i, Side, y + i * (RowH + 8f), RowW, RowH, r.conds[i] ? "check" : "x_small", r.conds[i], cond[i], 30);
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
}
else
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
UiKit.CondRow(body, "Cond0", Side, y, RowW, RowH, "x_small", false, "아군이 전멸했습니다", 30);
UiKit.CondRow(body, "Cond1", Side, y + RowH + 8f, RowW, RowH, "cur_stamina", false, "군량 " + r.stamina + " 소모 · 별 없음", 30, false);
}
y = 566f;
UiKit.SubTitle(body, "보상", Side, y, RowW);
y += 64f;
if (!r.win)
{
var none = UiKit.Title(UiKit.Label(body, "보상 없음", 40, UiKit.Col("text_soft", UiKit.InkSoft), TextAnchor.MiddleCenter, new Vector2(0f, 1f), new Vector2(0f, 1f), new Vector2(Side, -y - 10f), new Vector2(RowW, 70f)));
none.horizontalOverflow = HorizontalWrapMode.Overflow;
UiKit.Label(body, "영웅 레벨업 · 승급 · 편성을 바꿔 다시 도전", 30, UiKit.Col("text_soft", UiKit.InkSoft), TextAnchor.MiddleCenter, new Vector2(0f, 1f), new Vector2(0f, 1f), new Vector2(Side, -y - 90f), new Vector2(RowW, 50f), false);
return;
}
Tiles(s, r, y);
Notes(s, r, y + Tile + 62f);
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
}
/// <summary>보상 타일 행(가운데 정렬 · 칸 아래 이름) — 골드 · 경험 · 보옥(있을 때) · 장비(등급 칸 · 있을 때) · 상자(있을 때).</summary>
void Tiles(OutGameSession s, StageReward r, float y)
{
var list = new List<string[]>(); // 아이콘 · 수량 · 칸 색 접두 · 이름
list.Add(new[] { "cur_gold", r.gold.ToString("N0"), "gear_white_", r.first ? "골드" : "골드 ×" + s.Db.Economy.RepeatRewardMult });
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
list.Add(new[] { "cur_exp", r.exp.ToString("N0"), "gear_white_", "경험 · " + r.expTo.Count + "명" });
if (r.gem > 0) list.Add(new[] { "cur_gem", r.gem.ToString("N0"), "gear_blue_", "보옥" });
if (!string.IsNullOrEmpty(r.gearId))
{
var g = s.Db.Gear.Get(r.gearId);
string grade = g != null && !string.IsNullOrEmpty(g.grade) ? g.grade : "white";
list.Add(new[] { g != null ? "gear_" + g.kind : "cur_gear", "", "gear_" + grade + "_", g != null ? g.nameKo : r.gearId });
}
if (!string.IsNullOrEmpty(r.chest) && s.Db.Chests != null && s.Db.Chests.Get(r.chest) != null)
list.Add(new[] { "chest_" + r.chest, "", "gear_purple_", s.Db.Chests.Get(r.chest).nameKo });
float gap = list.Count >= 5 ? 22f : 30f;
float x = (PW - list.Count * Tile - (list.Count - 1) * gap) * 0.5f;
for (int i = 0; i < list.Count; i++)
{
var e = list[i];
float tx = x + i * (Tile + gap);
var cell = UiKit.RewardTile(body, "Tile" + i, tx, y, Tile, e[2], e[0], e[1], e[2] != "gear_white_");
if (r.first && (e[0] == "cur_gold" || e[0] == "cur_gem")) FirstBadge(cell); // 첫 클리어 = 뱃지(스테이지 팝업과 같은 표현 · 검수 결함 8)
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
var n = UiKit.Label(body, e[3], 26, UiKit.Col("text_soft", UiKit.InkSoft), TextAnchor.UpperCenter, new Vector2(0f, 1f), new Vector2(0.5f, 1f), new Vector2(tx + Tile * 0.5f, -y - Tile - 12f), new Vector2(Tile + gap, 36f), false);
n.horizontalOverflow = HorizontalWrapMode.Overflow;
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
}
}
/// <summary>「첫」 뱃지(Label_Badge01_Yellow · 칸 오른쪽 위).</summary>
public static void FirstBadge(Transform cell)
{
var b = UiKit.Icon(cell, "badge_first", new Vector2(1f, 1f), new Vector2(0.5f, 0.5f), new Vector2(-8f, -6f), 58f);
if (b != null) UiKit.Title(UiKit.FillLabel(b.transform, "첫", 24, UiKit.White), true);
}
/// <summary>타일 아래 = 레벨업 가능 칩(위 화살표 + 노란 글자 · 검수 결함 8) · 없으면 비움.</summary>
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
void Notes(OutGameSession s, StageReward r, float y)
{
var ready = ReadyNames(s, r);
if (ready.Length == 0) return;
string text = "레벨업 가능 " + ready;
var t = UiKit.InfoChip(body, "LevelUp", Side, y, RowW, 56f, "up_green", text, 28);
t.color = UiKit.Col("select_line", UiKit.Coin);
float w = Mathf.Min(RowW, Mathf.Ceil(t.preferredWidth) + 110f);
var c = (RectTransform)t.transform.parent;
c.anchoredPosition = new Vector2((PW - w) * 0.5f, -y);
c.sizeDelta = new Vector2(w, 56f);
t.rectTransform.sizeDelta = new Vector2(w - 80f, 56f);
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
}
/// <summary>연무장 결과(탑 · 던전 · 투기장 · 적장 토벌 · PD #1093 C) — 별 없음 · 결과 행 · 탭 = 연무장.</summary>
아웃게임 2차(PD #1093 세션 C) — 내정(훈련·순찰·개발) · 보물(수집품·세트·상자) · 연무장(탑·일일 던전·투기장·적장 토벌) · 거래 상자 탭 + 영웅 56명 확장(PD #1096 · 신규 effect_key 4) - 데이터: C 표 10장(training · training_ranks · patrol · dev_tree · treasures · treasure_sets · chests(+iron/buy 열) · tower · dungeons(+reward_amount) · arena(+상점 키)) + economy.csv C 키 24 → 임포트 18 자산(OutGameTables.C.cs 검증: 행·연속 Lv/랭크/층·참조·확률 합 1·선행 노드·효과 키 처리기·카운터 키 · 오류 시 자산 불변) - 영웅 56명: heroes 71 · skills 112 · hero_gear 1344 · gacha_pool 71 재복사 · 신규 키 4(team_dmg_pct_turn · cooldown_add · charm · heal_self_pct) + 기존 키 조건 열(받는 피해 p2 HP 임계/보스/근접 · p3 출전 인원 아군 전원 · 최대 HP·반격 아군 전원 · 피해 % 발동 턴) · 대장군 키는 표 미사용(처리기 유지) - 내정: 훈련(병종 5 · 3항목 Lv · cost_mult · 랭크 승급 · train_bonus → §3-2 항목별) · 순찰(챕터 행 × 시간 · 오프라인 · 상한 12h + 농업 · 소수점 이월 · 광고 2배 스텁 · 즉시 수확 보옥) · 개발(갈래 3 · 선행 · 골드·도면 비용 · 효과 키 → 군량·보상·상점·순찰·상자 적용 지점 · 초기화 보옥 + 도면 환급) - 보물: 보유 중(4열 · 등급 색 · 상세·강화) · 세트(단계 효과) · 상자(포인트 → 명장 · 확률 · 중복 조각) · 효과 hp/atk/def → HeroRules · crit/range/splash → BattleManager.SideEffectsProvider → SkillMods · 조건 카운터 8종 = Runtime/BattleEvents(전투 코드 Raise 1줄씩 · 아군만) · 스테이지 청동 상자 10 % - 연무장: BattleManager.StartMode(BattleMode = 적 편성·제한 턴·onExit) · 탑 100층(입장권·층 배율·보상·10층 상자) · 던전 3(요일·2/일·보상) · 투기장(샘플 10 · EnemyAI 방어 · 메달·주간 순위·조각 상점) · 적장 토벌(주간 순환·hp ×20·5턴·누적 피해·명장 상자·천기) · 결과 패널 → 탭 = 연무장 - 거래: 상자 탭(구매 = 골드/보옥/포인트 · 거래 할인) · 패스·월정액·챕터 팩·첫 결제 팩 = 준비 중 스텁 · 스킬서 임시 판매 제거(사당 던전) - 테스트 87/87(기존 73 유지 · 갱신 3 = 로비 탭 · 표 키 목록 · 상점 스킬서 칸 / 신규 14 = OutGameCTests 12 + 확장 키 2) · console error 0 · 캡처 = DataImporter.CaptureC Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:22:54 +00:00
public void FillMode(ModeResult r)
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
SetButtons(false);
rewardsText = r != null ? string.Join("\n", r.lines.ToArray()) : "";
아웃게임 2차(PD #1093 세션 C) — 내정(훈련·순찰·개발) · 보물(수집품·세트·상자) · 연무장(탑·일일 던전·투기장·적장 토벌) · 거래 상자 탭 + 영웅 56명 확장(PD #1096 · 신규 effect_key 4) - 데이터: C 표 10장(training · training_ranks · patrol · dev_tree · treasures · treasure_sets · chests(+iron/buy 열) · tower · dungeons(+reward_amount) · arena(+상점 키)) + economy.csv C 키 24 → 임포트 18 자산(OutGameTables.C.cs 검증: 행·연속 Lv/랭크/층·참조·확률 합 1·선행 노드·효과 키 처리기·카운터 키 · 오류 시 자산 불변) - 영웅 56명: heroes 71 · skills 112 · hero_gear 1344 · gacha_pool 71 재복사 · 신규 키 4(team_dmg_pct_turn · cooldown_add · charm · heal_self_pct) + 기존 키 조건 열(받는 피해 p2 HP 임계/보스/근접 · p3 출전 인원 아군 전원 · 최대 HP·반격 아군 전원 · 피해 % 발동 턴) · 대장군 키는 표 미사용(처리기 유지) - 내정: 훈련(병종 5 · 3항목 Lv · cost_mult · 랭크 승급 · train_bonus → §3-2 항목별) · 순찰(챕터 행 × 시간 · 오프라인 · 상한 12h + 농업 · 소수점 이월 · 광고 2배 스텁 · 즉시 수확 보옥) · 개발(갈래 3 · 선행 · 골드·도면 비용 · 효과 키 → 군량·보상·상점·순찰·상자 적용 지점 · 초기화 보옥 + 도면 환급) - 보물: 보유 중(4열 · 등급 색 · 상세·강화) · 세트(단계 효과) · 상자(포인트 → 명장 · 확률 · 중복 조각) · 효과 hp/atk/def → HeroRules · crit/range/splash → BattleManager.SideEffectsProvider → SkillMods · 조건 카운터 8종 = Runtime/BattleEvents(전투 코드 Raise 1줄씩 · 아군만) · 스테이지 청동 상자 10 % - 연무장: BattleManager.StartMode(BattleMode = 적 편성·제한 턴·onExit) · 탑 100층(입장권·층 배율·보상·10층 상자) · 던전 3(요일·2/일·보상) · 투기장(샘플 10 · EnemyAI 방어 · 메달·주간 순위·조각 상점) · 적장 토벌(주간 순환·hp ×20·5턴·누적 피해·명장 상자·천기) · 결과 패널 → 탭 = 연무장 - 거래: 상자 탭(구매 = 골드/보옥/포인트 · 거래 할인) · 패스·월정액·챕터 팩·첫 결제 팩 = 준비 중 스텁 · 스킬서 임시 판매 제거(사당 던전) - 테스트 87/87(기존 73 유지 · 갱신 3 = 로비 탭 · 표 키 목록 · 상점 스킬서 칸 / 신규 14 = OutGameCTests 12 + 확장 키 2) · console error 0 · 캡처 = DataImporter.CaptureC Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:22:54 +00:00
if (r == null)
{
title.text = "연무장";
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
ShowStars(-1, true);
if (body != null) UiKit.Clear(body);
else plain.text = "";
아웃게임 2차(PD #1093 세션 C) — 내정(훈련·순찰·개발) · 보물(수집품·세트·상자) · 연무장(탑·일일 던전·투기장·적장 토벌) · 거래 상자 탭 + 영웅 56명 확장(PD #1096 · 신규 effect_key 4) - 데이터: C 표 10장(training · training_ranks · patrol · dev_tree · treasures · treasure_sets · chests(+iron/buy 열) · tower · dungeons(+reward_amount) · arena(+상점 키)) + economy.csv C 키 24 → 임포트 18 자산(OutGameTables.C.cs 검증: 행·연속 Lv/랭크/층·참조·확률 합 1·선행 노드·효과 키 처리기·카운터 키 · 오류 시 자산 불변) - 영웅 56명: heroes 71 · skills 112 · hero_gear 1344 · gacha_pool 71 재복사 · 신규 키 4(team_dmg_pct_turn · cooldown_add · charm · heal_self_pct) + 기존 키 조건 열(받는 피해 p2 HP 임계/보스/근접 · p3 출전 인원 아군 전원 · 최대 HP·반격 아군 전원 · 피해 % 발동 턴) · 대장군 키는 표 미사용(처리기 유지) - 내정: 훈련(병종 5 · 3항목 Lv · cost_mult · 랭크 승급 · train_bonus → §3-2 항목별) · 순찰(챕터 행 × 시간 · 오프라인 · 상한 12h + 농업 · 소수점 이월 · 광고 2배 스텁 · 즉시 수확 보옥) · 개발(갈래 3 · 선행 · 골드·도면 비용 · 효과 키 → 군량·보상·상점·순찰·상자 적용 지점 · 초기화 보옥 + 도면 환급) - 보물: 보유 중(4열 · 등급 색 · 상세·강화) · 세트(단계 효과) · 상자(포인트 → 명장 · 확률 · 중복 조각) · 효과 hp/atk/def → HeroRules · crit/range/splash → BattleManager.SideEffectsProvider → SkillMods · 조건 카운터 8종 = Runtime/BattleEvents(전투 코드 Raise 1줄씩 · 아군만) · 스테이지 청동 상자 10 % - 연무장: BattleManager.StartMode(BattleMode = 적 편성·제한 턴·onExit) · 탑 100층(입장권·층 배율·보상·10층 상자) · 던전 3(요일·2/일·보상) · 투기장(샘플 10 · EnemyAI 방어 · 메달·주간 순위·조각 상점) · 적장 토벌(주간 순환·hp ×20·5턴·누적 피해·명장 상자·천기) · 결과 패널 → 탭 = 연무장 - 거래: 상자 탭(구매 = 골드/보옥/포인트 · 거래 할인) · 패스·월정액·챕터 팩·첫 결제 팩 = 준비 중 스텁 · 스킬서 임시 판매 제거(사당 던전) - 테스트 87/87(기존 73 유지 · 갱신 3 = 로비 탭 · 표 키 목록 · 상점 스킬서 칸 / 신규 14 = OutGameCTests 12 + 확장 키 2) · console error 0 · 캡처 = DataImporter.CaptureC Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:22:54 +00:00
return;
}
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
bool win = r.win || r.kind == ArenaRules.Raid;
아웃게임 2차(PD #1093 세션 C) — 내정(훈련·순찰·개발) · 보물(수집품·세트·상자) · 연무장(탑·일일 던전·투기장·적장 토벌) · 거래 상자 탭 + 영웅 56명 확장(PD #1096 · 신규 effect_key 4) - 데이터: C 표 10장(training · training_ranks · patrol · dev_tree · treasures · treasure_sets · chests(+iron/buy 열) · tower · dungeons(+reward_amount) · arena(+상점 키)) + economy.csv C 키 24 → 임포트 18 자산(OutGameTables.C.cs 검증: 행·연속 Lv/랭크/층·참조·확률 합 1·선행 노드·효과 키 처리기·카운터 키 · 오류 시 자산 불변) - 영웅 56명: heroes 71 · skills 112 · hero_gear 1344 · gacha_pool 71 재복사 · 신규 키 4(team_dmg_pct_turn · cooldown_add · charm · heal_self_pct) + 기존 키 조건 열(받는 피해 p2 HP 임계/보스/근접 · p3 출전 인원 아군 전원 · 최대 HP·반격 아군 전원 · 피해 % 발동 턴) · 대장군 키는 표 미사용(처리기 유지) - 내정: 훈련(병종 5 · 3항목 Lv · cost_mult · 랭크 승급 · train_bonus → §3-2 항목별) · 순찰(챕터 행 × 시간 · 오프라인 · 상한 12h + 농업 · 소수점 이월 · 광고 2배 스텁 · 즉시 수확 보옥) · 개발(갈래 3 · 선행 · 골드·도면 비용 · 효과 키 → 군량·보상·상점·순찰·상자 적용 지점 · 초기화 보옥 + 도면 환급) - 보물: 보유 중(4열 · 등급 색 · 상세·강화) · 세트(단계 효과) · 상자(포인트 → 명장 · 확률 · 중복 조각) · 효과 hp/atk/def → HeroRules · crit/range/splash → BattleManager.SideEffectsProvider → SkillMods · 조건 카운터 8종 = Runtime/BattleEvents(전투 코드 Raise 1줄씩 · 아군만) · 스테이지 청동 상자 10 % - 연무장: BattleManager.StartMode(BattleMode = 적 편성·제한 턴·onExit) · 탑 100층(입장권·층 배율·보상·10층 상자) · 던전 3(요일·2/일·보상) · 투기장(샘플 10 · EnemyAI 방어 · 메달·주간 순위·조각 상점) · 적장 토벌(주간 순환·hp ×20·5턴·누적 피해·명장 상자·천기) · 결과 패널 → 탭 = 연무장 - 거래: 상자 탭(구매 = 골드/보옥/포인트 · 거래 할인) · 패스·월정액·챕터 팩·첫 결제 팩 = 준비 중 스텁 · 스킬서 임시 판매 제거(사당 던전) - 테스트 87/87(기존 73 유지 · 갱신 3 = 로비 탭 · 표 키 목록 · 상점 스킬서 칸 / 신규 14 = OutGameCTests 12 + 확장 키 2) · console error 0 · 캡처 = DataImporter.CaptureC Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:22:54 +00:00
title.text = r.kind == ArenaRules.Raid ? "토벌 종료" : r.win ? "승리" : "패배";
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
ShowStars(-1, win);
if (body == null)
{
plain.text = "<size=44>" + r.title + "</size>\n\n" + rewardsText;
return;
}
UiKit.Clear(body);
var head = UiKit.Title(UiKit.Label(body, r.title, 44, UiKit.White, TextAnchor.MiddleCenter, new Vector2(0f, 1f), new Vector2(0f, 1f), new Vector2(Side, -150f), new Vector2(RowW, 110f)), true);
head.horizontalOverflow = HorizontalWrapMode.Overflow;
UiKit.SubTitle(body, "결과", Side, 290f, RowW);
float y = 354f;
for (int i = 0; i < r.lines.Count && y + RowH <= BtnY - 20f; i++, y += RowH + 8f)
UiKit.CondRow(body, "Line" + i, Side, y, RowW, RowH, null, true, r.lines[i], 30);
}
/// <summary>스테이지 = 「다시」 + 「확인」 · 연무장 = 「확인」 가운데.</summary>
void SetButtons(bool stage)
{
if (retry == null) return;
retry.gameObject.SetActive(stage);
((RectTransform)ok.transform).anchoredPosition = new Vector2(stage ? PW - Side - 520f : (PW - 520f) * 0.5f, -BtnY);
아웃게임 2차(PD #1093 세션 C) — 내정(훈련·순찰·개발) · 보물(수집품·세트·상자) · 연무장(탑·일일 던전·투기장·적장 토벌) · 거래 상자 탭 + 영웅 56명 확장(PD #1096 · 신규 effect_key 4) - 데이터: C 표 10장(training · training_ranks · patrol · dev_tree · treasures · treasure_sets · chests(+iron/buy 열) · tower · dungeons(+reward_amount) · arena(+상점 키)) + economy.csv C 키 24 → 임포트 18 자산(OutGameTables.C.cs 검증: 행·연속 Lv/랭크/층·참조·확률 합 1·선행 노드·효과 키 처리기·카운터 키 · 오류 시 자산 불변) - 영웅 56명: heroes 71 · skills 112 · hero_gear 1344 · gacha_pool 71 재복사 · 신규 키 4(team_dmg_pct_turn · cooldown_add · charm · heal_self_pct) + 기존 키 조건 열(받는 피해 p2 HP 임계/보스/근접 · p3 출전 인원 아군 전원 · 최대 HP·반격 아군 전원 · 피해 % 발동 턴) · 대장군 키는 표 미사용(처리기 유지) - 내정: 훈련(병종 5 · 3항목 Lv · cost_mult · 랭크 승급 · train_bonus → §3-2 항목별) · 순찰(챕터 행 × 시간 · 오프라인 · 상한 12h + 농업 · 소수점 이월 · 광고 2배 스텁 · 즉시 수확 보옥) · 개발(갈래 3 · 선행 · 골드·도면 비용 · 효과 키 → 군량·보상·상점·순찰·상자 적용 지점 · 초기화 보옥 + 도면 환급) - 보물: 보유 중(4열 · 등급 색 · 상세·강화) · 세트(단계 효과) · 상자(포인트 → 명장 · 확률 · 중복 조각) · 효과 hp/atk/def → HeroRules · crit/range/splash → BattleManager.SideEffectsProvider → SkillMods · 조건 카운터 8종 = Runtime/BattleEvents(전투 코드 Raise 1줄씩 · 아군만) · 스테이지 청동 상자 10 % - 연무장: BattleManager.StartMode(BattleMode = 적 편성·제한 턴·onExit) · 탑 100층(입장권·층 배율·보상·10층 상자) · 던전 3(요일·2/일·보상) · 투기장(샘플 10 · EnemyAI 방어 · 메달·주간 순위·조각 상점) · 적장 토벌(주간 순환·hp ×20·5턴·누적 피해·명장 상자·천기) · 결과 패널 → 탭 = 연무장 - 거래: 상자 탭(구매 = 골드/보옥/포인트 · 거래 할인) · 패스·월정액·챕터 팩·첫 결제 팩 = 준비 중 스텁 · 스킬서 임시 판매 제거(사당 던전) - 테스트 87/87(기존 73 유지 · 갱신 3 = 로비 탭 · 표 키 목록 · 상점 스킬서 칸 / 신규 14 = OutGameCTests 12 + 확장 키 2) · console error 0 · 캡처 = DataImporter.CaptureC Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:22:54 +00:00
}
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
/// <summary>별 아이콘(n &lt; 0 = 숨김) · 리본 색(승리 붉은 · 패배 회색) · 금빛 = 승리만.</summary>
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
void ShowStars(int n, bool win)
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
if (glow != null) glow.gameObject.SetActive(win);
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
if (starRow == null) return;
starRow.gameObject.SetActive(n >= 0);
for (int i = 0; i < 3; i++)
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
if (starImg[i] != null) starImg[i].sprite = UISkin.Icon(i < n ? "star_on_l" : "star_off") ?? starImg[i].sprite;
UI 리뉴얼 A-2~A-4 화면 적용(PD #1100) — 팩 부품 + UI 테마(id 치환) · 화면 10종 · 인박스 ui kind - 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:20:57 +00:00
if (ribbon != null && !UISkin.Apply(ribbon, win ? "ribbon" : "ribbon_gray")) ribbon.color = win ? Color.white : UiKit.Disabled;
}
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
static string ReadyNames(OutGameSession s, StageReward r)
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
{
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
var ready = new StringBuilder();
foreach (var id in r.expTo)
{
var lv = s.Save.Level(id);
if (HeroRules.CanLevelUp(s.Db, s.Save, lv) != null) continue;
if (ready.Length > 0) ready.Append(" · ");
ready.Append(s.Def(id).nameKo);
}
return ready.ToString();
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
}
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
/// <summary>보상 줄(소탕 팝업 · 테마 없을 때 결과 화면 공용).</summary>
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
public static string RewardText(OutGameSession s, StageReward r)
{
var e = s.Db.Economy;
var sb = new StringBuilder();
sb.Append("골드 +").Append(r.gold.ToString("N0")).Append(r.first ? " <size=28>(첫 클리어)</size>" : " <size=28>(반복 ×" + e.RepeatRewardMult + ")</size>");
sb.Append("\n경험 +").Append(r.exp).Append(" <size=28>출전 ").Append(r.expTo.Count).Append("명</size>");
if (r.gem > 0) sb.Append("\n보옥 +").Append(r.gem).Append(r.boss ? " <size=28>(첫 클리어 + 보스)</size>" : " <size=28>(첫 클리어)</size>");
if (!string.IsNullOrEmpty(r.gearId))
{
var g = s.Db.Gear.Get(r.gearId);
sb.Append("\n장비 ").Append(g != null ? g.nameKo + " (" + UiKit.GradeKo(g.grade) + ")" : r.gearId).Append(" 획득");
}
else sb.Append("\n<size=30>장비 드랍 없음</size>");
아웃게임 2차(PD #1093 세션 C) — 내정(훈련·순찰·개발) · 보물(수집품·세트·상자) · 연무장(탑·일일 던전·투기장·적장 토벌) · 거래 상자 탭 + 영웅 56명 확장(PD #1096 · 신규 effect_key 4) - 데이터: C 표 10장(training · training_ranks · patrol · dev_tree · treasures · treasure_sets · chests(+iron/buy 열) · tower · dungeons(+reward_amount) · arena(+상점 키)) + economy.csv C 키 24 → 임포트 18 자산(OutGameTables.C.cs 검증: 행·연속 Lv/랭크/층·참조·확률 합 1·선행 노드·효과 키 처리기·카운터 키 · 오류 시 자산 불변) - 영웅 56명: heroes 71 · skills 112 · hero_gear 1344 · gacha_pool 71 재복사 · 신규 키 4(team_dmg_pct_turn · cooldown_add · charm · heal_self_pct) + 기존 키 조건 열(받는 피해 p2 HP 임계/보스/근접 · p3 출전 인원 아군 전원 · 최대 HP·반격 아군 전원 · 피해 % 발동 턴) · 대장군 키는 표 미사용(처리기 유지) - 내정: 훈련(병종 5 · 3항목 Lv · cost_mult · 랭크 승급 · train_bonus → §3-2 항목별) · 순찰(챕터 행 × 시간 · 오프라인 · 상한 12h + 농업 · 소수점 이월 · 광고 2배 스텁 · 즉시 수확 보옥) · 개발(갈래 3 · 선행 · 골드·도면 비용 · 효과 키 → 군량·보상·상점·순찰·상자 적용 지점 · 초기화 보옥 + 도면 환급) - 보물: 보유 중(4열 · 등급 색 · 상세·강화) · 세트(단계 효과) · 상자(포인트 → 명장 · 확률 · 중복 조각) · 효과 hp/atk/def → HeroRules · crit/range/splash → BattleManager.SideEffectsProvider → SkillMods · 조건 카운터 8종 = Runtime/BattleEvents(전투 코드 Raise 1줄씩 · 아군만) · 스테이지 청동 상자 10 % - 연무장: BattleManager.StartMode(BattleMode = 적 편성·제한 턴·onExit) · 탑 100층(입장권·층 배율·보상·10층 상자) · 던전 3(요일·2/일·보상) · 투기장(샘플 10 · EnemyAI 방어 · 메달·주간 순위·조각 상점) · 적장 토벌(주간 순환·hp ×20·5턴·누적 피해·명장 상자·천기) · 결과 패널 → 탭 = 연무장 - 거래: 상자 탭(구매 = 골드/보옥/포인트 · 거래 할인) · 패스·월정액·챕터 팩·첫 결제 팩 = 준비 중 스텁 · 스킬서 임시 판매 제거(사당 던전) - 테스트 87/87(기존 73 유지 · 갱신 3 = 로비 탭 · 표 키 목록 · 상점 스킬서 칸 / 신규 14 = OutGameCTests 12 + 확장 키 2) · console error 0 · 캡처 = DataImporter.CaptureC Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:22:54 +00:00
if (!string.IsNullOrEmpty(r.chest) && s.Db.Chests != null && s.Db.Chests.Get(r.chest) != null) sb.Append("\n").Append(s.Db.Chests.Get(r.chest).nameKo).Append(" 획득 <size=28>(보물 > 상자)</size>");
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
if (r.sweep) sb.Append("\n<size=30>군량 ").Append(r.stamina).Append(" 소모 · 소탕(전투 없음)</size>");
전투 결과 · 공용 팝업 · 거래 비주얼 개선 = Fable 제안서 §4-2~§4-4 구현(#1104 · PD 2026-11-09) - 전투 결과: 별 받침 원 + 큰 별(Icon_Star_On/Off 한 벌) 0.15 s 튀김(UiPop) · 조건 행 3(체크/엑스) · 보상 타일(ItemFrame 5층 + 수량 칩 · 장비 = 등급 칸 · 상자) · 「다시」(같은 노드 재출전 · 군량 확인 · WorldMapScreen.RetryLast · 화면 탭은 이 버튼 위만 제외 = SlingshotInput.HoldResultTap) + 「확인」 Primary 노랑 · 리본 뒤 금빛(호흡) - 군량 팝업: 필드 인셋 · 현재 군량 블록 · 교환 행 2(비용 → 군량 · 오늘 횟수 · Secondary 하늘/녹 · 다 쓰면 회색) · 닫기 = X 만 - 스테이지 팝업: 필드 인셋 · 적 구성 병종 원 ×n + 장수 칩 · 보상 타일 4(첫 클리어 뱃지) · 별 조건 행 3 · 출정 = 붉은 Primary + 군량 비용 · 소탕 = 녹 Secondary · 닫기 버튼 삭제(PopupFill · CostOf 훅) - 거래(뽑기): 목록 바탕 · 서브탭 Round10 · 배너 아래 문양 띠 + 「픽업」 뱃지 · 천장 = 레벨형 게이지 + 노랑 배지 · 확률 = 섹션 패널 + 제목 띠 + 행 3(별 · 바 · %) · 1회 Secondary 하늘 + 보옥 비용 · 10연 Primary 노랑 + 「첫 무료」 꼬리 칩 · 각주 → ⓘ 팝업 - UiKit 공용 부품 ②: At · SkinBtn · BtnCost · SubTab/SetSubTab · Gauge/SetGauge · InfoChip · QtyChip · RewardTile · CondRow · SubTitle - 테마 행 추가(ui_theme.csv): 버튼 btn_l_yellow·btn_l_red · 소제목 선 · 큰 별 · 뱃지 · 배너 문양 · 상자 색(구 TreasureScreen.ChestColor 상수 이관 준비) 등 - 테스트 117/117 · console error 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 09:03:43 +00:00
var ready = ReadyNames(s, r);
아웃게임 1차(PD #1093 세션 A) — 본영 로비 · 세이브 · 군량 · 영웅(레벨·승급 6칸·진화·스킬 표시) · 편성(전열 3/후열 2 · 프리셋 3) · 거래(뽑기·골드 장비 상점) · 스테이지 보상·별 3·소탕 - 데이터: 기획 tables/ 12장 → Assets/Data/OutGame/*.csv · 메뉴 TKS/Import OutGame Data(Editor/DataImporter) → Resources/OutGame 9 자산(HeroDb·GearDb·GachaConfig·EconomyConfig·RewardTable·LevelTable·PromotionTable·EvolveTable·SkillInfoDb) · 검증(행 수·필수 열·id 유일·hero↔skill↔gear·확률 합) 오류 시 자산 불변 · BalanceConfig.heroes[]/HeroDef 삭제 → HeroDb(기존 5인 id 유지) · economy.csv 키 17 + gacha.csv 키 2 추가(기획서 본문 값 · C45) - 세이브: persistentDataPath/save.json · ver 1 · 즉시 저장 · 오프라인 군량 회복 · 일일 초기화 · 신규 유저 = 유비·관우·장비·조운·황충 Lv1 녹 ★=희귀도 · 골드 1000 · 보옥 300 · 군량 30 · 테스트·캡처 = 메모리 전용 - 화면(uGUI 와이어프레임 · img03·06·08·11): 시작 = 본영 로비(출정 → 월드맵 · 편성 · 연무장/보물/내정 준비 중 · 동맹 추후) · 재화 바(월드맵 포함 · 군량 타이머) · 하단 탭 5 · ◀/Esc 일관 · 영웅 목록·상세·상세정보·도감 · 편성(탭·드래그) · 뽑기(천장 n/80 · 확률 공개 · 첫 10연 무료 · 10연 ★★ 보장 · 카드 순차 공개) · 장비 상점(흰/녹 6종 일일 · sell×5 · 새로고침 보옥 20) - 전투 연결: BattleManager.LineupProvider/Deployed(LineupEntry · §3-2 스탯 · 방어 배율 생성 뒤) · playerSpawnPoints = 전열 (−4/0/4, −12) · 후열 (−2/2, −14) · WorldMapScreen 훅(팝업 군량·보상·별 · 입장 군량 · 노드 별 star_on/off · 소탕 · ◀ 본영 · TopInset) · 결과 패널(별 3 조건 · 골드·경험·보옥·장비) · GameBootstrap/AutoPlayDriver 로비 시작 - B 세션 파일(ActionResolver·Combat·UnitView·BattleHUD·SlingshotInput·EnemyAI) 미변경 - 테스트 56/56(기존 41 유지 · 신규 OutGameTests 15) · console error 0 · 사본 GUI 캡처 11장(DataImporter.CaptureOutGame) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 12:11:10 +00:00
if (ready.Length > 0) sb.Append("\n<color=#a03a22><size=30>레벨업 가능: ").Append(ready).Append("</size></color>");
return sb.ToString();
}
}
}