Use RMC mob collision values (#36851)

Use RMC movement values

General feedback was it's too slow to push through people but this still prevents stacking so.
This commit is contained in:
metalgearsloth
2025-04-28 00:47:18 +10:00
committed by GitHub
parent 0da897947f
commit f29b38c44b
2 changed files with 5 additions and 4 deletions

View File

@@ -25,14 +25,14 @@ public sealed partial class CCVars
/// </summary>
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef<float> MovementPushingVelocityProduct =
CVarDef.Create("movement.pushing_velocity_product", -1f, CVar.SERVER | CVar.REPLICATED);
CVarDef.Create("movement.pushing_velocity_product", -9999f, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Cap for how much an entity can be pushed per second.
/// </summary>
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef<float> MovementPushingCap =
CVarDef.Create("movement.pushing_cap", 100f, CVar.SERVER | CVar.REPLICATED);
CVarDef.Create("movement.pushing_cap", 25f, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Minimum pushing impulse per tick. If the value is below this it rounds to 0.
@@ -40,7 +40,7 @@ public sealed partial class CCVars
/// </summary>
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef<float> MovementMinimumPush =
CVarDef.Create("movement.minimum_push", 0.1f, CVar.SERVER | CVar.REPLICATED);
CVarDef.Create("movement.minimum_push", 0f, CVar.SERVER | CVar.REPLICATED);
// Really this just exists because hot reloading is cooked on rider.
/// <summary>
@@ -48,7 +48,7 @@ public sealed partial class CCVars
/// </summary>
[CVarControl(AdminFlags.VarEdit)]
public static readonly CVarDef<float> MovementPenetrationCap =
CVarDef.Create("movement.penetration_cap", 0.3f, CVar.SERVER | CVar.REPLICATED);
CVarDef.Create("movement.penetration_cap", 0.5f, CVar.SERVER | CVar.REPLICATED);
/// <summary>
/// Based on the mass difference multiplies the push amount by this proportionally.

View File

@@ -284,6 +284,7 @@ public abstract class SharedMobCollisionSystem : EntitySystem
mobMovement *= modifier;
var speedReduction = 1f - entity.Comp1.MinimumSpeedModifier;
speedReduction /= _penCap / penDepth;
var speedModifier = Math.Clamp(
1f - speedReduction * modifier,
entity.Comp1.MinimumSpeedModifier, 1f);