== 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 ==