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]] |
cold_protection | Protection (insulation) from the cold, Value 0-1 corresponding to the percentage of protection |
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 |
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 |
heat_protection | Protection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection |
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. |
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()]. |
adjustOrganLoss | If an organ exists in the slot requested, and we are capable of taking damage (we don't have TRAIT_GODMODE), call the damage proc on that organ. |
adjustPlasma | Adjusts the plasma level of the carbon's plasma vessel if they have one |
adjust_bodytemperature | Adjust the body temperature of a mob expanded for carbon mobs allowing the use of insulation and change steps |
adjust_skillchip_complexity_modifier | Modifies max_skillchip_count and updates active skillchips |
bioscramble | Randomise a body part and organ of this mob |
bleed_warn | bleed_warn() is used to for carbons with an active client to occasionally receive messages warning them about their bleeding status (if applicable) |
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_passout | Check to see if we should be passed out from oxyloss |
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. |
cuff_resist | Helper to break the cuffs from hands @param {obj/item} cuffs - The cuffs to break @param {number} breakouttime - The time it takes to break the cuffs. Use SECONDS/MINUTES defines @param {number} cuff_break - Speed multiplier, 0 is default, see _DEFINES\combat.dm |
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_all_covered_flags | Returns a bitfield of all zones covered by clothing |
get_bleed_rate | A helper to see how much blood we're losing per tick |
get_blood_compatibility | Returns TRUE if src is compatible with donor's blood, otherwise FALSE. |
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_clothing_examine_info | Coolects examine information about the mob's clothing and equipment |
get_cold_protection | This returns the percentage of protection from cold as a value from 0 - 1 temperature is the temperature you're being exposed to |
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 | Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when Fluacided or when updating a human's name variable |
get_heat_protection | This returns the percentage of protection from heat as a value from 0 - 1 temperature is the temperature you're being exposed to |
get_held_overlays | Generate held item overlays |
get_hud_examine_info | Collects info displayed about any HUDs the user has when examining src |
get_insulation_protection | Get the insulation that is appropriate to the temperature you're being exposed to. All clothing, natural insulation, and traits are combined returning a single value. |
get_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_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_uplink_location | Gets an item that can be used as an uplink somewhere on the mob's person. |
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_environment | Base carbon environment handler, adds natural stabilization |
handle_liver | Check to see if we have the liver, if not automatically gives you last-stage effects of lacking a liver. |
handle_suffocation | Applies suffocation side-effects to a given Human, scaling based on ratio of required pressure VS "true" pressure. If pressure is greater than 0, the return value will represent the amount of gas successfully breathed. |
has_equipped | This proc is called after an item has been successfully handled and equipped to a slot. |
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 (In other words, is the mob's digitigrade body squished by its clothing?) |
lying_angle_on_lying_down | Special carbon interaction on lying down, to transform its sprite by a rotation. |
make_virtual_mob | Removes all the "organic" traits from a mob, used for virtual antagonists |
natural_bodytemperature_stabilization | Used to stabilize the body temperature back to normal on living mobs |
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_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 TRAIT_GODMODE), 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_handcuffed | Modifies the handcuffed value if a different value is passed, returning FALSE otherwise. The variable should only be changed through this proc. |
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 |
spray_blood | This proc is a helper for spraying blood for things like slashing/piercing wounds and dismemberment. |
synchronize_bodyshapes | Makes sure that the owner's bodyshape flags match the flags of all of its parts and organs |
synchronize_bodytypes | Makes sure that the owner's bodytype flags match the flags of all of its parts and organs |
take | Proc called when the player clicks the give alert |
take_bodypart_damage | Damages ONE bodypart randomly selected from damagable ones. |
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_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]]
cold_protection
Protection (insulation) from the cold, Value 0-1 corresponding to the percentage of protection
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
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
heat_protection
Protection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection
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.
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()].
adjustOrganLoss
If an organ exists in the slot requested, and we are capable of taking damage (we don't have TRAIT_GODMODE), 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_bodytemperature
Adjust the body temperature of a mob expanded for carbon mobs allowing the use of insulation and change steps
vars:
- amount The amount of degrees to change body temperature by
- min_temp (optional) The minimum body temperature after adjustment
- max_temp (optional) The maximum body temperature after adjustment
- use_insulation (optional) modifies the amount based on the amount of insulation the mob has
- use_steps (optional) Use the body temp divisors and max change rates
- capped (optional) default True used to cap step mode
adjust_skillchip_complexity_modifier
Modifies max_skillchip_count and updates active skillchips
bioscramble
Randomise a body part and organ of this mob
bleed_warn
bleed_warn() is used to for carbons with an active client to occasionally receive messages warning them about their bleeding status (if applicable)
Arguments:
- bleed_amt- When we run this from /mob/living/carbon/human/proc/handle_blood we already know how much blood we're losing this tick, so we can skip tallying it again with this
- forced-
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.
check_passout
Check to see if we should be passed out from oxyloss
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.
cuff_resist
Helper to break the cuffs from hands @param {obj/item} cuffs - The cuffs to break @param {number} breakouttime - The time it takes to break the cuffs. Use SECONDS/MINUTES defines @param {number} cuff_break - Speed multiplier, 0 is default, see _DEFINES\combat.dm
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_all_covered_flags
Returns a bitfield of all zones covered by clothing
get_bleed_rate
A helper to see how much blood we're losing per tick
get_blood_compatibility
Returns TRUE if src is compatible with donor's blood, otherwise FALSE.
- donor: Carbon mob, the one that is donating blood.
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_clothing_examine_info
Coolects examine information about the mob's clothing and equipment
get_cold_protection
This returns the percentage of protection from cold as a value from 0 - 1 temperature is the temperature you're being exposed to
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
Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when Fluacided or when updating a human's name variable
get_heat_protection
This returns the percentage of protection from heat as a value from 0 - 1 temperature is the temperature you're being exposed to
get_held_overlays
Generate held item overlays
get_hud_examine_info
Collects info displayed about any HUDs the user has when examining src
get_insulation_protection
Get the insulation that is appropriate to the temperature you're being exposed to. All clothing, natural insulation, and traits are combined returning a single value.
required temperature The Temperature that you're being exposed to
return the percentage of protection as a value from 0 - 1
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_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_uplink_location
Gets an item that can be used as an uplink somewhere on the mob's person.
- desired_location: the location to look for the uplink in. An UPLINK_ define. If the desired location is not found, defaults to another location.
Returns the item found, or null if no item was found.
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_environment
Base carbon environment handler, adds natural stabilization
handle_liver
Check to see if we have the liver, if not automatically gives you last-stage effects of lacking a liver.
handle_suffocation
Applies suffocation side-effects to a given Human, scaling based on ratio of required pressure VS "true" pressure. If pressure is greater than 0, the return value will represent the amount of gas successfully breathed.
has_equipped
This proc is called after an item has been successfully handled and equipped to a slot.
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 (In other words, is the mob's digitigrade body squished by its clothing?)
lying_angle_on_lying_down
Special carbon interaction on lying down, to transform its sprite by a rotation.
make_virtual_mob
Removes all the "organic" traits from a mob, used for virtual antagonists
natural_bodytemperature_stabilization
Used to stabilize the body temperature back to normal on living mobs
Arguments:
- environemnt: The environment gas mix
- seconds_per_tick: The amount of time that has elapsed since the last tick
- times_fired: The number of times SSmobs has ticked
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_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 TRAIT_GODMODE), 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_handcuffed
Modifies the handcuffed value if a different value is passed, returning FALSE otherwise. The variable should only be changed through this proc.
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
spray_blood
This proc is a helper for spraying blood for things like slashing/piercing wounds and dismemberment.
The strength of the splatter in the second argument determines how much it can dirty and how far it can go
Arguments:
- splatter_direction: Which direction the blood is flying
- splatter_strength: How many tiles it can go, and how many items it can pass over and dirty
synchronize_bodyshapes
Makes sure that the owner's bodyshape flags match the flags of all of its parts and organs
synchronize_bodytypes
Makes sure that the owner's bodytype flags match the flags of all of its 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
take_bodypart_damage
Damages ONE bodypart randomly selected from damagable ones.
It automatically updates damage overlays if necessary
It automatically updates health status
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_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