Commit Graph

20 Commits

Author SHA1 Message Date
깃 관리자 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
깃 관리자 1472316c37 [WL-813y] 후속: WLSurvivalSettings enabled 0→1 (813i 생존 시스템 활성 · Lead · #813)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 08:04:45 +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
깃 관리자 c8787794a9 [WL-813i] 무적 해제·물약·사망/부활 (#813)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 02:16:38 +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
깃 관리자 4aac9e09af Merge branch 'wl/gameplay/WL-811def-reactions' 2026-09-09 01:36:19 +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
깃 관리자 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
깃 관리자 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
깃 관리자 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
깃 관리자 ff208d6dbe [WL-811b] 전투 액션 코어 골격 (#811)
CombatEvents(이벤트 12종 + LevelUp API · 구조체 페이로드 · GC 0 · 예외 격리) · ComboTracker(PC Animator 상태 폴링) ·
TimeScaleArbiter(Pause > Cinematic > HitStop · D-1(a)) · EffectBudget(동시 상한) · WLCombatCoreSettings SO + 에셋.
원본 훅 9줄(D-5(a) · Actor.cs 5 / MobActor.cs 2 / ProjectileBase.cs 1 / MyActor.cs 1 · 이후 Actor.cs 동결) ·
편입: WLHitFeel = HitConfirmed 구독자(false 반환 규약 유지) · WLHitFeelRunner 히트스톱 중재자 경유 · DashDriver/WeaponTrailDriver 통지.
에셋 없음/enabled=false/RuntimeDisabled = 100% 기존 동작(C8). 프로브 WL811b_Probe(Watch/GcCheck/Arbiter/Toggle/Dump/Status).
게이트 oneshot PASS(error CS 0 · 로그 wl_compile_gate_20260908_231602.log).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 23:30:57 +09:00
깃 관리자 abcd038656 WL 세션 3 (#803~#806 · PD 승인 2026-09-07) — 세로 전용 전환 · Attack3 검기 무기 정합(ShowEffect 0.25 · editbake 캘리브레이션 4행) · 타격감 midplus · 공용 팝업 세로 크기 · 검증 도구(SuppressPets 복원 수정 · ComboSpeed/Trace3 · 신규 WL803/804/806 도구)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 14:01:36 +09:00
깃 관리자 f4a660186a WL 리뉴얼 세션 2026-09-06~07 (#760~#800) — 전투·배경·UI·타격감 (조직 PD 로그 #746~#800 · 대화로그 §14~§24)
- 전투: Knight@Attack1~3_S 3콤보(4 컨트롤러·클래스별 서브클립) · 타겟팅 4규칙(정면 우선·재타겟·즉시 공격·어그로 금지 · WLTargetingSettings) · 대쉬 후 공격(Stander@Chase_Start · DashDriver · 5 m · 사정거리+0.8 · 근거리 적 우선) · 공격 이동 FrameTable(발 접지 실측 표 · AttackRootMotion) · 충돌 반경/투사체 0.3 배(WLCollisionTuning) · 무적(임시)·펫 금지(WLGameplaySettings)
- 검기: NamuFX Slash_B 배리언트 Effect_WLSwingArc 원 피팅 정합 배치 + 캘리브레이션(SlashArcMeasure · SlashTrailSettings) · 찌르기 Effect_WLStab 대기 · 램프 리본(BladeTrail · WL_BladeRibbon.shader · T_WL_BladeRibbonRamp) 보존(drawRibbon 0)
- 타격감: Assets/WL/Feel(WLHitFeel · 히트스톱 0.03 · 셰이크 0.10 m · 몹 펀치 1.12 · Actor.Get_Damage 훅 1줄 · 원본 RealCamera 셰이크 결함 대체)
- 배경/맵: LMHPOLY Demo_01~10 → WL_Nature01~10(프리팹·씬·NavMesh·스포너·BattleMapConfig) · 물(ToonWaterU) · 포스트 블룸 0.9/0.3 · 잔디(BruteForce·드레싱) 제거 · 마젠타 머티리얼 URP 변환
- UI: 세로 HUD(WL_HUD · 하단 5메뉴 폭 전체 · 채팅/전투 패드 숨김 · WLIngameUiOverride) · Title/TitleInfo 1080×1920 Expand + 배경 높이 fit(WLBackgroundFit) · 로딩 SortOrder_5(WLRawImageAspectSync · 초점표 8장) · Loading1~8 ASTC 6×6
- 도구: AgentScripts/*(LightProbe · WL_MapSwitch · WL760~WL800 프로브/집행/검증 · 상단 사용법 주석) · 에디터 락 프로토콜 파일(staging)
- 제외(별도 커밋 예정): Assets/LMHPOLY(703 MB) · Assets/Feel(422 MB) · Assets/Shinabro(300 MB) — 에셋 스토어/구 WL 팩 원본

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 08:24:25 +09:00