Project_WL/AgentScripts/WL813k_PROBE.txt

95 lines
4.5 KiB
Plaintext
Raw Permalink Normal View History

# WL-813k 레벨업 폭발 프로브 — 2026-09-09 00:42:21 · Unity 6000.3.23f1 · isPlaying=False
## ① 설정 에셋 · 프리팹
core asset = found · WLCombatCoreSettings.Enabled = True
growth asset= found · WLGrowthSettings.Enabled = True · GrowthEvents.Enabled = True
burstPrefab = FX_FireLevelUp · path = Assets/ResWork/EricWang/FX_FireSkill/Prefab/FX_FireLevelUp.prefab
ParticleSystem = 9 · Renderer = 9
{
"enabled": true,
"verboseLog": false,
"forwardToCombatEvents": true,
"burstPrefab": {
"instanceID": 84270
},
"burstParentToPc": true,
"burstOffset": {
"x": 0.0,
"y": 0.10000000149011612,
"z": 0.0
},
"burstScale": 1.0,
"burstLifetimeSeconds": 0.0,
"burstLifetimeMaxSeconds": 6.0,
"burstMinIntervalSeconds": 0.5,
"useEffectBudget": true,
"hpRecoverRate": 1.0,
"mpRecoverRate": 1.0,
"showRecoverHud": true,
"scalePunch": 1.1200000047683716,
"scalePunchDuration": 0.2199999988079071,
"statA": 10,
"statB": 18,
"statC": 8,
"refreshStatOnLevelUp": false
}
stat 3종 = MaxHP / MaxMP / ATK (enum int 10/18/8)
EffectBudget.Heavy limit = 2 · count = 0
## ② 가짜 LevelUp 발행 → 이펙트 스폰
subscribed = True · LevelUp.Count = 1
fake SD_PC: Lv=6 · Get_Point()=25 · Get_UsePoint()=0
Raised=1 Dispatched=1 TotalRaised=1 last=LevelUp
payload: prev→new = 6→7 · levelsGained=1 · statPointTotal=25
core forward: CombatEvents.LevelUp.Raised=1 last=LevelUp
burst instance = FX_FireLevelUp(Clone) · pos = (0.00, 0.10, 0.00) · 수명(측정) = 6.00 s
스폰된 ParticleSystem = 9 · Heavy 슬롯 count = 1
counters: Handled=1 BurstSpawned=1 SkippedBudget=0 SkippedThrottle=0 SkippedNoPrefab=0
HP/MP 전회복: pc=null(에디트 모드 · 월드 PC 없음) → healHp=0 healMp=0 (실제 Heal 호출은 Play 필요 — 계산식은 §④에서 검증)
정리 후 Heavy count = 0 · instance = False
## ③ 이펙트 상한 · 연속 레벨업 스로틀
(a) Heavy 슬롯 선점 2/2 → count=2
BurstSpawned=0 SkippedBudget=1 Handled=1 note=budget
슬롯 반납 후 count=0
(b) 연속 5회 (interval=0.5s): Handled=5 BurstSpawned=1 SkippedThrottle=4
levelsGained(마지막)=5 · Raised=5 Dispatched=5
정리 후 Heavy count=0
## ④ HP/MP 전회복 계산식 (LevelUpBurst.ComputeRecovery · 순수 함수)
설정 비율: hpRecoverRate=1 mpRecoverRate=1 showRecoverHud=True
| HP/MaxHP | MP/MaxMP | 비율 | healHP | healMP | 결과 HP | 결과 MP |
| 1/1000 | 5/200 | 1/1 | +999 | +195 | 1000 | 200 |
| 370/1000 | 120/200 | 1/1 | +630 | +80 | 1000 | 200 |
| 1000/1000 | 200/200 | 1/1 | +0 | +0 | 1000 | 200 |
| 0/1000 | 0/200 | 1/1 | +1000 | +200 | 1000 | 200 |
| 370/1000 | 120/200 | 0.5/0.5 | +500 | +80 | 870 | 200 |
| 370/1000 | 120/200 | 0/0 | +0 | +0 | 370 | 120 |
## ⑤ GC (구독자 1 = LevelUpBurst · 스로틀 구간)
(a) RaiseLevelUp(data=null) × 1000 → GC 델타 = 0 B (회당 0.00 B)
(b) RaiseLevelUp(data=SD_PC) × 1000 → GC 델타 = 0 B (회당 0.00 B)
※ (b)(a) 는 페이로드의 statPointTotal 이 부르는 **원본** SD_PC.Get_Point() → Get_UsePoint() 의 LINQ(Select/Sum) 할당이다.
(c) 원본 SD_PC.Get_Point() × 1000 (이벤트 없이) → GC 델타 = 0 B (회당 0.00 B)
BurstSpawned=1 SkippedThrottle=2005(측정 구간은 전부 스로틀)
## ⑥ C8 롤백 (원본 100% 복귀)
(a) WLGrowthSettings.RuntimeDisabled=true → Enabled=False Raised=0 TotalRaised=0 Handled=0 BurstSpawned=0
(b) WLCombatCoreSettings.RuntimeDisabled=true → Enabled=False Raised=0 TotalRaised=0 Handled=0 BurstSpawned=0
(c) 에셋 없음(Instance=null) → WLGrowthSettings.Enabled=False GrowthEvents.Enabled=False Raised=0 TotalRaised=0 Handled=0 BurstSpawned=0
ClearCache 복구 → Instance=found Enabled=True
(d) 복구 후 → Raised=1 Handled=1 BurstSpawned=1 instance=True
## ⑦ 정리
구독 해제 = True · Heavy count = 0 · Acquired/Denied = 5/1
활성 씬 = (none) · dirty = False (저장하지 않는다)
잔존 FX_FireLevelUp 파티클 = 0
# WL-813k GC 재측정 — 00:43:04
대조군 new object() × 1000 → GC.GetTotalMemory 델타 = 4096 B · Profiler.MonoUsed 델타 = 4096 B
대조군 원본 SD_PC.Get_Point() × 1000 (LINQ Select/Sum) → GC.GetTotalMemory 델타 = 0 B · Profiler.MonoUsed 델타 = 0 B
RaiseLevelUp(null) × 1000 → GC.GetTotalMemory 델타 = 0 B · Profiler.MonoUsed 델타 = 0 B
RaiseLevelUp(SD_PC) × 1000 → GC.GetTotalMemory 델타 = 0 B · Profiler.MonoUsed 델타 = 0 B
BurstSpawned=2 SkippedThrottle=2000
Heavy count = 0 · 구독 해제 = True