living 
Flavor text define for carbons.
Vars | |
| blood_type | Blood type singleton this mob currently has. If null, the mob doesn't have blood. |
|---|---|
| blood_volume | How much blood the mob has. If initially 0, the mob gains TRAIT_NOBLOOD permanently. |
| body_maptext_height_offset | The height offset of a mob's maptext due to their current size. |
| body_position | Variable to track the body position of a mob, regardgless of the actual angle of rotation (usually matching it, but not necessarily). |
| body_temperature | Temperature of our insides |
| bodytemp_cold_damage_limit | How cold to start sustaining cold damage |
| bodytemp_heat_damage_limit | How hot to start sustaining heat damage |
| bruteloss | Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage) |
| bubble_icon | used to prevent spam with smoke reagent reaction on mob. what icon the mob uses for speechbubbles |
| butcher_difficulty | effectiveness prob. is modified negatively by this amount; positive numbers make it more difficult, negative ones make it easier |
| butcher_results | these will be yielded from butchering with a probability chance equal to the butcher item's effectiveness |
| can_be_held | whether this can be picked up and held. |
| can_buckle_to | Is this mob allowed to be buckled/unbuckled to/from things? |
| combat_mode | If combat mode is on or not |
| consciousness | How conscious is the mob? |
| consciousness_modifiers | Assoc Lazylist of flat modifiers to consciousness. |
| consciousness_multipliers | Assoc Lazylist of multipliers to consciousness. Applied after modifiers. |
| current_size | Tracks the current size of the mob in relation to its original size. Use update_transform(resize) to change it. |
| current_turf_slowdown | what multiplicative slowdown we get from turfs currently. |
| death_message | A message sent when the mob dies, with the *deathgasp emote |
| death_sound | A sound sent when the mob dies, with the *deathgasp emote |
| default_num_hands | How many hands does this mob have by default. This shouldn't change at runtime. |
| default_num_legs | How many legs does this mob have by default. This shouldn't change at runtime. |
| diseases | list of all diseases in a mob |
| fire_stack_decay_rate | Rate at which fire stacks should decay from this mob |
| fireloss | Burn damage caused by being way too hot, too cold or burnt. |
| fov_traits | Lazy list of FOV traits that will apply a FOV view when handled. |
| fov_view | FOV view that is applied from either nativeness or traits |
| gravity_state | What our current gravity state is. Used to avoid duplicate animates and such |
| guaranteed_butcher_results | these will always be yielded from butchering |
| has_limbs | does the mob have distinct limbs?(arms,legs, chest,head) |
| head_icon | what it looks like when the mob is held on your head |
| health | The mob's current health. |
| health_doll_icon | if this exists AND the normal sprite is bigger than 32x32, this is the replacement icon state (because health doll size limitations). the icon will always be screen_gen.dmi |
| held_lh | left hand icon for holding mobs |
| held_rh | right hand icon for holding mobs |
| held_state | icon_state for holding mobs. |
| held_w_class | The w_class of the holder when held. |
| homeostasis_targets | Lazylist of targets we homeostasize to This allows multiple effects to add a different target to the list, which is averaged (So you can have both a fever and a cold at the same time) If empty just defaults to standard_body_temperature |
| imaginary_group | Contains the owner and all imaginary friend mobs if they exist, otherwise null |
| incorporeal_move | Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. |
| initial_blood_type | What blood type do we set on init. This can be set even on mobs that don't mechanically have blood, allowing them to create blood decals to sell the illusion of them really having blood. |
| last_special | Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out. |
| last_vent_dir | The last direction we moved in a vent. Used to make holding two directions feel nice |
| last_words | used for database logging |
| limb_destroyer | Sets AI behavior that allows mobs to target and dismember limbs with their basic attack. |
| linked_flavor | The flavor text linked to our carbon. |
| living_flags | Generic bitflags for boolean conditions at the /mob/living level. Keep this for inherent traits of living types, instead of runtime-changeable ones. |
| lying_angle | Number of degrees of rotation of a mob. 0 means no rotation, up-side facing NORTH. 90 means up-side rotated to face EAST, and so on. |
| lying_prev | Value of lying lying_angle before last change. TODO: Remove the need for this. |
| martial_arts | Lazylist of martial arts this mob knows First element is the current martial art - any other elements are "saved" for if they unlearn the first one Reference handling is done by the martial arts themselves |
| maxHealth | Maximum health that should be possible. |
| max_consciousness_values | Assoc Lazylist of max consciousness values. Smallest one is used, but not beyond 10. Don't increase max consciousness (over 150), that makes no sense. |
| max_stamina | The max amount of stamina damage we can have at once |
| melee_damage_lower | Lower bound of damage done by unarmed melee attacks. Mob code is a mess, only works where this is checked for. |
| melee_damage_upper | Upper bound of damage done by unarmed melee attacks. Please ensure you check the xyz_defenses.dm for the mobs in question to see if it uses this or hardcoded values. |
| metabolism_efficiency | How efficient are we at metabolizing reagents and regulating body temperature? Note: Do not set this for mobs with stomach organs, as the stomach overrides this value entirely. |
| mob_biotypes | List of biotypes the mob belongs to. Used by diseases and reagents mainly. |
| mob_mood | Living mob's mood datum |
| mob_respiration_type | The type of respiration the mob is capable of doing. Used by adjustOxyLoss. |
| mob_surgery_speed_mods | Lazylist of surgery speed modifiers - id to number - 2 = 2x faster, 0.5x = 0.5x slower |
| mobility_flags | Flags that determine the potential of a mob to perform certain actions. Do not change this directly. |
| move_intent | The movement intent of the mob (run/wal) |
| navigate_cooldown | Cooldown of the navigate() verb. |
| now_pushing | Used by [living/Bump()][/mob/living/proc/Bump] and [living/PushAM()][/mob/living/proc/PushAM] to prevent potential infinite loop. |
| num_hands | How many hands hands does this mob currently have. Should only be changed through set_num_hands() |
| num_legs | How many legs does this mob currently have. Should only be changed through set_num_legs() |
| numba | the id a mob gets when it's created |
| offsets | Lazylists of pixel offsets this mob is currently using Modify this via add_offsets and remove_offsets, NOT directly (and definitely avoid modifying offsets directly) |
| on_fire | Helper vars for quick access to firestacks, these should be updated every time firestacks are adjusted |
| outgoing_damage_mod | Modified applied to attacks with items or fists |
| oxyloss | Oxygen depravation damage (no air in lungs) |
| pain_controller | The pain controller datum - tracks, processes, and handles pain. Only intialized on humans (currently), here for ease of access / future compatibillity? |
| personalities | Lazylist of all typepaths of personalities the mob has. |
| pipetracker | Cell tracker datum we use to manage the pipes around us, for faster ventcrawling Should only exist if you're in a pipe |
| quirks | Lazylist of all quirks the mob has. These are not singletons |
| recently_smelled | List of smell datums we smelled recently, we get accustomed to it over time |
| rotate_on_lying | Does the mob rotate when lying |
| slowed_by_drag | Whether the mob is slowed down when dragging another prone mob |
| smell_cd | Cooldown between smell attempts |
| speech_sound_frequency_modifier | Modifier to speech sounds frequency Lower = longer, deeper speech sounds Higher = quicker, higher-pitch speech sounds |
| speech_sound_pitch_modifier | Modifier to speech sounds pitch Like frequency but doesn't affect length Lower = deeper speech sounds Higher = higher-pitch speech sounds |
| staminaloss | Basically, amount of fatigue Having a lot of it slows down your movement speed Also often used for "fake damage" |
| standard_body_temperature | Body temp we homeostasize to |
| station_timestamp_timeofdeath | The mob's latest time-of-death, as a station timestamp instead of world.time |
| status_effects | a list of all status effects the mob has |
| temp_alerts | Whether we currently have temp alerts, minor optimization |
| temperature_homeostasis_speed | How fast the mob's temperature normalizes to their homeostasis Also gets multiplied by metabolism_efficiency. Note that more of this = more nutrition is consumed every life tick. |
| temperature_insulation | Protection (insulation) from temperature changes, max 1 |
| temperature_normalization_speed | How fast the mob's temperature normalizes to their environment |
| timeofdeath | The mob's latest time-of-death |
| toxloss | Toxic damage caused by being poisoned or radiated |
| unique_name | if a mob's name should be appended with an id when created e.g. Mob (666) |
| usable_hands | How many usable hands does this mob currently have. Should only be changed through set_usable_hands() |
| usable_legs | How many usable legs this mob currently has. Should only be changed through set_usable_legs() |
| welded_vent_message_cd | Cooldown for welded vent movement messages to prevent spam |
| worn_slot_flags | if it can be held, can it be equipped to any slots? (think pAI's on head) |
Procs | |
| IsFrozen | FROZEN |
| Life | Handles the biological and general over-time processes of the mob. |
| PermaSleeping | Allows us to set a permanent sleep on a player (use with caution and remember to unset it with SetSleeping() after the effect is over) |
| Write_Memory | Proc used by different station pets such as Ian and Poly so that some of their data can persist between rounds. This base definition only contains a trait and comsig to stop memory from being (over)written. Specific behavior is defined on subtypes that use it. |
| ZImpactDamage | Called when this mob is receiving damage from falling |
| _cause_hallucination | Unless you need this for an explicit reason, use the cause_hallucination wrapper. |
| add_consciousness_modifier | Adds a conscious modifier to the mob |
| add_consciousness_multiplier | Adds a conscious multiplier to the mob |
| add_fov_trait | Adds a trait which limits a user's FOV |
| add_generic_humanoid_static_appearance | Generic helper to add a static-y humanoid appearance shown to other mobs when unconscious |
| add_homeostasis_level | Changes the level to which the mob homeostasises to, while optionally providing a buff to the rate at which they do so. |
| add_max_consciousness_value | Adds a max consciousness value to the mob |
| add_mood_event | Adds a mood event to the mob |
| add_movespeed_mod_immunities | Ignores specific slowdowns. Accepts a list of slowdowns. |
| add_offsets | Adds an offset to the mob's pixel position. |
| add_personalities | Helper to easily add multiple personalities by a list of typepaths |
| add_personality | Helper to easily add a personality by a typepath |
| add_quirk | Adds the passed quirk to the mob |
| add_splatter_floor | Create a splat of this mob's life juice Does nothing if the mob does not have a blood type set DOES work if the mob does not actually have blood but does have a blood type |
| add_stun_absorption | [proc/apply_status_effect] wrapper specifically for /datum/status_effect/stun_absorption, specifically so that it's easier to apply stun absorptions with named arguments. |
| add_surgery_speed_mod | Adds a speed modifier to this mob |
| adjust_drunk_effect | Adjust the "drunk value" the mob is currently experiencing, or applies a drunk effect if the mob isn't currently drunk (or tipsy) |
| adjust_fire_stacks | Adjust the amount of fire stacks on a mob |
| adjust_incapacitated | |
| adjust_status_effects_on_shake_up | CLEAR STATUS |
| adjust_timed_status_effect | Adjusts a timed status effect on the mob,taking into account any existing timed status effects. This can be any status effect that takes into account "duration" with their initialize arguments. |
| adjust_traumatic_shock | Adjusts the progress of pain shock on the current mob. |
| admin_give_delusion | Admin only proc for giving the mob a delusion hallucination with specific arguments |
| admin_give_hallucination | Admin only proc for making the mob hallucinate a certain thing |
| admin_give_speech_impediment | Admin only proc for giving a certain speech impediment to this mob |
| amount_incapacitated | Proc that returns the remaining duration of the status efect in deciseconds. |
| appears_alive | Helper to check if we seem to be alive or not |
| apply_damage | Applies damage to this mob. |
| apply_damages | Applies multiple damages at once via apply_damage |
| apply_effect | applies various common status effects or common hardcoded mob effects |
| apply_effects | Applies multiple effects at once via /mob/living/proc/apply_effect |
| apply_min_pain | Adjust the minimum pain the target zone can experience for a time |
| apply_prefs_job | Applies the preference options to the spawning mob, taking the job into account. Assumes the client has the proper mind. |
| apply_status_effect | Applies a given status effect to this mob. |
| apply_suicide_damage | The actual proc that will apply the damage to the suiciding mob. damage_type is the actual type of damage we want to deal, if that matters. Return TRUE if we actually apply any real damage, FALSE otherwise. |
| attack_effects | Called when we take damage, used to cause effects such as a blood splatter. |
| base_click_ctrl | Ctrl click For most objects, pull |
| became_unhuskable | Called when we become unhuskable while already husked |
| befriend | Proc for giving a mob a new 'friend', generally used for AI control and targeting. Returns false if already friends. |
| bleed | Makes a blood drop, leaking amt units of blood from the mob |
| bleedDragAmount | Returns how much blood we're losing from being dragged a tile, from [/mob/living/proc/make_blood_trail] |
| can_be_revived | Checks if we are actually able to ressuscitate this mob. (We don't want to revive then to have them instantly die again) |
| can_catch_item | Checks the requites for catching a throw item. |
| can_disarm | Check if the universal conditions for disarming/shoving are met. |
| can_enter_vent | Checks if the mob is able to enter the vent, and provides feedback if they are unable to. |
| can_inject | Returns whether or not the mob can be injected. Should not perform any side effects. |
| can_look_up | Checks if the user is incapacitated or on cooldown. |
| can_suicide | Checks if we are in a valid state to suicide (not already suiciding, capable of actually killing ourselves, area checks, etc.) Returns TRUE if we can suicide, FALSE if we can not. |
| can_track | Checks if this mob can be actively tracked by cameras / AI. Can optionally be passed a user, which is the mob who is tracking src. |
| can_unarmed_attack | Checks if this mob is in a valid state to punch someone. |
| cause_pain | Causes pain to this mob. |
| check_projectile_dismemberment | Attempts to dismember a limb if hit with a projectile that has a dismemberment value. |
| check_stun_immunity | Checks if we have stun immunity. Godmode always passes this check. |
| clean_lips | A wrapper for mob/living/carbon/human/proc/update_lips that sets the lip style and color to null. |
| clear_mood_event | Clears a mood event from the mob |
| clear_personalities | Helper to clear all personalities from a mob |
| compare_sentience_type | Helper proc for basic and simple animals to return true if the passed sentience type matches theirs Living doesn't have a sentience type though so it always returns false if not a basic or simple mob |
| create_thinking_indicator | Overrides for overlay creation |
| damage_random_bodypart | Damages a random bodypart |
| debug_get_all_available_surgeries | Debug proc to print all surgeries available to whoever called the proc |
| disarm | Attempt to disarm the target mob. Some items might let you do it, also carbon can do it with right click. Will shove the target mob back, and drop them if they're in front of something dense or another carbon. |
| dismembering_strike | Really weird proc that attempts to dismebmer the passed zone if it is at max damage Unless the attacker is an NPC, in which case it disregards the zone and picks a random one |
| do_jitter_animation | Helper proc that causes the mob to do a jittering animation by jitter_amount. jitter_amount will only apply up to 300 (maximum jitter effect). |
| do_slap_animation | Does a slap animation on an atom |
| do_splatter_effect | Create a visual effect of this mob's blood splattering in a direction Does nothing if the mob does not have a blood type set DOES work if the mob does not actually have blood but does have a blood type |
| do_stagger_animation | Helper proc that causes the mob to do a stagger animation. Doesn't change significantly, just meant to represent swaying back and forth |
| do_strange_reagent_revival | Called by strange_reagent, with the amount of healing the strange reagent is doing It uses the healing amount on brute/fire damage, and then uses the excess healing for revive |
| dust | This is the proc for turning a mob into ash. Dusting robots does not eject the MMI, so it's a bit more powerful than gib() |
| edit_immerse_overlay | Called in /datum/element/immerse/apply_filter |
| electrocute_act | As the name suggests, this should be called to apply electric shocks. |
| examine | Flavor text and Personal Records On Examine INS AND OUTS (implementation by mrmelbert) |
| execute_resist | proc extender of [/mob/living/verb/resist] meant to make the process queable if the server is overloaded when the verb is called |
| expose_reagents | |
| extinguish_mob | Extinguish all fire on the mob |
| fakedeath | Induces fake death on a living mob. |
| final_checkout | Inserts in logging and death + mind dissociation when we're fully done with ending the life of our mob, as well as adjust the health. We will disallow re-entering the body when this is called. The suicide_tool variable is currently only used for humans in order to allow suicide log to properly put stuff in investigate log. Set apply_damage to FALSE in order to not do damage (in case it's handled elsewhere in the verb or another proc that the suicide tree calls). Will dissociate client from mind and ghost the player regardless. |
| find_nearest_stair_or_ladder | Finds nearest ladder or staircase either up or down. |
| fully_heal | A grand proc used whenever this mob is, quote, "fully healed". Fully healed could mean a number of things, such as "healing all the main damage types", "healing all the organs", etc So, you can pass flags to specify |
| gather_belongings | Returns a list of things that the provided mob has, including any storage-capable implants. |
| get_access | Returns the access list for this mob |
| get_all_limbs | Returns a list of all limbs this mob should have. |
| get_all_linked_holoparasites | Returns a list of all holoparasites that has this mob as a summoner. |
| get_all_status_effect_of_id | Gets every status effect of an ID and returns all of them in a list, rather than the individual 'has_status_effect' |
| get_allergic_foodtypes | Gets food this mob is allergic to Essentially toxic food+, not only disgusting but outright lethal |
| get_attack_type | Returns the attack damage type of a living mob such as BRUTE. |
| get_available_operations | Returns a list of all surgery operations the mob can currently perform on the patient with the potential tool |
| get_bleed_rate | A helper to see how much blood we're losing per tick |
| get_blind_suicide_message | Returns an appropriate string for what people who lack visibility hear when this mob kills itself. If you don't want a message, prefer to override send_applicable_messages() on your subtype instead. |
| get_blood_dna_list | returns the mob's dna info as a list, to be inserted in an object's blood_DNA list |
| get_blood_name | Return what our blood is called, or just "blood" if we don't have any |
| get_bodypart | Returns a bodypart of the specified zone that this mob has |
| get_bodypart_pain | Returns the bodypart pain of [zone]. If [get_modified] is TRUE, returns the bodypart's pain multiplied by any modifiers affecting it. |
| get_bodyparts | Returns all bodyparts this mob has, optionally including stumps. |
| get_bodyparts_by_zones | Returns all bodyparts this mob has, indexed by their body zone Also includes stumps and nulls, so be sure to check for those if you use this proc. (Note: nulls will be very rare - as 95% of missing limbs are represented as stumps - but not impossible due to some edge cases) |
| get_bp | Return the mob's blood pressure |
| get_bp_range | Returns the mob's blood pressure range (calculated from average bp with some variance) as a list/tuple of (diastolic pressure, systolic pressure) |
| get_bpm | Return the mob's heart BPM |
| get_butt_sprite | Sprite to show for photocopying mob butts |
| get_current_damage_of_type | return the damage amount for the type given Simply a wrapper for calling mob getXLoss() procs to get a certain damage type, when you don't know what damage type you're getting exactly. |
| get_damage_mod | Returns a multiplier to apply to a specific kind of damage |
| get_disliked_foodtypes | Gets food flags that this mob dislikes |
| get_drunk_amount | Helper to get the amount of drunkness the mob's currently experiencing. |
| get_equipped_items | Used to return a list of equipped items on a mob; does not include held items (use get_all_gear) |
| get_exp_list | Returns an assoc list of assignments and minutes for updating a client's exp time in the databse. |
| get_fire_overlay | Gets the fire overlay to use for this mob |
| get_food_taste_reaction | Gets the food reaction a mob would normally have from the given food item, assuming that no check_liked callback was used in the edible component. |
| get_fullness | Get the fullness of the mob |
| get_hair_gradient_color | Get the hair gradient color of a human. Defaults to black. |
| get_hair_gradient_style | Get the hair gradient style of a human. Defaults to "None". arguments: |
| get_hit_area_message | Overridable proc so subtypes can have unique targetted strike zone messages, return a string. |
| get_idcard | Gets ID card from a mob. Argument: |
| get_incoming_damage_modifier | Used in tandem with /mob/living/proc/apply_damage to calculate modifier applied into incoming damage |
| get_insulation | Get the insulation that is appropriate to the temperature you're being exposed to. All clothing, natural insulation, and traits are combined returning a single value. |
| get_liked_foodtypes | Gets food flags that this mob likes |
| get_lying_dir | Returns what direction we look when we're lying down. If we're not lying down, returns own dir |
| get_organic_health | Returns the health of the mob while ignoring damage of non-organic (prosthetic) limbs Used by cryo cells to not permanently imprison those with damage from prosthetics, as they cannot be healed through chemicals. |
| get_parsonality_string | Returns a string with the names of the personalities of this mob, and their description as tooltip |
| get_pp | Return the mob's pulse pressure, which is primarily only relevant in calculating blood pressure |
| get_quirk | Getter function for a mob's quirk |
| get_quirk_string | get_quirk_string() is used to get a printable string of all the quirk traits someone has for certain criteria |
| get_shove_flags | Check if there's anything that could stop the knockdown from being shoved into something or someone. |
| get_shoving_message | Send the chat feedback message for shoving |
| get_skin_temperature | Get the temperature of the skin of the mob |
| get_status_effect_examinations | Shows any and all examine text related to any status effects the user has. |
| get_surgery_state_as_list | Takes a target zone and returns a list of readable surgery states for that zone. Example output may be list("Skin is cut", "Blood vessels are unclamped", "Bone is sawed") |
| get_taste_sensitivity | Gets taste sensitivity of given mob |
| get_temperature | Unsed in calculating what temperature our environment probably is. |
| get_timed_status_effect_duration | Gets how many deciseconds are remaining in the duration of the passed status effect on this mob. |
| get_total_damage | return the total damage of all types which update your health |
| get_toxic_foodtypes | Gets food flags that this mob hates Toxic food is the only category that ignores ageusia, KEEP IT LIKE THAT! |
| get_transform_translation_size | Calculates how far vertically the mob's transform should translate according to its size (1 being "default") |
| get_visible_suicide_message | Returns a subtype-specific flavorful string pertaining to this exact living mob's ending their own life to those who can see it (visible message). If you don't want a message, prefer to override send_applicable_messages() on your subtype instead. |
| gib | Blow up the mob into giblets |
| grab | Called when a mob is grabbing another mob. |
| grabbedby | Called when this mob is grabbed by another mob. |
| gravity_setup | Living Mob use event based gravity We check here to ensure we haven't dropped any gravity changes |
| handle_environment | Handle this mob's interactions with the environment |
| handle_ricochet | Simplified ricochet angle calculation for mobs (also the base version doesn't work on mobs) |
| handle_suicide | Actually handles the bare basics of the suicide process. Message type is the message we want to dispatch in the world regarding the suicide, using the defines in this file. Override this ENTIRELY if you want to add any special behavior to your suicide handling, if you fuck up the order of operations then shit will break. |
| handle_suicide_damage_spread | If we want to apply multiple types of damage to a carbon mob based on the way they suicide, this is the proc that handles that. Currently only compatible with Brute, Burn, Toxin, and Suffocation Damage. damage_type is the bitflag that carries the information. |
| has_blood | Do we have (mechanical) blood? |
| has_bones | Check if the mob has any bones |
| has_offset | Checks if we are offset by the passed source for the passed pixel. |
| has_reagent | Check if the mob contains this reagent. |
| heal_and_revive | Heals up the mob up to [heal_to] of the main damage types. EX: If heal_to is 50, and they have 150 brute damage, they will heal 100 brute (up to 50 brute damage) |
| heal_bodypart_damage | heal ONE external organ, organ gets randomly selected from damaged ones. |
| heal_damage_type | Simply a wrapper for calling mob adjustXLoss() procs to heal a certain damage type, when you don't know what damage type you're healing exactly. |
| heal_ordered_damage | heal up to amount damage, in a given order |
| heal_overall_damage | heal MANY bodyparts, in random order. note: stamina arg nonfunctional for carbon mobs |
| heal_pain | Heals pain on the mob. |
| ignore_slowdown | Ignores all slowdowns that lack the IGNORE_NOSLOW flag. |
| in_fov | Is observed_atom in a mob's field of view? This takes blindness, nearsightness and FOV into consideration |
| incapacitate | |
| incapacitated | Checks if a mob is incapacitated |
| init_unconscious_appearance | Inits the human_unconscious appearance for when the mob is unconscious |
| is_ears_covered | Checks if the mob's ears (BOTH EARS, BOWMANS NEED NOT APPLY) are covered by something. Returns the atom covering the mob's ears, or null if their ears are uncovered. |
| is_eyes_covered | Checks if our mob has their eyes covered. |
| is_location_accessible | Check if the passed body zone is covered by some clothes |
| is_mouth_covered | Checks if our mob has their mouth covered. |
| is_pepper_proof | Checks if our mob is protected from pepper spray. |
| late_examine | Mob level examining that happens after the main beef of examine is done |
| lazarus_revive | Proc called when TARGETED by a lazarus injector |
| look_down | look_down Changes the perspective of the mob to any openspace turf below the mob |
| look_up | look_up Changes the perspective of the mob to any openspace turf above the mob |
| lying_angle_on_movement | Called by mob Move() when the lying_angle is different than zero, to better visually simulate crawling. |
| manual_cauterize_check | Callback for checking if the cauterization do-after can continue |
| move_into_vent | Moves living mob directly into the vent as a ventcrawler |
| ominous_nosebleed | Prints an ominous message if something bad is going to happen to you |
| on_deathcoma_trait_gain | Called when TRAIT_DEATHCOMA is added to the mob. |
| on_deathcoma_trait_loss | Called when TRAIT_DEATHCOMA is removed from the mob. |
| on_fall | Called when mob changes from a standing position into a prone while lacking the ability to stand up at the moment. |
| on_fire_stack | Called every life tick that a mob is on fire. |
| on_floored_end | Proc to append behavior to the condition of being floored. Called when the condition ends. |
| on_floored_start | Proc to append behavior to the condition of being floored. Called when the condition starts. |
| on_floored_trait_gain | Called when TRAIT_FLOORED is added to the mob. |
| on_floored_trait_loss | Called when TRAIT_FLOORED is removed from the mob. |
| on_force_gravity | Called when TRAIT_FORCED_GRAVITY is gained or lost |
| on_forced_standing_trait_gain | Called when TRAIT_FORCED_STANDING is added to the mob. |
| on_forced_standing_trait_loss | Called when TRAIT_FORCED_STANDING is removed from the mob. |
| on_handsblocked_end | Proc to append behavior to the condition of being handsblocked. Called when the condition ends. |
| on_handsblocked_start | Proc to append behavior to the condition of being handsblocked. Called when the condition starts. |
| on_handsblocked_trait_gain | Called when TRAIT_HANDS_BLOCKED is added to the mob. |
| on_handsblocked_trait_loss | Called when TRAIT_HANDS_BLOCKED is removed from the mob. |
| on_ignore_gravity | Called when TRAIT_IGNORING_GRAVITY is gained or lost |
| on_immobilized_trait_gain | Called when TRAIT_IMMOBILIZED is added to the mob. |
| on_immobilized_trait_loss | Called when TRAIT_IMMOBILIZED is removed from the mob. |
| on_incapacitated_trait_gain | Called when [TRAIT_INCAPACITATED] is added to the mob. |
| on_incapacitated_trait_loss | Called when [TRAIT_INCAPACITATED] is removed from the mob. |
| on_knockedout_trait | Called when TRAIT_KNOCKEDOUT is added or removed from the mob. |
| on_loc_force_gravity | Called when our loc's TRAIT_FORCED_GRAVITY is gained or lost |
| on_lying_down | Proc to append behavior related to lying down. |
| on_movement_type_flag_disabled | From [element/movetype_handler/on_movement_type_trait_loss()] |
| on_movement_type_flag_enabled | From [element/movetype_handler/on_movement_type_trait_gain()] |
| on_negate_gravity | Called when TRAIT_NEGATES_GRAVITY is gained or lost |
| on_pull_blocked_trait_gain | Called when TRAIT_PULL_BLOCKED is added to the mob. |
| on_pull_blocked_trait_loss | Called when TRAIT_PULL_BLOCKED is removed from the mob. |
| on_restrained_trait_gain | Called when TRAIT_RESTRAINED is added to the mob. |
| on_restrained_trait_loss | Called when TRAIT_RESTRAINED is removed from the mob. |
| on_skittish_trait_gain | Called when [TRAIT_SKITTISH] is added to the mob. |
| on_skittish_trait_loss | Called when [TRAIT_SKITTISH] is removed from the mob. |
| on_standing_up | Proc to append behavior related to lying down. |
| on_ui_blocked_trait_gain | Called when TRAIT_UI_BLOCKED is added to the mob. |
| on_ui_blocked_trait_loss | Called when TRAIT_UI_BLOCKED is removed from the mob. |
| organ_emote | Performs an emote based on whether the passed organ is organic or robotic |
| organ_feedback_message | Send a feedback message to the mob based on on whether they have an organ, or if the organ is organic vs robotic |
| pain_emote | Runs an emote on the pain emote cooldown Emote supplied does NOT need to be a pain emote |
| pain_message | Runs a pain message on the pain message cooldown |
| perform_surgery | Attempts to perform a surgery with whatever tool is passed |
| refresh_gravity | Handles gravity effects. Call if something about our gravity has potentially changed! |
| register_init_signals | Called on /mob/living/Initialize(mapload), for the mob to register to relevant signals. |
| remove_consciousness_modifier | Removes a conscious modifier from the mob |
| remove_consciousness_multiplier | Removes a conscious multiplier from the mob |
| remove_fov_trait | Removes a trait which limits a user's FOV |
| remove_homeostasis_level | Removes a source of homeostasis level change from a mob. |
| remove_max_consciousness_value | Removes a max consciousness value from the mob |
| remove_movespeed_mod_immunities | Unignores specific slowdowns. Accepts a list of slowdowns. |
| remove_offsets | Goes through all pixel adjustments and removes any tied to the passed source. |
| remove_personality | Helper to easily remove a personality by a typepath |
| remove_status_effect | Removes all instances of a given status effect from this mob |
| remove_stun_absorption | Removes all stub absorptions with the passed source. |
| remove_surgery_speed_mod | Removes a speed modifier from this mob |
| reset_blood_type | Resets the blood type to the initial blood type, which is determined by species and DNA. |
| reset_pull_offsets | Removes any offsets from the passed mob that are related to being grabbed |
| resolve_right_click_attack | Called when an unarmed attack performed with right click hasn't been stopped by the LIVING_UNARMED_ATTACK_BLOCKED macro. This will call a secondary attack proc that can vary from mob type to mob type on the target. Sometimes, a target is interacted differently when right_clicked, in that case the secondary attack proc should return a SECONDARY_ATTACK_* value that's not SECONDARY_ATTACK_CALL_NORMAL. Otherwise, it should just return SECONDARY_ATTACK_CALL_NORMAL. Failure to do so will result in an exception (runtime error). |
| resolve_unarmed_attack | Called when the unarmed attack hasn't been stopped by the LIVING_UNARMED_ATTACK_BLOCKED macro or the right_click_attack_chain proc. This will call an attack proc that can vary from mob type to mob type on the target. |
| revive | Proc used to resuscitate a mob, bringing them back to life. |
| right_click_attack_chain | Checks for RIGHT_CLICK in modifiers and runs resolve_right_click_attack if so. Returns TRUE if normal chain blocked. |
| send_applicable_messages | Send all suicide-related messages out to the world. message_type can be used to change out the dispatched suicide message depending on the suicide context. |
| send_death_moodlets | Sends a moodlet to all nearby living mobs that are not blind or unconscious to indicate that they saw this mob die (and thus feel bad about it) |
| send_speech | Extend say so we can have talking make sounds. |
| setGrabState | Updates the grab state of the mob and updates movespeed |
| set_blood_type | Updates the blood_type variable with a blood_type singleton |
| set_body_position | Changes the value of the [living/body_position] variable. Call this before set_lying_angle() |
| set_buckled | Reports the event of the change in value of the buckled variable. |
| set_drunk_effect | Directly sets the "drunk value" the mob is currently experiencing to the passed value, or applies a drunk effect with the passed value if the mob isn't currently drunk |
| set_examine | Verb that lets you set temporary pose / examine text. |
| set_facial_hair_gradient_color | Set the facial hair gradient color of a human. Update calls update_body_parts(). |
| set_facial_hair_gradient_style | Set the facial hair gradient style of a human. Update calls update_body_parts(). |
| set_facial_haircolor | Set the facial hair color of a human. Override instead sets the override value, it will not be changed away from the override value until override is set to null. Update calls update_body_parts(). |
| set_facial_hairstyle | Set the facial hair style of a human. Update calls update_body_parts(). |
| set_fire_stacks | Set the fire stacks on a mob |
| set_hair_gradient_color | Set the hair gradient color of a human. Update calls update_body_parts(). |
| set_hair_gradient_style | Set the hair gradient style of a human. Update calls update_body_parts(). |
| set_haircolor | Set the hair color of a human. Override instead sets the override value, it will not be changed away from the override value until override is set to null. Update calls update_body_parts(). |
| set_hairstyle | Set the hair style of a human. Update calls update_body_parts(). |
| set_health | Sets the current mob's health value. Do not call directly if you don't know what you are doing, use the damage procs, instead. |
| set_incapacitated | |
| set_lying_angle | Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions. |
| set_lying_down | Change the [body_position] to LYING_DOWN and update associated behavior. |
| set_move_intent | Sets the mob's move intent to the passed intent |
| set_num_hands | Proc to modify the value of num_hands and hook behavior associated to this event. |
| set_num_legs | Proc to modify the value of num_legs and hook behavior associated to this event. |
| set_pain_mod | Sets the pain modifier of [id] to [amount]. |
| set_pull_offsets | Updates the offsets of the passed mob according to the passed grab state and the direction between them and us |
| set_resting | Proc to hook behavior to the change of value in the resting variable. |
| set_suicide | Proc that handles adding the TRAIT_SUICIDED on the mob in question, as well as additional operations to ensure that everything goes smoothly when we're certain that this person is going to kill themself. suicide_state is a boolean, and we handle adding/removing the trait in question. Have the trait function reference this mob as the source if we want to do in-depth tracking of where a suicided trait comes from. For example, the /mob/dead/observer that will inevitably come from the suicidee will inherit the suicided trait upon creation, and keep this reference. Handy for doing checking should we need it. |
| set_timed_pain_mod | Set [id] pain modifier to [amount], and unsets it after [time] deciseconds have elapsed. |
| set_timed_status_effect | Sets a timed status effect of some kind on a mob to a specific value. If only_if_higher is TRUE, it will only set the value up to the passed duration, so any pre-existing status effects of the same type won't be reduced down |
| set_usable_hands | Proc to modify the value of usable_hands and hook behavior associated to this event. |
| set_usable_legs | Proc to modify the value of usable_legs and hook behavior associated to this event. |
| share_blood_on_touch | When another mob touches us, they may messy us up. |
| shared_living_ui_distance | public |
| sharp_pain | Cause [amount] of [dam_type] sharp pain to [target_zones]. Sharp pain is for sudden spikes of pain that go away after [duration] deciseconds. |
| sig_update_stat | Called when TRAIT_SOFT_CRIT is gained or lost |
| singularity_act | Logs, gibs and returns point values of whatever mob is unfortunate enough to get eaten. |
| sleeping_carp_help | Verb added to humans who learn the art of the sleeping carp. |
| smell_something | Attempt to smell things around us |
| spawn_dust | Spawns dust / ash or remains where the mob was |
| spawn_gibs | Spawn bloody gib mess on the floor |
| spill_organs | Drops a mob's organs on the floor |
| spread_bodyparts | Launches all bodyparts away from the mob |
| suicide | Verb to simply kill yourself (in a very visual way to all players) in game! How family-friendly. Can be governed by a series of multiple checks (i.e. confirmation, is it allowed in this area, etc.) which are handled and called by the proc this verb invokes. It's okay to block this, because we typically always give mobs in-game the ability to Ghost out of their current mob irregardless of context. This, in contrast, can have as many different checks as you desire to prevent people from doing the deed to themselves. |
| suicide_alert | Sends a TGUI Alert to the person attempting to commit suicide. Returns TRUE if they confirm they want to die, FALSE otherwise. Check can_suicide here as well. |
| suicide_log | Inserts logging in both the mob's logs and the investigate log pertaining to their death. Suicide tool is the object we used to commit suicide, if one was held and used (presently only humans use this arg). |
| surgery_check | Callback for checking if the surgery radial can be kept open |
| switch_style | Deactivates the current martial art and activates the next one. |
| take_overall_damage | Attempts to damage all of the damageable bodyparts of the mob, spreading damage accordingly |
| tally_physical_credits | Totals the physical cash on the mob and returns the total. |
| taste | Non destructively tastes a reagent container and gives feedback to the user. |
| temperature_burns | Applies damage to the mob due to being too hot |
| temperature_cold_damage | Applies damage to the mob due to being too cold |
| temperature_homeostasis | Handles this mob internally managing its body temperature (sweating or generating heat) |
| tram_slam_land | A proc triggered by callback when someone gets slammed by the tram and lands somewhere. |
| transfer_blood_to | BLOOD TRANSFERS |
| treat_message | Treats the passed message with things that may modify speech (stuttering, slurring etc). |
| try_catch_item | The core of catching thrown items, which non-carbons cannot without the help of items or abilities yet, as they've no throw mode. |
| try_inject | Like can_inject, but it can perform side effects. |
| try_manual_cauterize | src attempts to cauterize themselves to reset their surgery state. Basically a manual form of the real "close skin" operation |
| undense_changed | Called when TRAIT_UNDENSE is gained or lost |
| unequip_everything | Returns the items that were succesfully unequipped. |
| unfriend | Proc for removing a friend you added with the proc 'befriend'. Returns true if you removed a friend. |
| unignore_slowdown | Unignores all slowdowns that lack the IGNORE_NOSLOW flag. |
| unset_pain_mod | Unsets the pain mod at the supplied [id]. |
| update_eyes | Updates eye sprites if relevant |
| update_fov | Updates the applied FOV value and applies the handler to client if able |
| update_fov_client | Updates the FOV for the client. |
| update_fullscreen | Proc used to handle the fullscreen overlay updates, realistically meant for the reset_perspective() proc. |
| update_hair | Updates hair sprites if relevant |
| update_homeostasis_level | Updates an existing change to the mob's homeostasis levels |
| update_limbless_locomotion | Updates whether the mob is floored or immobilized based on how many limbs they have or are missing. |
| update_limbless_movespeed_mod | Updates the mob's movespeed based on how many limbs they have or are missing. |
| update_lips | Used to update the makeup on a human and apply/remove lipstick traits, then store/unstore them on the head object in case it gets severed |
| update_medhud_on_signal | Updates medhud when recieving relevant signals. |
| update_offsets | Updates the mob's pixel position according to the offsets. |
| update_pipe_vision | Everything related to pipe vision on ventcrawling is handled by update_pipe_vision(). Called on exit, entrance, and pipenet differences (e.g. moving to a new pipenet). One important thing to note however is that the movement of the client's eye is handled by the relaymove() proc in /obj/machinery/atmospherics. We move first and then call update. Dont flip this around |
| update_resting | Proc to append and redefine behavior to the change of the [/mob/living/var/resting] variable. |
| update_succumb_action | Called when traits that alter succumbing are added/removed. |
| update_transform | Called whenever the mob is to be resized or when lying/standing up for carbons. IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. |
| update_wound_overlays | Proc that only really gets called for humans, to handle bleeding overlays. |
| wabbajack | Polymorphs our mob into another mob. If successful, our current mob is qdeleted! |
| whisper | Living level whisper. |
| will_escape_storage | Whether or not this mob will escape from storages while being picked up/held. |
| zMove | We want to relay the zmovement to the buckled atom when possible and only run what we can't have on buckled.zMove() or buckled.can_z_move() here. This way we can avoid esoteric bugs, copypasta and inconsistencies. |
Var Details
blood_type 
Blood type singleton this mob currently has. If null, the mob doesn't have blood.
blood_volume 
How much blood the mob has. If initially 0, the mob gains TRAIT_NOBLOOD permanently.
body_maptext_height_offset 
The height offset of a mob's maptext due to their current size.
body_position 
Variable to track the body position of a mob, regardgless of the actual angle of rotation (usually matching it, but not necessarily).
body_temperature 
Temperature of our insides
bodytemp_cold_damage_limit 
How cold to start sustaining cold damage
bodytemp_heat_damage_limit 
How hot to start sustaining heat damage
bruteloss 
Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)
bubble_icon 
used to prevent spam with smoke reagent reaction on mob. what icon the mob uses for speechbubbles
butcher_difficulty 
effectiveness prob. is modified negatively by this amount; positive numbers make it more difficult, negative ones make it easier
butcher_results 
these will be yielded from butchering with a probability chance equal to the butcher item's effectiveness
can_be_held 
whether this can be picked up and held.
can_buckle_to 
Is this mob allowed to be buckled/unbuckled to/from things?
combat_mode 
If combat mode is on or not
consciousness 
How conscious is the mob?
This is, effectively, the mob's REAL health. It is a cumulative value of many factors, including health, wounds, diseases, and so on.
0 is death. 100 is default. 150 is the maximum.
consciousness_modifiers 
Assoc Lazylist of flat modifiers to consciousness.
consciousness_multipliers 
Assoc Lazylist of multipliers to consciousness. Applied after modifiers.
current_size 
Tracks the current size of the mob in relation to its original size. Use update_transform(resize) to change it.
current_turf_slowdown 
what multiplicative slowdown we get from turfs currently.
death_message 
A message sent when the mob dies, with the *deathgasp emote
death_sound 
A sound sent when the mob dies, with the *deathgasp emote
default_num_hands 
How many hands does this mob have by default. This shouldn't change at runtime.
default_num_legs 
How many legs does this mob have by default. This shouldn't change at runtime.
diseases 
list of all diseases in a mob
fire_stack_decay_rate 
Rate at which fire stacks should decay from this mob
fireloss 
Burn damage caused by being way too hot, too cold or burnt.
fov_traits 
Lazy list of FOV traits that will apply a FOV view when handled.
fov_view 
FOV view that is applied from either nativeness or traits
gravity_state 
What our current gravity state is. Used to avoid duplicate animates and such
guaranteed_butcher_results 
these will always be yielded from butchering
has_limbs 
does the mob have distinct limbs?(arms,legs, chest,head)
head_icon 
what it looks like when the mob is held on your head
health 
The mob's current health.
health_doll_icon 
if this exists AND the normal sprite is bigger than 32x32, this is the replacement icon state (because health doll size limitations). the icon will always be screen_gen.dmi
held_lh 
left hand icon for holding mobs
held_rh 
right hand icon for holding mobs
held_state 
icon_state for holding mobs.
held_w_class 
The w_class of the holder when held.
homeostasis_targets 
Lazylist of targets we homeostasize to This allows multiple effects to add a different target to the list, which is averaged (So you can have both a fever and a cold at the same time) If empty just defaults to standard_body_temperature
imaginary_group 
Contains the owner and all imaginary friend mobs if they exist, otherwise null
incorporeal_move 
Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects.
FALSE is off, INCORPOREAL_MOVE_BASIC is normal, INCORPOREAL_MOVE_SHADOW is for ninjas and INCORPOREAL_MOVE_JAUNT is blocked by holy water/salt
initial_blood_type 
What blood type do we set on init. This can be set even on mobs that don't mechanically have blood, allowing them to create blood decals to sell the illusion of them really having blood.
last_special 
Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out.
last_vent_dir 
The last direction we moved in a vent. Used to make holding two directions feel nice
last_words 
used for database logging
limb_destroyer 
Sets AI behavior that allows mobs to target and dismember limbs with their basic attack.
linked_flavor 
The flavor text linked to our carbon.
living_flags 
Generic bitflags for boolean conditions at the /mob/living level. Keep this for inherent traits of living types, instead of runtime-changeable ones.
lying_angle 
Number of degrees of rotation of a mob. 0 means no rotation, up-side facing NORTH. 90 means up-side rotated to face EAST, and so on.
lying_prev 
Value of lying lying_angle before last change. TODO: Remove the need for this.
martial_arts 
Lazylist of martial arts this mob knows First element is the current martial art - any other elements are "saved" for if they unlearn the first one Reference handling is done by the martial arts themselves
maxHealth 
Maximum health that should be possible.
max_consciousness_values 
Assoc Lazylist of max consciousness values. Smallest one is used, but not beyond 10. Don't increase max consciousness (over 150), that makes no sense.
max_stamina 
The max amount of stamina damage we can have at once
melee_damage_lower 
Lower bound of damage done by unarmed melee attacks. Mob code is a mess, only works where this is checked for.
melee_damage_upper 
Upper bound of damage done by unarmed melee attacks. Please ensure you check the xyz_defenses.dm for the mobs in question to see if it uses this or hardcoded values.
metabolism_efficiency 
How efficient are we at metabolizing reagents and regulating body temperature? Note: Do not set this for mobs with stomach organs, as the stomach overrides this value entirely.
mob_biotypes 
List of biotypes the mob belongs to. Used by diseases and reagents mainly.
mob_mood 
Living mob's mood datum
mob_respiration_type 
The type of respiration the mob is capable of doing. Used by adjustOxyLoss.
mob_surgery_speed_mods 
Lazylist of surgery speed modifiers - id to number - 2 = 2x faster, 0.5x = 0.5x slower
mobility_flags 
Flags that determine the potential of a mob to perform certain actions. Do not change this directly.
move_intent 
The movement intent of the mob (run/wal)
navigate_cooldown 
Cooldown of the navigate() verb.
now_pushing 
Used by [living/Bump()][/mob/living/proc/Bump] and [living/PushAM()][/mob/living/proc/PushAM] to prevent potential infinite loop.
num_hands 
How many hands hands does this mob currently have. Should only be changed through set_num_hands()
num_legs 
How many legs does this mob currently have. Should only be changed through set_num_legs()
numba 
the id a mob gets when it's created
offsets 
Lazylists of pixel offsets this mob is currently using Modify this via add_offsets and remove_offsets, NOT directly (and definitely avoid modifying offsets directly)
on_fire 
Helper vars for quick access to firestacks, these should be updated every time firestacks are adjusted
outgoing_damage_mod 
Modified applied to attacks with items or fists
oxyloss 
Oxygen depravation damage (no air in lungs)
pain_controller 
The pain controller datum - tracks, processes, and handles pain. Only intialized on humans (currently), here for ease of access / future compatibillity?
personalities 
Lazylist of all typepaths of personalities the mob has.
pipetracker 
Cell tracker datum we use to manage the pipes around us, for faster ventcrawling Should only exist if you're in a pipe
quirks 
Lazylist of all quirks the mob has. These are not singletons
recently_smelled 
List of smell datums we smelled recently, we get accustomed to it over time
rotate_on_lying 
Does the mob rotate when lying
slowed_by_drag 
Whether the mob is slowed down when dragging another prone mob
smell_cd 
Cooldown between smell attempts
speech_sound_frequency_modifier 
Modifier to speech sounds frequency Lower = longer, deeper speech sounds Higher = quicker, higher-pitch speech sounds
speech_sound_pitch_modifier 
Modifier to speech sounds pitch Like frequency but doesn't affect length Lower = deeper speech sounds Higher = higher-pitch speech sounds
staminaloss 
Basically, amount of fatigue Having a lot of it slows down your movement speed Also often used for "fake damage"
standard_body_temperature 
Body temp we homeostasize to
station_timestamp_timeofdeath 
The mob's latest time-of-death, as a station timestamp instead of world.time
status_effects 
a list of all status effects the mob has
temp_alerts 
Whether we currently have temp alerts, minor optimization
temperature_homeostasis_speed 
How fast the mob's temperature normalizes to their homeostasis Also gets multiplied by metabolism_efficiency. Note that more of this = more nutrition is consumed every life tick.
temperature_insulation 
Protection (insulation) from temperature changes, max 1
temperature_normalization_speed 
How fast the mob's temperature normalizes to their environment
timeofdeath 
The mob's latest time-of-death
toxloss 
Toxic damage caused by being poisoned or radiated
unique_name 
if a mob's name should be appended with an id when created e.g. Mob (666)
usable_hands 
How many usable hands does this mob currently have. Should only be changed through set_usable_hands()
usable_legs 
How many usable legs this mob currently has. Should only be changed through set_usable_legs()
welded_vent_message_cd 
Cooldown for welded vent movement messages to prevent spam
worn_slot_flags 
if it can be held, can it be equipped to any slots? (think pAI's on head)
Proc Details
IsFrozen
FROZEN
Life
Handles the biological and general over-time processes of the mob.
Arguments:
- seconds_per_tick: The amount of time that has elapsed since this last fired.
- times_fired: The number of times SSmobs has fired
PermaSleeping
Allows us to set a permanent sleep on a player (use with caution and remember to unset it with SetSleeping() after the effect is over)
Write_Memory
Proc used by different station pets such as Ian and Poly so that some of their data can persist between rounds. This base definition only contains a trait and comsig to stop memory from being (over)written. Specific behavior is defined on subtypes that use it.
ZImpactDamage
Called when this mob is receiving damage from falling
- impacted_turf - the turf we are falling onto
- levels - the number of levels we are falling
_cause_hallucination
Unless you need this for an explicit reason, use the cause_hallucination wrapper.
add_consciousness_modifier
Adds a conscious modifier to the mob
Only on living because I am lazy
add_consciousness_multiplier
Adds a conscious multiplier to the mob
Only on living because I am lazy
add_fov_trait
Adds a trait which limits a user's FOV
add_generic_humanoid_static_appearance
Generic helper to add a static-y humanoid appearance shown to other mobs when unconscious
add_homeostasis_level
Changes the level to which the mob homeostasises to, while optionally providing a buff to the rate at which they do so.
Additional buff to homeostasis rate does not affecte nutrition drain of homeostasis.
Args
- source: String key source of this effect
- to_value: The target value to homeostasise to
- delta_change: Optional, additional rate of change to the mob's body temperature
- while_stasis: Optional, if delta change is supplied, it will tick while the mob is in stasis
- while_dead: Optional, if delta change is supplied, it will tick while the mob is dead
- update_species: Optional, if TRUE, and if the mob's species changes, we will update the target temp. to accomodate (via the difference in new species vs old species standard_body_temperature)
add_max_consciousness_value
Adds a max consciousness value to the mob
Only on living because I am lazy
add_mood_event
Adds a mood event to the mob
add_movespeed_mod_immunities
Ignores specific slowdowns. Accepts a list of slowdowns.
add_offsets
Adds an offset to the mob's pixel position.
- source: The source of the offset, a string
- w_add: pixel_w offset
- x_add: pixel_x offset
- y_add: pixel_y offset
- z_add: pixel_z offset
- animate: If TRUE, the mob will animate to the new position. If FALSE, it will instantly move.
add_personalities
Helper to easily add multiple personalities by a list of typepaths
add_personality
Helper to easily add a personality by a typepath
add_quirk
Adds the passed quirk to the mob
Arguments
- quirktype - Quirk typepath to add to the mob If not passed, defaults to this mob's client.
Returns TRUE on success, FALSE on failure (already has the quirk, etc)
add_splatter_floor
Create a splat of this mob's life juice Does nothing if the mob does not have a blood type set DOES work if the mob does not actually have blood but does have a blood type
- blood_turf - where to make the splatter. defaults to the current turf
- small_drip - whether to make a small drip or a big splat
add_stun_absorption
[proc/apply_status_effect] wrapper specifically for /datum/status_effect/stun_absorption, specifically so that it's easier to apply stun absorptions with named arguments.
If the mob already has a stun absorption from the same source, will not re-apply the effect, unless the new effect's priority is higher than the old effect's priority.
Arguments
- source - the source of the stun absorption.
- duration - how long does the stun absorption last before it ends? -1 or null (or infinity) = infinite duration
- priority - what is this effect's priority to other stun absorptions? higher = more priority
- message - optional, "other message" arg of visible message, shown on trigger. Use %EFFECT_OWNER if you want the owner's name to be inserted.
- self_message - optional, "self message" arg of visible message, shown on trigger
- examine_message - optional, what is shown on examine of the mob.
- max_seconds_of_stuns_blocked - optional, how many seconds of stuns can it block before deleting? the stun that breaks over this number is still blocked, even if it is much higher.
- delete_after_passing_max - optional, if TRUE, after passing the max seconds of stuns blocked, we will delete ourself. If FALSE, we will instead recharge after some time.
- recharge_time - optional, if [delete_after_passing_max] is FALSE, this is how long we will wait before recharging. does nothing if [delete_after_passing_max] is TRUE.
Returns an instance of a stun absorption effect, or NULL if failure
add_surgery_speed_mod
Adds a speed modifier to this mob
- id - id of the modifier, string
- amount - the multiplier to apply to surgery speed. This is multiplicative with other modifiers.
- duration - how long the modifier should last in deciseconds. If null, it will be permanent until removed.
adjust_drunk_effect
Adjust the "drunk value" the mob is currently experiencing, or applies a drunk effect if the mob isn't currently drunk (or tipsy)
The drunk effect doesn't have a set duration, like dizziness or drugginess, but instead relies on a value that decreases every status effect tick (2 seconds) by: 4% the current drunk_value + 0.01
A "drunk value" of 6 is the border between "tipsy" and "drunk".
amount - the amount of "drunkness" to apply to the mob. down_to - the lower end of the clamp, when adding the value up_to - the upper end of the clamp, when adding the value
adjust_fire_stacks
Adjust the amount of fire stacks on a mob
This modifies the fire stacks on a mob.
Vars:
- stacks: int The amount to modify the fire stacks
- fire_type: type Type of fire status effect that we apply, should be subtype of /datum/status_effect/fire_handler/fire_stacks
adjust_incapacitated
- Proc that adds duration to an incapacitated status effect.
- Checks if the mob has the status effect. If yes, it adds the amount passed in arguments to the remaining duration. If not, applies the status effect
- and sets the duration to the amount passed in arguments.
-
- amount - Amount of time the status effect should be set to, in deciseconds.
-
- ignore_canstun - If TRUE, the mob's resistance to stuns is ignored.
adjust_status_effects_on_shake_up
CLEAR STATUS
adjust_timed_status_effect
Adjusts a timed status effect on the mob,taking into account any existing timed status effects. This can be any status effect that takes into account "duration" with their initialize arguments.
Positive durations will add deciseconds to the duration of existing status effects or apply a new status effect of that duration to the mob.
Negative durations will remove deciseconds from the duration of an existing version of the status effect, removing the status effect entirely if the duration becomes less than zero (less than the current world time).
duration - the duration, in deciseconds, to add or remove from the effect effect - the type of status effect being adjusted on the mob max_duration - optional - if set, positive durations will only be added UP TO the passed max duration
adjust_traumatic_shock
Adjusts the progress of pain shock on the current mob.
- amount - the number of ticks of progress to remove. Note that one tick = two seconds for pain.
- down_to - the minimum amount of pain shock the mob can have.
admin_give_delusion
Admin only proc for giving the mob a delusion hallucination with specific arguments
admin_give_hallucination
Admin only proc for making the mob hallucinate a certain thing
admin_give_speech_impediment
Admin only proc for giving a certain speech impediment to this mob
amount_incapacitated
Proc that returns the remaining duration of the status efect in deciseconds.
appears_alive
Helper to check if we seem to be alive or not
apply_damage
Applies damage to this mob.
Sends COMSIG_MOB_APPLY_DAMAGE
Arguuments:
- damage - Amount of damage
- damagetype - What type of damage to do. one of BRUTE, BURN, TOX, OXY, STAMINA, BRAIN.
- def_zone - What body zone is being hit. Or a reference to what bodypart is being hit.
- blocked - Percent modifier to damage. 100 = 100% less damage dealt, 50% = 50% less damage dealt.
- forced - "Force" exactly the damage dealt. This means it skips damage modifier from blocked.
- spread_damage - For carbons, spreads the damage across all bodyparts rather than just the targeted zone.
- wound_bonus - Bonus modifier for wound chance.
- bare_wound_bonus - Bonus modifier for wound chance on bare skin.
- sharpness - Sharpness of the weapon.
- attack_direction - Direction of the attack from the attacker to [src].
- attacking_item - Item that is attacking [src].
Returns the amount of damage dealt.
apply_damages
Applies multiple damages at once via apply_damage
apply_effect
applies various common status effects or common hardcoded mob effects
apply_effects
Applies multiple effects at once via /mob/living/proc/apply_effect
Pretty much only used for projectiles applying effects on hit, don't use this for anything else please just cause the effects directly
apply_min_pain
Adjust the minimum pain the target zone can experience for a time
This means that the target zone will not be able to go below the specified pain amount
- target_zone - required, which zone to afflict pain to
- amount - how much min pain to increase
- time - how long to incease the min pain to
apply_prefs_job
Applies the preference options to the spawning mob, taking the job into account. Assumes the client has the proper mind.
apply_status_effect
Applies a given status effect to this mob.
new_effect - TYPEPATH of a status effect to apply. Additional status effect arguments can be passed.
Returns the instance of the created effected, if successful. Returns 'null' if unsuccessful.
apply_suicide_damage
The actual proc that will apply the damage to the suiciding mob. damage_type is the actual type of damage we want to deal, if that matters. Return TRUE if we actually apply any real damage, FALSE otherwise.
attack_effects
Called when we take damage, used to cause effects such as a blood splatter.
Return TRUE if an effect was done, FALSE otherwise.
base_click_ctrl
Ctrl click For most objects, pull
became_unhuskable
Called when we become unhuskable while already husked
befriend
Proc for giving a mob a new 'friend', generally used for AI control and targeting. Returns false if already friends.
bleed
Makes a blood drop, leaking amt units of blood from the mob
bleedDragAmount
Returns how much blood we're losing from being dragged a tile, from [/mob/living/proc/make_blood_trail]
can_be_revived
Checks if we are actually able to ressuscitate this mob. (We don't want to revive then to have them instantly die again)
can_catch_item
Checks the requites for catching a throw item.
can_disarm
Check if the universal conditions for disarming/shoving are met.
can_enter_vent
Checks if the mob is able to enter the vent, and provides feedback if they are unable to.
can_inject
Returns whether or not the mob can be injected. Should not perform any side effects.
Arguments:
- user - The user trying to inject the mob.
- target_zone - The zone being targeted.
- injection_flags - A bitflag for extra properties to check. Check _DEFINES/injection.dm for more details, specifically the ones prefixed INJECT_CHECK*.
can_look_up
Checks if the user is incapacitated or on cooldown.
can_suicide
Checks if we are in a valid state to suicide (not already suiciding, capable of actually killing ourselves, area checks, etc.) Returns TRUE if we can suicide, FALSE if we can not.
can_track
Checks if this mob can be actively tracked by cameras / AI. Can optionally be passed a user, which is the mob who is tracking src.
can_unarmed_attack
Checks if this mob is in a valid state to punch someone.
(Potentially) gives feedback to the mob if they cannot.
cause_pain
Causes pain to this mob.
Excess pain is converted to shock directly.
(Note that most damage causes pain regardless, but this is still useful for direct pain damage)
- target_zone - required, which zone or zones to afflict pain to If passed multiple zones, the amount will be divided evenly between them, though leftover pain will be distributed to the remaining zones.
- amount - how much pain to inflict
- dam_type - the type of pain to inflict. Only BRUTE and BURN really matters.
Returns the amount of pain caused, or 0 if nothing was caused or no pain controller exists.
check_projectile_dismemberment
Attempts to dismember a limb if hit with a projectile that has a dismemberment value.
check_stun_immunity
Checks if we have stun immunity. Godmode always passes this check.
- check_flags - bitflag of status flags that must be set in order for the stun to succeed. Passing NONE will always return false.
- force_stun - whether we ignore stun immunity with the exception of godmode
returns TRUE if stun immune, FALSE otherwise
clean_lips
A wrapper for mob/living/carbon/human/proc/update_lips that sets the lip style and color to null.
clear_mood_event
Clears a mood event from the mob
clear_personalities
Helper to clear all personalities from a mob
compare_sentience_type
Helper proc for basic and simple animals to return true if the passed sentience type matches theirs Living doesn't have a sentience type though so it always returns false if not a basic or simple mob
create_thinking_indicator
Overrides for overlay creation
damage_random_bodypart
Damages a random bodypart
debug_get_all_available_surgeries
Debug proc to print all surgeries available to whoever called the proc
disarm
Attempt to disarm the target mob. Some items might let you do it, also carbon can do it with right click. Will shove the target mob back, and drop them if they're in front of something dense or another carbon.
dismembering_strike
Really weird proc that attempts to dismebmer the passed zone if it is at max damage Unless the attacker is an NPC, in which case it disregards the zone and picks a random one
Cannot dismember heads
Returns a falsy value (null) on success, and a truthy value (the hit zone) on failure
do_jitter_animation
Helper proc that causes the mob to do a jittering animation by jitter_amount. jitter_amount will only apply up to 300 (maximum jitter effect).
do_slap_animation
Does a slap animation on an atom
Uses do_attack_animation to animate the attacker attacking then draws a hand moving across the top half of the target(where a mobs head would usually be) to look like a slap Arguments:
- atom/A - atom being slapped
do_splatter_effect
Create a visual effect of this mob's blood splattering in a direction Does nothing if the mob does not have a blood type set DOES work if the mob does not actually have blood but does have a blood type
- splat_dir - the direction to splatter in. defaults to a random cardinal direction
do_stagger_animation
Helper proc that causes the mob to do a stagger animation. Doesn't change significantly, just meant to represent swaying back and forth
do_strange_reagent_revival
Called by strange_reagent, with the amount of healing the strange reagent is doing It uses the healing amount on brute/fire damage, and then uses the excess healing for revive
dust
This is the proc for turning a mob into ash. Dusting robots does not eject the MMI, so it's a bit more powerful than gib()
Arguments:
- just_ash - If TRUE, ash will spawn where the mob was, as opposed to remains
- drop_items - Should the mob drop their items before dusting?
- force - Should this mob be FORCABLY dusted?
edit_immerse_overlay
Called in /datum/element/immerse/apply_filter
electrocute_act
As the name suggests, this should be called to apply electric shocks.
examine
Flavor text and Personal Records On Examine INS AND OUTS (implementation by mrmelbert)
-
Admin ghosts, when examining, are given a list of buttons for all the records of a player. (This can probably be moved to examine_more if it's too annoying)
-
When you examine yourself, you will always see your own records and flavor text, no matter what.
-
When another person examines you, the following happens:
If your face is covered (by helmet or mask), they will not see your favor text or records, unless you're wearing your ID. If you are wearing another player's ID (In disguise as another active player), they will see the other player's records and flavor instead. If you are not wearing another player's ID (if you are unknown, or wearing a non-player's ID), no records or flavor text will show up as if none were set. If you do not have any flavor text or records set, nothing special happens. The examine is normal.
-
Flavor text is displayed to other players without any pre-requisites. It displays EXAMINE_FLAVOR_MAX_DISPLAYED (65 by default) characters before being trimmed.
-
Exploitive information is displayed via link to antagonists with the proper flags.
Bonus: If you are not connected to the server and someone examines you... an AFK timer is shown to the examiner, which displays how long you have been disconnected for.
execute_resist
proc extender of [/mob/living/verb/resist] meant to make the process queable if the server is overloaded when the verb is called
expose_reagents
-
Handles exposing a mob to reagents.
-
If the methods include INGEST or INHALE, the mob tastes the reagents.
-
If the methods include VAPOR it incorporates permiability protection.
extinguish_mob
Extinguish all fire on the mob
This removes all fire stacks, fire effects, alerts, and moods Signals the extinguishing.
fakedeath
Induces fake death on a living mob.
final_checkout
Inserts in logging and death + mind dissociation when we're fully done with ending the life of our mob, as well as adjust the health. We will disallow re-entering the body when this is called. The suicide_tool variable is currently only used for humans in order to allow suicide log to properly put stuff in investigate log. Set apply_damage to FALSE in order to not do damage (in case it's handled elsewhere in the verb or another proc that the suicide tree calls). Will dissociate client from mind and ghost the player regardless.
find_nearest_stair_or_ladder
Finds nearest ladder or staircase either up or down.
Arguments:
- direction - UP or DOWN.
fully_heal
A grand proc used whenever this mob is, quote, "fully healed". Fully healed could mean a number of things, such as "healing all the main damage types", "healing all the organs", etc So, you can pass flags to specify
See [mobs.dm] for more information on the flags
If you ever think "hey I'm adding something and want it to be reverted on full heal", consider handling it via signal instead of implementing it in this proc
gather_belongings
Returns a list of things that the provided mob has, including any storage-capable implants.
get_access
Returns the access list for this mob
get_all_limbs
Returns a list of all limbs this mob should have.
get_all_linked_holoparasites
Returns a list of all holoparasites that has this mob as a summoner.
get_all_status_effect_of_id
Gets every status effect of an ID and returns all of them in a list, rather than the individual 'has_status_effect'
get_allergic_foodtypes
Gets food this mob is allergic to Essentially toxic food+, not only disgusting but outright lethal
get_attack_type
Returns the attack damage type of a living mob such as BRUTE.
get_available_operations
Returns a list of all surgery operations the mob can currently perform on the patient with the potential tool
- src - the surgeon
- patient - the mob being operated on
- potential_tool - the tool being used for the operation (can be null / IMPLEMENT_HAND)
- operating_zone - the body zone being operated on
Returns a list where the keys are radial menu slices and the values are lists of:
- [0] - the operation datum
- [1] - the atom being operated on
- [2] - a list of option-specific info
get_bleed_rate
A helper to see how much blood we're losing per tick
get_blind_suicide_message
Returns an appropriate string for what people who lack visibility hear when this mob kills itself. If you don't want a message, prefer to override send_applicable_messages() on your subtype instead.
get_blood_dna_list
returns the mob's dna info as a list, to be inserted in an object's blood_DNA list
get_blood_name
Return what our blood is called, or just "blood" if we don't have any
get_bodypart
Returns a bodypart of the specified zone that this mob has
- zone: the zone to get. Defaults to chest, allowing for skilling zone nullchecks if you don't care what bodypart you get.
- include_stumps: whether or not to consider stumps as valid bodyparts to return. Defaults to FALSE, meaning that if a limb is missing (is a stump), nothing will be returned.
Returns a bodypart, or null.
get_bodypart_pain
Returns the bodypart pain of [zone]. If [get_modified] is TRUE, returns the bodypart's pain multiplied by any modifiers affecting it.
get_bodyparts
Returns all bodyparts this mob has, optionally including stumps.
include_stumps: whether or not to consider stumps as valid bodyparts to return. Defaults to FALSE, meaning that if a limb is missing (is a stump), it won't be included in the returned list.
Returns a list of bodyparts, which may be empty.
get_bodyparts_by_zones
Returns all bodyparts this mob has, indexed by their body zone Also includes stumps and nulls, so be sure to check for those if you use this proc. (Note: nulls will be very rare - as 95% of missing limbs are represented as stumps - but not impossible due to some edge cases)
Returns a list of bodyparts indexed by their body zone
get_bp
Return the mob's blood pressure
get_bp_range
Returns the mob's blood pressure range (calculated from average bp with some variance) as a list/tuple of (diastolic pressure, systolic pressure)
get_bpm
Return the mob's heart BPM
get_butt_sprite
Sprite to show for photocopying mob butts
get_current_damage_of_type
return the damage amount for the type given Simply a wrapper for calling mob getXLoss() procs to get a certain damage type, when you don't know what damage type you're getting exactly.
get_damage_mod
Returns a multiplier to apply to a specific kind of damage
get_disliked_foodtypes
Gets food flags that this mob dislikes
get_drunk_amount
Helper to get the amount of drunkness the mob's currently experiencing.
get_equipped_items
Used to return a list of equipped items on a mob; does not include held items (use get_all_gear)
Argument(s):
- Optional - include_flags, (see obj.flags.dm) describes which optional things to include or not (pockets, accessories, held items)
get_exp_list
Returns an assoc list of assignments and minutes for updating a client's exp time in the databse.
Arguments:
- minutes - The number of minutes to allocate to each valid role.
get_fire_overlay
Gets the fire overlay to use for this mob
Args:
- stacks: Current amount of fire_stacks
- on_fire: If we're lit on fire
Return a mutable appearance, the overlay that will be applied.
get_food_taste_reaction
Gets the food reaction a mob would normally have from the given food item, assuming that no check_liked callback was used in the edible component.
Does not get called if the owner has ageusia.
get_fullness
Get the fullness of the mob
Fullness is a representation of how much nutrition the mob has, including the nutrition of stuff yet to be digested (reagents in blood / stomach)
- only_consumable - if TRUE, only consumable reagents are counted. Otherwise, all reagents contribute to fullness, despite not adding nutrition as they process.
Returns a number representing fullness, scaled similarly to nutrition.
get_hair_gradient_color
Get the hair gradient color of a human. Defaults to black.
arguments:
- key (optional) - corresponds to hair or facial hair index. If no key is provided returns whole list.
get_hair_gradient_style
Get the hair gradient style of a human. Defaults to "None". arguments:
- key (optional) - corresponds to hair or facial hair index. If no key is provided returns whole list.
get_hit_area_message
Overridable proc so subtypes can have unique targetted strike zone messages, return a string.
get_idcard
Gets ID card from a mob. Argument:
- hand_firsts - boolean that checks the hands of the mob first if TRUE.
get_incoming_damage_modifier
Used in tandem with /mob/living/proc/apply_damage to calculate modifier applied into incoming damage
get_insulation
Get the insulation that is appropriate to the temperature you're being exposed to. All clothing, natural insulation, and traits are combined returning a single value.
Args
- temperature - what temperature is being exposed to this mob? some articles of clothing are only effective within a certain temperature range
returns the percentage of protection as a value from 0 - 1
get_liked_foodtypes
Gets food flags that this mob likes
get_lying_dir
Returns what direction we look when we're lying down. If we're not lying down, returns own dir
get_organic_health
Returns the health of the mob while ignoring damage of non-organic (prosthetic) limbs Used by cryo cells to not permanently imprison those with damage from prosthetics, as they cannot be healed through chemicals.
get_parsonality_string
Returns a string with the names of the personalities of this mob, and their description as tooltip
get_pp
Return the mob's pulse pressure, which is primarily only relevant in calculating blood pressure
get_quirk
Getter function for a mob's quirk
Arguments:
- quirktype - the type of the quirk to acquire e.g. /datum/quirk/some_quirk
Returns the mob's quirk datum if the mob this is called on has the quirk, null on failure
get_quirk_string
get_quirk_string() is used to get a printable string of all the quirk traits someone has for certain criteria
Arguments:
- Medical- If we want the long, fancy descriptions that show up in medical records, or if not, just the name
- Category- Which types of quirks we want to print out. Defaults to everything
- from_scan- If the source of this call is like a health analyzer or HUD, in which case QUIRK_HIDE_FROM_MEDICAL hides the quirk.
get_shove_flags
Check if there's anything that could stop the knockdown from being shoved into something or someone.
get_shoving_message
Send the chat feedback message for shoving
get_skin_temperature
Get the temperature of the skin of the mob
This is a weighted average of the body temperature and the temperature of the air around the mob, plus some other modifiers
get_status_effect_examinations
Shows any and all examine text related to any status effects the user has.
get_surgery_state_as_list
Takes a target zone and returns a list of readable surgery states for that zone. Example output may be list("Skin is cut", "Blood vessels are unclamped", "Bone is sawed")
get_taste_sensitivity
Gets taste sensitivity of given mob
This is used in calculating what flavours the mob can pick up, with a lower number being able to pick up more distinct flavours.
get_temperature
Unsed in calculating what temperature our environment probably is.
By default just returns the temperature of the turf we're on, but is slightly more complex if we're inside another movable (in which we average the temps of our body and the movable)
get_timed_status_effect_duration
Gets how many deciseconds are remaining in the duration of the passed status effect on this mob.
If the mob is unaffected by the passed effect, returns 0.
get_total_damage
return the total damage of all types which update your health
get_toxic_foodtypes
Gets food flags that this mob hates Toxic food is the only category that ignores ageusia, KEEP IT LIKE THAT!
get_transform_translation_size
Calculates how far vertically the mob's transform should translate according to its size (1 being "default")
get_visible_suicide_message
Returns a subtype-specific flavorful string pertaining to this exact living mob's ending their own life to those who can see it (visible message). If you don't want a message, prefer to override send_applicable_messages() on your subtype instead.
gib
Blow up the mob into giblets
drop_bitflags: (see code/__DEFINES/blood.dm)
- DROP_BRAIN - Gibbed mob will drop a brain
- DROP_ORGANS - Gibbed mob will drop organs
- DROP_BODYPARTS - Gibbed mob will drop bodyparts (arms, legs, etc.)
- DROP_ITEMS - Gibbed mob will drop carried items (otherwise they get deleted)
- DROP_ALL_REMAINS - Gibbed mob will drop everything
grab
Called when a mob is grabbing another mob.
grabbedby
Called when this mob is grabbed by another mob.
gravity_setup
Living Mob use event based gravity We check here to ensure we haven't dropped any gravity changes
handle_environment
Handle this mob's interactions with the environment
By default handles body temperature normalization to the area's temperature, but also handles pressure for many mobs
Arguments:
- environment: The gas mixture of the area the mob is in, will never be null
- seconds_per_tick: The amount of time that has elapsed since this last fired.
- times_fired: The number of times SSmobs has fired
handle_ricochet
Simplified ricochet angle calculation for mobs (also the base version doesn't work on mobs)
handle_suicide
Actually handles the bare basics of the suicide process. Message type is the message we want to dispatch in the world regarding the suicide, using the defines in this file. Override this ENTIRELY if you want to add any special behavior to your suicide handling, if you fuck up the order of operations then shit will break.
handle_suicide_damage_spread
If we want to apply multiple types of damage to a carbon mob based on the way they suicide, this is the proc that handles that. Currently only compatible with Brute, Burn, Toxin, and Suffocation Damage. damage_type is the bitflag that carries the information.
has_blood
Do we have (mechanical) blood?
has_bones
Check if the mob has any bones
has_offset
Checks if we are offset by the passed source for the passed pixel.
- source: The source of the offset If not supplied, it will report the total offset of the passed pixel.
- pixel: Optional, The pixel to check. If not supplied, just reports if it's offset by the source at all (returning the first offset found).
Returns the offset if we are, 0 otherwise.
has_reagent
Check if the mob contains this reagent.
This will validate the the reagent holder for the mob and any sub holders contain the requested reagent. Vars:
- reagent (typepath) takes a PATH to a reagent.
- amount (int) checks for having a specific amount of that chemical.
- needs_metabolizing (bool) takes into consideration if the chemical is matabolizing when it's checked.
heal_and_revive
Heals up the mob up to [heal_to] of the main damage types. EX: If heal_to is 50, and they have 150 brute damage, they will heal 100 brute (up to 50 brute damage)
If the target is dead, also revives them and heals their organs / restores blood. If we have a [revive_message], play a visible message if the revive was successful.
Arguments
- heal_to - the health threshold to heal the mob up to for each of the main damage types.
- revive_message - if provided, a visible message to show on a successful revive.
Returns TRUE if the mob is alive afterwards, or FALSE if they're still dead (revive failed).
heal_bodypart_damage
heal ONE external organ, organ gets randomly selected from damaged ones.
returns the net change in damage
heal_damage_type
Simply a wrapper for calling mob adjustXLoss() procs to heal a certain damage type, when you don't know what damage type you're healing exactly.
heal_ordered_damage
heal up to amount damage, in a given order
heal_overall_damage
heal MANY bodyparts, in random order. note: stamina arg nonfunctional for carbon mobs
heal_pain
Heals pain on the mob.
Converts excess healing to (some) shock healing
- amount - how much pain to heal
- target_zone - which zone or zones to heal pain from. Defaults to all zones. If you pass it multiple zones, the amount will be divided evenly between them, though leftover healing will be distributed to the remaining zones.
Returns the amount of pain healed, or 0 if nothing was healed or no pain controller exists.
ignore_slowdown
Ignores all slowdowns that lack the IGNORE_NOSLOW flag.
in_fov
Is observed_atom in a mob's field of view? This takes blindness, nearsightness and FOV into consideration
incapacitate
- Proc that actually applies the status effect.
- Applies the Incapacitated status effect to a mob/living.
-
- amount - Amount of time the status effect should be applied for, in deciseconds.
-
- ignore_canstun - If TRUE, the mob's resistance to stuns is ignored.
incapacitated
Checks if a mob is incapacitated
Normally being restrained, agressively grabbed, or in stasis counts as incapacitated unless there is a flag being used to check if it's ignored
args:
- flags (optional) bitflags that determine if special situations are exempt from being considered incapacitated
bitflags: (see code/__DEFINES/status_effects.dm)
- IGNORE_RESTRAINTS - mob in a restraint (handcuffs) is not considered incapacitated
- IGNORE_STASIS - mob in stasis (stasis bed, etc.) is not considered incapacitated
- IGNORE_GRAB - mob that is agressively grabbed is not considered incapacitated
init_unconscious_appearance
Inits the human_unconscious appearance for when the mob is unconscious
is_ears_covered
Checks if the mob's ears (BOTH EARS, BOWMANS NEED NOT APPLY) are covered by something. Returns the atom covering the mob's ears, or null if their ears are uncovered.
is_eyes_covered
Checks if our mob has their eyes covered.
Note that we only care about ITEM_SLOT_HEAD, ITEM_SLOT_MASK, and [ITEM_SLOT_GLASSES]. That is also the priority order (so if you check all slots, it'll return head, then mask, then glasses)
Arguments
- check_flags: What item slots should we check?
Retuns a truthy value (a ref to what is covering eyes), or a falsy value (null)
is_location_accessible
Check if the passed body zone is covered by some clothes
- location: body zone to check ([BODY_ZONE_CHEST], [BODY_ZONE_HEAD], etc)
- exluded_equipment_slots: equipment slots to ignore when checking coverage (for example, if you want to ignore helmets, pass ITEM_SLOT_HEAD)
Returns TRUE if the location is accessible (not covered) Returns FALSE if the location is covered by something
is_mouth_covered
Checks if our mob has their mouth covered.
Note that we only care about ITEM_SLOT_HEAD and ITEM_SLOT_MASK. (so if you check all slots, it'll return head, then mask) That is also the priority order Arguments
- check_flags: What item slots should we check?
Retuns a truthy value (a ref to what is covering mouth), or a falsy value (null)
is_pepper_proof
Checks if our mob is protected from pepper spray.
Note that we only care about ITEM_SLOT_HEAD and ITEM_SLOT_MASK. That is also the priority order (so if you check all slots, it'll return head, then mask)
Arguments
- check_flags: What item slots should we check?
Retuns a truthy value (a ref to what is protecting us), or a falsy value (null)
late_examine
Mob level examining that happens after the main beef of examine is done
lazarus_revive
Proc called when TARGETED by a lazarus injector
look_down
look_down Changes the perspective of the mob to any openspace turf below the mob
This also checks if an openspace turf is below the mob before looking down or resets the perspective if already looking up
look_up
look_up Changes the perspective of the mob to any openspace turf above the mob
This also checks if an openspace turf is above the mob before looking up or resets the perspective if already looking up
lying_angle_on_movement
Called by mob Move() when the lying_angle is different than zero, to better visually simulate crawling.
manual_cauterize_check
Callback for checking if the cauterization do-after can continue
move_into_vent
Moves living mob directly into the vent as a ventcrawler
Arguments:
- ventcrawl_target - The vent into which we are moving the mob
ominous_nosebleed
Prints an ominous message if something bad is going to happen to you
on_deathcoma_trait_gain
Called when TRAIT_DEATHCOMA is added to the mob.
on_deathcoma_trait_loss
Called when TRAIT_DEATHCOMA is removed from the mob.
on_fall
Called when mob changes from a standing position into a prone while lacking the ability to stand up at the moment.
on_fire_stack
Called every life tick that a mob is on fire.
Args:
- seconds_per_tick: Seconds between each life tick
- fire_handler: The fire handler status effect that is managing the fire stacks
on_floored_end
Proc to append behavior to the condition of being floored. Called when the condition ends.
on_floored_start
Proc to append behavior to the condition of being floored. Called when the condition starts.
on_floored_trait_gain
Called when TRAIT_FLOORED is added to the mob.
on_floored_trait_loss
Called when TRAIT_FLOORED is removed from the mob.
on_force_gravity
Called when TRAIT_FORCED_GRAVITY is gained or lost
on_forced_standing_trait_gain
Called when TRAIT_FORCED_STANDING is added to the mob.
on_forced_standing_trait_loss
Called when TRAIT_FORCED_STANDING is removed from the mob.
on_handsblocked_end
Proc to append behavior to the condition of being handsblocked. Called when the condition ends.
on_handsblocked_start
Proc to append behavior to the condition of being handsblocked. Called when the condition starts.
on_handsblocked_trait_gain
Called when TRAIT_HANDS_BLOCKED is added to the mob.
on_handsblocked_trait_loss
Called when TRAIT_HANDS_BLOCKED is removed from the mob.
on_ignore_gravity
Called when TRAIT_IGNORING_GRAVITY is gained or lost
on_immobilized_trait_gain
Called when TRAIT_IMMOBILIZED is added to the mob.
on_immobilized_trait_loss
Called when TRAIT_IMMOBILIZED is removed from the mob.
on_incapacitated_trait_gain
Called when [TRAIT_INCAPACITATED] is added to the mob.
on_incapacitated_trait_loss
Called when [TRAIT_INCAPACITATED] is removed from the mob.
on_knockedout_trait
Called when TRAIT_KNOCKEDOUT is added or removed from the mob.
on_loc_force_gravity
Called when our loc's TRAIT_FORCED_GRAVITY is gained or lost
on_lying_down
Proc to append behavior related to lying down.
on_movement_type_flag_disabled
From [element/movetype_handler/on_movement_type_trait_loss()]
on_movement_type_flag_enabled
From [element/movetype_handler/on_movement_type_trait_gain()]
on_negate_gravity
Called when TRAIT_NEGATES_GRAVITY is gained or lost
on_pull_blocked_trait_gain
Called when TRAIT_PULL_BLOCKED is added to the mob.
on_pull_blocked_trait_loss
Called when TRAIT_PULL_BLOCKED is removed from the mob.
on_restrained_trait_gain
Called when TRAIT_RESTRAINED is added to the mob.
on_restrained_trait_loss
Called when TRAIT_RESTRAINED is removed from the mob.
on_skittish_trait_gain
Called when [TRAIT_SKITTISH] is added to the mob.
on_skittish_trait_loss
Called when [TRAIT_SKITTISH] is removed from the mob.
on_standing_up
Proc to append behavior related to lying down.
on_ui_blocked_trait_gain
Called when TRAIT_UI_BLOCKED is added to the mob.
on_ui_blocked_trait_loss
Called when TRAIT_UI_BLOCKED is removed from the mob.
organ_emote
Performs an emote based on whether the passed organ is organic or robotic
organ_feedback_message
Send a feedback message to the mob based on on whether they have an organ, or if the organ is organic vs robotic
pain_emote
Runs an emote on the pain emote cooldown Emote supplied does NOT need to be a pain emote
If no emote is supplied, randomly picks from all pain-related emotes
- emote - what emote key to run
- cooldown - applies cooldown on doing similar pain related emotes
pain_message
Runs a pain message on the pain message cooldown
- message - the message to send
- painless_message - optional, the message to send if the mob does not feel pain
- cooldown - applies cooldown on doing similar pain messages
perform_surgery
Attempts to perform a surgery with whatever tool is passed
- src - the surgeon
- patient - the mob being operated on
- potential_tool - the tool being used for the operation (can be null / IMPLEMENT_HAND)
- intentionally_fail - if TRUE, forces the operation to fail (for testing purposes)
Returns an ITEM_INTERACT_* flag
refresh_gravity
Handles gravity effects. Call if something about our gravity has potentially changed!
register_init_signals
Called on /mob/living/Initialize(mapload), for the mob to register to relevant signals.
remove_consciousness_modifier
Removes a conscious modifier from the mob
remove_consciousness_multiplier
Removes a conscious multiplier from the mob
remove_fov_trait
Removes a trait which limits a user's FOV
remove_homeostasis_level
Removes a source of homeostasis level change from a mob.
Args
- source: String key source to remove
remove_max_consciousness_value
Removes a max consciousness value from the mob
remove_movespeed_mod_immunities
Unignores specific slowdowns. Accepts a list of slowdowns.
remove_offsets
Goes through all pixel adjustments and removes any tied to the passed source.
- source: The source of the offset to remove
- animate: If TRUE, the mob will animate to the position with any offsets removed. If FALSE, it will instantly move.
remove_personality
Helper to easily remove a personality by a typepath
remove_status_effect
Removes all instances of a given status effect from this mob
removed_effect - TYPEPATH of a status effect to remove. Additional status effect arguments can be passed - these are passed into before_remove.
Returns TRUE if at least one was removed.
remove_stun_absorption
Removes all stub absorptions with the passed source.
Returns TRUE if an effect was deleted, FALSE otherwise
remove_surgery_speed_mod
Removes a speed modifier from this mob
- id - id of the modifier to remove, string
reset_blood_type
Resets the blood type to the initial blood type, which is determined by species and DNA.
reset_pull_offsets
Removes any offsets from the passed mob that are related to being grabbed
- M - the mob to remove the offsets from
- override - if TRUE, the offsets will be removed regardless of the mob's buckled state otherwise we won't remove the offsets if the mob is buckled
resolve_right_click_attack
Called when an unarmed attack performed with right click hasn't been stopped by the LIVING_UNARMED_ATTACK_BLOCKED macro. This will call a secondary attack proc that can vary from mob type to mob type on the target. Sometimes, a target is interacted differently when right_clicked, in that case the secondary attack proc should return a SECONDARY_ATTACK_* value that's not SECONDARY_ATTACK_CALL_NORMAL. Otherwise, it should just return SECONDARY_ATTACK_CALL_NORMAL. Failure to do so will result in an exception (runtime error).
resolve_unarmed_attack
Called when the unarmed attack hasn't been stopped by the LIVING_UNARMED_ATTACK_BLOCKED macro or the right_click_attack_chain proc. This will call an attack proc that can vary from mob type to mob type on the target.
revive
Proc used to resuscitate a mob, bringing them back to life.
Note that, even if a mob cannot be revived, the healing from this proc will still be applied.
Arguments
- full_heal_flags - Optional. If supplied, /mob/living/fully_heal will be called with these flags before revival.
- excess_healing - Optional. If supplied, this number will be used to apply a bit of healing to the mob. Currently, 1 "excess healing" translates to -1 oxyloss, -1 toxloss, +2 blood, -5 to all organ damage.
- force_grab_ghost - We grab the ghost of the mob on revive. If TRUE, we force grab the ghost (includes suiciders). If FALSE, we do not. See /mob/grab_ghost.
right_click_attack_chain
Checks for RIGHT_CLICK in modifiers and runs resolve_right_click_attack if so. Returns TRUE if normal chain blocked.
send_applicable_messages
Send all suicide-related messages out to the world. message_type can be used to change out the dispatched suicide message depending on the suicide context.
send_death_moodlets
Sends a moodlet to all nearby living mobs that are not blind or unconscious to indicate that they saw this mob die (and thus feel bad about it)
Note: If the mob already has a death moodlet, and the same moodlet is applied, the existing moodlet will simply worsen. Note: If the mob has a death moodlet, and a worse moodlet is applied, the worse moodlet will take priority.
Arguments:
- dusted - Was the mob dusted?
- gibbed - Was the mob gibbed?
send_speech
Extend say so we can have talking make sounds.
setGrabState
Updates the grab state of the mob and updates movespeed
set_blood_type
Updates the blood_type variable with a blood_type singleton
set_body_position
Changes the value of the [living/body_position] variable. Call this before set_lying_angle()
set_buckled
Reports the event of the change in value of the buckled variable.
set_drunk_effect
Directly sets the "drunk value" the mob is currently experiencing to the passed value, or applies a drunk effect with the passed value if the mob isn't currently drunk
set_to - the amount of "drunkness" to set on the mob.
set_examine
Verb that lets you set temporary pose / examine text.
set_facial_hair_gradient_color
Set the facial hair gradient color of a human. Update calls update_body_parts().
set_facial_hair_gradient_style
Set the facial hair gradient style of a human. Update calls update_body_parts().
set_facial_haircolor
Set the facial hair color of a human. Override instead sets the override value, it will not be changed away from the override value until override is set to null. Update calls update_body_parts().
set_facial_hairstyle
Set the facial hair style of a human. Update calls update_body_parts().
set_fire_stacks
Set the fire stacks on a mob
This sets the fire stacks on a mob, stacks are clamped between -20 and 20. If the fire stacks are reduced to 0 then we will extinguish the mob.
Vars:
- stacks: int The amount to set fire_stacks to
- fire_type: type Type of fire status effect that we apply, should be subtype of /datum/status_effect/fire_handler/fire_stacks
- remove_wet_stacks: bool If we remove all wet stacks upon doing this
set_hair_gradient_color
Set the hair gradient color of a human. Update calls update_body_parts().
set_hair_gradient_style
Set the hair gradient style of a human. Update calls update_body_parts().
set_haircolor
Set the hair color of a human. Override instead sets the override value, it will not be changed away from the override value until override is set to null. Update calls update_body_parts().
set_hairstyle
Set the hair style of a human. Update calls update_body_parts().
set_health
Sets the current mob's health value. Do not call directly if you don't know what you are doing, use the damage procs, instead.
set_incapacitated
- Proc that set the incapacitated status effect's remaining duration to a certain time.
- Checks if the mob has the status effect. If yes, it sets the duration to the amount passed in arguments. If not, applies the status effect
- and sets the duration to the amount passed in arguments.
-
- amount - Amount of time the status effect should be set to, in deciseconds.
-
- ignore_canstun - If TRUE, the mob's resistance to stuns is ignored.
set_lying_angle
Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions.
In BYOND-angles 0 is NORTH, 90 is EAST, 180 is SOUTH and 270 is WEST. This usually means that 0 is standing up, 90 and 270 are horizontal positions to right and left respectively, and 180 is upside-down. Mobs that do now follow these conventions due to unusual sprites should require a special handling or redefinition of this proc, due to the density and layer changes. The return of this proc is the previous value of the modified lying_angle if a change was successful (might include zero), or null if no change was made.
set_lying_down
Change the [body_position] to LYING_DOWN and update associated behavior.
set_move_intent
Sets the mob's move intent to the passed intent
set_num_hands
Proc to modify the value of num_hands and hook behavior associated to this event.
set_num_legs
Proc to modify the value of num_legs and hook behavior associated to this event.
set_pain_mod
Sets the pain modifier of [id] to [amount].
set_pull_offsets
Updates the offsets of the passed mob according to the passed grab state and the direction between them and us
- M - the mob to update the offsets of
- grab_state - the state of the grab
- animate - whether or not to animate the offsets
set_resting
Proc to hook behavior to the change of value in the resting variable.
set_suicide
Proc that handles adding the TRAIT_SUICIDED on the mob in question, as well as additional operations to ensure that everything goes smoothly when we're certain that this person is going to kill themself. suicide_state is a boolean, and we handle adding/removing the trait in question. Have the trait function reference this mob as the source if we want to do in-depth tracking of where a suicided trait comes from. For example, the /mob/dead/observer that will inevitably come from the suicidee will inherit the suicided trait upon creation, and keep this reference. Handy for doing checking should we need it.
set_timed_pain_mod
Set [id] pain modifier to [amount], and unsets it after [time] deciseconds have elapsed.
set_timed_status_effect
Sets a timed status effect of some kind on a mob to a specific value. If only_if_higher is TRUE, it will only set the value up to the passed duration, so any pre-existing status effects of the same type won't be reduced down
duration - the duration, in deciseconds, of the effect. 0 or lower will either remove the current effect or do nothing if none are present effect - the type of status effect given to the mob only_if_higher - if TRUE, we will only set the effect to the new duration if the new duration is longer than any existing duration
set_usable_hands
Proc to modify the value of usable_hands and hook behavior associated to this event.
set_usable_legs
Proc to modify the value of usable_legs and hook behavior associated to this event.
share_blood_on_touch
When another mob touches us, they may messy us up.
shared_living_ui_distance
public
Distance versus interaction check.
required src_object atom/movable The object which owns the UI.
return UI_state The state of the UI.
sharp_pain
Cause [amount] of [dam_type] sharp pain to [target_zones]. Sharp pain is for sudden spikes of pain that go away after [duration] deciseconds.
- target_zones - requried, one or multiple target zones to apply sharp pain to
- amount - how much sharp pain to inflict
- dam_type - the type of sharp pain to inflict. Only BRUTE and BURN really matters.
- duration - how long the sharp pain lasts for
- return_mod - how much of the sharp pain is healed when the effect ends
sig_update_stat
Called when TRAIT_SOFT_CRIT is gained or lost
singularity_act
Logs, gibs and returns point values of whatever mob is unfortunate enough to get eaten.
sleeping_carp_help
Verb added to humans who learn the art of the sleeping carp.
smell_something
Attempt to smell things around us
spawn_dust
Spawns dust / ash or remains where the mob was
just_ash: If TRUE, just ash will spawn where the mob was, as opposed to remains
spawn_gibs
Spawn bloody gib mess on the floor
drop_bitflags: (see code/__DEFINES/blood.dm)
- DROP_BODYPARTS - Gibs will spawn with bodypart limbs present
spill_organs
Drops a mob's organs on the floor
drop_bitflags: (see code/__DEFINES/blood.dm)
- DROP_BRAIN - Mob will drop a brain
- DROP_ORGANS - Mob will drop organs
- DROP_BODYPARTS - Mob will drop bodyparts (arms, legs, etc.)
- DROP_ALL_REMAINS - Mob will drop everything
spread_bodyparts
Launches all bodyparts away from the mob
drop_bitflags: (see code/__DEFINES/blood.dm)
- DROP_BRAIN - Detaches the head from the mob and launches it away from the body
suicide
Verb to simply kill yourself (in a very visual way to all players) in game! How family-friendly. Can be governed by a series of multiple checks (i.e. confirmation, is it allowed in this area, etc.) which are handled and called by the proc this verb invokes. It's okay to block this, because we typically always give mobs in-game the ability to Ghost out of their current mob irregardless of context. This, in contrast, can have as many different checks as you desire to prevent people from doing the deed to themselves.
suicide_alert
Sends a TGUI Alert to the person attempting to commit suicide. Returns TRUE if they confirm they want to die, FALSE otherwise. Check can_suicide here as well.
suicide_log
Inserts logging in both the mob's logs and the investigate log pertaining to their death. Suicide tool is the object we used to commit suicide, if one was held and used (presently only humans use this arg).
surgery_check
Callback for checking if the surgery radial can be kept open
switch_style
Deactivates the current martial art and activates the next one.
take_overall_damage
Attempts to damage all of the damageable bodyparts of the mob, spreading damage accordingly
tally_physical_credits
Totals the physical cash on the mob and returns the total.
taste
Non destructively tastes a reagent container and gives feedback to the user.
temperature_burns
Applies damage to the mob due to being too hot
temperature_cold_damage
Applies damage to the mob due to being too cold
temperature_homeostasis
Handles this mob internally managing its body temperature (sweating or generating heat)
Arguments:
- seconds_per_tick: The amount of time that has elapsed since this last fired.
- times_fired: The number of times SSmobs has fired
tram_slam_land
A proc triggered by callback when someone gets slammed by the tram and lands somewhere.
This proc is used to force people to fall through things like lattice and unplated flooring at the expense of some extra damage, so jokers can't use half a stack of iron rods to make getting hit by the tram immediately lethal.
transfer_blood_to
BLOOD TRANSFERS
treat_message
Treats the passed message with things that may modify speech (stuttering, slurring etc).
message - The message to treat. capitalize_message - Whether we run capitalize() on the message after we're done.
Returns a list, which is a packet of information corresponding to the message that has been treated, which contains the new message, as well as text-to-speech information.
try_catch_item
The core of catching thrown items, which non-carbons cannot without the help of items or abilities yet, as they've no throw mode.
try_inject
Like can_inject, but it can perform side effects.
Arguments:
- user - The user trying to inject the mob.
- target_zone - The zone being targeted.
- injection_flags - A bitflag for extra properties to check. Check __DEFINES/injection.dm for more details. Check _DEFINES/injection.dm for more details. Unlike can_inject, the INJECT_TRY* defines will behave differently.
try_manual_cauterize
src attempts to cauterize themselves to reset their surgery state. Basically a manual form of the real "close skin" operation
undense_changed
Called when TRAIT_UNDENSE is gained or lost
unequip_everything
Returns the items that were succesfully unequipped.
unfriend
Proc for removing a friend you added with the proc 'befriend'. Returns true if you removed a friend.
unignore_slowdown
Unignores all slowdowns that lack the IGNORE_NOSLOW flag.
unset_pain_mod
Unsets the pain mod at the supplied [id].
update_eyes
Updates eye sprites if relevant
update_fov
Updates the applied FOV value and applies the handler to client if able
update_fov_client
Updates the FOV for the client.
update_fullscreen
Proc used to handle the fullscreen overlay updates, realistically meant for the reset_perspective() proc.
update_hair
Updates hair sprites if relevant
update_homeostasis_level
Updates an existing change to the mob's homeostasis levels
Args
- source: String key source to update
- to_value: Change the level to homeostasise to
- delta_change: Change the rate of change to the mob's body temperature
update_limbless_locomotion
Updates whether the mob is floored or immobilized based on how many limbs they have or are missing.
update_limbless_movespeed_mod
Updates the mob's movespeed based on how many limbs they have or are missing.
update_lips
Used to update the makeup on a human and apply/remove lipstick traits, then store/unstore them on the head object in case it gets severed
update_medhud_on_signal
Updates medhud when recieving relevant signals.
update_offsets
Updates the mob's pixel position according to the offsets.
- animate: If TRUE, the mob will animate to the new position. If FALSE, it will instantly move.
Returns TRUE if the mob's position has changed, FALSE otherwise.
update_pipe_vision
Everything related to pipe vision on ventcrawling is handled by update_pipe_vision(). Called on exit, entrance, and pipenet differences (e.g. moving to a new pipenet). One important thing to note however is that the movement of the client's eye is handled by the relaymove() proc in /obj/machinery/atmospherics. We move first and then call update. Dont flip this around
update_resting
Proc to append and redefine behavior to the change of the [/mob/living/var/resting] variable.
update_succumb_action
Called when traits that alter succumbing are added/removed.
Will show or hide the succumb alert prompt.
update_transform
Called whenever the mob is to be resized or when lying/standing up for carbons. IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can.
update_wound_overlays
Proc that only really gets called for humans, to handle bleeding overlays.
wabbajack
Polymorphs our mob into another mob. If successful, our current mob is qdeleted!
what_to_randomize - what are we randomizing the mob into? See the defines for valid options. change_flags - only used for humanoid randomization (currently), what pool of changeflags should we draw from?
Returns a mob (what our mob turned into) or null (if we failed).
whisper
Living level whisper.
Living mobs which whisper have their message only appear to people very close.
message - the message to display bubble_type - the type of speech bubble that shows up when they speak (currently does nothing) spans - a list of spans to apply around the message sanitize - whether we sanitize the message language - typepath language to force them to speak / whisper in ignore_spam - whether we ignore the spam filter forced - string source of what forced this speech to happen, also bypasses spam filter / mutes if supplied filterproof - whether we ignore the word filter
will_escape_storage
Whether or not this mob will escape from storages while being picked up/held.
zMove
We want to relay the zmovement to the buckled atom when possible and only run what we can't have on buckled.zMove() or buckled.can_z_move() here. This way we can avoid esoteric bugs, copypasta and inconsistencies.