using Content.Shared._Offbrand.Wounds; using Content.Shared.StatusEffectNew.Components; using Content.Shared.StatusEffectNew; namespace Content.Shared._Offbrand.StatusEffects; public sealed class ModifyBrainOxygenDepletionChanceStatusEffectSystem : EntitySystem { [Dependency] private readonly HeartSystem _heart = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent>(OnBeforeDepleteBrainOxygen); } private void OnBeforeDepleteBrainOxygen(Entity ent, ref StatusEffectRelayedEvent args) { if (Comp(ent).AppliedTo is not { } target) return; var oxygenation = _heart.Spo2((target, Comp(target))); if (ent.Comp.OxygenationModifierThresholds.LowestMatch(oxygenation) is not { } modifier) return; args.Args = args.Args with { Chance = args.Args.Chance * modifier }; } }