code/__HELPERS/trait_helpers.dm 
| ADD_TRAIT | Adds a status trait to the target datum. |
|---|---|
| REMOVE_TRAIT | Removes a status trait from a target datum. |
| REMOVE_TRAITS_NOT_IN | Removes all status traits from a target datum which were NOT added by sources. |
| REMOVE_TRAITS_IN | Removes all status traits from a target datum which were added by sources. |
| HAS_MIND_TRAIT | A simple helper for checking traits in a mob's mind |
| UNIQUE_TRAIT_SOURCE | Gives a unique trait source for any given datum |
| GET_TRAIT_SOURCES | Returns a list of trait sources for this trait. Only useful for wacko cases and internal futzing You should not be using this |
| TRAIT_MOB_BREEDER | trait determines if this mob can breed given by /datum/component/breeding |
| TRAIT_DODGE_ALL_OBJECTS | Allows a mob to dodge all thrown objects |
| TRAIT_ANTIMAGIC | This mob is antimagic, and immune to spells / cannot cast spells |
| TRAIT_ANTIMAGIC_NO_SELFBLOCK | This allows a person who has antimagic to cast spells without getting blocked |
| TRAIT_RECENTLY_BLOCKED_MAGIC | This mob recently blocked magic with some form of antimagic |
| TRAIT_MANSUS_TOUCHED | Trait given to anything linked to, not necessarily allied to, the mansus |
| TRAIT_BATON_RESISTANCE | This trait makes you immune to baton knockdown. |
| TRAIT_IN_CALL | Whether or not the user is in a MODlink call, prevents making more calls |
| TRAIT_MOB_TIPPED | Trait given when a mob has been tipped |
| TRAIT_MOB_EATER | Trait given to mobs that have the basic eating element |
| TRAIT_HYPOTHERMIC | Trait for when you can no longer gain body heat |
| TRAIT_BEING_BLADE_SHIELDED | Used to prevent multiple floating blades from triggering over the same target |
| TRAIT_AI_PAUSED | Trait that prevents AI controllers from planning detached from ai_status to prevent weird state stuff. |
| TRAIT_MENTOR_OBSERVING | used for dead mobs that are observing, but should not be afforded all the same platitudes as full ghosts. This is a mind trait because ghosts can be frequently deleted and we want to be sure this sticks. |
| TRAIT_SHOW_WIRE_INFO | Show what machine/door wires do when held. |
| TRAIT_SUPERMATTER_IMMUNE | Immune to the SM / makes you immune to it when worn |
| TRAIT_WIELDED | An item that is being wielded. |
| TRAIT_OBSCURED_WIRES | Wires on this will have their titles randomized for those with SHOW_WIRES |
| TRAIT_NO_THROWN_MESSAGE | Makes the item no longer spit out a visible message when thrown |
| TRAIT_SILENT_INSERTION | Makes the item not display a message on storage insertion |
| TRAIT_ITEM_ACTIVE | Makes an item active, this is generally used by energy based weapons or toggle based items. |
| TRAIT_ALLOW_HERETIC_CASTING | Allows heretics to cast their spells. |
| TRAIT_LIVING_HEART | Designates a heart as a living heart for a heretic. |
| TRAIT_WAS_SACRIFICED | Added to those who have been sacrificed. |
| TRAIT_HIDE_EXAMINE | Forbids running broadcast_examine() in examinate(). |
| TRAIT_SURGICAL | A surgical tool; when in hand in help intent (and with a surgery in progress) won't attack the user |
| TRAIT_ADVANCED_SURGICAL | An advanced surgical tool. If a surgical tool has this flag, it will be able to automatically repeat steps until they succeed. |
| TRAIT_SURGICAL_OPEN_HAND | A surgical tool; If a surgical tool has this flag it can be used as an alternative to an open hand in surgery |
| TRAIT_SURGICAL_CANNOT_FAIL | Surgical tools with this trait have their prob_success set to 100 (but is still able to fail from other factors) |
| TRAIT_ANTI_VIRAL | A wearable item that protects the covered areas from viral infection |
| TRAIT_ABSORB_RADS | Given to items that have something that absorbs radiation in them that is neither the item or in it's contents |
| TRAIT_TURF_COVERED | Prevent mobs on the turf from being affected by anything below that turf, such as a pulse demon going under it. Added by a /obj/structure with creates_cover set to TRUE |
| TRAIT_OIL_SLICKED | An item that is oiled. If sprayed with water, it's slowdown reverts to normal. |
| TRAIT_CAN_POINT_WITH | An item that can be pointed at mobs, while on non-help intent. |
| TRAIT_ORGAN_INSERTED_WHILE_DEAD | An organ that was inserted into a dead mob, that has not been revived yet |
| TRAIT_NO_STRIP | Prevents stripping this equipment or seeing it in the strip menu |
| TRAIT_SKIP_EXAMINE | Prevents seeing this item on examine when on a mob, or seeing it in the strip menu. It's like ABSTRACT, without making the item fail to interact in several ways. The item can still be stripped however, combine with no_strip unless you have a reason not to. |
| TRAIT_NO_WORN_ICON | Items with this trait will not have their worn icon overlayed. |
| TRAIT_I_WANT_BRAINS_ORGAN | A general trait for tracking whether a zombie owned the organ or limb |
| TRAIT_RELAYING_ATTACKER | Trait given by /datum/element/relay_attacker |
| TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM | Trait applied to a mob when it gets a required "operational datum" (components/elements). Sends out the source as the type of the element. |
| TRAIT_LOUD | Does this person produce loud runechat |
| TRAIT_MED_EXAMINE | allows user to do_after to give bone and IB locations |
| TRAIT_GERMOPHOBE | Grants a 85% chance to NOT catch a disease when contract() is called. You'll probably still catch it though with exposure |
| TRAIT_CORPSE_RESIST | user wont vomit around corpses |
| TRAIT_QUICK_HEATER | user will take 25% less tox damage |
| TRAIT_SPEED_DEMON | user can drive the ambulance cart to push people out of the way |
| TRAIT_CRAFTY | user can craft things from the crafting menu in 1/4 time |
| TRAIT_GENETIC_BUDGET | User is alloted a higher genetics budget |
| TRAIT_CYBORG_SPECIALIST | allows the user to quick-charge borgs by using a battery on them |
| TRAIT_GREEN_THUMB | Allows user to pick weeds with their bare hands |
| TRAIT_JANITOR | Allows user to use mops faster, and have galoshes slow less |
| TRAIT_ELECTRICAL_SPECIALIST | Allows user to to quick-repair unlocked APCs with a frame and board, and quick-swap cells.alist |
| TRAIT_FIRE_FIGHTER | Allows user to spray extinguishers further, and gives precisions = 1 during spray |
| TRAIT_PACK_RAT | allows the user to stuff more items in lockers/crates and wrap them faster |
| TRAIT_SMITH | Allows the user to ???? |
| TRAIT_BUTCHER | Allows faster butchering times |
| PACK_RAT_WRAP_SPEEDUP | How much faster pack rats are in wrapping packages as a percentage |
| TRAIT_JUDICIAL | Gives the user a new tab for being able to open up space law/sop book pages |
| TRAIT_COFFEE_SNOB | Allows user to drink coffee to point rapidly to get others to do what you want |
| TRAIT_ADJACENCY_TRANSPARENT | An /obj that should not increase the "depth" of the search for adjacency, e.g. a storage container or a modsuit. |
| TRAIT_NO_BREAK_GLASS_TABLES | A trait for items that will not break glass tables if the user is buckled to them. |
| TRAIT_CURRENTLY_Z_MOVING | A trait for determining if a atom/movable is currently crossing into another z-level by using of /turf/space z-level "destination-xyz" transfers |
| MENTOR_OBSERVING | Mentor observing |
| TRAIT_KNOCKEDOUT | Forces the user to stay unconscious. |
| TRAIT_IMMOBILIZED | Prevents voluntary movement. |
| TRAIT_FLOORED | Prevents voluntary standing or staying up on its own. |
| TRAIT_HANDS_BLOCKED | Prevents usage of manipulation appendages (picking, holding or using items, manipulating storage). |
| TRAIT_UI_BLOCKED | Inability to access UI hud elements. |
| TRAIT_CANNOT_PULL | Inability to pull things. |
| TRAIT_RESTRAINED | Abstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically. |
| STATION_TRAIT_BANANIUM_SHIPMENTS | Traits given by station traits |
| TRAIT_FRAIL | QUIRK TRAITS |
| TRAIT_BLUESPACE_SPEED | Removes slowdown while walking on these tiles. |
| TRAIT_SPINNING_WEB_TURF | A web is being spun on this turf presently |
| TRAIT_SWARMER_CONSTRUCTION | A swarmer construct is being built here |
| TRAIT_SWARMER_DISINTEGRATING | A swarmer is deconstructing this already |
| ELEMENT_TRAIT | Trait applied by element |
| TRAIT_HEARING_SENSITIVE | every hearing sensitive atom has this trait |
| TRAIT_ACTIVE_STORAGE | every object that is currently the active storage of some client mob has this trait |
| /proc/callback_add_trait | Proc wrapper of add_trait. You should only use this for callback. Otherwise, use the macro. |
| /proc/callback_remove_trait | Proc wrapper of remove_trait. You should only use this for callback. Otherwise, use the macro. |
Define Details
ADD_TRAIT 
Adds a status trait to the target datum.
Arguments: (All Required)
- target - The datum to add the trait to.
- trait - The trait which is being added.
- source - The source of the trait which is being added.
ELEMENT_TRAIT 
Trait applied by element
GET_TRAIT_SOURCES 
Returns a list of trait sources for this trait. Only useful for wacko cases and internal futzing You should not be using this
HAS_MIND_TRAIT 
A simple helper for checking traits in a mob's mind
MENTOR_OBSERVING 
Mentor observing
PACK_RAT_WRAP_SPEEDUP 
How much faster pack rats are in wrapping packages as a percentage
REMOVE_TRAIT 
Removes a status trait from a target datum.
ROUNDSTART_TRAIT traits can't be removed without being specified in sources.
Arguments:
- target - The datum to remove the trait from.
- trait - The trait which is being removed.
- sources - If specified, only remove the trait if it is from this source. (Lists Supported)
REMOVE_TRAITS_IN 
Removes all status traits from a target datum which were added by sources.
Arguments:
- target - The datum to remove the traits from.
- sources - The trait source which is being searched for.
REMOVE_TRAITS_NOT_IN 
Removes all status traits from a target datum which were NOT added by sources.
Arguments:
- target - The datum to remove the traits from.
- sources - The trait source which is being searched for.
STATION_TRAIT_BANANIUM_SHIPMENTS 
Traits given by station traits
TRAIT_ABSORB_RADS 
Given to items that have something that absorbs radiation in them that is neither the item or in it's contents
TRAIT_ACTIVE_STORAGE 
every object that is currently the active storage of some client mob has this trait
TRAIT_ADJACENCY_TRANSPARENT 
An /obj that should not increase the "depth" of the search for adjacency, e.g. a storage container or a modsuit.
TRAIT_ADVANCED_SURGICAL 
An advanced surgical tool. If a surgical tool has this flag, it will be able to automatically repeat steps until they succeed.
TRAIT_AI_PAUSED 
Trait that prevents AI controllers from planning detached from ai_status to prevent weird state stuff.
TRAIT_ALLOW_HERETIC_CASTING 
Allows heretics to cast their spells.
TRAIT_ANTIMAGIC 
This mob is antimagic, and immune to spells / cannot cast spells
TRAIT_ANTIMAGIC_NO_SELFBLOCK 
This allows a person who has antimagic to cast spells without getting blocked
TRAIT_ANTI_VIRAL 
A wearable item that protects the covered areas from viral infection
TRAIT_BATON_RESISTANCE 
This trait makes you immune to baton knockdown.
TRAIT_BEING_BLADE_SHIELDED 
Used to prevent multiple floating blades from triggering over the same target
TRAIT_BLUESPACE_SPEED 
Removes slowdown while walking on these tiles.
TRAIT_BUTCHER 
Allows faster butchering times
TRAIT_CANNOT_PULL 
Inability to pull things.
TRAIT_CAN_POINT_WITH 
An item that can be pointed at mobs, while on non-help intent.
TRAIT_COFFEE_SNOB 
Allows user to drink coffee to point rapidly to get others to do what you want
TRAIT_CORPSE_RESIST 
user wont vomit around corpses
TRAIT_CRAFTY 
user can craft things from the crafting menu in 1/4 time
TRAIT_CURRENTLY_Z_MOVING 
A trait for determining if a atom/movable is currently crossing into another z-level by using of /turf/space z-level "destination-xyz" transfers
TRAIT_CYBORG_SPECIALIST 
allows the user to quick-charge borgs by using a battery on them
TRAIT_DODGE_ALL_OBJECTS 
Allows a mob to dodge all thrown objects
TRAIT_ELECTRICAL_SPECIALIST 
Allows user to to quick-repair unlocked APCs with a frame and board, and quick-swap cells.alist
TRAIT_FIRE_FIGHTER 
Allows user to spray extinguishers further, and gives precisions = 1 during spray
TRAIT_FLOORED 
Prevents voluntary standing or staying up on its own.
TRAIT_FRAIL 
QUIRK TRAITS
TRAIT_GENETIC_BUDGET 
User is alloted a higher genetics budget
TRAIT_GERMOPHOBE 
Grants a 85% chance to NOT catch a disease when contract() is called. You'll probably still catch it though with exposure
TRAIT_GREEN_THUMB 
Allows user to pick weeds with their bare hands
TRAIT_HANDS_BLOCKED 
Prevents usage of manipulation appendages (picking, holding or using items, manipulating storage).
TRAIT_HEARING_SENSITIVE 
every hearing sensitive atom has this trait
TRAIT_HIDE_EXAMINE 
Forbids running broadcast_examine() in examinate().
TRAIT_HYPOTHERMIC 
Trait for when you can no longer gain body heat
TRAIT_IMMOBILIZED 
Prevents voluntary movement.
TRAIT_IN_CALL 
Whether or not the user is in a MODlink call, prevents making more calls
TRAIT_ITEM_ACTIVE 
Makes an item active, this is generally used by energy based weapons or toggle based items.
TRAIT_I_WANT_BRAINS_ORGAN 
A general trait for tracking whether a zombie owned the organ or limb
TRAIT_JANITOR 
Allows user to use mops faster, and have galoshes slow less
TRAIT_JUDICIAL 
Gives the user a new tab for being able to open up space law/sop book pages
TRAIT_KNOCKEDOUT 
Forces the user to stay unconscious.
TRAIT_LIVING_HEART 
Designates a heart as a living heart for a heretic.
TRAIT_LOUD 
Does this person produce loud runechat
TRAIT_MANSUS_TOUCHED 
Trait given to anything linked to, not necessarily allied to, the mansus
TRAIT_MED_EXAMINE 
allows user to do_after to give bone and IB locations
TRAIT_MENTOR_OBSERVING 
used for dead mobs that are observing, but should not be afforded all the same platitudes as full ghosts. This is a mind trait because ghosts can be frequently deleted and we want to be sure this sticks.
TRAIT_MOB_BREEDER 
trait determines if this mob can breed given by /datum/component/breeding
TRAIT_MOB_EATER 
Trait given to mobs that have the basic eating element
TRAIT_MOB_TIPPED 
Trait given when a mob has been tipped
TRAIT_NO_BREAK_GLASS_TABLES 
A trait for items that will not break glass tables if the user is buckled to them.
TRAIT_NO_STRIP 
Prevents stripping this equipment or seeing it in the strip menu
TRAIT_NO_THROWN_MESSAGE 
Makes the item no longer spit out a visible message when thrown
TRAIT_NO_WORN_ICON 
Items with this trait will not have their worn icon overlayed.
TRAIT_OBSCURED_WIRES 
Wires on this will have their titles randomized for those with SHOW_WIRES
TRAIT_OIL_SLICKED 
An item that is oiled. If sprayed with water, it's slowdown reverts to normal.
TRAIT_ORGAN_INSERTED_WHILE_DEAD 
An organ that was inserted into a dead mob, that has not been revived yet
TRAIT_PACK_RAT 
allows the user to stuff more items in lockers/crates and wrap them faster
TRAIT_QUICK_HEATER 
user will take 25% less tox damage
TRAIT_RECENTLY_BLOCKED_MAGIC 
This mob recently blocked magic with some form of antimagic
TRAIT_RELAYING_ATTACKER 
Trait given by /datum/element/relay_attacker
TRAIT_RESTRAINED 
Abstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically.
TRAIT_SHOW_WIRE_INFO 
Show what machine/door wires do when held.
TRAIT_SILENT_INSERTION 
Makes the item not display a message on storage insertion
TRAIT_SKIP_EXAMINE 
Prevents seeing this item on examine when on a mob, or seeing it in the strip menu. It's like ABSTRACT, without making the item fail to interact in several ways. The item can still be stripped however, combine with no_strip unless you have a reason not to.
TRAIT_SMITH 
Allows the user to ????
TRAIT_SPEED_DEMON 
user can drive the ambulance cart to push people out of the way
TRAIT_SPINNING_WEB_TURF 
A web is being spun on this turf presently
TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM 
Trait applied to a mob when it gets a required "operational datum" (components/elements). Sends out the source as the type of the element.
TRAIT_SUPERMATTER_IMMUNE 
Immune to the SM / makes you immune to it when worn
TRAIT_SURGICAL 
A surgical tool; when in hand in help intent (and with a surgery in progress) won't attack the user
TRAIT_SURGICAL_CANNOT_FAIL 
Surgical tools with this trait have their prob_success set to 100 (but is still able to fail from other factors)
TRAIT_SURGICAL_OPEN_HAND 
A surgical tool; If a surgical tool has this flag it can be used as an alternative to an open hand in surgery
TRAIT_SWARMER_CONSTRUCTION 
A swarmer construct is being built here
TRAIT_SWARMER_DISINTEGRATING 
A swarmer is deconstructing this already
TRAIT_TURF_COVERED 
Prevent mobs on the turf from being affected by anything below that turf, such as a pulse demon going under it. Added by a /obj/structure with creates_cover set to TRUE
TRAIT_UI_BLOCKED 
Inability to access UI hud elements.
TRAIT_WAS_SACRIFICED 
Added to those who have been sacrificed.
TRAIT_WIELDED 
An item that is being wielded.
UNIQUE_TRAIT_SOURCE 
Gives a unique trait source for any given datum