diff --git a/Content.Server/Wires/BaseToggleWireAction.cs b/Content.Server/Wires/BaseToggleWireAction.cs index 7c021c9511..e5348958dd 100644 --- a/Content.Server/Wires/BaseToggleWireAction.cs +++ b/Content.Server/Wires/BaseToggleWireAction.cs @@ -29,9 +29,7 @@ public abstract partial class BaseToggleWireAction : BaseWireAction public override bool Cut(EntityUid user, Wire wire) { - if (!base.Cut(user, wire)) // Nyanotrasen - Tactical hacking - return false; - + base.Cut(user, wire); ToggleValue(wire.Owner, false); if (TimeoutKey != null) @@ -44,9 +42,7 @@ public abstract partial class BaseToggleWireAction : BaseWireAction public override bool Mend(EntityUid user, Wire wire) { - if (!base.Mend(user, wire)) // Nyanotrasen - Tactical hacking - return false; - + base.Mend(user, wire); ToggleValue(wire.Owner, true); return true; diff --git a/Content.Server/Wires/BaseWireAction.cs b/Content.Server/Wires/BaseWireAction.cs index 31345a19b9..ef6a0fdf36 100644 --- a/Content.Server/Wires/BaseWireAction.cs +++ b/Content.Server/Wires/BaseWireAction.cs @@ -1,5 +1,3 @@ -using Robust.Shared.Random; -using Content.Server.Electrocution; using Content.Server.Power.EntitySystems; using Content.Shared.Administration.Logs; using Content.Shared.Database; @@ -32,24 +30,6 @@ public abstract partial class BaseWireAction : IWireAction [DataField("lightRequiresPower")] public virtual bool LightRequiresPower { get; set; } = true; - /// - /// Nyanotrasen - The chance that the user is shocked when tampering with the wire: cutting, pulsing, or mending it. - /// - [DataField("shockChance")] - public float ShockChance = 0.55f; - - /// - /// Nyanotrasen - How much damage the user takes when tampering. - /// - [DataField("shockDamage")] - public int ShockDamage = 15; - - /// - /// Nyanotrasen - How long the user is stunned after a failed tamper attempt. - /// - [DataField("shockStunTime")] - public TimeSpan ShockStunTime = TimeSpan.FromSeconds(3f); - public virtual StatusLightData? GetStatusLightData(Wire wire) { if (LightRequiresPower && !IsPowered(wire.Owner)) @@ -64,9 +44,7 @@ public abstract partial class BaseWireAction : IWireAction public virtual StatusLightState? GetLightState(Wire wire) => null; public IEntityManager EntityManager = default!; - public IRobustRandom Random = default!; public WiresSystem WiresSystem = default!; - public ElectrocutionSystem ElectrocutionSystem = default!; // not virtual so implementors are aware that they need a nullable here public abstract object? StatusKey { get; } @@ -76,47 +54,14 @@ public abstract partial class BaseWireAction : IWireAction { EntityManager = IoCManager.Resolve(); _adminLogger = IoCManager.Resolve(); - Random = IoCManager.Resolve(); WiresSystem = EntityManager.EntitySysManager.GetEntitySystem(); - ElectrocutionSystem = EntityManager.EntitySysManager.GetEntitySystem(); } public virtual bool AddWire(Wire wire, int count) => count == 1; - public virtual bool Cut(EntityUid user, Wire wire) => !TryShockUser(user, wire, "cutting") && Log(user, wire, "cut"); // Nyanotrasen - Tactical hacking - public virtual bool Mend(EntityUid user, Wire wire) => !TryShockUser(user, wire, "mending") && Log(user, wire, "mended"); // Nyanotrasen - Tactical hacking - public virtual void Pulse(EntityUid user, Wire wire) // Nyanotrasen - Tactical hacking - { - if (!TryShockUser(user, wire, "pulsing")) - Log(user, wire, "pulsed"); - } - - /// - /// Nyanotrasen - Returns true if the user has been shocked. - /// - private bool TryShockUser(EntityUid user, Wire wire, string verb) - { - if (!IsPowered(wire.Owner)) - return false; - - if (!Random.Prob(ShockChance)) - return false; - - var shocked = ElectrocutionSystem.TryDoElectrocution(user, wire.Owner, ShockDamage, ShockStunTime, false); - - if (shocked) - { - var player = EntityManager.ToPrettyString(user); - var owner = EntityManager.ToPrettyString(wire.Owner); - var name = Loc.GetString(Name); - var color = wire.Color.Name(); - var action = GetType().Name; - - _adminLogger.Add(LogType.WireHacking, LogImpact.Medium, $"{player} shocked by {owner} when {verb} {color} {name} wire ({action})"); - } - - return shocked; - } + public virtual bool Cut(EntityUid user, Wire wire) => Log(user, wire, "cut"); + public virtual bool Mend(EntityUid user, Wire wire) => Log(user, wire, "mended"); + public virtual void Pulse(EntityUid user, Wire wire) => Log(user, wire, "pulsed"); private bool Log(EntityUid user, Wire wire, string verb) { diff --git a/Content.Server/Wires/WiresComponent.cs b/Content.Server/Wires/WiresComponent.cs index ee8964b762..89e1873c00 100644 --- a/Content.Server/Wires/WiresComponent.cs +++ b/Content.Server/Wires/WiresComponent.cs @@ -48,8 +48,8 @@ public sealed partial class WiresComponent : Component /// If this should follow the layout saved the first time the layout dictated by the /// layout ID is generated, or if a new wire order should be generated every time. /// - [DataField("alwaysRandomize")] - public bool AlwaysRandomize { get; private set; } = true; // Nyanotrasen - Always randomize wires + [DataField] + public bool AlwaysRandomize { get; private set; } /// /// Per wire status, keyed by an object.