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 971e34415771a..10e3baac4e7ea 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 9f427ca4f7ca3..0dc44b4664014 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 6d7beec65e2bb..9f40c72b44b35 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 9d1c6276511b8..bf297e4e1c2f2 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 23d4b2a763299..674465c974358 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 3556689baa351..08973093da09b 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 bd4a0b1b0d81e..ce1d89edcc611 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 335f88112a682..2f914535177e9 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 518ac036bca35..0fb1170c607de 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 1c70131ffd73d..45e44a3e4f19d 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 66653c7529ec7..2c49f5747c7b7 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 e135154877cdc..c83e2af7487a5 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 eb08c3b15df62..b56816e13f7b8 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 b57093e567126..5184b5e3fadff 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 225f88e030b6d..c3cfe621bfa45 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 9597dff77b63c..6285cb4031a43 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 4df4b7bcd7590..7c6edeb88da4a 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 c7e9c806c851a..7a03d21afb560 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 8bc805bf5e237..29e19d85b9985 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 6a987be0fea61..125cd4cf75ff0 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 f081ef1021b5c..a61db7cf74e19 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 3ff8abdded9d8..af6d5586af25e 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 5f1271b7b8191..feb47f2d88286 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 feab8f305c02f..761860f4099f7 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 6fab59c54ef98..4428eddaf2448 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 902f2b6b6ac4a..a49b72640191b 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"