diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm
index d32e6e64618..a90137ef624 100644
--- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm
+++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm
@@ -4,296 +4,344 @@
/datum/chemical_reaction/goldschlager
name = "Goldschlager"
id = "goldschlager"
- results = list("goldschlager" = 10)
+ result = "goldschlager"
required_reagents = list("vodka" = 10, "gold" = 1)
+ result_amount = 10
/datum/chemical_reaction/patron
name = "Patron"
id = "patron"
- results = list("patron" = 10)
+ result = "patron"
required_reagents = list("tequila" = 10, "silver" = 1)
+ result_amount = 10
/datum/chemical_reaction/bilk
name = "Bilk"
id = "bilk"
- results = list("bilk" = 2)
+ result = "bilk"
required_reagents = list("milk" = 1, "beer" = 1)
+ result_amount = 2
/datum/chemical_reaction/icetea
name = "Iced Tea"
id = "icetea"
- results = list("icetea" = 4)
+ result = "icetea"
required_reagents = list("ice" = 1, "tea" = 3)
+ result_amount = 4
/datum/chemical_reaction/icecoffee
name = "Iced Coffee"
id = "icecoffee"
- results = list("icecoffee" = 4)
+ result = "icecoffee"
required_reagents = list("ice" = 1, "coffee" = 3)
+ result_amount = 4
/datum/chemical_reaction/nuka_cola
name = "Nuka Cola"
id = "nuka_cola"
- results = list("nuka_cola" = 6)
+ result = "nuka_cola"
required_reagents = list("uranium" = 1, "cola" = 6)
+ result_amount = 6
/datum/chemical_reaction/moonshine
name = "Moonshine"
id = "moonshine"
- results = list("moonshine" = 10)
+ result = "moonshine"
required_reagents = list("nutriment" = 10)
required_catalysts = list("enzyme" = 5)
+ result_amount = 10
/datum/chemical_reaction/wine
name = "Wine"
id = "wine"
- results = list("wine" = 10)
+ result = "wine"
required_reagents = list("grapejuice" = 10)
required_catalysts = list("enzyme" = 5)
+ result_amount = 10
/datum/chemical_reaction/spacebeer
name = "Space Beer"
id = "spacebeer"
- results = list("beer" = 10)
+ result = "beer"
required_reagents = list("flour" = 10)
required_catalysts = list("enzyme" = 5)
+ result_amount = 10
/datum/chemical_reaction/vodka
name = "Vodka"
id = "vodka"
- results = list("vodka" = 10)
+ result = "vodka"
required_reagents = list("potato" = 10)
required_catalysts = list("enzyme" = 5)
+ result_amount = 10
/datum/chemical_reaction/kahlua
name = "Kahlua"
id = "kahlua"
- results = list("kahlua" = 5)
+ result = "kahlua"
required_reagents = list("coffee" = 5, "sugar" = 5)
required_catalysts = list("enzyme" = 5)
+ result_amount = 5
/datum/chemical_reaction/gin_tonic
name = "Gin and Tonic"
id = "gintonic"
- results = list("gintonic" = 3)
+ result = "gintonic"
required_reagents = list("gin" = 2, "tonic" = 1)
+ result_amount = 3
/datum/chemical_reaction/cuba_libre
name = "Cuba Libre"
id = "cubalibre"
- results = list("cubalibre" = 3)
+ result = "cubalibre"
required_reagents = list("rum" = 2, "cola" = 1)
+ result_amount = 3
/datum/chemical_reaction/martini
name = "Classic Martini"
id = "martini"
- results = list("martini" = 3)
+ result = "martini"
required_reagents = list("gin" = 2, "vermouth" = 1)
+ result_amount = 3
/datum/chemical_reaction/vodkamartini
name = "Vodka Martini"
id = "vodkamartini"
- results = list("vodkamartini" = 3)
+ result = "vodkamartini"
required_reagents = list("vodka" = 2, "vermouth" = 1)
+ result_amount = 3
/datum/chemical_reaction/white_russian
name = "White Russian"
id = "whiterussian"
- results = list("whiterussian" = 5)
+ result = "whiterussian"
required_reagents = list("blackrussian" = 3, "cream" = 2)
+ result_amount = 5
/datum/chemical_reaction/whiskey_cola
name = "Whiskey Cola"
id = "whiskeycola"
- results = list("whiskeycola" = 3)
+ result = "whiskeycola"
required_reagents = list("whiskey" = 2, "cola" = 1)
+ result_amount = 3
/datum/chemical_reaction/screwdriver
name = "Screwdriver"
id = "screwdrivercocktail"
- results = list("screwdrivercocktail" = 3)
+ result = "screwdrivercocktail"
required_reagents = list("vodka" = 2, "orangejuice" = 1)
+ result_amount = 3
/datum/chemical_reaction/bloody_mary
name = "Bloody Mary"
id = "bloodymary"
- results = list("bloodymary" = 4)
+ result = "bloodymary"
required_reagents = list("vodka" = 1, "tomatojuice" = 2, "limejuice" = 1)
+ result_amount = 4
/datum/chemical_reaction/gargle_blaster
name = "Pan-Galactic Gargle Blaster"
id = "gargleblaster"
- results = list("gargleblaster" = 5)
+ result = "gargleblaster"
required_reagents = list("vodka" = 1, "gin" = 1, "whiskey" = 1, "cognac" = 1, "limejuice" = 1)
+ result_amount = 5
/datum/chemical_reaction/brave_bull
name = "Brave Bull"
id = "bravebull"
- results = list("bravebull" = 3)
+ result = "bravebull"
required_reagents = list("tequila" = 2, "kahlua" = 1)
+ result_amount = 3
/datum/chemical_reaction/tequila_sunrise
name = "tequila Sunrise"
id = "tequilasunrise"
- results = list("tequilasunrise" = 3)
+ result = "tequilasunrise"
required_reagents = list("tequila" = 2, "orangejuice" = 1)
+ result_amount = 3
/datum/chemical_reaction/toxins_special
name = "Toxins Special"
id = "toxinsspecial"
- results = list("toxinsspecial" = 5)
+ result = "toxinsspecial"
required_reagents = list("rum" = 2, "vermouth" = 1, "plasma" = 2)
+ result_amount = 5
/datum/chemical_reaction/beepsky_smash
name = "Beepksy Smash"
id = "beepksysmash"
- results = list("beepskysmash" = 4)
+ result = "beepskysmash"
required_reagents = list("limejuice" = 2, "whiskey" = 2, "iron" = 1)
+ result_amount = 4
/datum/chemical_reaction/doctor_delight
name = "The Doctor's Delight"
id = "doctordelight"
- results = list("doctorsdelight" = 5)
+ result = "doctorsdelight"
required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "cryoxadone" = 1)
+ result_amount = 5
/datum/chemical_reaction/irish_cream
name = "Irish Cream"
id = "irishcream"
- results = list("irishcream" = 3)
+ result = "irishcream"
required_reagents = list("whiskey" = 2, "cream" = 1)
+ result_amount = 3
/datum/chemical_reaction/manly_dorf
name = "The Manly Dorf"
id = "manlydorf"
- results = list("manlydorf" = 3)
+ result = "manlydorf"
required_reagents = list ("beer" = 1, "ale" = 2)
+ result_amount = 3
/datum/chemical_reaction/greenbeer
name = "Green Beer"
id = "greenbeer"
- results = list("greenbeer" = 10)
+ result = "greenbeer"
required_reagents = list("greencrayonpowder" = 1, "beer" = 10)
+ result_amount = 10
/datum/chemical_reaction/hooch
name = "Hooch"
id = "hooch"
- results = list("hooch" = 3)
+ result = "hooch"
required_reagents = list ("ethanol" = 2, "welding_fuel" = 1)
required_catalysts = list("enzyme" = 1)
+ result_amount = 3
/datum/chemical_reaction/irish_coffee
name = "Irish Coffee"
id = "irishcoffee"
- results = list("irishcoffee" = 2)
+ result = "irishcoffee"
required_reagents = list("irishcream" = 1, "coffee" = 1)
+ result_amount = 2
/datum/chemical_reaction/b52
name = "B-52"
id = "b52"
- results = list("b52" = 3)
+ result = "b52"
required_reagents = list("irishcream" = 1, "kahlua" = 1, "cognac" = 1)
+ result_amount = 3
/datum/chemical_reaction/atomicbomb
name = "Atomic Bomb"
id = "atomicbomb"
- results = list("atomicbomb" = 10)
+ result = "atomicbomb"
required_reagents = list("b52" = 10, "uranium" = 1)
+ result_amount = 10
/datum/chemical_reaction/margarita
name = "Margarita"
id = "margarita"
- results = list("margarita" = 3)
+ result = "margarita"
required_reagents = list("tequila" = 2, "limejuice" = 1)
+ result_amount = 3
/datum/chemical_reaction/longislandicedtea
name = "Long Island Iced Tea"
id = "longislandicedtea"
- results = list("longislandicedtea" = 4)
+ result = "longislandicedtea"
required_reagents = list("vodka" = 1, "gin" = 1, "tequila" = 1, "cubalibre" = 1)
+ result_amount = 4
/datum/chemical_reaction/threemileisland
name = "Three Mile Island Iced Tea"
id = "threemileisland"
- results = list("threemileisland" = 10)
+ result = "threemileisland"
required_reagents = list("longislandicedtea" = 10, "uranium" = 1)
+ result_amount = 10
/datum/chemical_reaction/whiskeysoda
name = "Whiskey Soda"
id = "whiskeysoda"
- results = list("whiskeysoda" = 3)
+ result = "whiskeysoda"
required_reagents = list("whiskey" = 2, "sodawater" = 1)
+ result_amount = 3
/datum/chemical_reaction/black_russian
name = "Black Russian"
id = "blackrussian"
- results = list("blackrussian" = 5)
+ result = "blackrussian"
required_reagents = list("vodka" = 3, "kahlua" = 2)
+ result_amount = 5
/datum/chemical_reaction/manhattan
name = "Manhattan"
id = "manhattan"
- results = list("manhattan" = 3)
+ result = "manhattan"
required_reagents = list("whiskey" = 2, "vermouth" = 1)
+ result_amount = 3
/datum/chemical_reaction/manhattan_proj
name = "Manhattan Project"
id = "manhattan_proj"
- results = list("manhattan_proj" = 10)
+ result = "manhattan_proj"
required_reagents = list("manhattan" = 10, "uranium" = 1)
+ result_amount = 10
/datum/chemical_reaction/vodka_tonic
name = "Vodka and Tonic"
id = "vodkatonic"
- results = list("vodkatonic" = 3)
+ result = "vodkatonic"
required_reagents = list("vodka" = 2, "tonic" = 1)
+ result_amount = 3
/datum/chemical_reaction/gin_fizz
name = "Gin Fizz"
id = "ginfizz"
- results = list("ginfizz" = 4)
+ result = "ginfizz"
required_reagents = list("gin" = 2, "sodawater" = 1, "limejuice" = 1)
+ result_amount = 4
/datum/chemical_reaction/bahama_mama
name = "Bahama mama"
id = "bahama_mama"
- results = list("bahama_mama" = 6)
+ result = "bahama_mama"
required_reagents = list("rum" = 2, "orangejuice" = 2, "limejuice" = 1, "ice" = 1)
+ result_amount = 6
/datum/chemical_reaction/singulo
name = "Singulo"
id = "singulo"
- results = list("singulo" = 10)
+ result = "singulo"
required_reagents = list("vodka" = 5, "radium" = 1, "wine" = 5)
+ result_amount = 10
/datum/chemical_reaction/alliescocktail
name = "Allies Cocktail"
id = "alliescocktail"
- results = list("alliescocktail" = 2)
+ result = "alliescocktail"
required_reagents = list("martini" = 1, "vodka" = 1)
+ result_amount = 2
/datum/chemical_reaction/demonsblood
name = "Demons Blood"
id = "demonsblood"
- results = list("demonsblood" = 4)
+ result = "demonsblood"
required_reagents = list("rum" = 1, "spacemountainwind" = 1, "blood" = 1, "dr_gibb" = 1)
+ result_amount = 4
/datum/chemical_reaction/booger
name = "Booger"
id = "booger"
- results = list("booger" = 4)
+ result = "booger"
required_reagents = list("cream" = 1, "banana" = 1, "rum" = 1, "watermelonjuice" = 1)
+ result_amount = 4
/datum/chemical_reaction/antifreeze
name = "Anti-freeze"
id = "antifreeze"
- results = list("antifreeze" = 4)
+ result = "antifreeze"
required_reagents = list("vodka" = 2, "cream" = 1, "ice" = 1)
+ result_amount = 4
/datum/chemical_reaction/barefoot
name = "Barefoot"
id = "barefoot"
- results = list("barefoot" = 3)
+ result = "barefoot"
required_reagents = list("berryjuice" = 1, "cream" = 1, "vermouth" = 1)
+ result_amount = 3
////DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri/////
@@ -301,223 +349,259 @@
/datum/chemical_reaction/sbiten
name = "Sbiten"
id = "sbiten"
- results = list("sbiten" = 10)
+ result = "sbiten"
required_reagents = list("vodka" = 10, "capsaicin" = 1)
+ result_amount = 10
/datum/chemical_reaction/red_mead
name = "Red Mead"
id = "red_mead"
- results = list("red_mead" = 2)
+ result = "red_mead"
required_reagents = list("blood" = 1, "mead" = 1)
+ result_amount = 2
/datum/chemical_reaction/mead
name = "Mead"
id = "mead"
- results = list("mead" = 2)
+ result = "mead"
required_reagents = list("honey" = 2)
required_catalysts = list("enzyme" = 5)
+ result_amount = 2
/datum/chemical_reaction/iced_beer
name = "Iced Beer"
id = "iced_beer"
- results = list("iced_beer" = 6)
+ result = "iced_beer"
required_reagents = list("beer" = 5, "ice" = 1)
+ result_amount = 6
/datum/chemical_reaction/grog
name = "Grog"
id = "grog"
- results = list("grog" = 2)
+ result = "grog"
required_reagents = list("rum" = 1, "water" = 1)
+ result_amount = 2
/datum/chemical_reaction/soy_latte
name = "Soy Latte"
id = "soy_latte"
- results = list("soy_latte" = 2)
+ result = "soy_latte"
required_reagents = list("coffee" = 1, "soymilk" = 1)
+ result_amount = 2
/datum/chemical_reaction/cafe_latte
name = "Cafe Latte"
id = "cafe_latte"
- results = list("cafe_latte" = 2)
+ result = "cafe_latte"
required_reagents = list("coffee" = 1, "milk" = 1)
+ result_amount = 2
/datum/chemical_reaction/acidspit
name = "Acid Spit"
id = "acidspit"
- results = list("acidspit" = 6)
+ result = "acidspit"
required_reagents = list("sacid" = 1, "wine" = 5)
+ result_amount = 6
/datum/chemical_reaction/amasec
name = "Amasec"
id = "amasec"
- results = list("amasec" = 10)
+ result = "amasec"
required_reagents = list("iron" = 1, "wine" = 5, "vodka" = 5)
+ result_amount = 10
/datum/chemical_reaction/changelingsting
name = "Changeling Sting"
id = "changelingsting"
- results = list("changelingsting" = 5)
+ result = "changelingsting"
required_reagents = list("screwdrivercocktail" = 1, "limejuice" = 1, "lemonjuice" = 1)
+ result_amount = 5
/datum/chemical_reaction/aloe
name = "Aloe"
id = "aloe"
- results = list("aloe" = 2)
+ result = "aloe"
required_reagents = list("irishcream" = 1, "watermelonjuice" = 1)
+ result_amount = 2
/datum/chemical_reaction/andalusia
name = "Andalusia"
id = "andalusia"
- results = list("andalusia" = 3)
+ result = "andalusia"
required_reagents = list("rum" = 1, "whiskey" = 1, "lemonjuice" = 1)
+ result_amount = 3
/datum/chemical_reaction/neurotoxin
name = "Neurotoxin"
id = "neurotoxin"
- results = list("neurotoxin" = 2)
+ result = "neurotoxin"
required_reagents = list("gargleblaster" = 1, "morphine" = 1)
+ result_amount = 2
/datum/chemical_reaction/snowwhite
name = "Snow White"
id = "snowwhite"
- results = list("snowwhite" = 2)
+ result = "snowwhite"
required_reagents = list("beer" = 1, "lemon_lime" = 1)
+ result_amount = 2
/datum/chemical_reaction/irishcarbomb
name = "Irish Car Bomb"
id = "irishcarbomb"
- results = list("irishcarbomb" = 2)
+ result = "irishcarbomb"
required_reagents = list("ale" = 1, "irishcream" = 1)
+ result_amount = 2
/datum/chemical_reaction/syndicatebomb
name = "Syndicate Bomb"
id = "syndicatebomb"
- results = list("syndicatebomb" = 2)
+ result = "syndicatebomb"
required_reagents = list("beer" = 1, "whiskeycola" = 1)
+ result_amount = 2
/datum/chemical_reaction/erikasurprise
name = "Erika Surprise"
id = "erikasurprise"
- results = list("erikasurprise" = 5)
+ result = "erikasurprise"
required_reagents = list("ale" = 1, "limejuice" = 1, "whiskey" = 1, "banana" = 1, "ice" = 1)
+ result_amount = 5
/datum/chemical_reaction/devilskiss
name = "Devils Kiss"
id = "devilskiss"
- results = list("devilskiss" = 3)
+ result = "devilskiss"
required_reagents = list("blood" = 1, "kahlua" = 1, "rum" = 1)
+ result_amount = 3
/datum/chemical_reaction/hippiesdelight
name = "Hippies Delight"
id = "hippiesdelight"
- results = list("hippiesdelight" = 2)
+ result = "hippiesdelight"
required_reagents = list("mushroomhallucinogen" = 1, "gargleblaster" = 1)
+ result_amount = 2
/datum/chemical_reaction/bananahonk
name = "Banana Honk"
id = "bananahonk"
- results = list("bananahonk" = 3)
+ result = "bananahonk"
required_reagents = list("banana" = 1, "cream" = 1, "sugar" = 1)
+ result_amount = 3
/datum/chemical_reaction/silencer
name = "Silencer"
id = "silencer"
- results = list("silencer" = 3)
+ result = "silencer"
required_reagents = list("nothing" = 1, "cream" = 1, "sugar" = 1)
+ result_amount = 3
/datum/chemical_reaction/driestmartini
name = "Driest Martini"
id = "driestmartini"
- results = list("driestmartini" = 2)
+ result = "driestmartini"
required_reagents = list("nothing" = 1, "gin" = 1)
+ result_amount = 2
/datum/chemical_reaction/thirteenloko
name = "Thirteen Loko"
id = "thirteenloko"
- results = list("thirteenloko" = 3)
+ result = "thirteenloko"
required_reagents = list("vodka" = 1, "coffee" = 1, "limejuice" = 1)
+ result_amount = 3
/datum/chemical_reaction/chocolatepudding
name = "Chocolate Pudding"
id = "chocolatepudding"
- results = list("chocolatepudding" = 20)
+ result = "chocolatepudding"
required_reagents = list("cocoa" = 5, "milk" = 5, "eggyolk" = 5)
+ result_amount = 20
/datum/chemical_reaction/vanillapudding
name = "Vanilla Pudding"
id = "vanillapudding"
- results = list("vanillapudding" = 20)
+ result = "vanillapudding"
required_reagents = list("vanilla" = 5, "milk" = 5, "eggyolk" = 5)
+ result_amount = 20
/datum/chemical_reaction/cherryshake
name = "Cherry Shake"
id = "cherryshake"
- results = list("cherryshake" = 3)
+ result = "cherryshake"
required_reagents = list("cherryjelly" = 1, "ice" = 1, "cream" = 1)
+ result_amount = 3
/datum/chemical_reaction/bluecherryshake
name = "Blue Cherry Shake"
id = "bluecherryshake"
- results = list("bluecherryshake" = 3)
+ result = "bluecherryshake"
required_reagents = list("bluecherryjelly" = 1, "ice" = 1, "cream" = 1)
+ result_amount = 3
/datum/chemical_reaction/drunkenblumpkin
name = "Drunken Blumpkin"
id = "drunkenblumpkin"
- results = list("drunkenblumpkin" = 4)
+ result = "drunkenblumpkin"
required_reagents = list("blumpkinjuice" = 1, "irishcream" = 2, "ice" = 1)
+ result_amount = 4
/datum/chemical_reaction/pumpkin_latte
name = "Pumpkin space latte"
id = "pumpkin_latte"
- results = list("pumpkin_latte" = 15)
+ result = "pumpkin_latte"
required_reagents = list("pumpkinjuice" = 5, "coffee" = 5, "cream" = 5)
+ result_amount = 15
/datum/chemical_reaction/gibbfloats
name = "Gibb Floats"
id = "gibbfloats"
- results = list("gibbfloats" = 15)
+ result = "gibbfloats"
required_reagents = list("dr_gibb" = 5, "ice" = 5, "cream" = 5)
+ result_amount = 15
/datum/chemical_reaction/triple_citrus
name = "triple_citrus"
id = "triple_citrus"
- results = list("triple_citrus" = 5)
+ result = "triple_citrus"
required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1)
+ result_amount = 5
/datum/chemical_reaction/grape_soda
name = "grape soda"
id = "grapesoda"
- results = list("grape_soda" = 2)
+ result = "grape_soda"
required_reagents = list("grapejuice" = 1, "sodawater" = 1)
+ result_amount = 2
/datum/chemical_reaction/grappa
name = "grappa"
id = "grappa"
- results = list("grappa" = 10)
+ result = "grappa"
required_reagents = list ("wine" = 10)
required_catalysts = list ("enzyme" = 5)
+ result_amount = 10
/datum/chemical_reaction/whiskey_sour
name = "Whiskey Sour"
id = "whiskey_sour"
- results = list("whiskey_sour" = 3)
+ result = "whiskey_sour"
required_reagents = list("whiskey" = 1, "lemonjuice" = 1, "sugar" = 1)
+ result_amount = 3
mix_message = "The mixture darkens to a rich gold hue."
mix_sound = null
/datum/chemical_reaction/fetching_fizz
name = "Fetching Fizz"
id = "fetching_fizz"
- results = list("fetching_fizz" = 3)
+ result = "fetching_fizz"
required_reagents = list("nuka_cola" = 1, "iron" = 1) //Manufacturable from only the mining station
+ result_amount = 3
mix_message = "The mixture slightly vibrates before settling."
/datum/chemical_reaction/hearty_punch
name = "Hearty Punch"
id = "hearty_punch"
- results = list("hearty_punch" = 1) //Very little, for balance reasons
+ result = "hearty_punch"
required_reagents = list("bravebull" = 5, "syndicatebomb" = 5, "absinthe" = 5)
+ result_amount = 1 //Very little, for balance reasons
mix_message = "The mixture darkens to a healthy crimson."
mix_sound = null
required_temp = 315 //Piping hot!
@@ -525,13 +609,15 @@
/datum/chemical_reaction/bacchus_blessing
name = "Bacchus' Blessing"
id = "bacchus_blessing"
- results = list("bacchus_blessing" = 4)
+ result = "bacchus_blessing"
required_reagents = list("hooch" = 1, "absinthe" = 1, "manlydorf" = 1, "syndicatebomb" = 1)
+ result_amount = 4
mix_message = "The mixture turns to a sickening froth."
/datum/chemical_reaction/arnold_palmer
name = "Arnold Palmer"
id = "arnold_palmer"
- results = list("arnold_palmer" = 2)
+ result = "arnold_palmer"
required_reagents = list("tea" = 1, "lemonjuice" = 1)
+ result_amount = 2
mix_message = "The smells of fresh green grass and sand traps waft through the air as the mixture turns a friendly yellow-orange."
diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm
index c8362a14ad7..bfb9dcbaf4e 100644
--- a/code/modules/food_and_drinks/recipes/food_mixtures.dm
+++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm
@@ -6,8 +6,10 @@
/datum/chemical_reaction/tofu
name = "Tofu"
id = "tofu"
+ result = null
required_reagents = list("soymilk" = 10)
required_catalysts = list("enzyme" = 5)
+ result_amount = 1
mob_react=1
/datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume)
@@ -19,7 +21,9 @@
/datum/chemical_reaction/chocolate_bar
name = "Chocolate Bar"
id = "chocolate_bar"
+ result = null
required_reagents = list("soymilk" = 2, "cocoa" = 2, "sugar" = 2)
+ result_amount = 1
/datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
@@ -31,9 +35,10 @@
/datum/chemical_reaction/chocolate_bar2
name = "Chocolate Bar"
id = "chocolate_bar"
+ result = null
required_reagents = list("milk" = 2, "cocoa" = 2, "sugar" = 2)
+ result_amount = 1
mob_react = 1
-
/datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
@@ -43,85 +48,101 @@
/datum/chemical_reaction/hot_coco
name = "Hot Coco"
id = "hot_coco"
- results = list("hot_coco" = 5)
+ result = "hot_coco"
required_reagents = list("water" = 5, "cocoa" = 1)
+ result_amount = 5
/datum/chemical_reaction/coffee
name = "Coffee"
id = "coffee"
- results = list("coffee" = 5)
+ result = "coffee"
required_reagents = list("coffeepowder" = 1, "water" = 5)
+ result_amount = 5
/datum/chemical_reaction/tea
name = "Tea"
id = "tea"
- results = list("tea" = 5)
+ result = "tea"
required_reagents = list("teapowder" = 1, "water" = 5)
+ result_amount = 5
/datum/chemical_reaction/soysauce
name = "Soy Sauce"
id = "soysauce"
- results = list("soysauce" = 5)
+ result = "soysauce"
required_reagents = list("soymilk" = 4, "sacid" = 1)
+ result_amount = 5
/datum/chemical_reaction/corn_syrup
name = "corn_syrup"
id = "corn_syrup"
- results = list("corn_syrup" = 5)
+ result = "corn_syrup"
required_reagents = list("corn_starch" = 1, "sacid" = 1)
+ result_amount = 5
required_temp = 374
/datum/chemical_reaction/cheesewheel
name = "Cheesewheel"
id = "cheesewheel"
+ result = null
required_reagents = list("milk" = 40)
required_catalysts = list("enzyme" = 5)
+ result_amount = 1
/datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- for(var/i = 1, i <= created_volume, i++)
- new /obj/item/weapon/reagent_containers/food/snacks/store/cheesewheel(location)
+ new /obj/item/weapon/reagent_containers/food/snacks/store/cheesewheel(location)
+ return
/datum/chemical_reaction/synthmeat
name = "synthmeat"
id = "synthmeat"
+ result = null
required_reagents = list("blood" = 5, "cryoxadone" = 1)
+ result_amount = 1
mob_react = 1
/datum/chemical_reaction/synthmeat/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- for(var/i = 1, i <= created_volume, i++)
- new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat(location)
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat(location)
+ return
/datum/chemical_reaction/hot_ramen
name = "Hot Ramen"
id = "hot_ramen"
- results = list("hot_ramen" = 3)
+ result = "hot_ramen"
required_reagents = list("water" = 1, "dry_ramen" = 3)
+ result_amount = 3
/datum/chemical_reaction/hell_ramen
name = "Hell Ramen"
id = "hell_ramen"
- results = list("hell_ramen" = 6)
+ result = "hell_ramen"
required_reagents = list("capsaicin" = 1, "hot_ramen" = 6)
+ result_amount = 6
+
/datum/chemical_reaction/imitationcarpmeat
name = "Imitation Carpmeat"
id = "imitationcarpmeat"
+ result = null
required_reagents = list("carpotoxin" = 5)
+ result_amount = 1
required_container = /obj/item/weapon/reagent_containers/food/snacks/tofu
mix_message = "The mixture becomes similar to carp meat."
/datum/chemical_reaction/imitationcarpmeat/on_reaction(datum/reagents/holder)
- var/location = get_turf(holder.my_atom)
- new /obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation(location)
+ var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation
+ S.loc = get_turf(holder.my_atom)
if(holder && holder.my_atom)
qdel(holder.my_atom)
/datum/chemical_reaction/dough
name = "Dough"
id = "dough"
+ result = null
required_reagents = list("water" = 10, "flour" = 15)
+ result_amount = 1
mix_message = "The ingredients form a dough."
/datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume)
@@ -132,7 +153,9 @@
/datum/chemical_reaction/cakebatter
name = "Cake Batter"
id = "cakebatter"
+ result = null
required_reagents = list("eggyolk" = 15, "flour" = 15, "sugar" = 5)
+ result_amount = 1
mix_message = "The ingredients form a cake batter."
/datum/chemical_reaction/cakebatter/on_reaction(datum/reagents/holder, created_volume)
@@ -147,12 +170,14 @@
/datum/chemical_reaction/ricebowl
name = "Rice Bowl"
id = "ricebowl"
+ result = null
required_reagents = list("rice" = 10, "water" = 10)
+ result_amount = 1
required_container = /obj/item/weapon/reagent_containers/glass/bowl
mix_message = "The rice absorbs the water."
/datum/chemical_reaction/ricebowl/on_reaction(datum/reagents/holder)
- var/location = get_turf(holder.my_atom)
- new /obj/item/weapon/reagent_containers/food/snacks/salad/ricebowl(location)
+ var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/salad/ricebowl
+ S.loc = get_turf(holder.my_atom)
if(holder && holder.my_atom)
qdel(holder.my_atom)
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index 62f8a1ceec0..543bbd95463 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -344,8 +344,6 @@ var/const/INJECT = 5 //injection
var/matching_other = 0
var/list/multipliers = new/list()
var/required_temp = C.required_temp
- var/is_cold_recipe = C.is_cold_recipe
- var/meets_temp_requirement = 0
for(var/B in C.required_reagents)
if(!has_reagent(B, C.required_reagents[B]))
@@ -375,18 +373,20 @@ var/const/INJECT = 5 //injection
if(M.Uses > 0) // added a limit to slime cores -- Muskets requested this
matching_other = 1
- if(required_temp == 0 || (is_cold_recipe && chem_temp <= required_temp) || (!is_cold_recipe && chem_temp >= required_temp))
- meets_temp_requirement = 1
+ if(required_temp == 0)
+ required_temp = chem_temp
- if(total_matching_reagents == total_required_reagents && total_matching_catalysts == total_required_catalysts && matching_container && matching_other && meets_temp_requirement)
+
+ if(total_matching_reagents == total_required_reagents && total_matching_catalysts == total_required_catalysts && matching_container && matching_other && chem_temp >= required_temp)
var/multiplier = min(multipliers)
for(var/B in C.required_reagents)
remove_reagent(B, (multiplier * C.required_reagents[B]), safety = 1)
- for(var/P in C.results)
- feedback_add_details("chemical_reaction", "[P]|[C.results[P]*multiplier]")
+ var/created_volume = C.result_amount*multiplier
+ if(C.result)
+ feedback_add_details("chemical_reaction","[C.result]|[C.result_amount*multiplier]")
multiplier = max(multiplier, 1) //this shouldnt happen ...
- add_reagent(P, C.results[P]*multiplier, null, chem_temp)
+ add_reagent(C.result, C.result_amount*multiplier, null, chem_temp)
var/list/seen = viewers(4, get_turf(my_atom))
@@ -405,7 +405,7 @@ var/const/INJECT = 5 //injection
ME2.name = "used slime extract"
ME2.desc = "This extract has been used up."
- C.on_reaction(src, multiplier)
+ C.on_reaction(src, created_volume)
reaction_occured = 1
break
@@ -542,10 +542,10 @@ var/const/INJECT = 5 //injection
add_reagent(r_id, amt, data)
/datum/reagents/proc/remove_reagent(reagent, amount, safety)//Added a safety check for the trans_id_to
-
+
if(isnull(amount))
amount = INFINITY
-
+
if(!isnum(amount))
return 1
diff --git a/code/modules/reagents/chemistry/readme.dm b/code/modules/reagents/chemistry/readme.dm
index 93aff6f1466..b2759dbe7af 100644
--- a/code/modules/reagents/chemistry/readme.dm
+++ b/code/modules/reagents/chemistry/readme.dm
@@ -193,9 +193,8 @@ About Recipes:
name & id
Should be pretty obvious.
- results
- This var contains a list of the id(s) of the resulting reagents and their result amounts.
- I recommend you set this to the total volume of all required reagent.
+ result
+ This var contains the id of the resulting reagent.
required_reagents
This is a list of ids of the required reagents.
@@ -209,6 +208,10 @@ About Recipes:
for the reaction. However, unlike required_reagents, catalysts are NOT consumed.
They mearly have to be present in the container.
+ result_amount
+ This is the amount of the resulting reagent this recipe will produce.
+ I recommend you set this to the total volume of all required reagent.
+
required_container
The container the recipe has to take place in in order to happen. Leave this blank/null
if you want the reaction to happen anywhere.
diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm
index 5943577d59c..f841370c08b 100644
--- a/code/modules/reagents/chemistry/recipes.dm
+++ b/code/modules/reagents/chemistry/recipes.dm
@@ -1,7 +1,7 @@
/datum/chemical_reaction
var/name = null
var/id = null
- var/list/results = new/list()
+ var/result = null
var/list/required_reagents = new/list()
var/list/required_catalysts = new/list()
@@ -9,11 +9,11 @@
var/atom/required_container = null // the container required for the reaction to happen
var/required_other = 0 // an integer required for the reaction to happen
+ var/result_amount = 0
var/secondary = 0 // set to nonzero if secondary reaction
var/mob_react = 0 //Determines if a chemical reaction can occur inside a mob
var/required_temp = 0
- var/is_cold_recipe = 0 // Set to 1 if you want the recipe to only react when it's BELOW the required temp.
var/mix_message = "The solution begins to bubble." //The message shown to nearby people upon mixing, if applicable
var/mix_sound = 'sound/effects/bubbles.ogg' //The sound played upon mixing, if applicable
diff --git a/code/modules/reagents/chemistry/recipes/drugs.dm b/code/modules/reagents/chemistry/recipes/drugs.dm
index f9d9b24ac54..5d2c6cf3bc7 100644
--- a/code/modules/reagents/chemistry/recipes/drugs.dm
+++ b/code/modules/reagents/chemistry/recipes/drugs.dm
@@ -1,14 +1,16 @@
/datum/chemical_reaction/space_drugs
name = "Space Drugs"
id = "space_drugs"
- results = list("space_drugs" = 3)
+ result = "space_drugs"
required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1)
+ result_amount = 3
/datum/chemical_reaction/crank
name = "Crank"
id = "crank"
- results = list("crank" = 5)
+ result = "crank"
required_reagents = list("diphenhydramine" = 1, "ammonia" = 1, "lithium" = 1, "sacid" = 1, "welding_fuel" = 1)
+ result_amount = 5
mix_message = "The mixture violently reacts, leaving behind a few crystalline shards."
required_temp = 390
@@ -16,27 +18,31 @@
/datum/chemical_reaction/krokodil
name = "Krokodil"
id = "krokodil"
- results = list("krokodil" = 6)
+ result = "krokodil"
required_reagents = list("diphenhydramine" = 1, "morphine" = 1, "cleaner" = 1, "potassium" = 1, "phosphorus" = 1, "welding_fuel" = 1)
+ result_amount = 6
mix_message = "The mixture dries into a pale blue powder."
required_temp = 380
/datum/chemical_reaction/methamphetamine
name = "methamphetamine"
id = "methamphetamine"
- results = list("methamphetamine" = 4)
+ result = "methamphetamine"
required_reagents = list("ephedrine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1)
+ result_amount = 4
required_temp = 374
/datum/chemical_reaction/bath_salts
name = "bath_salts"
id = "bath_salts"
- results = list("bath_salts" = 7)
+ result = "bath_salts"
required_reagents = list("????" = 1, "saltpetre" = 1, "nutriment" = 1, "cleaner" = 1, "enzyme" = 1, "tea" = 1, "mercury" = 1)
+ result_amount = 7
required_temp = 374
/datum/chemical_reaction/aranesp
name = "aranesp"
id = "aranesp"
- results = list("aranesp" = 3)
+ result = "aranesp"
required_reagents = list("epinephrine" = 1, "atropine" = 1, "morphine" = 1)
+ result_amount = 3
diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm
index e446ab9736b..184e3fd0359 100644
--- a/code/modules/reagents/chemistry/recipes/medicine.dm
+++ b/code/modules/reagents/chemistry/recipes/medicine.dm
@@ -2,214 +2,249 @@
/datum/chemical_reaction/leporazine
name = "Leporazine"
id = "leporazine"
- results = list("leporazine" = 2)
+ result = "leporazine"
required_reagents = list("silicon" = 1, "copper" = 1)
required_catalysts = list("plasma" = 5)
+ result_amount = 2
/datum/chemical_reaction/rezadone
name = "Rezadone"
id = "rezadone"
- results = list("rezadone" = 3)
+ result = "rezadone"
required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, "copper" = 1)
+ result_amount = 3
/datum/chemical_reaction/spaceacillin
name = "Spaceacillin"
id = "spaceacillin"
- results = list("spaceacillin" = 2)
+ result = "spaceacillin"
required_reagents = list("cryptobiolin" = 1, "epinephrine" = 1)
+ result_amount = 2
/datum/chemical_reaction/inacusiate
name = "inacusiate"
id = "inacusiate"
- results = list("inacusiate" = 2)
+ result = "inacusiate"
required_reagents = list("water" = 1, "carbon" = 1, "charcoal" = 1)
+ result_amount = 2
/datum/chemical_reaction/synaptizine
name = "Synaptizine"
id = "synaptizine"
- results = list("synaptizine" = 3)
+ result = "synaptizine"
required_reagents = list("sugar" = 1, "lithium" = 1, "water" = 1)
+ result_amount = 3
/datum/chemical_reaction/charcoal
name = "Charcoal"
id = "charcoal"
- results = list("charcoal" = 2)
+ result = "charcoal"
required_reagents = list("ash" = 1, "sodiumchloride" = 1)
+ result_amount = 2
mix_message = "The mixture yields a fine black powder."
required_temp = 380
/datum/chemical_reaction/silver_sulfadiazine
name = "Silver Sulfadiazine"
id = "silver_sulfadiazine"
- results = list("silver_sulfadiazine" = 5)
+ result = "silver_sulfadiazine"
required_reagents = list("ammonia" = 1, "silver" = 1, "sulfur" = 1, "oxygen" = 1, "chlorine" = 1)
+ result_amount = 5
/datum/chemical_reaction/salglu_solution
name = "Saline-Glucose Solution"
id = "salglu_solution"
- results = list("salglu_solution" = 3)
+ result = "salglu_solution"
required_reagents = list("sodiumchloride" = 1, "water" = 1, "sugar" = 1)
+ result_amount = 3
/datum/chemical_reaction/mine_salve
name = "Miner's Salve"
id = "mine_salve"
- results = list("mine_salve" = 3)
+ result = "mine_salve"
required_reagents = list("oil" = 1, "water" = 1, "iron" = 1)
+ result_amount = 3
/datum/chemical_reaction/mine_salve2
name = "Miner's Salve"
id = "mine_salve"
- results = list("mine_salve" = 15)
+ result = "mine_salve"
required_reagents = list("plasma" = 5, "iron" = 5, "sugar" = 1) // A sheet of plasma, a twinkie and a sheet of metal makes four of these
+ result_amount = 15
/datum/chemical_reaction/synthflesh
name = "Synthflesh"
id = "synthflesh"
- results = list("synthflesh" = 3)
+ result = "synthflesh"
required_reagents = list("blood" = 1, "carbon" = 1, "styptic_powder" = 1)
+ result_amount = 3
/datum/chemical_reaction/styptic_powder
name = "Styptic Powder"
id = "styptic_powder"
- results = list("styptic_powder" = 4)
+ result = "styptic_powder"
required_reagents = list("aluminium" = 1, "hydrogen" = 1, "oxygen" = 1, "sacid" = 1)
+ result_amount = 4
mix_message = "The solution yields an astringent powder."
/datum/chemical_reaction/calomel
name = "Calomel"
id = "calomel"
- results = list("calomel" = 2)
+ result = "calomel"
required_reagents = list("mercury" = 1, "chlorine" = 1)
+ result_amount = 2
required_temp = 374
/datum/chemical_reaction/potass_iodide
name = "Potassium Iodide"
id = "potass_iodide"
- results = list("potass_iodide" = 2)
+ result = "potass_iodide"
required_reagents = list("potassium" = 1, "iodine" = 1)
+ result_amount = 2
/datum/chemical_reaction/pen_acid
name = "Pentetic Acid"
id = "pen_acid"
- results = list("pen_acid" = 6)
+ result = "pen_acid"
required_reagents = list("welding_fuel" = 1, "chlorine" = 1, "ammonia" = 1, "formaldehyde" = 1, "sodium" = 1, "cyanide" = 1)
+ result_amount = 6
/datum/chemical_reaction/sal_acid
name = "Salicyclic Acid"
id = "sal_acid"
- results = list("sal_acid" = 5)
+ result = "sal_acid"
required_reagents = list("sodium" = 1, "phenol" = 1, "carbon" = 1, "oxygen" = 1, "sacid" = 1)
+ result_amount = 5
/datum/chemical_reaction/oxandrolone
name = "Oxandrolone"
id = "oxandrolone"
- results = list("oxandrolone" = 6)
+ result = "oxandrolone"
required_reagents = list("carbon" = 3, "phenol" = 1, "hydrogen" = 1, "oxygen" = 1)
+ result_amount = 6
/datum/chemical_reaction/salbutamol
name = "Salbutamol"
id = "salbutamol"
- results = list("salbutamol" = 5)
+ result = "salbutamol"
required_reagents = list("sal_acid" = 1, "lithium" = 1, "aluminium" = 1, "bromine" = 1, "ammonia" = 1)
+ result_amount = 5
/datum/chemical_reaction/perfluorodecalin
name = "Perfluorodecalin"
id = "perfluorodecalin"
- results = list("perfluorodecalin" = 3)
+ result = "perfluorodecalin"
required_reagents = list("hydrogen" = 1, "fluorine" = 1, "oil" = 1)
+ result_amount = 3
required_temp = 370
mix_message = "The mixture rapidly turns into a dense pink liquid."
/datum/chemical_reaction/ephedrine
name = "Ephedrine"
id = "ephedrine"
- results = list("ephedrine" = 4)
+ result = "ephedrine"
required_reagents = list("sugar" = 1, "oil" = 1, "hydrogen" = 1, "diethylamine" = 1)
+ result_amount = 4
mix_message = "The solution fizzes and gives off toxic fumes."
/datum/chemical_reaction/diphenhydramine
name = "Diphenhydramine"
id = "diphenhydramine"
- results = list("diphenhydramine" = 4)
+ result = "diphenhydramine"
required_reagents = list("oil" = 1, "carbon" = 1, "bromine" = 1, "diethylamine" = 1, "ethanol" = 1)
+ result_amount = 4
mix_message = "The mixture dries into a pale blue powder."
/datum/chemical_reaction/oculine
name = "Oculine"
id = "oculine"
- results = list("oculine" = 3)
+ result = "oculine"
required_reagents = list("charcoal" = 1, "carbon" = 1, "hydrogen" = 1)
+ result_amount = 3
mix_message = "The mixture sputters loudly and becomes a pale pink color."
/datum/chemical_reaction/atropine
name = "Atropine"
id = "atropine"
- results = list("atropine" = 5)
+ result = "atropine"
required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1)
+ result_amount = 5
/datum/chemical_reaction/epinephrine
name = "Epinephrine"
id = "epinephrine"
- results = list("epinephrine" = 6)
+ result = "epinephrine"
required_reagents = list("phenol" = 1, "acetone" = 1, "diethylamine" = 1, "oxygen" = 1, "chlorine" = 1, "hydrogen" = 1)
+ result_amount = 6
/datum/chemical_reaction/strange_reagent
name = "Strange Reagent"
id = "strange_reagent"
- results = list("strange_reagent" = 3)
+ result = "strange_reagent"
required_reagents = list("omnizine" = 1, "holywater" = 1, "mutagen" = 1)
+ result_amount = 3
/datum/chemical_reaction/mannitol
name = "Mannitol"
id = "mannitol"
- results = list("mannitol" = 3)
+ result = "mannitol"
required_reagents = list("sugar" = 1, "hydrogen" = 1, "water" = 1)
+ result_amount = 3
mix_message = "The solution slightly bubbles, becoming thicker."
/datum/chemical_reaction/mutadone
name = "Mutadone"
id = "mutadone"
- results = list("mutadone" = 3)
+ result = "mutadone"
required_reagents = list("mutagen" = 1, "acetone" = 1, "bromine" = 1)
+ result_amount = 3
/datum/chemical_reaction/antihol
name = "antihol"
id = "antihol"
- results = list("antihol" = 3)
+ result = "antihol"
required_reagents = list("ethanol" = 1, "charcoal" = 1, "copper" = 1)
+ result_amount = 3
/datum/chemical_reaction/cryoxadone
name = "Cryoxadone"
id = "cryoxadone"
- results = list("cryoxadone" = 3)
+ result = "cryoxadone"
required_reagents = list("stable_plasma" = 1, "acetone" = 1, "mutagen" = 1)
+ result_amount = 3
/datum/chemical_reaction/haloperidol
name = "Haloperidol"
id = "haloperidol"
- results = list("haloperidol" = 5)
+ result = "haloperidol"
required_reagents = list("chlorine" = 1, "fluorine" = 1, "aluminium" = 1, "potass_iodide" = 1, "oil" = 1)
+ result_amount = 5
/datum/chemical_reaction/bicaridine
name = "Bicaridine"
id = "bicaridine"
- results = list("bicaridine" = 3)
+ result = "bicaridine"
required_reagents = list("carbon" = 1, "oxygen" = 1, "sugar" = 1)
+ result_amount = 3
/datum/chemical_reaction/kelotane
name = "Kelotane"
id = "kelotane"
- results = list("kelotane" = 2)
+ result = "kelotane"
required_reagents = list("carbon" = 1, "silicon" = 1)
+ result_amount = 2
+
/datum/chemical_reaction/antitoxin
name = "Antitoxin"
id = "antitoxin"
- results = list("antitoxin" = 3)
+ result = "antitoxin"
required_reagents = list("nitrogen" = 1, "silicon" = 1, "potassium" = 1)
+ result_amount = 3
/datum/chemical_reaction/tricordrazine
name = "Tricordrazine"
id = "tricordrazine"
- results = list("tricordrazine" = 3)
- required_reagents = list("bicaridine" = 1, "kelotane" = 1, "antitoxin" = 1)
\ No newline at end of file
+ result = "tricordrazine"
+ required_reagents = list("bicaridine" = 1, "kelotane" = 1, "antitoxin" = 1)
+ result_amount = 3
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index ee027a5d23b..9aabf7b8aae 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -2,183 +2,211 @@
/datum/chemical_reaction/sterilizine
name = "Sterilizine"
id = "sterilizine"
- results = list("sterilizine" = 3)
+ result = "sterilizine"
required_reagents = list("ethanol" = 1, "charcoal" = 1, "chlorine" = 1)
+ result_amount = 3
/datum/chemical_reaction/lube
name = "Space Lube"
id = "lube"
- results = list("lube" = 4)
+ result = "lube"
required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1)
+ result_amount = 4
/datum/chemical_reaction/spraytan
name = "Spray Tan"
id = "spraytan"
- results = list("spraytan" = 2)
+ result = "spraytan"
required_reagents = list("orangejuice" = 1, "oil" = 1)
+ result_amount = 2
/datum/chemical_reaction/spraytan2
name = "Spray Tan"
id = "spraytan"
- results = list("spraytan" = 2)
+ result = "spraytan"
required_reagents = list("orangejuice" = 1, "cornoil" = 1)
+ result_amount = 2
/datum/chemical_reaction/impedrezene
name = "Impedrezene"
id = "impedrezene"
- results = list("impedrezene" = 2)
+ result = "impedrezene"
required_reagents = list("mercury" = 1, "oxygen" = 1, "sugar" = 1)
+ result_amount = 2
/datum/chemical_reaction/cryptobiolin
name = "Cryptobiolin"
id = "cryptobiolin"
- results = list("cryptobiolin" = 3)
+ result = "cryptobiolin"
required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1)
+ result_amount = 3
/datum/chemical_reaction/glycerol
name = "Glycerol"
id = "glycerol"
- results = list("glycerol" = 1)
+ result = "glycerol"
required_reagents = list("cornoil" = 3, "sacid" = 1)
+ result_amount = 1
/datum/chemical_reaction/sodiumchloride
name = "Sodium Chloride"
id = "sodiumchloride"
- results = list("sodiumchloride" = 3)
+ result = "sodiumchloride"
required_reagents = list("water" = 1, "sodium" = 1, "chlorine" = 1)
+ result_amount = 3
/datum/chemical_reaction/plasmasolidification
name = "Solid Plasma"
id = "solidplasma"
+ result = null
required_reagents = list("iron" = 5, "frostoil" = 5, "plasma" = 20)
+ result_amount = 1
mob_react = 1
/datum/chemical_reaction/plasmasolidification/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- for(var/i = 1, i <= created_volume, i++)
- new /obj/item/stack/sheet/mineral/plasma(location)
+ new /obj/item/stack/sheet/mineral/plasma(location)
+ return
/datum/chemical_reaction/capsaicincondensation
name = "Capsaicincondensation"
id = "capsaicincondensation"
- results = list("condensedcapsaicin" = 5)
+ result = "condensedcapsaicin"
required_reagents = list("capsaicin" = 1, "ethanol" = 5)
+ result_amount = 5
/datum/chemical_reaction/soapification
name = "Soapification"
id = "soapification"
+ result = null
required_reagents = list("liquidgibs" = 10, "lye" = 10) // requires two scooped gib tiles
required_temp = 374
+ result_amount = 1
mob_react = 1
/datum/chemical_reaction/soapification/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- for(var/i = 1, i <= created_volume, i++)
- new /obj/item/weapon/soap/homemade(location)
+ new /obj/item/weapon/soap/homemade(location)
+ return
/datum/chemical_reaction/candlefication
name = "Candlefication"
id = "candlefication"
+ result = null
required_reagents = list("liquidgibs" = 5, "oxygen" = 5) //
required_temp = 374
+ result_amount = 1
mob_react = 1
/datum/chemical_reaction/candlefication/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- for(var/i = 1, i <= created_volume, i++)
- new /obj/item/candle(location)
+ new /obj/item/candle(location)
+ return
/datum/chemical_reaction/meatification
name = "Meatification"
id = "meatification"
+ result = null
required_reagents = list("liquidgibs" = 10, "nutriment" = 10, "carbon" = 10)
+ result_amount = 1
mob_react = 1
/datum/chemical_reaction/meatification/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- for(var/i = 1, i <= created_volume, i++)
- new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct(location)
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/meatproduct(location)
return
/datum/chemical_reaction/carbondioxide
name = "Direct Carbon Oxidation"
id = "burningcarbon"
- results = list("co2" = 3)
+ result = "co2"
required_reagents = list("carbon" = 1, "oxygen" = 2)
required_temp = 777 // pure carbon isn't especially reactive.
+ result_amount = 3
////////////////////////////////// VIROLOGY //////////////////////////////////////////
/datum/chemical_reaction/virus_food
name = "Virus Food"
id = "virusfood"
- results = list("virusfood" = 15)
+ result = "virusfood"
required_reagents = list("water" = 5, "milk" = 5)
+ result_amount = 15
/datum/chemical_reaction/virus_food_mutagen
name = "mutagenic agar"
id = "mutagenvirusfood"
- results = list("mutagenvirusfood" = 1)
+ result = "mutagenvirusfood"
required_reagents = list("mutagen" = 1, "virusfood" = 1)
+ result_amount = 1
/datum/chemical_reaction/virus_food_synaptizine
name = "virus rations"
id = "synaptizinevirusfood"
- results = list("synaptizinevirusfood" = 1)
+ result = "synaptizinevirusfood"
required_reagents = list("synaptizine" = 1, "virusfood" = 1)
+ result_amount = 1
/datum/chemical_reaction/virus_food_plasma
name = "virus plasma"
id = "plasmavirusfood"
- results = list("plasmavirusfood" = 1)
+ result = "plasmavirusfood"
required_reagents = list("plasma" = 1, "virusfood" = 1)
+ result_amount = 1
/datum/chemical_reaction/virus_food_plasma_synaptizine
name = "weakened virus plasma"
id = "weakplasmavirusfood"
- results = list("weakplasmavirusfood" = 2)
+ result = "weakplasmavirusfood"
required_reagents = list("synaptizine" = 1, "plasmavirusfood" = 1)
+ result_amount = 2
/datum/chemical_reaction/virus_food_mutagen_sugar
name = "sucrose agar"
id = "sugarvirusfood"
- results = list("sugarvirusfood" = 2)
+ result = "sugarvirusfood"
required_reagents = list("sugar" = 1, "mutagenvirusfood" = 1)
+ result_amount = 2
/datum/chemical_reaction/virus_food_mutagen_salineglucose
name = "sucrose agar"
id = "salineglucosevirusfood"
- results = list("sugarvirusfood" = 2)
+ result = "sugarvirusfood"
required_reagents = list("salglu_solution" = 1, "mutagenvirusfood" = 1)
+ result_amount = 2
/datum/chemical_reaction/virus_food_uranium
name = "Decaying uranium gel"
id = "uraniumvirusfood"
- results = list("uraniumvirusfood" = 1)
+ result = "uraniumvirusfood"
required_reagents = list("uranium" = 1, "virusfood" = 1)
+ result_amount = 1
/datum/chemical_reaction/virus_food_uranium_plasma
name = "Unstable uranium gel"
id = "uraniumvirusfood_plasma"
- results = list("uraniumplasmavirusfood_unstable" = 1)
+ result = "uraniumplasmavirusfood_unstable"
required_reagents = list("uranium" = 5, "plasmavirusfood" = 1)
+ result_amount = 1
/datum/chemical_reaction/virus_food_uranium_plasma_gold
name = "Stable uranium gel"
id = "uraniumvirusfood_gold"
- results = list("uraniumplasmavirusfood_stable" = 1)
+ result = "uraniumplasmavirusfood_stable"
required_reagents = list("uranium" = 10, "gold" = 10, "plasma" = 1)
+ result_amount = 1
/datum/chemical_reaction/virus_food_uranium_plasma_silver
name = "Stable uranium gel"
id = "uraniumvirusfood_silver"
- results = list("uraniumplasmavirusfood_stable" = 1)
+ result = "uraniumplasmavirusfood_stable"
required_reagents = list("uranium" = 10, "silver" = 10, "plasma" = 1)
+ result_amount = 1
/datum/chemical_reaction/mix_virus
name = "Mix Virus"
id = "mixvirus"
- results = list("blood" = 1)
+ result = "blood"
required_reagents = list("virusfood" = 1)
required_catalysts = list("blood" = 1)
var/level_min = 0
@@ -304,13 +332,17 @@
/datum/chemical_reaction/surfactant
name = "Foam surfactant"
id = "foam surfactant"
- results = list("fluorosurfactant" = 5)
+ result = "fluorosurfactant"
required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1)
+ result_amount = 5
+
/datum/chemical_reaction/foam
name = "Foam"
id = "foam"
+ result = null
required_reagents = list("fluorosurfactant" = 1, "water" = 1)
+ result_amount = 2
mob_react = 1
/datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, created_volume)
@@ -318,7 +350,7 @@
for(var/mob/M in viewers(5, location))
M << "The solution spews out foam!"
var/datum/effect_system/foam_spread/s = new()
- s.set_up(created_volume*2, location, holder)
+ s.set_up(created_volume, location, holder)
s.start()
holder.clear_reagents()
return
@@ -327,7 +359,9 @@
/datum/chemical_reaction/metalfoam
name = "Metal Foam"
id = "metalfoam"
+ result = null
required_reagents = list("aluminium" = 3, "foaming_agent" = 1, "facid" = 1)
+ result_amount = 5
mob_react = 1
/datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, created_volume)
@@ -337,14 +371,16 @@
M << "The solution spews out a metallic foam!"
var/datum/effect_system/foam_spread/metal/s = new()
- s.set_up(created_volume*5, location, holder, 1)
+ s.set_up(created_volume, location, holder, 1)
s.start()
holder.clear_reagents()
/datum/chemical_reaction/ironfoam
name = "Iron Foam"
id = "ironlfoam"
+ result = null
required_reagents = list("iron" = 3, "foaming_agent" = 1, "facid" = 1)
+ result_amount = 5
mob_react = 1
/datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, created_volume)
@@ -352,15 +388,16 @@
for(var/mob/M in viewers(5, location))
M << "The solution spews out a metallic foam!"
var/datum/effect_system/foam_spread/metal/s = new()
- s.set_up(created_volume*5, location, holder, 2)
+ s.set_up(created_volume, location, holder, 2)
s.start()
holder.clear_reagents()
/datum/chemical_reaction/foaming_agent
name = "Foaming Agent"
id = "foaming_agent"
- results = list("foaming_agent" = 1)
+ result = "foaming_agent"
required_reagents = list("lithium" = 1, "hydrogen" = 1)
+ result_amount = 1
/////////////////////////////// Cleaning and hydroponics /////////////////////////////////////////////////
@@ -368,149 +405,174 @@
/datum/chemical_reaction/ammonia
name = "Ammonia"
id = "ammonia"
- results = list("ammonia" = 3)
+ result = "ammonia"
required_reagents = list("hydrogen" = 3, "nitrogen" = 1)
+ result_amount = 3
/datum/chemical_reaction/diethylamine
name = "Diethylamine"
id = "diethylamine"
- results = list("diethylamine" = 2)
+ result = "diethylamine"
required_reagents = list ("ammonia" = 1, "ethanol" = 1)
+ result_amount = 2
/datum/chemical_reaction/space_cleaner
name = "Space cleaner"
id = "cleaner"
- results = list("cleaner" = 2)
+ result = "cleaner"
required_reagents = list("ammonia" = 1, "water" = 1)
+ result_amount = 2
/datum/chemical_reaction/plantbgone
name = "Plant-B-Gone"
id = "plantbgone"
- results = list("plantbgone" = 5)
+ result = "plantbgone"
required_reagents = list("toxin" = 1, "water" = 4)
+ result_amount = 5
/datum/chemical_reaction/weedkiller
name = "Weed Killer"
id = "weedkiller"
- results = list("weedkiller" = 5)
+ result = "weedkiller"
required_reagents = list("toxin" = 1, "ammonia" = 4)
+ result_amount = 5
/datum/chemical_reaction/pestkiller
name = "Pest Killer"
id = "pestkiller"
- results = list("pestkiller" = 5)
+ result = "pestkiller"
required_reagents = list("toxin" = 1, "ethanol" = 4)
+ result_amount = 5
/datum/chemical_reaction/drying_agent
name = "Drying agent"
id = "drying_agent"
- results = list("drying_agent" = 3)
+ result = "drying_agent"
required_reagents = list("stable_plasma" = 2, "ethanol" = 1, "sodium" = 1)
+ result_amount = 3
//////////////////////////////////// Other goon stuff ///////////////////////////////////////////
/datum/chemical_reaction/acetone
name = "acetone"
id = "acetone"
- results = list("acetone" = 3)
+ result = "acetone"
required_reagents = list("oil" = 1, "welding_fuel" = 1, "oxygen" = 1)
+ result_amount = 3
/datum/chemical_reaction/carpet
name = "carpet"
id = "carpet"
- results = list("carpet" = 2)
+ result = "carpet"
required_reagents = list("space_drugs" = 1, "blood" = 1)
+ result_amount = 2
+
/datum/chemical_reaction/oil
name = "Oil"
id = "oil"
- results = list("oil" = 3)
+ result = "oil"
required_reagents = list("welding_fuel" = 1, "carbon" = 1, "hydrogen" = 1)
+ result_amount = 3
/datum/chemical_reaction/phenol
name = "phenol"
id = "phenol"
- results = list("phenol" = 3)
+ result = "phenol"
required_reagents = list("water" = 1, "chlorine" = 1, "oil" = 1)
+ result_amount = 3
/datum/chemical_reaction/ash
name = "Ash"
id = "ash"
- results = list("ash" = 1)
+ result = "ash"
required_reagents = list("oil" = 1)
+ result_amount = 1
required_temp = 480
/datum/chemical_reaction/colorful_reagent
name = "colorful_reagent"
id = "colorful_reagent"
- results = list("colorful_reagent" = 5)
+ result = "colorful_reagent"
required_reagents = list("stable_plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1)
+ result_amount = 5
/datum/chemical_reaction/life
name = "Life"
id = "life"
+ result = null
required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "blood" = 1)
+ result_amount = 1
required_temp = 374
/datum/chemical_reaction/life/on_reaction(datum/reagents/holder, created_volume)
- chemical_mob_spawn(holder, rand(1, round(created_volume, 1)), "Life") // Lol.
+ chemical_mob_spawn(holder, 1, "Life")
/datum/chemical_reaction/corgium
name = "corgium"
id = "corgium"
+ result = null
required_reagents = list("nutriment" = 1, "colorful_reagent" = 1, "strange_reagent" = 1, "blood" = 1)
+ result_amount = 1
required_temp = 374
/datum/chemical_reaction/corgium/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- for(var/i = rand(1, created_volume), i <= created_volume, i++) // More lulz.
- new /mob/living/simple_animal/pet/dog/corgi(location)
+ new /mob/living/simple_animal/pet/dog/corgi(location)
..()
/datum/chemical_reaction/hair_dye
name = "hair_dye"
id = "hair_dye"
- results = list("hair_dye" = 5)
+ result = "hair_dye"
required_reagents = list("colorful_reagent" = 1, "radium" = 1, "space_drugs" = 1)
+ result_amount = 5
/datum/chemical_reaction/barbers_aid
name = "barbers_aid"
id = "barbers_aid"
- results = list("barbers_aid" = 5)
+ result = "barbers_aid"
required_reagents = list("carpet" = 1, "radium" = 1, "space_drugs" = 1)
+ result_amount = 5
/datum/chemical_reaction/concentrated_barbers_aid
name = "concentrated_barbers_aid"
id = "concentrated_barbers_aid"
- results = list("concentrated_barbers_aid" = 2)
+ result = "concentrated_barbers_aid"
required_reagents = list("barbers_aid" = 1, "mutagen" = 1)
+ result_amount = 2
/datum/chemical_reaction/saltpetre
name = "saltpetre"
id = "saltpetre"
- results = list("saltpetre" = 3)
+ result = "saltpetre"
required_reagents = list("potassium" = 1, "nitrogen" = 1, "oxygen" = 3)
+ result_amount = 3
/datum/chemical_reaction/lye
name = "lye"
id = "lye"
- results = list("lye" = 3)
+ result = "lye"
required_reagents = list("sodium" = 1, "hydrogen" = 1, "oxygen" = 1)
+ result_amount = 3
/datum/chemical_reaction/lye2
name = "lye"
id = "lye"
- results = list("lye" = 2)
+ result = "lye"
required_reagents = list("ash" = 1, "water" = 1)
+ result_amount = 2
/datum/chemical_reaction/royal_bee_jelly
name = "royal bee jelly"
id = "royal_bee_jelly"
- results = list("royal_bee_jelly" = 5)
+ result = "royal_bee_jelly"
required_reagents = list("mutagen" = 10, "honey" = 40)
+ result_amount = 5
/datum/chemical_reaction/laughter
name = "laughter"
id = "laughter"
- results = list("laughter" = 10) // Fuck it. I'm not touching this one.
+ result = "laughter"
required_reagents = list("sugar" = 1, "banana" = 1)
+ result_amount = 10
diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
index 38e316be26b..af70d5ddb6a 100644
--- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
+++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
@@ -1,6 +1,7 @@
/datum/chemical_reaction/reagent_explosion
name = "Generic explosive"
id = "reagent_explosion"
+ result = null
var/strengthdiv = 10
var/modifier = 0
@@ -26,20 +27,22 @@
/datum/chemical_reaction/reagent_explosion/nitroglycerin
name = "Nitroglycerin"
id = "nitroglycerin"
- results = list("nitroglycerin" = 2)
+ result = "nitroglycerin"
required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1)
+ result_amount = 2
strengthdiv = 2
/datum/chemical_reaction/reagent_explosion/nitroglycerin/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
return
- holder.remove_reagent("nitroglycerin", created_volume*2)
+ holder.remove_reagent("nitroglycerin", created_volume)
..()
/datum/chemical_reaction/reagent_explosion/nitroglycerin_explosion
name = "Nitroglycerin explosion"
id = "nitroglycerin_explosion"
required_reagents = list("nitroglycerin" = 1)
+ result_amount = 1
required_temp = 474
strengthdiv = 2
@@ -48,6 +51,7 @@
name = "Explosion"
id = "potassium_explosion"
required_reagents = list("water" = 1, "potassium" = 1)
+ result_amount = 2
strengthdiv = 10
/datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom
@@ -80,13 +84,15 @@
/datum/chemical_reaction/blackpowder
name = "Black Powder"
id = "blackpowder"
- results = list("blackpowder" = 3)
+ result = "blackpowder"
required_reagents = list("saltpetre" = 1, "charcoal" = 1, "sulfur" = 1)
+ result_amount = 3
/datum/chemical_reaction/reagent_explosion/blackpowder_explosion
name = "Black Powder Kaboom"
id = "blackpowder_explosion"
required_reagents = list("blackpowder" = 1)
+ result_amount = 1
required_temp = 474
strengthdiv = 6
modifier = 1
@@ -99,32 +105,38 @@
/datum/chemical_reaction/thermite
name = "Thermite"
id = "thermite"
- results = list("thermite" = 3)
+ result = "thermite"
required_reagents = list("aluminium" = 1, "iron" = 1, "oxygen" = 1)
+ result_amount = 3
/datum/chemical_reaction/emp_pulse
name = "EMP Pulse"
id = "emp_pulse"
+ result = null
required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
+ result_amount = 2
/datum/chemical_reaction/emp_pulse/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
// 100 created volume = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes.
// 200 created volume = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades.
- empulse(location, round(created_volume / 12), round(created_volume / 7), 1)
+ empulse(location, round(created_volume / 24), round(created_volume / 14), 1)
holder.clear_reagents()
/datum/chemical_reaction/stabilizing_agent
name = "stabilizing_agent"
id = "stabilizing_agent"
- results = list("stabilizing_agent" = 3)
+ result = "stabilizing_agent"
required_reagents = list("iron" = 1, "oxygen" = 1, "hydrogen" = 1)
+ result_amount = 3
+
/datum/chemical_reaction/clf3
name = "Chlorine Trifluoride"
id = "clf3"
- results = list("clf3" = 4)
+ result = "clf3"
required_reagents = list("chlorine" = 1, "fluorine" = 3)
+ result_amount = 4
required_temp = 424
/datum/chemical_reaction/clf3/on_reaction(datum/reagents/holder, created_volume)
@@ -133,10 +145,12 @@
PoolOrNew(/obj/effect/hotspot, turf)
holder.chem_temp = 1000 // hot as shit
+
/datum/chemical_reaction/reagent_explosion/methsplosion/
name = "Meth explosion"
id = "methboom1"
- results = list("methboom1" = 1)
+ result = "methboom1"
+ result_amount = 1
required_temp = 380 //slightly above the meth mix time.
required_reagents = list("methamphetamine" = 1)
strengthdiv = 6
@@ -152,25 +166,28 @@
/datum/chemical_reaction/reagent_explosion/methsplosion/methboom2
required_reagents = list("diethylamine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1) //diethylamine is often left over from mixing the ephedrine.
required_temp = 300 //room temperature, chilling it even a little will prevent the explosion
- results = list("methboom1" = 4) // this is ugly. Sorry goof.
+ result_amount = 4
/datum/chemical_reaction/sorium
name = "Sorium"
id = "sorium"
- results = list("sorium" = 4)
+ result = "sorium"
required_reagents = list("mercury" = 1, "oxygen" = 1, "nitrogen" = 1, "carbon" = 1)
+ result_amount = 4
/datum/chemical_reaction/sorium/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
return
- holder.remove_reagent("sorium", created_volume*4)
+ holder.remove_reagent("sorium", created_volume)
var/turf/T = get_turf(holder.my_atom)
- var/range = Clamp(sqrt(created_volume*4), 1, 6)
+ var/range = Clamp(sqrt(created_volume), 1, 6)
goonchem_vortex(T, 1, range)
/datum/chemical_reaction/sorium_vortex
name = "sorium_vortex"
id = "sorium_vortex"
+ result = null
+ result_amount = 1
required_reagents = list("sorium" = 1)
required_temp = 474
@@ -179,23 +196,27 @@
var/range = Clamp(sqrt(created_volume), 1, 6)
goonchem_vortex(T, 1, range)
+
/datum/chemical_reaction/liquid_dark_matter
name = "Liquid Dark Matter"
id = "liquid_dark_matter"
- results = list("liquid_dark_matter" = 3)
+ result = "liquid_dark_matter"
required_reagents = list("stable_plasma" = 1, "radium" = 1, "carbon" = 1)
+ result_amount = 3
/datum/chemical_reaction/liquid_dark_matter/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
return
- holder.remove_reagent("liquid_dark_matter", created_volume*3)
+ holder.remove_reagent("liquid_dark_matter", created_volume)
var/turf/T = get_turf(holder.my_atom)
- var/range = Clamp(sqrt(created_volume*3), 1, 6)
+ var/range = Clamp(sqrt(created_volume), 1, 6)
goonchem_vortex(T, 0, range)
/datum/chemical_reaction/ldm_vortex
name = "LDM Vortex"
id = "ldm_vortex"
+ result = null
+ result_amount = 1
required_reagents = list("liquid_dark_matter" = 1)
required_temp = 474
@@ -207,8 +228,9 @@
/datum/chemical_reaction/flash_powder
name = "Flash powder"
id = "flash_powder"
- results = list("flash_powder" = 3)
+ result = "flash_powder"
required_reagents = list("aluminium" = 1, "potassium" = 1, "sulfur" = 1 )
+ result_amount = 3
/datum/chemical_reaction/flash_powder/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
@@ -217,18 +239,20 @@
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
s.set_up(2, 1, location)
s.start()
- for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location))
+ for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location))
if(C.flash_eyes())
if(get_dist(C, location) < 4)
C.Weaken(5)
else
C.Stun(5)
- holder.remove_reagent("flash_powder", created_volume*3)
+ holder.remove_reagent("flash_powder", created_volume)
/datum/chemical_reaction/flash_powder_flash
name = "Flash powder activation"
id = "flash_powder_flash"
+ result = null
required_reagents = list("flash_powder" = 1)
+ result_amount = 1
required_temp = 374
/datum/chemical_reaction/flash_powder_flash/on_reaction(datum/reagents/holder, created_volume)
@@ -246,14 +270,15 @@
/datum/chemical_reaction/smoke_powder
name = "smoke_powder"
id = "smoke_powder"
- results = list("smoke_powder" = 3)
+ result = "smoke_powder"
required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1)
+ result_amount = 3
/datum/chemical_reaction/smoke_powder/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
return
- holder.remove_reagent("smoke_powder", created_volume*3)
- var/smoke_radius = round(sqrt(created_volume * 1.5), 1)
+ holder.remove_reagent("smoke_powder", created_volume)
+ var/smoke_radius = round(sqrt(created_volume / 2), 1)
var/location = get_turf(holder.my_atom)
var/datum/effect_system/smoke_spread/chem/S = new
S.attach(location)
@@ -267,8 +292,10 @@
/datum/chemical_reaction/smoke_powder_smoke
name = "smoke_powder_smoke"
id = "smoke_powder_smoke"
+ result = null
required_reagents = list("smoke_powder" = 1)
required_temp = 374
+ result_amount = 1
secondary = 1
mob_react = 1
@@ -284,19 +311,22 @@
if(holder && holder.my_atom)
holder.clear_reagents()
+
+
/datum/chemical_reaction/sonic_powder
name = "sonic_powder"
id = "sonic_powder"
- results = list("sonic_powder" = 3)
+ result = "sonic_powder"
required_reagents = list("oxygen" = 1, "cola" = 1, "phosphorus" = 1)
+ result_amount = 3
/datum/chemical_reaction/sonic_powder/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
return
- holder.remove_reagent("sonic_powder", created_volume*3)
+ holder.remove_reagent("sonic_powder", created_volume)
var/location = get_turf(holder.my_atom)
playsound(location, 'sound/effects/bang.ogg', 25, 1)
- for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location))
+ for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location))
if(C.check_ear_prot())
continue
C.show_message("BANG", 2)
@@ -311,8 +341,10 @@
/datum/chemical_reaction/sonic_powder_deafen
name = "sonic_powder_deafen"
id = "sonic_powder_deafen"
+ result = null
required_reagents = list("sonic_powder" = 1)
required_temp = 374
+ result_amount = 1
/datum/chemical_reaction/sonic_powder_deafen/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
@@ -333,8 +365,9 @@
/datum/chemical_reaction/phlogiston
name = "phlogiston"
id = "phlogiston"
- results = list("phlogiston" = 3)
+ result = "phlogiston"
required_reagents = list("phosphorus" = 1, "sacid" = 1, "stable_plasma" = 1)
+ result_amount = 3
/datum/chemical_reaction/phlogiston/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
@@ -345,17 +378,21 @@
holder.clear_reagents()
return
+
/datum/chemical_reaction/napalm
name = "Napalm"
id = "napalm"
- results = list("napalm" = 3)
+ result = "napalm"
required_reagents = list("oil" = 1, "welding_fuel" = 1, "ethanol" = 1 )
+ result_amount = 3
+
/datum/chemical_reaction/cryostylane
name = "cryostylane"
id = "cryostylane"
- results = list("cryostylane" = 3)
+ result = "cryostylane"
required_reagents = list("water" = 1, "stable_plasma" = 1, "nitrogen" = 1)
+ result_amount = 3
/datum/chemical_reaction/cryostylane/on_reaction(datum/reagents/holder, created_volume)
holder.chem_temp = 20 // cools the fuck down
@@ -365,8 +402,9 @@
/datum/chemical_reaction/pyrosium
name = "pyrosium"
id = "pyrosium"
- results = list("pyrosium" = 3)
+ result = "pyrosium"
required_reagents = list("stable_plasma" = 1, "radium" = 1, "phosphorus" = 1)
+ result_amount = 3
/datum/chemical_reaction/pyrosium/on_reaction(datum/reagents/holder, created_volume)
holder.chem_temp = 20 // also cools the fuck down
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index 2ffb86885f9..e8a1778ae68 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -3,7 +3,9 @@
/datum/chemical_reaction/slimespawn
name = "Slime Spawn"
id = "m_spawn"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/grey
required_other = 1
@@ -18,8 +20,9 @@
/datum/chemical_reaction/slimeinaprov
name = "Slime epinephrine"
id = "m_inaprov"
- results = list("epinephrine" = 3)
+ result = "epinephrine"
required_reagents = list("water" = 5)
+ result_amount = 3
required_other = 1
required_container = /obj/item/slime_extract/grey
@@ -29,7 +32,9 @@
/datum/chemical_reaction/slimemonkey
name = "Slime Monkey"
id = "m_monkey"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/grey
required_other = 1
@@ -43,8 +48,9 @@
/datum/chemical_reaction/slimemutate
name = "Mutation Toxin"
id = "mutationtoxin"
- results = list("mutationtoxin" = 1)
+ result = "mutationtoxin"
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_other = 1
required_container = /obj/item/slime_extract/green
@@ -55,8 +61,9 @@
/datum/chemical_reaction/slimemutate_unstable
name = "Unstable Mutation Toxin"
id = "unstablemutationtoxin"
- results = list("unstablemutationtoxin" = 1)
+ result = "unstablemutationtoxin"
required_reagents = list("radium" = 1)
+ result_amount = 1
required_other = 1
required_container = /obj/item/slime_extract/green
mix_message = "The mixture rapidly expands and contracts, its appearance shifting into a sickening green."
@@ -68,7 +75,9 @@
/datum/chemical_reaction/slimemetal
name = "Slime Metal"
id = "m_metal"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/metal
required_other = 1
@@ -97,7 +106,9 @@
/datum/chemical_reaction/slimecrit
name = "Slime Crit"
id = "m_tele"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/gold
required_other = 1
@@ -110,7 +121,9 @@
/datum/chemical_reaction/slimecritlesser
name = "Slime Crit Lesser"
id = "m_tele3"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/gold
required_other = 1
@@ -123,7 +136,9 @@
/datum/chemical_reaction/slimecritfriendly
name = "Slime Crit Friendly"
id = "m_tele5"
+ result = null
required_reagents = list("water" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/gold
required_other = 1
@@ -137,7 +152,9 @@
/datum/chemical_reaction/slimebork
name = "Slime Bork"
id = "m_tele2"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/silver
required_other = 1
@@ -184,7 +201,9 @@
/datum/chemical_reaction/slimebork2
name = "Slime Bork 2"
id = "m_tele4"
+ result = null
required_reagents = list("water" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/silver
required_other = 1
@@ -213,8 +232,9 @@
/datum/chemical_reaction/slimefrost
name = "Slime Frost Oil"
id = "m_frostoil"
- results = list("frostoil" = 10)
+ result = "frostoil"
required_reagents = list("plasma" = 1)
+ result_amount = 10
required_container = /obj/item/slime_extract/blue
required_other = 1
@@ -225,7 +245,9 @@
/datum/chemical_reaction/slimestabilizer
name = "Slime Stabilizer"
id = "m_slimestabilizer"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/blue
required_other = 1
@@ -240,7 +262,9 @@
/datum/chemical_reaction/slimefreeze
name = "Slime Freeze"
id = "m_freeze"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/darkblue
required_other = 1
@@ -261,7 +285,9 @@
/datum/chemical_reaction/slimefireproof
name = "Slime Fireproof"
id = "m_fireproof"
+ result = null
required_reagents = list("water" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/darkblue
required_other = 1
@@ -274,8 +300,9 @@
/datum/chemical_reaction/slimecasp
name = "Slime Capsaicin Oil"
id = "m_capsaicinoil"
- results = list("capsaicin" = 10)
+ result = "capsaicin"
required_reagents = list("blood" = 1)
+ result_amount = 10
required_container = /obj/item/slime_extract/orange
required_other = 1
@@ -285,7 +312,9 @@
/datum/chemical_reaction/slimefire
name = "Slime fire"
id = "m_fire"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/orange
required_other = 1
@@ -307,7 +336,9 @@
/datum/chemical_reaction/slimeoverload
name = "Slime EMP"
id = "m_emp"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/yellow
required_other = 1
@@ -319,7 +350,9 @@
/datum/chemical_reaction/slimecell
name = "Slime Powercell"
id = "m_cell"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/yellow
required_other = 1
@@ -331,7 +364,9 @@
/datum/chemical_reaction/slimeglow
name = "Slime Glow"
id = "m_glow"
+ result = null
required_reagents = list("water" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/yellow
required_other = 1
@@ -347,7 +382,9 @@
/datum/chemical_reaction/slimepsteroid
name = "Slime Steroid"
id = "m_steroid"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/purple
required_other = 1
@@ -359,8 +396,9 @@
/datum/chemical_reaction/slimejam
name = "Slime Jam"
id = "m_jam"
- results = list("slimejelly" = 10)
+ result = "slimejelly"
required_reagents = list("sugar" = 1)
+ result_amount = 10
required_container = /obj/item/slime_extract/purple
required_other = 1
@@ -372,7 +410,9 @@
/datum/chemical_reaction/slimeplasma
name = "Slime Plasma"
id = "m_plasma"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/darkpurple
required_other = 1
@@ -386,7 +426,9 @@
/datum/chemical_reaction/slimemutator
name = "Slime Mutator"
id = "m_slimemutator"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/red
required_other = 1
@@ -398,7 +440,9 @@
/datum/chemical_reaction/slimebloodlust
name = "Bloodlust"
id = "m_bloodlust"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/red
required_other = 1
@@ -412,7 +456,9 @@
/datum/chemical_reaction/slimespeed
name = "Slime Speed"
id = "m_speed"
+ result = null
required_reagents = list("water" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/red
required_other = 1
@@ -426,7 +472,9 @@
/datum/chemical_reaction/docility
name = "Docility Potion"
id = "m_potion"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/pink
required_other = 1
@@ -438,7 +486,9 @@
/datum/chemical_reaction/gender
name = "Gender Potion"
id = "m_gender"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/pink
required_other = 1
@@ -451,8 +501,9 @@
/datum/chemical_reaction/slimemutate2
name = "Advanced Mutation Toxin"
id = "mutationtoxin2"
- results = list("amutationtoxin" = 1)
+ result = "amutationtoxin"
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_other = 1
required_container = /obj/item/slime_extract/black
@@ -463,7 +514,9 @@
/datum/chemical_reaction/slimeexplosion
name = "Slime Explosion"
id = "m_explosion"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/oil
required_other = 1
@@ -488,6 +541,8 @@
/datum/chemical_reaction/slimepotion2
name = "Slime Potion 2"
id = "m_potion2"
+ result = null
+ result_amount = 1
required_container = /obj/item/slime_extract/lightpink
required_reagents = list("plasma" = 1)
required_other = 1
@@ -501,7 +556,9 @@
/datum/chemical_reaction/slimegolem
name = "Slime Golem"
id = "m_golem"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/adamantine
required_other = 1
@@ -515,7 +572,9 @@
/datum/chemical_reaction/slimefloor2
name = "Bluespace Floor"
id = "m_floor2"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/bluespace
required_other = 1
@@ -529,7 +588,9 @@
/datum/chemical_reaction/slimecrystal
name = "Slime Crystal"
id = "m_crystal"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/bluespace
required_other = 1
@@ -543,7 +604,9 @@
/datum/chemical_reaction/slimepsteroid2
name = "Slime Steroid 2"
id = "m_steroid2"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/cerulean
required_other = 1
@@ -557,7 +620,9 @@
/datum/chemical_reaction/slime_territory
name = "Slime Territory"
id = "s_territory"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/cerulean
required_other = 1
@@ -570,7 +635,9 @@
/datum/chemical_reaction/slimestop
name = "Slime Stop"
id = "m_stop"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/sepia
required_other = 1
@@ -586,7 +653,9 @@
/datum/chemical_reaction/slimecamera
name = "Slime Camera"
id = "m_camera"
+ result = null
required_reagents = list("water" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/sepia
required_other = 1
@@ -600,7 +669,9 @@
/datum/chemical_reaction/slimefloor
name = "Sepia Floor"
id = "m_floor"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/sepia
required_other = 1
@@ -617,7 +688,9 @@
/datum/chemical_reaction/slimepaint
name = "Slime Paint"
id = "s_paint"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_container = /obj/item/slime_extract/pyrite
required_other = 1
@@ -633,7 +706,9 @@
/datum/chemical_reaction/slimeRNG
name = "Random Core"
id = "slimerng"
+ result = null
required_reagents = list("plasma" = 1)
+ result_amount = 1
required_other = 1
required_container = /obj/item/slime_extract/rainbow
@@ -648,7 +723,9 @@
/datum/chemical_reaction/slime_transfer
name = "Transfer Potion"
id = "slimetransfer"
+ result = null
required_reagents = list("blood" = 1)
+ result_amount = 1
required_other = 1
required_container = /obj/item/slime_extract/rainbow
diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm
index 5d4fd3ba501..c83fa4176bf 100644
--- a/code/modules/reagents/chemistry/recipes/toxins.dm
+++ b/code/modules/reagents/chemistry/recipes/toxins.dm
@@ -2,96 +2,111 @@
/datum/chemical_reaction/formaldehyde
name = "formaldehyde"
id = "Formaldehyde"
- results = list("formaldehyde" = 3)
+ result = "formaldehyde"
required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1)
+ result_amount = 3
required_temp = 420
/datum/chemical_reaction/neurotoxin2
name = "neurotoxin2"
id = "neurotoxin2"
- results = list("neurotoxin2" = 1)
+ result = "neurotoxin2"
required_reagents = list("space_drugs" = 1)
+ result_amount = 1
required_temp = 674
/datum/chemical_reaction/cyanide
name = "Cyanide"
id = "cyanide"
- results = list("cyanide" = 3)
+ result = "cyanide"
required_reagents = list("oil" = 1, "ammonia" = 1, "oxygen" = 1)
+ result_amount = 3
required_temp = 380
/datum/chemical_reaction/itching_powder
name = "Itching Powder"
id = "itching_powder"
- results = list("itching_powder" = 3)
+ result = "itching_powder"
required_reagents = list("welding_fuel" = 1, "ammonia" = 1, "charcoal" = 1)
+ result_amount = 3
/datum/chemical_reaction/facid
name = "Fluorosulfuric acid"
id = "facid"
- results = list("facid" = 4)
+ result = "facid"
required_reagents = list("sacid" = 1, "fluorine" = 1, "hydrogen" = 1, "potassium" = 1)
+ result_amount = 4
required_temp = 380
/datum/chemical_reaction/sulfonal
name = "sulfonal"
id = "sulfonal"
- results = list("sulfonal" = 3)
+ result = "sulfonal"
required_reagents = list("acetone" = 1, "diethylamine" = 1, "sulfur" = 1)
+ result_amount = 3
/datum/chemical_reaction/lipolicide
name = "lipolicide"
id = "lipolicide"
- results = list("lipolicide" = 3)
+ result = "lipolicide"
required_reagents = list("mercury" = 1, "diethylamine" = 1, "ephedrine" = 1)
+ result_amount = 3
/datum/chemical_reaction/mutagen
name = "Unstable mutagen"
id = "mutagen"
- results = list("mutagen" = 3)
+ result = "mutagen"
required_reagents = list("radium" = 1, "phosphorus" = 1, "chlorine" = 1)
+ result_amount = 3
/datum/chemical_reaction/lexorin
name = "Lexorin"
id = "lexorin"
- results = list("lexorin" = 3)
+ result = "lexorin"
required_reagents = list("plasma" = 1, "hydrogen" = 1, "nitrogen" = 1)
+ result_amount = 3
/datum/chemical_reaction/chloralhydrate
name = "Chloral Hydrate"
id = "chloralhydrate"
- results = list("chloralhydrate" = 1)
+ result = "chloralhydrate"
required_reagents = list("ethanol" = 1, "chlorine" = 3, "water" = 1)
+ result_amount = 1
/datum/chemical_reaction/mutetoxin //i'll just fit this in here snugly between other unfun chemicals :v
name = "Mute toxin"
id = "mutetoxin"
- results = list("mutetoxin" = 2)
+ result = "mutetoxin"
required_reagents = list("uranium" = 2, "water" = 1, "carbon" = 1)
+ result_amount = 2
/datum/chemical_reaction/zombiepowder
name = "Zombie Powder"
id = "zombiepowder"
- results = list("zombiepowder" = 2)
+ result = "zombiepowder"
required_reagents = list("carpotoxin" = 5, "morphine" = 5, "copper" = 5)
+ result_amount = 2
/datum/chemical_reaction/mindbreaker
name = "Mindbreaker Toxin"
id = "mindbreaker"
- results = list("mindbreaker" = 5)
+ result = "mindbreaker"
required_reagents = list("silicon" = 1, "hydrogen" = 1, "charcoal" = 1)
+ result_amount = 5
/datum/chemical_reaction/teslium
name = "Teslium"
id = "teslium"
- results = list("teslium" = 3)
+ result = "teslium"
required_reagents = list("plasma" = 1, "silver" = 1, "blackpowder" = 1)
+ result_amount = 3
mix_message = "A jet of sparks flies from the mixture as it merges into a flickering slurry."
required_temp = 400
/datum/chemical_reaction/heparin
name = "Heparin"
id = "Heparin"
- results = list("heparin" = 4)
+ result = "heparin"
required_reagents = list("formaldehyde" = 1, "sodium" = 1, "chlorine" = 1, "lithium" = 1)
+ result_amount = 4
mix_message = "The mixture thins and loses all color."
diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi
index 38c47790fc1..eaa9285a954 100644
Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ