using Content.Server.Stunnable.Systems; namespace Content.Server.Stunnable.Components; /// /// Adds stun when it collides with an entity /// [RegisterComponent, Access(typeof(StunOnCollideSystem))] public sealed partial class StunOnCollideComponent : Component { // TODO: Can probably predict this. /// /// How long we are stunned for /// [DataField] public TimeSpan StunAmount; /// /// How long we are knocked down for /// [DataField] public TimeSpan KnockdownAmount; /// /// How long we are slowed down for /// [DataField] public TimeSpan SlowdownAmount; /// /// Multiplier for a mob's walking speed /// [DataField] public float WalkSpeedModifier = 1f; /// /// Multiplier for a mob's sprinting speed /// [DataField] public float SprintSpeedModifier = 1f; /// /// Refresh Stun or Slowdown on hit /// [DataField] public bool Refresh = true; /// /// Should the entity try and stand automatically after being knocked down? /// [DataField] public bool AutoStand = true; /// /// Should the entity drop their items upon first being knocked down? /// [DataField] public bool Drop = true; /// /// Fixture we track for the collision. /// [DataField("fixture")] public string FixtureID = "projectile"; }