Daedalus Dock - Modules - TypesVar Details - Proc Details

bodypart

Vars

amputation_pointThe name for the amputation point of the limb
appearance_modsA lazylist of this bodypart's appearance_modifier datums.
arterial_bleed_severityBleed multiplier
artery_nameThe name of the artery this limb has
attack_typeType of an attack from this limb does. Arms will do punches, Legs for kicks, and head for bites. (TO ADD: tactical chestbumps)
bandageThe bandage that may-or-may-not be absorbing our blood
bleed_overlay_iconIf we're bleeding, which icon are we displaying on this part
body_partbitflag used to check which clothes cover this bodypart
body_zoneBODY_ZONE_CHEST, BODY_ZONE_L_ARM, etc , used for def_zone
bodypart_disabledIf disabled, limb is as good as missing.
bodypart_flagsBodypart flags, keeps track of blood, bones, arteries, tendons, and the like.
bodypart_trait_sourceThe name of the trait source that the organ gives. Should not be altered during the events of gameplay, and will cause problems if it is.
bodypart_traitsTraits that are given to the holder of the part. If you want an effect that changes this, don't add directly to this. Use the add_bodypart_trait() proc
bodytypeA bitfield of bodytypes for clothing, surgery, and misc information
broken_descriptionThe description used when the bones are broken.
brute_damThe current amount of brute damage the limb has
brute_ratioThe % of current_damage that is brute
brute_reductionSubtracted to brute damage taken
burn_damThe current amount of burn damage the limb has
burn_ratioThe % of current_damage that is burn
burn_reductionSubtracted to burn damage taken
cached_bleed_rateOur current bleed rate. Cached, update with refresh_bleed_rate()
can_be_disabledControls whether bodypart_disabled makes sense or not for this limb.
cavityDoes this limb have a cavity?
cavity_itemsThe items stored in our cavity
cavity_nameThe name of the cavity of the limb
cavity_storage_max_weightThe type of storage datum to use for cavity storage.
change_exempt_flagsDefines when a bodypart should not be changed. Example: BP_BLOCK_CHANGE_SPECIES prevents the limb from being overwritten on species gain
contained_organsA list of all the organs inside of us.
cremation_progressGradually increases while burning when at full damage, destroys the limb when at 100
current_damageThe current "physical" damage a bodypart has taken
disable_thresholdMultiplied by max_damage it returns the threshold which defines a limb being disabled or not. From 0 to 1. 0 means no disable thru damage
disabled_wound_penaltyWhen this bodypart hits max damage, this number is added to all wound rolls. Obviously only relevant for bodyparts that have damage caps.
dismemberablewhether it can be dismembered with a weapon.
draw_colorThe actual color a limb is drawn as, set by /proc/update_limb()
embedded_objectsList of obj/item's embedded inside us. Managed by embedded components, do not modify directly
encasedNeeds to be opened with a saw to access the organs. For robotic bodyparts, you can open the "hatch"
generic_bleedstacksHow much generic bleedstacks we have on this bodypart
hatch_stateFor robotic limbs: Hatch states, used by "surgery"
held_indexare we a hand? if so, which one!
husk_typeThe type of husk for building an iconstate
icon_bloodycoverThe file to pull bloody clothing overlays from. Null is valid.
icon_dmg_overlayThe file to pull damage overlays from. Null is valid.
icon_greyscaleThe icon for Organic limbs using greyscale
icon_huskThe icon for husked limbs
icon_staticThe icon for non-greyscale limbs
interaction_speed_modifierThe interaction speed modifier when this limb is used to interact with the world. ONLY WORKS FOR ARMS
is_dimorphicIs there a sprite difference between male and female?
is_pseudopartFor limbs that don't really exist, eg chainsaws
is_stumpIs a stump. This is handled at runtime, do not touch.
joint_nameThe name of the joint you can dislocate
last_maxedSo we know if we need to scream if this limb hits max damage
limb_idThe ID of a species used to generate the icon. Needs to match the icon_state portion in the limbs file!
max_damageThe maximum "physical" damage a bodypart can take. Set by children
minimum_break_damageThe minimum damage a part must have before it's bones may break. Defaults to max_damage * BODYPART_MINIMUM_BREAK_MOD
mutcolor_usedWhich mutcolor to use, if mutcolors are used
mutcolorsWe always copy the list of mutcolors our owner has incase our organs want it
ownerThe mob that "owns" this limb DO NOT MODIFY DIRECTLY. Use set_owner()
plaintext_zoneThe body zone of this part in english ("chest", "left arm", etc) without the species attached to it
real_wound_countNOT wounds.len! Multiple wounds of the same type compress onto the same wound datum.
should_draw_greyscaleLimbs need this information as a back-up incase they are generated outside of a carbon (limbgrower)
splintIf something is currently supporting this limb as a splint
stageSurgical stage. Magic BS. Do not touch
stuck_objectsList of obj/items stuck TO us. Managed by embedded components, do not directly modify
temporary_painHow much temporary pain is on this limb
tendon_nameThe name of the tendon this limb has
unarmed_attack_effectwhat visual effect is used when this limb is used to strike someone.
unarmed_attack_soundSounds when this bodypart is used in an umarmed attack
unarmed_attack_verbthe verb used for an unarmed attack when using this limb, such as arm.unarmed_attack_verb = punch
unarmed_damage_highHighest possible punch damage this bodypart can ive.
unarmed_damage_lowLowest possible punch damage this bodypart can give. If this is set to 0, unarmed attacks will always miss.
unarmed_stun_thresholdDamage at which attacks from this bodypart will stun
variable_colorAn "override" color that can be applied to ANY limb, greyscale or not.
wound_damage_multiplierOur current stored wound damage multiplier
wound_painHow much pain is on this limb from wounds.
wound_resistanceThis number is subtracted from all wound rolls on this bodypart, higher numbers mean more defense, negative means easier to wound
woundsThe wounds currently afflicting this body part

Procs

_embed_objectINTERNAL PROC, DO NOT USE Properly sets us up to manage an inserted embeded object
_unembed_objectINTERNAL PROC, DO NOT USE Cleans up any attachment we have to the embedded object, removes it from our list
add_bodypart_traitAdds a trait to be applied by this bodypart.
add_cavity_itemAdd an item to our cavity. Call AFTER physically moving it via a proc like forceMove().
add_organAdds the organ to a bodypart.
adjustBleedStacksModifies our generic bleedstacks. You must use this to change the variable Takes the amount to adjust by, and the lowest amount we're allowed to have post adjust
adjustPainAdjusts the pain of a limb, returning the difference. Do not call directly, use carbon.apply_pain().
apply_bone_breakApplies the effect of a broken bone to the owner.
apply_bone_healRemoves the effects of a broken bone from the owner.
apply_traitsApplies all bodypart traits to the target.
attach_limbReplace organs gracefully Transfer cavity items like implants. Attach src to target mob if able.
change_appearanceA multi-purpose setter for all things immediately important to the icon and iconstate of the limb.
damage_internal_organsDamages internal organs. Does not call updatehealth(), be mindful.
dismemberRemove target limb from it's owner, with side effects.
drop_limblimb removal. The "special" argument is used for swapping a limb with a new one without the effects of losing a limb kicking in.
generate_husk_keyGenerates a cache key specifically for husks
generate_icon_keyThis is the MEAT of limb icon code Called from update_body_parts() these procs handle the limb icon cache. the limb icon cache adds an icon_render_key to a human mob, it represents:
generate_masked_legThis proc serves as a way to ensure that legs layer properly on a mob. To do this, two separate images are created - A low layer one, and a normal layer one. Each of the image will appropriately crop out dirs that are not used on that given layer.
getPainReturns the amount of pain this bodypart is contributing
get_limb_overlaysGenerates a list of mutable appearances for the limb to be used as overlays
get_modified_bleed_rateReturns our bleed rate, taking into account laying down and grabbing the limb
handle_antibioticsHandle antibiotics and curing infections
handle_germ_effectsHandle the effects of infections
handle_germ_syncSyncing germ levels with external wounds
on_owner_nolimbdisable_trait_gainCalled when TRAIT_NOLIMBDISABLE is added to the owner.
on_owner_nolimbdisable_trait_lossCalled when TRAIT_NOLIMBDISABLE is removed from the owner.
on_paralysis_trait_gainCalled when TRAIT_PARALYSIS is added to the limb.
on_paralysis_trait_lossCalled when TRAIT_PARALYSIS is removed from the limb.
recolor_cosmetic_organsLoops through all of the bodypart's external organs and update's their color.
refresh_bleed_rateRefresh the cache of our rate of bleeding sans any modifiers ANYTHING ADDED TO THIS PROC NEEDS TO CALL IT WHEN IT'S EFFECT CHANGES
remove_bodypart_traitRemoves a trait applied by this bodypart.
remove_organRemoves the organ from the limb.
remove_traits_fromRemove all bodypart traits this part grants.
replace_limbTry to attach this bodypart to a mob, while replacing one if it exists, does nothing if it fails.
reset_appearanceResets the base appearance of a limb to it's default values.
setBleedStacksEmbedded objects effect bleed rate, gotta refresh lads Sets our generic bleedstacks
set_brute_damProc to hook behavior associated to the change of the brute_dam variable's value.
set_burn_damProc to hook behavior associated to the change of the burn_dam variable's value.
set_can_be_disabledProc to change the value of the can_be_disabled variable and react to the event of its change.
set_disabledProc to change the value of the disabled variable and react to the event of its change.
set_ownerProc to change the value of the owner variable and react to the event of its change.
synchronize_bodytypesTransfer existing hair properties to the new human. Makes sure that the owner's bodytype flags match the flags of all of it's parts.
update_damageProc to update the damage values of the bodypart.
update_interaction_speedUpdates the interaction speed modifier of this limb, used by Limping and similar to determine delay.

Var Details

amputation_point

The name for the amputation point of the limb

appearance_mods

A lazylist of this bodypart's appearance_modifier datums.

arterial_bleed_severity

Bleed multiplier

artery_name

The name of the artery this limb has

attack_type

Type of an attack from this limb does. Arms will do punches, Legs for kicks, and head for bites. (TO ADD: tactical chestbumps)

bandage

The bandage that may-or-may-not be absorbing our blood

bleed_overlay_icon

If we're bleeding, which icon are we displaying on this part

body_part

bitflag used to check which clothes cover this bodypart

body_zone

BODY_ZONE_CHEST, BODY_ZONE_L_ARM, etc , used for def_zone

bodypart_disabled

If disabled, limb is as good as missing.

bodypart_flags

Bodypart flags, keeps track of blood, bones, arteries, tendons, and the like.

bodypart_trait_source

The name of the trait source that the organ gives. Should not be altered during the events of gameplay, and will cause problems if it is.

bodypart_traits

Traits that are given to the holder of the part. If you want an effect that changes this, don't add directly to this. Use the add_bodypart_trait() proc

bodytype

A bitfield of bodytypes for clothing, surgery, and misc information

broken_description

The description used when the bones are broken.

brute_dam

The current amount of brute damage the limb has

brute_ratio

The % of current_damage that is brute

brute_reduction

Subtracted to brute damage taken

burn_dam

The current amount of burn damage the limb has

burn_ratio

The % of current_damage that is burn

burn_reduction

Subtracted to burn damage taken

cached_bleed_rate

Our current bleed rate. Cached, update with refresh_bleed_rate()

can_be_disabled

Controls whether bodypart_disabled makes sense or not for this limb.

cavity

Does this limb have a cavity?

cavity_items

The items stored in our cavity

cavity_name

The name of the cavity of the limb

cavity_storage_max_weight

The type of storage datum to use for cavity storage.

change_exempt_flags

Defines when a bodypart should not be changed. Example: BP_BLOCK_CHANGE_SPECIES prevents the limb from being overwritten on species gain

contained_organs

A list of all the organs inside of us.

cremation_progress

Gradually increases while burning when at full damage, destroys the limb when at 100

current_damage

The current "physical" damage a bodypart has taken

disable_threshold

Multiplied by max_damage it returns the threshold which defines a limb being disabled or not. From 0 to 1. 0 means no disable thru damage

disabled_wound_penalty

When this bodypart hits max damage, this number is added to all wound rolls. Obviously only relevant for bodyparts that have damage caps.

dismemberable

whether it can be dismembered with a weapon.

draw_color

The actual color a limb is drawn as, set by /proc/update_limb()

embedded_objects

List of obj/item's embedded inside us. Managed by embedded components, do not modify directly

encased

Needs to be opened with a saw to access the organs. For robotic bodyparts, you can open the "hatch"

generic_bleedstacks

How much generic bleedstacks we have on this bodypart

hatch_state

For robotic limbs: Hatch states, used by "surgery"

held_index

are we a hand? if so, which one!

husk_type

The type of husk for building an iconstate

icon_bloodycover

The file to pull bloody clothing overlays from. Null is valid.

icon_dmg_overlay

The file to pull damage overlays from. Null is valid.

icon_greyscale

The icon for Organic limbs using greyscale

icon_husk

The icon for husked limbs

icon_static

The icon for non-greyscale limbs

interaction_speed_modifier

The interaction speed modifier when this limb is used to interact with the world. ONLY WORKS FOR ARMS

is_dimorphic

Is there a sprite difference between male and female?

is_pseudopart

For limbs that don't really exist, eg chainsaws

is_stump

Is a stump. This is handled at runtime, do not touch.

joint_name

The name of the joint you can dislocate

last_maxed

So we know if we need to scream if this limb hits max damage

limb_id

The ID of a species used to generate the icon. Needs to match the icon_state portion in the limbs file!

max_damage

The maximum "physical" damage a bodypart can take. Set by children

minimum_break_damage

The minimum damage a part must have before it's bones may break. Defaults to max_damage * BODYPART_MINIMUM_BREAK_MOD

mutcolor_used

Which mutcolor to use, if mutcolors are used

mutcolors

We always copy the list of mutcolors our owner has incase our organs want it

owner

The mob that "owns" this limb DO NOT MODIFY DIRECTLY. Use set_owner()

plaintext_zone

The body zone of this part in english ("chest", "left arm", etc) without the species attached to it

real_wound_count

NOT wounds.len! Multiple wounds of the same type compress onto the same wound datum.

should_draw_greyscale

Limbs need this information as a back-up incase they are generated outside of a carbon (limbgrower)

splint

If something is currently supporting this limb as a splint

stage

Surgical stage. Magic BS. Do not touch

stuck_objects

List of obj/items stuck TO us. Managed by embedded components, do not directly modify

temporary_pain

How much temporary pain is on this limb

tendon_name

The name of the tendon this limb has

unarmed_attack_effect

what visual effect is used when this limb is used to strike someone.

unarmed_attack_sound

Sounds when this bodypart is used in an umarmed attack

unarmed_attack_verb

the verb used for an unarmed attack when using this limb, such as arm.unarmed_attack_verb = punch

unarmed_damage_high

Highest possible punch damage this bodypart can ive.

unarmed_damage_low

Lowest possible punch damage this bodypart can give. If this is set to 0, unarmed attacks will always miss.

unarmed_stun_threshold

Damage at which attacks from this bodypart will stun

variable_color

An "override" color that can be applied to ANY limb, greyscale or not.

wound_damage_multiplier

Our current stored wound damage multiplier

wound_pain

How much pain is on this limb from wounds.

wound_resistance

This number is subtracted from all wound rolls on this bodypart, higher numbers mean more defense, negative means easier to wound

wounds

The wounds currently afflicting this body part

Proc Details

_embed_object

INTERNAL PROC, DO NOT USE Properly sets us up to manage an inserted embeded object

_unembed_object

INTERNAL PROC, DO NOT USE Cleans up any attachment we have to the embedded object, removes it from our list

add_bodypart_trait

Adds a trait to be applied by this bodypart.

add_cavity_item

Add an item to our cavity. Call AFTER physically moving it via a proc like forceMove().

add_organ

Adds the organ to a bodypart.

adjustBleedStacks

Modifies our generic bleedstacks. You must use this to change the variable Takes the amount to adjust by, and the lowest amount we're allowed to have post adjust

adjustPain

Adjusts the pain of a limb, returning the difference. Do not call directly, use carbon.apply_pain().

apply_bone_break

Applies the effect of a broken bone to the owner.

apply_bone_heal

Removes the effects of a broken bone from the owner.

apply_traits

Applies all bodypart traits to the target.

attach_limb

Replace organs gracefully Transfer cavity items like implants. Attach src to target mob if able.

change_appearance

A multi-purpose setter for all things immediately important to the icon and iconstate of the limb.

damage_internal_organs

Damages internal organs. Does not call updatehealth(), be mindful.

dismember

Remove target limb from it's owner, with side effects.

drop_limb

limb removal. The "special" argument is used for swapping a limb with a new one without the effects of losing a limb kicking in.

generate_husk_key

Generates a cache key specifically for husks

generate_icon_key

This is the MEAT of limb icon code Called from update_body_parts() these procs handle the limb icon cache. the limb icon cache adds an icon_render_key to a human mob, it represents:

generate_masked_leg

This proc serves as a way to ensure that legs layer properly on a mob. To do this, two separate images are created - A low layer one, and a normal layer one. Each of the image will appropriately crop out dirs that are not used on that given layer.

Arguments:

Returns the list of masked images, or null if the limb_overlay didn't exist

getPain

Returns the amount of pain this bodypart is contributing

get_limb_overlays

Generates a list of mutable appearances for the limb to be used as overlays

get_modified_bleed_rate

Returns our bleed rate, taking into account laying down and grabbing the limb

handle_antibiotics

Handle antibiotics and curing infections

handle_germ_effects

Handle the effects of infections

handle_germ_sync

Syncing germ levels with external wounds

on_owner_nolimbdisable_trait_gain

Called when TRAIT_NOLIMBDISABLE is added to the owner.

on_owner_nolimbdisable_trait_loss

Called when TRAIT_NOLIMBDISABLE is removed from the owner.

on_paralysis_trait_gain

Called when TRAIT_PARALYSIS is added to the limb.

on_paralysis_trait_loss

Called when TRAIT_PARALYSIS is removed from the limb.

recolor_cosmetic_organs

Loops through all of the bodypart's external organs and update's their color.

refresh_bleed_rate

Refresh the cache of our rate of bleeding sans any modifiers ANYTHING ADDED TO THIS PROC NEEDS TO CALL IT WHEN IT'S EFFECT CHANGES

remove_bodypart_trait

Removes a trait applied by this bodypart.

remove_organ

Removes the organ from the limb.

remove_traits_from

Remove all bodypart traits this part grants.

replace_limb

Try to attach this bodypart to a mob, while replacing one if it exists, does nothing if it fails.

reset_appearance

Resets the base appearance of a limb to it's default values.

setBleedStacks

Embedded objects effect bleed rate, gotta refresh lads Sets our generic bleedstacks

set_brute_dam

Proc to hook behavior associated to the change of the brute_dam variable's value.

set_burn_dam

Proc to hook behavior associated to the change of the burn_dam variable's value.

set_can_be_disabled

Proc to change the value of the can_be_disabled variable and react to the event of its change.

set_disabled

Proc to change the value of the disabled variable and react to the event of its change.

set_owner

Proc to change the value of the owner variable and react to the event of its change.

synchronize_bodytypes

Transfer existing hair properties to the new human. Makes sure that the owner's bodytype flags match the flags of all of it's parts.

update_damage

Proc to update the damage values of the bodypart.

update_interaction_speed

Updates the interaction speed modifier of this limb, used by Limping and similar to determine delay.