Project_WL/AgentScripts/WL813l_PROBE.txt

93 lines
6.0 KiB
Plaintext
Raw Normal View History

# WL813l Probe 2026-09-09 12:54:55 (edit mode · Play 0 · 로그인 0)
playMode=False
── ⓪ 설정 에셋 (C45 · 값 전부 SO)
[OK] 에셋 로드 Assets/WL/UI/Settings/Resources/WL/WLPowerDeltaSettings.asset
enabled_=True toastEnabled=True statPopupLineEnabled=True hitsPerKillEnabled=True
산식 스탯: atk=BaseDmg(폴백 ATK) cri=CRI criDmg=CRI_DMG_Multiplier(useCritDamage=True) aspd=ATK_SPD_Multiplier(base 1) hp=MaxHP
계수: critWeight=1 aspdWeight=1 hpWeight=0.1 powerScale=1
토스트: offset=430px lines=2 font=52px 2s poll=0.5s 최소 0.5%
타수: source=HitConfirmed window=60s minKills=5 감소 하한 1방 · 존 클리어 표시=True
문구: "전투력 +{0}%" / "전투력 {0} → {1} ({2}%)" / "이제 {0}방 → {1}방"
[OK] WLPowerDeltaSettings.Enabled
[OK] 대역 회피 — 내 토스트 [340, 460] · 스탯 팝업 위 328 · 연쇄 아래 472 · 전리품 -120
── 준비
[OK] 가짜 메인 PC IsMainPC()=true · MyValue.bMyPC=True
[OK] 구독 ON · PC 스탯=null(에디트 모드 — 산식은 §① 에서 손으로 채운 ActorStatInfo 로 잰다)
── ① 전투력 산식 (🔴 원본에 CP 없음 = 「추정」 · 발주서 §1-1 대안)
[OK] atk100 cri0 aspd1 hp1000 → 200.00 (기대 200.00)
[OK] 치명 20%×50% → 210.00 (기대 210.00 · +5%)
[OK] 공속 1.3 → 230.00 (기대 230.00 · +15%)
[OK] 전 스탯 2배급 → 486.00 (기대 486.00)
[OK] 증가율 200→230 = 15.00% (기대 15.00)
[OK] 이전 0 → 0%(나눗셈 방지)
[OK] ActorStatInfo 읽기 → atk=500.0 cri=0.150 criDmg=0.600 aspd=1.200 hp=8000.0 → power=1454.0 (기대 1454.00)
[OK] BaseDmg 우선(ATK 400 이 아니라 500)
[OK] BaseDmg 0 → ATK 폴백 400
[OK] 스탯 null → false(로비 안전)
── ② 전투력 % 토스트
기준값 1,000(probe) ← 기준값
[OK] 1000 → 1150 · 문구 "전투력 +15.0%" · 노드 없음(문구만 기록) — "전투력 +15.0%"
[OK] 잡음 차단 — +0.43% 는 안 띄운다(SkippedSmall=1)
[OK] 하락 무시(showOnPowerDown=False · SkippedDown=1)
[OK] 쿨다운 병합 1건(연타해도 토스트가 도배되지 않는다)
[OK] 마감 문구 "전투력 +10.0%" (직전 표시값 1100 → 1210 = +10.0% · 중복 계상 0)
[OK] 잔변화 누적 — 0.40% 대기 후 0.80% 로 표시 "전투력 +0.8%"
[OK] 레벨업 프레임 토스트 생략(중복 표시 0 · Suppressed=1 Toast=0)
[OK] GrowthEvents.LevelUp 수신 1회(PC 스탯이 없어 전투력 값은 안 읽힌다 = 에디트 모드 한계)
Bound=False (에디트 모드 · NewGameUI 없음 — 문구만 기록)
── ③ 레벨업 팝업 전투력 줄 (813y StatPopup · 1줄 추가)
init: 구독 ON · box pos=(0.00, 180.00) size=(1080.00, 296.00) rows=3 power=on unitsPerPx=1.0000 titleFont=72.0 edge[LiberationSans SDF Material (WL813y Edge) shader=TextMeshPro/Mobile/Distance Field outlineW=0.260 outlineC=0D0805FF underlay=000000BF off(0.45,-0.45) soft=0.20 UNDERLAY_ON=True]
[OK] StatPopup.PowerLineOn(에셋 · enabled_ · statPopupLineEnabled)
[OK] 배치 — box pos=(0.00, 180.00) size=(1080.00, 296.00) rows=3 power=on unitsPerPx=1.0000 titleFont=72.0 edge[LiberationSans SDF Material (WL813y Edge) shader=TextMeshPro/Mobile/Distance Field outlineW=0.260 outlineC=0D0805FF underlay=000000BF off(0.45,-0.45) soft=0.20 UNDERLAY_ON=True]
[OK] PowerRow 노드 생성(스탯 줄 3개는 그대로)
[OK] 마지막 스탯 줄 아래 y=-254.4(스탯 줄 -198.4) · font=44.0 color=RGBA(1.000, 0.840, 0.350, 1.000)
Show: level=7 rows=1 power="" text="LEVEL 7 / MaxHP +12" pos=(0.00, 180.00)
[OK] 스탯 줄 1개(813y 동작 불변)
전투력 줄="" (PC 스탯 null → 빈 줄이 정상 · 실값은 인게임 QA)
[OK] 문구 조립 "전투력 12,000 → 13,800 (+15.0%)"
[OK] 변화 없을 때 "전투력 12,000"
── ③-b 토스트 노드 배치 (프리팹 diff 0 · 런타임 생성)
bind: 연결 IngameUIs/WL_HUD · lines=2 offset=430px unitsPerPx=1.0000 font=52.0 edge[LiberationSans SDF Material (WL813y Edge) shader=TextMeshPro/Mobile/Distance Field outlineW=0.260 outlineC=08080FFF underlay=00000000 off(0.55,-0.55) soft=0.20 UNDERLAY_ON=False]
[OK] 노드 연결(부모 경로 "IngameUIs/WL_HUD")
[OK] WL_PowerDeltaToast 노드
[OK] hideFlags=DontSave(씬·프리팹에 굽지 않는다) · layer=5
[OK] 줄 노드 2개(SO toastLines=2)
Line0 y=430.0 size=(1080.00, 60.00) alpha=0.00 font=52.0
Line1 y=370.0 size=(1080.00, 60.00) alpha=0.00 font=52.0
[OK] 표시 "전투력 +25.0%" alpha=1.00 color=RGBA(1.000, 0.840, 0.350, 1.000) scale=1.250(펀치)
[OK] 둘째 줄 "이제 3방 → 2방" y=370.0(첫 줄 430.0 · 간격 60px)
[OK] 2s 뒤 전부 사라짐(alpha=0.00 · 보이는 줄 0)
── ④ 처치 타수 비교 (기준서 §E 5-3 「타수 1」)
창1 누적 hits=30 attacks=30 kills=10
[OK] 성장 시점에 기준선 확정 — 기준 타수 3.00(30/10)
[OK] 새 창 리셋(kills=0)
[OK] 창2 마감 — 타수 감소 3 → 2 · 비교 문구 무장
[OK] ZoneCleared → "이제 3방 → 2방" (1회)
[OK] 다음 존에서 다시 뜨지 않는다(무장 1회 소모 · 1회)
[OK] 표본 부족(kills=2) — 창 버림 (minKills=5)
[OK] 3.00 → 2.90 은 무장 안 함 — 타수 변화 없음(3.00 → 2.90)
[OK] 몹이 죽인 것은 표본에서 제외(kills=0)
── ⑤ GC 0 (폴링 · 카운터)
[OK] Tick × 1000 → GetTotalMemory 0 B · MonoUsedSize 0 B (폴링 2회)
[OK] AttackStarted+HitConfirmed+Killed 2,200발 → 0 B · 0 B (헬퍼 반환 문자열 1개 제외하면 카운터는 int 증가뿐 · hits=1000)
대조군 new object() × 1000 = 20480 B (0 이 아니어야 측정이 살아 있다) · keep=1000
── ⑥ C8 롤백 (WLPowerDeltaSettings.enabled_ = 0 → 표시 0)
[OK] Enabled=false
[OK] 전투력 2배 변화에도 토스트 0회
[OK] 레벨업 무시(LevelUpSeen=0)
[OK] StatPopup.PowerLineOn=false → 팝업 전투력 줄 0
[OK] 팝업 전투력 줄 ""(빈 문자열)
[OK] BuildStatPopupLine()=null
[OK] 롤백 해제 — 다시 Enabled=true
RESULT PASS