diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 5cf03e2684..0ded5f9912 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -91,7 +91,10 @@ if(current) // remove ourself from our old body's mind variable current.mind = null SStgui.on_transfer(current, new_character) - + if(iscarbon(current)) + var/mob/living/carbon/C = current + if(C.combatmode) + C.toggle_combat_mode(TRUE, TRUE) if(!language_holder) var/datum/language_holder/mob_holder = new_character.get_language_holder(shadow = FALSE) language_holder = mob_holder.copy(src) diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index c3625b4eca..84ed012b82 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -38,7 +38,6 @@ /datum/status_effect/incapacitating/unconscious id = "unconscious" needs_update_stat = TRUE - blocks_combatmode = TRUE /datum/status_effect/incapacitating/unconscious/tick() if(owner.getStaminaLoss()) @@ -49,7 +48,6 @@ id = "sleeping" alert_type = /obj/screen/alert/status_effect/asleep needs_update_stat = TRUE - blocks_combatmode = TRUE var/mob/living/carbon/carbon_owner var/mob/living/carbon/human/human_owner diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 095affe45d..7e52f010cc 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -794,6 +794,8 @@ else if(health <= crit_threshold && !HAS_TRAIT(src, TRAIT_NOSOFTCRIT)) stat = SOFT_CRIT + if(combatmode) + toggle_combat_mode(TRUE, TRUE) else stat = CONSCIOUS adjust_blindness(-1) diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm index 4132631006..1c6b957d9f 100644 --- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm +++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm @@ -19,10 +19,11 @@ return . /mob/living/carbon/proc/toggle_combat_mode(forced, silent) - if(recoveringstam) - return TRUE if(!forced) - for(var/datum/status_effect/S in status_effects) + if(recoveringstam || stat != CONSCIOUS) + return TRUE + for(var/i in status_effects) + var/datum/status_effect/S = i if(S.blocks_combatmode) return TRUE combatmode = !combatmode