Refactors stunnable to be ECS. (#4819)
Also cleans up StandingStatesystem.
This commit is contained in:
committed by
GitHub
parent
19a588a70a
commit
6eee256b11
@@ -8,6 +8,7 @@ using Content.Server.Atmos.Components;
|
||||
using Content.Server.Atmos.EntitySystems;
|
||||
using Content.Server.Construction.Components;
|
||||
using Content.Server.Hands.Components;
|
||||
using Content.Server.Stunnable;
|
||||
using Content.Server.Stunnable.Components;
|
||||
using Content.Server.Tools;
|
||||
using Content.Server.Tools.Components;
|
||||
@@ -15,6 +16,7 @@ using Content.Shared.Damage;
|
||||
using Content.Shared.Doors;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Sound;
|
||||
using Content.Shared.Stunnable;
|
||||
using Content.Shared.Tools;
|
||||
using Content.Shared.Tools.Components;
|
||||
using Robust.Shared.Audio;
|
||||
@@ -553,12 +555,6 @@ namespace Content.Server.Doors.Components
|
||||
// Crush
|
||||
foreach (var e in collidingentities)
|
||||
{
|
||||
if (!e.Owner.TryGetComponent(out StunnableComponent? stun)
|
||||
|| !e.Owner.HasComponent<DamageableComponent>())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var percentage = e.GetWorldAABB().IntersectPercentage(doorAABB);
|
||||
|
||||
if (percentage < 0.1f)
|
||||
@@ -567,9 +563,11 @@ namespace Content.Server.Doors.Components
|
||||
hitsomebody = true;
|
||||
CurrentlyCrushing.Add(e.Owner.Uid);
|
||||
|
||||
EntitySystem.Get<DamageableSystem>().TryChangeDamage(e.Owner.Uid, CrushDamage);
|
||||
if (e.Owner.HasComponent<DamageableComponent>())
|
||||
EntitySystem.Get<DamageableSystem>().TryChangeDamage(e.Owner.Uid, CrushDamage);
|
||||
|
||||
stun.Paralyze(DoorStunTime);
|
||||
if(e.Owner.TryGetComponent(out StunnableComponent? stun))
|
||||
EntitySystem.Get<StunSystem>().Paralyze(e.Owner.Uid, TimeSpan.FromSeconds(DoorStunTime), stun);
|
||||
}
|
||||
|
||||
// If we hit someone, open up after stun (opens right when stun ends)
|
||||
|
||||
Reference in New Issue
Block a user