living
Vars | |
blood_volume | how much blood the mob has |
---|---|
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_position_pixel_x_offset | The x amount a mob's sprite should be offset due to the current position they're in |
body_position_pixel_y_offset | The y amount a mob's sprite should be offset due to the current position they're in or size (e.g. lying down moves your sprite down) |
body_temp_changes | List of changes to body temperature, used by desease symtoms like fever |
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 |
crit_threshold | when the mob goes from "normal" to crit |
current_size | Tracks the scale of the mob transformation matrix in relation to its identity. 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 |
hardcrit_threshold | When the mob enters hard critical state and is fully incapacitated. |
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. |
identifier | the id a mob gets when it's created |
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_size | How the mob transformation matrix is scaled on init. |
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. |
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. |
looking_vertically | Is the mob looking vertically |
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. |
maxHealth | Maximum health that should be possible. |
max_stamina | The max amount of stamina damage we can have at once (Does NOT effect stamcrit thresholds. See crit_threshold) |
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 | more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. |
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_mod | Mob specific surgery speed modifier |
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() |
on_fire | Helper vars for quick access to firestacks, these should be updated every time firestacks are adjusted |
oxyloss | Oxygen depravation damage (no air in lungs) |
pipetracker | Cell tracker datum we use to manage the pipes around us, for faster ventcrawling Should only exist if you're in a pipe |
rotate_on_lying | Does the mob rotate when lying |
slowed_by_drag | Whether the mob is slowed down when dragging another prone mob |
stamina_regen_time | How long it takes to return to 0 stam |
staminaloss | Stamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this. |
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 |
surgeries | a list of surgery datums. generally empty, they're added when the player wants them. |
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() |
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. |
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_body_temperature_change | add_body_temperature_change Adds modifications to the body temperature |
add_fov_trait | Adds a trait which limits a user's FOV |
add_mood_event | Adds a mood event to the mob |
add_movespeed_mod_immunities | Ignores specific slowdowns. Accepts a list of slowdowns. |
add_quirk | Adds the passed quirk to the mob |
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. |
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. |
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_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. |
bleedDragAmount | Returns how much blood we're losing from being dragged a tile, from [/mob/living/proc/makeTrail] |
block_projectile_effects | Performs the aftereffects of blocking a projectile. |
calculate_fitness | Returns an arbitrary number which very roughly correlates with how buff you look |
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_be_spread_airborne_disease | Checks if this mob can currently be infected by air based diseases Nondeterministic |
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_spread_airborne_diseases | Checks if this mob can currently spread air based diseases. Nondeterministic |
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. |
check_allergic_reaction | Checks if the mob has an allergic reaction to the given food type. If so, the mob will contract anaphylaxis. |
check_hit_limb_zone_name | Returns the string form of the def_zone we have hit. |
check_stun_immunity | Checks if we have stun immunity. Godmode always passes this check. |
check_tasting_blocks | Check for anything blocking/overriding our tasting. Returns TRUE on a block, FALSE if not. |
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 |
compare_fitness | Create a report string about how strong this person looks, generated in a somewhat arbitrary fashion |
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 |
contract_airborne_disease | Handle being contracted a disease via airborne transmission |
create_thinking_indicator | Overrides for overlay creation |
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_rust_heretic_act | wrapper proc that passes our mob's rust_strength to the target we are rusting |
do_slap_animation | Does a slap animation on an atom |
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. |
end_block_effects | Remoevs the effects of blocking a projectile and allows the user to block another. |
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_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_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_body_temp_cold_damage_limit | Returns the body temperature at which this mob will start taking cold damage. |
get_body_temp_heat_damage_limit | Returns the body temperature at which this mob will start taking heat damage. |
get_body_temp_normal | get_body_temp_normal Returns the mobs normal body temperature with any modifications applied |
get_body_temp_normal_change | get_body_temp_normal_change Returns the aggregate change to body temperature |
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_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_liked_foodtypes | Gets food flags that this mob likes |
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_pixel_y_offset_standing | Returns what the body_position_pixel_y_offset should be if the current size were value |
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_status_effect_examinations | Shows any and all examine text related to any status effects the user has. |
get_taste_sensitivity | Gets taste sensitivity of given mob |
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_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_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. |
handle_ventcrawl | Handles the entrance and exit on ventcrawling |
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 |
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 | |
infectious_sneeze | Launch a sneeze that can infect with a disease |
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_face_visible | Only defined for carbons who can wear masks and helmets, we just assume other mobs have visible faces |
is_mouth_covered | Checks if our mob has their mouth covered. |
is_pepper_proof | Checks if our mob is protected from pepper spray. |
itch | Print a message about an annoying sensation you are feeling. Returns TRUE if successful. |
launch_sneeze | Shoot the sneeze projectile |
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. |
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 | Handles effects happening when mob is on normal 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_hearing_loss | Called when [TRAIT_DEAF] is added to the mob. |
on_hearing_regain | Called when [TRAIT_DEAF] is added to 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_gain | Called when TRAIT_KNOCKEDOUT is added to the mob. |
on_knockedout_trait_loss | Called when TRAIT_KNOCKEDOUT is 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_stasis_trait_gain | Called when TRAIT_STASIS is added to the mob |
on_stasis_trait_loss | Called when TRAIT_STASIS is removed from the mob |
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. |
parse_zone_with_bodypart | Returns a string for the specified body zone. If we have a bodypart in this zone, refers to its plaintext_zone instead. |
process_capture | Common proc used to deduct money from cargo, announce the kidnapping and add src to the black market. Returns the black market item, for extra stuff like signals that need to be registered. |
received_stamina_damage | The mob has received stamina damage |
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_body_temperature_change | remove_body_temperature_change Removes the modifications to the body temperature |
remove_fov_trait | Removes a trait which limits a user's FOV |
remove_movespeed_mod_immunities | Unignores specific slowdowns. Accepts a list of slowdowns. |
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. |
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_taste_message | Attempt to send a taste message using given tastes text. |
setGrabState | Updates the grab state of the mob and updates movespeed |
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_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_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_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_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. |
shared_living_ui_distance | public |
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. |
sneeze | Inhale and start the sneeze timer. on_sneeze_callback can be used to do custom sneezes, on_sneeze_hit_callback for special effects, but probably usually making it infect |
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). |
take_bodypart_damage | damage ONE external organ, organ gets randomly selected from damaged ones. |
take_overall_damage | damage MANY bodyparts, in random order. note: stamina arg nonfunctional for carbon mobs |
tally_physical_credits | Totals the physical cash on the mob and returns the total. |
taste_container | Non-destructively tastes a reagent container and gives feedback to the user. Arguments: |
taste_list | Non-destructively tastes a reagent list and gives feedback to the user. Arguments: |
toggle_move_intent | Toggle the move intent of the mob |
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_sneeze_infect | Try and infect following a sneeze hit. force to always infect |
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. |
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_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 receiving relevant signals. |
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_usable_leg_status | Proc that updates the status of the mob's legs without setting its leg value to something else. |
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_volume
how much blood the mob has
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_position_pixel_x_offset
The x amount a mob's sprite should be offset due to the current position they're in
body_position_pixel_y_offset
The y amount a mob's sprite should be offset due to the current position they're in or size (e.g. lying down moves your sprite down)
body_temp_changes
List of changes to body temperature, used by desease symtoms like fever
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
crit_threshold
when the mob goes from "normal" to crit
current_size
Tracks the scale of the mob transformation matrix in relation to its identity. 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
hardcrit_threshold
When the mob enters hard critical state and is fully incapacitated.
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.
identifier
the id a mob gets when it's created
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_size
How the mob transformation matrix is scaled on init.
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.
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.
looking_vertically
Is the mob looking vertically
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.
maxHealth
Maximum health that should be possible.
max_stamina
The max amount of stamina damage we can have at once (Does NOT effect stamcrit thresholds. See crit_threshold)
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
more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
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_mod
Mob specific surgery speed modifier
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()
on_fire
Helper vars for quick access to firestacks, these should be updated every time firestacks are adjusted
oxyloss
Oxygen depravation damage (no air in lungs)
pipetracker
Cell tracker datum we use to manage the pipes around us, for faster ventcrawling Should only exist if you're in a pipe
rotate_on_lying
Does the mob rotate when lying
slowed_by_drag
Whether the mob is slowed down when dragging another prone mob
stamina_regen_time
How long it takes to return to 0 stam
staminaloss
Stamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this.
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
surgeries
a list of surgery datums. generally empty, they're added when the player wants them.
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()
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
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_body_temperature_change
add_body_temperature_change Adds modifications to the body temperature
This collects all body temperature changes that the mob is experiencing to the list body_temp_changes the aggrogate result is used to derive the new body temperature for the mob
arguments:
- key_name (str) The unique key for this change, if it already exist it will be overridden
- amount (int) The amount of change from the base body temperature
add_fov_trait
Adds a trait which limits a user's FOV
add_mood_event
Adds a mood event to the mob
add_movespeed_mod_immunities
Ignores specific slowdowns. Accepts a list of slowdowns.
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_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
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
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].
- wound_clothing - If this should cause damage to clothing.
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_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.
bleedDragAmount
Returns how much blood we're losing from being dragged a tile, from [/mob/living/proc/makeTrail]
block_projectile_effects
Performs the aftereffects of blocking a projectile.
calculate_fitness
Returns an arbitrary number which very roughly correlates with how buff you look
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_be_spread_airborne_disease
Checks if this mob can currently be infected by air based diseases Nondeterministic
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_spread_airborne_diseases
Checks if this mob can currently spread air based diseases. Nondeterministic
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.
check_allergic_reaction
Checks if the mob has an allergic reaction to the given food type. If so, the mob will contract anaphylaxis.
- to_foodtype: The food type to check for an allergic reaction to.
- chance: The chance of an allergic reaction occurring. Default is 100 (guaranteed).
- histamine_add: The amount of histamine to add to the mob if they are already experiencing an allergic reaction.
Returns TRUE if the mob had an allergic reaction, FALSE otherwise.
check_hit_limb_zone_name
Returns the string form of the def_zone we have hit.
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
check_tasting_blocks
Check for anything blocking/overriding our tasting. Returns TRUE on a block, FALSE if not.
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
compare_fitness
Create a report string about how strong this person looks, generated in a somewhat arbitrary fashion
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
contract_airborne_disease
Handle being contracted a disease via airborne transmission
- disease - the disease datum that's infecting us
create_thinking_indicator
Overrides for overlay creation
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_rust_heretic_act
wrapper proc that passes our mob's rust_strength to the target we are rusting
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_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.
end_block_effects
Remoevs the effects of blocking a projectile and allows the user to block another.
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_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_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_body_temp_cold_damage_limit
Returns the body temperature at which this mob will start taking cold damage.
get_body_temp_heat_damage_limit
Returns the body temperature at which this mob will start taking heat damage.
get_body_temp_normal
get_body_temp_normal Returns the mobs normal body temperature with any modifications applied
This applies the result from proc/get_body_temp_normal_change() against the BODYTEMP_NORMAL and returns the result
arguments:
- apply_change (optional) Default True This applies the changes to body temperature normal
get_body_temp_normal_change
get_body_temp_normal_change Returns the aggregate change to body temperature
This aggregates all the changes in the body_temp_changes list and returns the result
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
This returns a value form 0 upwards to represent how full the mob is. The value is a total amount of consumable reagents in the body combined with the total amount of nutrition they have. This does not have an upper limit.
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_liked_foodtypes
Gets food flags that this mob likes
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_pixel_y_offset_standing
Returns what the body_position_pixel_y_offset should be if the current size were value
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_status_effect_examinations
Shows any and all examine text related to any status effects the user has.
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_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_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_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.
handle_ventcrawl
Handles the entrance and exit on ventcrawling
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
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.
infectious_sneeze
Launch a sneeze that can infect with a disease
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_face_visible
Only defined for carbons who can wear masks and helmets, we just assume other mobs have visible faces
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)
itch
Print a message about an annoying sensation you are feeling. Returns TRUE if successful.
launch_sneeze
Shoot the sneeze projectile
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.
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
Handles effects happening when mob is on normal fire
Vars:
- seconds_per_tick
- times_fired
- fire_handler: Current fire status effect that called the proc
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_hearing_loss
Called when [TRAIT_DEAF] is added to the mob.
on_hearing_regain
Called when [TRAIT_DEAF] is added to 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_gain
Called when TRAIT_KNOCKEDOUT is added to the mob.
on_knockedout_trait_loss
Called when TRAIT_KNOCKEDOUT is 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_stasis_trait_gain
Called when TRAIT_STASIS is added to the mob
on_stasis_trait_loss
Called when TRAIT_STASIS is removed from the mob
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.
parse_zone_with_bodypart
Returns a string for the specified body zone. If we have a bodypart in this zone, refers to its plaintext_zone instead.
process_capture
Common proc used to deduct money from cargo, announce the kidnapping and add src to the black market. Returns the black market item, for extra stuff like signals that need to be registered.
received_stamina_damage
The mob has received stamina damage
- current_level: The mob's current stamina damage amount (to save unnecessary getStaminaLoss() calls)
- amount_actual: The amount of stamina damage received, in actuality For example, if you are taking 50 stamina damage but are at 90, you would actually only receive 30 stamina damage (due to the cap)
- amount: The amount of stamina damage received, raw
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_body_temperature_change
remove_body_temperature_change Removes the modifications to the body temperature
This removes the recorded change to body temperature from the body_temp_changes list
arguments:
- key_name (str) The unique key for this change that will be removed
remove_fov_trait
Removes a trait which limits a user's FOV
remove_movespeed_mod_immunities
Unignores specific slowdowns. Accepts a list of slowdowns.
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
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_taste_message
Attempt to send a taste message using given tastes text.
setGrabState
Updates the grab state of the mob and updates movespeed
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_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_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_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_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.
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.
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.
sneeze
Inhale and start the sneeze timer. on_sneeze_callback can be used to do custom sneezes, on_sneeze_hit_callback for special effects, but probably usually making it infect
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).
take_bodypart_damage
damage ONE external organ, organ gets randomly selected from damaged ones.
take_overall_damage
damage MANY bodyparts, in random order. note: stamina arg nonfunctional for carbon mobs
tally_physical_credits
Totals the physical cash on the mob and returns the total.
taste_container
Non-destructively tastes a reagent container and gives feedback to the user. Arguments:
- datum/reagents/from - Reagent holder to taste from.
taste_list
Non-destructively tastes a reagent list and gives feedback to the user. Arguments:
- list/from - List of reagents to taste from.
toggle_move_intent
Toggle the move intent of the mob
triggers an update the move intent hud as well
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_sneeze_infect
Try and infect following a sneeze hit. force to always infect
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.
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_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 receiving relevant signals.
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_usable_leg_status
Proc that updates the status of the mob's legs without setting its leg value to something else.
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.