diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 07474cc1a8..5c1ef7a0a4 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -694,6 +694,7 @@ ADD_TRAIT(H, TRAIT_PASSTABLE, SLIMEPUDDLE_TRAIT) ADD_TRAIT(H, TRAIT_SPRINT_LOCKED, SLIMEPUDDLE_TRAIT) ADD_TRAIT(H, TRAIT_COMBAT_MODE_LOCKED, SLIMEPUDDLE_TRAIT) + ADD_TRAIT(H, TRAIT_MOBILITY_NOREST, SLIMEPUDDLE_TRAIT) H.update_disabled_bodyparts(silent = TRUE) squeak = H.AddComponent(/datum/component/squeak, custom_sounds = list('sound/effects/blobattack.ogg')) sleep(in_transformation_duration) @@ -718,6 +719,7 @@ REMOVE_TRAIT(H, TRAIT_PASSTABLE, SLIMEPUDDLE_TRAIT) REMOVE_TRAIT(H, TRAIT_SPRINT_LOCKED, SLIMEPUDDLE_TRAIT) REMOVE_TRAIT(H, TRAIT_COMBAT_MODE_LOCKED, SLIMEPUDDLE_TRAIT) + REMOVE_TRAIT(H, TRAIT_MOBILITY_NOREST, SLIMEPUDDLE_TRAIT) H.update_disabled_bodyparts(silent = TRUE) is_puddle = FALSE if(squeak) diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm index 25d70573ac..92de711c27 100644 --- a/code/modules/mob/living/living_mobility.dm +++ b/code/modules/mob/living/living_mobility.dm @@ -5,13 +5,15 @@ RegisterSignal(src, SIGNAL_TRAIT(TRAIT_MOBILITY_NOMOVE), .proc/update_mobility) RegisterSignal(src, SIGNAL_TRAIT(TRAIT_MOBILITY_NOPICKUP), .proc/update_mobility) RegisterSignal(src, SIGNAL_TRAIT(TRAIT_MOBILITY_NOUSE), .proc/update_mobility) - RegisterSignal(src, SIGNAL_TRAIT(TRAIT_MOBILITY_NOSTAND), .proc/update_mobility) + RegisterSignal(src, SIGNAL_TRAIT(TRAIT_MOBILITY_NOREST), .proc/update_mobility) //Stuff like mobility flag updates, resting updates, etc. //Force-set resting variable, without needing to resist/etc. /mob/living/proc/set_resting(new_resting, silent = FALSE, updating = TRUE) if(new_resting != resting) + if(resting && HAS_TRAIT(src, TRAIT_MOBILITY_NOREST)) //forcibly block resting from all sources - BE CAREFUL WITH THIS TRAIT + return resting = new_resting if(!silent) to_chat(src, "You are now [resting? "resting" : "getting up"].") @@ -85,10 +87,10 @@ else mobility_flags &= ~MOBILITY_RESIST - var/canstand_involuntary = conscious && !stat_softcrit && !knockdown && !chokehold && !paralyze && (ignore_legs || has_legs) && !(buckled && buckled.buckle_lying) && !(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && !(HAS_TRAIT(src, TRAIT_MOBILITY_NOSTAND)) + var/canstand_involuntary = conscious && !stat_softcrit && !knockdown && !chokehold && !paralyze && (ignore_legs || has_legs) && !(buckled && buckled.buckle_lying) && !(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) var/canstand = canstand_involuntary && !resting - var/should_be_lying = !canstand + var/should_be_lying = !canstand && !HAS_TRAIT(src, TRAIT_MOBILITY_NOREST) if(buckled) if(buckled.buckle_lying != -1) should_be_lying = buckled.buckle_lying