diff --git a/Content.Server/Emp/EmpSystem.cs b/Content.Server/Emp/EmpSystem.cs index 99be8a1c6e..7694127944 100644 --- a/Content.Server/Emp/EmpSystem.cs +++ b/Content.Server/Emp/EmpSystem.cs @@ -4,8 +4,6 @@ using Content.Server.Power.EntitySystems; using Content.Server.Radio; using Content.Server.SurveillanceCamera; using Content.Shared.Emp; -using Content.Shared.Examine; -using Robust.Server.GameObjects; using Robust.Shared.Map; using Content.Shared._NF.Emp.Components; // Frontier using Robust.Server.GameStates; // Frontier: EMP Blast PVS @@ -17,7 +15,6 @@ namespace Content.Server.Emp; public sealed class EmpSystem : SharedEmpSystem { [Dependency] private readonly EntityLookupSystem _lookup = default!; - [Dependency] private readonly TransformSystem _transform = default!; [Dependency] private readonly PvsOverrideSystem _pvs = default!; // Frontier: EMP Blast PVS [Dependency] private readonly IConfigurationManager _cfg = default!; // Frontier: EMP Blast PVS @@ -26,7 +23,6 @@ public sealed class EmpSystem : SharedEmpSystem public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnExamine); SubscribeLocalEvent(OnRadioSendAttempt); SubscribeLocalEvent(OnRadioReceiveAttempt); @@ -119,15 +115,15 @@ public sealed class EmpSystem : SharedEmpSystem if (damage == null) damage = new() { DamageDict = new() { { "Ion", 80 } } }; // DeltaV - EMP damage var ev = new EmpPulseEvent(energyConsumption, false, false, TimeSpan.FromSeconds(duration)); RaiseLocalEvent(uid, ref ev); + if (ev.Affected) - { Spawn(EmpDisabledEffectPrototype, Transform(uid).Coordinates); - } - if (ev.Disabled) - { - var disabled = EnsureComp(uid); - disabled.DisabledUntil = Timing.CurTime + TimeSpan.FromSeconds(duration); - } + + if (!ev.Disabled) + return; + + var disabled = EnsureComp(uid); + disabled.DisabledUntil = Timing.CurTime + TimeSpan.FromSeconds(duration); } public override void Update(float frameTime) @@ -146,19 +142,6 @@ public sealed class EmpSystem : SharedEmpSystem } } - private void OnExamine(EntityUid uid, EmpDisabledComponent component, ExaminedEvent args) - { - args.PushMarkup(Loc.GetString("emp-disabled-comp-on-examine")); - } - - /* Removed in Trigger Refactor - private void HandleEmpTrigger(EntityUid uid, EmpOnTriggerComponent comp, TriggerEvent args) - { - EmpPulse(_transform.GetMapCoordinates(uid), comp.Range, comp.EnergyConsumption, comp.DisableDuration, comp.Damage); // DeltaV - EMP damage - args.Handled = true; - } - */ - private void OnRadioSendAttempt(EntityUid uid, EmpDisabledComponent component, ref RadioSendAttemptEvent args) { args.Cancelled = true; @@ -185,7 +168,7 @@ public sealed class EmpSystem : SharedEmpSystem /// public sealed partial class EmpAttemptEvent(DamageSpecifier? damage = null) : CancellableEntityEventArgs // DeltaV - EMP damage { - public DamageSpecifier? Damage = (damage == null) ? new() { DamageDict = new() { {"Ion", 80 } } } : damage; // DeltaV - EMP damage; + public DamageSpecifier? Damage = (damage == null) ? new() { DamageDict = new() { { "Ion", 80 } } } : damage; // DeltaV - EMP damage; } [ByRefEvent] diff --git a/Content.Shared/Emp/SharedEmpSystem.cs b/Content.Shared/Emp/SharedEmpSystem.cs index 72dc874935..deb2afd709 100644 --- a/Content.Shared/Emp/SharedEmpSystem.cs +++ b/Content.Shared/Emp/SharedEmpSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared.Examine; using Robust.Shared.Map; using Robust.Shared.Timing; @@ -7,6 +8,13 @@ public abstract class SharedEmpSystem : EntitySystem { [Dependency] protected readonly IGameTiming Timing = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnExamine); + } + protected const string EmpDisabledEffectPrototype = "EffectEmpDisabled"; /// @@ -19,4 +27,9 @@ public abstract class SharedEmpSystem : EntitySystem public virtual void EmpPulse(MapCoordinates coordinates, float range, float energyConsumption, float duration) { } + + private void OnExamine(Entity ent, ref ExaminedEvent args) + { + args.PushMarkup(Loc.GetString("emp-disabled-comp-on-examine")); + } }