diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm
index a4420872e5e..eda6d74b296 100644
--- a/code/game/objects/items/weapons/defib.dm
+++ b/code/game/objects/items/weapons/defib.dm
@@ -408,8 +408,9 @@
H.adjustBruteLoss(tobehealed)
user.visible_message("[defib] pings: Resuscitation successful.")
playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0)
- H.stat = 1
- H.update_revive()
+ H.update_revive(FALSE)
+ H.KnockOut(FALSE)
+ H.Paralyse(5)
H.emote("gasp")
if(tplus > tloss)
H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100))))
@@ -527,8 +528,9 @@
H.adjustBruteLoss(tobehealed)
user.visible_message("[user] pings: Resuscitation successful.")
playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0)
- H.stat = UNCONSCIOUS
- H.update_revive()
+ H.update_revive(FALSE)
+ H.KnockOut(FALSE)
+ H.Paralyse(5)
H.emote("gasp")
if(tplus > tloss)
H.setBrainLoss( max(0, min(99, ((tlimit - tplus) / tlimit * 100))))
diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm
index 49d6d7fe245..5fe7d44ab6d 100644
--- a/code/modules/mob/living/carbon/human/species/plasmaman.dm
+++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm
@@ -189,7 +189,7 @@
if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit
H.Paralyse(3) // 3 gives them one second to wake up and run away a bit!
if(SA_pp > SA_sleep_min) // Enough to make us sleep as well
- H.AdjustSleeping(2, bound_lower = 0, bound_upper = 10)
+ H.AdjustSleeping(8, bound_lower = 0, bound_upper = 10)
else if(SA_pp > 0.15) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning
if(prob(20))
spawn(0)
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 7b91d51261c..2af29aefe72 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -305,7 +305,7 @@
if(!H.co2overloadtime) // If it's the first breath with too much CO2 in it, lets start a counter, then have them pass out after 12s or so.
H.co2overloadtime = world.time
else if(world.time - H.co2overloadtime > 120)
- H.Paralyse(3)
+ H.Paralyse(5)
H.adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business
if(world.time - H.co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good!
H.adjustOxyLoss(8)
@@ -314,6 +314,7 @@
H.emote("cough")
else
H.clear_alert("co2")
+ H.co2overloadtime = 0
if(atmos_requirements["min_co2"]) //species breathes this gas, so they got their air
H.failed_last_breath = 0
H.adjustOxyLoss(-5)
@@ -332,7 +333,8 @@
if(SA_pp > atmos_requirements["sa_para"]) // Enough to make us paralysed for a bit
H.Paralyse(3) // 3 gives them one second to wake up and run away a bit!
if(SA_pp > atmos_requirements["sa_sleep"]) // Enough to make us sleep as well
- H.AdjustSleeping(2, bound_lower = 0, bound_upper = 10)
+ // This value is large because breaths are taken only once every 4 life ticks.
+ H.AdjustSleeping(8, bound_lower = 0, bound_upper = 10)
else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning
if(prob(20))
spawn(0)
diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm
index e17d9af6250..c5ce705ba17 100644
--- a/code/modules/mob/living/death.dm
+++ b/code/modules/mob/living/death.dm
@@ -3,4 +3,4 @@
clear_fullscreens()
update_action_buttons_icon()
- ..(gibbed)
\ No newline at end of file
+ ..(gibbed)
diff --git a/code/modules/mob/living/stat_states.dm b/code/modules/mob/living/stat_states.dm
index 49c91a10d99..f04196f9fc9 100644
--- a/code/modules/mob/living/stat_states.dm
+++ b/code/modules/mob/living/stat_states.dm
@@ -35,7 +35,7 @@
// death() is used to make a mob die
// handles revival through other means than cloning or adminbus (defib, IPC repair)
-/mob/living/proc/update_revive()
+/mob/living/proc/update_revive(updating = TRUE)
if(stat != DEAD)
return
if(!can_be_revived())
@@ -45,6 +45,7 @@
dead_mob_list -= src
living_mob_list += src
timeofdeath = null
- update_canmove()
+ if(updating)
+ update_canmove()
// update_blind_effects()
updatehealth()