using Content.Shared.Ninja.Systems; using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Ninja.Components; /// /// Component for draining power from APCs/substations/SMESes, when ProviderUid is set to a battery cell. /// Does not rely on relay, simply being on the user and having BatteryUid set is enough. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(SharedBatteryDrainerSystem))] public sealed partial class BatteryDrainerComponent : Component { /// /// The powercell entity to drain power into. /// Determines whether draining is possible. /// [DataField, AutoNetworkedField] public EntityUid? BatteryUid; /// /// Conversion rate between joules in a device and joules added to battery. /// Should be very low since powercells store nothing compared to even an APC. /// [DataField] public float DrainEfficiency = 0.001f; /// /// Time that the do after takes to drain charge from a battery, in seconds /// [DataField] public float DrainTime = 1f; /// /// Sound played after the doafter ends. /// [DataField] public SoundSpecifier SparkSound = new SoundCollectionSpecifier("sparks"); }