Commit Graph

60 Commits

Author SHA1 Message Date
깃 관리자 71dcffd968 [WL-813c3] 보스 HP 바 화면 추종 근본 수리 (#813)
D-26 「계기는 맞고 화면은 틀리다」 실측 원인 = Fill Image 에 스프라이트가 없다.
BossHpBar.cs:499 가 AddComponent<Image>() 만 하고 sprite 를 안 물려 저장돼,
uGUI Image.OnPopulateMesh 가 activeSprite==null 에서 Graphic.OnPopulateMesh(사각형 전체)로
빠져 type=Filled/fillAmount 를 아예 읽지 않았다 → 계기 0.368 · 화면 만피.

- EnsureFillRenderable(): 바가 켜질 때마다 sprite + Filled/Horizontal/Left 강제(값 전부 SO)
- WhiteSprite: 내장 흰 텍스처 기반 공유 스프라이트 1개(HideAndDontSave · 프레임당 할당 0)
- DedupInstances(): 같은 캔버스에 바가 2벌 이상이면 첫 1개만 남긴다
- bossBarHideOnZeroHp: HP 0 이면 사망 판정 전에도 숨김 예약(합성·실액터 경로 동일)
- 프로브 PASS 21/FAIL 0 — 메쉬 폭비 실측 수리 전 1.000 → 수리 후 0.368 · HP 869/1800 → 0.483

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 16:10:09 +09:00
깃 관리자 ba3527bd6c [WL-813f2] 전리품 등급 하한 백: 엘리트 ≥3 · 보스 ≥5 (#813)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 15:16:35 +09:00
깃 관리자 4d9b580bbd Merge branch 'wl/gameplay/WL-813w3-arena-warp-restart' 2026-09-09 14:55:00 +09:00
깃 관리자 6137ff94fd Merge branch 'wl/ui/WL-813c2-bossbar-fix' 2026-09-09 14:52:28 +09:00
깃 관리자 55f5908d25 [WL-813w3] 후속: 아레나 도착 전(「가는 중」)은 이탈로 세지 않는다 — 게이트 개방 직후 순간이동 방지 (#813) 2026-09-09 14:49:19 +09:00
깃 관리자 55fa7f4736 [WL-813c2] 보스 HP 바 추종 · 다음 런 바 리셋 · 카드/부활 · 토스트 병합 (#813) 2026-09-09 14:48:45 +09:00
깃 관리자 8135ab36a6 [WL-813w3] 런 가이드 3차: 아레나 워프 복귀 · 이탈 진단 · 다음 런 리셋 (#813) 2026-09-09 14:47:10 +09:00
깃 관리자 f1b550466e [WL-813l2] 전투력 토스트 수리: LevelUp 페이로드 기반 (#813) 2026-09-09 14:42:18 +09:00
깃 관리자 b5b78218f1 [WL-813m2] 자동 물약 (#813)
자동전투 중 메인 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절)
2026-09-09 13:54:03 +09:00
깃 관리자 6836a64ac5 Merge branch 'wl/ui/WL-813q2-result-fix' 2026-09-09 13:31:35 +09:00
깃 관리자 60b74c1221 [WL-813q2] 결과 화면 핫픽스: 부활 겹침 · 다음 런 리셋 · 행 보강 (#813) 2026-09-09 13:27:14 +09:00
깃 관리자 5e97e26a91 [WL-813w2] 런 가이드 2차: 도착 판정 · 보스 홀드 · 군중 유지 · 리쉬 축소 (#813)
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>
2026-09-09 13:26:45 +09:00
WL-813o 7ade2cfb9f [WL-813o] 존 클리어 픽업 카드 (#813) 2026-09-09 13:02:24 +09:00
깃 관리자 80c0ee3ad8 [WL-813l] 성장 체감: 전투력 % 토스트 · 팝업 줄 · 타수 비교 (#813) 2026-09-09 12:56:15 +09:00
깃 관리자 c0c2cc3348 [WL-811o] 카메라 가림 해소: 각도/거리 값 · 가림 소품 숨김 · 이펙트 스케일 (#813)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 10:59:49 +09:00
깃 관리자 77f13aec22 [WL-813w] 런 진행 가이드: 존 이동 · 보스 우선 · 리쉬 완화 · 보스 바 이름 (#813)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 10:18:35 +09:00
깃 관리자 0e0c598356 Merge branch 'wl/gameplay/WL-813s-elite' 2026-09-09 09:48:17 +09:00
깃 관리자 3ba1c4c51b Merge branch 'wl/gameplay/WL-813z-death-freeze-hotfix' 2026-09-09 09:47:56 +09:00
깃 관리자 e8c32880cd [WL-813s] 엘리트 몹: 존별 배치 · 마커 · 드랍 (#813)
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>
2026-09-09 09:34:25 +09:00
깃 관리자 a2c5a63bab [WL-813z] 핫픽스: 부활 워치독 · 팝업 최상단 · WL_btn_ok · 토스트 클램프 (#813) 2026-09-09 09:23:11 +09:00
깃 관리자 a029f4f490 [WL-813q] 런 HUD · 런 결과 화면 (#813)
런 HUD(RunHud) — 813p RunEvents 6종 구독 · 남은 시간 mm:ss(마지막 30s 경고색) · 존 게이지 zoneCount 칸(진행 fill + 클리어 0.3s 펄스) · 단계 라벨("존 N" → 게이트 뒤 "BOSS").
런 결과 화면(RunResultUI) — RunEnded 수신 → Win "런 클리어!" / Timeout "시간 종료" / Abandon 팝업 0. 본문 9행(총 시간·보스 처치·처치 수·최대 연쇄·최대 피해(합산)·레벨·등급별 획득·골드·사망/물약) · [다음 런]=RunDirector.Restart() · [닫기].
배열 3종(zoneClearSec·zoneKills·lootByGrade)은 RunEnded 즉시 자기 버퍼로 복사(813p 재사용 계약) — 두 번째 런부터 할당 0.
값 전부 SO(WLRunUiSettings.asset NEW · 코드 상수 0) · C8(enabled_=0) · GC 0(틱 문자열 0 · mm:ss char 버퍼) · 프리팹/씬 수정 0(813y 런타임 생성).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 09:15:12 +09:00
깃 관리자 e2b8fa205e Merge branch 'wl/gameplay/WL-811gh-impact-tiers' 2026-09-09 08:51:22 +09:00
깃 관리자 adc96e91aa [WL-811gh] 임팩트 티어 · PC 피격 림라이트/넉백 · 대시 잔상 (#813) 2026-09-09 08:46:12 +09:00
깃 관리자 ee37211b18 [WL-813p] 3분 런 구조: RunEvents · RunDirector · 집계 · 재시작 (#813)
- Assets/WL/Combat/Run/ 신규 4파일: RunEvents(계약 허브) · RunDirector(상태 머신·집계) ·
  RunDirectorRunner(숨김 GO 1개) · WLRunSettings(값 전부 SO)
- 런 = 현행 필드 맵 오버레이(새 던전 타입·DungeonInfo·*MapConfig 무수정)
  진입 → 존 813001~813004 → 보스 게이트 → Anubis 처치=Win · runSeconds 초과=Timeout · 이탈=Abandon
- 존 진행 = BossArena.KillsOf 누적값의 런 시작 스냅샷 차감(BossArena 값 리셋 0)
- 원본 Assets/Script/** 0줄 · Core 0 · BossArena.cs +9(ResetGate) · AutoCombatOnEnter.cs +5(경계 원천 읽기 노출·동작 변경 0)
- C8: WLRunSettings.enabled=0 또는 코어 off 면 러너·구독 0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 08:37:30 +09:00
깃 관리자 3d9c6f816e [WL-811i] 스킬 스펙터클 (#813)
4클래스 × 4슬롯(813n 프리셋 16행) 스킬의 차지·본체·착탄 3단 VFX 레이어 — 보유 Res_Addr/Effect 프리팹 33종만(새 아트 0) · 클래스 원소 MPB 곱셈 틴트 · EffectBudget.Heavy 행당 1슬롯(동시 2) · Medium 로컬 상한 · 절두체 밖 스킵 · 자체 풀(GC 0).

- Assets/WL/Combat/Reaction/WLSkillSpectacleSettings.cs (NEW · SO · 값 SOT · C8)
- Assets/WL/Combat/Reaction/SkillSpectacle.cs (NEW · SkillCast/SkillFired/HitboxHit/HitConfirmed/AttackStarted 구독자 · 원본 훅 0)
- Assets/WL/Combat/Reaction/SkillSpectacleRunner.cs (NEW · 틱 러너 + 풀 루트)
- Assets/WL/Combat/Settings/Resources/WL/WLSkillSpectacleSettings.asset (NEW · 16행 · 원소 4행)
- AgentScripts/WL811i_Probe.cs (NEW · Dump/EditProbe/PlayProbe/Status)

Actor.cs·PCActor.cs·Core 0 · Assets/Script 0 · 리터럴 4곳 SO 이관은 하지 않음(핫스팟 동결 · 보고서 목록만).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 08:12:55 +09:00
깃 관리자 3d4936cf36 [WL-813y] UI 핫픽스 묶음 (#813)
Q3 `qa/W2-3_바퀴2.md` 결함 4·6·7·8 + 813tj 연결점 6줄 + 813k LevelUp 페이로드 + 813m 도달 747 px 대응.
재부팅으로 끊긴 이전 워커의 미커밋 작업을 인수해 이어서 완성했다.

1. 813i 연결 6줄 — WLSurvivalUiBridge(신규): PotionButton Provider 4 + ReviveDialog 2.
   Gameplay 소유 813i API 를 UI 쪽에서 호출만 한다(Assets/WL/Combat/** 수정 0).
2. 스탯 팝업 — StatPopup 이 813k GrowthEvents.LevelUp 을 구독(811b 코어 축과 택일 = 이중 팝업 0).
   스탯 변화 0 이면 "+5 포인트(보유 N)" 줄로 떨어진다(813k 보고 ①).
3. 토스트 가시성 — 지속 1.2 → 2.0 s · 글자 40 → 52 px · 줄 뒤 반투명 패널 · 등급 1 회색(#a6a6a7)
   밝기 보정(#F2F5FA) · 중심 오프셋 +120 → -120 px(스탯 +180 · 연쇄 +520 대역 회피).
4. 텍스트 아웃라인 — uGUI Outline/Shadow 는 TMP 에 안 먹으므로 TMP 머티리얼 아웃라인 +
   언더레이 그림자를 쓴다. (원본 머티리얼 + 값) 조합마다 1장 캐시 공유 = 라벨별 인스턴스 0.
5. 보스 HP 바·배너 늦은 구독 보정 — 켜질 때 BossArena.Boss → 없으면 MobActor 1회 스캔.
6. 전투 중 하단 메뉴 숨김 + 패드 원점 복귀 — HudCombatVisibility(신규 · 노드는 런타임 생성,
   프리팹 diff 0) · fanOriginPx (0,260) → (0,0) · attackCenterPx (100,360) → (100,100).
   엄지 도달 실측 746.8 → **490.0 px**(발주서 ≤ 490 PASS).

수정 중 실측으로 잡은 버그 2건: UnityEngine.Object 가짜 null 을 `??` 가 못 걸러
HUD_BottomMenu 에 CanvasGroup 이 붙지 않던 MissingComponentException · C8 롤백
(combatHideBottomMenu=false)이 모서리 원점을 돌려줘 메뉴와 다시 겹치던 문제.

값은 전부 SO(C8/C45) · 프리팹 0 · Gameplay/Systems 경로 0 · 핫스팟 0 · Play 0.
2026-09-09 07:58:53 +09:00
깃 관리자 b3a43ed18b [WL-813x] 핫픽스: 보스 스킬2 에러 · 자동전투 기본 ON (#813)
근거 = 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>
2026-09-09 02:50:40 +09:00
깃 관리자 e255055800 Merge branch 'wl/gameplay/WL-813i-survival' 2026-09-09 02:33:35 +09:00
깃 관리자 9f262f2f6c Merge branch 'wl/ui/WL-813tj-boss-potion-safearea' 2026-09-09 02:33:15 +09:00
깃 관리자 9069d3c030 Merge branch 'wl/systems/WL-813m-score-probe' 2026-09-09 02:32:56 +09:00
깃 관리자 c8787794a9 [WL-813i] 무적 해제·물약·사망/부활 (#813)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 02:16:38 +09:00
깃 관리자 ef7de60109 [WL-813m] 채점 프로브 + 캡처 세트 (#813)
기준서 v1 §E 채점표 24항목과 1:1 인 표를 실측으로 채우는 프로브와,
세로 1080x1920 캡처 5장 세트 + 엄지 반경 오버레이를 추가한다.

- Assets/WL/Tools/WL813_ScoreProbe.cs (NEW · 에디터/개발빌드 전용)
  절두체 내 몹 수(1 s 샘플 중앙값) · Killed 간격 · Spawned 버스트 ·
  히트 반응 3종 동프레임 · 시체 잔존 실측 · timeScale 감속/복원 실패 ·
  스킬 명중비 · fps/히치 · 드랍→획득 시간 · 레벨업 · 보스 페이즈/예고 ·
  킬캠 · PC 피격/사망 · GC 증가 → score_<HHmmss>.txt 표 + 원시 지표.
  코어 이벤트 구독만 하는 읽기 전용 · isKill 정합(QA D-1) 대조 포함.
- Assets/WL/Tools/WL813_ShotOverlay.cs (NEW · 에디터/개발빌드 전용)
  title/hud/combat/boss/popup 5장 자동 저장 + 인게임 슬롯은 반경
  오버레이 1장 추가. 오버레이는 캡처 직후 제거(HideFlags.DontSave).
- AgentScripts/WL813_Score.cs · WL813_Shots.cs (NEW · run_script 진입점)

게임 코드·에셋 수정 0 · CLI 명령 추가 0(wl_info 등은 802c 소관).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 02:16:19 +09:00
깃 관리자 10988e50c2 [WL-813tj] 보스 배너 · 물약/부활 UI · Safe Area 실효화 (#813) 2026-09-09 02:13:35 +09:00
깃 관리자 353fc71640 [WL-813d] 보스전 게이트·아레나 (#813)
존 전멸 → 보스 등장 게이트 · 아레나 경계 · 추적 반경 데이터화 · 처치 후 정리.

- BossArena.cs (NEW) — CombatEvents.Killed/Spawned 구독으로 813e 존 5개(813001~813005)의
  생존/처치를 세고, 게이트 존(813004·813005) 전멸 또는 누적 처치 >= 54 면 보스를 등장시킨다.
- 원본 스포너 무수정 — FieldBossData.Start 훅 1줄이 자기 자신을 Action 으로 넘기고,
  게이트가 열릴 때 그 델리게이트를 다시 부른다. 스폰 로직 복제 0 이고 On_Regen 을 원본이
  부르므로 Spawned(isBoss) 가 등장 시점에 난다(811d 보스 캠 · 813c HP 바 · 813t 배너 구독).
- 아레나 — 등장 직전에 MonsterList 10006 행 f_BaseChaseRange 50 → 20(SO 값 · 코드 상수 0),
  보스/PC 가 아레나를 벗어나면 복귀(리셋) · 처치 후 RegenTime 코루틴 차단(리젠 없음).
- 값 = Assets/WL/Combat/Settings/Resources/WL/WLBossArenaSettings.asset (C8 · 29필드).
- Boss_*.cs / MobActor.cs / Actor.cs / Combat Core / 프리팹 변경 0.
2026-09-09 02:06:27 +09:00
깃 관리자 60738c0fa5 [WL-813g] 텍스트 연출 3종 + 슬롯 오버라이드 (#813)
(cherry picked from commit 2b1d106622)
2026-09-09 01:37:42 +09:00
깃 관리자 4aac9e09af Merge branch 'wl/gameplay/WL-811def-reactions' 2026-09-09 01:36:19 +09:00
깃 관리자 cc35017a5c Merge branch 'wl/gameplay/WL-813f-loot' 2026-09-09 01:35:58 +09:00
깃 관리자 edb74f22a4 [WL-813f] 전리품 연출 + 드랍률 (#813)
CombatEvents.Killed 구독 → 드랍 산포(0.6~1.2 m · 등급별 튀는 높이 0.35+0.08/등급) ·
등급 4 이상 빔(보유 FX_LootDrop_Blue/Purple/Gold) + s015_GoldPowerUp ·
자동 줍기 반경 1.5 m(원본 자석 상태기를 리플렉션으로 켜기만) ·
보스 3~5 · 엘리트 1~2 폭발 드랍(RandomBag 재추첨 · 빈손이면 골드 25%).
값은 전부 WLLootSettings.asset(C45) · 동시 빔은 EffectBudget.Heavy 등록.

원본 수정 = DropItem.cs 2줄(Set 산포 훅 · ItemTouch 획득 통지 훅) 뿐.
Actor.cs · MobActor.cs · DropItemInfo.cs · Assets/WL/Combat/Core/** 0줄.

데이터(S): RandomBag.json 새 백 8130001 5행(총 드랍 20.95% · 기준서 15~25%) ·
MonsterAppear.json 813e 존 6행(813001~813005 · 813010)의 n_DropReward 만 새 백으로 ·
나머지 46행 · RandomBag 기존 197행 바이트 무변경. ⚠ butler.xlsm 동기화 필요.

검증: 게이트 PASS(oneshot 1.4분 · error CS 0 / resident up_to_date · 콘솔 error 0) ·
에디트 모드 프로브(AgentScripts/WL813f_Probe.cs · 덤프 WL813f_PROBE.txt):
산포 1000회 0.601~1.199 m · 폭발 2000회 boss 3~5 · elite 1~2 · normal 0 ·
가짜 Killed 3건 구독 동작 · 자석 리플렉션 OK(0→1 · 중복 방지) ·
줍기 경계 1.49 in / 1.51 out / 착지 전 제외 · 빔 4건 → Heavy 상한 2 스폰 · 2 스킵 →
CleanupAll 후 슬롯 0 · C8(RuntimeDisabled) 시 산포/빔/획득/폭발 전부 0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 01:19:48 +09:00
깃 관리자 f5378e5941 [WL-802c] 커스텀 CLI 명령 3종 + BottomBarFitter 원인 + TMP 조치안 (#802/#813)
- Assets/WL/Tools/WLPipelineCommands.cs (NEW · WL.Tools · UNITY_EDITOR || DEVELOPMENT_BUILD)
  wl_info : 씬·Play·timeScale·fps·플레이어(위치/HP/MP/레벨/타겟/anim)·적 수(생존/전체·스포너별)
            ·현재 존(최근접 MobControlMgr)·보스(페이즈)·CombatEvents/BossEvents/TimeScaleArbiter 카운터
  wl_timescale       : 0~100 범위 검증 · before/after
  wl_teleport_player : Play 게이트 → NavMesh 스냅(맵 데이터 반경) → Actor.Set_Warp · from/requested/to
  힘민지 매핑 = MyValue.MyPC / Actor.Get_HP·Get_MaxHP / FindObjectsByType<MobActor> / NavMeshAgent.Warp
  데이터 값 하드코딩 0(C45) — 스냅 반경은 MapData.spawnSnapRadius → mobNavSnapRadius → NavMeshAgent 치수

- AgentScripts/WL802c_FitterDiag.cs (NEW · 진단 전용 · 코드 수정 0)
  Run() : BottomBarFitter 미컴파일 원인 · Assets 밖 + .cs.draft 확장자 2중 원인 실측 + 비파괴 재현
  Tmp() : TMP 경고(#751) 조치안 근거 — assetVersion/s_CurrentAssetVersion 실측

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 01:15:19 +09:00
깃 관리자 902c77992a [WL-811def-fix] 카메라 리뷰 FIX 3 + Minor (#813)
리뷰 reviews/WL-811def.md 의 Major 3 · Minor 5 반영. Assets/Script/** 0줄 · Core 0 · RealCamera.cs 0(공개 필드/메서드만).

FIX-1 보스 킬캠 포기: 처치 스택 뒷부분(MobActor.Set_Die → MonsterSimpleInfo.DeadTarget → Off → Set_LockTarget(null)
  → RealCamera.Init_Cam)이 궤도 3필드를 덮어써 ZoomStillOurs() 가 항상 false 였다. Phase.Pending 을 추가해 킬캠 시작을
  다음 프레임으로 미루고 그때 base 를 재취득한다(KillCamRebased 로 계측). 엘리트/일반은 Set_LockTarget 경로가 없어 회귀 0.
FIX-2 arr_cCamData[1] 영구 덮어쓰기: 원값 스냅샷 → 보스 처치(OnKilled)·사라짐/비활성(TickBossPreset)·씬 전환·SO off·
  ReleaseAll 에 복원(BossPresetRestored/Abandoned). 프리셋 적용을 busy 스킵 검사 뒤로 옮겨 스킵된 스폰은 프리셋도 안 쓴다.
FIX-3 Set_Target 누적: 보스 리타겟을 공개 필드 target 직접 대입으로 바꿔 list_tfCamactionTarget 길이 불변(기존 대상이
  있을 때만 리타겟 = isTarget 유효). 완전 정합용 Set_Target 오버로드는 811n 요청 대상.

Minor: MobHitFlash.OnKilled 에 WLReactionRunner.Ensure() · DamageAggregator 재진입 가드(Harvest/Dispatch 분리 +
  s_dispatching 백업·복원 · ReentrantHits) · SO 폴백 상수 제거(KillChain/DamageAggregator Tick) · BestChainEver 중복 갱신
  1곳으로 · s_burstHeld↔EffectBudget 불변식 주석 + 홀드 만료 시 선반납 · 킬캠 쿨/런 카운터 소모 의도 주석.
프로브: WL811def_Probe.FixCheck 추가(FIX-1 Init_Cam 덮어쓰기 뒤 줌 유지 · FIX-2 프리셋 원복/busy 순서 · FIX-3 리스트 길이 불변).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 01:08:47 +09:00
깃 관리자 36679cc358 Merge branch 'wl/gameplay/WL-813k-levelup' 2026-09-09 00:54:49 +09:00
깃 관리자 63569a89d1 Merge branch 'wl/ui/WL-813c-battle-pad' 2026-09-09 00:54:30 +09:00
깃 관리자 cb4c189ec4 Merge branch 'wl/gameplay/WL-811b-fix' 2026-09-09 00:54:15 +09:00
깃 관리자 2a140f4a85 [WL-813k] 레벨업 폭발 (#813)
ServerClass.Add_Exp 레벨업 루프에 훅 1줄 → WL.Combat.Growth.GrowthEvents.RaiseLevelUp.
코어 CombatEvents.cs 무수정 — BossEvents 규약대로 새 파일 GrowthEvents.cs 가 CombatEventList<T> 를 재사용해
PlayerLevelUpEvent(레벨 · 스탯 포인트 · 팝업 스탯 3종 prev/new · HP/MP 스냅샷 · 위치)를 낸다.
LevelUpBurst 구독자 = FX_FireLevelUp 스폰(EffectBudget.Heavy · 연속 레벨업 스로틀) + HP/MP 전회복(원본 Heal/Heal_MP)
+ PC 스케일 펀치(카메라 미접촉). 값은 전부 WLGrowthSettings.asset(C45) · 에셋/스위치 off 면 원본 100%(C8).
2026-09-09 00:44:58 +09:00
깃 관리자 b518974184 Merge branch 'wl/ui/WL-813c-battle-pad' 2026-09-09 00:40:08 +09:00
깃 관리자 0fc9b18661 [WL-811b-fix] 코어 리뷰 FIX 6 + isKill 판정 (#813) 2026-09-09 00:36:54 +09:00
깃 관리자 e5980770c6 [WL-811def] 프로브 실측 반영 — MPB 빈 블록 대신 null 로 해제(HasPropertyBlock 잔류 0) · 가짜 액터 Init_CC · GC core-only 행 (#813)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 00:32:49 +09:00
깃 관리자 f1c509616f [WL-811def] 전투 연출 3종 — 킬캠·보스 캠 · 연쇄 처치 이벤트 · 몹 점멸 MPB (#813)
- 811d CombatCameraDirector(Killed→줌 0.75×+슬로모 Cinematic · Spawned(isBoss)→1.2 s 오빗 · ComboStage(isLast)→리드 ×1.3) · WLCombatCameraSettings.asset NEW · RealCamera 무수정(공개 필드만) · CameraMoveLead.LeadMultiplier 2줄
- 811e KillChain(3 s 윈도우 · DOUBLE/TRIPLE/RAMPAGE/MASSACRE 티어 이벤트 · 군집 폭발 BoomHit · EffectBudget.ClusterBurst ≤1) · DamageAggregator(0.25 s 합산 Flushed 이벤트) · WLReactionSettings.asset NEW · HUD 표시 0
- 811f MobHitFlash(HitConfirmed→MPB _AlbedoColor/_EmissionColor 0.03 s · Killed→디졸브 _EdgeAroundHDR/_EdgeAround · Spawned→정리 · arr_Renderer 리플렉션 캐시 · 머티리얼 대입 0) · WLHitBlinkSettings.asset NEW
- 프로브 AgentScripts/WL811def_Probe.cs(Title Play 가짜 이벤트 · Props 셰이더 실측 · GC · Toggle · Budget)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 00:32:49 +09:00
깃 관리자 2b43190037 [WL-813h] 보스 페이즈·예고·쿨 데이터화 (#813)
- Assets/WL/Combat/Boss/BossEvents.cs (NEW): BossPhase 통지 허브. 코어
  CombatEvents.cs 는 무수정 — 811d~j 와 충돌 방지. 같은 규약(정적 · struct
  페이로드 in 전달 · 사전 할당 구독자 배열 · 예외 격리 · WLCombatCoreSettings
  enabled/RuntimeDisabled 준수). 실측 GC = 1000회 디스패치 0 byte.
- Assets/WL/Combat/Boss/BossPatternTable.cs (NEW): 보스 패턴 JSON 로더.
  스폰(On_Regen) 시 그 Boss_*.cs 가 직접 선언한 public float/int/bool 필드에만
  대입(DeclaredOnly) → Boss_*.cs 수정 0 · 프리팹 값 변경 0. 행이 없으면 무동작.
- Assets/WL/Combat/Settings/Resources/WL/WL813h_BossPattern.json (NEW):
  보스 12행(10001~10012). 813b 실측(프리팹 인스펙터) 값 그대로이며, Anubis(10006)
  의 예고(차징) 3 s → 1.2 s 만 발주서 제안값으로 데이터에서 바꾼다.
  페이즈 임계 기본 [1.0, 0.7, 0.4] · 스킬 해금 임계 기본 0.9 / 0.7(원본과 동일).
- Assets/Script/Character/Mob/BossMobActor.cs: 훅 3줄(로더 적용 1 · 임계 조회 1 ·
  페이즈 통지 1). 원본 라인은 그대로 둬서 C8 시 100% 원본 동작.
- AgentScripts/WL813h_Probe.cs + WL813h_PROBE.txt: 에디트 모드 프로브와 실행 덤프
  (로더 적용 · 행 없음 원복 · 페이즈 3회 · GC 0 · RuntimeDisabled 롤백 전부 PASS).

게이트 A PASS(oneshot · exit 0 · error CS 0줄 · 0.8분) · 콘솔 error 0 · Play 0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 00:19:55 +09:00
깃 관리자 7a42c50cc4 [WL-813c] 전투 패드 4슬롯 + 보스 HP 바 (#813) 2026-09-09 00:18:28 +09:00