using Content.Shared.Ninja.Systems; using Robust.Shared.Audio; 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, Access(typeof(SharedBatteryDrainerSystem))] public sealed partial class BatteryDrainerComponent : Component { /// /// The powercell entity to drain power into. /// Determines whether draining is possible. /// [DataField("batteryUid"), ViewVariables(VVAccess.ReadWrite)] 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("drainEfficiency"), ViewVariables(VVAccess.ReadWrite)] public float DrainEfficiency = 0.001f; /// /// Time that the do after takes to drain charge from a battery, in seconds /// [DataField("drainTime"), ViewVariables(VVAccess.ReadWrite)] public float DrainTime = 1f; /// /// Sound played after the doafter ends. /// [DataField("sparkSound")] public SoundSpecifier SparkSound = new SoundCollectionSpecifier("sparks"); }