From d10b24abdd958ffc82cefa3cbc001d8dd618f5cf Mon Sep 17 00:00:00 2001 From: Lucy Date: Wed, 5 Feb 2025 18:53:26 -0500 Subject: [PATCH] Fix blades equipped to a void cloak having visible sprites --- code/__DEFINES/obj_flags.dm | 13 ++++----- code/__DEFINES/traits/declarations.dm | 6 ++++ code/_globalvars/bitfields.dm | 1 - code/_globalvars/traits/_traits.dm | 4 ++- code/datums/brain_damage/phobia.dm | 3 +- code/datums/elements/dextrous.dm | 2 +- code/datums/elements/strippable.dm | 2 +- code/game/objects/items.dm | 3 ++ .../heretic/items/heretic_armor.dm | 17 ++++------- .../antagonists/traitor/objectives/steal.dm | 5 +++- code/modules/clothing/head/wig.dm | 4 +-- .../modules/hallucination/inhand_fake_item.dm | 4 +-- code/modules/mob/living/basic/drone/_drone.dm | 2 +- code/modules/mob/living/carbon/examine.dm | 2 +- .../mob/living/carbon/human/examine.dm | 28 +++++++++---------- code/modules/mod/modules/modules_antag.dm | 4 +-- .../code/datums/components/basic_inhands.dm | 2 +- .../heretic/status_effects/mark_effects.dm | 2 +- 18 files changed, 55 insertions(+), 49 deletions(-) diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index e9e1ad4260fb..00aeccd45589 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -32,17 +32,16 @@ #define IN_STORAGE (1<<11) //is this item in the storage item, such as backpack? used for tooltips #define SURGICAL_TOOL (1<<12) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes) #define HAND_ITEM (1<<14) // If an item is just your hand (circled hand, slapper) and shouldn't block things like riding -#define EXAMINE_SKIP (1<<15) // Makes the Examine proc not read out this item. -#define XENOMORPH_HOLDABLE (1<<16) // A Xenomorph can hold this item. -#define NO_PIXEL_RANDOM_DROP (1<<17) //if dropped, it wont have a randomized pixel_x/pixel_y +#define XENOMORPH_HOLDABLE (1<<15) // A Xenomorph can hold this item. +#define NO_PIXEL_RANDOM_DROP (1<<16) //if dropped, it wont have a randomized pixel_x/pixel_y ///Can be equipped on digitigrade legs. -#define IGNORE_DIGITIGRADE (1<<18) +#define IGNORE_DIGITIGRADE (1<<17) /// Has contextual screentips when HOVERING OVER OTHER objects -#define ITEM_HAS_CONTEXTUAL_SCREENTIPS (1 << 19) +#define ITEM_HAS_CONTEXTUAL_SCREENTIPS (1 << 18) /// No blood overlay is allowed to appear on this item, and it cannot gain blood DNA forensics -#define NO_BLOOD_ON_ITEM (1 << 20) +#define NO_BLOOD_ON_ITEM (1 << 19) /// Whether this item should skip the /datum/component/fantasy applied on spawn on the RPG event. Used on things like stacks -#define SKIP_FANTASY_ON_SPAWN (1<<21) +#define SKIP_FANTASY_ON_SPAWN (1<<20) // Flags for the clothing_flags var on /obj/item/clothing diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index a95666ae6a79..99fcb40987c2 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -819,6 +819,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_HAUNTED "haunted" /// An item that, if it has contents, will ignore its contents when scanning for contraband. /* #define TRAIT_CONTRABAND_BLOCKER "contraband_blocker" */ +/// For edible items that cannot be composted inside hydro trays +/* #define TRAIT_UNCOMPOSTABLE "uncompostable" */ +/// Items with this trait will not have their worn icon overlayed. +#define TRAIT_NO_WORN_ICON "no_worn_icon" +/// Items with this trait will not appear when examined. +#define TRAIT_EXAMINE_SKIP "examine_skip" //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 6ba9abe8173d..749277b71423 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -183,7 +183,6 @@ DEFINE_BITFIELD(item_flags, list( "ABSTRACT" = ABSTRACT, "BEING_REMOVED" = BEING_REMOVED, "DROPDEL" = DROPDEL, - "EXAMINE_SKIP" = EXAMINE_SKIP, "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, "HAND_ITEM" = HAND_ITEM, "IGNORE_DIGITIGRADE" = IGNORE_DIGITIGRADE, diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index e94894cdf5b3..339e0569e5d9 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -257,7 +257,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_GENELESS" = TRAIT_GENELESS, "TRAIT_GHOST_CRITTER" = TRAIT_GHOST_CRITTER, "TRAIT_GIANT" = TRAIT_GIANT, - "TRAIT_GODMODE" = TRAIT_GODMODE, + "TRAIT_GODMODE" = TRAIT_GODMODE, "TRAIT_GONE_FISHING" = TRAIT_GONE_FISHING, "TRAIT_GOURMAND" = TRAIT_GOURMAND, "TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS, @@ -625,6 +625,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_BYPASS_COMPRESS_CHECK" = TRAIT_BYPASS_COMPRESS_CHECK, "TRAIT_CUSTOM_TAP_SOUND" = TRAIT_CUSTOM_TAP_SOUND, "TRAIT_DANGEROUS_OBJECT" = TRAIT_DANGEROUS_OBJECT, + "TRAIT_EXAMINE_SKIP" = TRAIT_EXAMINE_SKIP, "TRAIT_FEATHERED" = TRAIT_FEATHERED, "TRAIT_FISHING_BAIT" = TRAIT_FISHING_BAIT, "TRAIT_FOOD_GRILLED" = TRAIT_FOOD_GRILLED, @@ -640,6 +641,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_MAY_CONTAIN_BLENDED_DUST" = TRAIT_MAY_CONTAIN_BLENDED_DUST, "TRAIT_NEEDS_TWO_HANDS" = TRAIT_NEEDS_TWO_HANDS, "TRAIT_NODROP" = TRAIT_NODROP, + "TRAIT_NO_WORN_ICON" = TRAIT_NO_WORN_ICON, "TRAIT_NON_IMPORTANT_SHOE_BLOCK" = TRAIT_NON_IMPORTANT_SHOE_BLOCK, "TRAIT_NO_BARCODES" = TRAIT_NO_BARCODES, "TRAIT_NO_ORGAN_DECAY" = TRAIT_NO_ORGAN_DECAY, diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index a9da00472956..47c8f8e3b3ae 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -86,8 +86,7 @@ return FALSE if (!isitem(checked)) return TRUE - var/obj/item/checked_item = checked - return !(checked_item.item_flags & EXAMINE_SKIP) + return !HAS_TRAIT(checked, TRAIT_EXAMINE_SKIP) /datum/brain_trauma/mild/phobia/handle_hearing(datum/source, list/hearing_args) if(!owner.can_hear() || owner == hearing_args[HEARING_SPEAKER] || !owner.has_language(hearing_args[HEARING_LANGUAGE])) //words can't trigger you if you can't hear them *taps head* diff --git a/code/datums/elements/dextrous.dm b/code/datums/elements/dextrous.dm index 17d871481e97..192a9cd4c031 100644 --- a/code/datums/elements/dextrous.dm +++ b/code/datums/elements/dextrous.dm @@ -75,7 +75,7 @@ /datum/element/dextrous/proc/on_examined(mob/living/examined, mob/user, list/examine_list) SIGNAL_HANDLER for(var/obj/item/held_item in examined.held_items) - if(held_item.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) + if((held_item.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_item, TRAIT_EXAMINE_SKIP)) continue examine_list += span_info("[examined.p_They()] [examined.p_have()] [held_item.get_examine_string(user)] in [examined.p_their()] \ [examined.get_held_index_name(examined.get_held_index_of_item(held_item))].") diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index e73916ce1d89..51adc340ee62 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -342,7 +342,7 @@ continue var/obj/item/item = item_data.get_item(owner) - if (isnull(item) || (HAS_TRAIT(item, TRAIT_NO_STRIP) || (item.item_flags & EXAMINE_SKIP))) + if (isnull(item) || HAS_TRAIT(item, TRAIT_NO_STRIP) || HAS_TRAIT(item, TRAIT_EXAMINE_SKIP)) items[strippable_key] = result continue diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 5b0541cef3a2..1429ef35b7f2 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -685,6 +685,7 @@ if(item_flags & DROPDEL && !QDELETED(src)) qdel(src) item_flags &= ~IN_INVENTORY + UnregisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON), SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON))) SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user) if(user && iscarbon(user)) SEND_SIGNAL(user, COMSIG_CARBON_ITEM_DROPPED, src) @@ -753,6 +754,7 @@ give_item_action(action, user, slot) item_flags |= IN_INVENTORY + RegisterSignals(src, list(SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON), SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON)), PROC_REF(update_slot_icon), override = TRUE) if(!initial) if(equip_sound && (slot_flags & slot)) playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE, mixer_channel = equip_mixer_channel) // monkestation: sound mixer @@ -911,6 +913,7 @@ return null /obj/item/proc/update_slot_icon() + SIGNAL_HANDLER if(!ismob(loc)) return var/mob/owner = loc diff --git a/code/modules/antagonists/heretic/items/heretic_armor.dm b/code/modules/antagonists/heretic/items/heretic_armor.dm index 4aa9d90278ce..4dccb4de6724 100644 --- a/code/modules/antagonists/heretic/items/heretic_armor.dm +++ b/code/modules/antagonists/heretic/items/heretic_armor.dm @@ -56,7 +56,6 @@ icon_state = "void_cloak" flags_inv = NONE flags_cover = NONE - item_flags = EXAMINE_SKIP clothing_flags = STOPSPRESSUREDAMAGE armor_type = /datum/armor/cult_hoodie_void @@ -70,7 +69,7 @@ /obj/item/clothing/head/hooded/cult_hoodie/void/Initialize(mapload) . = ..() - ADD_TRAIT(src, TRAIT_NO_STRIP, REF(src)) + add_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), INNATE_TRAIT) /obj/item/clothing/suit/hooded/cultrobes/void name = "void cloak" @@ -113,17 +112,15 @@ /obj/item/clothing/suit/hooded/cultrobes/void/proc/hide_item(datum/source, obj/item/item, slot) SIGNAL_HANDLER if(slot & ITEM_SLOT_SUITSTORE) - ADD_TRAIT(item, TRAIT_NO_STRIP, REF(src)) // i'd use examine hide but its a flag and yeah + item.add_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP, TRAIT_NO_WORN_ICON), REF(src)) /obj/item/clothing/suit/hooded/cultrobes/void/proc/show_item(datum/source, obj/item/item, slot) SIGNAL_HANDLER - REMOVE_TRAIT(item, TRAIT_NO_STRIP, REF(src)) + item.remove_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP, TRAIT_NO_WORN_ICON), REF(src)) /obj/item/clothing/suit/hooded/cultrobes/void/examine(mob/user) . = ..() - if(!IS_HERETIC(user)) - return - if(!hood_up) + if(!IS_HERETIC(user) || !hood_up) return // Let examiners know this works as a focus only if the hood is down @@ -149,8 +146,7 @@ /// Makes our cloak "invisible". Not the wearer, the cloak itself. /obj/item/clothing/suit/hooded/cultrobes/void/proc/make_invisible() - item_flags |= EXAMINE_SKIP - ADD_TRAIT(src, TRAIT_NO_STRIP, REF(src)) + add_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), REF(src)) RemoveElement(/datum/element/heretic_focus) if(isliving(loc)) @@ -159,8 +155,7 @@ /// Makes our cloak "visible" again. /obj/item/clothing/suit/hooded/cultrobes/void/proc/make_visible() - item_flags &= ~EXAMINE_SKIP - REMOVE_TRAIT(src, TRAIT_NO_STRIP, REF(src)) + remove_traits(list(TRAIT_NO_STRIP, TRAIT_EXAMINE_SKIP), REF(src)) AddElement(/datum/element/heretic_focus) if(isliving(loc)) diff --git a/code/modules/antagonists/traitor/objectives/steal.dm b/code/modules/antagonists/traitor/objectives/steal.dm index ea177f343e16..e7965333ed24 100644 --- a/code/modules/antagonists/traitor/objectives/steal.dm +++ b/code/modules/antagonists/traitor/objectives/steal.dm @@ -253,7 +253,6 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new()) /obj/item/traitor_bug name = "suspicious device" desc = "It looks dangerous." - item_flags = EXAMINE_SKIP icon = 'icons/obj/device_syndie.dmi' icon_state = "bug" @@ -265,6 +264,10 @@ GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new()) /// The time it takes to place this bug. var/deploy_time = 10 SECONDS +/obj/item/traitor_bug/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_EXAMINE_SKIP, INNATE_TRAIT) + /obj/item/traitor_bug/examine(mob/user) . = ..() if(planted_on) diff --git a/code/modules/clothing/head/wig.dm b/code/modules/clothing/head/wig.dm index 93f3960851fa..bfe24ebf72ef 100644 --- a/code/modules/clothing/head/wig.dm +++ b/code/modules/clothing/head/wig.dm @@ -18,11 +18,11 @@ /obj/item/clothing/head/wig/equipped(mob/user, slot) . = ..() if(ishuman(user) && (slot & ITEM_SLOT_HEAD)) - item_flags |= EXAMINE_SKIP + ADD_TRAIT(src, TRAIT_EXAMINE_SKIP, CLOTHING_TRAIT) /obj/item/clothing/head/wig/dropped(mob/user) . = ..() - item_flags &= ~EXAMINE_SKIP + REMOVE_TRAIT(src, TRAIT_EXAMINE_SKIP, CLOTHING_TRAIT) /obj/item/clothing/head/wig/update_icon_state() var/datum/sprite_accessory/hair_style = GLOB.roundstart_hairstyles_list[hairstyle] diff --git a/code/modules/hallucination/inhand_fake_item.dm b/code/modules/hallucination/inhand_fake_item.dm index 8f1a720cf0df..d248f394f704 100644 --- a/code/modules/hallucination/inhand_fake_item.dm +++ b/code/modules/hallucination/inhand_fake_item.dm @@ -118,7 +118,7 @@ name = "mirage" plane = ABOVE_HUD_PLANE interaction_flags_item = NONE - item_flags = ABSTRACT | DROPDEL | EXAMINE_SKIP | HAND_ITEM | NOBLUDGEON // Most of these flags don't matter, but better safe than sorry + item_flags = ABSTRACT | DROPDEL | HAND_ITEM | NOBLUDGEON // Most of these flags don't matter, but better safe than sorry resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /// The hallucination that created us. var/datum/hallucination/parent @@ -132,7 +132,7 @@ RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(parent_deleting)) src.parent = parent - ADD_TRAIT(src, TRAIT_NODROP, INNATE_TRAIT) + add_traits(list(TRAIT_NODROP, TRAIT_EXAMINE_SKIP), INNATE_TRAIT) /obj/item/hallucinated/Destroy(force) UnregisterSignal(parent, COMSIG_QDELETING) diff --git a/code/modules/mob/living/basic/drone/_drone.dm b/code/modules/mob/living/basic/drone/_drone.dm index d9ebbb8b1ca2..9e2b22ef9e3c 100644 --- a/code/modules/mob/living/basic/drone/_drone.dm +++ b/code/modules/mob/living/basic/drone/_drone.dm @@ -269,7 +269,7 @@ //Hands for(var/obj/item/held_thing in held_items) - if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) + if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP)) continue . += "It has [held_thing.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(held_thing))]." diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 586058cc7891..6780737507b2 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -19,7 +19,7 @@ . += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck." for(var/obj/item/held_thing in held_items) - if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) + if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP)) continue . += "[t_He] [t_is] holding [held_thing.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(held_thing))]." diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 046837b18a9f..bc74a48d656f 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -29,7 +29,7 @@ var/obscured = check_obscured_slots() //uniform - if(w_uniform && !(obscured & ITEM_SLOT_ICLOTHING) && !(w_uniform.item_flags & EXAMINE_SKIP)) + if(w_uniform && !(obscured & ITEM_SLOT_ICLOTHING) && !HAS_TRAIT(w_uniform, TRAIT_EXAMINE_SKIP)) //accessory var/accessory_message = "" if(istype(w_uniform, /obj/item/clothing/under)) @@ -40,26 +40,26 @@ . += "[t_He] [t_is] wearing [w_uniform.get_examine_string(user)][accessory_message]." //head - if(head && !(obscured & ITEM_SLOT_HEAD) && !(head.item_flags & EXAMINE_SKIP)) + if(head && !(obscured & ITEM_SLOT_HEAD) && !HAS_TRAIT(head, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [head.get_examine_string(user)] on [t_his] head." //suit/armor - if(wear_suit && !(wear_suit.item_flags & EXAMINE_SKIP)) + if(wear_suit && !HAS_TRAIT(wear_suit, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [wear_suit.get_examine_string(user)]." //suit/armor storage - if(s_store && !(obscured & ITEM_SLOT_SUITSTORE) && !(s_store.item_flags & EXAMINE_SKIP)) + if(s_store && !(obscured & ITEM_SLOT_SUITSTORE) && !HAS_TRAIT(s_store, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] carrying [s_store.get_examine_string(user)] on [t_his] [wear_suit.name]." //back - if(back && !(back.item_flags & EXAMINE_SKIP)) + if(back && !HAS_TRAIT(back, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [back.get_examine_string(user)] on [t_his] back." //Hands for(var/obj/item/held_thing in held_items) - if(held_thing.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) + if((held_thing.item_flags & (ABSTRACT|HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP)) continue . += "[t_He] [t_is] holding [held_thing.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(held_thing))]." //gloves - if(gloves && !(obscured & ITEM_SLOT_GLOVES) && !(gloves.item_flags & EXAMINE_SKIP)) + if(gloves && !(obscured & ITEM_SLOT_GLOVES) && !HAS_TRAIT(gloves, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands." else if(GET_ATOM_BLOOD_DNA_LENGTH(src)) if(num_hands) @@ -73,23 +73,23 @@ . += span_warning("[t_He] [t_is] [icon2html(handcuffed, user)] handcuffed!") //belt - if(belt && !(belt.item_flags & EXAMINE_SKIP)) + if(belt && !HAS_TRAIT(belt, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [belt.get_examine_string(user)] about [t_his] waist." //shoes - if(shoes && !(obscured & ITEM_SLOT_FEET) && !(shoes.item_flags & EXAMINE_SKIP)) + if(shoes && !(obscured & ITEM_SLOT_FEET) && !HAS_TRAIT(shoes, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [shoes.get_examine_string(user)] on [t_his] feet." //mask - if(wear_mask && !(obscured & ITEM_SLOT_MASK) && !(wear_mask.item_flags & EXAMINE_SKIP)) + if(wear_mask && !(obscured & ITEM_SLOT_MASK) && !HAS_TRAIT(wear_mask, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [wear_mask.get_examine_string(user)] on [t_his] face." - if(wear_neck && !(obscured & ITEM_SLOT_NECK) && !(wear_neck.item_flags & EXAMINE_SKIP)) + if(wear_neck && !(obscured & ITEM_SLOT_NECK) && !HAS_TRAIT(wear_neck, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck." //eyes if(!(obscured & ITEM_SLOT_EYES) ) - if(glasses && !(glasses.item_flags & EXAMINE_SKIP)) + if(glasses && !HAS_TRAIT(glasses, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes." else if(HAS_TRAIT(src, TRAIT_UNNATURAL_RED_GLOWY_EYES)) . += "[t_His] eyes are glowing with an unnatural red aura!" @@ -97,11 +97,11 @@ . += "[t_His] eyes are bloodshot!" //ears - if(ears && !(obscured & ITEM_SLOT_EARS) && !(ears.item_flags & EXAMINE_SKIP)) + if(ears && !(obscured & ITEM_SLOT_EARS) && !HAS_TRAIT(ears, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] ears." //ID - if(wear_id && !(wear_id.item_flags & EXAMINE_SKIP)) + if(wear_id && !HAS_TRAIT(wear_id, TRAIT_EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [wear_id.get_examine_string(user)]." . += wear_id.get_id_examine_strings(user) diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm index f23fdd549c00..69019303a02e 100644 --- a/code/modules/mod/modules/modules_antag.dm +++ b/code/modules/mod/modules/modules_antag.dm @@ -484,10 +484,10 @@ monkestation end */ incompatible_modules = list(/obj/item/mod/module/infiltrator, /obj/item/mod/module/armor_booster, /obj/item/mod/module/welding) /obj/item/mod/module/infiltrator/on_install() - mod.item_flags |= EXAMINE_SKIP + ADD_TRAIT(mod, TRAIT_EXAMINE_SKIP, REF(src)) /obj/item/mod/module/infiltrator/on_uninstall(deleting = FALSE) - mod.item_flags &= ~EXAMINE_SKIP + REMOVE_TRAIT(mod, TRAIT_EXAMINE_SKIP, REF(src)) /obj/item/mod/module/infiltrator/on_suit_activation() mod.wearer.add_traits(list(TRAIT_SILENT_FOOTSTEPS, TRAIT_UNKNOWN), MOD_TRAIT) diff --git a/monkestation/code/datums/components/basic_inhands.dm b/monkestation/code/datums/components/basic_inhands.dm index fdf16c5b8e66..215d7dcaace1 100644 --- a/monkestation/code/datums/components/basic_inhands.dm +++ b/monkestation/code/datums/components/basic_inhands.dm @@ -10,6 +10,6 @@ SIGNAL_HANDLER var/mob/living/parent = src.parent for(var/obj/item/held_thing in parent.held_items) - if(held_thing.item_flags & (ABSTRACT | EXAMINE_SKIP | HAND_ITEM)) + if((held_thing.item_flags & (ABSTRACT | HAND_ITEM)) || HAS_TRAIT(held_thing, TRAIT_EXAMINE_SKIP)) continue examine_info += span_info("[parent.p_They()] [parent.p_are()] holding [held_thing.get_examine_string(user)] in [parent.p_their()] [parent.get_held_index_name(parent.get_held_index_of_item(held_thing))].") diff --git a/monkestation/code/modules/antagonists/heretic/status_effects/mark_effects.dm b/monkestation/code/modules/antagonists/heretic/status_effects/mark_effects.dm index c591d7aadc20..ce2ecc68ea29 100644 --- a/monkestation/code/modules/antagonists/heretic/status_effects/mark_effects.dm +++ b/monkestation/code/modules/antagonists/heretic/status_effects/mark_effects.dm @@ -22,7 +22,7 @@ if(QDELETED(thing) || prob(50)) continue // ignore abstract items and such - if((thing.item_flags & (ABSTRACT | EXAMINE_SKIP | HAND_ITEM)) || (thing.resistance_flags & INDESTRUCTIBLE)) + if((thing.item_flags & (ABSTRACT | HAND_ITEM)) || (thing.resistance_flags & INDESTRUCTIBLE) || HAS_TRAIT(thing, TRAIT_EXAMINE_SKIP)) continue // don't delete people's ID cards if(istype(thing, /obj/item/card/id))