diff --git a/Content.Server/Ghost/GhostSystem.cs b/Content.Server/Ghost/GhostSystem.cs index 1972d5637e..7ce6f5dcf1 100644 --- a/Content.Server/Ghost/GhostSystem.cs +++ b/Content.Server/Ghost/GhostSystem.cs @@ -75,7 +75,7 @@ namespace Content.Server.Ghost private void OnGhostShutdown(EntityUid uid, GhostComponent component, ComponentShutdown args) { // Perf: If the entity is deleting itself, no reason to change these back. - if (component.Owner.LifeStage < EntityLifeStage.Terminating) + if ((!IoCManager.Resolve().EntityExists(component.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve().GetComponent(component.Owner.Uid).EntityLifeStage) < EntityLifeStage.Terminating) { // Entity can't be seen by ghosts anymore. if (component.Owner.TryGetComponent(out VisibilityComponent? visibility)) @@ -182,7 +182,7 @@ namespace Content.Server.Ghost { if (!EntityManager.TryGetEntity(uid, out var entity) || entity.Deleted - || entity.LifeStage == EntityLifeStage.Terminating) + || (!IoCManager.Resolve().EntityExists(entity.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve().GetComponent(entity.Uid).EntityLifeStage) == EntityLifeStage.Terminating) return; if (entity.TryGetComponent(out var mind)) diff --git a/Content.Shared/Pulling/Systems/SharedPullingStateManagementSystem.cs b/Content.Shared/Pulling/Systems/SharedPullingStateManagementSystem.cs index ca550ac1ac..9f7e257610 100644 --- a/Content.Shared/Pulling/Systems/SharedPullingStateManagementSystem.cs +++ b/Content.Shared/Pulling/Systems/SharedPullingStateManagementSystem.cs @@ -61,7 +61,7 @@ namespace Content.Shared.Pulling RaiseLocalEvent(puller.OwnerUid, message, broadcast: false); - if (pullable.Owner.LifeStage <= EntityLifeStage.MapInitialized) + if ((!IoCManager.Resolve().EntityExists(pullable.Owner.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve().GetComponent(pullable.Owner.Uid).EntityLifeStage) <= EntityLifeStage.MapInitialized) RaiseLocalEvent(pullable.OwnerUid, message); // Networking diff --git a/Content.Shared/SubFloor/SubFloorHideSystem.cs b/Content.Shared/SubFloor/SubFloorHideSystem.cs index f31402e800..c187dca217 100644 --- a/Content.Shared/SubFloor/SubFloorHideSystem.cs +++ b/Content.Shared/SubFloor/SubFloorHideSystem.cs @@ -79,7 +79,8 @@ namespace Content.Shared.SubFloor private void OnSubFloorTerminating(EntityUid uid, SubFloorHideComponent component, ComponentShutdown _) { // If component is being deleted don't need to worry about updating any component stuff because it won't matter very shortly. - if (EntityManager.GetEntity(uid).LifeStage >= EntityLifeStage.Terminating) return; + IEntity tempQualifier = EntityManager.GetEntity(uid); + if ((!IoCManager.Resolve().EntityExists(tempQualifier.Uid) ? EntityLifeStage.Deleted : IoCManager.Resolve().GetComponent(tempQualifier.Uid).EntityLifeStage) >= EntityLifeStage.Terminating) return; // Regardless of whether we're on a subfloor or not, unhide. UpdateEntity(uid, true);