Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix blades equipped to a void cloak having visible sprites #5305

Merged
merged 1 commit into from
Feb 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions code/__DEFINES/obj_flags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
6 changes: 6 additions & 0 deletions code/__DEFINES/traits/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
1 change: 0 additions & 1 deletion code/_globalvars/bitfields.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
4 changes: 3 additions & 1 deletion code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down
3 changes: 1 addition & 2 deletions code/datums/brain_damage/phobia.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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*
Expand Down
2 changes: 1 addition & 1 deletion code/datums/elements/dextrous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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))].")
2 changes: 1 addition & 1 deletion code/datums/elements/strippable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -911,6 +913,7 @@
return null

/obj/item/proc/update_slot_icon()
SIGNAL_HANDLER
if(!ismob(loc))
return
var/mob/owner = loc
Expand Down
17 changes: 6 additions & 11 deletions code/modules/antagonists/heretic/items/heretic_armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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"
Expand Down Expand Up @@ -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
Expand All @@ -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))
Expand All @@ -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))
Expand Down
5 changes: 4 additions & 1 deletion code/modules/antagonists/traitor/objectives/steal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/clothing/head/wig.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
4 changes: 2 additions & 2 deletions code/modules/hallucination/inhand_fake_item.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/basic/drone/_drone.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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))]."

Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/examine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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))]."

Expand Down
28 changes: 14 additions & 14 deletions code/modules/mob/living/carbon/human/examine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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)
Expand All @@ -73,35 +73,35 @@
. += 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))
. += "<span class='warning'><B>[t_His] eyes are glowing with an unnatural red aura!</B></span>"
else if(HAS_TRAIT(src, TRAIT_BLOODSHOT_EYES))
. += "<span class='warning'><B>[t_His] eyes are bloodshot!</B></span>"

//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)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/mod/modules/modules_antag.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion monkestation/code/datums/components/basic_inhands.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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))].")
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
Loading