Files
tbd-station-14/Content.Server/Stunnable/StunOnCollideSystem.cs
metalgearsloth 8862028860 ECS StunnableProjectile (#4309)
* ECS StunnableProjectile

Also renamed it to the more generic component for stunning on collision

* Reviews
2021-07-21 11:16:38 +02:00

28 lines
931 B
C#

using Content.Server.Stunnable.Components;
using JetBrains.Annotations;
using Robust.Shared.GameObjects;
using Robust.Shared.Physics.Dynamics;
namespace Content.Server.Stunnable
{
[UsedImplicitly]
internal sealed class StunOnCollideSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<StunOnCollideComponent, StartCollideEvent>(HandleCollide);
}
private void HandleCollide(EntityUid uid, StunOnCollideComponent component, StartCollideEvent args)
{
if (args.OtherFixture.Body.Owner.TryGetComponent(out StunnableComponent? stunnableComponent))
{
stunnableComponent.Stun(component.StunAmount);
stunnableComponent.Knockdown(component.KnockdownAmount);
stunnableComponent.Slowdown(component.SlowdownAmount);
}
}
}
}