reagent
A single reagent
Vars | |
added_traits | A list of traits to apply while the reagent is in a mob. |
---|---|
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 toxin damage 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_organ_flags | The affected organ_flags, if the reagent damages/heals organ damage of an affected mob. See "Organ defines for carbon mobs" in /code/_DEFINES/surgery.dm |
affected_respiration_type | The affected respiration type, if the reagent damages/heals oxygen damage of an affected mob. See "Mob bio-types flags" 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 its 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, used for icon generation |
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!) |
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 |
metabolized_traits | A list of traits to apply while the reagent is being metabolized. |
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. |
penetrates_skin | The set of exposure methods this penetrates skin with. |
ph | pH of the reagent |
purge_multiplier | Multiplier of the amount purged by reagents such as calomel, multiver, syniver etc. |
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 |
restaurant_order | When ordered in a restaurant, what custom order do we create? |
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 | |
Destroy | This should only be called by the holder, so it's already handled clearing its references |
burn | Called whenever a reagent is on fire, or is in a holder that is on fire. (WIP) |
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 its inverse one. |
get_taste_description | Should return a associative list where keys are taste descriptions and values are strength ratios |
metabolize_reagent | Metabolizes a portion of the reagent after on_mob_life() is called |
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_burn_wound_processing | Called in burns.dm if the reagent has the REAGENT_AFFECTS_WOUNDS process flag |
on_hydroponics_apply | Called when this chemical is processed in a hydroponics tray. |
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 if the reagent has the REAGENT_DEAD_PROCESS flag Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize. |
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 | Ticks on mob Life() for as long as the reagent remains in the mob's reagents. |
on_mob_metabolize | Called when this reagent first starts being metabolized by a liver |
on_new | Called after add_reagents creates a new reagent. |
on_transfer | Called after a reagent is transferred |
overdose_process | Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects. Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize. |
overdose_start | Called when an overdose starts. Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize. |
used_on_fish | Called when feeding a fish. If TRUE is returned, a portion of reagent will be consumed. |
Var Details
added_traits
A list of traits to apply while the reagent is in a mob.
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 toxin damage 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_organ_flags
The affected organ_flags, if the reagent damages/heals organ damage of an affected mob. See "Organ defines for carbon mobs" in /code/_DEFINES/surgery.dm
affected_respiration_type
The affected respiration type, if the reagent damages/heals oxygen damage of an affected mob. See "Mob bio-types flags" 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 its 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, used for icon generation
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!)
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
metabolized_traits
A list of traits to apply while the reagent is being metabolized.
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.
penetrates_skin
The set of exposure methods this penetrates skin with.
ph
pH of the reagent
purge_multiplier
Multiplier of the amount purged by reagents such as calomel, multiver, syniver etc.
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
restaurant_order
When ordered in a restaurant, what custom order do we create?
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
Destroy
This should only be called by the holder, so it's already handled clearing its references
burn
Called whenever a reagent is on fire, or is in a holder that is on fire. (WIP)
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 its 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
metabolize_reagent
Metabolizes a portion of the reagent after on_mob_life() is called
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_burn_wound_processing
Called in burns.dm if the reagent has the REAGENT_AFFECTS_WOUNDS process flag
on_hydroponics_apply
Called when this chemical is processed in a hydroponics 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 if the reagent has the REAGENT_DEAD_PROCESS flag Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.
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
Ticks on mob Life() for as long as the reagent remains in the mob's reagents.
Usage: Parent should be called first using . = ..()
Exceptions: If the holder var needs to be accessed, call the parent afterward that as it can become null if the reagent is fully removed.
Returns: UPDATE_MOB_HEALTH only if you need to update the health of a mob (this is only needed when damage is dealt to the mob)
Arguments
- mob/living/carbon/affected_mob - the mob which the reagent currently is inside of
- seconds_per_tick - the time in server seconds between proc calls (when performing normally it will be 2)
- times_fired - the number of times the owner's Life() tick has been called aka The number of times SSmobs has fired
on_mob_metabolize
Called when this reagent first starts being metabolized by a liver
on_new
Called after add_reagents creates a new reagent.
on_transfer
Called after a reagent is transferred
overdose_process
Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects. Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.
overdose_start
Called when an overdose starts. Returning UPDATE_MOB_HEALTH will cause updatehealth() to be called on the holder mob by /datum/reagents/proc/metabolize.
used_on_fish
Called when feeding a fish. If TRUE is returned, a portion of reagent will be consumed.