자동전투 중 메인 PC HP 가 autoPotionHpRatio(SO · 0.35) 이하면 813i PotionUse.TryUse 로 물약을 자동 사용한다.
근거 = Q5 D-21(4분 런당 사망 3회 · 결과 화면 「사망 / 물약 = 3 / 0」 = 물약 미사용) + 813x(자동전투 기본 ON · eCommon.Auto · PCActor.cs:185) + 813i(PotionUse 공개 API) + 813y(PotionButton provider 연결).
- Assets/WL/Combat/Survival/AutoPotion.cs (신규) — 원본 훅 0 · UI 파일 0 · 폴링만
· 잔량/쿨은 PotionUse.IsReady 로 먼저 걸러 거절 이벤트·GC 0
· 자동전투 OFF(수동 전투) · 사망/부활 중 · PC 없음이면 무동작
- Survival.cs — SurvivalRunner.Update 에 AutoPotion.Tick 1줄(PotionUse.Tick 뒤)
- WLSurvivalSettings.cs/.asset — 값 5개 전부 SO(autoPotionEnabled/HpRatio/RequireAutoCombat/CheckSeconds/Log)
- C8 롤백 = autoPotionEnabled 1 → 0 (코드 무수정)
게이트 PASS · 프로브 AgentScripts/WL813m2_Probe.cs RESULT PASS(10절)
Q5 §4 실측(존 Arrived=0 · 아레나 이탈 46.3 m · 되돌림 3~4 vs 리셋 15~19)의 원인은
RunGuide.Poll 이 피격 중단에서 통째로 return 한 것(구 RunGuide.cs:291) — 그 return 이
도착 판정(구 :303)과 이탈 되돌림(구 :327) 위에 있었다.
- D-24: 도착 판정·이탈 되돌림을 피격과 무관하게 매 폴링 실행 + 정지 판정(0.5 s · 0.3 m/s) 도착
- D-22: 되돌림 즉시 · 되돌림 중 타깃 해제 · 보스 재타깃은 Hold 에서만(락은 상시 유지)
- D-19: 존 반경(18 m) 이탈 즉시 복귀 · guideLeashRadius 12 → 14
- §1-4: WLBossArenaSettings.leashHealPercent 0.15 → 0.05 (쿨 10 s 유지)
- RunTick 로그(존 체류·이동 초·최대 이탈) · 신규 SO 9필드 · C8 스위치 4개
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
MonsterAppear.json 에 엘리트 스포너 새 행 4개(813021~813024) 추가 — 기존 52행 바이트 무변경
(813u 가 같은 파일의 존 행을 고치므로 「기존 행 값 수정 0」 · 단일 라인 JSON 이라 rebase 에서
전체 충돌 1회 → main(813u) 값을 기준으로 새 행만 재부착). 존1~4 에 Elite 1종씩 ·
동시 1마리 · 리젠 25 s.
🔴 HP 는 발주서 제안값(120~180 · Q3 보스 단일표적 DPS 15/s 기준)이 아니라 **470/540/610/680**
이다. 발주 시점 뒤에 813u 가 존 잡몹 HP 를 300/450/600/800 → 190/270/350/430 으로 내려서,
120~180 이면 엘리트가 같은 존 잡몹보다 약해진다. 813u 실측 존 총 DPS 171.8 HP/s 를
기준서 §E 3-2 규격(1발 명중 ≥3마리)으로 나눈 단일 표적 57.3 HP/s 기준 → 8.2/9.4/10.6/11.9 s
= 기준서 「엘리트 8~12 s」. 잡몹 대비 2.47/2.00/1.74/1.58배. ATK 는 813u 존 값과 동률
(6/8/10/12 · Q4-a D-1 사망 이슈 · ATK 밸런스는 813u 소유).
WL_Nature.prefab: maplv/e1~e4 스포너 노드 4기 신규(존 스포너와 같은 좌표 · MobGenRange 6 ·
Lv 라벨 렌더러 끔) — 기존 노드·좌표 무변경(+924 / −0).
EliteMarker.cs(신규 · 정적 · 러너 0 · GC 0): Spawned(isElite) → localScale = 테이블 기본
스케일 × 1.3(멱등 · NavMesh 반경 무변경) + 상시 색 등록, Killed(Elite) → 색 해제 + 처치
시간(TTK) 로그. 아웃라인은 QuickOutline 이 프로젝트에 없고 MK Toon 의 _RimColor 가
_MK_RIM_* shader_feature 게이팅이라 MPB 로 못 켠다 → 발주서 대체안대로 MPB 상시 색
(_EmissionColor 주 · _AlbedoColor 보조 · 새 셰이더/머티리얼 0). MobHitFlash 가 렌더러 MPB 의
단일 소유자라 합성 지점(SetEliteTint/ClearEliteTint)만 그 파일에 더했다(우선순위 = 점멸 > 상시).
킬캠(811d)·임팩트 티어(811gh)는 이미 Elite 분기가 열려 있어 코드 0(killCamOnElite=1 ·
bossKillIncludesElite=1 실측). 드랍은 WLLootSettings.asset 값만 eliteBurst 1~2 → 2~3.
검증: 게이트 PASS(oneshot · error CS 0줄) · 프로브 AgentScripts/WL813s_Probe.cs
(새 행 4/4 · 스포너 노드 4/4 · 크기 2.30→2.99 멱등 · 상시 색 O · 일반 몹 미적용 ·
킬캠 Elite 1 / 일반 0 · 드랍 버스트 2~3 · 0건 0회 · GC 0 B · C8 PASS · 원본 문자열 0).
Play 실측(인게임 화면)은 미확인 — 로그인 금지라 병합 후 QA. xlsm 동기화 안 함(백로그).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
근거 = QA Q3 qa/W2-3_바퀴2.md D-1·D-2 · Q2 qa/W2-2_스모크.md D-4
D-1/D-4 (에러 팝업) 원인 사슬 — 실측
Boss_Anubis.cs:114 Co_Skill2 → :140 JumpToPosition(onNavMesh:false)
→ Actor.cs:1867 Co_JumpToPosition 이 점프 동안 에이전트를 끄고 착지 보정은
Snap_toNavMesh(맵 mobNavSnapRadius = 2 m)뿐 → 2 m 초과 이탈 시 NavMesh 밖으로 남음
→ 다음 Co_Skill2 의 Change_MobStatus(eMobStatus.Skill) = MobActor.cs:339 이
가드 없이 isStopped=false(Resume) 대입 → 예외
→ Util/ErrorLogHookManager.cs:26-35 가 모든 Error 를 플레이어 모달 팝업으로 표시
변경
· MobActor.cs:339 — 원본 1줄(≤2줄 예외 · 보고). 같은 switch :304·:309 및
StopMove_Imm(Actor.cs:2149)과 동일한 isOnNavMesh 가드. 예외만 차단.
· Assets/WL/Combat/Nav/MobNavRecovery.cs (신규) — 가드만으로는 보스가 NavMesh 밖에
굳는 상태가 남는다. 에이전트 off/NavMesh 밖이 유예(1.5 s) 넘게 지속되면
Set_Warp 으로 가장 가까운 NavMesh 위로 복구. 원본 훅 0 · 폴링.
· Assets/WL/Combat/Auto/AutoCombatOnEnter.cs (신규) — D-2. 맵(런) 진입 경계에서
자동전투가 꺼져 있으면 Actor.Set_Auto() 1회. 로비 제외 · 진입 뒤 수동 OFF 는 존중.
전투 패드 아이콘(BattleUI.images[0])만 동기화(UI 파일 수정 0).
· WLCombatCoreSettings(.cs/.asset) — 값 10개 전부 SO(C45). 각 플래그 0 = 롤백(C8).
코어 스위치에는 의존하지 않는다(코어 A/B 중에도 팝업이 되살아나면 안 됨).
· AgentScripts/WL813x_Probe.cs — 에디트 모드 검증 프로브(Play 0 · 로그인 0)
Core 수정 0 · Boss_*.cs 수정 0 · Actor.cs 수정 0 · UI 파일 수정 0
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>