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

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.
heal_flag_necessaryIf remove_on_fullheal is TRUE, what flag do we need to be removed?
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.
particle_effectA particle effect, for things like embers - Should be set on update_particles()
processing_speedUsed to define if the status effect should be using SSfastprocess or SSprocessing
remove_on_fullhealDo we self-terminate when a fullheal is called?
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.

Procs

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_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 whenever 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 [seconds] of duration from the status effect, qdeling / ending if we eclipse the current world time.
remove_effect_on_healSignal proc for COMSIG_LIVING_POST_FULLY_HEAL to remove us on fullheal
tickCalled every tick from process(). This is only called of tick_interval is not -1.
update_particlesUpdates the particles for the status effects Should be handled by subtypes!

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.

heal_flag_necessary

If remove_on_fullheal is TRUE, what flag do we need to be removed?

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.

particle_effect

A particle effect, for things like embers - Should be set on update_particles()

processing_speed

Used to define if the status effect should be using SSfastprocess or SSprocessing

remove_on_fullheal

Do we self-terminate when a fullheal is called?

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.

Proc Details

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_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 whenever 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 [seconds] of duration from the status effect, qdeling / ending if we eclipse the current world time.

remove_effect_on_heal

Signal proc for COMSIG_LIVING_POST_FULLY_HEAL 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.

update_particles

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