[HOTFIX] Ensure that mobs wake up when zombified (#37346)

zombie sleep fix
This commit is contained in:
Errant 2025-05-11 18:49:22 +02:00 committed by deltanedas
parent 6977f12180
commit 36cdec9210
1 changed files with 12 additions and 0 deletions

View File

@ -21,6 +21,7 @@ using Content.Shared.StatusEffect;
using Content.Shared.Stunnable;
using Content.Shared.Traits.Assorted;
using Content.Shared.Verbs;
using Content.Shared.Zombies;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
@ -51,6 +52,7 @@ public sealed partial class SleepingSystem : EntitySystem
SubscribeLocalEvent<MobStateComponent, SleepActionEvent>(OnSleepAction);
SubscribeLocalEvent<SleepingComponent, DamageChangedEvent>(OnDamageChanged);
SubscribeLocalEvent<SleepingComponent, EntityZombifiedEvent>(OnZombified);
SubscribeLocalEvent<SleepingComponent, MobStateChangedEvent>(OnMobStateChanged);
SubscribeLocalEvent<SleepingComponent, MapInitEvent>(OnMapInit);
SubscribeLocalEvent<SleepingComponent, SpeakAttemptEvent>(OnSpeakAttempt);
@ -225,6 +227,16 @@ public sealed partial class SleepingSystem : EntitySystem
// Shitmed Change End
}
/// <summary>
/// Wake up on being zombified.
/// In some cases, zombification might theoretically occur without a mob state change or being damaged
/// </summary>
/// //TODO Perhaps a generic component should be introduced that guarantees that a mob will wake up immediately and can't go to sleep again
private void OnZombified(Entity<SleepingComponent> ent, ref EntityZombifiedEvent args)
{
TryWaking((ent, ent.Comp), true);
}
/// <summary>
/// In crit, we wake up if we are not being forced to sleep.
/// And, you can't sleep when dead...