using Content.Server.Defusable.Systems; using Content.Server.Explosion.Components; using Robust.Shared.Audio; namespace Content.Server.Defusable.Components; /// /// This is used for bombs that should be defused. The explosion configuration should be handled by . /// [RegisterComponent, Access(typeof(DefusableSystem))] public sealed partial class DefusableComponent : Component { /// /// The bomb will play this sound on defusal. /// [ViewVariables(VVAccess.ReadOnly), DataField("defusalSound")] public SoundSpecifier DefusalSound = new SoundPathSpecifier("/Audio/Misc/notice2.ogg"); /// /// The bomb will play this sound on bolt. /// [ViewVariables(VVAccess.ReadOnly), DataField("boltSound")] public SoundSpecifier BoltSound = new SoundPathSpecifier("/Audio/Machines/boltsdown.ogg"); /// /// Is this bomb one use? /// [ViewVariables(VVAccess.ReadWrite), DataField("disposable")] public bool Disposable = true; /// /// Is the bomb live? This is different from BombUsable because this tracks whether the bomb is ticking down or not. /// [ViewVariables(VVAccess.ReadWrite), DataField("activated")] public bool Activated; /// /// Is the bomb actually usable? This is different from Activated because this tracks whether the bomb can even start in the first place. /// [ViewVariables(VVAccess.ReadWrite)] public bool Usable = true; /// /// Does the bomb show how much time remains? /// [ViewVariables(VVAccess.ReadWrite)] public bool DisplayTime = true; /// /// Is this bomb supposed to be stuck to the ground? /// [ViewVariables(VVAccess.ReadWrite)] public bool Bolted; /// /// How much time is added when the Activate wire is pulsed? /// [DataField("delayTime")] public int DelayTime = 30; #region Wires // wires, this is so that they're one use [ViewVariables(VVAccess.ReadWrite), Access(Other=AccessPermissions.ReadWrite)] public bool DelayWireUsed; [ViewVariables(VVAccess.ReadWrite), Access(Other=AccessPermissions.ReadWrite)] public bool ProceedWireCut; [ViewVariables(VVAccess.ReadWrite), Access(Other=AccessPermissions.ReadWrite)] public bool ProceedWireUsed; [ViewVariables(VVAccess.ReadWrite), Access(Other=AccessPermissions.ReadWrite)] public bool ActivatedWireUsed; #endregion }