death_consequences
Vars | |
base_degradation_on_death | When our victim dies, they will degrade by this amount, but only if the last time they died was after [time_required_between_deaths_to_degrade] ago. |
---|---|
base_degradation_per_second_while_dead | While dead, our victim will degrade by this amount every second. Reduced by stasis and formeldahyde. |
base_degradation_reduction_per_second_while_alive | While alive, our victim will lose degradation by this amount per second. |
buckled_to_default_mult | Only used if the thing we are buckled to is not in [buckled_to_recovery_mult_table]. |
buckled_to_recovery_mult_table | A assoc list of (atom/movable typepath -> mult), where mult is used as a multiplier against passive living degradation reduction. |
crit_threshold_currently_reduced_by | Used for updating our crit threshold reduction. We store the previous value, then subtract it from crit threshold, to get the value we had before we adjusted. |
crit_threshold_max_degradation | The degradation we will stop reducing the crit threshold at. |
crit_threshold_min_degradation | The degradation we will begin reducing the crit threshold at. |
current_degradation | The current degradation we are currently at. Generally speaking, things get worse the higher this is. Can never go below 0. |
current_degradation_level | The current level of degradation. Used mostly for reminder messages. |
degradation_messages | The random messages that will be sent to our victim if their degradation moves to a new threshold. Contains nested assoc lists of (DEGRADATION_LEVEL_DEFINE -> list((message -> weight), ...)) where ... is a indefinite number of message -> weight pairs. |
eigenstasium_degradation_decrease | When eigenstasium is metabolized, degradation is reduced by this. |
final_death_delivered | If we have killed our owner permanently. |
force_death_if_permakilled | If true, when [current_degradation] reaches [max_degradation], we will DNR and KILL our victim. |
formaldehyde_death_degradation_mult | If our victim is dead, their passive degradation will be multiplied against this if they have formal in their system. |
last_time_degraded_on_death | The last time we caused immediate degradation on death. |
max_crit_threshold_reduction | The amount our victims crit threshold will be reduced by at [crit_threshold_max_degradation] degradation. |
max_degradation | The absolute maximum degradation we can receive. Will cause permadeath if [permakill_if_at_max_degradation] is TRUE. |
max_stamina_damage | The amount our victims crit threshold will be reduced by at [stamina_damage_max_degradation] degradation. |
permakill_if_at_max_degradation | If true, when [current_degradation] reaches [max_degradation], we will DNR and ghost our victim. |
rezadone_degradation_decrease | If our victim is alive and is metabolizing rezadone, we will reduce degradation by this amount every second. |
stamina_damage_max_degradation | The degradation we will stop increasing the stamina damage at. |
stamina_damage_minimum_degradation | The degradation we will begin applying stamina damage at. |
stasis_passive_degradation_multiplier | If our victim is dead, their passive degradation will be multiplied against this if they are in stasis. |
time_between_reminders | The time between each reminder ([degradation_messages]). |
time_of_last_message_sent | The last world.time we sent a message to our owner reminding them of their current degradation. Used for cooldowns and such. |
time_required_between_deaths_to_degrade | If the last time we degraded on death was less than this time ago, we won't immediately degrade when our victim dies. Used for preventing things like MDs constantly reviving someone and PKing them. |
time_til_scan_expires | Assoc list of (mob -> world.time + time_to_view_extra_data_after_scan). Used for determining if someone can use our health analyzer href |
time_to_view_extra_data_after_scan | The amount of time someone has to view our extra info via health analyzer after scanning us. |
Procs | |
adjust_degradation | Setter proc for [current_degradation] that clamps the incoming value and updates effects if the value changed. |
and_so_your_story_ends | The proc we call when we permanently kill our victim due to being at maximum degradation. DNRs them, ghosts/kills them, and prints a series of highly dramatic messages, befitting for a death such as this. |
damage_stamina | Ensures our victim's stamina is at or above the minimum stamina they're supposed to have. |
get_crit_threshold_adjustment | Calculates the amount that we should add to our victim's critical threshold. |
get_health_analyzer_link_text | Returns a short-ish string containing an href to [get_specific_data]. |
get_passive_degradation_decrease | Returns the amount, every second, degradation should DECREASE by. |
get_passive_degradation_decrease_mult | Returns a multiplier that should be used whenever degradation is passively decreased. Is determined by resting, sleeping, and buckled status. |
get_passive_degradation_increase | Returns the amount, every second, degradation should INCREASE by. |
get_specific_data | Returns a large string intended to show specifics of how this degradation work. |
send_reminder | Sends a flavorful to_chat to the target, picking from degradation_messages[current_degradation_level]. Can fail to send one if no message is found. |
update_degradation_level | Updates [current_degradation_level] by comparing current degradation to max. |
update_effects | Refreshes all our effects and updates their values. Kills the victim if they opted in and their degradation equals their maximum. |
update_variables | Resets all our variables to our victim's preferences, if they have any. Used for the initial setup, then any time our victim manually refreshes variables. |
victim_ahealed | Signal handler proc for healing our victim on an aheal. Permadeath can only be reversed by admin aheals. |
victim_properly_resting | Used in stamina damage. Determines if our victim is resting, sleeping, or is buckled to something cozy. |
Var Details
base_degradation_on_death
When our victim dies, they will degrade by this amount, but only if the last time they died was after [time_required_between_deaths_to_degrade] ago.
base_degradation_per_second_while_dead
While dead, our victim will degrade by this amount every second. Reduced by stasis and formeldahyde.
base_degradation_reduction_per_second_while_alive
While alive, our victim will lose degradation by this amount per second.
buckled_to_default_mult
Only used if the thing we are buckled to is not in [buckled_to_recovery_mult_table].
buckled_to_recovery_mult_table
A assoc list of (atom/movable typepath -> mult), where mult is used as a multiplier against passive living degradation reduction.
crit_threshold_currently_reduced_by
Used for updating our crit threshold reduction. We store the previous value, then subtract it from crit threshold, to get the value we had before we adjusted.
crit_threshold_max_degradation
The degradation we will stop reducing the crit threshold at.
crit_threshold_min_degradation
The degradation we will begin reducing the crit threshold at.
current_degradation
The current degradation we are currently at. Generally speaking, things get worse the higher this is. Can never go below 0.
current_degradation_level
The current level of degradation. Used mostly for reminder messages.
degradation_messages
The random messages that will be sent to our victim if their degradation moves to a new threshold. Contains nested assoc lists of (DEGRADATION_LEVEL_DEFINE -> list((message -> weight), ...)) where ... is a indefinite number of message -> weight pairs.
eigenstasium_degradation_decrease
When eigenstasium is metabolized, degradation is reduced by this.
final_death_delivered
If we have killed our owner permanently.
force_death_if_permakilled
If true, when [current_degradation] reaches [max_degradation], we will DNR and KILL our victim.
formaldehyde_death_degradation_mult
If our victim is dead, their passive degradation will be multiplied against this if they have formal in their system.
last_time_degraded_on_death
The last time we caused immediate degradation on death.
max_crit_threshold_reduction
The amount our victims crit threshold will be reduced by at [crit_threshold_max_degradation] degradation.
max_degradation
The absolute maximum degradation we can receive. Will cause permadeath if [permakill_if_at_max_degradation] is TRUE.
max_stamina_damage
The amount our victims crit threshold will be reduced by at [stamina_damage_max_degradation] degradation.
permakill_if_at_max_degradation
If true, when [current_degradation] reaches [max_degradation], we will DNR and ghost our victim.
rezadone_degradation_decrease
If our victim is alive and is metabolizing rezadone, we will reduce degradation by this amount every second.
stamina_damage_max_degradation
The degradation we will stop increasing the stamina damage at.
stamina_damage_minimum_degradation
The degradation we will begin applying stamina damage at.
stasis_passive_degradation_multiplier
If our victim is dead, their passive degradation will be multiplied against this if they are in stasis.
time_between_reminders
The time between each reminder ([degradation_messages]).
time_of_last_message_sent
The last world.time we sent a message to our owner reminding them of their current degradation. Used for cooldowns and such.
time_required_between_deaths_to_degrade
If the last time we degraded on death was less than this time ago, we won't immediately degrade when our victim dies. Used for preventing things like MDs constantly reviving someone and PKing them.
time_til_scan_expires
Assoc list of (mob -> world.time + time_to_view_extra_data_after_scan). Used for determining if someone can use our health analyzer href
time_to_view_extra_data_after_scan
The amount of time someone has to view our extra info via health analyzer after scanning us.
Proc Details
adjust_degradation
Setter proc for [current_degradation] that clamps the incoming value and updates effects if the value changed.
and_so_your_story_ends
The proc we call when we permanently kill our victim due to being at maximum degradation. DNRs them, ghosts/kills them, and prints a series of highly dramatic messages, befitting for a death such as this.
damage_stamina
Ensures our victim's stamina is at or above the minimum stamina they're supposed to have.
get_crit_threshold_adjustment
Calculates the amount that we should add to our victim's critical threshold.
get_health_analyzer_link_text
Returns a short-ish string containing an href to [get_specific_data].
get_passive_degradation_decrease
Returns the amount, every second, degradation should DECREASE by.
get_passive_degradation_decrease_mult
Returns a multiplier that should be used whenever degradation is passively decreased. Is determined by resting, sleeping, and buckled status.
get_passive_degradation_increase
Returns the amount, every second, degradation should INCREASE by.
get_specific_data
Returns a large string intended to show specifics of how this degradation work.
send_reminder
Sends a flavorful to_chat to the target, picking from degradation_messages[current_degradation_level]. Can fail to send one if no message is found.
Args:
- update_cooldown = TRUE: If true, updates [time_of_last_message_sent] to be world.time.
update_degradation_level
Updates [current_degradation_level] by comparing current degradation to max.
Args:
- send_reminder_if_changed = TRUE: If TRUE, will call [send_reminder()] if [current_degradation_level] is changed.
update_effects
Refreshes all our effects and updates their values. Kills the victim if they opted in and their degradation equals their maximum.
update_variables
Resets all our variables to our victim's preferences, if they have any. Used for the initial setup, then any time our victim manually refreshes variables.
victim_ahealed
Signal handler proc for healing our victim on an aheal. Permadeath can only be reversed by admin aheals.
victim_properly_resting
Used in stamina damage. Determines if our victim is resting, sleeping, or is buckled to something cozy.