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 };
}
}