Daedalus Dock - Modules - TypesVar Details - Proc Details

reagent

A single reagent

Vars

addiction_typesAssoc 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())
burning_temperatureThermodynamic vars How hot this reagent burns when it's on fire - null means it can't burn
burning_volumeHow much is consumed when it is burnt per second
chemical_flagsSee fermi_readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_INVISIBLE, REAGENT_SNEAKYNAME, REAGENT_SPLITRETAINVOL, REAGENT_CANSYNTH, REAGENT_IMPURE
codex_mechanicsText to insert into the "mechanics" section of the codex.
colorcolor it looks in containers etc
current_cycleincrements everytime on_mob_life is called
dataSpecial data associated with the reagent that will be passed on upon transfer to a new holder.
descriptionnor do they have descriptions
fallback_icon_statefallback icon if the reagent has no glass or shot glass icon state. Used for restaurants.
glass_descdesc applied to glasses with this reagent
glass_iconIcon for the... glass.
glass_icon_stateOtherwise just sets the icon to a normal glass with the mixture of the reagents in the glass.
glass_nameuse for specialty drinks.
glass_priceThe amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!)
harmfulis it bad for you? Currently only used for borghypo. C2s and Toxins have it TRUE by default.
holderreagent holder this belongs to
ingest_metHow fast the reagent metabolizes when ingested. NOTE: Due to how reagents are coded, if you have an on_metabolize() for blood, this MUST be greater than metabolization_rate.
massThe 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.
materialAre 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_ratehow fast the reagent is metabolized by the mob
metabolizingis it currently metabolizing
namedatums don't have names by default
overdose_thresholdabove this overdoses happen
overdosedYou fucked up and this is now triggering its overdose effects, purge that shit quick.
penetrates_skinThe set of exposure methods this penetrates skin with.
reagent_stateLIQUID, SOLID, GAS
reagent_weightaffects how far it travels when sprayed
self_consumingif false stops metab in liverless mobs
shot_glass_icon_stateused for shot glasses, mostly for alcohol
show_in_codexDoes this reagent and its recipe appear in the Codex?
specific_heatJ/(K*mol)
taste_descriptionused by taste messages
taste_multhow this taste compares to others. Higher values means it is more noticable
touch_metHow fast the reagent metabolizes on touch
valueCargo value per unit
volumepretend this is moles

Procs

affect_ingestIngestion process. Call parent after your override's body, as holder can go null as a result of trans_id_to.
affect_touchTouch process. Don't get covered in acid, now!
burnCalled whenever a reagent is on fire, or is in a holder that is on fire. (WIP)
expose_atomApplies this reagent to an /atom
expose_mobApplies this reagent to a /mob/living
expose_objApplies this reagent to an /obj
expose_turfApplies this reagent to a /turf
get_taste_descriptionShould return a associative list where keys are taste descriptions and values are strength ratios
on_hydroponics_applyNew, 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_mergeCalled when two reagents of the same are mixing.
on_mob_addCalled when this reagent is first added to a mob
on_mob_deleteCalled when this reagent is removed while inside a mob
on_mob_end_metabolizeCalled when this reagent stops being metabolized by a liver
on_mob_lifeCalled from /datum/reagents/proc/metabolize
on_mob_metabolizeCalled when this reagent first starts being metabolized. Does NOT get called during microdoses, such as when going from stomach to blood.
on_newCalled after add_reagents creates a new reagent.
on_transferCalled after a reagent is transfered
overdose_endCalled when an overdose ends
overdose_processCalled if the reagent has passed the overdose threshold and is set to be triggering overdose effects
overdose_startCalled 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())

burning_temperature

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

codex_mechanics

Text to insert into the "mechanics" section of the codex.

color

color it looks in containers etc

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.

description

nor do they have descriptions

fallback_icon_state

fallback icon if the reagent has no glass or shot glass icon state. Used for restaurants.

glass_desc

desc applied to glasses with this reagent

glass_icon

Icon for the... glass.

glass_icon_state

Otherwise just sets the icon to a normal glass with the mixture of the reagents in the glass.

glass_name

use for specialty drinks.

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

ingest_met

How fast the reagent metabolizes when ingested. NOTE: Due to how reagents are coded, if you have an on_metabolize() for blood, this MUST be greater than metabolization_rate.

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.

penetrates_skin

The set of exposure methods this penetrates skin with.

reagent_state

LIQUID, SOLID, GAS

reagent_weight

affects how far it travels when sprayed

self_consuming

if false stops metab in liverless mobs

shot_glass_icon_state

used for shot glasses, mostly for alcohol

show_in_codex

Does this reagent and its recipe appear in the Codex?

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

touch_met

How fast the reagent metabolizes on touch

value

Cargo value per unit

volume

pretend this is moles

Proc Details

affect_ingest

Ingestion process. Call parent after your override's body, as holder can go null as a result of trans_id_to.

affect_touch

Touch process. Don't get covered in acid, now!

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_taste_description

Should return a associative list where keys are taste descriptions and values are strength ratios

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_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. Does NOT get called during microdoses, such as when going from stomach to blood.

on_new

Called after add_reagents creates a new reagent.

on_transfer

Called after a reagent is transfered

overdose_end

Called when an overdose ends

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