mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 13:10:02 +01:00
[MIRROR] Fermichem part 2.1: Adds a reaction/reagent lookup GUI! (#3513)
* Fermichem part 2.1: Adds a reaction/reagent lookup GUI! * Update chem_dispenser.dm * Update reagents.dm Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
co-authored by
Thalpy
Gandalf
parent
7d940faf68
commit
da71129f87
@@ -8,6 +8,8 @@
|
||||
thermic_constant = 0
|
||||
H_ion_release = 0
|
||||
rate_up_lim = 50
|
||||
purity_min = 0
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY
|
||||
|
||||
////////////////////////////////////////// COCKTAILS //////////////////////////////////////
|
||||
|
||||
@@ -15,6 +17,7 @@
|
||||
/datum/chemical_reaction/drink/goldschlager
|
||||
results = list(/datum/reagent/consumable/ethanol/goldschlager = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 10, /datum/reagent/gold = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY
|
||||
|
||||
/datum/chemical_reaction/drink/patron
|
||||
results = list(/datum/reagent/consumable/ethanol/patron = 10)
|
||||
@@ -23,6 +26,7 @@
|
||||
/datum/chemical_reaction/drink/bilk
|
||||
results = list(/datum/reagent/consumable/ethanol/bilk = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/milk = 1, /datum/reagent/consumable/ethanol/beer = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_BRUTE
|
||||
|
||||
/datum/chemical_reaction/drink/icetea
|
||||
results = list(/datum/reagent/consumable/icetea = 4)
|
||||
@@ -59,11 +63,13 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/vodka = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/potato_juice = 10)
|
||||
required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/kahlua
|
||||
results = list(/datum/reagent/consumable/ethanol/kahlua = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/coffee = 5, /datum/reagent/consumable/sugar = 5)
|
||||
required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/gin_tonic
|
||||
results = list(/datum/reagent/consumable/ethanol/gintonic = 3)
|
||||
@@ -76,6 +82,7 @@
|
||||
/datum/chemical_reaction/drink/cuba_libre
|
||||
results = list(/datum/reagent/consumable/ethanol/cuba_libre = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/rum_coke = 3, /datum/reagent/consumable/limejuice = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/martini
|
||||
results = list(/datum/reagent/consumable/ethanol/martini = 3)
|
||||
@@ -100,10 +107,12 @@
|
||||
/datum/chemical_reaction/drink/bloody_mary
|
||||
results = list(/datum/reagent/consumable/ethanol/bloody_mary = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/limejuice = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/gargle_blaster
|
||||
results = list(/datum/reagent/consumable/ethanol/gargle_blaster = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/gin = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/consumable/limejuice = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/brave_bull
|
||||
results = list(/datum/reagent/consumable/ethanol/brave_bull = 3)
|
||||
@@ -112,18 +121,22 @@
|
||||
/datum/chemical_reaction/drink/tequila_sunrise
|
||||
results = list(/datum/reagent/consumable/ethanol/tequila_sunrise = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/orangejuice = 2, /datum/reagent/consumable/grenadine = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/toxins_special
|
||||
results = list(/datum/reagent/consumable/ethanol/toxins_special = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vermouth = 1, /datum/reagent/toxin/plasma = 2)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/beepsky_smash
|
||||
results = list(/datum/reagent/consumable/ethanol/beepsky_smash = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/limejuice = 2, /datum/reagent/consumable/ethanol/quadruple_sec = 2, /datum/reagent/iron = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/doctor_delight
|
||||
results = list(/datum/reagent/consumable/doctor_delight = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/medicine/cryoxadone = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_BRUTE | REACTION_TAG_BURN | REACTION_TAG_TOXIN | REACTION_TAG_OXY
|
||||
|
||||
/datum/chemical_reaction/drink/irish_cream
|
||||
results = list(/datum/reagent/consumable/ethanol/irish_cream = 3)
|
||||
@@ -132,10 +145,12 @@
|
||||
/datum/chemical_reaction/drink/manly_dorf
|
||||
results = list(/datum/reagent/consumable/ethanol/manly_dorf = 3)
|
||||
required_reagents = list (/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/ale = 2)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/greenbeer
|
||||
results = list(/datum/reagent/consumable/ethanol/beer/green = 10)
|
||||
required_reagents = list(/datum/reagent/colorful_reagent/powder/green = 1, /datum/reagent/consumable/ethanol/beer = 10)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/greenbeer2 //apparently there's no other way to do this
|
||||
results = list(/datum/reagent/consumable/ethanol/beer/green = 10)
|
||||
@@ -157,6 +172,7 @@
|
||||
/datum/chemical_reaction/drink/atomicbomb
|
||||
results = list(/datum/reagent/consumable/ethanol/atomicbomb = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/b52 = 10, /datum/reagent/uranium = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/margarita
|
||||
results = list(/datum/reagent/consumable/ethanol/margarita = 4)
|
||||
@@ -169,6 +185,7 @@
|
||||
/datum/chemical_reaction/drink/threemileisland
|
||||
results = list(/datum/reagent/consumable/ethanol/threemileisland = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/longislandicedtea = 10, /datum/reagent/uranium = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/whiskeysoda
|
||||
results = list(/datum/reagent/consumable/ethanol/whiskeysoda = 3)
|
||||
@@ -221,10 +238,12 @@
|
||||
/datum/chemical_reaction/drink/antifreeze
|
||||
results = list(/datum/reagent/consumable/ethanol/antifreeze = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/ice = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/barefoot
|
||||
results = list(/datum/reagent/consumable/ethanol/barefoot = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/berryjuice = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/ethanol/vermouth = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/moscow_mule
|
||||
results = list(/datum/reagent/consumable/ethanol/moscow_mule = 10)
|
||||
@@ -244,6 +263,7 @@
|
||||
/datum/chemical_reaction/drink/sbiten
|
||||
results = list(/datum/reagent/consumable/ethanol/sbiten = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 10, /datum/reagent/consumable/capsaicin = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/red_mead
|
||||
results = list(/datum/reagent/consumable/ethanol/red_mead = 2)
|
||||
@@ -257,6 +277,7 @@
|
||||
/datum/chemical_reaction/drink/iced_beer
|
||||
results = list(/datum/reagent/consumable/ethanol/iced_beer = 6)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/beer = 5, /datum/reagent/consumable/ice = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/grog
|
||||
results = list(/datum/reagent/consumable/ethanol/grog = 2)
|
||||
@@ -273,7 +294,7 @@
|
||||
/datum/chemical_reaction/drink/acidspit
|
||||
results = list(/datum/reagent/consumable/ethanol/acid_spit = 6)
|
||||
required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/consumable/ethanol/wine = 5)
|
||||
optimal_ph_min = 0 //Our reaction is very acidic, so lets shift our range
|
||||
optimal_ph_min = 0 //Our reaction is very acidic, so lets shift our range
|
||||
|
||||
/datum/chemical_reaction/drink/amasec
|
||||
results = list(/datum/reagent/consumable/ethanol/amasec = 10)
|
||||
@@ -282,6 +303,7 @@
|
||||
/datum/chemical_reaction/drink/changelingsting
|
||||
results = list(/datum/reagent/consumable/ethanol/changelingsting = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/screwdrivercocktail = 1, /datum/reagent/consumable/lemon_lime = 2)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/aloe
|
||||
results = list(/datum/reagent/consumable/ethanol/aloe = 2)
|
||||
@@ -294,6 +316,7 @@
|
||||
/datum/chemical_reaction/drink/neurotoxin
|
||||
results = list(/datum/reagent/consumable/ethanol/neurotoxin = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/gargle_blaster = 1, /datum/reagent/medicine/morphine = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/snowwhite
|
||||
results = list(/datum/reagent/consumable/ethanol/snowwhite = 2)
|
||||
@@ -318,14 +341,17 @@
|
||||
/datum/chemical_reaction/drink/hippiesdelight
|
||||
results = list(/datum/reagent/consumable/ethanol/hippies_delight = 2)
|
||||
required_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 1, /datum/reagent/consumable/ethanol/gargle_blaster = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/bananahonk
|
||||
results = list(/datum/reagent/consumable/ethanol/bananahonk = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/laughter = 1, /datum/reagent/consumable/cream = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/silencer
|
||||
results = list(/datum/reagent/consumable/ethanol/silencer = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/sugar = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/driestmartini
|
||||
results = list(/datum/reagent/consumable/ethanol/driestmartini = 2)
|
||||
@@ -334,6 +360,7 @@
|
||||
/datum/chemical_reaction/drink/thirteenloko
|
||||
results = list(/datum/reagent/consumable/ethanol/thirteenloko = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/coffee = 1, /datum/reagent/consumable/limejuice = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/cherryshake
|
||||
results = list(/datum/reagent/consumable/cherryshake = 3)
|
||||
@@ -358,7 +385,7 @@
|
||||
/datum/chemical_reaction/drink/triple_citrus
|
||||
results = list(/datum/reagent/consumable/triple_citrus = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/orangejuice = 1)
|
||||
optimal_ph_min = 0//Our reaction is very acidic, so lets shift our range
|
||||
optimal_ph_min = 0//Our reaction is very acidic, so lets shift our range
|
||||
|
||||
/datum/chemical_reaction/drink/grape_soda
|
||||
results = list(/datum/reagent/consumable/grape_soda = 2)
|
||||
@@ -384,6 +411,7 @@
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/brave_bull = 5, /datum/reagent/consumable/ethanol/syndicatebomb = 5, /datum/reagent/consumable/ethanol/absinthe = 5)
|
||||
mix_message = "The mixture darkens to a healthy crimson."
|
||||
required_temp = 315 //Piping hot!
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_BRUTE | REACTION_TAG_BURN | REACTION_TAG_TOXIN | REACTION_TAG_OXY | REACTION_TAG_CLONE
|
||||
|
||||
/datum/chemical_reaction/drink/bacchus_blessing
|
||||
results = list(/datum/reagent/consumable/ethanol/bacchus_blessing = 4)
|
||||
@@ -419,7 +447,7 @@
|
||||
results = list(/datum/reagent/consumable/hot_coco = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/milk/chocolate_milk = 1, /datum/reagent/consumable/milk = 2)
|
||||
required_temp = 320
|
||||
|
||||
|
||||
/datum/chemical_reaction/drink/coffee
|
||||
results = list(/datum/reagent/consumable/coffee = 5)
|
||||
required_reagents = list(/datum/reagent/toxin/coffeepowder = 1, /datum/reagent/water = 5)
|
||||
@@ -437,12 +465,14 @@
|
||||
required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/ethanol/demonsblood = 1)
|
||||
mix_message = "The mixture develops a sinister glow."
|
||||
mix_sound = 'sound/effects/singlebeat.ogg'
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/quadruplesec
|
||||
results = list(/datum/reagent/consumable/ethanol/quadruple_sec = 15)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 5, /datum/reagent/consumable/triple_citrus = 5, /datum/reagent/consumable/ethanol/creme_de_menthe = 5)
|
||||
mix_message = "The snap of a taser emanates clearly from the mixture as it settles."
|
||||
mix_sound = 'sound/weapons/taser.ogg'
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/grasshopper
|
||||
results = list(/datum/reagent/consumable/ethanol/grasshopper = 15)
|
||||
@@ -458,16 +488,19 @@
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/quadruple_sec = 5, /datum/reagent/consumable/clownstears = 5, /datum/reagent/consumable/ethanol/syndicatebomb = 5)
|
||||
mix_message = "Judgement is upon you."
|
||||
mix_sound = 'sound/items/airhorn2.ogg'
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/bastion_bourbon
|
||||
results = list(/datum/reagent/consumable/ethanol/bastion_bourbon = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/consumable/ethanol/creme_de_menthe = 1, /datum/reagent/consumable/triple_citrus = 1, /datum/reagent/consumable/berryjuice = 1) //herbal and minty, with a hint of citrus and berry
|
||||
mix_message = "You catch an aroma of hot tea and fruits as the mix blends into a blue-green color."
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_BRUTE | REACTION_TAG_BURN | REACTION_TAG_TOXIN | REACTION_TAG_OXY
|
||||
|
||||
/datum/chemical_reaction/drink/squirt_cider
|
||||
results = list(/datum/reagent/consumable/ethanol/squirt_cider = 1)
|
||||
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/consumable/nutriment = 1)
|
||||
mix_message = "The mix swirls and turns a bright red that reminds you of an apple's skin."
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/fringe_weaver
|
||||
results = list(/datum/reagent/consumable/ethanol/fringe_weaver = 10)
|
||||
@@ -478,11 +511,13 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/sugar_rush = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/ethanol/wine = 1) //2 adelhyde (sweet), 1 powdered delta (sour), 1 karmotrine (alcohol)
|
||||
mix_message = "The mixture bubbles and brightens into a girly pink."
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/crevice_spike
|
||||
results = list(/datum/reagent/consumable/ethanol/crevice_spike = 6)
|
||||
required_reagents = list(/datum/reagent/consumable/limejuice = 2, /datum/reagent/consumable/capsaicin = 4) //2 powdered delta (sour), 4 flanergide (spicy)
|
||||
mix_message = "The mixture stings your eyes as it settles."
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/sake
|
||||
results = list(/datum/reagent/consumable/ethanol/sake = 10)
|
||||
@@ -494,10 +529,12 @@
|
||||
results = list(/datum/reagent/consumable/ethanol/peppermint_patty = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/hot_coco = 6, /datum/reagent/consumable/ethanol/creme_de_cacao = 1, /datum/reagent/consumable/ethanol/creme_de_menthe = 1, /datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/menthol = 1)
|
||||
mix_message = "The coco turns mint green just as the strong scent hits your nose."
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/alexander
|
||||
results = list(/datum/reagent/consumable/ethanol/alexander = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/consumable/ethanol/creme_de_cacao = 1, /datum/reagent/consumable/cream = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/sidecar
|
||||
results = list(/datum/reagent/consumable/ethanol/sidecar = 4)
|
||||
@@ -506,6 +543,7 @@
|
||||
/datum/chemical_reaction/drink/between_the_sheets
|
||||
results = list(/datum/reagent/consumable/ethanol/between_the_sheets = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/ethanol/sidecar = 4)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/kamikaze
|
||||
results = list(/datum/reagent/consumable/ethanol/kamikaze = 3)
|
||||
@@ -518,6 +556,7 @@
|
||||
/datum/chemical_reaction/drink/fernet_cola
|
||||
results = list(/datum/reagent/consumable/ethanol/fernet_cola = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/fernet = 1, /datum/reagent/consumable/space_cola = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_TOXIN
|
||||
|
||||
|
||||
/datum/chemical_reaction/drink/fanciulli
|
||||
@@ -538,6 +577,7 @@
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 1, /datum/reagent/consumable/sodawater = 1, /datum/reagent/consumable/ethanol/champagne = 1)
|
||||
mix_message = "The beverage starts to froth with an almost mystical zeal!"
|
||||
mix_sound = 'sound/effects/bubbles2.ogg'
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
|
||||
/datum/chemical_reaction/drink/bug_spray
|
||||
@@ -545,6 +585,7 @@
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 2, /datum/reagent/consumable/lemon_lime = 1, /datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vodka = 1)
|
||||
mix_message = "The faint aroma of summer camping trips wafts through the air; but what's that buzzing noise?"
|
||||
mix_sound = 'sound/creatures/bee.ogg'
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/jack_rose
|
||||
results = list(/datum/reagent/consumable/ethanol/jack_rose = 4)
|
||||
@@ -554,14 +595,17 @@
|
||||
/datum/chemical_reaction/drink/turbo
|
||||
results = list(/datum/reagent/consumable/ethanol/turbo = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/moonshine = 2, /datum/reagent/nitrous_oxide = 1, /datum/reagent/consumable/ethanol/sugar_rush = 1, /datum/reagent/consumable/pwr_game = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/old_timer
|
||||
results = list(/datum/reagent/consumable/ethanol/old_timer = 6)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/whiskeysoda = 3, /datum/reagent/consumable/parsnipjuice = 2, /datum/reagent/consumable/ethanol/alexander = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/rubberneck
|
||||
results = list(/datum/reagent/consumable/ethanol/rubberneck = 10)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 4, /datum/reagent/consumable/grey_bull = 5, /datum/reagent/consumable/astrotame = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/duplex
|
||||
results = list(/datum/reagent/consumable/ethanol/duplex = 4)
|
||||
@@ -570,6 +614,7 @@
|
||||
/datum/chemical_reaction/drink/trappist
|
||||
results = list(/datum/reagent/consumable/ethanol/trappist = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/ale = 2, /datum/reagent/water/holywater = 2, /datum/reagent/consumable/sugar = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/cream_soda
|
||||
results = list(/datum/reagent/consumable/cream_soda = 4)
|
||||
@@ -578,6 +623,7 @@
|
||||
/datum/chemical_reaction/drink/blazaam
|
||||
results = list(/datum/reagent/consumable/ethanol/blazaam = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/peachjuice = 1, /datum/reagent/bluespace = 1)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/planet_cracker
|
||||
results = list(/datum/reagent/consumable/ethanol/planet_cracker = 4)
|
||||
@@ -591,6 +637,7 @@
|
||||
/datum/chemical_reaction/drink/mauna_loa
|
||||
results = list(/datum/reagent/consumable/ethanol/mauna_loa = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/capsaicin = 2, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/bahama_mama = 2)
|
||||
reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/drink/godfather
|
||||
results = list(/datum/reagent/consumable/ethanol/godfather = 2)
|
||||
@@ -607,4 +654,4 @@
|
||||
/datum/chemical_reaction/drink/ginger_amaretto
|
||||
results = list(/datum/reagent/consumable/ethanol/ginger_amaretto = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol/amaretto = 1, /datum/reagent/consumable/sol_dry = 1, /datum/reagent/consumable/ice = 1, /datum/reagent/consumable/lemonjuice = 1)
|
||||
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
optimal_ph_max = 10
|
||||
thermic_constant = 0
|
||||
H_ion_release = 0
|
||||
reaction_tags = REACTION_TAG_FOOD | REACTION_TAG_EASY
|
||||
|
||||
/datum/chemical_reaction/food/tofu
|
||||
required_reagents = list(/datum/reagent/consumable/soymilk = 10)
|
||||
@@ -58,10 +59,11 @@
|
||||
new /obj/item/food/chocolatebar(location)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/chocolate_bar3
|
||||
/datum/chemical_reaction/food/chocolate_bar3
|
||||
required_reagents = list(/datum/reagent/consumable/milk = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/sugar = 2)
|
||||
reaction_flags = REACTION_INSTANT
|
||||
|
||||
/datum/chemical_reaction/chocolate_bar3/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
/datum/chemical_reaction/food/chocolate_bar3/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/food/chocolatebar(location)
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
#define REAGENTS_UI_MODE_LOOKUP 0
|
||||
#define REAGENTS_UI_MODE_REAGENT 1
|
||||
#define REAGENTS_UI_MODE_RECIPE 2
|
||||
|
||||
/////////////These are used in the reagents subsystem init() and the reagent_id_typos.dm////////
|
||||
/proc/build_chemical_reagent_list()
|
||||
//Chemical Reagents - Initialises all /datum/reagent into a list indexed by reagent id
|
||||
@@ -12,11 +16,16 @@
|
||||
var/datum/reagent/D = new path()
|
||||
GLOB.chemical_reagents_list[path] = D
|
||||
|
||||
/proc/build_chemical_reactions_list()
|
||||
/proc/build_chemical_reactions_lists()
|
||||
//Chemical Reactions - Initialises all /datum/chemical_reaction into a list
|
||||
// It is filtered into multiple lists within a list.
|
||||
// For example:
|
||||
// chemical_reaction_list[/datum/reagent/toxin/plasma] is a list of all reactions relating to plasma
|
||||
//For chemical reaction list product index - indexes reactions based off the product reagent type - see get_recipe_from_reagent_product() in helpers
|
||||
//For chemical reactions list lookup list - creates a bit list of info passed to the UI. This is saved to reduce lag from new windows opening, since it's a lot of data.
|
||||
|
||||
//Prevent these reactions from appearing in lookup tables (UI code)
|
||||
var/list/blacklist = (/datum/chemical_reaction/randomized)
|
||||
|
||||
if(GLOB.chemical_reactions_list)
|
||||
return
|
||||
@@ -24,18 +33,50 @@
|
||||
//Randomized need to go last since they need to check against conflicts with normal recipes
|
||||
var/paths = subtypesof(/datum/chemical_reaction) - typesof(/datum/chemical_reaction/randomized) + subtypesof(/datum/chemical_reaction/randomized)
|
||||
GLOB.chemical_reactions_list = list()
|
||||
GLOB.chemical_reactions_results_lookup_list = list()
|
||||
GLOB.chemical_reactions_list_product_index = list()
|
||||
|
||||
for(var/path in paths)
|
||||
var/datum/chemical_reaction/D = new path()
|
||||
var/list/reaction_ids = list()
|
||||
var/list/product_ids = list()
|
||||
var/list/reagents = list()
|
||||
var/list/product_names = list()
|
||||
var/bitflags = D.reaction_tags
|
||||
|
||||
if(!D.required_reagents || !D.required_reagents.len) //Skip impossible reactions
|
||||
continue
|
||||
|
||||
for(var/reaction in D.required_reagents)
|
||||
reaction_ids += reaction
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(reaction)
|
||||
reagents += list(list("name" = reagent.name, "id" = reagent.type))
|
||||
|
||||
// Create filters based on each reagent id in the required reagents list
|
||||
for(var/product in D.results)
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(product)
|
||||
product_names += reagent.name
|
||||
product_ids += product
|
||||
|
||||
var/product_name
|
||||
if(!length(product_names))
|
||||
var/list/names = splittext("[D.type]", "/")
|
||||
product_name = names[names.len]
|
||||
else
|
||||
product_name = product_names[1]
|
||||
|
||||
// Create filters based on each reagent id in the required reagents list - this is specifically for finding reactions from product(reagent) ids/typepaths.
|
||||
for(var/id in product_ids)
|
||||
if(is_type_in_list(D.type, blacklist))
|
||||
continue
|
||||
if(!GLOB.chemical_reactions_list_product_index[id])
|
||||
GLOB.chemical_reactions_list_product_index[id] = list()
|
||||
GLOB.chemical_reactions_list_product_index[id] += D
|
||||
|
||||
//Master list of ALL reactions that is used in the UI lookup table. This is expensive to make, and we don't want to lag the server by creating it on UI request, so it's cached to send to UIs instantly.
|
||||
if(!(is_type_in_list(D.type, blacklist)))
|
||||
GLOB.chemical_reactions_results_lookup_list += list(list("name" = product_name, "id" = D.type, "bitflags" = bitflags, "reactants" = reagents))
|
||||
|
||||
// Create filters based on each reagent id in the required reagents list - this is used to speed up handle_reactions()
|
||||
for(var/id in reaction_ids)
|
||||
if(!GLOB.chemical_reactions_list[id])
|
||||
GLOB.chemical_reactions_list[id] = list()
|
||||
@@ -70,6 +111,17 @@
|
||||
var/list/failed_but_capable_reactions
|
||||
///Hard check to see if the reagents is presently reacting
|
||||
var/is_reacting = FALSE
|
||||
///UI lookup stuff
|
||||
///Keeps the id of the reaction displayed in the ui
|
||||
var/ui_reaction_id = null
|
||||
///Keeps the id of the reagent displayed in the ui
|
||||
var/ui_reagent_id = null
|
||||
///The bitflag of the currently selected tags in the ui
|
||||
var/ui_tags_selected = NONE
|
||||
///What index we're at if we have multiple reactions for a reagent product
|
||||
var/ui_reaction_index = 1
|
||||
///If we're syncing with the beaker - so return reactions that are actively happening
|
||||
var/ui_beaker_sync = FALSE
|
||||
|
||||
/datum/reagents/New(maximum=100, new_flags=0)
|
||||
maximum_volume = maximum
|
||||
@@ -1384,6 +1436,464 @@
|
||||
//Using types because SOME chemicals (I'm looking at you, chlorhydrate-beer) have the same names as other chemicals.
|
||||
return english_list(data)
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////UI / REAGENTS LOOKUP CODE/////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/datum/reagents/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "Reagents", "Reaction search")
|
||||
ui.status = UI_INTERACTIVE //How do I prevent a UI from autoclosing if not in LoS
|
||||
ui_tags_selected = NONE //Resync with gui on open (gui expects no flags)
|
||||
ui_reagent_id = null
|
||||
ui_reaction_id = null
|
||||
ui.open()
|
||||
|
||||
|
||||
/datum/reagents/ui_status(mob/user)
|
||||
return UI_INTERACTIVE //please advise
|
||||
|
||||
/datum/reagents/ui_state(mob/user)
|
||||
return GLOB.physical_state
|
||||
|
||||
/datum/reagents/proc/generate_possible_reactions()
|
||||
var/list/cached_reagents = reagent_list
|
||||
if(!cached_reagents)
|
||||
return null
|
||||
var/list/cached_reactions = list()
|
||||
var/list/possible_reactions = list()
|
||||
if(!length(cached_reagents))
|
||||
return null
|
||||
cached_reactions = GLOB.chemical_reactions_list
|
||||
for(var/_reagent in cached_reagents)
|
||||
var/datum/reagent/reagent = _reagent
|
||||
for(var/_reaction in cached_reactions[reagent.type]) // Was a big list but now it should be smaller since we filtered it with our reagent id
|
||||
var/datum/chemical_reaction/reaction = _reaction
|
||||
if(!_reaction)
|
||||
continue
|
||||
if(!reaction.required_reagents)//Don't bring in empty ones
|
||||
continue
|
||||
var/list/cached_required_reagents = reaction.required_reagents
|
||||
var/total_matching_reagents = 0
|
||||
for(var/req_reagent in cached_required_reagents)
|
||||
if(!has_reagent(req_reagent, (cached_required_reagents[req_reagent]*0.01)))
|
||||
continue
|
||||
total_matching_reagents++
|
||||
if(total_matching_reagents >= reagent_list.len)
|
||||
possible_reactions += reaction
|
||||
return possible_reactions
|
||||
|
||||
///Generates a (rough) rate vs temperature graph profile
|
||||
/datum/reagents/proc/generate_thermodynamic_profile(datum/chemical_reaction/reaction)
|
||||
var/list/coords = list()
|
||||
var/x_temp
|
||||
var/increment
|
||||
if(reaction.is_cold_recipe)
|
||||
coords += list(list(0, 0))
|
||||
coords += list(list(reaction.required_temp, 0))
|
||||
x_temp = reaction.required_temp
|
||||
increment = (reaction.optimal_temp - reaction.required_temp)/10
|
||||
while(x_temp < reaction.optimal_temp)
|
||||
var/y = (((x_temp - reaction.required_temp)**reaction.temp_exponent_factor)/((reaction.optimal_temp - reaction.required_temp)**reaction.temp_exponent_factor))
|
||||
coords += list(list(x_temp, y))
|
||||
x_temp += increment
|
||||
else
|
||||
coords += list(list(reaction.required_temp, 0))
|
||||
x_temp = reaction.required_temp
|
||||
increment = (reaction.required_temp - reaction.optimal_temp)/10
|
||||
while(x_temp > reaction.optimal_temp)
|
||||
var/y = (((x_temp - reaction.required_temp)**reaction.temp_exponent_factor)/((reaction.optimal_temp - reaction.required_temp)**reaction.temp_exponent_factor))
|
||||
coords += list(list(x_temp, y))
|
||||
x_temp -= increment
|
||||
|
||||
coords += list(list(reaction.optimal_temp, 1))
|
||||
if(reaction.overheat_temp == NO_OVERHEAT)
|
||||
if(reaction.is_cold_recipe)
|
||||
coords += list(list(reaction.optimal_temp+10, 1))
|
||||
else
|
||||
coords += list(list(reaction.optimal_temp-10, 1))
|
||||
return coords
|
||||
coords += list(list(reaction.overheat_temp, 1))
|
||||
coords += list(list(reaction.overheat_temp, 0))
|
||||
return coords
|
||||
|
||||
/datum/reagents/proc/generate_explosive_profile(datum/chemical_reaction/reaction)
|
||||
if(reaction.overheat_temp == NO_OVERHEAT)
|
||||
return null
|
||||
var/list/coords = list()
|
||||
coords += list(list(reaction.overheat_temp, 0))
|
||||
coords += list(list(reaction.overheat_temp, 1))
|
||||
if(reaction.is_cold_recipe)
|
||||
coords += list(list(reaction.overheat_temp-50, 1))
|
||||
coords += list(list(reaction.overheat_temp-50, 0))
|
||||
else
|
||||
coords += list(list(reaction.overheat_temp+50, 1))
|
||||
coords += list(list(reaction.overheat_temp+50, 0))
|
||||
return coords
|
||||
|
||||
|
||||
///Returns a string descriptor of a reactions themic_constant
|
||||
/datum/reagents/proc/determine_reaction_thermics(datum/chemical_reaction/reaction)
|
||||
var/thermic = reaction.thermic_constant
|
||||
if(reaction.reaction_flags & REACTION_HEAT_ARBITARY)
|
||||
thermic *= 100 //Because arbitary is a lower scale
|
||||
switch(thermic)
|
||||
if(-INFINITY to -1500)
|
||||
return "Overwhelmingly endothermic"
|
||||
if(-1500 to -1000)
|
||||
return "Extremely endothermic"
|
||||
if(-1000 to -500)
|
||||
return "Strongly endothermic"
|
||||
if(-500 to -200)
|
||||
return "Moderately endothermic"
|
||||
if(-200 to -50)
|
||||
return "Endothermic"
|
||||
if(-50 to 0)
|
||||
return "Weakly endothermic"
|
||||
if(0)
|
||||
return ""
|
||||
if(0 to 50)
|
||||
return "Weakly Exothermic"
|
||||
if(50 to 200)
|
||||
return "Exothermic"
|
||||
if(200 to 500)
|
||||
return "Moderately exothermic"
|
||||
if(500 to 1000)
|
||||
return "Strongly exothermic"
|
||||
if(1000 to 1500)
|
||||
return "Extremely exothermic"
|
||||
if(1500 to INFINITY)
|
||||
return "Overwhelmingly exothermic"
|
||||
|
||||
/datum/reagents/proc/parse_addictions(datum/reagent/reagent)
|
||||
var/addict_text = list()
|
||||
for(var/entry in reagent.addiction_types)
|
||||
var/datum/addiction/ref = SSaddiction.all_addictions[entry]
|
||||
switch(reagent.addiction_types[entry])
|
||||
if(-INFINITY to 0)
|
||||
continue
|
||||
if(0 to 5)
|
||||
addict_text += "Weak [ref.name]"
|
||||
if(5 to 10)
|
||||
addict_text += "[ref.name]"
|
||||
if(10 to 20)
|
||||
addict_text += "Strong [ref.name]"
|
||||
if(20 to INFINITY)
|
||||
addict_text += "Potent [ref.name]"
|
||||
return addict_text
|
||||
|
||||
/datum/reagents/ui_data(mob/user)
|
||||
var/data = list()
|
||||
data["selectedBitflags"] = ui_tags_selected
|
||||
data["currentReagents"] = previous_reagent_list //This keeps the string of reagents that's updated when handle_reactions() is called
|
||||
data["beakerSync"] = ui_beaker_sync
|
||||
data["linkedBeaker"] = my_atom.name //To solidify the fact that the UI is linked to a beaker - not a machine.
|
||||
|
||||
//First we check to see if reactions are synced with the beaker
|
||||
if(ui_beaker_sync)
|
||||
if(reaction_list)//But we don't want to null the previously displayed if there are none
|
||||
//makes sure we're within bounds
|
||||
if(ui_reaction_index > reaction_list.len)
|
||||
ui_reaction_index = reaction_list.len
|
||||
ui_reaction_id = reaction_list[ui_reaction_index].reaction.type
|
||||
|
||||
//reagent lookup data
|
||||
if(ui_reagent_id)
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(ui_reagent_id)
|
||||
if(!reagent)
|
||||
to_chat(user, "Could not find reagent!")
|
||||
ui_reagent_id = null
|
||||
else
|
||||
data["reagent_mode_reagent"] = list("name" = reagent.name, "id" = reagent.type, "desc" = reagent.description, "reagentCol" = reagent.color, "pH" = reagent.ph, "pHCol" = convert_ph_to_readable_color(reagent.ph), "metaRate" = (reagent.metabolization_rate/2), "OD" = reagent.overdose_threshold)
|
||||
data["reagent_mode_reagent"]["addictions"] = list()
|
||||
data["reagent_mode_reagent"]["addictions"] = parse_addictions(reagent)
|
||||
|
||||
|
||||
var/datum/reagent/impure_reagent = GLOB.chemical_reagents_list[reagent.impure_chem]
|
||||
if(impure_reagent)
|
||||
data["reagent_mode_reagent"] += list("impureReagent" = impure_reagent.name, "impureId" = impure_reagent.type)
|
||||
|
||||
var/datum/reagent/inverse_reagent = GLOB.chemical_reagents_list[reagent.inverse_chem]
|
||||
if(inverse_reagent)
|
||||
data["reagent_mode_reagent"] += list("inverseReagent" = inverse_reagent.name, "inverseId" = inverse_reagent.type)
|
||||
|
||||
var/datum/reagent/failed_reagent = GLOB.chemical_reagents_list[reagent.failed_chem]
|
||||
if(failed_reagent)
|
||||
data["reagent_mode_reagent"] += list("failedReagent" = failed_reagent.name, "failedId" = failed_reagent.type)
|
||||
|
||||
if(istype(reagent, /datum/reagent/impurity))
|
||||
data["reagent_mode_reagent"] += list("isImpure" = TRUE)
|
||||
|
||||
if(reagent.chemical_flags & REAGENT_DEAD_PROCESS)
|
||||
data["reagent_mode_reagent"] += list("deadProcess" = TRUE)
|
||||
|
||||
//reaction lookup data
|
||||
if (ui_reaction_id)
|
||||
|
||||
var/datum/chemical_reaction/reaction = get_chemical_reaction(ui_reaction_id)
|
||||
if(!reaction)
|
||||
to_chat(user, "Could not find reaction!")
|
||||
ui_reaction_id = null
|
||||
return data
|
||||
//Required holder
|
||||
var/container_name
|
||||
if(reaction.required_container)
|
||||
var/list/names = splittext("[reaction.required_container]", "/")
|
||||
container_name = "[names[names.len-1]] [names[names.len]]"
|
||||
container_name = replacetext(container_name, "_", " ")
|
||||
|
||||
//Next, find the product
|
||||
var/has_product = TRUE
|
||||
//If we have no product, use the typepath to create a name for it
|
||||
if(!length(reaction.results))
|
||||
has_product = FALSE
|
||||
var/list/names = splittext("[reaction.type]", "/")
|
||||
var/product_name = names[names.len]
|
||||
data["reagent_mode_recipe"] = list("name" = product_name, "id" = reaction.type, "hasProduct" = has_product, "reagentCol" = "#FFFFFF", "thermodynamics" = generate_thermodynamic_profile(reaction), "explosive" = generate_explosive_profile(reaction), "lowerpH" = reaction.optimal_ph_min, "upperpH" = reaction.optimal_ph_max, "thermics" = determine_reaction_thermics(reaction), "thermoUpper" = reaction.rate_up_lim, "minPurity" = reaction.purity_min, "inversePurity" = "N/A", "tempMin" = reaction.required_temp, "explodeTemp" = reaction.overheat_temp, "reqContainer" = container_name, "subReactLen" = 1, "subReactIndex" = 1)
|
||||
|
||||
//If we do have a product then we find it
|
||||
else
|
||||
//Find out if we have multiple reactions for the same product
|
||||
var/datum/reagent/primary_reagent = find_reagent_object_from_type(reaction.results[1])//We use the first product - though it might be worth changing this
|
||||
//If we're syncing from the beaker
|
||||
var/list/sub_reactions = list()
|
||||
if(ui_beaker_sync && reaction_list)
|
||||
for(var/_ongoing_eq in reaction_list)
|
||||
var/datum/equilibrium/ongoing_eq = _ongoing_eq
|
||||
var/ongoing_r = ongoing_eq.reaction
|
||||
sub_reactions += ongoing_r
|
||||
else
|
||||
sub_reactions = get_recipe_from_reagent_product(primary_reagent.type)
|
||||
var/sub_reaction_length = length(sub_reactions)
|
||||
var/i = 1
|
||||
for(var/datum/chemical_reaction/sub_reaction in sub_reactions)
|
||||
if(sub_reaction.type == reaction.type)
|
||||
ui_reaction_index = i //update our index
|
||||
break
|
||||
i += 1
|
||||
data["reagent_mode_recipe"] = list("name" = primary_reagent.name, "id" = reaction.type, "hasProduct" = has_product, "reagentCol" = primary_reagent.color, "thermodynamics" = generate_thermodynamic_profile(reaction), "explosive" = generate_explosive_profile(reaction), "lowerpH" = reaction.optimal_ph_min, "upperpH" = reaction.optimal_ph_max, "thermics" = determine_reaction_thermics(reaction), "thermoUpper" = reaction.rate_up_lim, "minPurity" = reaction.purity_min, "inversePurity" = primary_reagent.inverse_chem_val, "tempMin" = reaction.required_temp, "explodeTemp" = reaction.overheat_temp, "reqContainer" = container_name, "subReactLen" = sub_reaction_length, "subReactIndex" = ui_reaction_index)
|
||||
|
||||
//Results sweep
|
||||
var/has_reagent = "default"
|
||||
for(var/_reagent in reaction.results)
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(_reagent)
|
||||
if(has_reagent(_reagent))
|
||||
has_reagent = "green"
|
||||
data["reagent_mode_recipe"]["products"] += list(list("name" = reagent.name, "id" = reagent.type, "ratio" = reaction.results[reagent.type], "hasReagentCol" = has_reagent))
|
||||
|
||||
//Reactant sweep
|
||||
for(var/_reagent in reaction.required_reagents)
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(_reagent)
|
||||
var/color_r = "default" //If the holder is missing the reagent, it's displayed in orange
|
||||
if(has_reagent(reagent.type))
|
||||
color_r = "green" //It's green if it's present
|
||||
var/tooltip
|
||||
var/tooltip_bool = FALSE
|
||||
var/list/sub_reactions = get_recipe_from_reagent_product(reagent.type)
|
||||
//Get sub reaction possibilities, but ignore ones that need a specific holder atom
|
||||
var/sub_index = 0
|
||||
for(var/datum/chemical_reaction/sub_reaction as anything in sub_reactions)
|
||||
if(sub_reaction.required_container)//So we don't have slime reactions confusing things
|
||||
sub_index++
|
||||
continue
|
||||
sub_index++
|
||||
break
|
||||
if(sub_index)
|
||||
var/datum/chemical_reaction/sub_reaction = sub_reactions[sub_index]
|
||||
//Subreactions sweep (if any)
|
||||
for(var/_sub_reagent in sub_reaction.required_reagents)
|
||||
var/datum/reagent/sub_reagent = find_reagent_object_from_type(_sub_reagent)
|
||||
tooltip += "[sub_reaction.required_reagents[_sub_reagent]]u [sub_reagent.name]\n" //I forgot the better way of doing this - fix this after this works
|
||||
tooltip_bool = TRUE
|
||||
data["reagent_mode_recipe"]["reactants"] += list(list("name" = reagent.name, "id" = reagent.type, "ratio" = reaction.required_reagents[reagent.type], "color" = color_r, "tooltipBool" = tooltip_bool, "tooltip" = tooltip))
|
||||
|
||||
//Catalyst sweep
|
||||
for(var/_reagent in reaction.required_catalysts)
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(_reagent)
|
||||
var/color_r = "default"
|
||||
if(has_reagent(reagent.type))
|
||||
color_r = "green"
|
||||
var/tooltip
|
||||
var/tooltip_bool = FALSE
|
||||
var/list/sub_reactions = get_recipe_from_reagent_product(reagent.type)
|
||||
if(length(sub_reactions))
|
||||
var/datum/chemical_reaction/sub_reaction = sub_reactions[1]
|
||||
//Subreactions sweep (if any)
|
||||
for(var/_sub_reagent in sub_reaction.required_reagents)
|
||||
var/datum/reagent/sub_reagent = find_reagent_object_from_type(_sub_reagent)
|
||||
tooltip += "[sub_reaction.required_reagents[_sub_reagent]]u [sub_reagent.name]\n" //I forgot the better way of doing this - fix this after this works
|
||||
tooltip_bool = TRUE
|
||||
data["reagent_mode_recipe"]["catalysts"] += list(list("name" = reagent.name, "id" = reagent.type, "ratio" = reaction.required_catalysts[reagent.type], "color" = color_r, "tooltipBool" = tooltip_bool, "tooltip" = tooltip))
|
||||
data["reagent_mode_recipe"]["isColdRecipe"] = reaction.is_cold_recipe
|
||||
|
||||
return data
|
||||
|
||||
/datum/reagents/ui_static_data(mob/user)
|
||||
var/data = list()
|
||||
//Use GLOB list - saves processing
|
||||
data["master_reaction_list"] = GLOB.chemical_reactions_results_lookup_list
|
||||
data["bitflags"] = list()
|
||||
data["bitflags"]["BRUTE"] = REACTION_TAG_BRUTE
|
||||
data["bitflags"]["BURN"] = REACTION_TAG_BURN
|
||||
data["bitflags"]["TOXIN"] = REACTION_TAG_TOXIN
|
||||
data["bitflags"]["OXY"] = REACTION_TAG_OXY
|
||||
data["bitflags"]["CLONE"] = REACTION_TAG_CLONE
|
||||
data["bitflags"]["HEALING"] = REACTION_TAG_HEALING
|
||||
data["bitflags"]["DAMAGING"] = REACTION_TAG_DAMAGING
|
||||
data["bitflags"]["EXPLOSIVE"] = REACTION_TAG_EXPLOSIVE
|
||||
data["bitflags"]["OTHER"] = REACTION_TAG_OTHER
|
||||
data["bitflags"]["DANGEROUS"] = REACTION_TAG_DANGEROUS
|
||||
data["bitflags"]["EASY"] = REACTION_TAG_EASY
|
||||
data["bitflags"]["MODERATE"] = REACTION_TAG_MODERATE
|
||||
data["bitflags"]["HARD"] = REACTION_TAG_HARD
|
||||
data["bitflags"]["ORGAN"] = REACTION_TAG_ORGAN
|
||||
data["bitflags"]["DRINK"] = REACTION_TAG_DRINK
|
||||
data["bitflags"]["FOOD"] = REACTION_TAG_FOOD
|
||||
data["bitflags"]["SLIME"] = REACTION_TAG_SLIME
|
||||
data["bitflags"]["DRUG"] = REACTION_TAG_DRUG
|
||||
data["bitflags"]["UNIQUE"] = REACTION_TAG_UNIQUE
|
||||
data["bitflags"]["CHEMICAL"] = REACTION_TAG_CHEMICAL
|
||||
data["bitflags"]["PLANT"] = REACTION_TAG_PLANT
|
||||
data["bitflags"]["COMPETITIVE"] = REACTION_TAG_COMPETITIVE
|
||||
|
||||
return data
|
||||
|
||||
/* Returns a reaction type by index from an input reagent type
|
||||
* i.e. the input reagent's associated reactions are found, and the index determines which one to return
|
||||
* If the index is out of range, it is set to 1
|
||||
*/
|
||||
/datum/reagents/proc/get_reaction_from_indexed_possibilities(path, index = null)
|
||||
if(index)
|
||||
ui_reaction_index = index
|
||||
var/list/sub_reactions = get_recipe_from_reagent_product(path)
|
||||
if(!length(sub_reactions))
|
||||
to_chat(usr, "There is no recipe associated with this product.")
|
||||
return FALSE
|
||||
if(ui_reaction_index > length(sub_reactions))
|
||||
ui_reaction_index = 1
|
||||
var/datum/chemical_reaction/reaction = sub_reactions[ui_reaction_index]
|
||||
return reaction.type
|
||||
|
||||
/datum/reagents/ui_act(action, params)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
switch(action)
|
||||
if("find_reagent_reaction")
|
||||
ui_reaction_id = get_reaction_from_indexed_possibilities(text2path(params["id"]))
|
||||
return TRUE
|
||||
if("reagent_click")
|
||||
ui_reagent_id = text2path(params["id"])
|
||||
return TRUE
|
||||
if("recipe_click")
|
||||
ui_reaction_id = text2path(params["id"])
|
||||
return TRUE
|
||||
if("search_reagents")
|
||||
var/input_reagent = (input("Enter the name of any reagent", "Input") as text|null)
|
||||
input_reagent = get_reagent_type_from_product_string(input_reagent) //from string to type
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(input_reagent)
|
||||
if(!reagent)
|
||||
to_chat(usr, "Could not find reagent!")
|
||||
return FALSE
|
||||
ui_reagent_id = reagent.type
|
||||
return TRUE
|
||||
if("search_recipe")
|
||||
var/input_reagent = (input("Enter the name of product reagent", "Input") as text|null)
|
||||
input_reagent = get_reagent_type_from_product_string(input_reagent) //from string to type
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(input_reagent)
|
||||
if(!reagent)
|
||||
to_chat(usr, "Could not find product reagent!")
|
||||
return
|
||||
ui_reaction_id = get_reaction_from_indexed_possibilities(reagent.type)
|
||||
return TRUE
|
||||
if("increment_index")
|
||||
ui_reaction_index += 1
|
||||
if(!ui_beaker_sync || !reaction_list)
|
||||
ui_reaction_id = get_reaction_from_indexed_possibilities(get_reagent_type_from_product_string(params["id"]))
|
||||
return TRUE
|
||||
if("reduce_index")
|
||||
if(ui_reaction_index == 1)
|
||||
return
|
||||
ui_reaction_index -= 1
|
||||
if(!ui_beaker_sync || !reaction_list)
|
||||
ui_reaction_id = get_reaction_from_indexed_possibilities(get_reagent_type_from_product_string(params["id"]))
|
||||
return TRUE
|
||||
if("beaker_sync")
|
||||
ui_beaker_sync = !ui_beaker_sync
|
||||
return TRUE
|
||||
if("toggle_tag_brute")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_BRUTE
|
||||
return TRUE
|
||||
if("toggle_tag_burn")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_BURN
|
||||
return TRUE
|
||||
if("toggle_tag_toxin")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_TOXIN
|
||||
return TRUE
|
||||
if("toggle_tag_oxy")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_OXY
|
||||
return TRUE
|
||||
if("toggle_tag_clone")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_CLONE
|
||||
return TRUE
|
||||
if("toggle_tag_healing")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_HEALING
|
||||
return TRUE
|
||||
if("toggle_tag_damaging")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_DAMAGING
|
||||
return TRUE
|
||||
if("toggle_tag_explosive")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_EXPLOSIVE
|
||||
return TRUE
|
||||
if("toggle_tag_other")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_OTHER
|
||||
return TRUE
|
||||
if("toggle_tag_easy")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_EASY
|
||||
return TRUE
|
||||
if("toggle_tag_moderate")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_MODERATE
|
||||
return TRUE
|
||||
if("toggle_tag_hard")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_HARD
|
||||
return TRUE
|
||||
if("toggle_tag_organ")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_ORGAN
|
||||
return TRUE
|
||||
if("toggle_tag_drink")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_DRINK
|
||||
return TRUE
|
||||
if("toggle_tag_food")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_FOOD
|
||||
return TRUE
|
||||
if("toggle_tag_dangerous")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_DANGEROUS
|
||||
return TRUE
|
||||
if("toggle_tag_slime")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_SLIME
|
||||
return TRUE
|
||||
if("toggle_tag_drug")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_DRUG
|
||||
return TRUE
|
||||
if("toggle_tag_unique")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_UNIQUE
|
||||
return TRUE
|
||||
if("toggle_tag_chemical")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_CHEMICAL
|
||||
return TRUE
|
||||
if("toggle_tag_plant")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_PLANT
|
||||
return TRUE
|
||||
if("toggle_tag_competitive")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_COMPETITIVE
|
||||
return TRUE
|
||||
if("update_ui")
|
||||
return TRUE
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
@@ -1399,19 +1909,3 @@
|
||||
qdel(reagents)
|
||||
reagents = new /datum/reagents(max_vol, flags)
|
||||
reagents.my_atom = src
|
||||
|
||||
/proc/get_random_reagent_id() // Returns a random reagent ID minus blacklisted reagents
|
||||
var/static/list/random_reagents = list()
|
||||
if(!random_reagents.len)
|
||||
for(var/thing in subtypesof(/datum/reagent))
|
||||
var/datum/reagent/reagent = thing
|
||||
if(initial(reagent.chemical_flags) & REAGENT_CAN_BE_SYNTHESIZED)
|
||||
random_reagents += reagent
|
||||
var/picked_reagent = pick(random_reagents)
|
||||
return picked_reagent
|
||||
|
||||
/proc/get_chem_id(chem_name)
|
||||
for(var/entry in GLOB.chemical_reagents_list)
|
||||
var/datum/reagent/reagent = GLOB.chemical_reagents_list[entry]
|
||||
if(ckey(chem_name) == ckey(lowertext(reagent.name)))
|
||||
return entry
|
||||
|
||||
@@ -269,11 +269,17 @@
|
||||
var/chemname = temp.name
|
||||
if(is_hallucinating && prob(5))
|
||||
chemname = "[pick_list_replacements("hallucination.json", "chemicals")]"
|
||||
chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name), "pH" = temp.ph, "pHCol" = ConvertpHToCol(temp.ph))))
|
||||
chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name), "pH" = temp.ph, "pHCol" = convert_ph_to_readable_color(temp.ph))))
|
||||
data["chemicals"] = chemicals
|
||||
data["recipes"] = saved_recipes
|
||||
|
||||
data["recordingRecipe"] = recording_recipe
|
||||
data["recipeReagents"] = list()
|
||||
if(beaker?.reagents.ui_reaction_id)
|
||||
var/datum/chemical_reaction/reaction = get_chemical_reaction(beaker.reagents.ui_reaction_id)
|
||||
for(var/_reagent in reaction.required_reagents)
|
||||
var/datum/reagent/reagent = find_reagent_object_from_type(_reagent)
|
||||
data["recipeReagents"] += ckey(reagent.name)
|
||||
return data
|
||||
|
||||
/obj/machinery/chem_dispenser/ui_act(action, params)
|
||||
@@ -392,6 +398,9 @@
|
||||
customTransferAmount = clamp(input(usr, "Please enter your desired transfer amount.", "Transfer amount", 0) as num|null, 0, beaker.volume)
|
||||
transferAmounts += customTransferAmount
|
||||
//SKYRAT EDIT ADDITION END
|
||||
if("reaction_lookup")
|
||||
if(beaker)
|
||||
beaker.reagents.ui_interact(usr)
|
||||
|
||||
/obj/machinery/chem_dispenser/attackby(obj/item/I, mob/living/user, params)
|
||||
if(default_unfasten_wrench(user, I))
|
||||
@@ -472,32 +481,6 @@
|
||||
update_appearance()
|
||||
return TRUE
|
||||
|
||||
//Converts the pH into a tgui readable color
|
||||
/obj/machinery/chem_dispenser/proc/ConvertpHToCol(pH)
|
||||
switch(pH)
|
||||
if(-INFINITY to 1)
|
||||
return "red"
|
||||
if(1 to 2)
|
||||
return "orange"
|
||||
if(2 to 3)
|
||||
return "average"
|
||||
if(3 to 4)
|
||||
return "yellow"
|
||||
if(4 to 5)
|
||||
return "olive"
|
||||
if(5 to 6)
|
||||
return "good"
|
||||
if(6 to 8)
|
||||
return "green"
|
||||
if(8 to 9.5)
|
||||
return "teal"
|
||||
if(9.5 to 11)
|
||||
return "blue"
|
||||
if(11 to 12.5)
|
||||
return "violet"
|
||||
if(12.5 to INFINITY)
|
||||
return "purple"
|
||||
|
||||
/obj/machinery/chem_dispenser/on_deconstruction()
|
||||
cell = null
|
||||
if(beaker)
|
||||
|
||||
@@ -29,15 +29,8 @@
|
||||
beaker = null
|
||||
. = TRUE
|
||||
if("input")
|
||||
var/input_reagent = replacetext(lowertext(input("Enter the name of any reagent", "Input") as text|null), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name
|
||||
|
||||
if (isnull(input_reagent))
|
||||
return
|
||||
|
||||
if(shortcuts[input_reagent])
|
||||
input_reagent = shortcuts[input_reagent]
|
||||
else
|
||||
input_reagent = find_reagent(input_reagent)
|
||||
var/input_reagent = (input("Enter the name of any reagent", "Input") as text|null)
|
||||
input_reagent = get_reagent_type_from_product_string(input_reagent) //from string to type
|
||||
if(!input_reagent)
|
||||
say("REAGENT NOT FOUND")
|
||||
return
|
||||
|
||||
@@ -74,7 +74,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
var/list/reagent_removal_skip_list = list()
|
||||
///The set of exposure methods this penetrates skin with.
|
||||
var/penetrates_skin = VAPOR
|
||||
/// See fermi_readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_INVISIBLE, REAGENT_SNEAKYNAME, REAGENT_SPLITRETAINVOL, REAGENT_CANSYNTH
|
||||
/// See fermi_readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_INVISIBLE, REAGENT_SNEAKYNAME, REAGENT_SPLITRETAINVOL, REAGENT_CANSYNTH, REAGENT_IMPURE
|
||||
var/chemical_flags = NONE
|
||||
///impure chem values (see fermi_readme.dm for more details on impure/inverse/failed mechanics):
|
||||
/// What chemical path is made when metabolised as a function of purity
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
///These affect medicines
|
||||
/datum/reagent/catalyst_agent/speed/medicine
|
||||
name = "Palladium synthate catalyst"
|
||||
description = "This catalyst reagent will speed up all medicine reactions that it shares a beaker with by a dramatic amount."
|
||||
target_reagent_type = /datum/reagent/medicine
|
||||
modifier = 2
|
||||
ph = 2 //drift towards acidity
|
||||
|
||||
@@ -21,8 +21,11 @@
|
||||
description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another."
|
||||
color = "#fbc314"
|
||||
ph = 0
|
||||
///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will decrease by 0.5
|
||||
var/strength = 30
|
||||
impure_chem = null
|
||||
inverse_chem = null
|
||||
failed_chem = null
|
||||
///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will decrease by 0.4
|
||||
var/strength =30
|
||||
|
||||
//Consumes self on addition and shifts ph
|
||||
/datum/reagent/reaction_agent/acidic_buffer/intercept_reagents_transfer(datum/reagents/target, amount)
|
||||
@@ -39,13 +42,16 @@
|
||||
target.my_atom.audible_message("<span class='warning'>The beaker fizzes as the ph changes!</span>")
|
||||
playsound(target.my_atom, 'sound/chemistry/bufferadd.ogg', 50, TRUE)
|
||||
holder.remove_reagent(type, amount)
|
||||
|
||||
|
||||
/datum/reagent/reaction_agent/basic_buffer
|
||||
name = "Strong basic buffer"
|
||||
description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another."
|
||||
color = "#3853a4"
|
||||
ph = 14
|
||||
///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will increase by 0.5
|
||||
impure_chem = null
|
||||
inverse_chem = null
|
||||
failed_chem = null
|
||||
///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will increase by 0.4
|
||||
var/strength = 30
|
||||
|
||||
/datum/reagent/reaction_agent/basic_buffer/intercept_reagents_transfer(datum/reagents/target, amount)
|
||||
@@ -104,7 +110,7 @@
|
||||
color = "#e61f82"
|
||||
///How much the reaction speed is sped up by - for 5u added to 100u, an additional step of 1 will be done up to a max of 2x
|
||||
var/strength = 20
|
||||
|
||||
|
||||
|
||||
/datum/reagent/reaction_agent/speed_agent/intercept_reagents_transfer(datum/reagents/target, amount)
|
||||
. = ..()
|
||||
|
||||
@@ -55,6 +55,9 @@
|
||||
var/purity_min = 0.15
|
||||
/// bitflags for clear conversions; REACTION_CLEAR_IMPURE, REACTION_CLEAR_INVERSE, REACTION_CLEAR_RETAIN, REACTION_INSTANT
|
||||
var/reaction_flags = NONE
|
||||
///Tagging vars
|
||||
///A bitflag var for tagging reagents for the reagent loopup functon
|
||||
var/reaction_tags = NONE
|
||||
|
||||
/datum/chemical_reaction/New()
|
||||
. = ..()
|
||||
|
||||
@@ -5,28 +5,34 @@
|
||||
results = list(/datum/reagent/medicine/c2/helbital = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/fluorine = 1, /datum/reagent/carbon = 1)
|
||||
mix_message = "The mixture turns into a thick, yellow powder."
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE
|
||||
|
||||
/datum/chemical_reaction/medicine/libital
|
||||
results = list(/datum/reagent/medicine/c2/libital = 3)
|
||||
required_reagents = list(/datum/reagent/phenol = 1, /datum/reagent/oxygen = 1, /datum/reagent/nitrogen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE
|
||||
|
||||
/datum/chemical_reaction/medicine/probital
|
||||
results = list(/datum/reagent/medicine/c2/probital = 4)
|
||||
required_reagents = list(/datum/reagent/copper = 1, /datum/reagent/acetone = 2, /datum/reagent/phosphorus = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE
|
||||
|
||||
/*****BURN*****/
|
||||
|
||||
/datum/chemical_reaction/medicine/lenturi
|
||||
results = list(/datum/reagent/medicine/c2/lenturi = 5)
|
||||
required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/silver = 1, /datum/reagent/sulfur = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/medicine/aiuri
|
||||
results = list(/datum/reagent/medicine/c2/aiuri = 4)
|
||||
required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/hydrogen = 2)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/medicine/hercuri
|
||||
results = list(/datum/reagent/medicine/c2/hercuri = 5)
|
||||
required_reagents = list(/datum/reagent/cryostylane = 3, /datum/reagent/bromine = 1, /datum/reagent/lye = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BURN
|
||||
required_temp = 47
|
||||
is_cold_recipe = TRUE
|
||||
optimal_temp = 10
|
||||
@@ -40,28 +46,34 @@
|
||||
required_reagents = list(/datum/reagent/hydrogen = 1, /datum/reagent/fluorine = 1, /datum/reagent/fuel/oil = 1)
|
||||
required_temp = 370
|
||||
mix_message = "The mixture rapidly turns into a dense pink liquid."
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OXY
|
||||
|
||||
/datum/chemical_reaction/medicine/tirimol
|
||||
results = list(/datum/reagent/medicine/c2/tirimol = 5)
|
||||
required_reagents = list(/datum/reagent/nitrogen = 3, /datum/reagent/acetone = 2)
|
||||
required_catalysts = list(/datum/reagent/toxin/acid = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OXY
|
||||
|
||||
/*****TOX*****/
|
||||
|
||||
/datum/chemical_reaction/medicine/seiver
|
||||
results = list(/datum/reagent/medicine/c2/seiver = 3)
|
||||
required_reagents = list(/datum/reagent/nitrogen = 1, /datum/reagent/potassium = 1, /datum/reagent/aluminium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/medicine/multiver
|
||||
results = list(/datum/reagent/medicine/c2/multiver = 2)
|
||||
required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/consumable/salt = 1)
|
||||
mix_message = "The mixture yields a fine black powder."
|
||||
required_temp = 380
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_PLANT | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/medicine/syriniver
|
||||
results = list(/datum/reagent/medicine/c2/syriniver = 5)
|
||||
required_reagents = list(/datum/reagent/sulfur = 1, /datum/reagent/fluorine = 1, /datum/reagent/toxin = 1, /datum/reagent/nitrous_oxide = 2)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/medicine/penthrite
|
||||
results = list(/datum/reagent/medicine/c2/penthrite = 3)
|
||||
required_reagents = list(/datum/reagent/pentaerythritol = 1, /datum/reagent/acetone = 1, /datum/reagent/toxin/acid/nitracid = 1 , /datum/reagent/wittel = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_TOXIN
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
required_reagents = list(/datum/reagent/medicine/c2/libital = 3, /datum/reagent/medicine/c2/probital = 4, /datum/reagent/toxin/plasma = 2)
|
||||
mix_message = "The reaction evaporates slightly as the mixture solidifies"
|
||||
mix_sound = 'sound/chemistry/catalyst.ogg'
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_UNIQUE | REACTION_TAG_CHEMICAL
|
||||
required_temp = 320
|
||||
optimal_temp = 600
|
||||
overheat_temp = 800
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
/datum/chemical_reaction/space_drugs
|
||||
results = list(/datum/reagent/drug/space_drugs = 3)
|
||||
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG
|
||||
|
||||
/datum/chemical_reaction/crank
|
||||
results = list(/datum/reagent/drug/crank = 5)
|
||||
required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/ammonia = 1, /datum/reagent/lithium = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/fuel = 1)
|
||||
mix_message = "The mixture violently reacts, leaving behind a few crystalline shards."
|
||||
required_temp = 390
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG
|
||||
|
||||
/datum/chemical_reaction/krokodil
|
||||
results = list(/datum/reagent/drug/krokodil = 6)
|
||||
required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/medicine/morphine = 1, /datum/reagent/space_cleaner = 1, /datum/reagent/potassium = 1, /datum/reagent/phosphorus = 1, /datum/reagent/fuel = 1)
|
||||
mix_message = "The mixture dries into a pale blue powder."
|
||||
required_temp = 380
|
||||
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG
|
||||
|
||||
/datum/chemical_reaction/methamphetamine
|
||||
results = list(/datum/reagent/drug/methamphetamine = 4)
|
||||
@@ -31,6 +33,7 @@
|
||||
rate_up_lim = 12.5
|
||||
purity_min = 0.5 //100u will natrually just dip under this w/ no buffer
|
||||
reaction_flags = REACTION_HEAT_ARBITARY //Heating up is arbitary because of submechanics of this reaction.
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DRUG | REACTION_TAG_DANGEROUS
|
||||
|
||||
//The less pure it is, the faster it heats up. tg please don't hate me for making your meth even more dangerous
|
||||
/datum/chemical_reaction/methamphetamine/reaction_step(datum/equilibrium/reaction, datum/reagents/holder, delta_t, delta_ph, step_reaction_vol)
|
||||
@@ -84,34 +87,42 @@
|
||||
results = list(/datum/reagent/drug/bath_salts = 7)
|
||||
required_reagents = list(/datum/reagent/toxin/bad_food = 1, /datum/reagent/saltpetre = 1, /datum/reagent/consumable/nutriment = 1, /datum/reagent/space_cleaner = 1, /datum/reagent/consumable/enzyme = 1, /datum/reagent/consumable/tea = 1, /datum/reagent/mercury = 1)
|
||||
required_temp = 374
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING
|
||||
|
||||
/datum/chemical_reaction/aranesp
|
||||
results = list(/datum/reagent/drug/aranesp = 3)
|
||||
required_reagents = list(/datum/reagent/medicine/epinephrine = 1, /datum/reagent/medicine/atropine = 1, /datum/reagent/medicine/morphine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_TOXIN | REACTION_TAG_DAMAGING
|
||||
|
||||
/datum/chemical_reaction/happiness
|
||||
results = list(/datum/reagent/drug/happiness = 4)
|
||||
required_reagents = list(/datum/reagent/nitrous_oxide = 2, /datum/reagent/medicine/epinephrine = 1, /datum/reagent/consumable/ethanol = 1)
|
||||
required_catalysts = list(/datum/reagent/toxin/plasma = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING
|
||||
|
||||
/datum/chemical_reaction/pumpup
|
||||
results = list(/datum/reagent/drug/pumpup = 5)
|
||||
required_reagents = list(/datum/reagent/medicine/epinephrine = 2, /datum/reagent/consumable/coffee = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_TOXIN | REACTION_TAG_DAMAGING
|
||||
|
||||
/datum/chemical_reaction/maint_tar1
|
||||
results = list(/datum/reagent/toxin/acid = 1 ,/datum/reagent/drug/maint/tar = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/yuck = 1 , /datum/reagent/fuel = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_TOXIN | REACTION_TAG_DAMAGING
|
||||
|
||||
/datum/chemical_reaction/maint_tar2
|
||||
results = list(/datum/reagent/toxin/acid = 1 ,/datum/reagent/drug/maint/tar = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/consumable/enzyme = 3 , /datum/reagent/fuel = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_TOXIN | REACTION_TAG_DAMAGING
|
||||
|
||||
/datum/chemical_reaction/maint_sludge
|
||||
results = list(/datum/reagent/drug/maint/sludge = 1)
|
||||
required_reagents = list(/datum/reagent/drug/maint/tar = 3 , /datum/reagent/toxin/acid/fluacid = 1)
|
||||
required_catalysts = list(/datum/reagent/hydrogen_peroxide = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_TOXIN | REACTION_TAG_DAMAGING
|
||||
|
||||
/datum/chemical_reaction/maint_powder
|
||||
results = list(/datum/reagent/drug/maint/powder = 1)
|
||||
required_reagents = list(/datum/reagent/drug/maint/sludge = 6 , /datum/reagent/toxin/acid/nitracid = 1 , /datum/reagent/consumable/enzyme = 1)
|
||||
required_catalysts = list(/datum/reagent/acetone_oxide = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING
|
||||
|
||||
@@ -7,166 +7,204 @@
|
||||
ph_exponent_factor = 0.8
|
||||
purity_min = 0.1
|
||||
rate_up_lim = 35
|
||||
reaction_tags = REACTION_TAG_HEALING | REACTION_TAG_EASY
|
||||
|
||||
/datum/chemical_reaction/medicine/leporazine
|
||||
results = list(/datum/reagent/medicine/leporazine = 2)
|
||||
required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/copper = 1)
|
||||
required_catalysts = list(/datum/reagent/toxin/plasma = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/rezadone
|
||||
results = list(/datum/reagent/medicine/rezadone = 3)
|
||||
required_reagents = list(/datum/reagent/toxin/carpotoxin = 1, /datum/reagent/cryptobiolin = 1, /datum/reagent/copper = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_CLONE
|
||||
|
||||
/datum/chemical_reaction/medicine/spaceacillin
|
||||
results = list(/datum/reagent/medicine/spaceacillin = 2)
|
||||
required_reagents = list(/datum/reagent/cryptobiolin = 1, /datum/reagent/medicine/epinephrine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/oculine
|
||||
results = list(/datum/reagent/medicine/oculine = 3)
|
||||
required_reagents = list(/datum/reagent/medicine/c2/multiver = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1)
|
||||
mix_message = "The mixture bubbles noticeably and becomes a dark grey color!"
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_ORGAN
|
||||
|
||||
/datum/chemical_reaction/medicine/inacusiate
|
||||
results = list(/datum/reagent/medicine/inacusiate = 2)
|
||||
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/c2/multiver = 1)
|
||||
mix_message = "The mixture sputters loudly and becomes a light grey color!"
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_ORGAN
|
||||
|
||||
/datum/chemical_reaction/medicine/synaptizine
|
||||
results = list(/datum/reagent/medicine/synaptizine = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1, /datum/reagent/water = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/salglu_solution
|
||||
results = list(/datum/reagent/medicine/salglu_solution = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/salt = 1, /datum/reagent/water = 1, /datum/reagent/consumable/sugar = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_ORGAN
|
||||
|
||||
/datum/chemical_reaction/medicine/mine_salve
|
||||
results = list(/datum/reagent/medicine/mine_salve = 3)
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 1, /datum/reagent/water = 1, /datum/reagent/iron = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/medicine/mine_salve2
|
||||
results = list(/datum/reagent/medicine/mine_salve = 15)
|
||||
required_reagents = list(/datum/reagent/toxin/plasma = 5, /datum/reagent/iron = 5, /datum/reagent/consumable/sugar = 1) // A sheet of plasma, a twinkie and a sheet of metal makes four of these
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/medicine/synthflesh
|
||||
results = list(/datum/reagent/medicine/c2/synthflesh = 3)
|
||||
required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/c2/libital = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/medicine/calomel
|
||||
results = list(/datum/reagent/medicine/calomel = 2)
|
||||
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/chlorine = 1)
|
||||
required_temp = 374
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/potass_iodide
|
||||
results = list(/datum/reagent/medicine/potass_iodide = 2)
|
||||
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/iodine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/pen_acid
|
||||
results = list(/datum/reagent/medicine/pen_acid = 6)
|
||||
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/chlorine = 1, /datum/reagent/ammonia = 1, /datum/reagent/toxin/formaldehyde = 1, /datum/reagent/sodium = 1, /datum/reagent/toxin/cyanide = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/sal_acid
|
||||
results = list(/datum/reagent/medicine/sal_acid = 5)
|
||||
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/phenol = 1, /datum/reagent/carbon = 1, /datum/reagent/oxygen = 1, /datum/reagent/toxin/acid = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE
|
||||
|
||||
/datum/chemical_reaction/medicine/oxandrolone
|
||||
results = list(/datum/reagent/medicine/oxandrolone = 6)
|
||||
required_reagents = list(/datum/reagent/carbon = 3, /datum/reagent/phenol = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/medicine/salbutamol
|
||||
results = list(/datum/reagent/medicine/salbutamol = 5)
|
||||
required_reagents = list(/datum/reagent/medicine/sal_acid = 1, /datum/reagent/lithium = 1, /datum/reagent/aluminium = 1, /datum/reagent/bromine = 1, /datum/reagent/ammonia = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OXY
|
||||
|
||||
/datum/chemical_reaction/medicine/ephedrine
|
||||
results = list(/datum/reagent/medicine/ephedrine = 4)
|
||||
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/fuel/oil = 1, /datum/reagent/hydrogen = 1, /datum/reagent/diethylamine = 1)
|
||||
mix_message = "The solution fizzes and gives off toxic fumes."
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/diphenhydramine
|
||||
results = list(/datum/reagent/medicine/diphenhydramine = 4)
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 1, /datum/reagent/carbon = 1, /datum/reagent/bromine = 1, /datum/reagent/diethylamine = 1, /datum/reagent/consumable/ethanol = 1)
|
||||
mix_message = "The mixture dries into a pale blue powder."
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/atropine
|
||||
results = list(/datum/reagent/medicine/atropine = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/phenol = 1, /datum/reagent/toxin/acid = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE |REACTION_TAG_BURN | REACTION_TAG_TOXIN | REACTION_TAG_OXY
|
||||
|
||||
/datum/chemical_reaction/medicine/epinephrine
|
||||
results = list(/datum/reagent/medicine/epinephrine = 6)
|
||||
required_reagents = list(/datum/reagent/phenol = 1, /datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1, /datum/reagent/hydrogen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE |REACTION_TAG_BURN | REACTION_TAG_TOXIN | REACTION_TAG_OXY | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/strange_reagent
|
||||
results = list(/datum/reagent/medicine/strange_reagent = 3)
|
||||
required_reagents = list(/datum/reagent/medicine/omnizine = 1, /datum/reagent/water/holywater = 1, /datum/reagent/toxin/mutagen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/strange_reagent/alt
|
||||
results = list(/datum/reagent/medicine/strange_reagent = 2)
|
||||
required_reagents = list(/datum/reagent/medicine/omnizine/protozine = 1, /datum/reagent/water/holywater = 1, /datum/reagent/toxin/mutagen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_PLANT | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/mannitol
|
||||
results = list(/datum/reagent/medicine/mannitol = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/hydrogen = 1, /datum/reagent/water = 1)
|
||||
mix_message = "The solution slightly bubbles, becoming thicker."
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_ORGAN
|
||||
|
||||
/datum/chemical_reaction/medicine/neurine
|
||||
results = list(/datum/reagent/medicine/neurine = 3)
|
||||
required_reagents = list(/datum/reagent/medicine/mannitol = 1, /datum/reagent/acetone = 1, /datum/reagent/oxygen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_ORGAN
|
||||
|
||||
/datum/chemical_reaction/medicine/mutadone
|
||||
results = list(/datum/reagent/medicine/mutadone = 3)
|
||||
required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/acetone = 1, /datum/reagent/bromine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/antihol
|
||||
results = list(/datum/reagent/medicine/antihol = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/c2/multiver = 1, /datum/reagent/copper = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/cryoxadone
|
||||
results = list(/datum/reagent/medicine/cryoxadone = 3)
|
||||
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/acetone = 1, /datum/reagent/toxin/mutagen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_PLANT | REACTION_TAG_BRUTE |REACTION_TAG_BURN | REACTION_TAG_TOXIN | REACTION_TAG_OXY | REACTION_TAG_CLONE
|
||||
|
||||
/datum/chemical_reaction/medicine/pyroxadone
|
||||
results = list(/datum/reagent/medicine/pyroxadone = 2)
|
||||
required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/toxin/slimejelly = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE |REACTION_TAG_BURN | REACTION_TAG_TOXIN | REACTION_TAG_OXY | REACTION_TAG_CLONE
|
||||
|
||||
/datum/chemical_reaction/medicine/clonexadone
|
||||
results = list(/datum/reagent/medicine/clonexadone = 2)
|
||||
required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/sodium = 1)
|
||||
required_catalysts = list(/datum/reagent/toxin/plasma = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_CLONE
|
||||
|
||||
/datum/chemical_reaction/medicine/haloperidol
|
||||
results = list(/datum/reagent/medicine/haloperidol = 5)
|
||||
required_reagents = list(/datum/reagent/chlorine = 1, /datum/reagent/fluorine = 1, /datum/reagent/aluminium = 1, /datum/reagent/medicine/potass_iodide = 1, /datum/reagent/fuel/oil = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/regen_jelly
|
||||
results = list(/datum/reagent/medicine/regen_jelly = 2)
|
||||
required_reagents = list(/datum/reagent/medicine/omnizine = 1, /datum/reagent/toxin/slimejelly = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE |REACTION_TAG_BURN | REACTION_TAG_TOXIN | REACTION_TAG_OXY
|
||||
|
||||
/datum/chemical_reaction/medicine/higadrite
|
||||
results = list(/datum/reagent/medicine/higadrite = 3)
|
||||
required_reagents = list(/datum/reagent/phenol = 2, /datum/reagent/lithium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_ORGAN
|
||||
|
||||
/datum/chemical_reaction/medicine/morphine
|
||||
results = list(/datum/reagent/medicine/morphine = 2)
|
||||
required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1)
|
||||
required_temp = 480
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER | REACTION_TAG_DRUG
|
||||
|
||||
/datum/chemical_reaction/medicine/modafinil
|
||||
results = list(/datum/reagent/medicine/modafinil = 5)
|
||||
required_reagents = list(/datum/reagent/diethylamine = 1, /datum/reagent/ammonia = 1, /datum/reagent/phenol = 1, /datum/reagent/acetone = 1, /datum/reagent/toxin/acid = 1)
|
||||
required_catalysts = list(/datum/reagent/bromine = 1) // as close to the real world synthesis as possible
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/psicodine
|
||||
results = list(/datum/reagent/medicine/psicodine = 5)
|
||||
required_reagents = list( /datum/reagent/medicine/mannitol = 2, /datum/reagent/water = 2, /datum/reagent/impedrezene = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/medicine/granibitaluri
|
||||
results = list(/datum/reagent/medicine/granibitaluri = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/salt = 1, /datum/reagent/carbon = 1, /datum/reagent/toxin/acid = 1)
|
||||
required_catalysts = list(/datum/reagent/iron = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_BURN
|
||||
|
||||
///medical stacks
|
||||
|
||||
/datum/chemical_reaction/medicine/medsuture
|
||||
required_reagents = list(/datum/reagent/cellulose = 10, /datum/reagent/toxin/formaldehyde = 20, /datum/reagent/medicine/polypyr = 15) //This might be a bit much, reagent cost should be reviewed after implementation.
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE
|
||||
|
||||
/datum/chemical_reaction/medicine/medsuture/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -175,6 +213,7 @@
|
||||
|
||||
/datum/chemical_reaction/medicine/medmesh
|
||||
required_reagents = list(/datum/reagent/cellulose = 20, /datum/reagent/consumable/aloejuice = 20, /datum/reagent/space_cleaner/sterilizine = 10)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/medicine/medmesh/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -183,6 +222,7 @@
|
||||
|
||||
/datum/chemical_reaction/medicine/poultice
|
||||
required_reagents = list(/datum/reagent/toxin/bungotoxin = 20, /datum/reagent/cellulose = 20, /datum/reagent/consumable/aloejuice = 20)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/medicine/poultice/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
@@ -2,44 +2,54 @@
|
||||
/datum/chemical_reaction/sterilizine
|
||||
results = list(/datum/reagent/space_cleaner/sterilizine = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/c2/multiver = 1, /datum/reagent/chlorine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/lube
|
||||
results = list(/datum/reagent/lube = 4)
|
||||
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/spraytan
|
||||
results = list(/datum/reagent/spraytan = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/orangejuice = 1, /datum/reagent/fuel/oil = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/spraytan2
|
||||
results = list(/datum/reagent/spraytan = 2)
|
||||
required_reagents = list(/datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/cornoil = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/impedrezene
|
||||
results = list(/datum/reagent/impedrezene = 2)
|
||||
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_ORGAN
|
||||
|
||||
/datum/chemical_reaction/cryptobiolin
|
||||
results = list(/datum/reagent/cryptobiolin = 3)
|
||||
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/glycerol
|
||||
results = list(/datum/reagent/glycerol = 1)
|
||||
required_reagents = list(/datum/reagent/consumable/cornoil = 3, /datum/reagent/toxin/acid = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_EXPLOSIVE
|
||||
|
||||
/datum/chemical_reaction/sodiumchloride
|
||||
results = list(/datum/reagent/consumable/salt = 3)
|
||||
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_FOOD
|
||||
|
||||
/datum/chemical_reaction/stable_plasma
|
||||
results = list(/datum/reagent/stable_plasma = 1)
|
||||
required_reagents = list(/datum/reagent/toxin/plasma = 1)
|
||||
required_catalysts = list(/datum/reagent/stabilizing_agent = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/plasma_solidification
|
||||
required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/consumable/frostoil = 5, /datum/reagent/toxin/plasma = 20)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/plasma_solidification/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -50,6 +60,7 @@
|
||||
required_reagents = list(/datum/reagent/consumable/frostoil = 5, /datum/reagent/gold = 20, /datum/reagent/iron = 1)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/gold_solidification/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -60,6 +71,7 @@
|
||||
required_reagents = list(/datum/reagent/consumable/frostoil = 5, /datum/reagent/uranium = 20, /datum/reagent/potassium = 1)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/uranium_solidification/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -69,12 +81,14 @@
|
||||
/datum/chemical_reaction/capsaicincondensation
|
||||
results = list(/datum/reagent/consumable/condensedcapsaicin = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/ethanol = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/soapification
|
||||
required_reagents = list(/datum/reagent/liquidgibs = 10, /datum/reagent/lye = 10) // requires two scooped gib tiles
|
||||
required_temp = 374
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/soapification/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -84,8 +98,11 @@
|
||||
/datum/chemical_reaction/omegasoapification
|
||||
required_reagents = list(/datum/reagent/consumable/potato_juice = 10, /datum/reagent/consumable/ethanol/lizardwine = 10, /datum/reagent/monkey_powder = 10, /datum/reagent/drug/krokodil = 10, /datum/reagent/toxin/acid/nitracid = 10, /datum/reagent/baldium = 10, /datum/reagent/consumable/ethanol/hooch = 10, /datum/reagent/bluespace = 10, /datum/reagent/drug/pumpup = 10, /datum/reagent/consumable/space_cola = 10)
|
||||
required_temp = 999
|
||||
optimal_temp = 999
|
||||
overheat_temp = 1200
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/omegasoapification/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -97,6 +114,7 @@
|
||||
required_temp = 374
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/candlefication/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -107,6 +125,7 @@
|
||||
required_reagents = list(/datum/reagent/liquidgibs = 10, /datum/reagent/consumable/nutriment = 10, /datum/reagent/carbon = 10)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/meatification/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -118,6 +137,7 @@
|
||||
results = list(/datum/reagent/carbondioxide = 3)
|
||||
required_reagents = list(/datum/reagent/carbon = 1, /datum/reagent/oxygen = 2)
|
||||
required_temp = 777 // pure carbon isn't especially reactive.
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/nitrous_oxide
|
||||
results = list(/datum/reagent/nitrous_oxide = 5)
|
||||
@@ -129,6 +149,7 @@
|
||||
purity_min = 0.3
|
||||
thermic_constant = 35 //gives a bonus 15C wiggle room
|
||||
rate_up_lim = 25 //Give a chance to pull back
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/nitrous_oxide/overly_impure(datum/reagents/holder, datum/equilibrium/equilibrium)
|
||||
. = ..()
|
||||
@@ -146,6 +167,7 @@
|
||||
/datum/chemical_reaction/mulligan
|
||||
results = list(/datum/reagent/mulligan = 1)
|
||||
required_reagents = list(/datum/reagent/mutationtoxin/jelly = 1, /datum/reagent/toxin/mutagen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
|
||||
////////////////////////////////// VIROLOGY //////////////////////////////////////////
|
||||
@@ -296,6 +318,7 @@
|
||||
results = list(/datum/reagent/fluorosurfactant = 5)
|
||||
required_reagents = list(/datum/reagent/fluorine = 2, /datum/reagent/carbon = 2, /datum/reagent/toxin/acid = 1)
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/foam
|
||||
required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/water = 1)
|
||||
@@ -304,11 +327,13 @@
|
||||
|
||||
/datum/chemical_reaction/foam/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
holder.create_foam(/datum/effect_system/foam_spread,2*created_volume,notification="<span class='danger'>The solution spews out foam!</span>")
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/metalfoam
|
||||
required_reagents = list(/datum/reagent/aluminium = 3, /datum/reagent/foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/metalfoam/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
holder.create_foam(/datum/effect_system/foam_spread/metal,5*created_volume,1,"<span class='danger'>The solution spews out a metallic foam!</span>")
|
||||
@@ -317,6 +342,7 @@
|
||||
required_reagents = list(/datum/reagent/aluminium = 3, /datum/reagent/smart_foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1)
|
||||
mob_react = TRUE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/smart_foam/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
holder.create_foam(/datum/effect_system/foam_spread/metal/smart,5*created_volume,1,"<span class='danger'>The solution spews out metallic foam!</span>")
|
||||
@@ -325,6 +351,7 @@
|
||||
required_reagents = list(/datum/reagent/iron = 3, /datum/reagent/foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/ironfoam/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
holder.create_foam(/datum/effect_system/foam_spread/metal,5*created_volume,2,"<span class='danger'>The solution spews out a metallic foam!</span>")
|
||||
@@ -332,11 +359,13 @@
|
||||
/datum/chemical_reaction/foaming_agent
|
||||
results = list(/datum/reagent/foaming_agent = 1)
|
||||
required_reagents = list(/datum/reagent/lithium = 1, /datum/reagent/hydrogen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/smart_foaming_agent
|
||||
results = list(/datum/reagent/smart_foaming_agent = 3)
|
||||
required_reagents = list(/datum/reagent/foaming_agent = 3, /datum/reagent/acetone = 1, /datum/reagent/iron = 1)
|
||||
mix_message = "The solution mixes into a frothy metal foam and conforms to the walls of its container."
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
|
||||
/////////////////////////////// Cleaning and hydroponics /////////////////////////////////////////////////
|
||||
@@ -347,42 +376,51 @@
|
||||
optimal_ph_min = 1 // Lets increase our range for this basic chem
|
||||
optimal_ph_max = 12
|
||||
H_ion_release = -0.02 //handmade is more neutral
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/diethylamine
|
||||
results = list(/datum/reagent/diethylamine = 2)
|
||||
required_reagents = list (/datum/reagent/ammonia = 1, /datum/reagent/consumable/ethanol = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/space_cleaner
|
||||
results = list(/datum/reagent/space_cleaner = 2)
|
||||
required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/water = 1)
|
||||
rate_up_lim = 40
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/plantbgone
|
||||
results = list(/datum/reagent/toxin/plantbgone = 5)
|
||||
required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/water = 4)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/weedkiller
|
||||
results = list(/datum/reagent/toxin/plantbgone/weedkiller = 5)
|
||||
required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/ammonia = 4)
|
||||
H_ion_release = -0.05 // Push towards acidic
|
||||
H_ion_release = -0.05 // Push towards acidic
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/pestkiller
|
||||
results = list(/datum/reagent/toxin/pestkiller = 5)
|
||||
required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/consumable/ethanol = 4)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/drying_agent
|
||||
results = list(/datum/reagent/drying_agent = 3)
|
||||
required_reagents = list(/datum/reagent/stable_plasma = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/sodium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
//////////////////////////////////// Other goon stuff ///////////////////////////////////////////
|
||||
|
||||
/datum/chemical_reaction/acetone
|
||||
results = list(/datum/reagent/acetone = 3)
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/oxygen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/carpet
|
||||
results = list(/datum/reagent/carpet = 2)
|
||||
required_reagents = list(/datum/reagent/drug/space_drugs = 1, /datum/reagent/blood = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/carpet/black
|
||||
results = list(/datum/reagent/carpet/black = 2)
|
||||
@@ -427,15 +465,18 @@
|
||||
/datum/chemical_reaction/oil
|
||||
results = list(/datum/reagent/fuel/oil = 3)
|
||||
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/phenol
|
||||
results = list(/datum/reagent/phenol = 3)
|
||||
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/chlorine = 1, /datum/reagent/fuel/oil = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/ash
|
||||
results = list(/datum/reagent/ash = 1)
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 1)
|
||||
required_temp = 480
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/colorful_reagent
|
||||
results = list(/datum/reagent/colorful_reagent = 5)
|
||||
@@ -445,6 +486,7 @@
|
||||
required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/c2/synthflesh = 1, /datum/reagent/blood = 1)
|
||||
required_temp = 374
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/life/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
chemical_mob_spawn(holder, rand(1, round(created_volume, 1)), "Life (hostile)") //defaults to HOSTILE_SPAWN
|
||||
@@ -453,6 +495,7 @@
|
||||
required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/c2/synthflesh = 1, /datum/reagent/consumable/sugar = 1)
|
||||
required_temp = 374
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/life_friendly/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
chemical_mob_spawn(holder, rand(1, round(created_volume, 1)), "Life (friendly)", FRIENDLY_SPAWN)
|
||||
@@ -461,6 +504,7 @@
|
||||
required_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/blood = 1)
|
||||
required_temp = 374
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/corgium/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -471,8 +515,9 @@
|
||||
//monkey powder heehoo
|
||||
/datum/chemical_reaction/monkey_powder
|
||||
results = list(/datum/reagent/monkey_powder = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/banana = 1, /datum/reagent/consumable/nutriment=2,/datum/reagent/liquidgibs = 1)
|
||||
required_reagents = list(/datum/reagent/consumable/banana = 1, /datum/reagent/consumable/nutriment=2, /datum/reagent/liquidgibs = 1)
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/monkey
|
||||
required_reagents = list(/datum/reagent/monkey_powder = 50, /datum/reagent/water = 1)
|
||||
@@ -492,11 +537,13 @@
|
||||
/datum/chemical_reaction/electrolysis
|
||||
results = list(/datum/reagent/oxygen = 1.5, /datum/reagent/hydrogen = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/liquidelectricity = 1, /datum/reagent/water = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
//butterflium
|
||||
/datum/chemical_reaction/butterflium
|
||||
required_reagents = list(/datum/reagent/colorful_reagent = 1, /datum/reagent/medicine/omnizine = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/consumable/nutriment = 1)
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/butterflium/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -508,6 +555,7 @@
|
||||
required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/consumable/cream = 5, /datum/reagent/consumable/ethanol/lizardwine = 5 )
|
||||
required_temp = 374
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/scream/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
playsound(holder.my_atom, pick(list( 'sound/voice/human/malescream_1.ogg', 'sound/voice/human/malescream_2.ogg', 'sound/voice/human/malescream_3.ogg', 'sound/voice/human/malescream_4.ogg', 'sound/voice/human/malescream_5.ogg', 'sound/voice/human/malescream_6.ogg', 'sound/voice/human/femalescream_1.ogg', 'sound/voice/human/femalescream_2.ogg', 'sound/voice/human/femalescream_3.ogg', 'sound/voice/human/femalescream_4.ogg', 'sound/voice/human/femalescream_5.ogg', 'sound/voice/human/wilhelm_scream.ogg')), created_volume*5,TRUE)
|
||||
@@ -515,45 +563,55 @@
|
||||
/datum/chemical_reaction/hair_dye
|
||||
results = list(/datum/reagent/hair_dye = 5)
|
||||
required_reagents = list(/datum/reagent/colorful_reagent = 1, /datum/reagent/uranium/radium = 1, /datum/reagent/drug/space_drugs = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/barbers_aid
|
||||
results = list(/datum/reagent/barbers_aid = 5)
|
||||
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/uranium/radium = 1, /datum/reagent/drug/space_drugs = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/concentrated_barbers_aid
|
||||
results = list(/datum/reagent/concentrated_barbers_aid = 2)
|
||||
required_reagents = list(/datum/reagent/barbers_aid = 1, /datum/reagent/toxin/mutagen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/baldium
|
||||
results = list(/datum/reagent/baldium = 1)
|
||||
required_reagents = list(/datum/reagent/uranium/radium = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/lye = 1)
|
||||
required_temp = 395
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/saltpetre
|
||||
results = list(/datum/reagent/saltpetre = 3)
|
||||
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 3)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/lye
|
||||
results = list(/datum/reagent/lye = 3)
|
||||
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1)
|
||||
required_temp = 10 //So hercuri still shows life.
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/lye2
|
||||
results = list(/datum/reagent/lye = 2)
|
||||
required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/water = 1, /datum/reagent/carbon = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/royal_bee_jelly
|
||||
results = list(/datum/reagent/royal_bee_jelly = 5)
|
||||
required_reagents = list(/datum/reagent/toxin/mutagen = 10, /datum/reagent/consumable/honey = 40)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/laughter
|
||||
results = list(/datum/reagent/consumable/laughter = 10) // Fuck it. I'm not touching this one.
|
||||
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/banana = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/plastic_polymers
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 5, /datum/reagent/toxin/acid = 2, /datum/reagent/ash = 3)
|
||||
required_temp = 374 //lazily consistent with soap & other crafted objects generically created with heat.
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/plastic_polymers/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -563,11 +621,13 @@
|
||||
/datum/chemical_reaction/pax
|
||||
results = list(/datum/reagent/pax = 3)
|
||||
required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/medicine/synaptizine = 1, /datum/reagent/water = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/yuck
|
||||
results = list(/datum/reagent/yuck = 4)
|
||||
required_reagents = list(/datum/reagent/fuel = 3)
|
||||
required_container = /obj/item/food/deadmouse
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_FOOD | REACTION_TAG_DAMAGING
|
||||
|
||||
|
||||
/datum/chemical_reaction/slimejelly
|
||||
@@ -575,11 +635,13 @@
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 3, /datum/reagent/uranium/radium = 2, /datum/reagent/consumable/tinlux =1)
|
||||
required_container = /obj/item/food/grown/mushroom/glowshroom
|
||||
mix_message = "The mushroom's insides bubble and pop and it becomes very limp."
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_PLANT | REACTION_TAG_DAMAGING | REACTION_TAG_TOXIN | REACTION_TAG_SLIME
|
||||
|
||||
/datum/chemical_reaction/slime_extractification
|
||||
required_reagents = list(/datum/reagent/toxin/slimejelly = 30, /datum/reagent/consumable/frostoil = 5, /datum/reagent/toxin/plasma = 5)
|
||||
mix_message = "The mixture condenses into a ball."
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME
|
||||
|
||||
/datum/chemical_reaction/slime_extractification/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -589,6 +651,7 @@
|
||||
required_reagents = list(/datum/reagent/metalgen = 1, /datum/reagent/liquid_dark_matter = 1)
|
||||
results = list(/datum/reagent/metalgen = 1)
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/metalgen_imprint/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/datum/reagent/metalgen/MM = holder.get_reagent(/datum/reagent/metalgen)
|
||||
@@ -600,43 +663,52 @@
|
||||
/datum/chemical_reaction/gravitum
|
||||
required_reagents = list(/datum/reagent/wittel = 1, /datum/reagent/sorium = 10)
|
||||
results = list(/datum/reagent/gravitum = 10)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/cellulose_carbonization
|
||||
results = list(/datum/reagent/carbon = 1)
|
||||
required_reagents = list(/datum/reagent/cellulose = 1)
|
||||
required_temp = 512
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/hydrogen_peroxide
|
||||
results = list(/datum/reagent/hydrogen_peroxide = 3)
|
||||
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_DAMAGING | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/acetone_oxide
|
||||
results = list(/datum/reagent/acetone_oxide = 2)
|
||||
required_reagents = list(/datum/reagent/acetone = 2, /datum/reagent/oxygen = 1, /datum/reagent/hydrogen_peroxide = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_DAMAGING | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/pentaerythritol
|
||||
results = list(/datum/reagent/pentaerythritol = 2)
|
||||
required_reagents = list(/datum/reagent/acetaldehyde = 1, /datum/reagent/toxin/formaldehyde = 3, /datum/reagent/water = 1 )
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/acetaldehyde
|
||||
results = list(/datum/reagent/acetaldehyde = 3)
|
||||
required_reagents = list(/datum/reagent/acetone = 1, /datum/reagent/toxin/formaldehyde = 1, /datum/reagent/water = 1)
|
||||
required_temp = 450
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/holywater
|
||||
results = list(/datum/reagent/water/holywater = 1)
|
||||
required_reagents = list(/datum/reagent/water/hollowwater = 1)
|
||||
required_catalysts = list(/datum/reagent/water/holywater = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_PLANT | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/exotic_stabilizer
|
||||
results = list(/datum/reagent/exotic_stabilizer = 2)
|
||||
required_reagents = list(/datum/reagent/plasma_oxide = 1,/datum/reagent/stabilizing_agent = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/silver_solidification
|
||||
required_reagents = list(/datum/reagent/silver = 20, /datum/reagent/carbon = 10)
|
||||
required_temp = 630
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/silver_solidification/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
var/strengthdiv = 10
|
||||
var/modifier = 0
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EXPLOSIVE | REACTION_TAG_MODERATE | REACTION_TAG_DANGEROUS
|
||||
required_temp = 0 //Prevent impromptu RPGs
|
||||
|
||||
/datum/chemical_reaction/reagent_explosion/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
@@ -166,6 +167,7 @@
|
||||
/datum/chemical_reaction/gunpowder
|
||||
results = list(/datum/reagent/gunpowder = 3)
|
||||
required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/c2/multiver = 1, /datum/reagent/sulfur = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE
|
||||
|
||||
/datum/chemical_reaction/reagent_explosion/gunpowder_explosion
|
||||
required_reagents = list(/datum/reagent/gunpowder = 1)
|
||||
@@ -180,9 +182,11 @@
|
||||
/datum/chemical_reaction/thermite
|
||||
results = list(/datum/reagent/thermite = 3)
|
||||
required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/iron = 1, /datum/reagent/oxygen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/emp_pulse
|
||||
required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/iron = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/emp_pulse/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -194,6 +198,7 @@
|
||||
|
||||
/datum/chemical_reaction/beesplosion
|
||||
required_reagents = list(/datum/reagent/consumable/honey = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/uranium/radium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/beesplosion/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = holder.my_atom.drop_location()
|
||||
@@ -216,12 +221,14 @@
|
||||
/datum/chemical_reaction/stabilizing_agent
|
||||
results = list(/datum/reagent/stabilizing_agent = 3)
|
||||
required_reagents = list(/datum/reagent/iron = 1, /datum/reagent/oxygen = 1, /datum/reagent/hydrogen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/clf3
|
||||
results = list(/datum/reagent/clf3 = 4)
|
||||
required_reagents = list(/datum/reagent/chlorine = 1, /datum/reagent/fluorine = 3)
|
||||
required_temp = 424
|
||||
overheat_temp = 1050
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_DANGEROUS | REACTION_TAG_BURN
|
||||
|
||||
/datum/chemical_reaction/clf3/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
@@ -236,6 +243,7 @@
|
||||
modifier = 5
|
||||
mob_react = FALSE
|
||||
|
||||
|
||||
/datum/chemical_reaction/reagent_explosion/methsplosion/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
for(var/turf/turf in range(1,T))
|
||||
@@ -250,6 +258,7 @@
|
||||
/datum/chemical_reaction/sorium
|
||||
results = list(/datum/reagent/sorium = 4)
|
||||
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/oxygen = 1, /datum/reagent/nitrogen = 1, /datum/reagent/carbon = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/sorium/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
|
||||
@@ -262,6 +271,7 @@
|
||||
/datum/chemical_reaction/sorium_vortex
|
||||
required_reagents = list(/datum/reagent/sorium = 1)
|
||||
required_temp = 474
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/sorium_vortex/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
@@ -271,6 +281,7 @@
|
||||
/datum/chemical_reaction/liquid_dark_matter
|
||||
results = list(/datum/reagent/liquid_dark_matter = 3)
|
||||
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/uranium/radium = 1, /datum/reagent/carbon = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/liquid_dark_matter/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
|
||||
@@ -283,6 +294,7 @@
|
||||
/datum/chemical_reaction/ldm_vortex
|
||||
required_reagents = list(/datum/reagent/liquid_dark_matter = 1)
|
||||
required_temp = 474
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/ldm_vortex/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
@@ -293,6 +305,7 @@
|
||||
results = list(/datum/reagent/flash_powder = 3)
|
||||
required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/potassium = 1, /datum/reagent/sulfur = 1 )
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/flash_powder/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
|
||||
@@ -314,6 +327,7 @@
|
||||
/datum/chemical_reaction/flash_powder_flash
|
||||
required_reagents = list(/datum/reagent/flash_powder = 1)
|
||||
required_temp = 374
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/flash_powder_flash/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -333,6 +347,7 @@
|
||||
results = list(/datum/reagent/smoke_powder = 3)
|
||||
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/phosphorus = 1)
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/smoke_powder/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
|
||||
@@ -354,6 +369,7 @@
|
||||
required_temp = 374
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/smoke_powder_smoke/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -370,6 +386,7 @@
|
||||
/datum/chemical_reaction/sonic_powder
|
||||
results = list(/datum/reagent/sonic_powder = 3)
|
||||
required_reagents = list(/datum/reagent/oxygen = 1, /datum/reagent/consumable/space_cola = 1, /datum/reagent/phosphorus = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/sonic_powder/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
|
||||
@@ -383,6 +400,7 @@
|
||||
/datum/chemical_reaction/sonic_powder_deafen
|
||||
required_reagents = list(/datum/reagent/sonic_powder = 1)
|
||||
required_temp = 374
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/sonic_powder_deafen/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -393,6 +411,7 @@
|
||||
/datum/chemical_reaction/phlogiston
|
||||
results = list(/datum/reagent/phlogiston = 3)
|
||||
required_reagents = list(/datum/reagent/phosphorus = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/stable_plasma = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/phlogiston/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
|
||||
@@ -406,6 +425,7 @@
|
||||
/datum/chemical_reaction/napalm
|
||||
results = list(/datum/reagent/napalm = 3)
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol = 1 )
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_PLANT
|
||||
|
||||
/datum/chemical_reaction/cryostylane
|
||||
results = list(/datum/reagent/cryostylane = 3)
|
||||
@@ -415,6 +435,7 @@
|
||||
optimal_temp = 800
|
||||
overheat_temp = 0 //Replace with NO_OVERHEAT when part 2 is in
|
||||
thermic_constant = 0
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/cryostylane/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
holder.chem_temp = 20 // cools the fuck down
|
||||
@@ -425,6 +446,7 @@
|
||||
required_reagents = list(/datum/reagent/cryostylane = 1, /datum/reagent/oxygen = 1)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/cryostylane_oxygen/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
holder.chem_temp = max(holder.chem_temp - 10*created_volume,0)
|
||||
@@ -434,6 +456,7 @@
|
||||
required_reagents = list(/datum/reagent/pyrosium = 1, /datum/reagent/oxygen = 1)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/pyrosium_oxygen/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
holder.chem_temp += 10*created_volume
|
||||
@@ -446,6 +469,7 @@
|
||||
overheat_temp = 9999//Replace with NO_OVERHEAT when part 2 is in
|
||||
temp_exponent_factor = 10
|
||||
thermic_constant = 0
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/pyrosium/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
holder.chem_temp = 20 // also cools the fuck down
|
||||
@@ -456,11 +480,13 @@
|
||||
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/silver = 1, /datum/reagent/gunpowder = 1)
|
||||
mix_message = "<span class='danger'>A jet of sparks flies from the mixture as it merges into a flickering slurry.</span>"
|
||||
required_temp = 400
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE
|
||||
|
||||
/datum/chemical_reaction/energized_jelly
|
||||
results = list(/datum/reagent/teslium/energized_jelly = 2)
|
||||
required_reagents = list(/datum/reagent/toxin/slimejelly = 1, /datum/reagent/teslium = 1)
|
||||
mix_message = "<span class='danger'>The slime jelly starts glowing intermittently.</span>"
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DANGEROUS | REACTION_TAG_HEALING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/reagent_explosion/teslium_lightning
|
||||
required_reagents = list(/datum/reagent/teslium = 1, /datum/reagent/water = 1)
|
||||
@@ -469,6 +495,7 @@
|
||||
mix_message = "<span class='boldannounce'>The teslium starts to spark as electricity arcs away from it!</span>"
|
||||
mix_sound = 'sound/machines/defib_zap.ogg'
|
||||
var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/reagent_explosion/teslium_lightning/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/T1 = created_volume * 20 //100 units : Zap 3 times, with powers 2000/5000/12000. Tesla revolvers have a power of 10000 for comparison.
|
||||
@@ -521,3 +548,4 @@
|
||||
overheat_temp = 5
|
||||
thermic_constant= -1
|
||||
H_ion_release = -0.02
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
//FermiChem vars:
|
||||
required_temp = 250
|
||||
optimal_temp = 500
|
||||
overheat_temp = 9999
|
||||
overheat_temp = NO_OVERHEAT
|
||||
optimal_ph_min = 0
|
||||
optimal_ph_max = 14
|
||||
determin_ph_range = 0
|
||||
@@ -15,6 +15,7 @@
|
||||
H_ion_release = 0.01
|
||||
rate_up_lim = 15
|
||||
purity_min = 0
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/acidic_buffer
|
||||
results = list(/datum/reagent/reaction_agent/acidic_buffer = 10)
|
||||
@@ -22,7 +23,7 @@
|
||||
mix_message = "The solution froths in the beaker."
|
||||
required_temp = 250
|
||||
optimal_temp = 500
|
||||
overheat_temp = 9999
|
||||
overheat_temp = NO_OVERHEAT
|
||||
optimal_ph_min = 0
|
||||
optimal_ph_max = 14
|
||||
determin_ph_range = 0
|
||||
@@ -32,6 +33,7 @@
|
||||
H_ion_release = -0.01
|
||||
rate_up_lim = 20
|
||||
purity_min = 0
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////// Example competitive reaction (REACTION_COMPETITIVE) //////////////////////////////////
|
||||
@@ -55,6 +57,7 @@
|
||||
H_ion_release = 0
|
||||
rate_up_lim = 4
|
||||
purity_min = 0.25
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE
|
||||
|
||||
|
||||
/datum/chemical_reaction/prefactor_b
|
||||
@@ -75,6 +78,7 @@
|
||||
rate_up_lim = 6
|
||||
purity_min = 0.35
|
||||
reaction_flags = REACTION_COMPETITIVE //Competes with /datum/chemical_reaction/prefactor_a/competitive
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_DANGEROUS | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE
|
||||
|
||||
/datum/chemical_reaction/prefactor_b/reaction_step(datum/equilibrium/reaction, datum/reagents/holder, delta_t, delta_ph, step_reaction_vol)
|
||||
. = ..()
|
||||
@@ -98,6 +102,7 @@
|
||||
required_reagents = list(/datum/reagent/prefactor_b = 5)
|
||||
rate_up_lim = 3
|
||||
reaction_flags = REACTION_COMPETITIVE //Competes with /datum/chemical_reaction/prefactor_b
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE
|
||||
|
||||
//The actual results
|
||||
/datum/chemical_reaction/prefactor_a/purity_tester
|
||||
@@ -105,11 +110,14 @@
|
||||
required_reagents = list(/datum/reagent/prefactor_a = 5, /datum/reagent/stable_plasma = 5)
|
||||
H_ion_release = 0.05
|
||||
thermic_constant = 0
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE
|
||||
|
||||
|
||||
/datum/chemical_reaction/prefactor_b/speed_agent
|
||||
results = list(/datum/reagent/reaction_agent/speed_agent = 5)
|
||||
required_reagents = list(/datum/reagent/prefactor_b = 5, /datum/reagent/stable_plasma = 5)
|
||||
H_ion_release = -0.15
|
||||
thermic_constant = 0
|
||||
reaction_tags = REACTION_TAG_HARD | REACTION_TAG_DANGEROUS | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE
|
||||
|
||||
////////////////////////////////End example/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
/datum/chemical_reaction/slime
|
||||
var/deletes_extract = TRUE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME
|
||||
|
||||
/datum/chemical_reaction/slime/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
use_slime_core(holder)
|
||||
@@ -91,6 +92,7 @@
|
||||
required_container = /obj/item/slime_extract/gold
|
||||
required_other = TRUE
|
||||
deletes_extract = FALSE //we do delete, but we don't do so instantly
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
@@ -120,6 +122,7 @@
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/spider
|
||||
required_reagents = list(/datum/reagent/spider_extract = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/spider/summon_mobs(datum/reagents/holder, turf/T)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate crikey-ingly!</span>")
|
||||
@@ -258,6 +261,7 @@
|
||||
required_reagents = list(/datum/reagent/blood = 1)
|
||||
required_container = /obj/item/slime_extract/yellow
|
||||
required_other = TRUE
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
empulse(get_turf(holder.my_atom), 3, 7)
|
||||
@@ -314,6 +318,7 @@
|
||||
required_reagents = list(/datum/reagent/blood = 1)
|
||||
required_container = /obj/item/slime_extract/red
|
||||
required_other = TRUE
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/slime/slimebloodlust/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
for(var/mob/living/simple_animal/slime/slime in viewers(get_turf(holder.my_atom), null))
|
||||
@@ -367,6 +372,7 @@
|
||||
required_container = /obj/item/slime_extract/oil
|
||||
required_other = TRUE
|
||||
deletes_extract = FALSE
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_SLIME | REACTION_TAG_DANGEROUS
|
||||
|
||||
/datum/chemical_reaction/slime/slimeexplosion/on_reaction(datum/equilibrium/reaction, datum/reagents/holder, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
|
||||
@@ -3,92 +3,113 @@
|
||||
results = list(/datum/reagent/toxin/formaldehyde = 3)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1, /datum/reagent/silver = 1)
|
||||
required_temp = 420
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_CHEMICAL | REACTION_TAG_BRUTE | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/fentanyl
|
||||
results = list(/datum/reagent/toxin/fentanyl = 1)
|
||||
required_reagents = list(/datum/reagent/drug/space_drugs = 1)
|
||||
required_temp = 674
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_ORGAN | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/cyanide
|
||||
results = list(/datum/reagent/toxin/cyanide = 3)
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 1, /datum/reagent/ammonia = 1, /datum/reagent/oxygen = 1)
|
||||
required_temp = 380
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OXY | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/itching_powder
|
||||
results = list(/datum/reagent/toxin/itching_powder = 3)
|
||||
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/ammonia = 1, /datum/reagent/medicine/c2/multiver = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_BRUTE
|
||||
|
||||
/datum/chemical_reaction/facid
|
||||
results = list(/datum/reagent/toxin/acid/fluacid = 4)
|
||||
required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/fluorine = 1, /datum/reagent/hydrogen = 1, /datum/reagent/potassium = 1)
|
||||
required_temp = 380
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_PLANT | REACTION_TAG_BURN | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/nitracid
|
||||
results = list(/datum/reagent/toxin/acid/nitracid = 2)
|
||||
required_reagents = list(/datum/reagent/toxin/acid/fluacid = 1, /datum/reagent/nitrogen = 1, /datum/reagent/hydrogen_peroxide = 1)
|
||||
required_temp = 480
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_BURN | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/sulfonal
|
||||
results = list(/datum/reagent/toxin/sulfonal = 3)
|
||||
required_reagents = list(/datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/sulfur = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_TOXIN | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/lipolicide
|
||||
results = list(/datum/reagent/toxin/lipolicide = 3)
|
||||
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/diethylamine = 1, /datum/reagent/medicine/ephedrine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/mutagen
|
||||
results = list(/datum/reagent/toxin/mutagen = 3)
|
||||
required_reagents = list(/datum/reagent/uranium/radium = 1, /datum/reagent/phosphorus = 1, /datum/reagent/chlorine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_PLANT | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/lexorin
|
||||
results = list(/datum/reagent/toxin/lexorin = 3)
|
||||
required_reagents = list(/datum/reagent/toxin/plasma = 1, /datum/reagent/hydrogen = 1, /datum/reagent/medicine/salbutamol = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OXY
|
||||
|
||||
/datum/chemical_reaction/hot_ice_melt
|
||||
results = list(/datum/reagent/toxin/plasma = 12) //One sheet of hot ice makes 200m of plasma
|
||||
required_reagents = list(/datum/reagent/toxin/hot_ice = 1)
|
||||
required_temp = T0C + 30 //Don't burst into flames when you melt
|
||||
thermic_constant = -200//Counter the heat
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_CHEMICAL | REACTION_TAG_TOXIN
|
||||
|
||||
/datum/chemical_reaction/chloralhydrate
|
||||
results = list(/datum/reagent/toxin/chloralhydrate = 1)
|
||||
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/chlorine = 3, /datum/reagent/water = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/mutetoxin //i'll just fit this in here snugly between other unfun chemicals :v
|
||||
results = list(/datum/reagent/toxin/mutetoxin = 2)
|
||||
required_reagents = list(/datum/reagent/uranium = 2, /datum/reagent/water = 1, /datum/reagent/carbon = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/zombiepowder
|
||||
results = list(/datum/reagent/toxin/zombiepowder = 2)
|
||||
required_reagents = list(/datum/reagent/toxin/carpotoxin = 5, /datum/reagent/medicine/morphine = 5, /datum/reagent/copper = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/ghoulpowder
|
||||
results = list(/datum/reagent/toxin/ghoulpowder = 2)
|
||||
required_reagents = list(/datum/reagent/toxin/zombiepowder = 1, /datum/reagent/medicine/epinephrine = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/mindbreaker
|
||||
results = list(/datum/reagent/toxin/mindbreaker = 5)
|
||||
required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/hydrogen = 1, /datum/reagent/medicine/c2/multiver = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/heparin
|
||||
results = list(/datum/reagent/toxin/heparin = 4)
|
||||
required_reagents = list(/datum/reagent/toxin/formaldehyde = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1, /datum/reagent/lithium = 1)
|
||||
mix_message = "<span class='danger'>The mixture thins and loses all color.</span>"
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/rotatium
|
||||
results = list(/datum/reagent/toxin/rotatium = 3)
|
||||
required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/teslium = 1, /datum/reagent/toxin/fentanyl = 1)
|
||||
mix_message = "<span class='danger'>After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight.</span>"
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_TOXIN | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/anacea
|
||||
results = list(/datum/reagent/toxin/anacea = 3)
|
||||
required_reagents = list(/datum/reagent/medicine/haloperidol = 1, /datum/reagent/impedrezene = 1, /datum/reagent/uranium/radium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_TOXIN | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/mimesbane
|
||||
results = list(/datum/reagent/toxin/mimesbane = 3)
|
||||
required_reagents = list(/datum/reagent/uranium/radium = 1, /datum/reagent/toxin/mutetoxin = 1, /datum/reagent/consumable/nothing = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
/datum/chemical_reaction/bonehurtingjuice
|
||||
results = list(/datum/reagent/toxin/bonehurtingjuice = 5)
|
||||
required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/toxin/itching_powder = 3, /datum/reagent/consumable/milk = 1)
|
||||
mix_message = "<span class='danger'>The mixture suddenly becomes clear and looks a lot like water. You feel a strong urge to drink it.</span>"
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_OTHER
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/datum/unit_test/reagent_id_typos
|
||||
|
||||
/datum/unit_test/reagent_id_typos/Run()
|
||||
build_chemical_reactions_list()
|
||||
build_chemical_reactions_lists()
|
||||
build_chemical_reagent_list()
|
||||
|
||||
for(var/I in GLOB.chemical_reactions_list)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/datum/unit_test/reagent_recipe_collisions
|
||||
|
||||
/datum/unit_test/reagent_recipe_collisions/Run()
|
||||
build_chemical_reactions_list()
|
||||
build_chemical_reactions_lists()
|
||||
var/list/reactions = list()
|
||||
for(var/V in GLOB.chemical_reactions_list)
|
||||
reactions += GLOB.chemical_reactions_list[V]
|
||||
|
||||
Reference in New Issue
Block a user