using Content.Shared.Eye.Blinding.Components; using Content.Shared.Projectiles; using Content.Shared.Standing.Systems; using Content.Shared.StatusEffect; using Content.Shared.Throwing; namespace Content.Shared._White.Collision; public sealed class BlurOnCollideSystem : EntitySystem { [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnProjectileHit); SubscribeLocalEvent(OnEntityHit); } private void OnEntityHit(Entity ent, ref ThrowDoHitEvent args) { ApplyEffects(args.Target, ent.Comp); } private void OnProjectileHit(Entity ent, ref ProjectileHitEvent args) { ApplyEffects(args.Target, ent.Comp); } private void ApplyEffects(EntityUid target, BlurOnCollideComponent component) { _statusEffects.TryAddStatusEffect(target, "BlurryVision", TimeSpan.FromSeconds(component.BlurTime), true); } }