Convert suicide to ecs (#8091)

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
wrexbe
2022-05-12 05:05:16 -07:00
committed by GitHub
parent 6903209a31
commit 089e40a061
15 changed files with 362 additions and 282 deletions

View File

@@ -22,7 +22,7 @@ namespace Content.Server.Morgue.Components
[ComponentReference(typeof(IActivate))]
[ComponentReference(typeof(IStorageComponent))]
#pragma warning disable 618
public sealed class CrematoriumEntityStorageComponent : MorgueEntityStorageComponent, ISuicideAct
public sealed class CrematoriumEntityStorageComponent : MorgueEntityStorageComponent
#pragma warning restore 618
{
[Dependency] private readonly IEntityManager _entities = default!;
@@ -100,34 +100,5 @@ namespace Content.Server.Morgue.Components
}, _cremateCancelToken.Token);
}
SuicideKind ISuicideAct.Suicide(EntityUid victim, IChatManager chat)
{
if (_entities.TryGetComponent(victim, out ActorComponent? actor) && actor.PlayerSession.ContentData()?.Mind is {} mind)
{
EntitySystem.Get<GameTicker>().OnGhostAttempt(mind, false);
if (mind.OwnedEntity is {Valid: true} entity)
{
entity.PopupMessage(Loc.GetString("crematorium-entity-storage-component-suicide-message"));
}
}
victim.PopupMessageOtherClients(Loc.GetString("crematorium-entity-storage-component-suicide-message-others", ("victim", victim)));
if (CanInsert(victim))
{
Insert(victim);
EntitySystem.Get<StandingStateSystem>().Down(victim, false);
}
else
{
_entities.DeleteEntity(victim);
}
Cremate();
return SuicideKind.Heat;
}
}
}