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
}