Emp more effects (#14550)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using Content.Server.DeviceNetwork;
|
||||
using Content.Server.DeviceNetwork.Components;
|
||||
using Content.Server.DeviceNetwork.Systems;
|
||||
using Content.Server.Emp;
|
||||
using Content.Server.Power.Components;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.DeviceNetwork;
|
||||
@@ -57,6 +58,9 @@ public sealed class SurveillanceCameraSystem : EntitySystem
|
||||
SubscribeLocalEvent<SurveillanceCameraComponent, SurveillanceCameraSetupSetName>(OnSetName);
|
||||
SubscribeLocalEvent<SurveillanceCameraComponent, SurveillanceCameraSetupSetNetwork>(OnSetNetwork);
|
||||
SubscribeLocalEvent<SurveillanceCameraComponent, GetVerbsEvent<AlternativeVerb>>(AddVerbs);
|
||||
|
||||
SubscribeLocalEvent<SurveillanceCameraComponent, EmpPulseEvent>(OnEmpPulse);
|
||||
SubscribeLocalEvent<SurveillanceCameraComponent, EmpDisabledRemoved>(OnEmpDisabledRemoved);
|
||||
}
|
||||
|
||||
private void OnPacketReceived(EntityUid uid, SurveillanceCameraComponent component, DeviceNetworkPacketEvent args)
|
||||
@@ -271,6 +275,10 @@ public sealed class SurveillanceCameraSystem : EntitySystem
|
||||
|
||||
if (setting)
|
||||
{
|
||||
var attemptEv = new SurveillanceCameraSetActiveAttemptEvent();
|
||||
RaiseLocalEvent(camera, ref attemptEv);
|
||||
if (attemptEv.Cancelled)
|
||||
return;
|
||||
component.Active = setting;
|
||||
}
|
||||
else
|
||||
@@ -392,6 +400,21 @@ public sealed class SurveillanceCameraSystem : EntitySystem
|
||||
|
||||
_appearance.SetData(uid, SurveillanceCameraVisualsKey.Key, key, appearance);
|
||||
}
|
||||
|
||||
private void OnEmpPulse(EntityUid uid, SurveillanceCameraComponent component, ref EmpPulseEvent args)
|
||||
{
|
||||
if (component.Active)
|
||||
{
|
||||
args.Affected = true;
|
||||
args.Disabled = true;
|
||||
SetActive(uid, false);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnEmpDisabledRemoved(EntityUid uid, SurveillanceCameraComponent component, ref EmpDisabledRemoved args)
|
||||
{
|
||||
SetActive(uid, true);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class OnSurveillanceCameraViewerAddEvent : EntityEventArgs
|
||||
@@ -414,3 +437,6 @@ public sealed class SurveillanceCameraDeactivateEvent : EntityEventArgs
|
||||
Camera = camera;
|
||||
}
|
||||
}
|
||||
|
||||
[ByRefEvent]
|
||||
public record struct SurveillanceCameraSetActiveAttemptEvent(bool Cancelled);
|
||||
|
||||
Reference in New Issue
Block a user