Space Station 13 - Modules - TypesDefine Details

code/__HELPERS/trait_helpers.dm

ADD_TRAITAdds a status trait to the target datum.
REMOVE_TRAITRemoves a status trait from a target datum.
REMOVE_TRAITS_NOT_INRemoves all status traits from a target datum which were NOT added by sources.
REMOVE_TRAITS_INRemoves all status traits from a target datum which were added by sources.
HAS_MIND_TRAITA simple helper for checking traits in a mob's mind
UNIQUE_TRAIT_SOURCEGives a unique trait source for any given datum
GET_TRAIT_SOURCESReturns a list of trait sources for this trait. Only useful for wacko cases and internal futzing You should not be using this
TRAIT_MOB_BREEDERtrait determines if this mob can breed given by /datum/component/breeding
TRAIT_DODGE_ALL_OBJECTSAllows a mob to dodge all thrown objects
TRAIT_ANTIMAGICThis mob is antimagic, and immune to spells / cannot cast spells
TRAIT_ANTIMAGIC_NO_SELFBLOCKThis allows a person who has antimagic to cast spells without getting blocked
TRAIT_RECENTLY_BLOCKED_MAGICThis mob recently blocked magic with some form of antimagic
TRAIT_MANSUS_TOUCHEDTrait given to anything linked to, not necessarily allied to, the mansus
TRAIT_BATON_RESISTANCEThis trait makes you immune to baton knockdown.
TRAIT_IN_CALLWhether or not the user is in a MODlink call, prevents making more calls
TRAIT_MOB_TIPPEDTrait given when a mob has been tipped
TRAIT_MOB_EATERTrait given to mobs that have the basic eating element
TRAIT_HYPOTHERMICTrait for when you can no longer gain body heat
TRAIT_BEING_BLADE_SHIELDEDUsed to prevent multiple floating blades from triggering over the same target
TRAIT_AI_PAUSEDTrait that prevents AI controllers from planning detached from ai_status to prevent weird state stuff.
TRAIT_MENTOR_OBSERVINGused 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_INFOShow what machine/door wires do when held.
TRAIT_SUPERMATTER_IMMUNEImmune to the SM / makes you immune to it when worn
TRAIT_WIELDEDAn item that is being wielded.
TRAIT_OBSCURED_WIRESWires on this will have their titles randomized for those with SHOW_WIRES
TRAIT_NO_THROWN_MESSAGEMakes the item no longer spit out a visible message when thrown
TRAIT_SILENT_INSERTIONMakes the item not display a message on storage insertion
TRAIT_ITEM_ACTIVEMakes an item active, this is generally used by energy based weapons or toggle based items.
TRAIT_ALLOW_HERETIC_CASTINGAllows heretics to cast their spells.
TRAIT_LIVING_HEARTDesignates a heart as a living heart for a heretic.
TRAIT_WAS_SACRIFICEDAdded to those who have been sacrificed.
TRAIT_HIDE_EXAMINEForbids running broadcast_examine() in examinate().
TRAIT_SURGICALA surgical tool; when in hand in help intent (and with a surgery in progress) won't attack the user
TRAIT_ADVANCED_SURGICALAn advanced surgical tool. If a surgical tool has this flag, it will be able to automatically repeat steps until they succeed.
TRAIT_SURGICAL_OPEN_HANDA 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_FAILSurgical tools with this trait have their prob_success set to 100 (but is still able to fail from other factors)
TRAIT_ANTI_VIRALA wearable item that protects the covered areas from viral infection
TRAIT_ABSORB_RADSGiven to items that have something that absorbs radiation in them that is neither the item or in it's contents
TRAIT_TURF_COVEREDPrevent 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_SLICKEDAn item that is oiled. If sprayed with water, it's slowdown reverts to normal.
TRAIT_CAN_POINT_WITHAn item that can be pointed at mobs, while on non-help intent.
TRAIT_ORGAN_INSERTED_WHILE_DEADAn organ that was inserted into a dead mob, that has not been revived yet
TRAIT_NO_STRIPPrevents stripping this equipment or seeing it in the strip menu
TRAIT_SKIP_EXAMINEPrevents 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_ICONItems with this trait will not have their worn icon overlayed.
TRAIT_I_WANT_BRAINS_ORGANA general trait for tracking whether a zombie owned the organ or limb
TRAIT_RELAYING_ATTACKERTrait given by /datum/element/relay_attacker
TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUMTrait applied to a mob when it gets a required "operational datum" (components/elements). Sends out the source as the type of the element.
TRAIT_LOUDDoes this person produce loud runechat
TRAIT_MED_EXAMINEallows user to do_after to give bone and IB locations
TRAIT_GERMOPHOBEGrants a 85% chance to NOT catch a disease when contract() is called. You'll probably still catch it though with exposure
TRAIT_CORPSE_RESISTuser wont vomit around corpses
TRAIT_QUICK_HEATERuser will take 25% less tox damage
TRAIT_SPEED_DEMONuser can drive the ambulance cart to push people out of the way
TRAIT_CRAFTYuser can craft things from the crafting menu in 1/4 time
TRAIT_GENETIC_BUDGETUser is alloted a higher genetics budget
TRAIT_CYBORG_SPECIALISTallows the user to quick-charge borgs by using a battery on them
TRAIT_GREEN_THUMBAllows user to pick weeds with their bare hands
TRAIT_JANITORAllows user to use mops faster, and have galoshes slow less
TRAIT_ELECTRICAL_SPECIALISTAllows user to to quick-repair unlocked APCs with a frame and board, and quick-swap cells.alist
TRAIT_FIRE_FIGHTERAllows user to spray extinguishers further, and gives precisions = 1 during spray
TRAIT_PACK_RATallows the user to stuff more items in lockers/crates and wrap them faster
TRAIT_SMITHAllows the user to ????
TRAIT_BUTCHERAllows faster butchering times
PACK_RAT_WRAP_SPEEDUPHow much faster pack rats are in wrapping packages as a percentage
TRAIT_JUDICIALGives the user a new tab for being able to open up space law/sop book pages
TRAIT_COFFEE_SNOBAllows user to drink coffee to point rapidly to get others to do what you want
TRAIT_ADJACENCY_TRANSPARENTAn /obj that should not increase the "depth" of the search for adjacency, e.g. a storage container or a modsuit.
TRAIT_NO_BREAK_GLASS_TABLESA trait for items that will not break glass tables if the user is buckled to them.
TRAIT_CURRENTLY_Z_MOVINGA 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_OBSERVINGMentor observing
TRAIT_KNOCKEDOUTForces the user to stay unconscious.
TRAIT_IMMOBILIZEDPrevents voluntary movement.
TRAIT_FLOOREDPrevents voluntary standing or staying up on its own.
TRAIT_HANDS_BLOCKEDPrevents usage of manipulation appendages (picking, holding or using items, manipulating storage).
TRAIT_UI_BLOCKEDInability to access UI hud elements.
TRAIT_CANNOT_PULLInability to pull things.
TRAIT_RESTRAINEDAbstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically.
STATION_TRAIT_BANANIUM_SHIPMENTSTraits given by station traits
TRAIT_FRAILQUIRK TRAITS
TRAIT_BLUESPACE_SPEEDRemoves slowdown while walking on these tiles.
TRAIT_SPINNING_WEB_TURFA web is being spun on this turf presently
TRAIT_SWARMER_CONSTRUCTIONA swarmer construct is being built here
TRAIT_SWARMER_DISINTEGRATINGA swarmer is deconstructing this already
ELEMENT_TRAITTrait applied by element
TRAIT_HEARING_SENSITIVEevery hearing sensitive atom has this trait
TRAIT_ACTIVE_STORAGEevery object that is currently the active storage of some client mob has this trait
/proc/callback_add_traitProc wrapper of add_trait. You should only use this for callback. Otherwise, use the macro.
/proc/callback_remove_traitProc 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)

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:

REMOVE_TRAITS_IN

Removes all status traits from a target datum which were added by sources.

Arguments:

REMOVE_TRAITS_NOT_IN

Removes all status traits from a target datum which were NOT added by sources.

Arguments:

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