diff --git a/Content.Client/Emp/EmpSystem.cs b/Content.Client/Emp/EmpSystem.cs deleted file mode 100644 index 5ed1022750..0000000000 --- a/Content.Client/Emp/EmpSystem.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Content.Shared.Emp; -using Robust.Shared.Random; - -namespace Content.Client.Emp; - -public sealed class EmpSystem : SharedEmpSystem -{ - [Dependency] private readonly IRobustRandom _random = default!; - - public override void Update(float frameTime) - { - base.Update(frameTime); - - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var comp, out var transform)) - { - if (Timing.CurTime > comp.TargetTime) - { - comp.TargetTime = Timing.CurTime + _random.NextFloat(0.8f, 1.2f) * TimeSpan.FromSeconds(comp.EffectCooldown); - Spawn(EmpDisabledEffectPrototype, transform.Coordinates); - } - } - } -} diff --git a/Content.Server/Anomaly/Effects/ElectricityAnomalySystem.cs b/Content.Server/Anomaly/Effects/ElectricityAnomalySystem.cs index 0302c62f00..89a6361635 100644 --- a/Content.Server/Anomaly/Effects/ElectricityAnomalySystem.cs +++ b/Content.Server/Anomaly/Effects/ElectricityAnomalySystem.cs @@ -59,7 +59,7 @@ public sealed class ElectricityAnomalySystem : EntitySystem } var empRange = component.MaxElectrocuteRange * 3; - _emp.EmpPulse(Transform(uid).MapPosition, empRange, component.EmpEnergyConsumption, component.EmpDisabledDuration); + _emp.EmpPulse(Transform(uid).MapPosition, empRange, component.EmpEnergyConsumption); } public override void Update(float frameTime) diff --git a/Content.Server/Emp/EmpOnTriggerComponent.cs b/Content.Server/Emp/EmpOnTriggerComponent.cs index b64c34cecf..89bb0fe131 100644 --- a/Content.Server/Emp/EmpOnTriggerComponent.cs +++ b/Content.Server/Emp/EmpOnTriggerComponent.cs @@ -15,10 +15,4 @@ public sealed class EmpOnTriggerComponent : Component /// [DataField("energyConsumption"), ViewVariables(VVAccess.ReadWrite)] public float EnergyConsumption; - - /// - /// How long it disables targets in seconds - /// - [DataField("disableDuration"), ViewVariables(VVAccess.ReadWrite)] - public float DisableDuration = 60f; } diff --git a/Content.Server/Emp/EmpSystem.cs b/Content.Server/Emp/EmpSystem.cs index b327f086db..2f348e4023 100644 --- a/Content.Server/Emp/EmpSystem.cs +++ b/Content.Server/Emp/EmpSystem.cs @@ -1,107 +1,39 @@ using Content.Server.Explosion.EntitySystems; -using Content.Server.Power.EntitySystems; -using Content.Server.Radio; -using Content.Server.SurveillanceCamera; -using Content.Shared.Emp; -using Content.Shared.Examine; using Robust.Shared.Map; namespace Content.Server.Emp; -public sealed class EmpSystem : SharedEmpSystem +public sealed class EmpSystem : EntitySystem { [Dependency] private readonly EntityLookupSystem _lookup = default!; public const string EmpPulseEffectPrototype = "EffectEmpPulse"; + public const string EmpDisabledEffectPrototype = "EffectEmpDisabled"; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnUnpaused); - SubscribeLocalEvent(OnExamine); SubscribeLocalEvent(HandleEmpTrigger); - - SubscribeLocalEvent(OnRadioSendAttempt); - SubscribeLocalEvent(OnRadioReceiveAttempt); - SubscribeLocalEvent(OnApcToggleMainBreaker); - SubscribeLocalEvent(OnCameraSetActive); } - public void EmpPulse(MapCoordinates coordinates, float range, float energyConsumption, float duration) + public void EmpPulse(MapCoordinates coordinates, float range, float energyConsumption) { foreach (var uid in _lookup.GetEntitiesInRange(coordinates, range)) { - var ev = new EmpPulseEvent(energyConsumption, false, false); + var ev = new EmpPulseEvent(energyConsumption, false); 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); - } } Spawn(EmpPulseEffectPrototype, coordinates); } - public override void Update(float frameTime) - { - base.Update(frameTime); - - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var comp)) - { - if (comp.DisabledUntil < Timing.CurTime) - { - RemComp(uid); - var ev = new EmpDisabledRemoved(); - RaiseLocalEvent(uid, ref ev); - } - } - } - - private void OnUnpaused(EntityUid uid, EmpDisabledComponent component, ref EntityUnpausedEvent args) - { - component.DisabledUntil += args.PausedTime; - component.TargetTime += args.PausedTime; - } - - private void OnExamine(EntityUid uid, EmpDisabledComponent component, ExaminedEvent args) - { - args.PushMarkup(Loc.GetString("emp-disabled-comp-on-examine")); - } - private void HandleEmpTrigger(EntityUid uid, EmpOnTriggerComponent comp, TriggerEvent args) { - EmpPulse(Transform(uid).MapPosition, comp.Range, comp.EnergyConsumption, comp.DisableDuration); + EmpPulse(Transform(uid).MapPosition, comp.Range, comp.EnergyConsumption); args.Handled = true; } - - private void OnRadioSendAttempt(EntityUid uid, EmpDisabledComponent component, ref RadioSendAttemptEvent args) - { - args.Cancelled = true; - } - - private void OnRadioReceiveAttempt(EntityUid uid, EmpDisabledComponent component, ref RadioReceiveAttemptEvent args) - { - args.Cancelled = true; - } - - private void OnApcToggleMainBreaker(EntityUid uid, EmpDisabledComponent component, ref ApcToggleMainBreakerAttemptEvent args) - { - args.Cancelled = true; - } - - private void OnCameraSetActive(EntityUid uid, EmpDisabledComponent component, ref SurveillanceCameraSetActiveAttemptEvent args) - { - args.Cancelled = true; - } } [ByRefEvent] -public record struct EmpPulseEvent(float EnergyConsumption, bool Affected, bool Disabled); - -[ByRefEvent] -public record struct EmpDisabledRemoved(); +public record struct EmpPulseEvent(float EnergyConsumption, bool Affected); diff --git a/Content.Server/Light/EntitySystems/PoweredLightSystem.cs b/Content.Server/Light/EntitySystems/PoweredLightSystem.cs index 81e4998507..38632912a4 100644 --- a/Content.Server/Light/EntitySystems/PoweredLightSystem.cs +++ b/Content.Server/Light/EntitySystems/PoweredLightSystem.cs @@ -224,20 +224,19 @@ namespace Content.Server.Light.EntitySystems /// /// Try to break bulb inside light fixture /// - public bool TryDestroyBulb(EntityUid uid, PoweredLightComponent? light = null) + public void TryDestroyBulb(EntityUid uid, PoweredLightComponent? light = null) { // check bulb state var bulbUid = GetBulb(uid, light); if (bulbUid == null || !EntityManager.TryGetComponent(bulbUid.Value, out LightBulbComponent? lightBulb)) - return false; + return; if (lightBulb.State == LightBulbState.Broken) - return false; + return; // break it _bulbSystem.SetState(bulbUid.Value, LightBulbState.Broken, lightBulb); _bulbSystem.PlayBreakSound(bulbUid.Value, lightBulb); UpdateLight(uid, light); - return true; } #endregion @@ -429,8 +428,8 @@ namespace Content.Server.Light.EntitySystems private void OnEmpPulse(EntityUid uid, PoweredLightComponent component, ref EmpPulseEvent args) { - if (TryDestroyBulb(uid, component)) - args.Affected = true; + args.Affected = true; + TryDestroyBulb(uid, component); } } } diff --git a/Content.Server/Power/EntitySystems/ApcSystem.cs b/Content.Server/Power/EntitySystems/ApcSystem.cs index db07eb7aa9..a5516d9e15 100644 --- a/Content.Server/Power/EntitySystems/ApcSystem.cs +++ b/Content.Server/Power/EntitySystems/ApcSystem.cs @@ -69,15 +69,6 @@ namespace Content.Server.Power.EntitySystems } private void OnToggleMainBreaker(EntityUid uid, ApcComponent component, ApcToggleMainBreakerMessage args) { - var attemptEv = new ApcToggleMainBreakerAttemptEvent(); - RaiseLocalEvent(uid, ref attemptEv); - if (attemptEv.Cancelled) - { - _popup.PopupCursor(Loc.GetString("apc-component-on-toggle-cancel"), - args.Session, PopupType.Medium); - return; - } - TryComp(uid, out var access); if (args.Session.AttachedEntity == null) return; @@ -192,12 +183,8 @@ namespace Content.Server.Power.EntitySystems if (component.MainBreakerEnabled) { args.Affected = true; - args.Disabled = true; ApcToggleBreaker(uid, component); } } } - - [ByRefEvent] - public record struct ApcToggleMainBreakerAttemptEvent(bool Cancelled); } diff --git a/Content.Server/Radio/EntitySystems/HeadsetSystem.cs b/Content.Server/Radio/EntitySystems/HeadsetSystem.cs index c84d28b450..4f7ab752c8 100644 --- a/Content.Server/Radio/EntitySystems/HeadsetSystem.cs +++ b/Content.Server/Radio/EntitySystems/HeadsetSystem.cs @@ -1,5 +1,4 @@ using Content.Server.Chat.Systems; -using Content.Server.Emp; using Content.Server.Radio.Components; using Content.Shared.Inventory.Events; using Content.Shared.Radio; @@ -22,8 +21,6 @@ public sealed class HeadsetSystem : SharedHeadsetSystem SubscribeLocalEvent(OnKeysChanged); SubscribeLocalEvent(OnSpeak); - - SubscribeLocalEvent(OnEmpPulse); } private void OnKeysChanged(EntityUid uid, HeadsetComponent component, EncryptionChannelsChangedEvent args) @@ -101,13 +98,4 @@ public sealed class HeadsetSystem : SharedHeadsetSystem if (TryComp(Transform(uid).ParentUid, out ActorComponent? actor)) _netMan.ServerSendMessage(args.ChatMsg, actor.PlayerSession.ConnectedClient); } - - private void OnEmpPulse(EntityUid uid, HeadsetComponent component, ref EmpPulseEvent args) - { - if (component.Enabled) - { - args.Affected = true; - args.Disabled = true; - } - } } diff --git a/Content.Server/Radio/EntitySystems/RadioSystem.cs b/Content.Server/Radio/EntitySystems/RadioSystem.cs index b5ced6637e..e7e159b2de 100644 --- a/Content.Server/Radio/EntitySystems/RadioSystem.cs +++ b/Content.Server/Radio/EntitySystems/RadioSystem.cs @@ -80,7 +80,6 @@ public sealed class RadioSystem : EntitySystem var sendAttemptEv = new RadioSendAttemptEvent(channel, radioSource); RaiseLocalEvent(ref sendAttemptEv); - RaiseLocalEvent(radioSource, ref sendAttemptEv); var canSend = !sendAttemptEv.Cancelled; var sourceMapId = Transform(radioSource).MapID; @@ -106,7 +105,6 @@ public sealed class RadioSystem : EntitySystem // check if message can be sent to specific receiver var attemptEv = new RadioReceiveAttemptEvent(channel, radioSource, receiver); RaiseLocalEvent(ref attemptEv); - RaiseLocalEvent(receiver, ref attemptEv); if (attemptEv.Cancelled) continue; diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs index 32bb567678..acb55c36b6 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs @@ -1,7 +1,6 @@ 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; @@ -58,9 +57,6 @@ public sealed class SurveillanceCameraSystem : EntitySystem SubscribeLocalEvent(OnSetName); SubscribeLocalEvent(OnSetNetwork); SubscribeLocalEvent>(AddVerbs); - - SubscribeLocalEvent(OnEmpPulse); - SubscribeLocalEvent(OnEmpDisabledRemoved); } private void OnPacketReceived(EntityUid uid, SurveillanceCameraComponent component, DeviceNetworkPacketEvent args) @@ -275,10 +271,6 @@ public sealed class SurveillanceCameraSystem : EntitySystem if (setting) { - var attemptEv = new SurveillanceCameraSetActiveAttemptEvent(); - RaiseLocalEvent(camera, ref attemptEv); - if (attemptEv.Cancelled) - return; component.Active = setting; } else @@ -400,21 +392,6 @@ 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 @@ -437,6 +414,3 @@ public sealed class SurveillanceCameraDeactivateEvent : EntityEventArgs Camera = camera; } } - -[ByRefEvent] -public record struct SurveillanceCameraSetActiveAttemptEvent(bool Cancelled); diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs index 9d8c6d98f5..2f31da2cd4 100644 --- a/Content.Server/VendingMachines/VendingMachineSystem.cs +++ b/Content.Server/VendingMachines/VendingMachineSystem.cs @@ -1,6 +1,5 @@ using System.Linq; using Content.Server.Cargo.Systems; -using Content.Server.Emp; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.UserInterface; @@ -13,7 +12,6 @@ using Content.Shared.Destructible; using Content.Shared.DoAfter; using Content.Shared.Emag.Components; using Content.Shared.Emag.Systems; -using Content.Shared.Emp; using Content.Shared.Popups; using Content.Shared.Throwing; using Content.Shared.VendingMachines; @@ -21,7 +19,6 @@ using Robust.Server.GameObjects; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Random; -using Robust.Shared.Timing; namespace Content.Server.VendingMachines { @@ -34,7 +31,6 @@ namespace Content.Server.VendingMachines [Dependency] private readonly PricingSystem _pricing = default!; [Dependency] private readonly ThrowingSystem _throwingSystem = default!; [Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!; - [Dependency] private readonly IGameTiming _timing = default!; private ISawmill _sawmill = default!; @@ -48,7 +44,6 @@ namespace Content.Server.VendingMachines SubscribeLocalEvent(OnEmagged); SubscribeLocalEvent(OnDamage); SubscribeLocalEvent(OnVendingPrice); - SubscribeLocalEvent(OnEmpPulse); SubscribeLocalEvent(OnActivatableUIOpenAttempt); SubscribeLocalEvent(OnBoundUIOpened); @@ -442,15 +437,6 @@ namespace Content.Server.VendingMachines } } } - var disabled = EntityQueryEnumerator(); - while (disabled.MoveNext(out var uid, out _, out var comp)) - { - if (comp.NextEmpEject < _timing.CurTime) - { - EjectRandom(uid, true, false, comp); - comp.NextEmpEject += TimeSpan.FromSeconds(5 * comp.EjectDelay); - } - } } public void TryRestockInventory(EntityUid uid, VendingMachineComponent? vendComponent = null) @@ -487,15 +473,5 @@ namespace Content.Server.VendingMachines args.Price += priceSets.Max(); } - - private void OnEmpPulse(EntityUid uid, VendingMachineComponent component, ref EmpPulseEvent args) - { - if (!component.Broken && this.IsPowered(uid, EntityManager)) - { - args.Affected = true; - args.Disabled = true; - component.NextEmpEject = _timing.CurTime; - } - } } } diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/EmpArtifactComponent.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/EmpArtifactComponent.cs index cea776f05d..dc37782a52 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/EmpArtifactComponent.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Components/EmpArtifactComponent.cs @@ -14,7 +14,4 @@ public sealed class EmpArtifactComponent : Component [DataField("energyConsumption"), ViewVariables(VVAccess.ReadWrite)] public float EnergyConsumption = 1000000; - - [DataField("disableDuration"), ViewVariables(VVAccess.ReadWrite)] - public float DisableDuration = 60f; } diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/EmpArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/EmpArtifactSystem.cs index d4ed8272aa..c4346b51bc 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/EmpArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/EmpArtifactSystem.cs @@ -16,6 +16,6 @@ public sealed class EmpArtifactSystem : EntitySystem private void OnActivate(EntityUid uid, EmpArtifactComponent component, ArtifactActivatedEvent args) { - _emp.EmpPulse(Transform(uid).MapPosition, component.Range, component.EnergyConsumption, component.DisableDuration); + _emp.EmpPulse(Transform(uid).MapPosition, component.Range, component.EnergyConsumption); } } \ No newline at end of file diff --git a/Content.Shared/Anomaly/Effects/Components/ElectricityAnomalyComponent.cs b/Content.Shared/Anomaly/Effects/Components/ElectricityAnomalyComponent.cs index 06d03f1019..8da6dd4c42 100644 --- a/Content.Shared/Anomaly/Effects/Components/ElectricityAnomalyComponent.cs +++ b/Content.Shared/Anomaly/Effects/Components/ElectricityAnomalyComponent.cs @@ -44,10 +44,4 @@ public sealed class ElectricityAnomalyComponent : Component /// [DataField("empEnergyConsumption"), ViewVariables(VVAccess.ReadWrite)] public float EmpEnergyConsumption = 100000f; - - /// - /// Duration of devices being disabled by the emp pulse upon going supercritical. - /// - [DataField("empDisabledDuration"), ViewVariables(VVAccess.ReadWrite)] - public float EmpDisabledDuration = 60f; } diff --git a/Content.Shared/Emp/EmpDisabledComponent.cs b/Content.Shared/Emp/EmpDisabledComponent.cs deleted file mode 100644 index c84bab9d4d..0000000000 --- a/Content.Shared/Emp/EmpDisabledComponent.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Robust.Shared.GameStates; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; - -namespace Content.Shared.Emp; - -/// -/// While entity has this component it is "disabled" by EMP. -/// Add desired behaviour in other systems -/// -[RegisterComponent, NetworkedComponent] -[Access(typeof(SharedEmpSystem))] -public sealed class EmpDisabledComponent : Component -{ - /// - /// Moment of time when component is removed and entity stops being "disabled" - /// - [DataField("timeLeft", customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite)] - public TimeSpan DisabledUntil; - - [DataField("effectCoolDown"), ViewVariables(VVAccess.ReadWrite)] - public float EffectCooldown = 3f; - - /// - /// When next effect will be spawned - /// - public TimeSpan TargetTime = TimeSpan.Zero; -} diff --git a/Content.Shared/Emp/SharedEmpSystem.cs b/Content.Shared/Emp/SharedEmpSystem.cs deleted file mode 100644 index 6e4478bb6d..0000000000 --- a/Content.Shared/Emp/SharedEmpSystem.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Robust.Shared.Timing; - -namespace Content.Shared.Emp; - -public abstract class SharedEmpSystem : EntitySystem -{ - [Dependency] protected readonly IGameTiming Timing = default!; - - protected const string EmpDisabledEffectPrototype = "EffectEmpDisabled"; -} diff --git a/Content.Shared/VendingMachines/VendingMachineComponent.cs b/Content.Shared/VendingMachines/VendingMachineComponent.cs index b648d36f4e..85e1178d46 100644 --- a/Content.Shared/VendingMachines/VendingMachineComponent.cs +++ b/Content.Shared/VendingMachines/VendingMachineComponent.cs @@ -3,7 +3,6 @@ using Content.Shared.Actions.ActionTypes; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Serialization; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.VendingMachines @@ -116,12 +115,6 @@ namespace Content.Shared.VendingMachines public float DenyAccumulator = 0f; public float DispenseOnHitAccumulator = 0f; - /// - /// While disabled by EMP it randomly ejects items - /// - [DataField("nextEmpEject", customTypeSerializer: typeof(TimeOffsetSerializer))] - public TimeSpan NextEmpEject = TimeSpan.Zero; - #region Client Visuals /// /// RSI state for when the vending machine is unpowered. diff --git a/Resources/Locale/en-US/apc/components/apc-component.ftl b/Resources/Locale/en-US/apc/components/apc-component.ftl index 6e152adb1d..d180bcbe06 100644 --- a/Resources/Locale/en-US/apc/components/apc-component.ftl +++ b/Resources/Locale/en-US/apc/components/apc-component.ftl @@ -1,4 +1,3 @@ apc-component-insufficient-access = Insufficient access! apc-component-on-examine-panel-open = The [color=lightgray]APC electronics panel[/color] is [color=red]open[/color]. -apc-component-on-examine-panel-closed = The [color=lightgray]APC electronics panel[/color] is [color=darkgreen]closed[/color]. -apc-component-on-toggle-cancel = It does nothing! +apc-component-on-examine-panel-closed = The [color=lightgray]APC electronics panel[/color] is [color=darkgreen]closed[/color]. \ No newline at end of file diff --git a/Resources/Locale/en-US/emp/emp.ftl b/Resources/Locale/en-US/emp/emp.ftl deleted file mode 100644 index 6d5e790bef..0000000000 --- a/Resources/Locale/en-US/emp/emp.ftl +++ /dev/null @@ -1 +0,0 @@ -emp-disabled-comp-on-examine = [color=lightblue]It's disrupted by an electric field... [/color]