/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/reagents.dm

REAGENT_HOLDER_ALIVEIf the holder is "alive" (i.e. mobs and organs) - If this flag is applied to a holder it will cause reagents to split upon addition to the object
SEALED_CONTAINERIf the holder a sealed container - Used if you don't want reagent contents boiling out (plasma, specifically, in which case it only bursts out when at ignition temperatures)
TOUCHUsed for splashing.
INGESTUsed for ingesting the reagents. Food, drinks, inhaling smoke.
VAPORUsed by foams, sprays, and blob attacks.
PATCHUsed by medical patches and gels.
INJECTUsed for direct injection of reagents.
UPDATE_MOB_HEALTHWhen returned by on_mob_life(), on_mob_dead(), overdose_start() or overdose_processed(), will cause the mob to updatehealth() afterwards
UNHUSK_DAMAGE_THRESHOLDHealth threshold for synthflesh and rezadone to unhusk someone
SYNTHFLESH_UNHUSK_AMOUNTAmount of synthflesh required to unhusk someone
CHEMICAL_QUANTISATION_LEVELThe minimum volume of reagents than can be operated on.
CHEMICAL_VOLUME_ROUNDINGSanity check limit to clamp chems to sane amounts and prevent rounding errors during transfer.
CHEMICAL_NORMAL_PHDefault pH for reagents datum
CHEMICAL_MIN_PHMinimum pH attainable by a solution
CHEMICAL_MAX_PHMaximum pH attainable by a solution
BUFFER_IONIZING_STRENGTHIonizing strength of strong acidic/basic buffer (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will change by 0.4
CHEMICAL_MAXIMUM_TEMPERATUREThe maximum temperature a reagent holder can attain
REAGENT_STANDARD_PURITYThe default purity of all non reacted reagents
DEFAULT_REAGENT_TEMPERATUREthe default temperature at which chemicals are added to reagent holders at
REAGENT_DEAD_PROCESSallows on_mob_dead() if present in a dead body
REAGENT_DONOTSPLITDo not split the chem at all during processing - ignores all purity effects
REAGENT_INVISIBLEDoesn't appear on handheld health analyzers.
REAGENT_SNEAKYNAMEWhen inverted, the inverted chem uses the name of the original chem
REAGENT_SPLITRETAINVOLRetains initial volume of chem when splitting for purity effects
REAGENT_CAN_BE_SYNTHESIZEDLets a given reagent be synthesized important for random reagents and things like the odysseus syringe gun(Replaces the old can_synth variable)
REAGENT_IGNORE_STASISAllows a reagent to work on a mob regardless of stasis
REAGENT_NO_RANDOM_RECIPEThis reagent won't be used in most randomized recipes. Meant for reagents that could be synthetized but are normally inaccessible or TOO hard to get.
REAGENT_CLEANSDoes this reagent clean things?
REAGENT_AFFECTS_WOUNDSDoes this reagent affect wounds? Used to check if some procs should be ran.
REAGENT_REVERSE_METABOLISMIf present, when metabolizing out of a mob, we divide by the mob's metabolism rather than multiply. Without this flag: Higher metabolism means the reagent exits the system faster. With this flag: Higher metabolism means the reagent exits the system slower.
REAGENT_UNAFFECTED_BY_METABOLISMIf present, this reagent will not be affected by the mob's metabolism at all, meaning it exits at a fixed rate for all mobs. Supercedes REAGENT_REVERSE_METABOLISM.
REACTION_CLEAR_IMPUREConvert into impure/pure on reaction completion
REACTION_CLEAR_INVERSEConvert into inverse on reaction completion when purity is low enough
REACTION_CLEAR_RETAINClear converted chems retain their purities/inverted purities. Requires 1 or both of the above.
REACTION_INSTANTUsed to create instant reactions
REACTION_HEAT_ARBITARYUsed to force reactions to create a specific amount of heat per 1u created. So if thermic_constant = 5, for 1u of reagent produced, the heat will be forced up arbitarily by 5 irresepective of other reagents. If you use this, keep in mind standard thermic_constant values are 100x what it should be with this enabled.
REACTION_COMPETITIVEUsed to bypass the chem_master transfer block (This is needed for competitive reactions unless you have an end state programmed). More stuff might be added later. When defining this, please add in the comments the associated reactions that it competes with
REACTION_PH_VOL_CONSTANTUsed to force pH changes to be constant regardless of volume
REACTION_REAL_TIME_SPLITIf a reaction will generate it's impure/inverse reagents in the middle of a reaction, as apposed to being determined on ingestion/on reaction completion
NO_OVERHEATUsed for overheat_temp - This sets the overheat so high it effectively has no overheat temperature.
END_REACTIONUsed to force an equlibrium to end a reaction in reaction_step() (i.e. in a reaction_step() proc return END_REACTION to end it)
MIN_ADDICTION_REAGENT_AMOUNTMinimum requirement for addiction buzz to be met. Addiction code only checks this once every two seconds, so this should generally be low
MIN_NICOTINE_ADDICTION_REAGENT_AMOUNTNicotine requires much less in your system to be happy
WITHDRAWAL_STAGE1_START_CYCLEAddiction start/ends
REACTION_TAG_BRUTEreagent tags - used to look up reagents for specific effects. Feel free to add to but comment it This reagent does brute effects (BOTH damaging and healing)
REACTION_TAG_BURNThis reagent does burn effects (BOTH damaging and healing)
REACTION_TAG_TOXINThis reagent does toxin effects (BOTH damaging and healing)
REACTION_TAG_OXYThis reagent does oxy effects (BOTH damaging and healing)
REACTION_TAG_HEALINGThis reagent primarily heals, or it's supposed to be used for healing (in the case of c2 - they are healing)
REACTION_TAG_DAMAGINGThis reagent primarily damages
REACTION_TAG_EXPLOSIVEThis reagent explodes as a part of it's intended effect (i.e. not overheated/impure)
REACTION_TAG_OTHERThis reagent does things that are unique and special
REACTION_TAG_DANGEROUSThis reagent's reaction is dangerous to create (i.e. explodes if you fail it)
REACTION_TAG_EASYThis reagent's reaction is easy
REACTION_TAG_MODERATEThis reagent's reaction is difficult/involved
REACTION_TAG_HARDThis reagent's reaction is hard
REACTION_TAG_ORGANThis reagent affects organs
REACTION_TAG_DRINKThis reaction creates a drink reagent
REACTION_TAG_FOODThis reaction has something to do with food
REACTION_TAG_SLIMEThis reaction is a slime reaction
REACTION_TAG_DRUGThis reaction is a drug reaction
REACTION_TAG_UNIQUEThis reaction is a unique reaction
REACTION_TAG_CHEMICALThis reaction is produces a product that affects reactions
REACTION_TAG_PLANTThis reaction is produces a product that affects plants
REACTION_TAG_COMPETITIVEThis reaction is produces a product that affects plants
REAGENT_STRICT_TYPEDirect type
REAGENT_PARENT_TYPEParent type but not sub types for e.g. if param is obj/item it will look for obj/item/stack but not obj/item/stack/sheet
REAGENT_SUB_TYPEsame as istype() check
ENABLE_FLASHINGBelow are defines used for reagent associated machines only For the pH meter flashing method
ALCOHOL_RATEThe rate at which alcohol affects the drinker
WATER_MATTERSTATE_CHANGE_TEMPThis is the center of a 1 degree deadband in which water will neither freeze to ice nor melt to liquid
GRENADE_EMPTYGrenade is empty
GRENADE_WIREDGrenade has a activation trigger
GRENADE_READYGrenade is ready to be finished

Define Details

ALCOHOL_RATE

The rate at which alcohol affects the drinker

BUFFER_IONIZING_STRENGTH

Ionizing strength of strong acidic/basic buffer (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will change by 0.4

CHEMICAL_MAXIMUM_TEMPERATURE

The maximum temperature a reagent holder can attain

CHEMICAL_MAX_PH

Maximum pH attainable by a solution

CHEMICAL_MIN_PH

Minimum pH attainable by a solution

CHEMICAL_NORMAL_PH

Default pH for reagents datum

CHEMICAL_QUANTISATION_LEVEL

The minimum volume of reagents than can be operated on.

CHEMICAL_VOLUME_ROUNDING

Sanity check limit to clamp chems to sane amounts and prevent rounding errors during transfer.

DEFAULT_REAGENT_TEMPERATURE

the default temperature at which chemicals are added to reagent holders at

ENABLE_FLASHING

Below are defines used for reagent associated machines only For the pH meter flashing method

END_REACTION

Used to force an equlibrium to end a reaction in reaction_step() (i.e. in a reaction_step() proc return END_REACTION to end it)

GRENADE_EMPTY

Grenade is empty

GRENADE_READY

Grenade is ready to be finished

GRENADE_WIRED

Grenade has a activation trigger

INGEST

Used for ingesting the reagents. Food, drinks, inhaling smoke.

INJECT

Used for direct injection of reagents.

MIN_ADDICTION_REAGENT_AMOUNT

Minimum requirement for addiction buzz to be met. Addiction code only checks this once every two seconds, so this should generally be low

MIN_NICOTINE_ADDICTION_REAGENT_AMOUNT

Nicotine requires much less in your system to be happy

NO_OVERHEAT

Used for overheat_temp - This sets the overheat so high it effectively has no overheat temperature.

PATCH

Used by medical patches and gels.

REACTION_CLEAR_IMPURE

Convert into impure/pure on reaction completion

REACTION_CLEAR_INVERSE

Convert into inverse on reaction completion when purity is low enough

REACTION_CLEAR_RETAIN

Clear converted chems retain their purities/inverted purities. Requires 1 or both of the above.

REACTION_COMPETITIVE

Used to bypass the chem_master transfer block (This is needed for competitive reactions unless you have an end state programmed). More stuff might be added later. When defining this, please add in the comments the associated reactions that it competes with

REACTION_HEAT_ARBITARY

Used to force reactions to create a specific amount of heat per 1u created. So if thermic_constant = 5, for 1u of reagent produced, the heat will be forced up arbitarily by 5 irresepective of other reagents. If you use this, keep in mind standard thermic_constant values are 100x what it should be with this enabled.

REACTION_INSTANT

Used to create instant reactions

REACTION_PH_VOL_CONSTANT

Used to force pH changes to be constant regardless of volume

REACTION_REAL_TIME_SPLIT

If a reaction will generate it's impure/inverse reagents in the middle of a reaction, as apposed to being determined on ingestion/on reaction completion

REACTION_TAG_BRUTE

reagent tags - used to look up reagents for specific effects. Feel free to add to but comment it This reagent does brute effects (BOTH damaging and healing)

REACTION_TAG_BURN

This reagent does burn effects (BOTH damaging and healing)

REACTION_TAG_CHEMICAL

This reaction is produces a product that affects reactions

REACTION_TAG_COMPETITIVE

This reaction is produces a product that affects plants

REACTION_TAG_DAMAGING

This reagent primarily damages

REACTION_TAG_DANGEROUS

This reagent's reaction is dangerous to create (i.e. explodes if you fail it)

REACTION_TAG_DRINK

This reaction creates a drink reagent

REACTION_TAG_DRUG

This reaction is a drug reaction

REACTION_TAG_EASY

This reagent's reaction is easy

REACTION_TAG_EXPLOSIVE

This reagent explodes as a part of it's intended effect (i.e. not overheated/impure)

REACTION_TAG_FOOD

This reaction has something to do with food

REACTION_TAG_HARD

This reagent's reaction is hard

REACTION_TAG_HEALING

This reagent primarily heals, or it's supposed to be used for healing (in the case of c2 - they are healing)

REACTION_TAG_MODERATE

This reagent's reaction is difficult/involved

REACTION_TAG_ORGAN

This reagent affects organs

REACTION_TAG_OTHER

This reagent does things that are unique and special

REACTION_TAG_OXY

This reagent does oxy effects (BOTH damaging and healing)

REACTION_TAG_PLANT

This reaction is produces a product that affects plants

REACTION_TAG_SLIME

This reaction is a slime reaction

REACTION_TAG_TOXIN

This reagent does toxin effects (BOTH damaging and healing)

REACTION_TAG_UNIQUE

This reaction is a unique reaction

REAGENT_AFFECTS_WOUNDS

Does this reagent affect wounds? Used to check if some procs should be ran.

REAGENT_CAN_BE_SYNTHESIZED

Lets a given reagent be synthesized important for random reagents and things like the odysseus syringe gun(Replaces the old can_synth variable)

REAGENT_CLEANS

Does this reagent clean things?

REAGENT_DEAD_PROCESS

allows on_mob_dead() if present in a dead body

REAGENT_DONOTSPLIT

Do not split the chem at all during processing - ignores all purity effects

REAGENT_HOLDER_ALIVE

If the holder is "alive" (i.e. mobs and organs) - If this flag is applied to a holder it will cause reagents to split upon addition to the object

REAGENT_IGNORE_STASIS

Allows a reagent to work on a mob regardless of stasis

REAGENT_INVISIBLE

Doesn't appear on handheld health analyzers.

REAGENT_NO_RANDOM_RECIPE

This reagent won't be used in most randomized recipes. Meant for reagents that could be synthetized but are normally inaccessible or TOO hard to get.

REAGENT_PARENT_TYPE

Parent type but not sub types for e.g. if param is obj/item it will look for obj/item/stack but not obj/item/stack/sheet

REAGENT_REVERSE_METABOLISM

If present, when metabolizing out of a mob, we divide by the mob's metabolism rather than multiply. Without this flag: Higher metabolism means the reagent exits the system faster. With this flag: Higher metabolism means the reagent exits the system slower.

REAGENT_SNEAKYNAME

When inverted, the inverted chem uses the name of the original chem

REAGENT_SPLITRETAINVOL

Retains initial volume of chem when splitting for purity effects

REAGENT_STANDARD_PURITY

The default purity of all non reacted reagents

REAGENT_STRICT_TYPE

Direct type

REAGENT_SUB_TYPE

same as istype() check

REAGENT_UNAFFECTED_BY_METABOLISM

If present, this reagent will not be affected by the mob's metabolism at all, meaning it exits at a fixed rate for all mobs. Supercedes REAGENT_REVERSE_METABOLISM.

SEALED_CONTAINER

If the holder a sealed container - Used if you don't want reagent contents boiling out (plasma, specifically, in which case it only bursts out when at ignition temperatures)

SYNTHFLESH_UNHUSK_AMOUNT

Amount of synthflesh required to unhusk someone

TOUCH

Used for splashing.

UNHUSK_DAMAGE_THRESHOLD

Health threshold for synthflesh and rezadone to unhusk someone

UPDATE_MOB_HEALTH

When returned by on_mob_life(), on_mob_dead(), overdose_start() or overdose_processed(), will cause the mob to updatehealth() afterwards

VAPOR

Used by foams, sprays, and blob attacks.

WATER_MATTERSTATE_CHANGE_TEMP

This is the center of a 1 degree deadband in which water will neither freeze to ice nor melt to liquid

WITHDRAWAL_STAGE1_START_CYCLE

Addiction start/ends