using Content.Shared.Damage; using Content.Shared.Weapons.Ranged.Components; using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Clumsy.Components; /// /// Afflicted entity will occasionally fail to fire a gun. /// /// [RegisterComponent, NetworkedComponent] [Access(typeof(ClumsyStatusEffectSystem))] public sealed partial class ClumsyGunStatusEffectComponent : Component { /// /// How often to fail. /// [DataField] public float ClumsyChance = 0.5f; /// /// Sound played upon failure. /// [DataField] public SoundSpecifier? ClumsySound = new SoundPathSpecifier("/Audio/Items/bikehorn.ogg"); /// /// Noise to play after failing to shoot a gun. Boom! /// /// This should probably be on the gun itself, but that's a tall order. [DataField] public SoundSpecifier? GunShootFailSound = new SoundPathSpecifier("/Audio/Weapons/Guns/Gunshots/bang.ogg"); /// /// How much damage to take after failing. /// [DataField] public DamageSpecifier? FailDamage; /// /// How long to be stunned after failing. /// [DataField] public TimeSpan StunDuration = TimeSpan.FromSeconds(2.5); /// /// Popup played to the afflicted when they fail. /// /// Parameters passed in: /// /// gun - The gun the blows up. /// /// [DataField] public LocId? FailedMessage = "clumsy-gun-fail-message"; }