using Content.Shared.Eye.Blinding.Systems; using Content.Shared.StatusEffectNew; namespace Content.Shared._Offbrand.StatusEffects; public sealed class BlurryVisionStatusEffectSystem : EntitySystem { [Dependency] private readonly BlurryVisionSystem _blurryVision = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnStatusEffectApplied); SubscribeLocalEvent(OnStatusEffectRemoved); SubscribeLocalEvent>(OnGetBlur); } private void OnStatusEffectApplied(Entity ent, ref StatusEffectAppliedEvent args) { _blurryVision.UpdateBlurMagnitude(args.Target); } private void OnStatusEffectRemoved(Entity ent, ref StatusEffectRemovedEvent args) { _blurryVision.UpdateBlurMagnitude(args.Target); } private void OnGetBlur(Entity ent, ref StatusEffectRelayedEvent args) { args.Args.Blur += ent.Comp.Blur; args.Args.CorrectionPower *= ent.Comp.CorrectionPower; } }