From 1b704ca0b9e7082e8ad2c476a59fa5efa518e0b1 Mon Sep 17 00:00:00 2001 From: Luis Gonzalez Date: Thu, 25 Jun 2026 22:55:42 -0700 Subject: [PATCH] Combat tuning: lift sluggish chasers toward kiteable band + snappier dash (research-backed) Deep-research-backed ratios (GDKeys, gamedeveloper.com twin-stick study, Hades/RoR, critpoints i-frames): enemies should sit ~0.5-0.85x of player move speed (kiteable but pressing), telegraphs >= ~250ms. - Enemy move speed (on the RIGGED prefabs the directors actually spawn - verified the live ZoneEnemy/Wave rosters at runtime: Grunt=EnemyWerewolf, Charger=EnemyChargerMuscle, Spitter=EnemySpitter, Swarmer= EnemySwarmerUndead): Grunt 3.0->4.2 (0.70x base), Charger walk 2.6->3.0, Spitter 2.8->3.0. The 0.43-0.50x cluster was trivially out-walked by the 6.9 Ranger; lifted to credible pressure while still kiteable. Swarmer kept at 6.5 (intentional surround/rush). Telegraph windups unchanged (already research-aligned). - Dash (live TuningConfig defaults): IFrameWindowTicks 12->14 (0.20->0.23s, covers a reacted telegraph), DashCooldownTicks 45->36 (0.75->0.60s, horde-kiter cadence). Dash distance/arc unchanged. Play-verified the baked rosters: Grunt 4.2 / Charger 3 / Spitter 3 / Swarmer 6.5; dash 14/36. 390/390 EditMode. All are live-tunable (dash) or one re-bake (enemy speeds). Investigation: wf_c6c87dc5-9c3 (tuning lane). Co-Authored-By: Claude Opus 4.8 --- Assets/_Project/Prefabs/EnemyChargerMuscle.prefab | 2 +- Assets/_Project/Prefabs/EnemySpitter.prefab | 2 +- Assets/_Project/Prefabs/EnemyWerewolf.prefab | 2 +- Assets/_Project/Scripts/Simulation/Debug/TuningConfig.cs | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Assets/_Project/Prefabs/EnemyChargerMuscle.prefab b/Assets/_Project/Prefabs/EnemyChargerMuscle.prefab index 5d0157622..0bf9f685c 100644 --- a/Assets/_Project/Prefabs/EnemyChargerMuscle.prefab +++ b/Assets/_Project/Prefabs/EnemyChargerMuscle.prefab @@ -1816,7 +1816,7 @@ MonoBehaviour: m_EditorClassIdentifier: ProjectM.Authoring::ProjectM.Authoring.EnemyAuthoring MaxHealth: 45 HitRadius: 0.8 - MoveSpeed: 2.6 + MoveSpeed: 3 AttackRange: 1.7 AttackDamage: 14 AttackCooldownTicks: 48 diff --git a/Assets/_Project/Prefabs/EnemySpitter.prefab b/Assets/_Project/Prefabs/EnemySpitter.prefab index b9f04cbb5..b0a2b1c81 100644 --- a/Assets/_Project/Prefabs/EnemySpitter.prefab +++ b/Assets/_Project/Prefabs/EnemySpitter.prefab @@ -873,7 +873,7 @@ MonoBehaviour: m_EditorClassIdentifier: ProjectM.Authoring::ProjectM.Authoring.EnemyAuthoring MaxHealth: 28 HitRadius: 1 - MoveSpeed: 2.8 + MoveSpeed: 3 AttackRange: 1.8 AttackDamage: 8 AttackCooldownTicks: 66 diff --git a/Assets/_Project/Prefabs/EnemyWerewolf.prefab b/Assets/_Project/Prefabs/EnemyWerewolf.prefab index 242d7d999..7051d8feb 100644 --- a/Assets/_Project/Prefabs/EnemyWerewolf.prefab +++ b/Assets/_Project/Prefabs/EnemyWerewolf.prefab @@ -927,7 +927,7 @@ MonoBehaviour: m_EditorClassIdentifier: ProjectM.Authoring::ProjectM.Authoring.EnemyAuthoring MaxHealth: 30 HitRadius: 0.7 - MoveSpeed: 3 + MoveSpeed: 4.2 AttackRange: 1.6 AttackDamage: 5 AttackCooldownTicks: 48 diff --git a/Assets/_Project/Scripts/Simulation/Debug/TuningConfig.cs b/Assets/_Project/Scripts/Simulation/Debug/TuningConfig.cs index 8ee326d57..1027f88f3 100644 --- a/Assets/_Project/Scripts/Simulation/Debug/TuningConfig.cs +++ b/Assets/_Project/Scripts/Simulation/Debug/TuningConfig.cs @@ -65,9 +65,9 @@ namespace ProjectM.Simulation public static TuningConfig Defaults() => new TuningConfig { DashDistance = 4.0f, - IFrameWindowTicks = 12f, + IFrameWindowTicks = 14f, // tune: was 12 (0.20s) -> 0.23s, i-frames better cover a reacted telegraph RecoverTailTicks = 9f, - DashCooldownTicks = 45f, + DashCooldownTicks = 36f, // tune: was 45 (0.75s) -> 0.60s, snappier horde-kiter cadence DashSharpness = 200f, ChargerWindupTicks = 30f, ChargerLungeSpeed = 16f,