bodypart
Vars | |
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 |
Procs | |
_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. |
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. |
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:
- Gender, if applicable
- The ID of the limb
- Draw color, if applicable These procs only store limbs as to increase the number of matching icon_render_keys This cache exists because drawing 6/7 icons for humans constantly is quite a waste See RemieRichards on irc.rizon.net #coderbus (RIP remie :sob:)
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:
- limb_overlay - The limb image being masked, not necessarily the original limb image as it could be an overlay on top of it
- image_dir - Direction of the masked images.
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.