reagent

A single reagent
Vars | |
addiction_types | Assoc list with key type of addiction this reagent feeds, and value amount of addiction points added per unit of reagent metabolzied (which means * REAGENTS_METABOLISM every life()) |
---|---|
affected_biotype | The affected biotype, if the reagent damages/heals generic damage (Toxin/Oxygen) of an affected mob. See "Mob bio-types flags" in /code/_DEFINES/mobs.dm |
affected_bodytype | The affected bodytype, if the reagent damages/heals bodyparts (Brute/Fire) of an affected mob. See "Bodytype defines" in /code/_DEFINES/mobs.dm |
affected_organtype | The affected organtype, if the reagent damages/heals organ damage of an affected mob. See "Organ defines for carbon mobs" in /code/_DEFINES/mobs.dm |
burning_temperature | what chem is made at the end of a reaction IF the purity is below the recipies purity_min at the END of a reaction only Thermodynamic vars How hot this reagent burns when it's on fire - null means it can't burn |
burning_volume | How much is consumed when it is burnt per second |
chemical_flags | See fermi_readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_INVISIBLE, REAGENT_SNEAKYNAME, REAGENT_SPLITRETAINVOL, REAGENT_CANSYNTH, REAGENT_IMPURE |
color | color it looks in containers etc |
creation_purity | the purity of the reagent on creation (i.e. when it's added to a mob and it's purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that) |
current_cycle | increments everytime on_mob_life is called |
data | Special data associated with the reagent that will be passed on upon transfer to a new holder. |
default_container | The default reagent container for the reagent |
description | nor do they have descriptions |
fallback_icon | Icon for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum. |
fallback_icon_state | Icon state for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum. |
glass_price | The amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!) |
harmful | is it bad for you? Currently only used for borghypo. C2s and Toxins have it TRUE by default. |
holder | reagent holder this belongs to |
inverse_chem | What chem is metabolised when purity is below inverse_chem_val |
inverse_chem_val | If the impurity is below 0.5, replace ALL of the chem with inverse_chem upon metabolising |
mass | The molar mass of the reagent - if you're adding a reagent that doesn't have a recipe, just add a random number between 10 - 800. Higher numbers are "harder" but it's mostly arbitary. |
material | Are we from a material? We might wanna know that for special stuff. Like metalgen. Is replaced with a ref of the material on New() |
metabolization_rate | how fast the reagent is metabolized by the mob |
metabolizing | is it currently metabolizing |
name | datums don't have names by default |
overdose_threshold | above this overdoses happen |
overdosed | You fucked up and this is now triggering its overdose effects, purge that shit quick. |
overrides_metab | appears unused |
penetrates_skin | The set of exposure methods this penetrates skin with. |
ph | pH of the reagent |
purity | Purity of the reagent - for use with internal reaction mechanics only. Use below (creation_purity) if you're writing purity effects into a reagent's use mechanics. |
reagent_removal_skip_list | A list of causes why this chem should skip being removed, if the length is 0 it will be removed from holder naturally, if this is >0 it will not be removed from the holder. |
reagent_state | LIQUID, SOLID, GAS |
reagent_weight | affects how far it travels when sprayed |
self_consuming | if false stops metab in liverless mobs |
specific_heat | J/(K*mol) |
taste_description | used by taste messages |
taste_mult | how this taste compares to others. Higher values means it is more noticable |
volume | pretend this is moles |
Procs | |
burn | Called whenever a reagent is on fire, or is in a holder that is on fire. (WIP) |
check_tray | Proc is used by /datum/reagent/proc/on_hydroponics_apply to see if the tray and the reagents inside is in a valid state to apply reagent effects |
expose_atom | Applies this reagent to an /atom |
expose_mob | Applies this reagent to a /mob/living |
expose_obj | Applies this reagent to an /obj |
expose_turf | Applies this reagent to a /turf |
get_inverse_purity | Gets the inverse purity of this reagent. Mostly used when converting from a normal reagent to it's inverse one. |
get_taste_description | Should return a associative list where keys are taste descriptions and values are strength ratios |
normalise_creation_purity | Used when you want the default reagents purity to be equal to the normal effects (i.e. if default purity is 0.75, and your reacted purity is 1, then it will return 1.33) |
on_hydroponics_apply | New, standardized method for chemicals to affect hydroponics trays. Defined on a per-chem level as opposed to by the tray. Can affect plant's health, stats, or cause the plant to react in certain ways. |
on_merge | Called when two reagents of the same are mixing. |
on_mob_add | Called when this reagent is first added to a mob |
on_mob_dead | Called when a reagent is inside of a mob when they are dead |
on_mob_delete | Called when this reagent is removed while inside a mob |
on_mob_end_metabolize | Called when this reagent stops being metabolized by a liver |
on_mob_life | Called from /datum/reagents/proc/metabolize |
on_mob_metabolize | Called when this reagent first starts being metabolized by a liver |
on_move | Called by /datum/reagents/proc/conditional_update_move |
on_new | Called after add_reagents creates a new reagent. |
on_transfer | Called after a reagent is transfered |
on_update | Called by /datum/reagents/proc/conditional_update |
overdose_process | Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects |
overdose_start | Called when an overdose starts |
Var Details
addiction_types

Assoc list with key type of addiction this reagent feeds, and value amount of addiction points added per unit of reagent metabolzied (which means * REAGENTS_METABOLISM every life())
affected_biotype

The affected biotype, if the reagent damages/heals generic damage (Toxin/Oxygen) of an affected mob. See "Mob bio-types flags" in /code/_DEFINES/mobs.dm
affected_bodytype

The affected bodytype, if the reagent damages/heals bodyparts (Brute/Fire) of an affected mob. See "Bodytype defines" in /code/_DEFINES/mobs.dm
affected_organtype

The affected organtype, if the reagent damages/heals organ damage of an affected mob. See "Organ defines for carbon mobs" in /code/_DEFINES/mobs.dm
burning_temperature

what chem is made at the end of a reaction IF the purity is below the recipies purity_min at the END of a reaction only Thermodynamic vars How hot this reagent burns when it's on fire - null means it can't burn
burning_volume

How much is consumed when it is burnt per second
chemical_flags

See fermi_readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_INVISIBLE, REAGENT_SNEAKYNAME, REAGENT_SPLITRETAINVOL, REAGENT_CANSYNTH, REAGENT_IMPURE
color

color it looks in containers etc
creation_purity

the purity of the reagent on creation (i.e. when it's added to a mob and it's purity split it into 2 chems; the purity of the resultant chems are kept as 1, this tracks what the purity was before that)
current_cycle

increments everytime on_mob_life is called
data

Special data associated with the reagent that will be passed on upon transfer to a new holder.
default_container

The default reagent container for the reagent
description

nor do they have descriptions
fallback_icon

Icon for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum.
fallback_icon_state

Icon state for fallback item displayed in a tourist's thought bubble for if this reagent had no associated glass_style datum.
glass_price

The amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!)
harmful

is it bad for you? Currently only used for borghypo. C2s and Toxins have it TRUE by default.
holder

reagent holder this belongs to
inverse_chem

What chem is metabolised when purity is below inverse_chem_val
inverse_chem_val

If the impurity is below 0.5, replace ALL of the chem with inverse_chem upon metabolising
mass

The molar mass of the reagent - if you're adding a reagent that doesn't have a recipe, just add a random number between 10 - 800. Higher numbers are "harder" but it's mostly arbitary.
material

Are we from a material? We might wanna know that for special stuff. Like metalgen. Is replaced with a ref of the material on New()
metabolization_rate

how fast the reagent is metabolized by the mob
metabolizing

is it currently metabolizing
name

datums don't have names by default
overdose_threshold

above this overdoses happen
overdosed

You fucked up and this is now triggering its overdose effects, purge that shit quick.
overrides_metab

appears unused
penetrates_skin

The set of exposure methods this penetrates skin with.
ph

pH of the reagent
purity

Purity of the reagent - for use with internal reaction mechanics only. Use below (creation_purity) if you're writing purity effects into a reagent's use mechanics.
reagent_removal_skip_list

A list of causes why this chem should skip being removed, if the length is 0 it will be removed from holder naturally, if this is >0 it will not be removed from the holder.
reagent_state

LIQUID, SOLID, GAS
reagent_weight

affects how far it travels when sprayed
self_consuming

if false stops metab in liverless mobs
specific_heat

J/(K*mol)
taste_description

used by taste messages
taste_mult

how this taste compares to others. Higher values means it is more noticable
volume

pretend this is moles
Proc Details
burn
Called whenever a reagent is on fire, or is in a holder that is on fire. (WIP)
check_tray
Proc is used by /datum/reagent/proc/on_hydroponics_apply to see if the tray and the reagents inside is in a valid state to apply reagent effects
expose_atom
Applies this reagent to an /atom
expose_mob
Applies this reagent to a /mob/living
expose_obj
Applies this reagent to an /obj
expose_turf
Applies this reagent to a /turf
get_inverse_purity
Gets the inverse purity of this reagent. Mostly used when converting from a normal reagent to it's inverse one.
Arguments
- purity - Overrides the purity used for determining the inverse purity.
get_taste_description
Should return a associative list where keys are taste descriptions and values are strength ratios
normalise_creation_purity
Used when you want the default reagents purity to be equal to the normal effects (i.e. if default purity is 0.75, and your reacted purity is 1, then it will return 1.33)
Arguments
- normalise_num_to - what number/purity value you're normalising to. If blank it will default to the compile value of purity for this chem
- creation_purity - creation_purity override, if desired. This is the purity of the reagent that you're normalising from.
on_hydroponics_apply
New, standardized method for chemicals to affect hydroponics trays. Defined on a per-chem level as opposed to by the tray. Can affect plant's health, stats, or cause the plant to react in certain ways.
on_merge
Called when two reagents of the same are mixing.
on_mob_add
Called when this reagent is first added to a mob
on_mob_dead
Called when a reagent is inside of a mob when they are dead
on_mob_delete
Called when this reagent is removed while inside a mob
on_mob_end_metabolize
Called when this reagent stops being metabolized by a liver
on_mob_life
Called from /datum/reagents/proc/metabolize
on_mob_metabolize
Called when this reagent first starts being metabolized by a liver
on_move
Called by /datum/reagents/proc/conditional_update_move
on_new
Called after add_reagents creates a new reagent.
on_transfer
Called after a reagent is transfered
on_update
Called by /datum/reagents/proc/conditional_update
overdose_process
Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
overdose_start
Called when an overdose starts