/tg/ Station 13 - Modules - TypesVar Details - Proc Details

carbon

Vars

all_scarsAll of the scars a carbon has afflicted throughout their limbs
all_woundsAll of the wounds a carbon has afflicted throughout their limbs
body_zone_dismembered_byAssoc 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.
bodypartsGets 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.
bodyshapeA bitfield of "bodyshapes", updated by /obj/item/bodypart/proc/synchronize_bodyshapes()
bodytypeA bitfield of "bodytypes", updated by /obj/item/bodypart/proc/synchronize_bodytypes()
can_be_shoved_intoCan other carbons be shoved into this one to make it fall?
co2overloadtimeUsed in [carbon/proc/check_breath] and [lungs/proc/check_breath]]
cold_protectionProtection (insulation) from the cold, Value 0-1 corresponding to the percentage of protection
damageoverlaytempUsed 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.
disgustMeasure of how disgusted we are. See DISGUST_LEVEL_GROSS and friends
dnaCarbon, you should really only be accessing this through has_dna() but it's your life
earsonly 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_breathThis is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
glassesonly used by humans.
glovesonly used by humans
hand_bodypartsA collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems)
handcuffedWhether or not the mob is handcuffed
heat_protectionProtection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection
icon_render_keysA cache of bodypart = icon to prevent excessive icon creation.
internalEquipped air tank. Never set this manually.
last_mindlast mind to control this mob, for blood-based cloning
last_top_offsetStores the result of our last known top_offset generation for optimisation purposes when drawing limb icons.
legcuffedSame as handcuffs but for legs. Bear traps use this.
old_disgustHow disgusted we were LAST time we processed disgust. Helps prevent unneeded work
organsList of /obj/item/organs in the mob. They don't go in the contents for some reason I don't want to know.
organs_slotSame as above, but stores "slot ID" - "organ" pairs for easy access.
shoesonly used by humans.
skillchip_complexity_modifierSimple modifier for whether this mob can handle greater or lesser skillchip complexity. See /datum/mutation/human/biotechcompat/ for example.
stam_regen_start_timeused to halt stamina regen temporarily
transformation_timerTimer id of any transformation
visual_only_organsOnly load in visual organs

Procs

add_bodypartProc to hook behavior on bodypart additions. Do not directly call. You're looking for [/obj/item/bodypart/proc/try_attach_limb()].
adjustOrganLossIf 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.
adjustPlasmaAdjusts the plasma level of the carbon's plasma vessel if they have one
adjust_bodytemperatureAdjust the body temperature of a mob expanded for carbon mobs allowing the use of insulation and change steps
adjust_skillchip_complexity_modifierModifies max_skillchip_count and updates active skillchips
bioscrambleRandomise a body part and organ of this mob
bleed_warnbleed_warn() is used to for carbons with an active client to occasionally receive messages warning them about their bleeding status (if applicable)
can_breathe_helmetReturns TRUE if an air tank compatible helmet is equipped.
can_breathe_internalsReturns TRUE if an air tank compatible mask or breathing tube is equipped.
can_breathe_maskReturns TRUE if an air tank compatible mask is equipped.
can_breathe_tubeReturns TRUE if a breathing tube is equipped.
can_touch_acidThis proc is used to determine whether or not the mob can handle touching an acid affected object.
can_touch_burningThis proc is used to determine whether or not the mob can handle touching a burning object.
cause_wound_of_type_and_severityA 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_breathThis 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_passoutCheck to see if we should be passed out from oxyloss
check_self_for_injuriesCheck 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_virusMedical HUD! Basic mode needs suit sensors on.
clone_skillchip_listCreates a list of new skillchips cloned from old skillchips in the mob's brain.
close_all_airtanksQuickly/lazily close all airtanks without any returns or notifications.
close_externalsClose the the currently open external (that's EX-ternal) air tank. Returns TREUE if successful.
close_internalsActually closes the active internal or external air tank. Returns TRUE if the tank was opened successfully.
create_bodypartsCreates body parts for this carbon completely from scratch. Optionally takes a map of body zones to what type to instantiate instead of them.
cutoff_internalsPrepares emergency disconnect from open air tanks and notifies in chat. Usually called after mob suddenly unequips breathing apparatus.
del_and_replace_bodypartReplaces a single limb and deletes the old one if there was one
destroy_all_skillchipsDestroys all skillchips in the brain, handling appropriate cleanup and event calls.
dreamGenerates a dream sequence to be displayed to the sleeper.
dream_sequenceDisplays the passed list of dream fragments to a sleeping carbon.
electrocute_actAdds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects.
equip_conspicuous_itemAttempts 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_ingestedExpel the reagents you just tried to ingest
generate_fake_scarsgenerate_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)
getPlasmaGets the plasma level of this carbon's plasma vessel, or -1 if they don't have one
get_all_covered_flagsReturns a bitfield of all zones covered by clothing
get_bleed_rateA helper to see how much blood we're losing per tick
get_blood_dna_listGet the mobs dna list
get_breath_from_internalAttempts to take a breath from the external or internal air tank.
get_cold_protectionThis 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_zonesReturns a list of all body_zones covered by clothing
get_damageable_bodypartsReturns a list of damageable bodyparts
get_damaged_bodypartsReturns a list of damaged bodyparts
get_heat_protectionThis returns the percentage of protection from heat as a value from 0 - 1 temperature is the temperature you're being exposed to
get_held_overlaysGenerate held item overlays
get_insulation_protectionGet 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_organ_lossIf an organ exists in the slot requested, return the amount of damage that organ has
get_top_offsetThis looks at the chest and legs of the mob and decides how much our chest, arms, and head should be adjusted. This is useful for limbs that are larger or smaller than the scope of normal human height while keeping the feet anchored to the bottom of the tile
get_total_bleed_rateget our total bleedrate
get_traumasTRAUMAS
get_visible_itemsReturns items which are currently visible on the mob
get_wound_threshold_of_wound_typeLimb is nullable, but picks a random one. Defers to limb.get_wound_threshold_of_wound_type, see it for documentation.
get_wounded_bodypartsReturns a list of bodyparts with wounds (in case someone has a wound on an otherwise fully healed limb)
giveProc called when offering an item to another player
handle_breath_temperatureFourth and final link in a breath chain
handle_dead_metabolizationHandles calling metabolization for dead people. Due to how reagent metabolization code works this couldn't be done anywhere else.
handle_dreamsBegins the dreaming process on a sleeping carbon.
handle_environmentBase carbon environment handler, adds natural stabilization
handle_liverCheck to see if we have the liver, if not automatically gives you last-stage effects of lacking a liver.
handle_suffocationFallback "empty breath" for convenience. The list of gases in the breath. Indicates if there are moles of gas in the breath. Minimum O2 before suffocation. Maximum CO2 before side-effects. Maximum Plasma before side-effects. Maximum Pluoxum before side-effects. 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_equippedThis proc is called after an item has been successfully handled and equipped to a slot.
head_updateHandle stuff to update when a mob equips/unequips a headgear.
heal_bodypart_damageHeals ONE bodypart randomly selected from damaged ones.
humanizeHumanize
implant_skillchipAttempts to implant this skillchip into the target carbon's brain.
init_bioscrambler_listsFill in the lists of things we can bioscramble into people
invalid_internalsReturns truthy if air tank is open and mob lacks apparatus, or if the tank moved away from the mob.
is_bleedingif any of our bodyparts are bleeding
lying_angle_on_lying_downSpecial carbon interaction on lying down, to transform its sprite by a rotation.
make_virtual_mobRemoves all the "organic" traits from a mob, used for virtual antagonists
natural_bodytemperature_stabilizationUsed to stabilize the body temperature back to normal on living mobs
on_added_handCalled when a new hand is added
on_agender_trait_gainOn gain of TRAIT_AGENDER
on_agender_trait_lossOn removal of TRAIT_AGENDER
on_geneless_trait_gainOn gain of TRAIT_GENELLESS
on_liverless_metabolism_trait_gainOn gain of TRAIT_LIVERLESS_METABOLISM
on_lost_handCleans up references to a hand when it is dismembered or deleted
on_nobreath_trait_gainOn gain of TRAIT_NOBREATH
on_toximmune_trait_gainOn gain of TRAIT_TOXIMMUNE
on_virusimmune_trait_gainOn gain of TRAIT_VIRUSIMMUNE
open_internalsOpen 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_organsHeals all of the mob's organs, and re-adds any missing ones.
remove_all_embedded_objectsRemove all embedded objects from all limbs on the carbon mob
remove_bodypartProc to hook behavior on bodypart removals. Do not directly call. You're looking for [/obj/item/bodypart/proc/drop_limb()].
remove_embedded_objectRemove a specific embedded item from the carbon mob
remove_skillchipAttempts to remove this skillchip from the target carbon's brain.
return_and_replace_bodypartReplaces a single limb and returns the old one if there was one
secondary_shockCalled slightly after electrocute act to apply a secondary stun.
setOrganLossIf 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_handcuffedModifies the handcuffed value if a different value is passed, returning FALSE otherwise. The variable should only be changed through this proc.
set_heartattackCauses the mob to either start or stop having a heart attack.
share_bodytemperatureHave two mobs share body heat between each other. Account for the insulation and max temperature change range for the mob
should_electrocuteReturns whether or not the carbon should be able to be shocked
spray_bloodThis proc is a helper for spraying blood for things like slashing/piercing wounds and dismemberment.
synchronize_bodyshapesMakes sure that the owner's bodyshape flags match the flags of all of it's parts and organs
synchronize_bodytypesMakes sure that the owner's bodytype flags match the flags of all of it's parts and organs
takeProc called when the player clicks the give alert
take_bodypart_damageDamages ONE bodypart randomly selected from damagable ones.
toggle_close_internalsPrepares 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_externalsToggles 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_internalsToggles 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_internalsPrepares 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_internalsOpens 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_tailHelper to cleanly stop all tail wagging Returns true if successful, false otherwise
update_body_partsChecks to see if any bodyparts need to be redrawn, then does so. update_limb_data = TRUE redraws the limbs to conform to the owner.
update_bodypart_bleed_overlaysHas each bodypart update its bleed/wound overlay icon states
update_bodypart_speed_modifierUpdates the bodypart speed modifier based on our bodyparts.
update_featuresUpdates features and clothing attached to a specific limb with limb-specific offsets
update_tintCalculates how visually impaired the mob is by their equipment and other factors
vomitProc that compels the mob to throw up. Returns TRUE if the mob actually threw up.
wag_tailHelper 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_glovesReturns 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()

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 brath, 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.

stam_regen_start_time

used to halt stamina regen temporarily

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 GODMODE on), call the damage proc on that organ.

Arguments:

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:

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:

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:

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:

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:

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 TREUE if successful.

close_internals

Actually closes the active internal or external air tank. Returns TRUE if the tank was opened successfully.

Arguments:

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.

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:

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:

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:

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_dna_list

Get the mobs dna list

get_breath_from_internal

Attempts to take a breath from the external or internal air tank.

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_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_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_organ_loss

If an organ exists in the slot requested, return the amount of damage that organ has

Arguments:

get_top_offset

This looks at the chest and legs of the mob and decides how much our chest, arms, and head should be adjusted. This is useful for limbs that are larger or smaller than the scope of normal human height while keeping the feet anchored to the bottom of the tile

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:

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

Fallback "empty breath" for convenience. The list of gases in the breath. Indicates if there are moles of gas in the breath. Minimum O2 before suffocation. Maximum CO2 before side-effects. Maximum Plasma before side-effects. Maximum Pluoxum before side-effects. 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.

head_update

Handle stuff to update when a mob equips/unequips a headgear.

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:

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

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:

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:

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.

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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.

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