diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index 79bb5c51f994..2300e1bc3f0a 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -189,6 +189,9 @@ /// The ITEM_SLOT_* to equip to. var/item_slot +/datum/strippable_item/proc/has_no_item_alt_action() + return FALSE + /datum/strippable_item/mob_item_slot/get_item(atom/source) if (!ismob(source)) return null @@ -357,6 +360,9 @@ var/obj/item/item = item_data.get_item(owner) if (isnull(item)) + if (item_data.has_no_item_alt_action()) + LAZYINITLIST(result) + result["no_item_action"] = item_data.get_alternate_action(owner, user) items[strippable_key] = result continue @@ -489,7 +495,7 @@ return var/item = strippable_item.get_item(owner) - if (isnull(item)) + if (isnull(item) && !strippable_item.has_no_item_alt_action()) return if (isnull(strippable_item.get_alternate_action(owner, user))) diff --git a/code/modules/mob/living/carbon/human/human_stripping.dm b/code/modules/mob/living/carbon/human/human_stripping.dm index 6999adf94f4b..f325db4d03ee 100644 --- a/code/modules/mob/living/carbon/human/human_stripping.dm +++ b/code/modules/mob/living/carbon/human/human_stripping.dm @@ -145,6 +145,9 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( key = STRIPPABLE_ITEM_SUIT item_slot = SLOT_OCLOTHING +/datum/strippable_item/mob_item_slot/suit/has_no_item_alt_action() + return TRUE + /datum/strippable_item/mob_item_slot/suit/get_alternate_action(atom/source, mob/user) if(!ishuman(source)) return diff --git a/tgui/packages/tgui/interfaces/StripMenu.tsx b/tgui/packages/tgui/interfaces/StripMenu.tsx index f7ee684a9670..f60e2b0650ca 100644 --- a/tgui/packages/tgui/interfaces/StripMenu.tsx +++ b/tgui/packages/tgui/interfaces/StripMenu.tsx @@ -219,6 +219,9 @@ type StripMenuItem = | { obscured: ObscuringLevel; } + | { + no_item_action: string; + } ) & Partial); @@ -307,6 +310,9 @@ export const StripMenu = (props, context) => { ); tooltip = `obscured ${slot.displayName}`; + } else if ('no_item_action' in item) { + tooltip = slot.displayName; + alternateAction = ALTERNATE_ACTIONS[item.no_item_action]; } return (