===== WL-813d 보스전 게이트 · 아레나 프로브 ===== playMode=False time=2026-09-09 02:03:44 ── ⓪ 준비 가짜 FieldBossData = spawnerId 813010 · monsterId 10006 · pos (139.0, 0.8, -20.0) · RegenTime 60 MonsterList 10006 행 f_BaseChaseRange (실 JSON) = 50.0 dic_Data 주입 = True ── ① 설정 에셋 Instance = OK 코어 Enabled = True 게이트 Active = True enabled/verboseLog = True / False bossSpawnerId/Monster = 813010 / 10006 gateEnabled/mode = True / Either zoneSpawnerIds = 813001, 813002, 813003, 813004, 813005 gateZoneSpawnerIds = 813004, 813005 requiredKills = 54 requireZoneSpawnedOnce=True gateOpenDelaySeconds = 0 arena center/radius = FieldBossData 좌표 / 20 bossChaseRange = 20 restoreOnCleanup=True leash margin/PC margin= 2 / 4 grace=1.5s interval=0.25s resetHeals/rate = True / 1 cleanup delay/regen = 3s / suppressRegen=True deactivateZones/rearm = False / False ── ② 게이트 A — 게이트 존 전멸 → 보스 등장 HoldSpawn() = True (true = 원본 Start 가 return · 보스 미등장) GateArmed/Subscribed = True / True CombatEvents 구독 수 = Killed 0→1 · Spawned 0→1 resume 호출 수 = 0 (게이트가 닫혀 있으므로 0 이어야 한다) 반경 적용 여부 = False (등장 직전에만 적용) [스폰] 존별 n_MaxMonsterCount 만큼 가짜 Spawned 존 813001 : 스폰 12 → alive 12 존 813002 : 스폰 15 → alive 15 존 813003 : 스폰 14 → alive 14 존 813004 : 스폰 8 → alive 8 존 813005 : 스폰 5 → alive 5 GateOpen = False (아직 닫혀 있어야 한다) [처치] 게이트 존만 전멸 — 비게이트 존은 살려 둔다(KillCount 경로와 분리) 존 813004 첫 처치 → alive 7 · GateOpen False 존 813004 마지막 처치 → alive 0 · 누적처치 8/54 · GateOpen False · resume 0 존 813005 첫 처치 → alive 4 · GateOpen False ▶ resume() 호출 = 원본 FieldBossData.Start 재진입(보스 활성) #1 존 813005 마지막 처치 → alive 0 · 누적처치 13/54 · GateOpen True · resume 1 결과 GateOpen = True 결과 resume 호출 수 = 1 (1 = 원본 FieldBossData.Start 재진입 = 보스 활성) ReleaseCount = 1 누적 처치 = 13 / requiredKills 54 → KillCount 조건은 아직 미충족(= ZoneCleared 단독 개방) LastLog = 보스 등장 개시 — released=1 ── ④ 추적 반경 데이터화 (등장 직전 · MonsterList 행) ChaseRangeApplied = True before → after = 50.0 → 20.0 (SO bossChaseRange=20) 테이블 행 실측 = 20.0 (MobActor.cs:92 Check_Battle · :356 Check_Patrol 이 이 값을 읽는다) 재진입 HoldSpawn() = False (false = 원본 스폰 코드 진행 · 이중 스폰 없음) 재진입 후 resume 호출 = 1 (증가하지 않아야 한다) ── ③ 게이트 B — 누적 처치 ≥ requiredKills (리젠형 존에서 전멸이 안 잡힐 때) ▶ resume() 호출 = 원본 FieldBossData.Start 재진입(보스 활성) #1 리젠 흉내 (존 813001 처치↔리젠 반복 · 어떤 존도 전멸하지 않음) 게이트 존 alive = 813004, 813005 → 8, 5 누적 처치 / 임계 = 54 / 54 GateOpen / resume = True / 1 반복 횟수(안전 상한 500) = 54 LastLog = 보스 등장 개시 — released=1 ── ⑤ 리쉬 판정표 (EvaluateLeash · 순수 함수 · Actor 접근 0) 중심 (139.0, 0.8, -20.0) · 반경 20 · leashMargin 2 · playerLeaveMargin 4 · grace 1.5s 보스 거리 PC 거리 경과(s) 판정 0.0m - 0.0 유지 19.0m - 0.0 유지 23.0m - 0.0 리셋 (보스 이탈) 0.0m 25.0m 0.0 유지 0.0m 25.0m 1.6 리셋 (PC 이탈) 0.0m 23.0m 0.0 유지 ※ 실제 리셋 실행(Del_Target · On_Regen(reincarnation:true) · Set_Warp)은 살아 있는 MobActor 가 필요해 에디트 모드에서 측정 불가 = 「미확인」. Boss 참조 없음 → LeashTick() 는 무동작: LeashTick() ResetCount 0 → 0 ── ⑥ 보스 처치 → 정리 ▶ resume() 호출 = 원본 FieldBossData.Start 재진입(보스 활성) #1 강제 개방 후 resume = 1 · 반경 50.0 → 20.0 보스 Spawned(isBoss) → BossSpawned=True (811d 보스 캠 · 813c HP 바 · 813t 배너가 구독하는 그 이벤트) 보스 Killed(Boss) → BossKilled=True · CleanupDone=True (에디트 모드라 cleanupDelaySeconds 무시 · 즉시 실행) 반경 원복 후 테이블 값 = 50.0 restoreChaseRangeOnCleanup=True ChaseRangeApplied = False LastLog = 정리 완료 — 리젠 없음 ※ 리젠 차단은 FieldBossData.StopAllCoroutines() — 코루틴은 Play 에서만 돌아 「미확인」. 가짜 FieldBossData 생존 = True (정리가 오브젝트를 파괴하지 않는다) ── ⑦ C8 롤백 — 어느 스위치든 끄면 813e 상시 배치 100% WLBossArenaSettings.RuntimeDisabled=true → HoldSpawn=False · Active=False · PassThrough=1 WLCombatCoreSettings.RuntimeDisabled=true → HoldSpawn=False · 코어 Enabled=False · 게이트 Active=False 다른 FieldBossData(spawnerId 999999) → HoldSpawn=False (false = 원본 즉시 배치 그대로) gateEnabled=false / enabled=false / 에셋 삭제도 같은 경로(HoldSpawn 첫 3줄) — 에셋을 건드리지 않아 미실행 resume 호출 총합 = 0 (C8 구간에서 0 이어야 한다) ===== 끝 =====