using Content.Shared.Projectiles; using Content.Shared.Standing.Systems; using Content.Shared.Throwing; namespace Content.Shared._White.Collision; public sealed class KnockdownOnCollideSystem : EntitySystem { [Dependency] private readonly SharedStandingStateSystem _standing = 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, KnockdownOnCollideComponent component) { _standing.TryLieDown(target, null, component.Behavior); } }