Melee feel overhaul: SwordCombat anims at heavy cadence, salvage axe, damage-at-contact + buffer + dash law (guidelines forks 1-6)
07-18/19/20 arc: LightCombo01/HeavyCombo01 clips onto Swing1-3/Slam at ~natural speed (26-tick window, 30-tick recover, DPS-held damage retune), Menacing01 combat idle (InCombat), SM_Wep_Axe_Large_01 rigid-skinned to Hand_R at x1.25, LANTERN FX retone + blade-smear ribbon. Forks 1-6 per Combat_Attack_Feel_Guidelines (design review wf_000bc247): cleave resolves at the CONTACT tick (MeleeCleavePending schedule-and-consume, knob 31, 0=legacy; connect cues moved to contact), MeleeRange 2.2 + reach-only finisher mult 1.25 (knob 30), BufferedAttackTick GhostField input buffer (knob 29, unlock-edge validity), dash refused pre-contact (lookup-based). Tests: MeleeComboTests pin legacy knobs; +3 fork tests (414 green); live server proof: HP drop exactly at swing+16 under tick batching. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -153,6 +153,16 @@ namespace ProjectM.Client
|
||||
/// <summary>Shoulder-lamp beam range (m).</summary>
|
||||
public static float ShoulderLampRange;
|
||||
|
||||
/// <summary>Seconds the Menacing01 combat idle (CombatIdle state) holds after the last melee swing (0 = off).</summary>
|
||||
public static float CombatIdleHoldSec;
|
||||
|
||||
/// <summary>Melee slash-arc brightness multiplier (07-19 LANTERN retone: the WEAPON is the read, the arc is a water wake).</summary>
|
||||
public static float MeleeArcIntensity;
|
||||
/// <summary>Bubbles shed along a melee cleave (0 = off).</summary>
|
||||
public static int MeleeArcBubbles;
|
||||
/// <summary>Camera hold frames when the melee FINISHER lands (07-20 G5 impact ladder; light hits use HitStopMaxFrames).</summary>
|
||||
public static int FinisherHoldFrames;
|
||||
|
||||
|
||||
/// <summary>Master gate for gamepad rumble (no-op on KBM).</summary>
|
||||
public static bool RumbleEnabled;
|
||||
@@ -276,6 +286,10 @@ namespace ProjectM.Client
|
||||
RunNaturalSpeed = 2.6f; // measured: A_Run_FwdStrafeF_RootMotion_Masc averageSpeed (run ring)
|
||||
ShoulderLampIntensity = 8f; // 07-16e: the suit lamp actually lights (3 got lost in the murk ambient)
|
||||
ShoulderLampRange = 12f;
|
||||
CombatIdleHoldSec = 4f; // 07-18: Menacing01 combat-idle hold after the last swing
|
||||
MeleeArcIntensity = 1f; // 07-19: arc colors are pre-toned dim; this scales from there
|
||||
MeleeArcBubbles = 6;
|
||||
FinisherHoldFrames = 5; // 07-20 G5: the finisher's heavy beat (~83ms), capped well under the 8-frame ladder ceiling
|
||||
|
||||
|
||||
RumbleEnabled = true;
|
||||
@@ -289,7 +303,7 @@ namespace ProjectM.Client
|
||||
PlayerHurtFlashColor = new Color(2.6f, 0.55f, 0.4f, 1f); // C2: hot red-orange body flash when the player is hit
|
||||
BodyFlashDurationSec = 0.16f;
|
||||
RemoteSwingEnabled = true;
|
||||
RemoteSlashColor = new Color(1.4f, 2.2f, 2.8f, 1f); // cool teammate arc
|
||||
RemoteSlashColor = new Color(0.7f, 1.15f, 1.3f, 1f); // cool teammate arc (07-19 retone: dim bioluminescent wake)
|
||||
StrikeBeepEnabled = true;
|
||||
StrikeBeepVolume = 0.40f;
|
||||
StrikeBeepLeadTicks = 8;
|
||||
|
||||
Reference in New Issue
Block a user