From 296ca23aa1d8531fba291eb9b802b7282fee657b Mon Sep 17 00:00:00 2001 From: Jacquerel Date: Mon, 20 Feb 2023 22:47:31 +0000 Subject: [PATCH] Most actions cannot be used while incapacitated (#73513) ## About The Pull Request Fixes #39775 The `TRAIT_INCAPACITATED` trait is intended to block you from acting but does not inherently block actions. Actions only check for "conscious", "has available hands", "immobile", or "lying down". Most actions still _can't_ be used while incapacitated. This is because most actions are spells, most spells have invocations, and you can't talk while you are incapacitated. This is silly. I have resolved this by adding a new flag which blocks actions while incapacitated. This is somewhat redundant with "conscious" because most sources of that also make you incapacitated but not _always_, you might want the specificity. I have tried to be discerning about where this flag is applied, it is not in all cases (for instance you can still swallow implanted pills while incapacitated and such), but it's not only possible but I can't really avoid implementing this without it being a balance change in _some_ cases, Actions this effects are things such as: Xenomorph Tail Sweep, Lesser Magic Missile (cult constucts), Heretic Shadow Cloak, the Smoke spell in general, Conjuring (but not firing) Infinite Guns, Mime spells Times when these actions will no longer be available but were previously are such times as when the mob is: Stamina Crit, Stunned, Paralysis, and Time Stopped. ## Why It's Good For The Game The incapacitated trait is applied by effects which should block acting but still permits several actions which logically would be prevented. This fortunately hasn't come up too often due to the high ratio of actions with invocations, but it feels bad to stun someone and then have them still able to perform an action they logically wouldn't be able to take while stunned. This is especially egregious in the case of Time Stop (the only way to stun a lot of the mobs effected by this) but that's a rare pick on a rare antagonist and would also rarely be used on these mobs, so a bit of an edge case. ## Changelog :cl: fix: Many spell-like abilities which could be stunned, paralysed, or frozen in time now cannot be. /:cl: --- code/__DEFINES/actions.dm | 2 ++ code/datums/actions/action.dm | 7 +++++++ code/datums/actions/item_action.dm | 2 +- code/datums/actions/items/stealth_box.dm | 2 +- code/modules/antagonists/cult/cult_comms.dm | 2 +- .../modules/antagonists/heretic/magic/rust_construction.dm | 2 +- .../antagonists/wizard/grand_ritual/grand_ritual.dm | 2 +- code/modules/clothing/chameleon.dm | 2 +- .../space_fauna/giant_spider/spider_abilities/lay_eggs.dm | 2 +- .../basic/space_fauna/giant_spider/spider_abilities/web.dm | 2 +- .../space_fauna/giant_spider/spider_abilities/wrap.dm | 2 +- code/modules/mob/living/carbon/alien/adult/alien_powers.dm | 2 +- code/modules/mob/living/simple_animal/hostile/goose.dm | 2 +- code/modules/mob/living/simple_animal/hostile/ooze.dm | 6 +++--- code/modules/mob/living/simple_animal/hostile/regalrat.dm | 4 ++-- .../mob/living/simple_animal/hostile/retaliate/clown.dm | 2 +- code/modules/mob/living/simple_animal/hostile/vatbeast.dm | 2 +- code/modules/power/singularity/emitter.dm | 2 +- code/modules/spells/spell.dm | 2 +- code/modules/spells/spell_types/conjure/invisible_chair.dm | 2 +- code/modules/spells/spell_types/conjure/invisible_wall.dm | 2 +- .../spells/spell_types/conjure_item/invisible_box.dm | 2 +- code/modules/spells/spell_types/pointed/finger_guns.dm | 2 +- code/modules/spells/spell_types/self/forcewall.dm | 2 +- code/modules/spells/spell_types/touch/_touch.dm | 2 +- .../surgery/organs/external/wings/functional_wings.dm | 2 +- 26 files changed, 36 insertions(+), 27 deletions(-) diff --git a/code/__DEFINES/actions.dm b/code/__DEFINES/actions.dm index 971e3441577..10e3baac4e7 100644 --- a/code/__DEFINES/actions.dm +++ b/code/__DEFINES/actions.dm @@ -6,6 +6,8 @@ #define AB_CHECK_LYING (1<<2) ///Action button checks if user is conscious #define AB_CHECK_CONSCIOUS (1<<3) +///Action button checks if user is incapacitated +#define AB_CHECK_INCAPACITATED (1<<4) DEFINE_BITFIELD(check_flags, list( "CHECK IF HANDS BLOCKED" = AB_CHECK_HANDS_BLOCKED, diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm index 9f427ca4f7c..0dc44b46640 100644 --- a/code/datums/actions/action.dm +++ b/code/datums/actions/action.dm @@ -95,6 +95,8 @@ // so that our button icon updates when relevant if(check_flags & AB_CHECK_CONSCIOUS) RegisterSignal(owner, COMSIG_MOB_STATCHANGE, PROC_REF(update_status_on_signal)) + if(check_flags & AB_CHECK_INCAPACITATED) + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_INCAPACITATED), PROC_REF(update_status_on_signal)) if(check_flags & AB_CHECK_IMMOBILE) RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_IMMOBILIZED), PROC_REF(update_status_on_signal)) if(check_flags & AB_CHECK_HANDS_BLOCKED) @@ -127,6 +129,7 @@ COMSIG_MOB_STATCHANGE, SIGNAL_ADDTRAIT(TRAIT_HANDS_BLOCKED), SIGNAL_ADDTRAIT(TRAIT_IMMOBILIZED), + SIGNAL_ADDTRAIT(TRAIT_INCAPACITATED), )) if(target == owner) @@ -157,6 +160,10 @@ if (feedback) owner.balloon_alert(owner, "can't move!") return FALSE + if((check_flags & AB_CHECK_INCAPACITATED) && HAS_TRAIT(owner, TRAIT_INCAPACITATED)) + if (feedback) + owner.balloon_alert(owner, "incapacitated!") + return FALSE if((check_flags & AB_CHECK_LYING) && isliving(owner)) var/mob/living/action_owner = owner if(action_owner.body_position == LYING_DOWN) diff --git a/code/datums/actions/item_action.dm b/code/datums/actions/item_action.dm index 6d7beec65e2..9f40c72b44b 100644 --- a/code/datums/actions/item_action.dm +++ b/code/datums/actions/item_action.dm @@ -1,7 +1,7 @@ //Presets for item actions /datum/action/item_action name = "Item Action" - check_flags = AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS button_icon_state = null /datum/action/item_action/New(Target) diff --git a/code/datums/actions/items/stealth_box.dm b/code/datums/actions/items/stealth_box.dm index 9d1c6276511..bf297e4e1c2 100644 --- a/code/datums/actions/items/stealth_box.dm +++ b/code/datums/actions/items/stealth_box.dm @@ -2,7 +2,7 @@ /datum/action/item_action/agent_box name = "Deploy Box" desc = "Find inner peace, here, in the box." - check_flags = AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS background_icon_state = "bg_agent" overlay_icon_state = "bg_agent_border" button_icon = 'icons/mob/actions/actions_items.dmi' diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 23d4b2a7632..674465c9743 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -6,7 +6,7 @@ overlay_icon_state = "bg_demon_border" buttontooltipstyle = "cult" - check_flags = AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' /datum/action/innate/cult/IsAvailable(feedback = FALSE) diff --git a/code/modules/antagonists/heretic/magic/rust_construction.dm b/code/modules/antagonists/heretic/magic/rust_construction.dm index 3556689baa3..08973093da0 100644 --- a/code/modules/antagonists/heretic/magic/rust_construction.dm +++ b/code/modules/antagonists/heretic/magic/rust_construction.dm @@ -5,7 +5,7 @@ overlay_icon_state = "bg_heretic_border" button_icon_state = "shield" ranged_mousepointer = 'icons/effects/mouse_pointers/throw_target.dmi' - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED school = SCHOOL_FORBIDDEN cooldown_time = 5 SECONDS diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm index bd4a0b1b0d8..ce1d89edcc6 100644 --- a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm +++ b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm @@ -17,7 +17,7 @@ name = "Grand Ritual" desc = "Provides direction to a nexus of power, then draws a rune in that location for completing the Grand Ritual. \ The ritual process will take longer each time it is completed." - check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED | AB_CHECK_HANDS_BLOCKED background_icon_state = "bg_spell" button_icon = 'icons/mob/actions/actions_cult.dmi' button_icon_state = "draw" diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 335f88112a6..2f914535177 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -137,7 +137,7 @@ /datum/action/item_action/chameleon/change name = "Chameleon Change" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED var/list/chameleon_blacklist = list() //This is a typecache var/list/chameleon_list = list() var/chameleon_type = null diff --git a/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/lay_eggs.dm b/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/lay_eggs.dm index 518ac036bca..0fb1170c607 100644 --- a/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/lay_eggs.dm +++ b/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/lay_eggs.dm @@ -5,7 +5,7 @@ button_icon_state = "lay_eggs" background_icon_state = "bg_alien" overlay_icon_state = "bg_alien_border" - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED ///How long it takes for a broodmother to lay eggs. var/egg_lay_time = 12 SECONDS ///The type of egg we create diff --git a/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/web.dm b/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/web.dm index 1c70131ffd7..45e44a3e4f1 100644 --- a/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/web.dm +++ b/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/web.dm @@ -6,7 +6,7 @@ button_icon_state = "lay_web" background_icon_state = "bg_alien" overlay_icon_state = "bg_alien_border" - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED cooldown_time = 0 SECONDS /// How long it takes to lay a web var/webbing_time = 4 SECONDS diff --git a/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/wrap.dm b/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/wrap.dm index 66653c7529e..2c49f5747c7 100644 --- a/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/wrap.dm +++ b/code/modules/mob/living/basic/space_fauna/giant_spider/spider_abilities/wrap.dm @@ -8,7 +8,7 @@ overlay_icon_state = "bg_alien_border" button_icon = 'icons/mob/actions/actions_animal.dmi' button_icon_state = "wrap_0" - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED click_to_activate = TRUE ranged_mousepointer = 'icons/effects/mouse_pointers/wrap_target.dmi' /// The time it takes to wrap something. diff --git a/code/modules/mob/living/carbon/alien/adult/alien_powers.dm b/code/modules/mob/living/carbon/alien/adult/alien_powers.dm index e135154877c..c83e2af7487 100644 --- a/code/modules/mob/living/carbon/alien/adult/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/adult/alien_powers.dm @@ -13,7 +13,7 @@ Doesn't work on other aliens/AI.*/ overlay_icon_state = "bg_alien_border" button_icon = 'icons/mob/actions/actions_xeno.dmi' button_icon_state = "spell_default" - check_flags = AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_IMMOBILE | AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED melee_cooldown_time = 0 SECONDS /// How much plasma this action uses. diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm index eb08c3b15df..b56816e13f7 100644 --- a/code/modules/mob/living/simple_animal/hostile/goose.dm +++ b/code/modules/mob/living/simple_animal/hostile/goose.dm @@ -246,7 +246,7 @@ /datum/action/cooldown/vomit name = "Vomit" - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED button_icon_state = "vomit" button_icon = 'icons/mob/simple/animal.dmi' cooldown_time = 250 diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.dm b/code/modules/mob/living/simple_animal/hostile/ooze.dm index b57093e5671..5184b5e3fad 100644 --- a/code/modules/mob/living/simple_animal/hostile/ooze.dm +++ b/code/modules/mob/living/simple_animal/hostile/ooze.dm @@ -195,7 +195,7 @@ overlay_icon_state = "bg_hive_border" button_icon = 'icons/mob/actions/actions_slime.dmi' button_icon_state = "consume" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_IMMOBILE + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_IMMOBILE|AB_CHECK_INCAPACITATED ///The mob thats being consumed by this creature var/mob/living/vored_mob @@ -303,7 +303,7 @@ overlay_icon_state = "bg_hive_border" button_icon = 'icons/mob/actions/actions_slime.dmi' button_icon_state = "globules" - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_INCAPACITATED cooldown_time = 5 SECONDS click_to_activate = TRUE @@ -419,7 +419,7 @@ overlay_icon_state = "bg_hive_border" button_icon = 'icons/mob/actions/actions_slime.dmi' button_icon_state = "gel_cocoon" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_IMMOBILE + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_IMMOBILE|AB_CHECK_INCAPACITATED cooldown_time = 10 SECONDS /datum/action/cooldown/gel_cocoon/Activate(atom/target) diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm index 225f88e030b..c3cfe621bfa 100644 --- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm +++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm @@ -203,7 +203,7 @@ /datum/action/cooldown/domain name = "Rat King's Domain" desc = "Corrupts this area to be more suitable for your rat army." - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_INCAPACITATED cooldown_time = 6 SECONDS melee_cooldown_time = 0 SECONDS button_icon = 'icons/mob/actions/actions_animal.dmi' @@ -237,7 +237,7 @@ /datum/action/cooldown/riot name = "Raise Army" desc = "Raise an army out of the hordes of mice and pests crawling around the maintenance shafts." - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_INCAPACITATED button_icon = 'icons/mob/actions/actions_animal.dmi' button_icon_state = "riot" background_icon_state = "bg_clock" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index 9597dff77b6..6285cb4031a 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -480,7 +480,7 @@ overlay_icon_state = "bg_changeling_border" button_icon = 'icons/mob/actions/actions_animal.dmi' button_icon_state = "regurgitate" - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_INCAPACITATED melee_cooldown_time = 0 SECONDS click_to_activate = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/vatbeast.dm b/code/modules/mob/living/simple_animal/hostile/vatbeast.dm index 4df4b7bcd75..7c6edeb88da 100644 --- a/code/modules/mob/living/simple_animal/hostile/vatbeast.dm +++ b/code/modules/mob/living/simple_animal/hostile/vatbeast.dm @@ -51,7 +51,7 @@ overlay_icon_state = "bg_revenant_border" button_icon = 'icons/mob/actions/actions_animal.dmi' button_icon_state = "tentacle_slap" - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_INCAPACITATED cooldown_time = 12 SECONDS melee_cooldown_time = 0 SECONDS click_to_activate = TRUE diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index c7e9c806c85..7a03d21afb5 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -425,7 +425,7 @@ auto.Grant(buckled_mob, src) /datum/action/innate/proto_emitter - check_flags = AB_CHECK_HANDS_BLOCKED | AB_CHECK_IMMOBILE | AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_HANDS_BLOCKED | AB_CHECK_IMMOBILE | AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED ///Stores the emitter the user is currently buckled on var/obj/machinery/power/emitter/prototype/proto_emitter ///Stores the mob instance that is buckled to the emitter diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 8bc805bf5e2..29e19d85b99 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -48,7 +48,7 @@ button_icon_state = "spell_default" overlay_icon_state = "bg_spell_border" active_overlay_icon_state = "bg_spell_border_active_red" - check_flags = AB_CHECK_CONSCIOUS + check_flags = AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED panel = "Spells" melee_cooldown_time = 0 SECONDS diff --git a/code/modules/spells/spell_types/conjure/invisible_chair.dm b/code/modules/spells/spell_types/conjure/invisible_chair.dm index 6a987be0fea..125cd4cf75f 100644 --- a/code/modules/spells/spell_types/conjure/invisible_chair.dm +++ b/code/modules/spells/spell_types/conjure/invisible_chair.dm @@ -5,7 +5,7 @@ overlay_icon_state = "bg_mime_border" button_icon = 'icons/mob/actions/actions_mime.dmi' button_icon_state = "invisible_chair" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED|AB_CHECK_INCAPACITATED panel = "Mime" sound = null diff --git a/code/modules/spells/spell_types/conjure/invisible_wall.dm b/code/modules/spells/spell_types/conjure/invisible_wall.dm index f081ef1021b..a61db7cf74e 100644 --- a/code/modules/spells/spell_types/conjure/invisible_wall.dm +++ b/code/modules/spells/spell_types/conjure/invisible_wall.dm @@ -5,7 +5,7 @@ overlay_icon_state = "bg_mime_border" button_icon = 'icons/mob/actions/actions_mime.dmi' button_icon_state = "invisible_wall" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED|AB_CHECK_INCAPACITATED panel = "Mime" sound = null diff --git a/code/modules/spells/spell_types/conjure_item/invisible_box.dm b/code/modules/spells/spell_types/conjure_item/invisible_box.dm index 3ff8abdded9..af6d5586af2 100644 --- a/code/modules/spells/spell_types/conjure_item/invisible_box.dm +++ b/code/modules/spells/spell_types/conjure_item/invisible_box.dm @@ -7,7 +7,7 @@ overlay_icon_state = "bg_mime_border" button_icon = 'icons/mob/actions/actions_mime.dmi' button_icon_state = "invisible_box" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED|AB_CHECK_INCAPACITATED panel = "Mime" sound = null diff --git a/code/modules/spells/spell_types/pointed/finger_guns.dm b/code/modules/spells/spell_types/pointed/finger_guns.dm index 5f1271b7b81..feb47f2d882 100644 --- a/code/modules/spells/spell_types/pointed/finger_guns.dm +++ b/code/modules/spells/spell_types/pointed/finger_guns.dm @@ -6,7 +6,7 @@ overlay_icon_state = "bg_mime_border" button_icon = 'icons/mob/actions/actions_mime.dmi' button_icon_state = "finger_guns0" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED|AB_CHECK_INCAPACITATED panel = "Mime" sound = null diff --git a/code/modules/spells/spell_types/self/forcewall.dm b/code/modules/spells/spell_types/self/forcewall.dm index feab8f305c0..761860f4099 100644 --- a/code/modules/spells/spell_types/self/forcewall.dm +++ b/code/modules/spells/spell_types/self/forcewall.dm @@ -49,7 +49,7 @@ overlay_icon_state = "bg_mime_border" button_icon = 'icons/mob/actions/actions_mime.dmi' button_icon_state = "invisible_blockade" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED|AB_CHECK_INCAPACITATED panel = "Mime" sound = null diff --git a/code/modules/spells/spell_types/touch/_touch.dm b/code/modules/spells/spell_types/touch/_touch.dm index 6fab59c54ef..4428eddaf24 100644 --- a/code/modules/spells/spell_types/touch/_touch.dm +++ b/code/modules/spells/spell_types/touch/_touch.dm @@ -19,7 +19,7 @@ * (generally) inadvisable unless you know what you're doing */ /datum/action/cooldown/spell/touch - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED|AB_CHECK_INCAPACITATED sound = 'sound/items/welder.ogg' invocation = "High Five!" invocation_type = INVOCATION_SHOUT diff --git a/code/modules/surgery/organs/external/wings/functional_wings.dm b/code/modules/surgery/organs/external/wings/functional_wings.dm index 902f2b6b6ac..a49b7264019 100644 --- a/code/modules/surgery/organs/external/wings/functional_wings.dm +++ b/code/modules/surgery/organs/external/wings/functional_wings.dm @@ -1,7 +1,7 @@ ///hud action for starting and stopping flight /datum/action/innate/flight name = "Toggle Flight" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_IMMOBILE + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_IMMOBILE|AB_CHECK_INCAPACITATED button_icon = 'icons/mob/actions/actions_items.dmi' button_icon_state = "flight"