ProceedWireAction.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Content.Server.Defusable.Components;
  2. using Content.Server.Defusable.Systems;
  3. using Content.Server.Doors.Systems;
  4. using Content.Server.Explosion.EntitySystems;
  5. using Content.Server.Popups;
  6. using Content.Server.Wires;
  7. using Content.Shared.Defusable;
  8. using Content.Shared.Doors;
  9. using Content.Shared.Doors.Components;
  10. using Content.Shared.Wires;
  11. namespace Content.Server.Defusable.WireActions;
  12. public sealed partial class ProceedWireAction : ComponentWireAction<DefusableComponent>
  13. {
  14. public override Color Color { get; set; } = Color.Blue;
  15. public override string Name { get; set; } = "wire-name-bomb-proceed";
  16. public override bool LightRequiresPower { get; set; } = false;
  17. public override StatusLightState? GetLightState(Wire wire, DefusableComponent comp)
  18. {
  19. return comp.Activated ? StatusLightState.Off : StatusLightState.BlinkingFast;
  20. }
  21. public override object StatusKey { get; } = DefusableWireStatus.ProceedIndicator;
  22. public override bool Cut(EntityUid user, Wire wire, DefusableComponent comp)
  23. {
  24. return EntityManager.System<DefusableSystem>().ProceedWireCut(user, wire, comp);
  25. }
  26. public override bool Mend(EntityUid user, Wire wire, DefusableComponent comp)
  27. {
  28. return true;
  29. }
  30. public override void Pulse(EntityUid user, Wire wire, DefusableComponent comp)
  31. {
  32. EntityManager.System<DefusableSystem>().ProceedWirePulse(user, wire, comp);
  33. }
  34. }