using Content.Shared.Eye.Blinding.Components; using Content.Shared.StatusEffect; namespace Content.Shared.Eye.Blinding.Systems; public sealed class TemporaryBlindnessSystem : EntitySystem { [ValidatePrototypeId] public const string BlindingStatusEffect = "TemporaryBlindness"; [Dependency] private readonly BlindableSystem _blindableSystem = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnStartup); SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnBlindTrySee); } private void OnStartup(EntityUid uid, TemporaryBlindnessComponent component, ComponentStartup args) { _blindableSystem.UpdateIsBlind(uid); } private void OnShutdown(EntityUid uid, TemporaryBlindnessComponent component, ComponentShutdown args) { _blindableSystem.UpdateIsBlind(uid); } private void OnBlindTrySee(EntityUid uid, TemporaryBlindnessComponent component, CanSeeAttemptEvent args) { if (component.LifeStage <= ComponentLifeStage.Running) args.Cancel(); } }