Wound
Vars | |
a_or_from | needed for "your arm has a compound fracture" vs "your arm has some third degree burns" |
---|---|
already_scarred | If we've already tried scarring while removing (since remove_wound calls qdel, and qdel calls remove wound, .....) TODO: make this cleaner |
attached_surgery | If we're operating on this wound and it gets healed, we'll nix the surgery too |
base_treat_time | How long it will take to treat this wound with a standard effective tool, assuming it doesn't need surgery |
blood_flow | How much we're contributing to this limb's bleed_rate |
cryo_progress | if you're a lazy git and just throw them in cryo, the wound will go away after accumulating severity * 25 power |
damage_mulitplier_penalty | Incoming damage on this limb will be multiplied by this, to simulate tenderness and vulnerability (mostly burns). |
desc | The description shown on the scanners |
disabling | If having this wound makes currently makes the parent bodypart unusable |
examine_desc | What the limb looks like on a cursory examine |
from_smite | If we forced this wound through badmin smite, we won't count it towards the round totals |
interaction_efficiency_penalty | Using this limb in a do_after interaction will multiply the length by this duration (arms) |
limb | The bodypart we're parented to |
limp_slowdown | If set and this wound is applied to a leg, we take this many deciseconds extra per step on this leg |
linked_status_effect | The status effect we're linked to |
name | What it's named |
occur_text | The visible message when this happens |
processes | If we need to process each life tick |
scar_keyword | What kind of scars this wound will create description wise once healed |
severity | Either WOUND_SEVERITY_TRIVIAL (meme wounds like stubbed toe), WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, or WOUND_SEVERITY_CRITICAL (or maybe WOUND_SEVERITY_LOSS) |
sound_effect | This sound will be played upon the wound being applied |
status_effect_type | What status effect we assign on application |
threshold_minimum | The minimum we need to roll on /obj/item/bodypart/proc/check_wounding to begin suffering this wound, see check_wounding_mods() for more |
threshold_penalty | How much having this wound will add to all future check_wounding() rolls on this limb, to allow progression to worse injuries with repeated damage |
treat_text | The basic treatment suggested by health analyzers |
treatable_by | Specific items such as bandages or sutures that can try directly treating this wound |
treatable_by_grabbed | Specific items such as bandages or sutures that can try directly treating this wound only if the user has the victim in an aggressive grab or higher |
treatable_tool | Tools with the specified tool flag will also be able to try directly treating this wound |
viable_zones | What body zones can we affect |
victim | Who owns the body part that we're wounding |
wound_flags | What flags apply to this wound |
wound_type | The list of wounds it belongs in, WOUND_LIST_BLUNT, WOUND_LIST_SLASH, or WOUND_LIST_BURN |
Procs | |
apply_wound | apply_wound() is used once a wound type is instantiated to assign it to a bodypart, and actually come into play. |
check_grab_treatments | Return TRUE if we have an item that can only be used while aggro grabbed (unhanded aggro grab treatments go in /datum/wound/proc/try_handling). Treatment is still is handled in /datum/wound/proc/treat |
crush | Called when we're crushed in an airlock or firedoor, for one of the improvised joint dislocation fixes |
drag_bleed_amount | Used when we're being dragged while bleeding, the value we return is how much bloodloss this wound causes from being dragged. Since it's a proc, you can let bandages soak some of the blood |
get_bleed_rate_of_change | get_bleed_rate_of_change() is used in /mob/living/carbon/proc/bleed_warn to gauge whether this wound (if bleeding) is becoming worse, better, or staying the same over time |
get_examine_description | get_examine_description() is used in carbon/examine and human/examine to show the status of this wound. Useful if you need to show some status like the wound being splinted or bandaged. |
handle_process | If var/processing is TRUE, this is run on each life tick |
on_healium | Same as above but called from healium, only work when the person is unconscious and cold |
on_stasis | Called when the patient is undergoing stasis, so that having fully treated a wound doesn't make you sit there helplessly until you think to unbuckle them |
on_synthflesh | When synthflesh is applied to the victim, we call this. No sense in setting up an entire chem reaction system for wounds when we only care for a few chems. Probably will change in the future |
on_xadone | Called from cryoxadone and pyroxadone when they're proc'ing. Wounds will slowly be fixed separately from other methods when these are in effect. crappy name but eh |
receive_damage | When our parent bodypart is hurt |
remove_wound | Remove the wound from whatever it's afflicting, and cleans up whateverstatus effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim |
replace_wound | replace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts) |
second_wind | Additional beneficial effects when the wound is gained, in case you want to give a temporary boost to allow the victim to try an escape or last stand |
set_disabling | Proc called to change the variable disabling and react to the event. |
set_limb | Proc called to change the variable limb and react to the event. |
still_exists | For use in do_after callback checks |
treat | Someone is using something that might be used for treating the wound on this limb |
try_handling | Like try_treating() but for unhanded interactions from humans, used by joint dislocations for manual bodypart chiropractice for example. Ignores thick material checks since you can pop an arm into place through a thick suit unlike using sutures |
try_treating | try_treating() is an intercept run from [/mob/living/carbon/proc/attackby] right after surgeries but before anything else. Return TRUE here if the item is something that is relevant to treatment to take over the interaction. |
wound_injury | The immediate negative effects faced as a result of the wound |
Var Details
a_or_from
needed for "your arm has a compound fracture" vs "your arm has some third degree burns"
already_scarred
If we've already tried scarring while removing (since remove_wound calls qdel, and qdel calls remove wound, .....) TODO: make this cleaner
attached_surgery
If we're operating on this wound and it gets healed, we'll nix the surgery too
base_treat_time
How long it will take to treat this wound with a standard effective tool, assuming it doesn't need surgery
blood_flow
How much we're contributing to this limb's bleed_rate
cryo_progress
if you're a lazy git and just throw them in cryo, the wound will go away after accumulating severity * 25 power
damage_mulitplier_penalty
Incoming damage on this limb will be multiplied by this, to simulate tenderness and vulnerability (mostly burns).
desc
The description shown on the scanners
disabling
If having this wound makes currently makes the parent bodypart unusable
examine_desc
What the limb looks like on a cursory examine
from_smite
If we forced this wound through badmin smite, we won't count it towards the round totals
interaction_efficiency_penalty
Using this limb in a do_after interaction will multiply the length by this duration (arms)
limb
The bodypart we're parented to
limp_slowdown
If set and this wound is applied to a leg, we take this many deciseconds extra per step on this leg
linked_status_effect
The status effect we're linked to
name
What it's named
occur_text
The visible message when this happens
processes
If we need to process each life tick
scar_keyword
What kind of scars this wound will create description wise once healed
severity
Either WOUND_SEVERITY_TRIVIAL (meme wounds like stubbed toe), WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, or WOUND_SEVERITY_CRITICAL (or maybe WOUND_SEVERITY_LOSS)
sound_effect
This sound will be played upon the wound being applied
status_effect_type
What status effect we assign on application
threshold_minimum
The minimum we need to roll on /obj/item/bodypart/proc/check_wounding to begin suffering this wound, see check_wounding_mods() for more
threshold_penalty
How much having this wound will add to all future check_wounding() rolls on this limb, to allow progression to worse injuries with repeated damage
treat_text
The basic treatment suggested by health analyzers
treatable_by
Specific items such as bandages or sutures that can try directly treating this wound
treatable_by_grabbed
Specific items such as bandages or sutures that can try directly treating this wound only if the user has the victim in an aggressive grab or higher
treatable_tool
Tools with the specified tool flag will also be able to try directly treating this wound
viable_zones
What body zones can we affect
victim
Who owns the body part that we're wounding
wound_flags
What flags apply to this wound
wound_type
The list of wounds it belongs in, WOUND_LIST_BLUNT, WOUND_LIST_SLASH, or WOUND_LIST_BURN
Proc Details
apply_wound
apply_wound() is used once a wound type is instantiated to assign it to a bodypart, and actually come into play.
Arguments:
- L: The bodypart we're wounding, we don't care about the person, we can get them through the limb
- silent: Not actually necessary I don't think, was originally used for demoting wounds so they wouldn't make new messages, but I believe old_wound took over that, I may remove this shortly
- old_wound: If our new wound is a replacement for one of the same time (promotion or demotion), we can reference the old one just before it's removed to copy over necessary vars
- smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented)
- attack_direction: For bloodsplatters, if relevant
check_grab_treatments
Return TRUE if we have an item that can only be used while aggro grabbed (unhanded aggro grab treatments go in /datum/wound/proc/try_handling). Treatment is still is handled in /datum/wound/proc/treat
crush
Called when we're crushed in an airlock or firedoor, for one of the improvised joint dislocation fixes
drag_bleed_amount
Used when we're being dragged while bleeding, the value we return is how much bloodloss this wound causes from being dragged. Since it's a proc, you can let bandages soak some of the blood
get_bleed_rate_of_change
get_bleed_rate_of_change() is used in /mob/living/carbon/proc/bleed_warn to gauge whether this wound (if bleeding) is becoming worse, better, or staying the same over time
Returns BLOOD_FLOW_STEADY if we're not bleeding or there's no change (like piercing), BLOOD_FLOW_DECREASING if we're clotting (non-critical slashes, gauzed, coagulant, etc), BLOOD_FLOW_INCREASING if we're opening up (crit slashes/heparin)
get_examine_description
get_examine_description() is used in carbon/examine and human/examine to show the status of this wound. Useful if you need to show some status like the wound being splinted or bandaged.
Return the full string line you want to show, note that we're already dealing with the 'warning' span at this point, and that \n is already appended for you in the place this is called from
Arguments:
- mob/user: The user examining the wound's owner, if that matters
handle_process
If var/processing is TRUE, this is run on each life tick
on_healium
Same as above but called from healium, only work when the person is unconscious and cold
on_stasis
Called when the patient is undergoing stasis, so that having fully treated a wound doesn't make you sit there helplessly until you think to unbuckle them
on_synthflesh
When synthflesh is applied to the victim, we call this. No sense in setting up an entire chem reaction system for wounds when we only care for a few chems. Probably will change in the future
on_xadone
Called from cryoxadone and pyroxadone when they're proc'ing. Wounds will slowly be fixed separately from other methods when these are in effect. crappy name but eh
receive_damage
When our parent bodypart is hurt
remove_wound
Remove the wound from whatever it's afflicting, and cleans up whateverstatus effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim
replace_wound
replace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts)
This proc actually instantiates the new wound based off the specific type path passed, then returns the new instantiated wound datum.
Arguments:
- new_type- The TYPE PATH of the wound you want to replace this, like /datum/wound/slash/severe
- smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented)
second_wind
Additional beneficial effects when the wound is gained, in case you want to give a temporary boost to allow the victim to try an escape or last stand
set_disabling
Proc called to change the variable disabling
and react to the event.
set_limb
Proc called to change the variable limb
and react to the event.
still_exists
For use in do_after callback checks
treat
Someone is using something that might be used for treating the wound on this limb
try_handling
Like try_treating() but for unhanded interactions from humans, used by joint dislocations for manual bodypart chiropractice for example. Ignores thick material checks since you can pop an arm into place through a thick suit unlike using sutures
try_treating
try_treating() is an intercept run from [/mob/living/carbon/proc/attackby] right after surgeries but before anything else. Return TRUE here if the item is something that is relevant to treatment to take over the interaction.
This proc leads into /datum/wound/proc/treat and probably shouldn't be added onto in children types. You can specify what items or tools you want to be intercepted with var/list/treatable_by and var/treatable_tool, then if an item fulfills one of those requirements and our wound claims it first, it goes over to treat() and treat_self().
Arguments:
- I: The item we're trying to use
- user: The mob trying to use it on us
wound_injury
The immediate negative effects faced as a result of the wound