== WL-813q3 프로브 — 결과창 보스 HP = RunEnded 페이로드 스냅샷 ==
2026-09-09 19:17:53 · Unity 6000.3.23f1 · isPlaying=False · project=E:\NerdNavis\WL_wt\ui
── ⓪ 설정 실측 — 신규 값 2개 · 신규 행 1개
에셋 = Assets/WL/UI/Settings/Resources/WL/WLRunUiSettings.asset (4688 B · 2026-09-09 10:12:11 UTC)
resultBossHpFromPayload=True · resultBossHpFromUi=True · resultCountCardPicksInUi=True · resultCountElitesInUi=True
문구 = "미처치 (HP 남음 {0} %)" / "미처치" · 카드 행 이름 = "카드 선택"
[PASS] resultBossHpFromPayload 기본 on(813w6 페이로드 우선)
[PASS] resultCountCardPicksInUi 기본 on
[PASS] rowCardPicksLabel 값 있음
resultRows(11) = TotalTime · BossClear · Kills · EliteKills · MaxChain · MaxDamage · Level · CardPicks · LootByGrade · Gold · DeathsPotions
[PASS] BossClear 행 있음
[PASS] EliteKills 행 있음(813q2)
[PASS] CardPicks 행 있음(813q3 신설)
배치 = 제목영역 120px + 행 11×56=616px → 본문 끝 736px · 버튼 상단 940px · 상자 1080px
[PASS] 행이 버튼을 안 침범(736 ≤ 940) = 잘림 0(산술)
── ① 813w6 페이로드 계약 — RunResult 에 보스 HP 3필드
합성 RunResult · bossHpRatio=0.2439 bossHp=439 bossHpMax=1800
[PASS] RunResult.bossHpRatio 필드 존재·대입(컴파일이 곧 증거)
[PASS] RunResult.bossHp / bossHpMax 필드 존재·대입
구독자 수 RunEnded=0 RunStarted=0
── ② 가짜 RunEnded(bossHpRatio 0.2439) → 「미처치 (HP 남음 24 %)」
BuildBody → 행 11개
보스 처치 행 = "미처치 (HP 남음 24 %)" · 원천 = 페이로드 · 스냅샷 = 24.39% (439/1800)
[PASS] 문구 = "미처치 (HP 남음 24 %)" (0.2439 → 24)
[PASS] 원천 = 페이로드(BossHpBar 를 안 읽었다)
[PASS] BossHpRatioAtEnd = 0.2439(구조체째 복사)
[PASS] BossHp/BossHpMax 스냅샷도 함께 복사
── ③ 🔴 부활 미룸(늦은 그리기) — Park 로 만피가 되어도 값 불변
Park 실행 DeferredParkCount 0 → 0 · BossHpBar.RunBossHpRatio = 1.00 · BossArena.LastBossHpRatio = -1.00
늦은 Show() → 노드 미조립 — Bind 먼저
보스 처치 행(늦게) = "미처치 (HP 남음 24 %)" · 원천 = 페이로드
[PASS] 🔴 늦게 그려도 24 % 그대로(813w6 §6-1 잔여 해소)
[PASS] 스냅샷 버퍼가 만피에 안 덮인다
── ③-B C8 — resultBossHpFromPayload = 0 이면 같은 자리에서 100 %(D-44 재현)
행 = "미처치 (HP 남음 100 %)" · 원천 = UI바
[PASS] 스위치 off → 813q2 동작(만피 100 %) = D-44 재현
[PASS] off 일 때 원천 = UI바(BossHpBar)
[PASS] 스위치 복구 → 다시 24 %
── ④ 진짜 발행 경로 — RunDirector.StartRun → EndRun(Timeout)
StartRun 후 phase=Zones running=True (EndedSeen=0)
EndRun 후 EndedSeen 0 → 1 · LastResult.bossHpRatio=0.2439 · 결과창 스냅샷=0.2439
보스 처치 행(진짜 발행) = "미처치 (HP 남음 24 %)" · 원천 = 페이로드
[PASS] 결과창이 RunEnded 를 실제로 받았다
[PASS] 결과창 스냅샷 = RunDirector.LastResult.bossHpRatio (같은 값)
[PASS] 진짜 발행에서도 24 %
[PASS] 진짜 발행 + Park 뒤 늦은 그리기도 24 %
── ⑤ 처치 케이스(MM:SS) · 페이로드 −1 폴백 · 둘 다 없음
처치 런(bossClearSec 154) = "02:34"
[PASS] 처치면 「02:34」(HP 는 안 본다)
페이로드 −1 + 바 43.6 % = "미처치 (HP 남음 44 %)" · 원천 = UI바
[PASS] 페이로드가 −1 이면 813q2 폴백(44 %)
[PASS] 폴백 원천 표시 = UI바
둘 다 없음 = "미처치" · 원천 = 없음
[PASS] 둘 다 없으면 퍼센트 없이 「미처치」
[PASS] 원천 = 없음
── ⑥ 결과창 행 실측 — 엘리트 · 카드 선택 · 사망/물약 · 본문 전체
813o ZonePickup.PicksThisRun(현재) = 0 · PickCount=0
카드 선택 종료스냅 = 0 · 엘리트 종료스냅 = 0
카드 선택 행 = "0" · 엘리트 행 = "0" · 사망/물약 행 = "1 / 2"
[PASS] 카드 선택 행 = 종료 스냅샷 값
[PASS] 엘리트 행 = 종료 스냅샷 값(813q2 그대로)
[PASS] 사망/물약 행 = 「1 / 2」(RunResult 값 그대로)
[PASS] 본문 행 수 = resultRows 길이 (11)
본문 = 시간 종료 | 총 시간 : 04:01 | 보스 처치 : 미처치 (HP 남음 24 %) | 처치 수 : 29 (보스 0) | 엘리트 처치 : 0 | 최대 연쇄 : 7 | 최대 피해 : 8889 | 레벨 : 11 → 12 | 카드 선택 : 0 | 획득 : 5 2 | 골드 : 777 | 사망 / 물약 : 1 / 2 |
(카드 카운터는 813o 소유 · 프로브는 읽기만 — 스냅샷 시점만 확인한다)
── ⑦ GC — 매 프레임 경로 0 B · 이번에 늘어난 줄 0 B
[PASS] Tick ×100(매 프레임 경로) Δ = 0 B
[PASS] 이번에 늘어난 읽기(PicksThisRun + BossHpRatioAtEnd) ×100 Δ = 0 B (sink 0/24.4)
[PASS] LastBossHpSource 대입(리터럴) ×100 Δ = 0 B
참고 — BuildBody ×100 Δ = 49152 B (런 종료 1회 경로 · 813q 부터 본문 문자열을 만든다 · 매 프레임 아님)
── ⑧ C8 롤백 — 값 하나씩
[PASS] resultCountCardPicksInUi=0 → 카드 선택 행 「0」
[PASS] resultRows 에서 CardPicks 를 빼면 행이 사라진다
[PASS] 행 배열 복구 = 11행
[PASS] 둘 다 off → 퍼센트 없이 「미처치」
RuntimeDisabled Tick → off — 무동작
[PASS] RuntimeDisabled=1 → Tick 무동작
[PASS] 복구 → tick ok
[PASS] resultEnabled=0 → 무동작
── ⑨ 뒷정리 — 에셋 저장 0 · 구독·주입 원복
BossArena 주입 해제 · BossHpBar.RunBossHpRatio=-1 · 결과창 구독=False(시작 시 False)
BossArena.BossHpSnapshots=1 DeferredParkCount=0
에셋 후 = 4688 B · 2026-09-09 10:12:11 UTC
[PASS] 에셋 파일 무변동 = 저장 0(SaveAssets/SetDirty 호출 0)
SO 값 원복 = payload:True fromUi:True cards:True elites:True enabled_:True result:True 행수:11
== 합계 PASS 42 / FAIL 0 / NOTE 0 ==