using Content.Shared.Ninja.Components; namespace Content.Shared.Ninja.Systems; /// /// Shared system for ninja equipment that draws power from the ninja suit's battery. /// The actual power draw logic is handled serverside. /// public abstract class SharedNinjaSuitDrawSystem : EntitySystem { public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnComponentShutdown); } /// /// Disable power draw when component is removed. /// private void OnComponentShutdown(Entity ent, ref ComponentShutdown args) { SetEnabled(ent, false); } /// /// Enable or disable power drawing for this entity. /// public void SetEnabled(Entity ent, bool enabled) { if (ent.Comp.Enabled == enabled) return; ent.Comp.Enabled = enabled; Dirty(ent, ent.Comp); } /// /// Check if the entity can draw power from the ninja suit. /// public virtual bool CanDrawPower(Entity ent) { return ent.Comp.CanDraw; } /// /// Check if the entity has sufficient power to use. /// public virtual bool CanUse(Entity ent) { return ent.Comp.CanUse; } }