carbon 
Vars | |
| all_scars | All of the scars a carbon has afflicted throughout their limbs |
|---|---|
| all_wounds | All of the wounds a carbon has afflicted throughout their limbs |
| body_zone_dismembered_by | Assoc list of BODY_ZONE -> wounding_type. Set when a limb is dismembered, unset when one is attached. Used for determining what scar to add when it comes time to generate them. |
| bodyparts | Gets filled up in /datum/species/proc/replace_body. Will either contain a list of typepaths if nothing has been created yet, or a list of the body part objects. |
| bodyshape | A bitfield of "bodyshapes", updated by /obj/item/bodypart/proc/synchronize_bodyshapes() |
| bodytype | A bitfield of "bodytypes", updated by /obj/item/bodypart/proc/synchronize_bodytypes() |
| breathing_loop | Sound loop for breathing when using internals |
| can_be_shoved_into | Can other carbons be shoved into this one to make it fall? |
| co2overloadtime | Used in [carbon/proc/check_breath] and [lungs/proc/check_breath]] |
| covered_slots | Covered hide flags (hideflags that can be seen, BUT can't be interacted with) |
| damageoverlaytemp | Used to temporarily increase severity of / apply a new damage overlay (the red ring around the ui / screen). This number will translate to equivalent brute or burn damage taken. Handled in mob/living/proc/update_damage_hud. (For example, setting damageoverlaytemp = 20 will add 20 "damage" to the overlay the next time it updates.) This number is also reset to 0 every tick of carbon Life(). Pain. |
| disgust | Measure of how disgusted we are. See DISGUST_LEVEL_GROSS and friends |
| dna | Carbon, you should really only be accessing this through has_dna() but it's your life |
| ears | only used by humans. |
| external | "External" air tank. Never set this manually. Not required to stay directly equipped on the mob (i.e. could be a machine or MOD suit module). |
| failed_last_breath | This is used to determine if the mob failed a breath. If they did fail a breath, they will attempt to breathe each tick, otherwise just once per 4 ticks. |
| glasses | only used by humans. |
| gloves | only used by humans |
| hair_masks | Lazylist of all hair masks applied to this mob's hairstyles |
| hand_bodyparts | A collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems) |
| handcuffed | Whether or not the mob is handcuffed |
| has_momentum | If TRUE, we are being affected by run momentum |
| icon_render_keys | A cache of bodypart = icon to prevent excessive icon creation. |
| internal | Equipped air tank. Never set this manually. |
| last_mind | last mind to control this mob, for blood-based cloning |
| last_top_offset | Stores the result of our last known top_offset generation for optimisation purposes when drawing limb icons. |
| legcuffed | Same as handcuffs but for legs. Bear traps use this. |
| momentum_dir | Our last move direction, used for tracking momentum |
| momentum_distance | How many tiles we've moved in the momentum direction |
| obscured_slots | Obscured hide flags (hideflags that can't be seen AND can't be interacted with) |
| old_disgust | How disgusted we were LAST time we processed disgust. Helps prevent unneeded work |
| organs | List of /obj/item/organs in the mob. They don't go in the contents for some reason I don't want to know. |
| organs_slot | Same as above, but stores "slot ID" - "organ" pairs for easy access. |
| shoes | only used by humans. |
| skillchip_complexity_modifier | Simple modifier for whether this mob can handle greater or lesser skillchip complexity. See /datum/mutation/human/biotechcompat/ for example. |
| transformation_timer | Timer id of any transformation |
| visual_only_organs | Only load in visual organs |
Procs | |
| add_bodypart | Proc to hook behavior on bodypart additions. Do not directly call. You're looking for [/obj/item/bodypart/proc/try_attach_limb()]. |
| add_item_coverage | Adds the passed item's coverage to the mob's coverage related flags |
| adjustOrganLoss | If an organ exists in the slot requested, and we are capable of taking damage (we don't have GODMODE on), call the damage proc on that organ. |
| adjustPlasma | Adjusts the plasma level of the carbon's plasma vessel if they have one |
| adjust_skillchip_complexity_modifier | Modifies max_skillchip_count and updates active skillchips |
| apply_crit_screen_overlay | Applies damage hud according to how conscious the mob is |
| apply_damage_screen_overlay | Applies damage hud according to how much raw damage the mob has taken |
| apply_oxy_screen_overlay | Applies damage hud according to how much oxygen damage the mob has taken |
| bioscramble | Randomise a body part and organ of this mob |
| can_breathe_helmet | Returns TRUE if an air tank compatible helmet is equipped. |
| can_breathe_internals | Returns TRUE if an air tank compatible mask or breathing tube is equipped. |
| can_breathe_mask | Returns TRUE if an air tank compatible mask is equipped. |
| can_breathe_tube | Returns TRUE if a breathing tube is equipped. |
| can_touch_acid | This proc is used to determine whether or not the mob can handle touching an acid affected object. |
| can_touch_burning | This proc is used to determine whether or not the mob can handle touching a burning object. |
| cause_wound_of_type_and_severity | A simple proc to force a type of wound onto this mob. If you just want to force a specific mainline (fractures, bleeding, etc.) wound, you only need to care about the first 3 args. |
| check_breath | This proc tests if the lungs can breathe, if the mob can breathe a given gas mixture, and throws/clears gas alerts. If there are moles of gas in the given gas mixture, side-effects may be applied/removed on the mob. This proc expects a lungs organ in order to breathe successfully, but does not defer any work to it. |
| check_self_for_injuries | Check ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel |
| check_virus | Medical HUD! Basic mode needs suit sensors on. |
| clone_skillchip_list | Creates a list of new skillchips cloned from old skillchips in the mob's brain. |
| close_all_airtanks | Quickly/lazily close all airtanks without any returns or notifications. |
| close_externals | Close the the currently open external (that's EX-ternal) air tank. Returns TRUE if successful. |
| close_internals | Actually closes the active internal or external air tank. Returns TRUE if the tank was opened successfully. |
| create_bodyparts | Creates body parts for this carbon completely from scratch. Optionally takes a map of body zones to what type to instantiate instead of them. |
| crit_percent | Determines how close we are to being in pain crit (Fully immobile) Returns a number between -INFINITY to INFINITY, where 100 = in crit, >100 = probably about to die, <0 = super healthy |
| cutoff_internals | Prepares emergency disconnect from open air tanks and notifies in chat. Usually called after mob suddenly unequips breathing apparatus. |
| del_and_replace_bodypart | Replaces a single limb and deletes the old one if there was one |
| destroy_all_skillchips | Destroys all skillchips in the brain, handling appropriate cleanup and event calls. |
| dream | Generates a dream sequence to be displayed to the sleeper. |
| dream_sequence | Displays the passed list of dream fragments to a sleeping carbon. |
| electrocute_act | Adds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects. |
| equip_conspicuous_item | Attempts to equip the given item in a conspicious place. This is used when, for instance, a character spawning with an item in their hands would be a dead giveaway that they are an antagonist. Returns the human readable name of where it placed the item, or null otherwise. |
| expel_ingested | Expel the reagents you just tried to ingest |
| generate_death_examine_text | Returns death message for mob examine text |
| generate_fake_scars | generate_fake_scars()- for when you want to scar someone, but you don't want to hurt them first. These scars don't count for temporal scarring (hence, fake) |
| getPlasma | Gets the plasma level of this carbon's plasma vessel, or -1 if they don't have one |
| get_active_bodyshapes | Get all bodyshapes but filter out bodyshapes that are currently being hidden |
| get_all_covered_flags | Returns a bitfield of all zones covered by clothing |
| get_all_limbs | Returns a list of all limbs this mob should have. |
| get_blood_dna_list | Get the mobs dna list |
| get_breath_from_internal | Attempts to take a breath from the external or internal air tank. |
| get_breath_from_surroundings | Attempts to take a breath from the surroundings. |
| get_brute_loss_for_type | Returns the amount of bruteloss across all bodyparts meeting the matching bodytype. Useful for if you would like to check the bruteloss for only organic bodyparts, for example. |
| get_clothing_examine_info | Coolects examine information about the mob's clothing and equipment |
| get_clothing_on_part | Get all the clothing on a specific body part |
| get_covered_body_zones | Returns a list of all body_zones covered by clothing |
| get_damageable_bodyparts | Returns a list of damageable bodyparts |
| get_damaged_bodyparts | Returns a list of damaged bodyparts |
| get_face_name | Gets what the face of this mob looks like |
| get_fire_loss_for_type | Returns the amount of fireloss across all bodyparts meeting the matching bodytype. Useful for if you would like to check the fireloss for only organic bodyparts, for example. |
| get_hand_of_item | Returns the bodypart holding the passed item |
| get_height_difference | Reports the height difference between src and user |
| get_held_overlays | Generate held item overlays |
| get_hud_examine_info | Collects info displayed about any HUDs the user has when examining src |
| get_id_name | Gets whatever name is in our ID or PDA |
| get_majority_bodypart_damage_desc | Returns a list of "damtype" => damage description based off of which bodypart description is most common |
| get_medhud_examine_info | Collects information displayed about src when examined by a user with a medical HUD. |
| get_missing_limbs | Returns a list of all missing limbs this mob should have on them, but don't. |
| get_organ_loss | If an organ exists in the slot requested, return the amount of damage that organ has |
| get_sechud_examine_info | Collects information displayed about src when examined by a user with a security HUD. |
| get_total_bleed_rate | get our total bleedrate |
| get_traumas | TRAUMAS |
| get_visible_items | Returns items which are currently visible on the mob |
| get_wound_threshold_of_wound_type | Limb is nullable, but picks a random one. Defers to limb.get_wound_threshold_of_wound_type, see it for documentation. |
| get_wounded_bodyparts | Returns a list of bodyparts with wounds (in case someone has a wound on an otherwise fully healed limb) |
| give | Proc called when offering an item to another player |
| handle_breath_temperature | Fourth and final link in a breath chain |
| handle_dead_metabolization | Handles calling metabolization for dead people. Due to how reagent metabolization code works this couldn't be done anywhere else. |
| handle_dreams | Begins the dreaming process on a sleeping carbon. |
| handle_liver | Check to see if we have the liver, if not automatically gives you last-stage effects of lacking a liver. |
| heal_bodypart_damage | Heals ONE bodypart randomly selected from damaged ones. |
| humanize | Humanize |
| implant_skillchip | Attempts to implant this skillchip into the target carbon's brain. |
| init_bioscrambler_lists | Fill in the lists of things we can bioscramble into people |
| invalid_internals | Returns truthy if air tank is open and mob lacks apparatus, or if the tank moved away from the mob. |
| is_bleeding | if any of our bodyparts are bleeding |
| is_digitigrade_squished | Checks if this mob is wearing anything that does not have a valid sprite set for digitigrade legs |
| item_coverage_changed | Called when a mob's obscured slots change |
| lying_angle_on_lying_down | Special carbon interaction on lying down, to transform its sprite by a rotation. |
| make_item_prosthetic | Makes the passed item into a "prosthetic limb" of this mod, replacing any existing arm |
| make_virtual_mob | Removes all the "organic" traits from a mob, used for virtual antagonists |
| on_added_hand | Called when a new hand is added |
| on_agender_trait_gain | On gain of TRAIT_AGENDER |
| on_agender_trait_loss | On removal of TRAIT_AGENDER |
| on_geneless_trait_gain | On gain of TRAIT_GENELLESS |
| on_liverless_metabolism_trait_gain | On gain of TRAIT_LIVERLESS_METABOLISM |
| on_lost_hand | Cleans up references to a hand when it is dismembered or deleted |
| on_nobreath_trait_gain | On gain of TRAIT_NOBREATH |
| on_toximmune_trait_gain | On gain of TRAIT_TOXIMMUNE |
| on_virusimmune_trait_gain | On gain of TRAIT_VIRUSIMMUNE |
| open_internals | Open the internal air tank without checking for any breathing apparatus. Returns TRUE if the air tank was opened successfully. Closes any existing tanks before opening another one. |
| regenerate_organs | Heals all of the mob's organs, and re-adds any missing ones. |
| remove_all_embedded_objects | Remove all embedded objects from all limbs on the carbon mob |
| remove_bodypart | Proc to hook behavior on bodypart removals. Do not directly call. You're looking for [/obj/item/bodypart/proc/drop_limb()]. |
| remove_embedded_object | Remove a specific embedded item from the carbon mob |
| remove_item_coverage | Removes the passed item's coverage from the mob's coverage related flags |
| remove_skillchip | Attempts to remove this skillchip from the target carbon's brain. |
| return_and_replace_bodypart | Replaces a single limb and returns the old one if there was one |
| secondary_shock | Called slightly after electrocute act to apply a secondary stun. |
| setOrganLoss | If an organ exists in the slot requested, and we are capable of taking damage (we don't have GODMODE on), call the set damage proc on that organ, which can set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss. |
| set_heartattack | Causes the mob to either start or stop having a heart attack. |
| share_bodytemperature | Have two mobs share body heat between each other. Account for the insulation and max temperature change range for the mob |
| should_electrocute | Returns whether or not the carbon should be able to be shocked |
| synchronize_bodyshapes | Makes sure that the owner's bodyshape flags match the flags of all of it's parts and organs |
| synchronize_bodytypes | Makes sure that the owner's bodytype flags match the flags of all of it's parts and organs |
| take | Proc called when the player clicks the give alert |
| toggle_close_internals | Prepares to close the currently open internal air tank and notifies in chat. Handles displaying messages to the user before doing the actual closing. Returns TRUE if |
| toggle_externals | Toggles the given external (that's EX-ternal) air tank open, or close the currently open one, if a compatible breathing apparatus is found. Returns TRUE if the tank was opened successfully. |
| toggle_internals | Toggles the given internal air tank open, or close the currently open one, if a compatible breathing apparatus is found. Returns TRUE if the tank was opened successfully. |
| toggle_open_internals | Prepares to open the internal air tank and notifies the mob in chat. Handles displaying messages to the user before doing the actual opening. Returns TRUE if the tank was opened/closed successfully. |
| try_open_internals | Opens the given internal air tank if a breathing apparatus is found. Returns TRUE if successful, FALSE otherwise. Returns TRUE if the tank was opened successfully. |
| unwag_tail | Helper to cleanly stop all tail wagging Returns true if successful, false otherwise |
| update_body_parts | Checks to see if any bodyparts need to be redrawn, then does so. update_limb_data = TRUE redraws the limbs to conform to the owner. Returns an integer representing the number of limbs that were updated. |
| update_bodypart_bleed_overlays | Has each bodypart update its bleed/wound overlay icon states |
| update_bodypart_speed_modifier | Updates the bodypart speed modifier based on our bodyparts. |
| update_features | Updates features and clothing attached to a specific limb with limb-specific offsets |
| update_spacesuit_hud_icon | Upsed specifically to update the spacesuit hud element |
| update_tint | Calculates how visually impaired the mob is by their equipment and other factors |
| vomit | Proc that compels the mob to throw up. Returns TRUE if the mob actually threw up. |
| wag_tail | Helper to cleanly trigger tail wagging Accepts an optional timeout after which we remove the tail wagging Returns true if successful, false otherwise |
| wearing_shock_proof_gloves | Returns if the carbon is wearing shock proof gloves |
Var Details
all_scars 
All of the scars a carbon has afflicted throughout their limbs
all_wounds 
All of the wounds a carbon has afflicted throughout their limbs
body_zone_dismembered_by 
Assoc list of BODY_ZONE -> wounding_type. Set when a limb is dismembered, unset when one is attached. Used for determining what scar to add when it comes time to generate them.
bodyparts 
Gets filled up in /datum/species/proc/replace_body. Will either contain a list of typepaths if nothing has been created yet, or a list of the body part objects.
bodyshape 
A bitfield of "bodyshapes", updated by /obj/item/bodypart/proc/synchronize_bodyshapes()
bodytype 
A bitfield of "bodytypes", updated by /obj/item/bodypart/proc/synchronize_bodytypes()
breathing_loop 
Sound loop for breathing when using internals
can_be_shoved_into 
Can other carbons be shoved into this one to make it fall?
co2overloadtime 
Used in [carbon/proc/check_breath] and [lungs/proc/check_breath]]
covered_slots 
Covered hide flags (hideflags that can be seen, BUT can't be interacted with)
damageoverlaytemp 
Used to temporarily increase severity of / apply a new damage overlay (the red ring around the ui / screen). This number will translate to equivalent brute or burn damage taken. Handled in mob/living/proc/update_damage_hud. (For example, setting damageoverlaytemp = 20 will add 20 "damage" to the overlay the next time it updates.) This number is also reset to 0 every tick of carbon Life(). Pain.
disgust 
Measure of how disgusted we are. See DISGUST_LEVEL_GROSS and friends
dna 
Carbon, you should really only be accessing this through has_dna() but it's your life
ears 
only used by humans.
external 
"External" air tank. Never set this manually. Not required to stay directly equipped on the mob (i.e. could be a machine or MOD suit module).
failed_last_breath 
This is used to determine if the mob failed a breath. If they did fail a breath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
glasses 
only used by humans.
gloves 
only used by humans
hair_masks 
Lazylist of all hair masks applied to this mob's hairstyles
hand_bodyparts 
A collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems)
handcuffed 
Whether or not the mob is handcuffed
has_momentum 
If TRUE, we are being affected by run momentum
icon_render_keys 
A cache of bodypart = icon to prevent excessive icon creation.
internal 
Equipped air tank. Never set this manually.
last_mind 
last mind to control this mob, for blood-based cloning
last_top_offset 
Stores the result of our last known top_offset generation for optimisation purposes when drawing limb icons.
legcuffed 
Same as handcuffs but for legs. Bear traps use this.
momentum_dir 
Our last move direction, used for tracking momentum
momentum_distance 
How many tiles we've moved in the momentum direction
obscured_slots 
Obscured hide flags (hideflags that can't be seen AND can't be interacted with)
old_disgust 
How disgusted we were LAST time we processed disgust. Helps prevent unneeded work
organs 
List of /obj/item/organs in the mob. They don't go in the contents for some reason I don't want to know.
organs_slot 
Same as above, but stores "slot ID" - "organ" pairs for easy access.
shoes 
only used by humans.
skillchip_complexity_modifier 
Simple modifier for whether this mob can handle greater or lesser skillchip complexity. See /datum/mutation/human/biotechcompat/ for example.
transformation_timer 
Timer id of any transformation
visual_only_organs 
Only load in visual organs
Proc Details
add_bodypart
Proc to hook behavior on bodypart additions. Do not directly call. You're looking for [/obj/item/bodypart/proc/try_attach_limb()].
add_item_coverage
Adds the passed item's coverage to the mob's coverage related flags
adjustOrganLoss
If an organ exists in the slot requested, and we are capable of taking damage (we don't have GODMODE on), call the damage proc on that organ.
Arguments:
- slot - organ slot, like [ORGAN_SLOT_HEART]
- amount - damage to be done
- maximum - currently an arbitrarily large number, can be set so as to limit damage
- required_organ_flag - targets only a specific organ type if set to ORGAN_ORGANIC or ORGAN_ROBOTIC
Returns: The net change in damage from apply_organ_damage()
adjustPlasma
Adjusts the plasma level of the carbon's plasma vessel if they have one
adjust_skillchip_complexity_modifier
Modifies max_skillchip_count and updates active skillchips
apply_crit_screen_overlay
Applies damage hud according to how conscious the mob is
apply_damage_screen_overlay
Applies damage hud according to how much raw damage the mob has taken
apply_oxy_screen_overlay
Applies damage hud according to how much oxygen damage the mob has taken
bioscramble
Randomise a body part and organ of this mob
can_breathe_helmet
Returns TRUE if an air tank compatible helmet is equipped.
can_breathe_internals
Returns TRUE if an air tank compatible mask or breathing tube is equipped.
can_breathe_mask
Returns TRUE if an air tank compatible mask is equipped.
can_breathe_tube
Returns TRUE if a breathing tube is equipped.
can_touch_acid
This proc is used to determine whether or not the mob can handle touching an acid affected object.
can_touch_burning
This proc is used to determine whether or not the mob can handle touching a burning object.
cause_wound_of_type_and_severity
A simple proc to force a type of wound onto this mob. If you just want to force a specific mainline (fractures, bleeding, etc.) wound, you only need to care about the first 3 args.
Args:
- wounding_type: The wounding_type, e.g. WOUND_BLUNT, WOUND_SLASH to force onto the mob. Can be a list.
- obj/item/bodypart/limb: The limb we wil be applying the wound to. If null, a random bodypart will be picked.
- min_severity: The minimum severity that will be considered.
- max_severity: The maximum severity that will be considered.
- severity_pick_mode: The "pick mode" to be used. See get_corresponding_wound_type's documentation
- wound_source: The source of the wound to be applied. Nullable.
For the rest of the args, refer to get_corresponding_wound_type().
Returns: A new wound instance if the application was successful, null otherwise.
check_breath
This proc tests if the lungs can breathe, if the mob can breathe a given gas mixture, and throws/clears gas alerts. If there are moles of gas in the given gas mixture, side-effects may be applied/removed on the mob. This proc expects a lungs organ in order to breathe successfully, but does not defer any work to it.
Returns TRUE if the breath was successful, or FALSE if otherwise.
Arguments:
- breath: A gas mixture to test, or null.
- skip_breath: Used to differentiate between a failed breath and a lack of breath. A mob suffocating due to being in a vacuum may be treated differently than a mob suffocating due to lung failure.
check_self_for_injuries
Check ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel
check_virus
Medical HUD! Basic mode needs suit sensors on.
clone_skillchip_list
Creates a list of new skillchips cloned from old skillchips in the mob's brain.
Returns a complete list of new skillchips cloned from the mob's brain's existing skillchip stock. Rumour has it that Changelings just LOVE this proc. Arguments:
- cloned_chip_holder - The new holder for the cloned chips. Please don't be null.
- not_removable - Special override, whether or not to force cloned chips to be non-removable, i.e. to delete on removal.
close_all_airtanks
Quickly/lazily close all airtanks without any returns or notifications.
close_externals
Close the the currently open external (that's EX-ternal) air tank. Returns TRUE if successful.
close_internals
Actually closes the active internal or external air tank. Returns TRUE if the tank was opened successfully.
Arguments:
- is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
create_bodyparts
Creates body parts for this carbon completely from scratch. Optionally takes a map of body zones to what type to instantiate instead of them.
crit_percent
Determines how close we are to being in pain crit (Fully immobile) Returns a number between -INFINITY to INFINITY, where 100 = in crit, >100 = probably about to die, <0 = super healthy
cutoff_internals
Prepares emergency disconnect from open air tanks and notifies in chat. Usually called after mob suddenly unequips breathing apparatus.
del_and_replace_bodypart
Replaces a single limb and deletes the old one if there was one
destroy_all_skillchips
Destroys all skillchips in the brain, handling appropriate cleanup and event calls.
dream
Generates a dream sequence to be displayed to the sleeper.
Generates the "dream" to display to the sleeper. A dream consists of a subject, a verb, and (most of the time) an object, displayed in sequence to the sleeper. Dreams are generated as a list of strings stored inside dream_fragments, which is passed to and displayed in dream_sequence(). Bedsheets on the sleeper will provide a custom subject for the dream, pulled from the dream_messages on each bedsheet.
dream_sequence
Displays the passed list of dream fragments to a sleeping carbon.
Displays the first string of the passed dream fragments, then either ends the dream sequence or performs a callback on itself depending on if there are any remaining dream fragments to display.
Arguments:
- dream_fragments - A list of strings, in the order they will be displayed.
- current_dream - The dream datum used for the current dream
electrocute_act
Adds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects.
equip_conspicuous_item
Attempts to equip the given item in a conspicious place. This is used when, for instance, a character spawning with an item in their hands would be a dead giveaway that they are an antagonist. Returns the human readable name of where it placed the item, or null otherwise.
expel_ingested
Expel the reagents you just tried to ingest
When you try to ingest reagents but you do not have a stomach you will spew the reagents on the floor.
Vars:
- bite: /atom the reagents to expel
- amount: int The amount of reagent
generate_death_examine_text
Returns death message for mob examine text
generate_fake_scars
generate_fake_scars()- for when you want to scar someone, but you don't want to hurt them first. These scars don't count for temporal scarring (hence, fake)
If you want a specific wound scar, pass that wound type as the second arg, otherwise you can pass a list like WOUND_LIST_SLASH to generate a random cut scar.
Arguments:
- num_scars- A number for how many scars you want to add
- forced_type- Which wound or category of wounds you want to choose from, WOUND_LIST_BLUNT, WOUND_LIST_SLASH, or WOUND_LIST_BURN (or some combination). If passed a list, picks randomly from the listed wounds. Defaults to all 3 types
getPlasma
Gets the plasma level of this carbon's plasma vessel, or -1 if they don't have one
get_active_bodyshapes
Get all bodyshapes but filter out bodyshapes that are currently being hidden
get_all_covered_flags
Returns a bitfield of all zones covered by clothing
get_all_limbs
Returns a list of all limbs this mob should have.
get_blood_dna_list
Get the mobs dna list
get_breath_from_internal
Attempts to take a breath from the external or internal air tank.
Return a gas mixture datum if a breath was taken Return null if there was no gas inside the tank or no gas was distributed Return SKIP_INTERNALS to skip using internals entirely and get a normal breath
get_breath_from_surroundings
Attempts to take a breath from the surroundings.
Returns a gas mixture datum if a breath was taken. Returns null if there was no gas in the surroundings or no gas was distributed.
get_brute_loss_for_type
Returns the amount of bruteloss across all bodyparts meeting the matching bodytype. Useful for if you would like to check the bruteloss for only organic bodyparts, for example.
Arguments:
- required_bodytype - The bodytype(s) to match against.
get_clothing_examine_info
Coolects examine information about the mob's clothing and equipment
get_clothing_on_part
Get all the clothing on a specific body part
get_covered_body_zones
Returns a list of all body_zones covered by clothing
get_damageable_bodyparts
Returns a list of damageable bodyparts
get_damaged_bodyparts
Returns a list of damaged bodyparts
get_face_name
Gets what the face of this mob looks like
- if_no_face - What to return if we have no face or our face is obscured/disfigured
get_fire_loss_for_type
Returns the amount of fireloss across all bodyparts meeting the matching bodytype. Useful for if you would like to check the fireloss for only organic bodyparts, for example.
Arguments:
- required_bodytype - The bodytype(s) to match against.
get_hand_of_item
Returns the bodypart holding the passed item
get_height_difference
Reports the height difference between src and user
get_held_overlays
Generate held item overlays
get_hud_examine_info
Collects info displayed about any HUDs the user has when examining src
get_id_name
Gets whatever name is in our ID or PDA
- if_no_id - What to return if we have no ID or PDA
- honorifics - Whether to include honorifics in the returned name (if the found ID has any set)
get_majority_bodypart_damage_desc
Returns a list of "damtype" => damage description based off of which bodypart description is most common
get_medhud_examine_info
Collects information displayed about src when examined by a user with a medical HUD.
get_missing_limbs
Returns a list of all missing limbs this mob should have on them, but don't.
get_organ_loss
If an organ exists in the slot requested, return the amount of damage that organ has
Arguments:
- slot - organ slot, like [ORGAN_SLOT_HEART]
get_sechud_examine_info
Collects information displayed about src when examined by a user with a security HUD.
get_total_bleed_rate
get our total bleedrate
get_traumas
TRAUMAS
get_visible_items
Returns items which are currently visible on the mob
get_wound_threshold_of_wound_type
Limb is nullable, but picks a random one. Defers to limb.get_wound_threshold_of_wound_type, see it for documentation.
get_wounded_bodyparts
Returns a list of bodyparts with wounds (in case someone has a wound on an otherwise fully healed limb)
give
Proc called when offering an item to another player
This handles creating an alert and adding an overlay to it
handle_breath_temperature
Fourth and final link in a breath chain
handle_dead_metabolization
Handles calling metabolization for dead people. Due to how reagent metabolization code works this couldn't be done anywhere else.
Arguments:
- seconds_per_tick: The amount of time that has elapsed since the last tick.
- times_fired: The number of times SSmobs has ticked.
handle_dreams
Begins the dreaming process on a sleeping carbon.
Checks a 10% chance and whether or not the carbon this is called on is already dreaming. If the prob() passes and there are no dream images left to display, a new dream is constructed.
handle_liver
Check to see if we have the liver, if not automatically gives you last-stage effects of lacking a liver.
heal_bodypart_damage
Heals ONE bodypart randomly selected from damaged ones.
It automatically updates damage overlays if necessary
It automatically updates health status
humanize
Humanize
implant_skillchip
Attempts to implant this skillchip into the target carbon's brain.
Returns whether the skillchip was inserted or not. Can optionally give chat message notification to the mob. Arguments:
- skillchip - The skillchip you want to insert.
- silent - Whether or not to display the implanting message.
- force - Whether to force the implant to happen, including forcing activating if activate = TRUE. Ignores incompatibility checks. Used by changelings.
init_bioscrambler_lists
Fill in the lists of things we can bioscramble into people
invalid_internals
Returns truthy if air tank is open and mob lacks apparatus, or if the tank moved away from the mob.
is_bleeding
if any of our bodyparts are bleeding
is_digitigrade_squished
Checks if this mob is wearing anything that does not have a valid sprite set for digitigrade legs
item_coverage_changed
Called when a mob's obscured slots change
Args
- added_slots - slots that were added to obscured_slots
- removed_slots - slots that were removed from obscured_slots
lying_angle_on_lying_down
Special carbon interaction on lying down, to transform its sprite by a rotation.
make_item_prosthetic
Makes the passed item into a "prosthetic limb" of this mod, replacing any existing arm
Returns the created pseudopart
make_virtual_mob
Removes all the "organic" traits from a mob, used for virtual antagonists
on_added_hand
Called when a new hand is added
on_agender_trait_gain
On gain of TRAIT_AGENDER
This will make the mob get it's gender set to PLURAL.
on_agender_trait_loss
On removal of TRAIT_AGENDER
This will make the mob get it's gender set to whatever the DNA says it should be.
on_geneless_trait_gain
On gain of TRAIT_GENELLESS
This will clear all DNA mutations on on the mob.
on_liverless_metabolism_trait_gain
On gain of TRAIT_LIVERLESS_METABOLISM
This will clear all moods related to addictions and stop metabolization.
on_lost_hand
Cleans up references to a hand when it is dismembered or deleted
on_nobreath_trait_gain
On gain of TRAIT_NOBREATH
This will clear all alerts and moods related to breathing.
on_toximmune_trait_gain
On gain of TRAIT_TOXIMMUNE
This will clear all toxin damage on the mob.
on_virusimmune_trait_gain
On gain of TRAIT_VIRUSIMMUNE
This will clear all diseases on the mob.
open_internals
Open the internal air tank without checking for any breathing apparatus. Returns TRUE if the air tank was opened successfully. Closes any existing tanks before opening another one.
Arguments:
- tank - The given tank to open and start breathing from.
- is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
regenerate_organs
Heals all of the mob's organs, and re-adds any missing ones.
- regenerate_existing - if TRUE, existing organs will be deleted and replaced with new ones
remove_all_embedded_objects
Remove all embedded objects from all limbs on the carbon mob
remove_bodypart
Proc to hook behavior on bodypart removals. Do not directly call. You're looking for [/obj/item/bodypart/proc/drop_limb()].
remove_embedded_object
Remove a specific embedded item from the carbon mob
remove_item_coverage
Removes the passed item's coverage from the mob's coverage related flags
remove_skillchip
Attempts to remove this skillchip from the target carbon's brain.
Returns FALSE when the skillchip couldn't be removed for some reason, including the target or brain not existing or the skillchip not being in the brain. Arguments:
- target - The living carbon whose brain you want to remove the chip from.
- silent - Whether or not to display the removal message.
return_and_replace_bodypart
Replaces a single limb and returns the old one if there was one
secondary_shock
Called slightly after electrocute act to apply a secondary stun.
setOrganLoss
If an organ exists in the slot requested, and we are capable of taking damage (we don't have GODMODE on), call the set damage proc on that organ, which can set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss.
Arguments:
- slot - organ slot, like [ORGAN_SLOT_HEART]
- amount - damage to be set to
- required_organ_flag - targets only a specific organ type if set to ORGAN_ORGANIC or ORGAN_ROBOTIC
Returns: The net change in damage from set_organ_damage()
set_heartattack
Causes the mob to either start or stop having a heart attack.
status - Pass TRUE to start a heart attack, or FALSE to stop one.
Returns TRUE if heart status was changed (heart attack -> no heart attack, or visa versa)
share_bodytemperature
Have two mobs share body heat between each other. Account for the insulation and max temperature change range for the mob
vars:
- M The mob/living/carbon that is sharing body heat
should_electrocute
Returns whether or not the carbon should be able to be shocked
synchronize_bodyshapes
Makes sure that the owner's bodyshape flags match the flags of all of it's parts and organs
synchronize_bodytypes
Makes sure that the owner's bodytype flags match the flags of all of it's parts and organs
take
Proc called when the player clicks the give alert
Handles checking if the player taking the item has open slots and is in range of the offerer Also deals with the actual transferring of the item to the players hands Arguments:
- offerer - The person giving the original item
- I - The item being given by the offerer
toggle_close_internals
Prepares to close the currently open internal air tank and notifies in chat. Handles displaying messages to the user before doing the actual closing. Returns TRUE if
Arguments:
- is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
toggle_externals
Toggles the given external (that's EX-ternal) air tank open, or close the currently open one, if a compatible breathing apparatus is found. Returns TRUE if the tank was opened successfully.
Arguments:
- tank - The given tank to toggle open and start breathing from externally.
toggle_internals
Toggles the given internal air tank open, or close the currently open one, if a compatible breathing apparatus is found. Returns TRUE if the tank was opened successfully.
Arguments:
- tank - The given tank to toggle open and start breathing from internally.
toggle_open_internals
Prepares to open the internal air tank and notifies the mob in chat. Handles displaying messages to the user before doing the actual opening. Returns TRUE if the tank was opened/closed successfully.
Arguments:
- tank - The given tank to toggle open and start breathing from.
- is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
try_open_internals
Opens the given internal air tank if a breathing apparatus is found. Returns TRUE if successful, FALSE otherwise. Returns TRUE if the tank was opened successfully.
Arguments:
- tank - The given tank we will attempt to toggle open and start breathing from.
- is_external - A boolean which indicates if the air tank must be equipped, or stored elsewhere.
unwag_tail
Helper to cleanly stop all tail wagging Returns true if successful, false otherwise
update_body_parts
Checks to see if any bodyparts need to be redrawn, then does so. update_limb_data = TRUE redraws the limbs to conform to the owner. Returns an integer representing the number of limbs that were updated.
update_bodypart_bleed_overlays
Has each bodypart update its bleed/wound overlay icon states
update_bodypart_speed_modifier
Updates the bodypart speed modifier based on our bodyparts.
update_features
Updates features and clothing attached to a specific limb with limb-specific offsets
update_spacesuit_hud_icon
Upsed specifically to update the spacesuit hud element
update_tint
Calculates how visually impaired the mob is by their equipment and other factors
This is where clothing adds its various vision limiting effects, such as welding helmets
vomit
Proc that compels the mob to throw up. Returns TRUE if the mob actually threw up.
wag_tail
Helper to cleanly trigger tail wagging Accepts an optional timeout after which we remove the tail wagging Returns true if successful, false otherwise
wearing_shock_proof_gloves
Returns if the carbon is wearing shock proof gloves