byond - Modules - TypesVar Details - Proc Details

/datum/status_effect

Status effects are used to apply temporary or permanent effects to mobs. This file contains their code, plus code for applying and removing them.

Vars

alert_typeThe typepath to the alert thrown by the status effect when created. Status effect "name"s and "description"s are shown to the owner here.
durationWhen set initially / in on_creation, this is how long the status effect lasts in deciseconds. While processing, this becomes the world.time when the status effect will expire. -1 = infinite duration.
duration_setTruthy once duration is initialized
idThe ID of the effect. ID is used in adding and removing effects to check for duplicates, among other things.
linked_alertThe alert itself, created in [proc/on_creation] (if alert_type is specified).
on_remove_on_mob_deleteIf TRUE, we call [proc/on_remove] when owner is deleted. Otherwise, we call [proc/be_replaced].
ownerThe mob affected by the status effect.
processing_speedUsed to define if the status effect should be using SSfasteffects or SSeffects
remove_on_fullhealDo we self-terminate when a fullheal is called? // CM note: this is rejuvenate
status_typeHow many of the effect can be on one mob, and/or what happens when you try to add a duplicate.
tick_intervalWhen set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds. Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed]) While processing, this becomes the world.time when the next tick will occur. -1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale.
timeridTimer ID for triggering the effect end precisely

Procs

adjust_durationUpdates the duration of the status effect to the given [amount] of deciseconds from its current set ending
be_replacedCalled instead of on_remove when a status effect of status_type STATUS_EFFECT_REPLACE is replaced by itself, or when a status effect with on_remove_on_mob_delete set to FALSE has its mob deleted
before_removeCalled before being fully removed (before on_remove) Returning FALSE will cancel removal
get_duration_leftGet duration left on the effect
get_examine_textGets and formats examine text associated with our status effect. Return 'null' to have no examine text appear (default behavior).
nextmove_adjustAdds nextmove adjustment additiviely to the owner while applied
nextmove_modifierAdds nextmove modifier multiplicatively to the owner while applied
on_applyCalled when the effect is applied in on_created Returning FALSE will cause it to delete itself during creation instead.
on_creationCalled from New() with any supplied status effect arguments. Not guaranteed to exist by the end. Returning FALSE from on_apply will stop on_creation and self-delete the effect.
on_removeCalled whenever the buff expires or is removed (qdeleted) Note that at the point this is called, it is out of the owner's status_effects list, but owner is not yet null
refreshCalled when a status effect of status_type STATUS_EFFECT_REFRESH has its duration refreshed in apply_status_effect - is passed New() args
remove_durationRemove [amount] of duration (in deciseconds) from the status effect. Compatibility handler with /tg/.
remove_effect_on_healSignal proc for COMSIG_LIVING_REJUVENATED to remove us on fullheal
tickCalled every tick from process(). This is only called of tick_interval is not -1.
timer_callbackTimer invocation callback to end the effect
update_durationUpdates the duration of the status effect to the given [amount] of deciseconds from now, qdeling / ending if we eclipse the current world time. If increment is truthy, we only update if the resulting amount is higher.
update_particlesUpdates the particles for the status effects Should be handled by subtypes!
update_timerUpdates the timer used for precisely ending the effect We force_refresh if the duration changed otherwise than ticking down

Var Details

alert_type

The typepath to the alert thrown by the status effect when created. Status effect "name"s and "description"s are shown to the owner here.

duration

When set initially / in on_creation, this is how long the status effect lasts in deciseconds. While processing, this becomes the world.time when the status effect will expire. -1 = infinite duration.

duration_set

Truthy once duration is initialized

id

The ID of the effect. ID is used in adding and removing effects to check for duplicates, among other things.

linked_alert

The alert itself, created in [proc/on_creation] (if alert_type is specified).

on_remove_on_mob_delete

If TRUE, we call [proc/on_remove] when owner is deleted. Otherwise, we call [proc/be_replaced].

owner

The mob affected by the status effect.

processing_speed

Used to define if the status effect should be using SSfasteffects or SSeffects

remove_on_fullheal

Do we self-terminate when a fullheal is called? // CM note: this is rejuvenate

status_type

How many of the effect can be on one mob, and/or what happens when you try to add a duplicate.

tick_interval

When set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds. Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed]) While processing, this becomes the world.time when the next tick will occur. -1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale.

timerid

Timer ID for triggering the effect end precisely

Proc Details

adjust_duration

Updates the duration of the status effect to the given [amount] of deciseconds from its current set ending

be_replaced

Called instead of on_remove when a status effect of status_type STATUS_EFFECT_REPLACE is replaced by itself, or when a status effect with on_remove_on_mob_delete set to FALSE has its mob deleted

before_remove

Called before being fully removed (before on_remove) Returning FALSE will cancel removal

get_duration_left

Get duration left on the effect

get_examine_text

Gets and formats examine text associated with our status effect. Return 'null' to have no examine text appear (default behavior).

nextmove_adjust

Adds nextmove adjustment additiviely to the owner while applied

nextmove_modifier

Adds nextmove modifier multiplicatively to the owner while applied

on_apply

Called when the effect is applied in on_created Returning FALSE will cause it to delete itself during creation instead.

on_creation

Called from New() with any supplied status effect arguments. Not guaranteed to exist by the end. Returning FALSE from on_apply will stop on_creation and self-delete the effect.

on_remove

Called whenever the buff expires or is removed (qdeleted) Note that at the point this is called, it is out of the owner's status_effects list, but owner is not yet null

refresh

Called when a status effect of status_type STATUS_EFFECT_REFRESH has its duration refreshed in apply_status_effect - is passed New() args

remove_duration

Remove [amount] of duration (in deciseconds) from the status effect. Compatibility handler with /tg/.

remove_effect_on_heal

Signal proc for COMSIG_LIVING_REJUVENATED to remove us on fullheal

tick

Called every tick from process(). This is only called of tick_interval is not -1.

Note that every tick =/= every processing cycle.

timer_callback

Timer invocation callback to end the effect

update_duration

Updates the duration of the status effect to the given [amount] of deciseconds from now, qdeling / ending if we eclipse the current world time. If increment is truthy, we only update if the resulting amount is higher.

update_particles

Updates the particles for the status effects Should be handled by subtypes!

update_timer

Updates the timer used for precisely ending the effect We force_refresh if the duration changed otherwise than ticking down