diff --git a/code/datums/action.dm b/code/datums/action.dm index e9d0c4ee89..b84be3b809 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -433,7 +433,8 @@ name = "Shift Nerves" /datum/action/item_action/explosive_implant - check_flags = 0 + check_flags = NONE + required_mobility_flags = NONE name = "Activate Explosive Implant" /datum/action/item_action/toggle_research_scanner diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index c0b510111f..f333534977 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -448,7 +448,7 @@ GLOBAL_LIST_EMPTY(PDAs) var/mob/living/U = usr //Looking for master was kind of pointless since PDAs don't appear to have one. - if(usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) && !href_list["close"]) + if(usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK, FALSE) && !href_list["close"]) add_fingerprint(U) U.set_machine(src) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 77de3377a0..175121cd30 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1075,7 +1075,7 @@ else return ..() -/obj/item/toy/cards/singlecard/attack_self(mob/user) +/obj/item/toy/cards/singlecard/attack_self(mob/living/user) . = ..() if(.) return diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 0f14e8ea86..24f0114914 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -727,8 +727,8 @@ remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#000000") cut_overlay(MA) -/mob/living/carbon/human/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE) - if(incapacitated() || lying ) +/mob/living/carbon/human/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE, check_resting = TRUE) + if(incapacitated() || (check_resting && resting)) to_chat(src, "You can't do that right now!") return FALSE if(!Adjacent(M) && (M.loc != src)) @@ -876,7 +876,7 @@ return (istype(target) && target.stat == CONSCIOUS) /mob/living/carbon/human/proc/can_be_firemanned(mob/living/carbon/target) - return (ishuman(target) && target.lying) + return (ishuman(target) && !CHECK_MOBILITY(target, MOBILITY_STAND)) /mob/living/carbon/human/proc/fireman_carry(mob/living/carbon/target) if(can_be_firemanned(target)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index f6443c0c7f..4203f66620 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -368,14 +368,9 @@ death() -/mob/living/incapacitated(ignore_restraints, ignore_grab) - if(stat) +/mob/living/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE, check_immobilized = FALSE) + if(stat || IsUnconscious() || IsStun() || IsParalyzed() || recoveringstam || (check_immobilized && IsImmobilized()) || (!ignore_restraints && restrained(ignore_grab))) return TRUE - if(!CHECK_BITFIELD(mobility_flags, MOBILITY_FLAGS_ANY_INTERACTION)) - return TRUE - if(!ignore_restraints && restrained(ignore_grab)) - return TRUE - return FALSE /mob/living/canUseStorage() if (get_num_arms() <= 0) diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm index 7b16331a29..0239c15179 100644 --- a/code/modules/mob/living/living_mobility.dm +++ b/code/modules/mob/living/living_mobility.dm @@ -67,7 +67,7 @@ standupwarning = "[src] struggles to stand up." var/usernotice = automatic ? "You are now getting up. (Auto)" : "You are now getting up." visible_message("[standupwarning]", usernotice, vision_distance = 5) - if(do_after(src, totaldelay, target = src)) + if(do_after(src, totaldelay, target = src, required_mobility_flags = MOBILITY_MOVE)) set_resting(FALSE, FALSE) attemptingstandup = FALSE return TRUE diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human.dm b/modular_citadel/code/modules/mob/living/carbon/human/human.dm index 9993b70d6a..ee88fcb277 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/human.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/human.dm @@ -25,4 +25,3 @@ if(!has_embedded_objects()) clear_alert("embeddedobject") SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "embedded") - return