]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
[HOTFIX] Ensure that mobs wake up when zombified (#37346)
authorErrant <35878406+Errant-4@users.noreply.github.com>
Sun, 11 May 2025 16:49:22 +0000 (18:49 +0200)
committerGitHub <noreply@github.com>
Sun, 11 May 2025 16:49:22 +0000 (18:49 +0200)
zombie sleep fix

Content.Shared/Bed/Sleep/SleepingSystem.cs

index d0c6c753deb58c4fa1f63f64d3371da8e9d3325b..916bab09e21450a4ac76ede78969718d932f48df 100644 (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);
@@ -219,6 +221,16 @@ public sealed partial class SleepingSystem : EntitySystem
             TryWaking((ent, ent.Comp));
     }
 
+    /// <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...