using Content.Server.Atmos.Components; using Content.Shared.Atmos; using Content.Shared.StatusEffectNew; using Robust.Shared.Prototypes; namespace Content.Server.Atmos.EntitySystems; /// /// Responds to pressure immunity refreshes for the active status effect. /// public sealed partial class PressureImmunityStatusEffectSystem : EntitySystem { public static readonly EntProtoId PressureImmunityEffect = "StatusEffectPressureImmunity"; [Dependency] private BarotraumaSystem _barotrauma = default!; [SubscribeLocalEvent] private void OnPressureImmunityStatusApplied(Entity ent, ref StatusEffectAppliedEvent args) { _barotrauma.RefreshPressureImmunity(args.Target); } [SubscribeLocalEvent] private void OnPressureImmunityStatusRemoved(Entity ent, ref StatusEffectRemovedEvent args) { _barotrauma.RefreshPressureImmunity(args.Target); } [SubscribeLocalEvent] private void OnRefreshPressureImmunity(Entity ent, ref StatusEffectRelayedEvent args) { args.Args = args.Args with { IsImmune = true }; } }