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

death_consequences

Vars

base_degradation_on_deathWhen 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_deadWhile dead, our victim will degrade by this amount every second. Reduced by stasis and formeldahyde.
base_degradation_reduction_per_second_while_aliveWhile alive, our victim will lose degradation by this amount per second.
buckled_to_default_multOnly used if the thing we are buckled to is not in [buckled_to_recovery_mult_table].
buckled_to_recovery_mult_tableA assoc list of (atom/movable typepath -> mult), where mult is used as a multiplier against passive living degradation reduction.
crit_threshold_currently_reduced_byUsed 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_degradationThe degradation we will stop reducing the crit threshold at.
crit_threshold_min_degradationThe degradation we will begin reducing the crit threshold at.
current_degradationThe current degradation we are currently at. Generally speaking, things get worse the higher this is. Can never go below 0.
current_degradation_levelThe current level of degradation. Used mostly for reminder messages.
degradation_messagesThe 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_decreaseWhen eigenstasium is metabolized, degradation is reduced by this.
final_death_deliveredIf we have killed our owner permanently.
force_death_if_permakilledIf true, when [current_degradation] reaches [max_degradation], we will DNR and KILL our victim.
formaldehyde_death_degradation_multIf our victim is dead, their passive degradation will be multiplied against this if they have formal in their system.
last_time_degraded_on_deathThe last time we caused immediate degradation on death.
max_crit_threshold_reductionThe amount our victims crit threshold will be reduced by at [crit_threshold_max_degradation] degradation.
max_degradationThe absolute maximum degradation we can receive. Will cause permadeath if [permakill_if_at_max_degradation] is TRUE.
max_stamina_damageThe amount our victims crit threshold will be reduced by at [stamina_damage_max_degradation] degradation.
permakill_if_at_max_degradationIf true, when [current_degradation] reaches [max_degradation], we will DNR and ghost our victim.
rezadone_degradation_decreaseIf our victim is alive and is metabolizing rezadone, we will reduce degradation by this amount every second.
stamina_damage_max_degradationThe degradation we will stop increasing the stamina damage at.
stamina_damage_minimum_degradationThe degradation we will begin applying stamina damage at.
stasis_passive_degradation_multiplierIf our victim is dead, their passive degradation will be multiplied against this if they are in stasis.
time_between_remindersThe time between each reminder ([degradation_messages]).
time_of_last_message_sentThe 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_degradeIf 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_expiresAssoc 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_scanThe amount of time someone has to view our extra info via health analyzer after scanning us.

Procs

adjust_degradationSetter proc for [current_degradation] that clamps the incoming value and updates effects if the value changed.
and_so_your_story_endsThe 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_staminaEnsures our victim's stamina is at or above the minimum stamina they're supposed to have.
get_crit_threshold_adjustmentCalculates the amount that we should add to our victim's critical threshold.
get_health_analyzer_link_textReturns a short-ish string containing an href to [get_specific_data].
get_passive_degradation_decreaseReturns the amount, every second, degradation should DECREASE by.
get_passive_degradation_decrease_multReturns a multiplier that should be used whenever degradation is passively decreased. Is determined by resting, sleeping, and buckled status.
get_passive_degradation_increaseReturns the amount, every second, degradation should INCREASE by.
get_specific_dataReturns a large string intended to show specifics of how this degradation work.
send_reminderSends 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_levelUpdates [current_degradation_level] by comparing current degradation to max.
update_effectsRefreshes all our effects and updates their values. Kills the victim if they opted in and their degradation equals their maximum.
update_variablesResets 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_ahealedSignal handler proc for healing our victim on an aheal. Permadeath can only be reversed by admin aheals.
victim_properly_restingUsed 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.

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_degradation_level

Updates [current_degradation_level] by comparing current degradation to max.

Args:

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.