FANDOM


//I recommend you set the result amount to the total volume of all components.

explosion_potassium name = "Explosion" id = "explosion_potassium" result = null required_reagents = list("water" = 1, "potassium" = 1) result_amount = 2 mix_message = "The mixture explodes!"

emp_pulse name = "EMP Pulse" id = "emp_pulse" result = null required_reagents = list("uranium" = 1, "iron" = 1) /* silicate name = "Silicate" id = "silicate" result = "silicate" required_reagents = list("aluminum" = 1, "silicon" = 1, "oxygen" = 1) result_amount = 3

  • /

ice name = "Ice" id = "ice" result = "ice" required_reagents = list("water" = 1) result_amount = 1 max_temp = 273 mix_message = "Ice forms as the water freezes." mix_sound = null

sterilizine name = "Sterilizine" id = "sterilizine" result = "sterilizine" required_reagents = list("ethanol" = 1, "charcoal" = 1, "chlorine" = 1) result_amount = 3

mutagen name = "Unstable mutagen" id = "mutagen" result = "mutagen" required_reagents = list("radium" = 1, "plasma" = 1, "chlorine" = 1) result_amount = 3 mix_message = "The substance turns neon green and bubbles unnervingly."

hydrocodone name = "Hydrocodone" id = "hydrocodone" result = "hydrocodone" required_reagents = list("morphine" = 1, "sacid" = 1, "water" = 1, "oil" = 1) result_amount = 2

thermite name = "Thermite" id = "thermite" result = "thermite" required_reagents = list("aluminum" = 1, "iron" = 1, "oxygen" = 1) result_amount = 3

space_drugs name = "Space Drugs" id = "space_drugs" result = "space_drugs" required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1) result_amount = 3 mix_message = "Slightly dizzying fumes drift from the solution."

lube name = "Space Lube" id = "lube" result = "lube" required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1) result_amount = 3 mix_message = "The substance turns a striking cyan and becomes oily."

mitocholide name = "mitocholide" id = "mitocholide" result = "mitocholide" required_reagents = list("synthflesh" = 1, "cryoxadone" = 1, "plasma" = 1) result_amount = 3

holy_water name = "Holy Water" id = "holywater" result = "holywater" required_reagents = list("water" = 1, "mercury" = 1, "wine" = 1) result_amount = 3 mix_message = "The water somehow seems purified. Or maybe defiled."

cryoxadone name = "Cryoxadone" id = "cryoxadone" result = "cryoxadone" required_reagents = list("cryostylane" = 1, "plasma" = 1, "acetone" = 1, "mutagen" = 1) result_amount = 4 mix_message = "The solution bubbles softly."

spaceacillin name = "Spaceacillin" id = "spaceacillin" result = "spaceacillin" required_reagents = list("fungus" = 1, "ethanol" = 1) result_amount = 2 mix_message = "The solvent extracts an antibiotic compound from the fungus."

Audioline name = "Audioline" id = "audioline" result = "audioline" required_reagents = list("spaceacillin" = 1, "salglu_solution" = 1, "epinephrine" = 1) result_amount = 3

glycerol name = "Glycerol" id = "glycerol" result = "glycerol" required_reagents = list("cornoil" = 3, "sacid" = 1) result_amount = 1

nitroglycerin name = "Nitroglycerin" id = "nitroglycerin" result = "nitroglycerin" required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1) result_amount = 2 on_reaction(var/datum/reagents/holder, var/created_volume) var/datum/effect/effect/system/reagents_explosion/e = new() e.set_up(round (created_volume/2, 1), holder.my_atom, 0, 0) e.start()

holder.clear_reagents() return

sodiumchloride name = "Sodium Chloride" id = "sodiumchloride" result = "sodiumchloride" required_reagents = list("sodium" = 1, "chlorine" = 1, "water" = 1) result_amount = 3 mix_message = "The solution crystallizes with a brief flare of light."

rezadone name = "Rezadone" id = "rezadone" result = "rezadone" required_reagents = list("carpotoxin" = 1, "spaceacillin" = 1, "copper" = 1) result_amount = 3

lsd name = "Lysergic acid diethylamide" id = "lsd" result = "lsd" required_reagents = list("diethylamine" = 1, "fungus" = 1) result_amount = 3 mix_message = "The mixture turns a rather unassuming color and settles."

plastication name = "Plastic" id = "solidplastic" result = null required_reagents = list("facid" = 10, "plasticide" = 20) result_amount = 1 on_reaction(var/datum/reagents/holder) var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/mineral/plastic M.amount = 10 M.loc = get_turf(holder.my_atom) return

virus_food name = "Virus Food" id = "virusfood" result = "virusfood" required_reagents = list("water" = 1, "milk" = 1, "oxygen" = 1) result_amount = 3 /* mix_virus name = "Mix Virus" id = "mixvirus" result = "blood" required_reagents = list("virusfood" = 5) required_catalysts = list("blood") var/level = 2 on_reaction(var/datum/reagents/holder, var/created_volume) var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list if(B && B.data) var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] if(D) D.Evolve(level - rand(0, 1)) mix_virus_2 name = "Mix Virus 2" id = "mixvirus2" required_reagents = list("mutagen" = 5) level = 4 rem_virus name = "Devolve Virus" id = "remvirus" required_reagents = list("synaptizine" = 5) on_reaction(var/datum/reagents/holder, var/created_volume) var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list if(B && B.data) var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] if(D) D.Devolve()

  • /

condensedcapsaicin name = "Condensed Capsaicin" id = "condensedcapsaicin" result = "condensedcapsaicin" required_reagents = list("capsaicin" = 2) required_catalysts = list("plasma" = 5) result_amount = 1 ///////////////////////////////////////////////////////////////////////////////////

// foam and foam precursor

surfactant name = "Foam surfactant" id = "foam surfactant" result = "fluorosurfactant" required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1) result_amount = 5 mix_message = "A head of foam results from the mixture's constant fizzing."


foam name = "Foam" id = "foam" result = null required_reagents = list("fluorosurfactant" = 1, "water" = 1) result_amount = 2

on_reaction(var/datum/reagents/holder, var/created_volume)


var/location = get_turf(holder.my_atom) for(var/mob/M in viewers(5, location)) M << "\red The solution violently bubbles!"

location = get_turf(holder.my_atom)

for(var/mob/M in viewers(5, location)) M << "\red The solution spews out foam!"

//world << "Holder volume is [holder.total_volume]" //for(var/datum/reagent/R in holder.reagent_list) // world << "[R.name] = [R.volume]"

var/datum/effect/effect/system/foam_spread/s = new() s.set_up(created_volume, location, holder, 0) s.start() holder.clear_reagents() return

metalfoam name = "Metal Foam" id = "metalfoam" result = null required_reagents = list("aluminum" = 3, "fluorosurfactant" = 1, "sacid" = 1) result_amount = 5

on_reaction(var/datum/reagents/holder, var/created_volume)


var/location = get_turf(holder.my_atom)

for(var/mob/M in viewers(5, location)) M << "\red The solution spews out a metalic foam!"

var/datum/effect/effect/system/foam_spread/s = new() s.set_up(created_volume, location, holder, 1) s.start() return

ironfoam name = "Iron Foam" id = "ironlfoam" result = null required_reagents = list("iron" = 3, "fluorosurfactant" = 1, "sacid" = 1) result_amount = 5

on_reaction(var/datum/reagents/holder, var/created_volume)


var/location = get_turf(holder.my_atom)

for(var/mob/M in viewers(5, location)) M << "\red The solution spews out a metalic foam!"

var/datum/effect/effect/system/foam_spread/s = new() s.set_up(created_volume, location, holder, 2) s.start() return

// Synthesizing these three chemicals is pretty complex in real life, but fuck it, it's just a game! ammonia name = "Ammonia" id = "ammonia" result = "ammonia" required_reagents = list("hydrogen" = 3, "nitrogen" = 1) result_amount = 3 mix_message = "The mixture bubbles, emitting an acrid reek."

diethylamine name = "Diethylamine" id = "diethylamine" result = "diethylamine" required_reagents = list ("ammonia" = 1, "ethanol" = 1) result_amount = 2 min_temp = 374 mix_message = "A horrible smell pours forth from the mixture."

space_cleaner name = "Space cleaner" id = "cleaner" result = "cleaner" required_reagents = list("ammonia" = 1, "water" = 1, "ethanol" = 1) result_amount = 3 mix_message = "Ick, this stuff really stinks. Sure does make the container sparkle though!"

sulfuric_acid name = "Sulfuric Acid" id = "sacid" result = "sacid" required_reagents = list("sulfur" = 1, "oxygen" = 1, "hydrogen" = 1) result_amount = 2 mix_message = "The mixture gives off a sharp acidic tang."

///////Changeling Blood Test///////////// /* changeling_test name = "Changeling blood test" id = "changelingblood" result = "blood" required_reagents = list("blood" = 5) required_catalysts = list("fuel") result_amount = 1 //Needs this in order to check the donor, as the data var in the reacted blood gets transferred. on_reaction(var/datum/reagents/holder, var/created_volume) if(!holder.reagent_list) //reagent_list is not null return var/datum/reagent/blood/B = locate() in holder.reagent_list if(!B) //B is not null return var/mob/living/carbon/human/H = B.data["donor"] if(!H) //H is not null. return if(H.mind && H.mind.changeling) //Checks if H, the blood donor is a ling. for(var/mob/M in viewers(get_turf(holder.my_atom), null)) M.show_message( "The blood writhes and wriggles and sizzles away from the container!", 1, "You hear bubbling and sizzling.", 2) else for(var/mob/M in viewers(get_turf(holder.my_atom), null)) M.show_message( "The blood seems to break apart in the fuel.", 1) holder.del_reagent("blood") return

//////////////////////////////////////////FOOD MIXTURES////////////////////////////////////

tofu name = "Tofu" id = "tofu" result = null required_reagents = list("soymilk" = 10) required_catalysts = list("enzyme" = 5) result_amount = 1 on_reaction(var/datum/reagents/holder, var/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/tofu(location) return

chocolate_bar name = "Chocolate Bar" id = "chocolate_bar" result = null required_reagents = list("soymilk" = 2, "coco" = 2, "sugar" = 2) result_amount = 1 on_reaction(var/datum/reagents/holder, var/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/chocolatebar(location) return

chocolate_bar2 name = "Chocolate Bar" id = "chocolate_bar" result = null required_reagents = list("milk" = 2, "coco" = 2, "sugar" = 2) result_amount = 1 on_reaction(var/datum/reagents/holder, var/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/chocolatebar(location) return

hot_coco name = "Hot Coco" id = "hot_coco" result = "hot_coco" required_reagents = list("water" = 5, "coco" = 1) result_amount = 5

chocolate_milk name = "Chocolate Milk" id = "chocolate_milk" result = "chocolate_milk" required_reagents = list("chocolate" = 1, "milk" = 1) result_amount = 2 mix_message = "The mixture turns a nice brown color."

coffee name = "Coffee" id = "coffee" result = "coffee" required_reagents = list("coffeepowder" = 1, "water" = 5) result_amount = 5

tea name = "Tea" id = "tea" result = "tea" required_reagents = list("teapowder" = 1, "water" = 5) result_amount = 5

soysauce name = "Soy Sauce" id = "soysauce" result = "soysauce" required_reagents = list("soymilk" = 2, "flour" = 1, "sodiumchloride" = 1, "water" = 3) result_amount = 7

cheesewheel name = "Cheesewheel" id = "cheesewheel" result = null required_reagents = list("milk" = 40) required_catalysts = list("enzyme" = 5) result_amount = 1 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location) return

syntiflesh name = "Syntiflesh" id = "syntiflesh" result = null required_reagents = list("blood" = 5, "cryoxadone" = 1) result_amount = 1 on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location) return

hot_ramen name = "Hot Ramen" id = "hot_ramen" result = "hot_ramen" required_reagents = list("water" = 1, "dry_ramen" = 3) result_amount = 3

hell_ramen name = "Hell Ramen" id = "hell_ramen" result = "hell_ramen" required_reagents = list("capsaicin" = 1, "hot_ramen" = 6) result_amount = 6

doughball name = "Ball of dough" id = "dough_ball" result = "dough_ball" required_reagents = list("flour" = 15, "water" = 5) required_catalysts = list("enzyme" = 5)


////////////////////////////////////////// COCKTAILS //////////////////////////////////////


goldschlager name = "Goldschlager" id = "goldschlager" result = "goldschlager" required_reagents = list("vodka" = 10, "gold" = 1) result_amount = 10

patron name = "Patron" id = "patron" result = "patron" required_reagents = list("tequilla" = 10, "silver" = 1) result_amount = 10

bilk name = "Bilk" id = "bilk" result = "bilk" required_reagents = list("milk" = 1, "beer" = 1) result_amount = 2

icetea name = "Iced Tea" id = "icetea" result = "icetea" required_reagents = list("ice" = 1, "tea" = 3) result_amount = 4

icecoffee name = "Iced Coffee" id = "icecoffee" result = "icecoffee" required_reagents = list("ice" = 1, "coffee" = 3) result_amount = 4

nuka_cola name = "Nuka Cola" id = "nuka_cola" result = "nuka_cola" required_reagents = list("uranium" = 1, "cola" = 6) result_amount = 6

moonshine name = "Moonshine" id = "moonshine" result = "moonshine" required_reagents = list("nutriment" = 10) required_catalysts = list("enzyme" = 5) result_amount = 10

wine name = "Wine" id = "wine" result = "wine" required_reagents = list("berryjuice" = 10) required_catalysts = list("enzyme" = 5) result_amount = 10

spacebeer name = "Space Beer" id = "spacebeer" result = "beer" required_reagents = list("cornoil" = 10) required_catalysts = list("enzyme" = 5) result_amount = 10

vodka name = "Vodka" id = "vodka" result = "vodka" required_reagents = list("potato" = 10) required_catalysts = list("enzyme" = 5) result_amount = 10 sake name = "Sake" id = "sake" result = "sake" required_reagents = list("rice" = 10,"water" = 5) required_catalysts = list("enzyme" = 5) result_amount = 15

kahlua name = "Kahlua" id = "kahlua" result = "kahlua" required_reagents = list("coffee" = 5, "sugar" = 5, "rum" = 5) required_catalysts = list("enzyme" = 5) result_amount = 5

kahluaVodka name = "KahluaVodka" id = "kahlauVodka" result = "kahlua" required_reagents = list("coffee" = 5, "sugar" = 5, "vodka" = 5) required_catalysts = list("enzyme" = 5) result_amount = 5 gin_tonic name = "Gin and Tonic" id = "gintonic" result = "gintonic" required_reagents = list("gin" = 2, "tonic" = 1) result_amount = 3 mix_message = "The tonic water and gin mix together perfectly."

cuba_libre name = "Cuba Libre" id = "cubalibre" result = "cubalibre" required_reagents = list("rum" = 2, "cola" = 1) result_amount = 3

mojito name = "Mojito" id = "mojito" result = "mojito" required_reagents = list("rum" = 1, "sugar" = 1, "limejuice" = 1, "sodawater" = 1) result_amount = 4

martini name = "Classic Martini" id = "martini" result = "martini" required_reagents = list("gin" = 2, "vermouth" = 1) result_amount = 3

vodkamartini name = "Vodka Martini" id = "vodkamartini" result = "vodkamartini" required_reagents = list("vodka" = 2, "vermouth" = 1) result_amount = 3

white_russian name = "White Russian" id = "whiterussian" result = "whiterussian" required_reagents = list("blackrussian" = 3, "cream" = 2) result_amount = 5

whiskey_cola name = "Whiskey Cola" id = "whiskeycola" result = "whiskeycola" required_reagents = list("whiskey" = 2, "cola" = 1) result_amount = 3

screwdriver name = "Screwdriver" id = "screwdrivercocktail" result = "screwdrivercocktail" required_reagents = list("vodka" = 2, "orangejuice" = 1) result_amount = 3

bloody_mary name = "Bloody Mary" id = "bloodymary" result = "bloodymary" required_reagents = list("vodka" = 1, "tomatojuice" = 2, "limejuice" = 1) result_amount = 4

gargle_blaster name = "Pan-Galactic Gargle Blaster" id = "gargleblaster" result = "gargleblaster" required_reagents = list("vodka" = 1, "gin" = 1, "whiskey" = 1, "cognac" = 1, "limejuice" = 1) result_amount = 5

brave_bull name = "Brave Bull" id = "bravebull" result = "bravebull" required_reagents = list("tequilla" = 2, "kahlua" = 1) result_amount = 3

tequilla_sunrise name = "Tequilla Sunrise" id = "tequillasunrise" result = "tequillasunrise" required_reagents = list("tequilla" = 2, "orangejuice" = 1) result_amount = 3

toxins_special name = "Toxins Special" id = "toxinsspecial" result = "toxinsspecial" required_reagents = list("rum" = 2, "vermouth" = 1, "plasma" = 2) result_amount = 5

beepsky_smash name = "Beepksy Smash" id = "beepksysmash" result = "beepskysmash" required_reagents = list("limejuice" = 2, "whiskey" = 2, "iron" = 1) result_amount = 4

doctor_delight name = "The Doctor's Delight" id = "doctordelight" result = "doctorsdelight" required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1) result_amount = 5

irish_cream name = "Irish Cream" id = "irishcream" result = "irishcream" required_reagents = list("whiskey" = 2, "cream" = 1) result_amount = 3

manly_dorf name = "The Manly Dorf" id = "manlydorf" result = "manlydorf" required_reagents = list ("beer" = 1, "ale" = 2) result_amount = 3

suicider name = "Suicider" id = "suicider" result = "suicider" required_reagents = list ("vodka" = 1, "cider" = 1, "fuel" = 1, "epinephrine" = 1) result_amount = 4 mix_message = "The drinks and chemicals mix together, emitting a potent smell."

irish_coffee name = "Irish Coffee" id = "irishcoffee" result = "irishcoffee" required_reagents = list("irishcream" = 1, "coffee" = 1) result_amount = 2

b52 name = "B-52" id = "b52" result = "b52" required_reagents = list("irishcream" = 1, "kahlua" = 1, "cognac" = 1) result_amount = 3

atomicbomb name = "Atomic Bomb" id = "atomicbomb" result = "atomicbomb" required_reagents = list("b52" = 10, "uranium" = 1) result_amount = 10

margarita name = "Margarita" id = "margarita" result = "margarita" required_reagents = list("tequilla" = 2, "limejuice" = 1) result_amount = 3

longislandicedtea name = "Long Island Iced Tea" id = "longislandicedtea" result = "longislandicedtea" required_reagents = list("vodka" = 1, "gin" = 1, "tequilla" = 1, "cubalibre" = 1) result_amount = 4

threemileisland name = "Three Mile Island Iced Tea" id = "threemileisland" result = "threemileisland" required_reagents = list("longislandicedtea" = 10, "uranium" = 1) result_amount = 10

whiskeysoda name = "Whiskey Soda" id = "whiskeysoda" result = "whiskeysoda" required_reagents = list("whiskey" = 2, "sodawater" = 1) result_amount = 3

black_russian name = "Black Russian" id = "blackrussian" result = "blackrussian" required_reagents = list("vodka" = 3, "kahlua" = 2) result_amount = 5

manhattan name = "Manhattan" id = "manhattan" result = "manhattan" required_reagents = list("whiskey" = 2, "vermouth" = 1) result_amount = 3

manhattan_proj name = "Manhattan Project" id = "manhattan_proj" result = "manhattan_proj" required_reagents = list("manhattan" = 10, "uranium" = 1) result_amount = 10

vodka_tonic name = "Vodka and Tonic" id = "vodkatonic" result = "vodkatonic" required_reagents = list("vodka" = 2, "tonic" = 1) result_amount = 3

gin_fizz name = "Gin Fizz" id = "ginfizz" result = "ginfizz" required_reagents = list("gin" = 2, "sodawater" = 1, "limejuice" = 1) result_amount = 4

bahama_mama name = "Bahama mama" id = "bahama_mama" result = "bahama_mama" required_reagents = list("rum" = 2, "orangejuice" = 2, "limejuice" = 1, "ice" = 1) result_amount = 6

singulo name = "Singulo" id = "singulo" result = "singulo" required_reagents = list("vodka" = 5, "radium" = 1, "wine" = 5) result_amount = 10

alliescocktail name = "Allies Cocktail" id = "alliescocktail" result = "alliescocktail" required_reagents = list("martini" = 1, "vodka" = 1) result_amount = 2

demonsblood name = "Demons Blood" id = "demonsblood" result = "demonsblood" required_reagents = list("rum" = 1, "spacemountainwind" = 1, "blood" = 1, "dr_gibb" = 1) result_amount = 4

booger name = "Booger" id = "booger" result = "booger" required_reagents = list("cream" = 1, "banana" = 1, "rum" = 1, "watermelonjuice" = 1) result_amount = 4

antifreeze name = "Anti-freeze" id = "antifreeze" result = "antifreeze" required_reagents = list("vodka" = 2, "cream" = 1, "ice" = 1) result_amount = 4

barefoot name = "Barefoot" id = "barefoot" result = "barefoot" required_reagents = list("berryjuice" = 1, "cream" = 1, "vermouth" = 1) result_amount = 3


////DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri/////

sbiten name = "Sbiten" id = "sbiten" result = "sbiten" required_reagents = list("vodka" = 10, "capsaicin" = 1) result_amount = 10

red_mead name = "Red Mead" id = "red_mead" result = "red_mead" required_reagents = list("blood" = 1, "mead" = 1) result_amount = 2

mead name = "Mead" id = "mead" result = "mead" required_reagents = list("sugar" = 1, "water" = 1) required_catalysts = list("enzyme" = 5) result_amount = 2

iced_beer name = "Iced Beer" id = "iced_beer" result = "iced_beer" required_reagents = list("beer" = 10, "frostoil" = 1) result_amount = 10

iced_beer2 name = "Iced Beer" id = "iced_beer" result = "iced_beer" required_reagents = list("beer" = 5, "ice" = 1) result_amount = 6


grog name = "Grog" id = "grog" result = "grog" required_reagents = list("rum" = 1, "water" = 1) result_amount = 2

soy_latte name = "Soy Latte" id = "soy_latte" result = "soy_latte" required_reagents = list("coffee" = 1, "soymilk" = 1) result_amount = 2

cafe_latte name = "Cafe Latte" id = "cafe_latte" result = "cafe_latte" required_reagents = list("coffee" = 1, "milk" = 1) result_amount = 2

acidspit name = "Acid Spit" id = "acidspit" result = "acidspit" required_reagents = list("sacid" = 1, "wine" = 5) result_amount = 6

amasec name = "Amasec" id = "amasec" result = "amasec" required_reagents = list("iron" = 1, "wine" = 5, "vodka" = 5) result_amount = 10

changelingsting name = "Changeling Sting" id = "changelingsting" result = "changelingsting" required_reagents = list("screwdrivercocktail" = 1, "limejuice" = 1, "lemonjuice" = 1) result_amount = 5

aloe name = "Aloe" id = "aloe" result = "aloe" required_reagents = list("cream" = 1, "whiskey" = 1, "watermelonjuice" = 1) result_amount = 2

andalusia name = "Andalusia" id = "andalusia" result = "andalusia" required_reagents = list("rum" = 1, "whiskey" = 1, "lemonjuice" = 1) result_amount = 3

neurotoxin name = "Neurotoxin" id = "neurotoxin" result = "neurotoxin" required_reagents = list("gargleblaster" = 1, "ether" = 1) result_amount = 2

snowwhite name = "Snow White" id = "snowwhite" result = "snowwhite" required_reagents = list("beer" = 1, "lemon_lime" = 1) result_amount = 2

irishcarbomb name = "Irish Car Bomb" id = "irishcarbomb" result = "irishcarbomb" required_reagents = list("ale" = 1, "irishcream" = 1) result_amount = 2

syndicatebomb name = "Syndicate Bomb" id = "syndicatebomb" result = "syndicatebomb" required_reagents = list("beer" = 1, "whiskeycola" = 1) result_amount = 2

erikasurprise name = "Erika Surprise" id = "erikasurprise" result = "erikasurprise" required_reagents = list("ale" = 1, "limejuice" = 1, "whiskey" = 1, "banana" = 1, "ice" = 1) result_amount = 5

devilskiss name = "Devils Kiss" id = "devilskiss" result = "devilskiss" required_reagents = list("blood" = 1, "kahlua" = 1, "rum" = 1) result_amount = 3

hippiesdelight name = "Hippies Delight" id = "hippiesdelight" result = "hippiesdelight" required_reagents = list("psilocybin" = 1, "gargleblaster" = 1) result_amount = 2

bananahonk name = "Banana Honk" id = "bananahonk" result = "bananahonk" required_reagents = list("banana" = 1, "cream" = 1, "sugar" = 1) result_amount = 3

silencer name = "Silencer" id = "silencer" result = "silencer" required_reagents = list("nothing" = 1, "cream" = 1, "sugar" = 1) result_amount = 3

driestmartini name = "Driest Martini" id = "driestmartini" result = "driestmartini" required_reagents = list("nothing" = 1, "gin" = 1) result_amount = 2

lemonade name = "Lemonade" id = "lemonade" result = "lemonade" required_reagents = list("lemonjuice" = 1, "sugar" = 1, "water" = 1) result_amount = 3

kiraspecial name = "Kira Special" id = "kiraspecial" result = "kiraspecial" required_reagents = list("orangejuice" = 1, "limejuice" = 1, "sodawater" = 1) result_amount = 2

brownstar name = "Brown Star" id = "brownstar" result = "brownstar" required_reagents = list("orangejuice" = 2, "cola" = 1) result_amount = 2

milkshake name = "Milkshake" id = "milkshake" result = "milkshake" required_reagents = list("cream" = 1, "ice" = 2, "milk" = 2) result_amount = 5

rewriter name = "Rewriter" id = "rewriter" result = "rewriter" required_reagents = list("spacemountainwind" = 1, "coffee" = 1) result_amount = 2

New ChemsEdit

DrinksEdit

/datum/reagent/ginsonic name = "Gin and sonic" id = "ginsonic" description = "GOTTA GET CRUNK FAST BUT LIQUOR TOO SLOW" reagent_state = LIQUID color = "#1111CF"

/datum/chemical_reaction/ginsonic name = "ginsonic" id = "ginsonic" result = "ginsonic" required_reagents = list("gintonic" = 1, "methamphetamine" = 1) result_amount = 2 mix_message = "The drink turns electric blue and starts quivering violently."

/datum/reagent/ginsonic/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(10)) M.reagents.add_reagent("methamphetamine",1.2) M.reagents.add_reagent("ethanol",1.4) if(prob(8)) M.say(pick("Gotta go fast!", "Let's juice.", "I feel a need for speed!", "Way Past Cool!")) if(prob(8)) switch(pick(1, 2, 3)) if(1) M << "Time to speed, keed!" if(2) M << "Let's juice." if(3) M << "Way Past Cool!" ..() return

/datum/reagent/ethanol/applejack name = "Applejack" id = "applejack" description = "A highly concentrated alcoholic beverage made by repeatedly freezing cider and removing the ice." color = "#997A00" slur_start = 30 brawl_start = 40 confused_start = 100

/datum/chemical_reaction/applejack name = "applejack" id = "applejack" result = "applejack" required_reagents = list("cider" = 2) max_temp = 270 result_amount = 1 mix_message = "The drink darkens as the water freezes, leaving the concentrated cider behind." mix_sound = null

/datum/reagent/ethanol/jackrose name = "Jack Rose" id = "jackrose" description = "A classic cocktail that had fallen out of fashion, but never out of taste," color = "#664300"

/datum/chemical_reaction/jackrose name = "jackrose" id = "jackrose" result = "jackrose" required_reagents = list("applejack" = 4, "lemonjuice" = 1) result_amount = 5

DrugsEdit

  1. define SOLID 1
  2. define LIQUID 2
  3. define GAS 3
  1. define REM REAGENTS_EFFECT_MULTIPLIER

/datum/reagent/nicotine name = "Nicotine" id = "nicotine" description = "Slightly reduces stun times. If overdosed it will deal toxin and oxygen damage." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 overdose_threshold = 35 addiction_threshold = 30

/datum/reagent/nicotine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom var/smoke_message = pick("You can just feel your lungs dying!", "You feel relaxed.", "You feel calmed.", "You feel the lung cancer forming.", "You feel the money you wasted.", "You feel like a space cowboy.", "You feel rugged.") if(prob(5)) M << "[smoke_message]" if(prob(50)) M.AdjustParalysis(-1) M.AdjustStunned(-1) M.AdjustWeakened(-1) M.adjustStaminaLoss(-1*REM) ..() return

/datum/reagent/nicotine/overdose_process(var/mob/living/M as mob) if(prob(20)) M << "You feel like you smoked too much." M.adjustToxLoss(1*REM) M.adjustOxyLoss(1*REM) ..() return

/datum/reagent/crank name = "Crank" id = "crank" description = "Reduces stun times by about 200%. If overdosed or addicted it will deal significant Toxin, Brute and Brain damage." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 overdose_threshold = 20 addiction_threshold = 10

/datum/reagent/crank/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom var/high_message = pick("You feel jittery.", "You feel like you gotta go fast.", "You feel like you need to step it up.") if(prob(5)) M << "[high_message]" M.AdjustParalysis(-2) M.AdjustStunned(-2) M.AdjustWeakened(-2) ..() return /datum/reagent/crank/overdose_process(var/mob/living/M as mob) M.adjustBrainLoss(rand(1,10)*REM) M.adjustToxLoss(rand(1,10)*REM) M.adjustBruteLoss(rand(1,10)*REM) ..() return

/datum/reagent/crank/addiction_act_stage1(var/mob/living/M as mob) M.adjustBrainLoss(rand(1,10)*REM) ..() return /datum/reagent/crank/addiction_act_stage2(var/mob/living/M as mob) M.adjustToxLoss(rand(1,10)*REM) ..() return /datum/reagent/crank/addiction_act_stage3(var/mob/living/M as mob) M.adjustBruteLoss(rand(1,10)*REM) ..() return /datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) M.adjustBrainLoss(rand(1,10)*REM) M.adjustToxLoss(rand(1,10)*REM) M.adjustBruteLoss(rand(1,10)*REM) ..() return /datum/chemical_reaction/crank name = "Crank" id = "crank" result = "crank" required_reagents = list("diphenhydramine" = 1, "ammonia" = 1, "lithium" = 1, "sacid" = 1, "fuel" = 1) result_amount = 5 mix_message = "The mixture violently reacts, leaving behind a few crystalline shards." min_temp = 390

/datum/chemical_reaction/crank/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/T = get_turf(holder.my_atom) for(var/turf/turf in range(1,T)) PoolOrNew(/obj/effect/hotspot, turf) explosion(T,0,0,2) return

/datum/reagent/krokodil name = "Krokodil" id = "krokodil" description = "A sketchy homemade opiate, often used by disgruntled Cosmonauts." reagent_state = LIQUID color = "#0264B4" overdose_threshold = 20 addiction_threshold = 15 /datum/reagent/krokodil/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.") if(prob(5)) M << "[high_message]" ..() return /datum/reagent/krokodil/overdose_process(var/mob/living/M as mob) if(prob(10)) M.adjustBrainLoss(rand(1,5)*REM) M.adjustToxLoss(rand(1,5)*REM) ..() return /datum/reagent/krokodil/addiction_act_stage1(var/mob/living/M as mob) M.adjustBrainLoss(rand(1,5)*REM) M.adjustToxLoss(rand(1,5)*REM) ..() return /datum/reagent/krokodil/addiction_act_stage2(var/mob/living/M as mob) if(prob(25)) M << "Your skin feels loose..." ..() return /datum/reagent/krokodil/addiction_act_stage3(var/mob/living/M as mob) if(prob(25)) M << "Your skin starts to peel away..." M.adjustBruteLoss(3*REM) ..() return /datum/reagent/krokodil/addiction_act_stage4(var/mob/living/carbon/human/M as mob) if(prob(25)) M << "Your skin falls off easily!" M.adjustBruteLoss(5*REM) ..() return /datum/chemical_reaction/krokodil name = "Krokodil" id = "krokodil" result = "krokodil" required_reagents = list("diphenhydramine" = 1, "morphine" = 1, "cleaner" = 1, "potassium" = 1, "phosphorus" = 1, "fuel" = 1) result_amount = 6 mix_message = "The mixture dries into a pale blue powder." min_temp = 380



/datum/reagent/methamphetamine name = "Methamphetamine" id = "methamphetamine" description = "Reduces stun times by about 300%, speeds the user up, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, laugh randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will constantly jitter and drool, before becoming dizzy and losing motor control and eventually suffer heavy toxin damage." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 overdose_threshold = 20 addiction_threshold = 10 metabolization_rate = 0.6 /datum/reagent/methamphetamine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.") if(prob(5)) M << "[high_message]" M.AdjustParalysis(-2) M.AdjustStunned(-2) M.AdjustWeakened(-2) M.adjustStaminaLoss(-2) M.status_flags |= GOTTAGOREALLYFAST M.Jitter(3) M.adjustBrainLoss(0.5) if(prob(5)) M.emote(pick("twitch", "shiver")) ..() return /datum/reagent/methamphetamine/overdose_process(var/mob/living/M as mob) if(prob(20)) M.emote("laugh") if(prob(33)) M.visible_message("[M]'s hands flip out and flail everywhere!") var/obj/item/I = M.get_active_hand() if(I) M.drop_item() ..() if(prob(50)) M.adjustToxLoss(10) M.adjustBrainLoss(pick(0.5, 0.6, 0.7, 0.8, 0.9, 1)) return /datum/reagent/methamphetamine/addiction_act_stage1(var/mob/living/M as mob) M.Jitter(5) if(prob(20)) M.emote(pick("twitch","drool","moan")) ..() return /datum/reagent/methamphetamine/addiction_act_stage2(var/mob/living/M as mob) M.Jitter(10) M.Dizzy(10) if(prob(30)) M.emote(pick("twitch","drool","moan")) ..() return /datum/reagent/methamphetamine/addiction_act_stage3(var/mob/living/M as mob) M.Jitter(15) M.Dizzy(15) if(prob(40)) M.emote(pick("twitch","drool","moan")) ..() return /datum/reagent/methamphetamine/addiction_act_stage4(var/mob/living/carbon/human/M as mob) M.Jitter(20) M.Dizzy(20) M.adjustToxLoss(5) if(prob(50)) M.emote(pick("twitch","drool","moan")) ..() return


/datum/chemical_reaction/methamphetamine name = "methamphetamine" id = "methamphetamine" result = "methamphetamine" required_reagents = list("ephedrine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1) result_amount = 4 min_temp = 374 /datum/chemical_reaction/saltpetre name = "saltpetre" id = "saltpetre" result = "saltpetre" required_reagents = list("potassium" = 1, "nitrogen" = 1, "oxygen" = 3) result_amount = 3


/datum/reagent/saltpetre name = "Saltpetre" id = "saltpetre" description = "Volatile." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132


/datum/reagent/bath_salts name = "Bath Salts" id = "bath_salts" description = "Sometimes packaged as a refreshing bathwater additive, these crystals are definitely not for human consumption." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 overdose_threshold = 20 addiction_threshold = 10 metabolization_rate = 0.6 /datum/reagent/bath_salts/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom var/high_message = pick("You feel amped up.", "You feel ready.", "You feel like you can push it to the limit.") if(prob(5)) M << "[high_message]" M.AdjustParalysis(-5) M.AdjustStunned(-5) M.AdjustWeakened(-5) M.adjustStaminaLoss(-10) M.adjustBrainLoss(1) M.adjustToxLoss(0.1) M.hallucination += 10 if(M.canmove && !istype(M.loc, /turf/space)) step(M, pick(cardinal)) step(M, pick(cardinal)) ..() return /datum/chemical_reaction/bath_salts name = "bath_salts" id = "bath_salts" result = "bath_salts" required_reagents = list("????" = 1, "saltpetre" = 1, "msg" = 1, "cleaner" = 1, "enzyme" = 1, "mugwort" = 1, "mercury" = 1) result_amount = 6 min_temp = 374 mix_message = "Tiny cubic crystals precipitate out of the mixture. Huh." /datum/reagent/bath_salts/overdose_process(var/mob/living/M as mob) M.hallucination += 10 if(M.canmove && !istype(M.loc, /turf/space)) for(var/i = 0, i < 8, i++) step(M, pick(cardinal)) if(prob(20)) M.emote(pick("twitch","drool","moan")) if(prob(33)) var/obj/item/I = M.get_active_hand() if(I) M.drop_item() ..() return /datum/reagent/bath_salts/addiction_act_stage1(var/mob/living/M as mob) M.hallucination += 10 if(M.canmove && !istype(M.loc, /turf/space)) for(var/i = 0, i < 8, i++) step(M, pick(cardinal)) M.Jitter(5) M.adjustBrainLoss(10) if(prob(20)) M.emote(pick("twitch","drool","moan")) ..() return /datum/reagent/bath_salts/addiction_act_stage2(var/mob/living/M as mob) M.hallucination += 20 if(M.canmove && !istype(M.loc, /turf/space)) for(var/i = 0, i < 8, i++) step(M, pick(cardinal)) M.Jitter(10) M.Dizzy(10) M.adjustBrainLoss(10) if(prob(30)) M.emote(pick("twitch","drool","moan")) ..() return /datum/reagent/bath_salts/addiction_act_stage3(var/mob/living/M as mob) M.hallucination += 30 if(M.canmove && !istype(M.loc, /turf/space)) for(var/i = 0, i < 12, i++) step(M, pick(cardinal)) M.Jitter(15) M.Dizzy(15) M.adjustBrainLoss(10) if(prob(40)) M.emote(pick("twitch","drool","moan")) ..() return /datum/reagent/bath_salts/addiction_act_stage4(var/mob/living/carbon/human/M as mob) M.hallucination += 40 if(M.canmove && !istype(M.loc, /turf/space)) for(var/i = 0, i < 16, i++) step(M, pick(cardinal)) M.Jitter(50) M.Dizzy(50) M.adjustToxLoss(5) M.adjustBrainLoss(10) if(prob(50)) M.emote(pick("twitch","drool","moan")) ..() return


/datum/chemical_reaction/aranesp name = "Aranesp" id = "aranesp" result = "aranesp" required_reagents = list("epinephrine" = 1, "atropine" = 1, "insulin" = 1) result_amount = 3 /datum/reagent/aranesp name = "Aranesp" id = "aranesp" description = "An illegal performance enhancing drug. Side effects might include chest pain, seizures, swelling, headache, fever... ... ..." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 /datum/reagent/aranesp/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom var/high_message = pick("You feel like you're made of steel!", "You feel invigorated!", "You feel really buff!", "You feel on top of the world!", "You feel full of energy!") if(prob(5)) M << "[high_message]" M.adjustStaminaLoss(-35) M.adjustToxLoss(1) if(prob(3)) M.losebreath += 2 M.Stun(2) ..() return /datum/reagent/thc name = "Tetrahydrocannabinol" id = "thc" description = "A mild psychoactive chemical extracted from the cannabis plant." reagent_state = LIQUID color = "#0FBE0F" /datum/reagent/thc/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(8)) M.emote(pick("smile","giggle","laugh")) if(prob(50)) M.stuttering += 2 ..() return


/datum/reagent/fliptonium name = "Fliptonium" id = "fliptonium" description = "Do some flips!" reagent_state = LIQUID color = "#A42964" metabolization_rate = 0.2 overdose_threshold = 15 process_flags = ORGANIC | SYNTHETIC //Flipping for everyone! /datum/chemical_reaction/fliptonium name = "fliptonium" id = "fliptonium" result = "fliptonium" required_reagents = list("ephedrine" = 1, "liquid_dark_matter" = 1, "chocolate" = 1, "ginsonic" = 1) result_amount = 4 mix_message = "The mixture swirls around excitedly!"


/datum/reagent/fliptonium/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return if(method == INGEST || method == TOUCH) M.SpinAnimation(speed = 12, loops = -1) /datum/reagent/fliptonium/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(current_cycle == 5) M.SpinAnimation(speed = 11, loops = -1) if(current_cycle == 10) M.SpinAnimation(speed = 10, loops = -1) if(current_cycle == 15) M.SpinAnimation(speed = 9, loops = -1) if(current_cycle == 20) M.SpinAnimation(speed = 8, loops = -1) if(current_cycle == 25) M.SpinAnimation(speed = 7, loops = -1) if(current_cycle == 30) M.SpinAnimation(speed = 6, loops = -1) if(current_cycle == 40) M.SpinAnimation(speed = 5, loops = -1) if(current_cycle == 50) M.SpinAnimation(speed = 4, loops = -1) M.AdjustParalysis(-2) M.AdjustStunned(-2) M.AdjustWeakened(-2) M.adjustStaminaLoss(-2) ..() return /datum/reagent/fliptonium/reagent_deleted(var/mob/living/M as mob) M.SpinAnimation(speed = 12, loops = -1) /datum/reagent/fliptonium/overdose_process(var/mob/living/M as mob) if(volume > 15) if(prob(5)) switch(pick(1, 2, 3)) if(1) M.emote("laugh") M.adjustToxLoss(1) if(2) M << "[M] can't seem to control their legs!" M.Weaken(8) M.adjustToxLoss(1) if(3) M << "[M]'s hands flip out and flail everywhere!" M.drop_l_hand() M.drop_r_hand() M.adjustToxLoss(1) ..() return


////////////////////////////// // Synth-Drugs // ////////////////////////////// //Ultra-Lube: Meth /datum/reagent/lube/ultra name = "Ultra-Lube" id = "ultralube" description = "Ultra-Lube is an enhanced lubricant which induces effect similar to Methamphetamine in synthetic users by drastically reducing internal friction and increasing cooling capabilities." reagent_state = LIQUID color = "#1BB1FF" process_flags = SYNTHETIC overdose_threshold = 20 addiction_threshold = 10 metabolization_rate = 0.6 /datum/chemical_reaction/lube/ultra name = "Ultra-Lube" id = "ultralube" result = "ultralube" required_reagents = list("lube" = 2, "formaldehyde" = 1, "cryostylane" = 1) result_amount = 2 mix_message = "The mixture darkens and appears to partially vaporize into a chilling aerosol." /datum/reagent/lube/ultra/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom var/high_message = pick("You feel your servos whir!", "You feel like you need to go faster.", "You feel like you were just overclocked!") if(prob(1)) if(prob(1)) high_message = "0100011101001111010101000101010001000001010001110100111101000110010000010101001101010100!" if(prob(5)) M << "[high_message]" M.AdjustParalysis(-2) M.AdjustStunned(-2) M.AdjustWeakened(-2) M.adjustStaminaLoss(-2) M.status_flags |= GOTTAGOREALLYFAST M.Jitter(3) M.adjustBrainLoss(0.5) if(prob(5)) M.emote(pick("twitch", "shiver")) ..() return /datum/reagent/lube/ultra/overdose_process(var/mob/living/M as mob) if(prob(20)) M.emote("ping") if(prob(33)) M.visible_message("[M]'s hands flip out and flail everywhere!") var/obj/item/I = M.get_active_hand() if(I) M.drop_item() ..() if(prob(50)) M.adjustToxLoss(10) M.adjustBrainLoss(pick(0.5, 0.6, 0.7, 0.8, 0.9, 1)) return /datum/reagent/lube/ultra/addiction_act_stage1(var/mob/living/M as mob) M.Jitter(5) if(prob(20)) M.emote(pick("twitch","buzz","moan")) ..() return /datum/reagent/lube/ultra/addiction_act_stage2(var/mob/living/M as mob) M.Jitter(10) M.Dizzy(10) if(prob(30)) M.emote(pick("twitch","buzz","moan")) ..() return /datum/reagent/lube/ultra/addiction_act_stage3(var/mob/living/M as mob) M.Jitter(15) M.Dizzy(15) if(prob(40)) M.emote(pick("twitch","buzz","moan")) ..() return /datum/reagent/lube/ultra/addiction_act_stage4(var/mob/living/carbon/human/M as mob) M.Jitter(20) M.Dizzy(20) M.adjustToxLoss(5) if(prob(50)) M.emote(pick("twitch","buzz","moan")) ..() return //Surge: Krokodil /datum/reagent/surge name = "Surge" id = "surge" description = "A sketchy superconducting gel that overloads processors, causing an effect reportedly similar to opiates in synthetic units." reagent_state = LIQUID color = "#6DD16D" process_flags = SYNTHETIC overdose_threshold = 20 addiction_threshold = 15 /datum/reagent/surge/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.druggy = max(M.druggy, 15) var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.") if(prob(1)) if(prob(1)) high_message = "01010100010100100100000101001110010100110100001101000101010011100100010001000101010011100100001101000101." if(prob(5)) M << "[high_message]" ..() return /datum/reagent/surge/overdose_process(var/mob/living/M as mob) //Hit them with the same effects as an electrode! M.Stun(5) M.Weaken(5) M.Jitter(20) M.apply_effect(STUTTER, 5) if(prob(10)) M << "You experience a violent electrical discharge!" playsound(get_turf(M), 'sound/effects/eleczap.ogg', 75, 1) //Lightning effect for electrical discharge visualization var/icon/I=new('icons/obj/zap.dmi',"lightningend") I.Turn(-135) var/obj/effect/overlay/beam/B = new(get_turf(M)) B.pixel_x = rand(-20, 0) B.pixel_y = rand(-20, 0) B.icon = I M.adjustFireLoss(rand(1,5)*REM) M.adjustBruteLoss(rand(1,5)*REM) ..() return /datum/reagent/surge/addiction_act_stage1(var/mob/living/M as mob) M.adjustBrainLoss(rand(1,5)*REM) M.adjustToxLoss(rand(1,5)*REM) ..() return /datum/reagent/surge/addiction_act_stage2(var/mob/living/M as mob) if(prob(25)) M << "Your casing feels loose..." ..() return /datum/reagent/surge/addiction_act_stage3(var/mob/living/M as mob) if(prob(25)) M << "Your casing starts to come apart..." M.adjustBruteLoss(3*REM) ..() return /datum/reagent/surge/addiction_act_stage4(var/mob/living/carbon/human/M as mob) if(prob(25)) M << "Your exposed wiring begins corroding!" M.adjustFireLoss(5*REM) ..() return


/datum/chemical_reaction/surge name = "Surge" id = "surge" result = "surge" required_reagents = list("thermite" = 3, "uranium" = 1, "fluorosurfactant" = 1, "sacid" = 1) result_amount = 6 mix_message = "The mixture congeals into a metallic green gel that crackles with electrical activity."

FoodEdit

/datum/reagent/questionmark // food poisoning name = "????" id = "????" description = "A gross and unidentifiable substance." reagent_state = LIQUID color = "#63DE63" metabolization_rate = 0.4

datum/reagent/questionmark/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return if(method == INGEST) M.Weaken(2) M << "Ugh! Eating that was a terrible idea!"

datum/reagent/egg name = "Egg" id = "egg" description = "A runny and viscous mixture of clear and yellow fluids." reagent_state = LIQUID color = "#F0C814"

datum/reagent/egg/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(5)) M.emote("fart") ..() return

datum/reagent/triple_citrus name = "Triple Citrus" id = "triple_citrus" description = "A refreshing mixed drink of orange, lemon and lime juice." reagent_state = LIQUID color = "#23A046"

/datum/chemical_reaction/triple_citrus name = "triple_citrus" id = "triple_citrus" result = "triple_citrus" required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1) result_amount = 3 mix_message = "The citrus juices begin to blend together."

datum/reagent/triple_citrus/reaction_mob(var/mob/living/carbon/M as mob, var/method=TOUCH, var/volume) if(!istype(M, /mob/living/carbon)) return if(method == INGEST) M.adjustToxLoss(-rand(1,2))

datum/reagent/corn_starch name = "Corn Starch" id = "corn_starch" description = "The powdered starch of maize, derived from the kernel's endosperm. Used as a thickener for gravies and puddings." reagent_state = LIQUID color = "#C8A5DC"

/datum/chemical_reaction/corn_syrup name = "corn_syrup" id = "corn_syrup" result = "corn_syrup" required_reagents = list("corn_starch" = 1, "sacid" = 1) result_amount = 2 min_temp = 374 mix_message = "The mixture forms a viscous, clear fluid!"

datum/reagent/corn_syrup name = "Corn Syrup" id = "corn_syrup" description = "A sweet syrup derived from corn starch that has had its starches converted into maltose and other sugars." reagent_state = LIQUID color = "#C8A5DC"

datum/reagent/corn_syrup/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.reagents.add_reagent("sugar", 1.2) ..() return

/datum/chemical_reaction/vhfcs name = "vhfcs" id = "vhfcs" result = "vhfcs" required_reagents = list("corn_syrup" = 1) required_catalysts = list("enzyme" = 1) result_amount = 1 mix_message = "The mixture emits a sickly-sweet smell."

datum/reagent/vhfcs name = "Very-high-fructose corn syrup" id = "vhfcs" description = "An incredibly sweet syrup, created from corn syrup treated with enzymes to convert its sugars into fructose." reagent_state = LIQUID color = "#C8A5DC"

datum/reagent/vhfcs/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.reagents.add_reagent("sugar", 2.4) ..() return

/datum/chemical_reaction/cola name = "cola" id = "cola" result = "cola" required_reagents = list("carbon" = 1, "oxygen" = 1, "water" = 1, "sugar" = 1) result_amount = 4 mix_message = "The mixture begins to fizz."

/datum/reagent/honey name = "Honey" id = "honey" description = "A sweet substance produced by bees through partial digestion. Bee barf." reagent_state = LIQUID color = "#CFCF1F"

datum/reagent/honey/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.reagents.add_reagent("sugar", 0.8) ..() return

datum/reagent/honey/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) new /obj/item/weapon/reagent_containers/food/snacks/honeycomb(T) return

/datum/reagent/chocolate name = "Chocolate" id = "chocolate" description = "Chocolate is a delightful product derived from the seeds of the theobroma cacao tree." reagent_state = LIQUID color = "#2E2418"

datum/reagent/chocolate/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.reagents.add_reagent("sugar", 0.8) ..() return

datum/reagent/chocolate/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) new /obj/item/weapon/reagent_containers/food/snacks/reagentchocolatebar(T) return

/datum/reagent/mugwort name = "Mugwort" id = "mugwort" description = "A rather bitter herb once thought to hold magical protective properties." reagent_state = LIQUID color = "#21170E"

datum/reagent/mugwort/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(istype(M, /mob/living/carbon/human) && M.mind) if(M.mind.special_role == "Wizard") M.adjustToxLoss(-1*REM) M.adjustOxyLoss(-1*REM) M.adjustBruteLoss(-1*REM) M.adjustFireLoss(-1*REM) ..() return

/datum/reagent/porktonium name = "Porktonium" id = "porktonium" description = "A highly-radioactive pork byproduct first discovered in hotdogs." reagent_state = LIQUID color = "#AB5D5D" metabolization_rate = 0.2 overdose_threshold = 125

datum/reagent/porktonium/overdose_process(var/mob/living/M as mob) if(volume > 125) if(prob(8)) M.reagents.add_reagent("cyanide", 10) M.reagents.add_reagent("radium", 15) ..() return

/datum/reagent/fungus name = "Space fungus" id = "fungus" description = "Scrapings of some unknown fungus found growing on the station walls." reagent_state = LIQUID color = "#C87D28"

datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return if(method == INGEST) M << "Yuck!"

/datum/reagent/chicken_soup name = "Chicken soup" id = "chicken_soup" description = "An old household remedy for mild illnesses." reagent_state = LIQUID color = "#B4B400"

/datum/reagent/chicken_soup/on_mob_life(var/mob/living/M as mob) M.nutrition += 2 ..() return

/datum/reagent/msg name = "Monosodium glutamate" id = "msg" description = "Monosodium Glutamate is a sodium salt known chiefly for its use as a controversial flavor enhancer." reagent_state = LIQUID color = "#F5F5F5"

datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return if(method == INGEST) M << "That tasted amazing!"


/datum/reagent/msg/on_mob_life(var/mob/living/M as mob) if(prob(1)) M.Stun(rand(4,10)) M << "A horrible migraine overpowers you." ..() return

/datum/reagent/cheese name = "Cheese" id = "cheese" description = "Some cheese. Pour it out to make it solid." reagent_state = SOLID color = "#FFFF00"

datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge(T) return

/datum/chemical_reaction/cheese name = "cheese" id = "cheese" result = "cheese" required_reagents = list("vomit" = 1, "milk" = 1) result_amount = 1 mix_message = "The mixture curdles up."

/datum/reagent/fake_cheese name = "Cheese substitute" id = "fake_cheese" description = "A cheese-like substance derived loosely from actual cheese." reagent_state = LIQUID color = "#B2B139"

/datum/reagent/weird_cheese name = "Weird cheese" id = "weird_cheese" description = "Hell, I don't even know if this IS cheese. Whatever it is, it ain't normal. If you want to, pour it out to make it solid." reagent_state = SOLID color = "#50FF00"

datum/reagent/weird_cheese/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) new /obj/item/weapon/reagent_containers/food/snacks/weirdcheesewedge(T) return

/datum/chemical_reaction/weird_cheese name = "Weird cheese" id = "weird_cheese" result = "weird_cheese" required_reagents = list("green_vomit" = 1, "milk" = 1) result_amount = 1 mix_message = "The disgusting mixture sloughs together horribly, emitting a foul stench."

datum/reagent/beans name = "Refried beans" id = "beans" description = "A dish made of mashed beans cooked with lard." reagent_state = LIQUID color = "#684435"

datum/reagent/beans/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(8)) M.emote("fart") ..() return

/datum/reagent/bread name = "Bread" id = "bread" description = "Bread! Yep, bread." reagent_state = SOLID color = "#9C5013"

datum/reagent/bread/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) new /obj/item/weapon/reagent_containers/food/snacks/breadslice(T) return

/datum/reagent/vomit name = "Vomit" id = "vomit" description = "Looks like someone lost their lunch. And then collected it. Yuck." reagent_state = LIQUID color = "#FFFF00"

datum/reagent/vomit/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) new /obj/effect/decal/cleanable/vomit(T) playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) return

/datum/reagent/greenvomit name = "Green vomit" id = "green_vomit" description = "Whoa, that can't be natural. That's horrible." reagent_state = LIQUID color = "#78FF74" datum/reagent/greenvomit/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) new /obj/effect/decal/cleanable/vomit/green(T) playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)


return /datum/reagent/ectoplasm name = "Ectoplasm" id = "ectoplasm" description = "A bizarre gelatinous substance supposedly derived from ghosts." reagent_state = LIQUID color = "#8EAE7B" process_flags = ORGANIC | SYNTHETIC //Because apparently ghosts in the shell datum/reagent/ectoplasm/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return if(method == INGEST) var/spooky_eat = pick("Ugh, why did you eat that? Your mouth feels haunted. Haunted with bad flavors.", "Ugh, why did you eat that? It has the texture of ham aspic. From the 1950s. Left out in the sun.", "Ugh, why did you eat that? It tastes like a ghost fart.", "Ugh, why did you eat that? It tastes like flavor died.") M << "[spooky_eat]" /datum/reagent/ectoplasm/on_mob_life(var/mob/living/M as mob) var/spooky_message = pick("You notice something moving out of the corner of your eye, but nothing is there...", "Your eyes twitch, you feel like something you can't see is here...", "You've got the heebie-jeebies.", "You feel uneasy.", "You shudder as if cold...", "You feel something gliding across your back...") if(prob(5)) M << "[spooky_message]" ..() return datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 10) new /obj/item/weapon/reagent_containers/food/snacks/ectoplasm(T) return /datum/reagent/soybeanoil name = "Space-soybean oil " id = "soybeanoil" description = "An oil derived from extra-terrestrial soybeans." reagent_state = LIQUID color = "#B1B0B0"


/datum/reagent/soybeanoil/on_mob_life(var/mob/living/M as mob) if(prob(5)) M.reagents.add_reagent("porktonium",5) ..() return /datum/reagent/hydrogenated_soybeanoil name = "Partially hydrogenated space-soybean oil" id = "hydrogenated_soybeanoil" description = "An oil derived from extra-terrestrial soybeans, with additional hydrogen atoms added to convert it into a saturated form." reagent_state = LIQUID color = "#B1B0B0" /datum/reagent/hydrogenated_soybeanoil/on_mob_life(var/mob/living/M as mob) if(prob(8)) M.reagents.add_reagent("porktonium",5) ..() return


/datum/chemical_reaction/hydrogenated_soybeanoil name = "Partially hydrogenated space-soybean oil" id = "hydrogenated_soybeanoil" result = "hydrogenated_soybeanoil" required_reagents = list("soybeanoil" = 1, "hydrogen" = 1) result_amount = 2 min_temp = 520 mix_message = "The mixture emits a burnt, oily smell."


/datum/reagent/meatslurry name = "Meat Slurry" id = "meatslurry" description = "A paste comprised of highly-processed organic material. Uncomfortably similar to deviled ham spread." reagent_state = LIQUID color = "#EBD7D7"


/datum/chemical_reaction/meatslurry name = "Meat Slurry" id = "meatslurry" result = "meatslurry" required_reagents = list("corn_starch" = 1, "blood" = 1) result_amount = 2 mix_message = "The mixture congeals into a bloody mass." mix_sound = 'sound/effects/blobattack.ogg'


/datum/reagent/mashedpotatoes name = "Mashed potatoes" id = "mashedpotatoes" description = "A starchy food paste made from boiled potatoes." reagent_state = SOLID color = "#D6D9C1"


/datum/reagent/gravy name = "Gravy" id = "gravy" description = "A savory sauce made from a simple meat-dripping roux and milk." reagent_state = LIQUID color = "#B4641B"

datum/chemical_reaction/gravy name = "Gravy" id = "gravy" result = "gravy" required_reagents = list("porktonium" = 1, "corn_starch" = 1, "milk" = 1) result_amount = 3 min_temp = 374 mix_message = "The substance thickens and takes on a meaty odor."


/datum/reagent/beff name = "Beff" id = "beff" description = "An advanced blend of mechanically-recovered meat and textured synthesized protein product notable for its unusual crystalline grain when sliced." reagent_state = SOLID color = "#AC7E67" /datum/reagent/beff/on_mob_life(var/mob/living/M as mob) if(prob(5)) M.reagents.add_reagent("porktonium",5) if(prob(5)) M.reagents.add_reagent(pick("blood", "corn_syrup", "synthflesh", "hydrogenated_soybeanoil"), 0.8) if(prob(5)) M.emote("groan") if(prob(2)) M << "You feel sick." ..() return


/datum/chemical_reaction/beff name = "Beff" id = "beff" result = "beff" required_reagents = list("hydrogenated_soybeanoil" = 2, "meatslurry" = 1, "plasma" = 1) result_amount = 4 mix_message = "The mixture solidifies, taking a crystalline appearance." mix_sound = 'sound/effects/blobattack.ogg' /datum/reagent/pepperoni name = "Pepperoni" id = "pepperoni" description = "An Italian-American variety of salami usually made from beef and pork" reagent_state = SOLID color = "#AC7E67"


datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(method == TOUCH) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.wear_mask) H << "The pepperoni bounces off your mask!" return if(H.head) H << "Your mask protects you from the errant pepperoni!" return if(prob(50)) M.adjustBruteLoss(1) playsound(M, 'sound/effects/woodhit.ogg', 50, 1, -1) M << "A slice of pepperoni slaps you!" else M.emote("burp") M << "My goodness, that was tasty!"


/datum/chemical_reaction/pepperoni name = "Pepperoni" id = "pepperoni" result = "pepperoni" required_reagents = list("beff" = 1, "saltpetre" = 1, "synthflesh" = 1) result_amount = 2 mix_message = "The beff and the synthflesh combine to form a smoky red log." mix_sound = 'sound/effects/blobattack.ogg'

MedicineEdit

  1. define SOLID 1
  2. define LIQUID 2
  3. define GAS 3
  1. define REM REAGENTS_EFFECT_MULTIPLIER

datum/reagent/silver_sulfadiazine name = "Silver Sulfadiazine" id = "silver_sulfadiazine" description = "This antibacterial compound is used to treat burn victims." reagent_state = LIQUID color = "#F0C814" metabolization_rate = 2

datum/reagent/silver_sulfadiazine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) if(iscarbon(M)) if(method == TOUCH) M.adjustFireLoss(-volume) if(show_message) M << "The silver sulfadiazine soothes your burns." if(method == INGEST) M.adjustToxLoss(0.5*volume) if(show_message) M << "You feel sick..." ..() return

datum/reagent/silver_sulfadiazine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustFireLoss(-2*REM) ..() return

datum/reagent/styptic_powder name = "Styptic Powder" id = "styptic_powder" description = "Styptic (aluminium sulfate) powder helps control bleeding and heal physical wounds." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 2

datum/reagent/styptic_powder/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) if(iscarbon(M)) if(method == TOUCH) M.adjustBruteLoss(-volume) if(show_message) M << "The styptic powder stings like hell as it closes some of your wounds!" M.emote("scream") if(method == INGEST) M.adjustToxLoss(0.5*volume) if(show_message) M << "You feel gross!" ..() return

datum/reagent/styptic_powder/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(55)) M.adjustBruteLoss(-8*REM) ..() return

datum/reagent/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" description = "This saline and glucose solution can help stabilize critically injured patients and cleanse wounds." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.15

datum/reagent/salglu_solution/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(33)) M.adjustBruteLoss(-2*REM) M.adjustFireLoss(-2*REM) ..() return

datum/reagent/synthflesh name = "Synthflesh" id = "synthflesh" description = "A resorbable microfibrillar collagen and protein mixture that can rapidly heal injuries when applied topically." reagent_state = LIQUID color = "#FFEBEB"

datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume,var/show_message = 1) if(!M) M = holder.my_atom if(iscarbon(M)) if(method == TOUCH) M.adjustBruteLoss(-1.5*volume) M.adjustFireLoss(-1.5*volume) if(show_message) M << "The synthetic flesh integrates itself into your wounds, healing you." ..() return

datum/reagent/synthflesh/reaction_turf(var/turf/T, var/volume) //let's make a mess! src = null if(volume >= 5) new /obj/effect/decal/cleanable/blood/gibs(T) playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) return

datum/reagent/charcoal name = "Charcoal" id = "charcoal" description = "Activated charcoal helps to absorb toxins." reagent_state = LIQUID color = "#000000" datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(-1.5*REM) for(var/datum/reagent/R in M.reagents.reagent_list) if(R != src) M.reagents.remove_reagent(R.id,1) ..() return /datum/chemical_reaction/charcoal name = "Charcoal" id = "charcoal" result = "charcoal" required_reagents = list("ash" = 1, "sodiumchloride" = 1) result_amount = 2 mix_message = "The mixture yields a fine black powder." min_temp = 380 /datum/chemical_reaction/silver_sulfadiazine name = "Silver Sulfadiazine" id = "silver_sulfadiazine" result = "silver_sulfadiazine" required_reagents = list("ammonia" = 1, "silver" = 1, "sulfur" = 1, "oxygen" = 1, "chlorine" = 1) result_amount = 5 mix_message = "A strong and cloying odor begins to bubble from the mixture." /datum/chemical_reaction/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" result = "salglu_solution" required_reagents = list("sodiumchloride" = 1, "water" = 1, "sugar" = 1) result_amount = 3 /datum/chemical_reaction/synthflesh name = "Synthflesh" id = "synthflesh" result = "synthflesh" required_reagents = list("blood" = 1, "carbon" = 1, "styptic_powder" = 1) result_amount = 3 mix_message = "The mixture knits together into a fibrous, bloody mass." mix_sound = 'sound/effects/blobattack.ogg' /datum/chemical_reaction/styptic_powder name = "Styptic Powder" id = "styptic_powder" result = "styptic_powder" required_reagents = list("aluminum" = 1, "hydrogen" = 1, "oxygen" = 1, "sacid" = 1) result_amount = 4 mix_message = "The solution yields an astringent powder." datum/reagent/omnizine name = "Omnizine" id = "omnizine" description = "Omnizine is a highly potent healing medication that can be used to treat a wide range of injuries." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.2 overdose_threshold = 30 datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(-1*REM) M.adjustOxyLoss(-1*REM) M.adjustBruteLoss(-2*REM) M.adjustFireLoss(-2*REM) ..() return datum/reagent/omnizine/overdose_process(var/mob/living/M as mob) M.adjustToxLoss(3*REM) M.adjustOxyLoss(3*REM) M.adjustBruteLoss(3*REM) M.adjustFireLoss(3*REM) ..() return datum/reagent/calomel name = "Calomel" id = "calomel" description = "This potent purgative rids the body of impurities. It is highly toxic however and close supervision is required." reagent_state = LIQUID color = "#22AB35" metabolization_rate = 0.8 datum/reagent/calomel/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom for(var/datum/reagent/R in M.reagents.reagent_list) if(R != src) M.reagents.remove_reagent(R.id,5) if(M.health > 20) M.adjustToxLoss(5*REM) if(prob(10)) M.fakevomit() ..() return /datum/chemical_reaction/calomel name = "Calomel" id = "calomel" result = "calomel" required_reagents = list("mercury" = 1, "chlorine" = 1) result_amount = 2 min_temp = 374 mix_message = "Stinging vapors rise from the solution." datum/reagent/potass_iodide name = "Potassium Iodide" id = "potass_iodide" description = "Potassium Iodide is a medicinal drug used to counter the effects of radiation poisoning." reagent_state = LIQUID color = "#B4DCBE" datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(M.radiation > 0) if(prob(80)) M.radiation-- if(M.radiation < 0) M.radiation = 0 ..() return /datum/chemical_reaction/potass_iodide name = "Potassium Iodide" id = "potass_iodide" result = "potass_iodide" required_reagents = list("potassium" = 1, "iodine" = 1) result_amount = 2 mix_message = "The solution settles calmly and emits gentle fumes." datum/reagent/pen_acid name = "Pentetic Acid" id = "pen_acid" description = "Pentetic Acid is an aggressive chelation agent. May cause tissue damage. Use with caution." reagent_state = LIQUID color = "#C8A5DC" datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(M.radiation > 0) M.radiation -= 7 if(prob(70)) M.adjustToxLoss(-4*REM) if(prob(33)) M.adjustBruteLoss(1*REM) if(M.radiation < 0) M.radiation = 0 for(var/datum/reagent/R in M.reagents.reagent_list) if(R != src) M.reagents.remove_reagent(R.id,4) ..() return /datum/chemical_reaction/pen_acid name = "Pentetic Acid" id = "pen_acid" result = "pen_acid" required_reagents = list("fuel" = 1, "chlorine" = 1, "ammonia" = 1, "formaldehyde" = 1, "sodium" = 1, "cyanide" = 1) result_amount = 6 mix_message = "The substance becomes very still, emitting a curious haze." datum/reagent/sal_acid name = "Salicylic Acid" id = "sal_acid" description = "This is a is a standard salicylate pain reliever and fever reducer." reagent_state = LIQUID color = "#B3B3B3" shock_reduction = 40 overdose_threshold = 25 datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(M.getBruteLoss() < 50) if(prob(50)) M.adjustBruteLoss(-1*REM) ..() return datum/reagent/sal_acid/overdose_process(var/mob/living/M as mob) if(M.getBruteLoss() < 50) if(prob(50)) M.adjustBruteLoss(2*REM) ..() return /datum/chemical_reaction/sal_acid name = "Salicyclic Acid" id = "sal_acid" result = "sal_acid" required_reagents = list("sodium" = 1, "phenol" = 1, "carbon" = 1, "oxygen" = 1, "sacid" = 1) result_amount = 5 mix_message = "The mixture crystallizes." datum/reagent/salbutamol name = "Salbutamol" id = "salbutamol" description = "Salbutamol is a common bronchodilation medication for asthmatics. It may help with other breathing problems as well." reagent_state = LIQUID color = "#00FFFF" metabolization_rate = 0.2 datum/reagent/salbutamol/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustOxyLoss(-6*REM) if(M.losebreath >= 4) M.losebreath -= 4 ..() return /datum/chemical_reaction/salbutamol name = "Salbutamol" id = "salbutamol" result = "salbutamol" required_reagents = list("sal_acid" = 1, "lithium" = 1, "aluminum" = 1, "bromine" = 1, "ammonia" = 1) result_amount = 5 mix_message = "The solution bubbles freely, creating a head of bluish foam." datum/reagent/perfluorodecalin name = "Perfluorodecalin" id = "perfluorodecalin" description = "This experimental perfluoronated solvent has applications in liquid breathing and tissue oxygenation. Use with caution." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.2 datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob) if(!M) M = holder.my_atom M.adjustOxyLoss(-25*REM) M.silent = max(M.silent, 5) if(prob(33)) M.adjustBruteLoss(-1*REM) M.adjustFireLoss(-1*REM) ..() return /datum/chemical_reaction/perfluorodecalin name = "Perfluorodecalin" id = "perfluorodecalin" result = "perfluorodecalin" required_reagents = list("hydrogen" = 1, "fluorine" = 1, "oil" = 1) result_amount = 3 min_temp = 370 mix_message = "The mixture rapidly turns into a dense pink liquid." datum/reagent/ephedrine name = "Ephedrine" id = "ephedrine" description = "Ephedrine is a plant-derived stimulant." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.3 overdose_threshold = 45 addiction_threshold = 30 datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.AdjustParalysis(-1) M.AdjustStunned(-1) M.AdjustWeakened(-1) M.adjustStaminaLoss(-1*REM) ..() return datum/reagent/ephedrine/overdose_process(var/mob/living/M as mob) if(prob(33)) M.adjustToxLoss(1*REM) M.losebreath++ ..() return datum/reagent/ephedrine/addiction_act_stage1(var/mob/living/M as mob) if(prob(33)) M.adjustToxLoss(2*REM) M.losebreath += 2 ..() return datum/reagent/ephedrine/addiction_act_stage2(var/mob/living/M as mob) if(prob(33)) M.adjustToxLoss(3*REM) M.losebreath += 3 ..() return datum/reagent/ephedrine/addiction_act_stage3(var/mob/living/M as mob) if(prob(33)) M.adjustToxLoss(4*REM) M.losebreath += 4 ..() return datum/reagent/ephedrine/addiction_act_stage4(var/mob/living/M as mob) if(prob(33)) M.adjustToxLoss(5*REM) M.losebreath += 5 ..() return /datum/chemical_reaction/ephedrine name = "Ephedrine" id = "ephedrine" 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/reagent/diphenhydramine name = "Diphenhydramine" id = "diphenhydramine" description = "Anti-allergy medication. May cause drowsiness, do not operate heavy machinery while using this." reagent_state = LIQUID color = "#5BCBE1" datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.drowsyness += 1 M.jitteriness -= 1 M.reagents.remove_reagent("histamine",3) M.reagents.remove_reagent("itching_powder",3) ..() return /datum/chemical_reaction/diphenhydramine name = "Diphenhydramine" id = "diphenhydramine" result = "diphenhydramine" required_reagents = list("oil" = 1, "carbon" = 1, "bromine" = 1, "diethylamine" = 1, "ethanol" = 1) result_amount = 4 mix_message = "The mixture fizzes gently." datum/reagent/morphine name = "Morphine" id = "morphine" description = "A strong but highly addictive opiate painkiller with sedative side effects." reagent_state = LIQUID color = "#C8A5DC" overdose_threshold = 30 addiction_threshold = 25 shock_reduction = 60 datum/reagent/morphine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.status_flags |= IGNORESLOWDOWN switch(current_cycle) if(0 to 15) if(prob(5)) M.emote("yawn") if(16 to 35) M.drowsyness = max(M.drowsyness, 10) if(36 to INFINITY) M.Paralyse(10) M.drowsyness = max(M.drowsyness, 15) ..() return datum/reagent/morphine/overdose_process(var/mob/living/M as mob) if(prob(33)) var/obj/item/I = M.get_active_hand() if(I) M.drop_item() M.Dizzy(1) M.Jitter(1) ..() return datum/reagent/morphine/addiction_act_stage1(var/mob/living/M as mob) if(prob(33)) var/obj/item/I = M.get_active_hand() if(I) M.drop_item() M.Dizzy(2) M.Jitter(2) ..() return datum/reagent/morphine/addiction_act_stage2(var/mob/living/M as mob) if(prob(33)) var/obj/item/I = M.get_active_hand() if(I) M.drop_item() M.adjustToxLoss(1*REM) M.Dizzy(3) M.Jitter(3) ..() return datum/reagent/morphine/addiction_act_stage3(var/mob/living/M as mob) if(prob(33)) var/obj/item/I = M.get_active_hand() if(I) M.drop_item() M.adjustToxLoss(2*REM) M.Dizzy(4) M.Jitter(4) ..() return datum/reagent/morphine/addiction_act_stage4(var/mob/living/M as mob) if(prob(33)) var/obj/item/I = M.get_active_hand() if(I) M.drop_item() M.adjustToxLoss(3*REM) M.Dizzy(5) M.Jitter(5) ..() return datum/reagent/oculine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.eye_blurry = max(M.eye_blurry-5 , 0) M.eye_blind = max(M.eye_blind-5 , 0) if(ishuman(M)) var/mob/living/carbon/human/H = M var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"] if(istype(E)) if(E.damage > 0) E.damage -= 1 ..() return /datum/chemical_reaction/oculine name = "Oculine" id = "oculine" result = "oculine" required_reagents = list("atropine" = 1, "spaceacillin" = 1, "salglu_solution" = 1) result_amount = 3 mix_message = "The mixture settles, becoming a milky white." datum/reagent/oculine name = "Oculine" id = "oculine" description = "Oculine is a saline eye medication with mydriatic and antibiotic effects." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.4 var/cycle_amount = 0 datum/reagent/atropine name = "Atropine" id = "atropine" description = "Atropine is a potent cardiac resuscitant but it can causes confusion, dizzyness and hyperthermia." reagent_state = LIQUID color = "#000000" metabolization_rate = 0.2 overdose_threshold = 35 datum/reagent/atropine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(M.health > -60) M.adjustToxLoss(1*REM) if(M.health < -25) M.adjustBruteLoss(-3*REM) M.adjustFireLoss(-3*REM) if(M.oxyloss > 65) M.adjustOxyLoss(-10*REM) if(M.losebreath > 5) M.losebreath = 5 if(M.confused > 60) M.confused += 5 M.reagents.remove_reagent("tabun",10) ..() return datum/reagent/atropine/overdose_process(var/mob/living/M as mob) if(prob(50)) M.adjustToxLoss(2*REM) M.Dizzy(1) M.Jitter(1) ..() return /datum/chemical_reaction/atropine name = "Atropine" id = "atropine" result = "atropine" required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1) result_amount = 5 mix_message = "A horrid smell like something died drifts from the mixture." datum/reagent/epinephrine name = "Epinephrine" id = "epinephrine" description = "Epinephrine is a potent neurotransmitter, used in medical emergencies to halt anaphylactic shock and prevent cardiac arrest." reagent_state = LIQUID color = "#96B1AE" metabolization_rate = 0.2 overdose_threshold = 30 datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(M.health < -10 && M.health > -65) M.adjustToxLoss(-1*REM) M.adjustBruteLoss(-1*REM) M.adjustFireLoss(-1*REM) if(M.oxyloss > 35) M.adjustOxyLoss(-10*REM) if(M.losebreath >= 3) M.losebreath = 3 ..() return datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob) if(prob(33)) M.adjustStaminaLoss(5*REM) M.adjustToxLoss(2*REM) M.losebreath++ ..() return /datum/chemical_reaction/epinephrine name = "Epinephrine" id = "epinephrine" result = "epinephrine" required_reagents = list("phenol" = 1, "acetone" = 1, "diethylamine" = 1, "oxygen" = 1, "chlorine" = 1, "hydrogen" = 1) result_amount = 6 mix_message = "Tiny white crystals precipitate out of the solution." datum/reagent/strange_reagent name = "Strange Reagent" id = "strange_reagent" description = "A glowing green fluid highly reminiscent of nuclear waste." reagent_state = LIQUID color = "#A0E85E" metabolization_rate = 0.2 datum/reagent/strange_reagent/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume) if(istype(M, /mob/living/simple_animal)) if(method == TOUCH) if(M.stat == DEAD) M.health = M.maxHealth M.visible_message("[M] seems to rise from the dead!") if(istype(M, /mob/living/carbon)) if(method == INGEST) if(M.stat == DEAD) if(M.getBruteLoss()+M.getFireLoss() >= 150) M.visible_message("[M]'s body starts convulsing!") M.gib() return var/mob/dead/observer/ghost = M.get_ghost() if(ghost) ghost << "Your are attempting to be revived with Strange Reagent. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)" ghost << sound('sound/effects/genetics.ogg') M.visible_message("[M] doesn't appear to respond, perhaps try again later?") if(!M.suiciding && !ghost && !(NOCLONE in M.mutations)) M.visible_message("[M] seems to rise from the dead!") M.stat = 1 M.setOxyLoss(0) M.adjustBruteLoss(rand(0,15)) M.adjustToxLoss(rand(0,15)) M.adjustFireLoss(rand(0,15)) dead_mob_list -= M living_mob_list |= list(M) add_logs(M, M, "revived", object="strange reagent") ..() return datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(10)) M.adjustBruteLoss(2*REM) M.adjustToxLoss(2*REM) ..() return /datum/chemical_reaction/strange_reagent name = "Strange Reagent" id = "strange_reagent" result = "strange_reagent" required_reagents = list("omnizine" = 1, "holywater" = 1, "mutagen" = 1) result_amount = 3 mix_message = "The substance begins moving on its own somehow." datum/reagent/life name = "Life" id = "life" description = "Can create a life form, however it is not guaranteed to be friendly. May want to have Security on hot standby." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.2 /datum/chemical_reaction/life name = "Life" id = "life" result = null required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "blood" = 1) result_amount = 3 min_temp = 374 /datum/chemical_reaction/life/on_reaction(var/datum/reagents/holder, var/created_volume) chemical_mob_spawn(holder, 1, "Life") proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reaction_name, var/mob_faction = "chemicalsummon") if(holder && holder.my_atom) var/blocked = blocked_mobs //global variable for blocked mobs var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs var/atom/A = holder.my_atom var/turf/T = get_turf(A) var/area/my_area = get_area(T) var/message = "A [reaction_name] reaction has occured in [my_area.name]. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</A>)" message += " (<A HREF='?_src_=vars;Vars=\ref[A]'>VV</A>)" var/mob/M = get(A, /mob) if(M) message += " - Carried By: [M.real_name] ([M.key]) (<A HREF='?_src_=holder;adminplayeropts=\ref[M]'>PP</A>) (<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>?</A>)" else message += " - Last Fingerprint: [(A.fingerprintslast ? A.fingerprintslast : "N/A")]" message_admins(message, 0, 1) playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) for(var/i = 1, i <= amount_to_spawn, i++) var/chosen = pick(critters) var/mob/living/simple_animal/hostile/C = new chosen C.faction |= mob_faction C.loc = get_turf(holder.my_atom) if(prob(50)) for(var/j = 1, j <= rand(1, 3), j++) step(C, pick(NORTH,SOUTH,EAST,WEST)) /datum/reagent/mannitol/on_mob_life(mob/living/M as mob) M.adjustBrainLoss(-3) ..() return /datum/chemical_reaction/mannitol name = "Mannitol" id = "mannitol" result = "mannitol" required_reagents = list("sugar" = 1, "hydrogen" = 1, "water" = 1) result_amount = 3 mix_message = "The mixture bubbles slowly, making a slightly sweet odor." /datum/reagent/mannitol name = "Mannitol" id = "mannitol" description = "Mannitol is a sugar alcohol that can help alleviate cranial swelling." color = "#D1D1F1" /datum/reagent/mutadone/on_mob_life(var/mob/living/carbon/human/M as mob) M.jitteriness = 0 var/needs_update = 1 //M.mutations.len > 0 for(var/block=1;block<=DNA_SE_LENGTH;block++) M.dna.SetSEState(block,0) genemutcheck(M,block,null,MUTCHK_FORCED) M.update_mutations() M.dna.struc_enzymes = M.dna.struc_enzymes_original // Might need to update appearance for hulk etc. if(needs_update && ishuman(M)) var/mob/living/carbon/human/H = M H.update_mutations() ..() return /datum/chemical_reaction/mutadone name = "Mutadone" id = "mutadone" result = "mutadone" required_reagents = list("mutagen" = 1, "acetone" = 1, "bromine" = 1) result_amount = 3 mix_message = "A foul astringent liquid emerges from the reaction." /datum/reagent/mutadone name = "Mutadone" id = "mutadone" description = "Mutadone is an experimental bromide that can cure genetic abnomalities." color = "#5096C8" datum/reagent/antihol name = "Antihol" id = "antihol" description = "A medicine which quickly eliminates alcohol in the body." color = "#009CA8" datum/reagent/antihol/on_mob_life(var/mob/living/M as mob) M.dizziness = 0 M.drowsyness = 0 M.slurring = 0 M.confused = 0 M.reagents.remove_reagent("ethanol", 8) ..() /datum/chemical_reaction/antihol name = "antihol" id = "antihol" result = "antihol" required_reagents = list("ethanol" = 1, "charcoal" = 1) result_amount = 2 mix_message = "A minty and refreshing smell drifts from the effervescent mixture." /datum/reagent/stimulants name = "Stimulants" id = "stimulants" description = "Increases run speed and eliminates stuns, can heal minor damage. If overdosed it will deal toxin damage and stun." color = "#C8A5DC" metabolization_rate = 0.4 datum/reagent/stimulants/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustOxyLoss(-5*REM) M.adjustToxLoss(-5*REM) M.adjustBruteLoss(-10*REM) M.adjustFireLoss(-10*REM) M.setStaminaLoss(0) var/status = CANSTUN | CANWEAKEN | CANPARALYSE M.status_flags &= ~status ..() datum/reagent/stimulants/reagent_deleted(var/mob/living/M as mob) if(!M) M = holder.my_atom M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE M.adjustBruteLoss(12) M.adjustToxLoss(24) M.Stun(4) ..() return datum/reagent/insulin name = "Insulin" id = "insulin" description = "A hormone generated by the pancreas responsible for metabolizing carbohydrates and fat in the bloodstream." reagent_state = LIQUID color = "#C8A5DC" datum/reagent/insulin/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.reagents.remove_reagent("sugar", 5) ..() return /datum/reagent/simethicone name = "Simethicone" id = "simethicone" description = "This strange liquid seems to have no bubbles on the surface." color = "#14AA46" /datum/chemical_reaction/Simethicone name = "Simethicone" id = "simethicone" result = "simethicone" required_reagents = list("hydrogen" = 1, "chlorine" = 1, "silicon" = 1, "oxygen" = 1) result_amount = 4 datum/reagent/teporone name = "Teporone" id = "teporone" description = "This experimental plasma-based compound seems to regulate body temperature." reagent_state = LIQUID color = "#D782E6" datum/reagent/teporone/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(M.bodytemperature > 310) M.bodytemperature -= 10 if(M.bodytemperature < 310) M.bodytemperature += 10 ..() return /datum/chemical_reaction/teporone name = "Teporone" id = "teporone" result = "teporone" required_reagents = list("acetone" = 1, "silicon" = 1, "plasma" = 1) result_amount = 2 mix_message = "The mixture turns an odd lavender color." datum/reagent/haloperidol name = "Haloperidol" id = "haloperidol" description = "Haloperidol is a powerful antipsychotic and sedative. Will help control psychiatric problems, but may cause brain damage." reagent_state = LIQUID color = "#FFDCFF" datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.reagents.remove_reagent("crank", 5) M.reagents.remove_reagent("methamphetamine", 5) M.reagents.remove_reagent("space_drugs", 5) M.reagents.remove_reagent("psilocybin", 5) M.reagents.remove_reagent("ephedrine", 5) M.reagents.remove_reagent("epinephrine", 5) M.reagents.remove_reagent("stimulants", 5) M.reagents.remove_reagent("bath_salts", 5) M.reagents.remove_reagent("lsd", 5) M.druggy -= 5 M.hallucination -= 5 M.jitteriness -= 5 if(prob(40)) M.drowsyness = max(M.drowsyness, 2) if(prob(10)) M.emote("drool") if(prob(20)) M.adjustBrainLoss(1) ..() return /datum/chemical_reaction/haloperidol name = "Haloperidol" id = "haloperidol" result = "haloperidol" required_reagents = list("chlorine" = 1, "fluorine" = 1, "aluminum" = 1, "potass_iodide" = 1, "oil" = 1) result_amount = 4 mix_message = "The chemicals mix into an odd pink slush." /datum/reagent/ether name = "Ether" id = "ether" description = "A strong anesthetic and sedative." reagent_state = LIQUID color = "#96DEDE" /datum/reagent/ether/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom switch(current_cycle) if(0 to 15) if(prob(5)) M.emote("yawn") if(16 to 35) M.drowsyness = max(M.drowsyness, 10) if(36 to INFINITY) M.Paralyse(10) M.drowsyness = max(M.drowsyness, 15) ..() return /datum/chemical_reaction/ether name = "Ether" id = "ether" result = "ether" required_reagents = list("sacid" = 1, "ethanol" = 1, "oxygen" = 1) result_amount = 1 mix_message = "The mixture yields a pungent odor, which makes you tired."


////////////////////////////// // Synth-Meds // ////////////////////////////// //Degreaser: Anti-toxin / Lube Remover /datum/reagent/degreaser name = "Degreaser" id = "degreaser" description = "An industrial degreaser which can be used to clean residual build-up from machinery and surfaces." reagent_state = LIQUID color = "#CC7A00" process_flags = SYNTHETIC /datum/chemical_reaction/degreaser name = "Degreaser" id = "degreaser" result = "degreaser" required_reagents = list("oil" = 1, "sterilizine" = 1) result_amount = 2 /datum/reagent/degreaser/reaction_turf(var/turf/simulated/T, var/volume) if (!istype(T)) return src = null if(volume >= 1) if(T.wet >= 2) //Clears lube! Fight back against the slipping, and WIN! T.wet = 0 if(T.wet_overlay) T.overlays -= T.wet_overlay T.wet_overlay = null return /datum/reagent/degreaser/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(-1.5*REM) for(var/datum/reagent/R in M.reagents.reagent_list) if(R != src) if(R.id == "ultralube" || R.id == "lube") //Flushes lube and ultra-lube even faster than other chems M.reagents.remove_reagent(R.id, 5) else M.reagents.remove_reagent(R.id,1) ..() return //Liquid Solder: Mannitol /datum/reagent/liquid_solder name = "Liquid Solder" id = "liquid_solder" description = "A solution formulated to clean and repair damaged connections in posibrains while in use." reagent_state = LIQUID color = "#D7B395" process_flags = SYNTHETIC /datum/reagent/liquid_solder/on_mob_life(mob/living/M as mob) M.adjustBrainLoss(-3) ..() return /datum/chemical_reaction/liquid_solder name = "Liquid Solder" id = "liquid_solder" result = "liquid_solder" required_reagents = list("ethanol" = 1, "copper" = 1, "silver" = 1) result_amount = 3 min_temp = 370 mix_message = "The solution gently swirls with a metallic sheen."

OtherEdit

datum/reagent/oil name = "Oil" id = "oil" description = "A decent lubricant for machines. High in benzene, naptha and other hydrocarbons." reagent_state = LIQUID color = "#3C3C3C"

datum/reagent/iodine name = "Iodine" id = "iodine" description = "A purple gaseous element." reagent_state = GAS color = "#493062"

datum/reagent/carpet name = "Carpet" id = "carpet" description = "A covering of thick fabric used on floors. This type looks particularly gross." reagent_state = LIQUID color = "#701345"

/datum/reagent/carpet/reaction_turf(var/turf/simulated/T, var/volume) if(T.is_plating() || T.is_plasteel_floor()) var/turf/simulated/floor/F = T F.ChangeTurf(/turf/simulated/floor/carpet) ..() return

datum/reagent/bromine name = "Bromine" id = "bromine" description = "A red-brown liquid element." reagent_state = LIQUID color = "#4E3A3A"

datum/reagent/phenol name = "Phenol" id = "phenol" description = "Also known as carbolic acid, this is a useful building block in organic chemistry." reagent_state = LIQUID color = "#525050"

datum/reagent/ash name = "Ash" id = "ash" description = "Ashes to ashes, dust to dust." reagent_state = LIQUID color = "#191919"

datum/reagent/acetone name = "Acetone" id = "acetone" description = "Pure 100% nail polish remover, also works as an industrial solvent." reagent_state = LIQUID color = "#474747"

/datum/chemical_reaction/acetone name = "acetone" id = "acetone" result = "acetone" required_reagents = list("oil" = 1, "fuel" = 1, "oxygen" = 1) result_amount = 3 mix_message = "The smell of paint thinner assaults you as the solution bubbles."

/datum/chemical_reaction/carpet name = "carpet" id = "carpet" result = "carpet" required_reagents = list("fungus" = 1, "blood" = 1) result_amount = 2 mix_message = "The substance turns thick and stiff, yet soft."


/datum/chemical_reaction/oil name = "Oil" id = "oil" result = "oil" required_reagents = list("fuel" = 1, "carbon" = 1, "hydrogen" = 1) result_amount = 3 mix_message = "An iridescent black chemical forms in the container."

/datum/chemical_reaction/phenol name = "phenol" id = "phenol" result = "phenol" required_reagents = list("water" = 1, "chlorine" = 1, "oil" = 1) result_amount = 3 mix_message = "The mixture bubbles and gives off an unpleasant medicinal odor."

/datum/chemical_reaction/ash name = "Ash" id = "ash" result = "ash" required_reagents = list("oil" = 1) result_amount = 0.5 min_temp = 480 mix_sound = null no_message = 1

datum/reagent/colorful_reagent name = "Colorful Reagent" id = "colorful_reagent" description = "It's pure liquid colors. That's a thing now." reagent_state = LIQUID color = "#FFFFFF"

/datum/chemical_reaction/colorful_reagent name = "colorful_reagent" id = "colorful_reagent" result = "colorful_reagent" required_reagents = list("plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1, "stabilizing_agent" = 1) result_amount = 6 mix_message = "The substance flashes multiple colors and emits the smell of a pocket protector."

datum/reagent/colorful_reagent/reaction_mob(var/mob/living/simple_animal/M, var/method=TOUCH, var/volume)

   if(M && istype(M))
       M.color = pick(random_color_list)
   ..()
   return

datum/reagent/colorful_reagent/reaction_obj(var/obj/O, var/volume) if(O) O.color = pick(random_color_list) ..() return datum/reagent/colorful_reagent/reaction_turf(var/turf/T, var/volume) if(T) T.color = pick(random_color_list) ..() return

/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 = 3 min_temp = 374

datum/reagent/corgium name = "Corgium" id = "corgium" description = "Corgi in liquid form. Don't ask." reagent_state = LIQUID color = "#F9A635"

/datum/chemical_reaction/corgium/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /mob/living/simple_animal/pet/corgi(location) ..() return


/datum/chemical_reaction/flaptonium name = "Flaptonium" id = "flaptonium" result = null required_reagents = list("egg" = 1, "colorful_reagent" = 1, "chicken_soup" = 1, "strange_reagent" = 1, "blood" = 1) result_amount = 5 min_temp = 374 mix_message = "The substance turns an airy sky-blue and foams up into a new shape."

/datum/chemical_reaction/flaptonium/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /mob/living/simple_animal/parrot(location) ..() return


datum/reagent/hair_dye name = "Quantum Hair Dye" id = "hair_dye" description = "A rather tubular and gnarly way of coloring totally bodacious hair. Duuuudddeee." reagent_state = LIQUID color = "#960096"

/datum/chemical_reaction/hair_dye name = "hair_dye" id = "hair_dye" result = "hair_dye" required_reagents = list("colorful_reagent" = 1, "hairgrownium" = 1) result_amount = 2

datum/reagent/hair_dye/reaction_mob(var/mob/living/M, var/volume) if(M && ishuman(M)) var/mob/living/carbon/human/H = M H.r_facial = rand(0,255) H.g_facial = rand(0,255) H.b_facial = rand(0,255) H.r_hair = rand(0,255) H.g_hair = rand(0,255) H.b_hair = rand(0,255) H.update_hair() ..() return

datum/reagent/hairgrownium name = "Hairgrownium" id = "hairgrownium" description = "A mysterious chemical purported to help grow hair. Often found on late-night TV infomercials." reagent_state = LIQUID color = "#5DDA5D" penetrates_skin = 1

/datum/chemical_reaction/hairgrownium name = "hairgrownium" id = "hairgrownium" result = "hairgrownium" required_reagents = list("carpet" = 1, "synthflesh" = 1, "ephedrine" = 1) result_amount = 3 mix_message = "The liquid becomes slightly hairy."

datum/reagent/hairgrownium/reaction_mob(var/mob/living/M, var/volume) if(M && ishuman(M)) var/mob/living/carbon/human/H = M H.h_style = random_hair_style(H.gender, H.species) H.f_style = random_facial_hair_style(H.gender, H.species) H.update_hair() ..() return

datum/reagent/super_hairgrownium name = "Super Hairgrownium" id = "super_hairgrownium" description = "A mysterious and powerful chemical purported to cause rapid hair growth." reagent_state = LIQUID color = "#5DD95D" penetrates_skin = 1


/datum/chemical_reaction/super_hairgrownium name = "Super Hairgrownium" id = "super_hairgrownium" result = "super_hairgrownium" required_reagents = list("iron" = 1, "methamphetamine" = 1, "hairgrownium" = 1) result_amount = 3 mix_message = "The liquid becomes amazingly furry and smells peculiar."

datum/reagent/super_hairgrownium/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(M && ishuman(M)) var/mob/living/carbon/human/H = M H.h_style = "Very Long Hair" H.f_style = "Very Long Beard" H.update_hair() if(!H.wear_mask || H.wear_mask && !istype(H.wear_mask, /obj/item/clothing/mask/fakemoustache)) if(H.wear_mask) H.unEquip(H.wear_mask) var/obj/item/clothing/mask/fakemoustache = new /obj/item/clothing/mask/fakemoustache H.equip_to_slot(fakemoustache, slot_wear_mask) H << "Hair bursts forth from your every follicle!" ..() return

datum/reagent/fartonium name = "Fartonium" id = "fartonium" description = "Oh god it never ends, IT NEVER STOPS!" reagent_state = GAS color = "#D06E27"

/datum/chemical_reaction/fartonium name = "Fartonium" id = "fartonium" result = "fartonium" required_reagents = list("fake_cheese" = 1, "beans" = 1, "????" = 1, "egg" = 1) result_amount = 2 mix_message = "The substance makes a little 'toot' noise and starts to smell pretty bad."

datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.emote("fart") if(holder.has_reagent("simethicone")) if(prob(30)) switch(pick(1,2)) if(1) M << "Something isn't right!" M.adjustBruteLoss(1) if(2) M.emote("me",1,"strains, but nothing happens.") M.adjustBruteLoss(2) if(3) M.emote("scream") M.adjustBruteLoss(2) if(4) M << "Oh gosh, the pain!" M.adjustBruteLoss(1) if(5) M << "THE PAIN!" M.adjustBruteLoss(1) ..() return


///Alchemical Reagents

datum/reagent/eyenewt name = "Eye of newt" id = "eyenewt" description = "A potent alchemic ingredient." reagent_state = LIQUID color = "#050519"

datum/reagent/toefrog name = "Toe of frog" id = "toefrog" description = "A potent alchemic ingredient." reagent_state = LIQUID color = "#092D09"

datum/reagent/woolbat name = "Wool of bat" id = "woolbat" description = "A potent alchemic ingredient." reagent_state = LIQUID color = "#080808"

datum/reagent/tonguedog name = "Tongue of dog" id = "tonguedog" description = "A potent alchemic ingredient." reagent_state = LIQUID color = "#2D0909"

datum/reagent/triplepiss name = "Triplepiss" id = "triplepiss" description = "Ewwwwwwwww." reagent_state = LIQUID color = "#857400"

PatchEdit

/obj/item/weapon/reagent_containers/pill/patch name = "chemical patch" desc = "A chemical patch for touch based applications." icon = 'icons/obj/chemical.dmi' icon_state = "bandaid" item_state = "bandaid" possible_transfer_amounts = null volume = 50 apply_type = TOUCH apply_method = "apply"

/obj/item/weapon/reagent_containers/pill/patch/New() ..() icon_state = "bandaid"

/obj/item/weapon/reagent_containers/pill/patch/afterattack(obj/target, mob/user , proximity) return // thanks inheritance again

/obj/item/weapon/reagent_containers/pill/patch/styptic name = "healing patch" desc = "Helps with brute injuries." New() ..() reagents.add_reagent("styptic_powder", 40)

/obj/item/weapon/reagent_containers/pill/patch/silver_sulf name = "burn patch" desc = "Helps with burn injuries." New() ..() reagents.add_reagent("silver_sulfadiazine", 40)

/obj/item/weapon/reagent_containers/pill/patch/synthflesh name = "syntheflesh patch" desc = "Helps with burn injuries." New() ..() reagents.add_reagent("synthflesh", 20)

PyroEdit

/datum/reagent/stabilizing_agent name = "Stabilizing Agent" id = "stabilizing_agent" description = "A chemical that stabilises normally volatile compounds, preventing them from reacting immediately." reagent_state = LIQUID color = "#FFFF00"

/datum/chemical_reaction/stabilizing_agent name = "stabilizing_agent" id = "stabilizing_agent" result = "stabilizing_agent" required_reagents = list("iron" = 1, "oxygen" = 1, "hydrogen" = 1) result_amount = 2 mix_message = "The mixture becomes a yellow liquid!"

/datum/reagent/clf3 name = "Chlorine Trifluoride" id = "clf3" description = "An extremely volatile substance, handle with the utmost care." reagent_state = LIQUID color = "#FF0000" metabolization_rate = 4 process_flags = ORGANIC | SYNTHETIC

/datum/chemical_reaction/clf3 name = "Chlorine Trifluoride" id = "clf3" result = "clf3" required_reagents = list("chlorine" = 1, "fluorine" = 3) result_amount = 2 min_temp = 424

/datum/reagent/clf3/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjust_fire_stacks(4) M.adjustFireLoss(0.35*M.fire_stacks) ..() return

/datum/chemical_reaction/clf3/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/T = get_turf(holder.my_atom) for(var/turf/turf in range(1,T)) PoolOrNew(/obj/effect/hotspot, turf) return

/datum/reagent/clf3/reaction_turf(var/turf/simulated/T, var/volume) if(istype(T, /turf/simulated/floor/plating)) var/turf/simulated/floor/plating/F = T if(prob(1)) F.ChangeTurf(/turf/space) if(istype(T, /turf/simulated/floor/)) var/turf/simulated/floor/F = T if(prob(volume/10)) F.make_plating() if(istype(F, /turf/simulated/floor/)) PoolOrNew(/obj/effect/hotspot, F) if(istype(T, /turf/simulated/wall/)) var/turf/simulated/wall/W = T if(prob(volume/10)) W.ChangeTurf(/turf/simulated/floor) if(istype(T, /turf/simulated/shuttle/)) PoolOrNew(/obj/effect/hotspot, T) return

/datum/reagent/clf3/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(method == TOUCH && isliving(M)) M.adjust_fire_stacks(5) M.IgniteMob() M.bodytemperature += 30 return

/datum/reagent/sorium name = "Sorium" id = "sorium" description = "Sends everything flying from the detonation point." reagent_state = LIQUID color = "#FFA500"


/datum/chemical_reaction/sorium name = "Sorium" id = "sorium" result = "sorium" required_reagents = list("mercury" = 1, "oxygen" = 1, "nitrogen" = 1, "carbon" = 1) result_amount = 4 /datum/chemical_reaction/sorium_vortex name = "sorium_vortex" id = "sorium_vortex" result = null required_reagents = list("sorium" = 1) min_temp = 474


/datum/chemical_reaction/sorium_vortex/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/simulated/T = get_turf(holder.my_atom) goonchem_vortex(T, 1, 5, 6) /datum/chemical_reaction/sorium/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return holder.remove_reagent("sorium", created_volume) var/turf/simulated/T = get_turf(holder.my_atom) goonchem_vortex(T, 1, 5, 6)


/datum/reagent/liquid_dark_matter name = "Liquid Dark Matter" id = "liquid_dark_matter" description = "Sucks everything into the detonation point." reagent_state = LIQUID color = "#800080" /datum/chemical_reaction/liquid_dark_matter name = "Liquid Dark Matter" id = "liquid_dark_matter" result = "liquid_dark_matter" required_reagents = list("plasma" = 1, "radium" = 1, "carbon" = 1) result_amount = 3 /datum/chemical_reaction/ldm_vortex name = "LDM Vortex" id = "ldm_vortex" result = null required_reagents = list("liquid_dark_matter" = 1) min_temp = 474 /datum/chemical_reaction/ldm_vortex/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/simulated/T = get_turf(holder.my_atom) goonchem_vortex(T, 0, 5, 6) return /datum/chemical_reaction/liquid_dark_matter/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return holder.remove_reagent("liquid_dark_matter", created_volume) var/turf/simulated/T = get_turf(holder.my_atom) goonchem_vortex(T, 0, 5, 6) return /proc/goonchem_vortex(var/turf/simulated/T, var/setting_type, var/range, var/pull_times) for(var/atom/movable/X in orange(range, T)) if(istype(X, /obj/effect)) continue //stop pulling smoke and hotspots please if(istype(X, /atom/movable)) if((X) && !X.anchored) if(setting_type) playsound(T, 'sound/effects/bang.ogg', 25, 1) for(var/i = 0, i < pull_times, i++) step_away(X,T) else playsound(T, 'sound/effects/whoosh.ogg', 25, 1) //credit to Robinhood76 of Freesound.org for this. for(var/i = 0, i < pull_times, i++) step_towards(X,T) /datum/reagent/blackpowder name = "Black Powder" id = "blackpowder" description = "Explodes. Violently." reagent_state = LIQUID color = "#000000" metabolization_rate = 0.05 penetrates_skin = 1


/datum/chemical_reaction/blackpowder name = "Black Powder" id = "blackpowder" result = "blackpowder" required_reagents = list("saltpetre" = 1, "charcoal" = 1, "sulfur" = 1) result_amount = 3 /datum/chemical_reaction/blackpowder_explosion name = "Black Powder Kaboom" id = "blackpowder_explosion" result = null required_reagents = list("blackpowder" = 1) result_amount = 1 min_temp = 474 no_message = 1 mix_sound = null datum/reagent/blackpowder/reaction_turf(var/turf/T, var/volume) //oh shit src = null if(volume >= 5) if(!locate(/obj/effect/decal/cleanable/dirt/blackpowder) in get_turf(T)) //let's not have hundreds of decals of black powder on the same turf new /obj/effect/decal/cleanable/dirt/blackpowder(T) return /datum/chemical_reaction/blackpowder_explosion/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() sleep(rand(20,30)) blackpowder_detonate(holder, created_volume) return /* /datum/reagent/blackpowder/on_ex_act() var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() sleep(rand(10,15)) blackpowder_detonate(holder, volume) holder.remove_reagent("blackpowder", volume) return */ /proc/blackpowder_detonate(var/datum/reagents/holder, var/created_volume) var/turf/simulated/T = get_turf(holder.my_atom) var/ex_severe = round(created_volume / 100) var/ex_heavy = round(created_volume / 42) var/ex_light = round(created_volume / 20) var/ex_flash = round(created_volume / 8) explosion(T,ex_severe,ex_heavy,ex_light,ex_flash, 1) // If this black powder is in a decal, remove the decal, because it just exploded if(istype(holder.my_atom, /obj/effect/decal/cleanable/dirt/blackpowder)) spawn(0) qdel(holder.my_atom) return


/datum/reagent/flash_powder name = "Flash Powder" id = "flash_powder" description = "Makes a very bright flash." reagent_state = LIQUID color = "#FFFF00" /datum/chemical_reaction/flash_powder name = "Flash powder" id = "flash_powder" result = "flash_powder" required_reagents = list("aluminum" = 1, "potassium" = 1, "sulfur" = 1, "chlorine" = 1) result_amount = 3 /datum/chemical_reaction/flash_powder_flash name = "Flash powder activation" id = "flash_powder_flash" result = null required_reagents = list("flash_powder" = 1) min_temp = 374 /datum/chemical_reaction/flash_powder_flash/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() for(var/mob/living/carbon/C in viewers(5, location)) if(C.eyecheck()) continue flick("e_flash", C.flash) if(get_dist(C, location) < 4) C.Weaken(5) continue C.Stun(5) /datum/chemical_reaction/flash_powder/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() for(var/mob/living/carbon/C in viewers(5, location)) if(C.eyecheck()) continue flick("e_flash", C.flash) if(get_dist(C, location) < 4) C.Weaken(5) continue C.Stun(5) holder.remove_reagent("flash_powder", created_volume) /

datum/reagent/smoke_powder name = "Smoke Powder" id = "smoke_powder" description = "Makes a large cloud of smoke that can carry reagents." reagent_state = LIQUID color = "#808080" /datum/chemical_reaction/smoke_powder name = "smoke_powder" id = "smoke_powder" result = "smoke_powder" required_reagents = list("stabilizing_agent" = 1, "potassium" = 1, "sugar" = 1, "phosphorus" = 1) result_amount = 3 mix_message = "The mixture sets into a greyish powder!" /datum/chemical_reaction/smoke name = "smoke" id = "smoke" result = null required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1) result_amount = 1 mix_message = "The mixture quickly turns into a pall of smoke!" var/forbidden_reagents = list("sugar", "phosphorus", "potassium") //Do not transfer this stuff through smoke. /datum/chemical_reaction/smoke/on_reaction(var/datum/reagents/holder, var/created_volume) for(var/f_reagent in forbidden_reagents) if(holder.has_reagent(f_reagent)) holder.remove_reagent(f_reagent, holder.get_reagent_amount(f_reagent)) var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/chem_smoke_spread/S = new /datum/effect/effect/system/chem_smoke_spread S.attach(location) playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) spawn(0) if(S) S.set_up(holder, 10, 0, location) if(created_volume < 5) S.start(1) if(created_volume >=5 && created_volume < 10) S.start(2) if(created_volume >= 10 && created_volume < 15) S.start(3) if(created_volume >=15) S.start(4) if(holder && holder.my_atom) holder.clear_reagents() return /datum/chemical_reaction/smoke/smoke_powder name = "smoke_powder_smoke" id = "smoke_powder_smoke" required_reagents = list("smoke_powder" = 1) min_temp = 374 secondary = 1 result_amount = 1 forbidden_reagents = list() mix_sound = null /datum/reagent/sonic_powder name = "Sonic Powder" id = "sonic_powder" description = "Makes a deafening noise." reagent_state = LIQUID color = "#0000FF"


/datum/chemical_reaction/sonic_powder name = "sonic_powder" id = "sonic_powder" result = "sonic_powder" required_reagents = list("oxygen" = 1, "cola" = 1, "phosphorus" = 1) result_amount = 3 /datum/chemical_reaction/sonic_powder_deafen name = "sonic_powder_deafen" id = "sonic_powder_deafen" result = null required_reagents = list("sonic_powder" = 1) min_temp = 374 /datum/chemical_reaction/sonic_powder_deafen/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/M in hearers(5, location)) var/ear_safety = 0 var/distance = max(1,get_dist(src,T)) if(iscarbon(M)) var/mob/living/carbon/C = M if(ishuman(C)) var/mob/living/carbon/human/H = C if((H.r_ear && (H.r_ear.flags & EARBANGPROTECT)) || (H.l_ear && (H.l_ear.flags & EARBANGPROTECT)) || (H.head && (H.head.flags & HEADBANGPROTECT))) ear_safety++ M << "BANG" if(!ear_safety) M.Stun(max(10/distance, 3)) M.Weaken(max(10/distance, 3)) M.ear_damage += rand(0, 5) M.ear_deaf = max(M.ear_deaf,15) if (M.ear_damage >= 15) M << "Your ears start to ring badly!" if(prob(M.ear_damage - 10 + 5)) M << "You can't hear anything!" M.disabilities |= DEAF else if (M.ear_damage >= 5) M << "Your ears start to ring!" /datum/chemical_reaction/sonic_powder/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/M in hearers(5, location)) var/ear_safety = 0 var/distance = max(1,get_dist(src,T)) if(iscarbon(M)) var/mob/living/carbon/C = M if(ishuman(C)) var/mob/living/carbon/human/H = C if((H.r_ear && (H.r_ear.flags & EARBANGPROTECT)) || (H.l_ear && (H.l_ear.flags & EARBANGPROTECT)) || (H.head && (H.head.flags & HEADBANGPROTECT))) ear_safety++ C << "BANG" if(!ear_safety) M.Stun(max(10/distance, 3)) M.Weaken(max(10/distance, 3)) M.ear_damage += rand(0, 5) M.ear_deaf = max(M.ear_deaf,15) if (M.ear_damage >= 15) M << "Your ears start to ring badly!" if(prob(M.ear_damage - 10 + 5)) M << "You can't hear anything!" M.disabilities |= DEAF else if (M.ear_damage >= 5) M << "Your ears start to ring!" holder.remove_reagent("sonic_powder", created_volume)


/datum/reagent/phlogiston name = "Phlogiston" id = "phlogiston" description = "Catches you on fire and makes you ignite." reagent_state = LIQUID color = "#FF9999" process_flags = ORGANIC | SYNTHETIC /datum/chemical_reaction/phlogiston name = "phlogiston" id = "phlogiston" result = "phlogiston" required_reagents = list("phosphorus" = 1, "sacid" = 1, "plasma" = 1) result_amount = 3 /datum/chemical_reaction/phlogiston/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return var/turf/simulated/T = get_turf(holder.my_atom) for(var/turf/simulated/turf in range(created_volume/10,T)) PoolOrNew(/obj/effect/hotspot, turf) return /datum/reagent/phlogiston/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjust_fire_stacks(1) M.IgniteMob() M.adjustFireLoss(0.2*M.fire_stacks) ..() return /datum/reagent/napalm name = "Napalm" id = "napalm" description = "Very flammable." reagent_state = LIQUID color = "#FF9999" process_flags = ORGANIC | SYNTHETIC /datum/reagent/napalm/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjust_fire_stacks(1) ..() return /datum/reagent/napalm/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(method == TOUCH && isliving(M)) M.adjust_fire_stacks(7) return /datum/chemical_reaction/napalm name = "Napalm" id = "napalm" result = "napalm" required_reagents = list("sugar" = 1, "fuel" = 1, "ethanol" = 1 ) result_amount = 1 datum/reagent/cryostylane name = "Cryostylane" id = "cryostylane" description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Cryostylane slowly cools all other reagents in the mob down to 0K." color = "#B2B2FF" // rgb: 139, 166, 233 process_flags = ORGANIC | SYNTHETIC


/datum/chemical_reaction/cryostylane name = "cryostylane" id = "cryostylane" result = "cryostylane" required_reagents = list("water" = 1, "plasma" = 1, "nitrogen" = 1) result_amount = 3 datum/reagent/cryostylane/on_mob_life(var/mob/living/M as mob) //TODO: code freezing into an ice cube if(M.reagents.has_reagent("oxygen")) M.reagents.remove_reagent("oxygen", 1) M.bodytemperature -= 30 ..() return datum/reagent/cryostylane/on_tick() if(holder.has_reagent("oxygen")) holder.remove_reagent("oxygen", 1) holder.chem_temp -= 10 holder.handle_reactions() ..() return datum/reagent/cryostylane/reaction_turf(var/turf/simulated/T, var/volume) if(volume >= 5) for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(15,30))


datum/reagent/pyrosium name = "Pyrosium" id = "pyrosium" description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Pyrosium slowly cools all other reagents in the mob down to 0K." color = "#B20000" // rgb: 139, 166, 233 process_flags = ORGANIC | SYNTHETIC /datum/chemical_reaction/pyrosium name = "pyrosium" id = "pyrosium" result = "pyrosium" required_reagents = list("plasma" = 1, "radium" = 1, "phosphorus" = 1) result_amount = 3 datum/reagent/pyrosium/on_mob_life(var/mob/living/M as mob) if(M.reagents.has_reagent("oxygen")) M.reagents.remove_reagent("oxygen", 1) M.bodytemperature += 30 ..() return datum/reagent/pyrosium/on_tick() if(holder.has_reagent("oxygen")) holder.remove_reagent("oxygen", 1) holder.chem_temp += 10 holder.handle_reactions() ..() return


/datum/chemical_reaction/azide name = "azide" id = "azide" result = null required_reagents = list("chlorine" = 1, "oxygen" = 1, "nitrogen" = 1, "ammonia" = 1, "sodium" = 1, "silver" = 1) result_amount = 1 mix_message = "The substance violently detonates!" /datum/chemical_reaction/azide/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) explosion(location,0,1,3) return


datum/reagent/firefighting_foam name = "Firefighting foam" id = "firefighting_foam" description = "Carbon Tetrachloride is a foam used for fire suppression." reagent_state = LIQUID color = "#A0A090" var/cooling_temperature = 3 // more effective than water /datum/chemical_reaction/firefighting_foam name = "firefighting_foam" id = "firefighting_foam" result = "firefighting_foam" required_reagents = list("carbon" = 1, "chlorine" = 1, "sulfur" = 1) result_amount = 3 mix_message = "The mixture bubbles gently." datum/reagent/firefighting_foam/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return // Put out fire if(method == TOUCH) M.adjust_fire_stacks(-(volume / 5)) // more effective than water if(M.fire_stacks <= 0) M.ExtinguishMob() return datum/reagent/firefighting_foam/reaction_turf(var/turf/simulated/T, var/volume) if (!istype(T)) return var/CT = cooling_temperature src = null if(!istype(T, /turf/space)) new /obj/effect/decal/cleanable/flour/foam(T) //foam mess; clears up quickly. var/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot && !istype(T, /turf/space)) var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) lowertemp.temperature = max( min(lowertemp.temperature-(CT*1000),lowertemp.temperature / CT) ,0) lowertemp.react() T.assume_air(lowertemp) qdel(hotspot) return datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume) src = null var/turf/T = get_turf(O) var/hotspot = (locate(/obj/effect/hotspot) in T) if(hotspot && !istype(T, /turf/space)) var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() ) lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) lowertemp.react() T.assume_air(lowertemp) qdel(hotspot) return /datum/chemical_reaction/clf3_firefighting name = "clf3_firefighting" id = "clf3_firefighting" result = null required_reagents = list("firefighting_foam" = 1, "clf3" = 1) result_amount = 1 mix_message = "The substance violently detonates!" /datum/chemical_reaction/clf3_firefighting/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) explosion(location,0,0,3) return

ToxinsEdit

datum/reagent/polonium name = "Polonium" id = "polonium" description = "Cause significant Radiation damage over time." reagent_state = LIQUID color = "#CF3600" metabolization_rate = 0.1 penetrates_skin = 1

datum/reagent/polonium/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.radiation += 8 ..() return


datum/reagent/histamine name = "Histamine" id = "histamine" description = "Immune-system neurotransmitter. If detected in blood, the subject is likely undergoing an allergic reaction." reagent_state = LIQUID color = "#E7C4C4" metabolization_rate = 0.2 overdose_threshold = 30

datum/reagent/histamine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume) //dumping histamine on someone is VERY mean. if(iscarbon(M)) if(method == TOUCH) M.reagents.add_reagent("histamine",10)

datum/reagent/histamine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom switch(pick(1, 2, 3, 4)) if(1) M << "You can barely see!" M.eye_blurry = 3 if(2) M.emote("cough") if(3) M.emote("sneeze") if(4) if(prob(75)) M << "You scratch at an itch." M.adjustBruteLoss(2*REM) ..() return

datum/reagent/histamine/overdose_process(var/mob/living/M as mob) M.adjustOxyLoss(pick(1,3)*REM) M.adjustBruteLoss(pick(1,3)*REM) M.adjustToxLoss(pick(1,3)*REM) ..() return

datum/reagent/formaldehyde name = "Formaldehyde" id = "formaldehyde" description = "Formaldehyde is a common industrial chemical and is used to preserve corpses and medical samples. It is highly toxic and irritating." reagent_state = LIQUID color = "#DED6D0" penetrates_skin = 1

datum/reagent/formaldehyde/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(1*REM) if(prob(10)) M.reagents.add_reagent("histamine",rand(5,15)) ..() return

/datum/chemical_reaction/formaldehyde name = "formaldehyde" id = "formaldehyde" result = "formaldehyde" required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1) result_amount = 3 min_temp = 420 mix_message = "Ugh, it smells like the morgue in here."

datum/reagent/venom name = "Venom" id = "venom" description = "Will deal scaling amounts of Toxin and Brute damage over time. 25% chance to decay into 5-10 histamine." reagent_state = LIQUID color = "#CF3600" metabolization_rate = 0.2 overdose_threshold = 40

datum/reagent/venom/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss((0.1*volume)*REM) M.adjustBruteLoss((0.1*volume)*REM) if(prob(25)) M.reagents.add_reagent("histamine",rand(5,10)) ..() return

datum/reagent/venom/overdose_process(var/mob/living/M as mob) if(volume >= 40) if(prob(4)) M.gib() ..() return

datum/reagent/neurotoxin2 name = "Neurotoxin" id = "neurotoxin2" description = "A dangerous toxin that attacks the nervous system." reagent_state = LIQUID color = "#60A584" metabolization_rate = 1

datum/reagent/neurotoxin2/on_mob_life(var/mob/living/M as mob) if(current_cycle <= 4) M.reagents.add_reagent("neurotoxin2", 1.0) if(current_cycle >= 5) if(prob(5)) M.emote("drool") if(M.brainloss < 60) M.adjustBrainLoss(1*REM) M.adjustToxLoss(1*REM) if(current_cycle >= 9) M.drowsyness = max(M.drowsyness, 10) if(current_cycle >= 13) M.Paralyse(8) switch(current_cycle) if(5 to 45) M.confused = max(M.confused, 15) ..() return

/datum/chemical_reaction/neurotoxin2 name = "neurotoxin2" id = "neurotoxin2" result = "neurotoxin2" required_reagents = list("space_drugs" = 1) result_amount = 1 min_temp = 674 mix_sound = null no_message = 1

datum/reagent/cyanide name = "Cyanide" id = "cyanide" description = "A highly toxic chemical with some uses as a building block for other things." reagent_state = LIQUID color = "#CF3600" metabolization_rate = 0.1 penetrates_skin = 1

datum/reagent/cyanide/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(5)) M.emote("drool") M.adjustToxLoss(1.5*REM) if(prob(10)) M << "You cannot breathe!" M.losebreath += 1 if(prob(8)) M << "You feel horrendously weak!" M.Stun(2) M.adjustToxLoss(2*REM) ..() return

/datum/chemical_reaction/cyanide name = "Cyanide" id = "cyanide" result = "cyanide" required_reagents = list("oil" = 1, "ammonia" = 1, "oxygen" = 1) result_amount = 3 min_temp = 380 mix_message = "The mixture gives off a faint scent of almonds."


datum/reagent/itching_powder name = "Itching Powder" id = "itching_powder" description = "An abrasive powder beloved by cruel pranksters." reagent_state = LIQUID color = "#B0B0B0" metabolization_rate = 0.3 penetrates_skin = 1

datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(rand(5,50))) M << "You scratch at your head." M.adjustBruteLoss(0.2*REM) if(prob(rand(5,50))) M << "You scratch at your leg." M.adjustBruteLoss(0.2*REM) if(prob(rand(5,50))) M << "You scratch at your arm." M.adjustBruteLoss(0.2*REM) if(prob(6)) M.reagents.add_reagent("histamine",rand(1,3)) ..() return

/datum/chemical_reaction/itching_powder name = "Itching Powder" id = "itching_powder" result = "itching_powder" required_reagents = list("fuel" = 1, "ammonia" = 1, "fungus" = 1) result_amount = 3 mix_message = "The mixture congeals and dries up, leaving behind an abrasive powder." mix_sound = 'sound/effects/blobattack.ogg'

datum/reagent/facid/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(1*REM) M.adjustFireLoss(1) ..() return

datum/reagent/facid name = "Fluorosulfuric Acid" id = "facid" description = "Fluorosulfuric acid is a an extremely corrosive super-acid." reagent_state = LIQUID color = "#4141D2" process_flags = ORGANIC | SYNTHETIC

datum/reagent/facid/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return //wooo more runtime fixin if(method == TOUCH || method == INGEST) if(ishuman(M)) var/mob/living/carbon/human/H = M

if(volume < 5) M << "The blueish acidic substance stings you, but isn't concentrated enough to harm you!"

if(volume >=5 && volume <=10) if(!H.unacidable) M.take_organ_damage(max(volume-5,2)*4,0) M.emote("scream")


if(volume > 10)

if(method == TOUCH) if(H.wear_mask) if(!H.wear_mask.unacidable) qdel(H.wear_mask) H.update_inv_wear_mask() H << "\red Your mask melts away but protects you from the acid!" else H << "\red Your mask protects you from the acid!" return

if(H.head) if(!H.head.unacidable) qdel(H.head) H.update_inv_head() H << "\red Your helmet melts away but protects you from the acid" else H << "\red Your helmet protects you from the acid!" return

if(!H.unacidable) var/obj/item/organ/external/affecting = H.get_organ("head") affecting.take_damage(75, 0) H.UpdateDamageIcon() H.emote("scream") H.status_flags |= DISFIGURED

datum/reagent/facid/reaction_obj(var/obj/O, var/volume) if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom))) if(!O.unacidable) var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc) I.desc = "Looks like this was \an [O] some time ago." for(var/mob/M in viewers(5, O)) M << "\red \the [O] melts." qdel(O)

/datum/chemical_reaction/facid name = "Fluorosulfuric Acid" id = "facid" result = "facid" required_reagents = list("sacid" = 1, "fluorine" = 1, "hydrogen" = 1, "potassium" = 1) result_amount = 4 min_temp = 380 mix_message = "The mixture deepens to a dark blue, and slowly begins to corrode its container."

datum/reagent/initropidril name = "Initropidril" id = "initropidril" description = "A highly potent cardiac poison - can kill within minutes." reagent_state = LIQUID color = "#7F10C0" metabolization_rate = 0.4 datum/reagent/initropidril/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(33)) M.adjustToxLoss(rand(5,25)) if(prob(rand(5,10))) var/picked_option = rand(1,3) switch(picked_option) if(1) M << "You feel horrendously weak!" M.Stun(2) M.losebreath += 1 if(2) M << "You cannot breathe!" M.losebreath += 5 M.adjustOxyLoss(10) if(3) var/mob/living/carbon/human/H = M if(!H.heart_attack) H.heart_attack = 1 // rip in pepperoni ..() return


datum/reagent/concentrated_initro name = "Concentrated Initropidril" id = "concentrated_initro" description = "A guaranteed heart-stopper!" reagent_state = LIQUID color = "#AB1CCF" metabolization_rate = 0.4 datum/reagent/concentrated_initro/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(volume >=5) var/mob/living/carbon/human/H = M if(!H.heart_attack) H.heart_attack = 1 // rip in pepperoni


datum/reagent/pancuronium name = "Pancuronium" id = "pancuronium" description = "Pancuronium bromide is a powerful skeletal muscle relaxant." reagent_state = LIQUID color = "#1E4664" metabolization_rate = 0.2 datum/reagent/pancuronium/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(current_cycle >= 10) M.Weaken(3) if(prob(7)) M.losebreath += rand(3,5) ..() return


datum/reagent/sodium_thiopental name = "Sodium Thiopental" id = "sodium_thiopental" description = "An rapidly-acting barbituate tranquilizer." reagent_state = LIQUID color = "#5F8BE1" metabolization_rate = 0.7 datum/reagent/sodium_thiopental/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(current_cycle == 1) M.emote("drool") if(current_cycle >= 2) M.drowsyness = max(M.drowsyness, 20) if(current_cycle >= 5) M.Paralyse(4) ..() return


datum/reagent/ketamine name = "Ketamine" id = "ketamine" description = "A potent veterinary tranquilizer." reagent_state = LIQUID color = "#646EA0" metabolization_rate = 0.8 penetrates_skin = 1 datum/reagent/ketamine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(current_cycle <= 10) if(prob(20)) M.emote("yawn") if(current_cycle == 6) M.eye_blurry = max(M.eye_blurry, 5) if(current_cycle >= 10) M.Paralyse(10) ..() return


datum/reagent/sulfonal name = "Sulfonal" id = "sulfonal" description = "Deals some toxin damage, and puts you to sleep after 66 seconds." reagent_state = LIQUID color = "#6BA688" metabolization_rate = 0.1 /datum/chemical_reaction/sulfonal name = "sulfonal" id = "sulfonal" result = "sulfonal" required_reagents = list("acetone" = 1, "diethylamine" = 1, "sulfur" = 1) result_amount = 3 mix_message = "The mixture gives off quite a stench." datum/reagent/sulfonal/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(1) if(current_cycle >= 11) M.drowsyness = max(M.drowsyness, 20) switch(current_cycle) if(0 to 10) if(prob(5)) M.emote("yawn") if(22) M.emote("faint") if(23 to INFINITY) if(prob(20)) M.emote("faint") ..() return


datum/reagent/amanitin name = "Amanitin" id = "amanitin" description = "A toxin produced by certain mushrooms. Very deadly." reagent_state = LIQUID color = "#D9D9D9" datum/reagent/amanitin/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom ..() return datum/reagent/amanitin/reagent_deleted(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(current_cycle*rand(2,4)) ..() return


datum/reagent/lipolicide name = "Lipolicide" id = "lipolicide" description = "A compound found in many seedy dollar stores in the form of a weight-loss tonic." reagent_state = SOLID color = "#D1DED1" /

datum/chemical_reaction/lipolicide name = "lipolicide" id = "lipolicide" result = "lipolicide" required_reagents = list("mercury" = 1, "diethylamine" = 1, "ephedrine" = 1) result_amount = 3 datum/reagent/lipolicide/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(!holder.has_reagent("nutriment")) M.adjustToxLoss(1) M.nutrition -= 10 * REAGENTS_METABOLISM M.overeatduration = 0 if(M.nutrition < 0)//Prevent from going into negatives. M.nutrition = 0 ..() return


datum/reagent/coniine name = "Coniine" id = "coniine" description = "A neurotoxin that rapidly causes respiratory failure." reagent_state = LIQUID color = "#C2D8CD" metabolization_rate = 0.05 datum/reagent/coniine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.losebreath += 5 M.adjustToxLoss(2) ..() return


datum/reagent/curare name = "Curare" id = "curare" description = "A highly dangerous paralytic poison." reagent_state = LIQUID color = "#191919" metabolization_rate = 0.1 penetrates_skin = 1 datum/reagent/curare/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(5)) M.emote(pick("gasp","drool", "pale")) if(current_cycle >= 11) M.Weaken(15) M.adjustToxLoss(1) M.adjustOxyLoss(1) ..() return


datum/reagent/tabun name = "Tabun" id = "tabun" description = "An extremely deadly neurotoxin." reagent_state = LIQUID color = "#C7C7C7" metabolization_rate = 0.1 penetrates_skin = 1 /datum/chemical_reaction/tabun name = "tabun" id = "tabun" result = "tabun" required_reagents = list("phenol" = 1, "diethylamine" = 1, "phosphorus" = 1, "oxygen" = 1, "chlorine" = 1, "sodiumchloride" = 1, "ethanol" = 1, "cyanide" = 1) result_amount = 8 mix_message = "The mixture yields a colorless, odorless liquid." min_temp = 374 datum/reagent/tabun/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustFireLoss(1) if(prob(20)) M.emote(pick("twitch","drool", "quiver")) if(prob(10)) M.emote("scream") M.drop_l_hand() M.drop_r_hand() if(prob(5)) M.confused = max(M.confused, 3) if(prob(15)) M.fakevomit() if(prob(2)) M.visible_message("[M] starts having a seizure!", "You have a seizure!") M.Paralyse(5) M.jitteriness = 1000 if(current_cycle >= 5) M.jitteriness += 10 if(current_cycle >= 20) if(prob(5)) M.emote("collapse") switch(current_cycle) if(0 to 60) M.adjustBrainLoss(1) M.adjustToxLoss(1) if(61 to INFINITY) M.adjustBrainLoss(2) M.adjustToxLoss(2) M.Paralyse(5) M.losebreath += 5 ..() return


datum/reagent/atrazine name = "Atrazine" id = "atrazine" description = "A herbicidal compound used for destroying unwanted plants." reagent_state = LIQUID color = "#17002D" datum/reagent/atrazine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(2) ..() return // Clear off wallrot fungi datum/reagent/atrazine/reaction_turf(var/turf/T, var/volume) if(istype(T, /turf/simulated/wall)) var/turf/simulated/wall/W = T if(W.rotting) W.rotting = 0 for(var/obj/effect/E in W) if(E.name == "Wallrot") qdel(E) for(var/mob/O in viewers(W, null)) O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1) datum/reagent/atrazine/reaction_obj(var/obj/O, var/volume) if(istype(O,/obj/structure/alien/weeds/)) var/obj/structure/alien/weeds/alien_weeds = O alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast alien_weeds.healthcheck() else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it qdel(O) else if(istype(O,/obj/effect/plant)) if(prob(50)) qdel(O) //Kills kudzu too. // Damage that is done to growing plants is separately at code/game/machinery/hydroponics at obj/item/hydroponics datum/reagent/atrazine/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) src = null if(iscarbon(M)) var/mob/living/carbon/C = M if(!C.wear_mask) // If not wearing a mask C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.dna) if(H.species.flags & IS_PLANT) //plantmen take a LOT of damage H.adjustToxLoss(50) ..() return else if(istype(M,/mob/living/carbon/primitive/diona)) //plantmen monkeys (diona) take EVEN MORE damage var/mob/living/carbon/primitive/diona/D = M D.adjustToxLoss(100) ..() return /datum/chemical_reaction/atrazine name = "atrazine" id = "atrazine" result = "atrazine" required_reagents = list("chlorine" = 1, "hydrogen" = 1, "nitrogen" = 1) result_amount = 3 mix_message = "The mixture gives off a harsh odor"


datum/reagent/capulettium name = "Capulettium" id = "capulettium" description = "A rare drug that causes the user to appear dead for some time." reagent_state = LIQUID color = "#60A584" /datum/chemical_reaction/capulettium name = "capulettium" id = "capulettium" result = "capulettium" required_reagents = list("neurotoxin2" = 1, "chlorine" = 1, "hydrogen" = 1) result_amount = 1 mix_message = "The smell of death wafts up from the solution." datum/reagent/capulettium/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.eye_blurry = max(M.eye_blurry, 2) if(current_cycle == 12) M.emote("deathgasp") M.Paralyse(10) ..() return


datum/reagent/capulettium_plus name = "Capulettium Plus" id = "capulettium_plus" description = "A rare and expensive drug that causes the user to appear dead for some time while they retain consciousness and vision." reagent_state = LIQUID color = "#60A584" /datum/chemical_reaction/capulettium_plus name = "capulettium_plus" id = "capulettium_plus" result = "capulettium_plus" required_reagents = list("capulettium" = 1, "ephedrine" = 1, "methamphetamine" = 1) result_amount = 3 mix_message = "The solution begins to slosh about violently by itself." datum/reagent/capulettium_plus/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.silent += REM + 1 ..() return


datum/reagent/toxic_slurry name = "Toxic Slurry" id = "toxic_slurry" description = "A filthy, carcinogenic sludge produced by the Slurrypod plant." reagent_state = LIQUID color = "#00C81E" datum/reagent/toxic_slurry/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(10)) M.adjustToxLoss(rand(2,4)) if(prob(7)) switch(pick(1,2)) if(1) M.fakevomit(1) if(2) M.Stun(rand(4,10)) M << "A horrible migraine overpowers you." ..() return


datum/reagent/glowing_slurry name = "Glowing Slurry" id = "glowing_slurry" description = "This is probably not good for you." reagent_state = LIQUID color = "#00FD00" datum/reagent/glowing_slurry/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) //same as mutagen if(!..()) return if(!M.dna) return //No robots, AIs, aliens, Ians or other mobs should be affected by this. src = null if((method==TOUCH && prob(33)) || method==INGEST) if(prob(98)) randmutb(M) else randmutg(M) domutcheck(M, null) M.UpdateAppearance() return datum/reagent/glowing_slurry/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.apply_effect(2*REM,IRRADIATE,0) if(prob(15)) randmutb(M) if(prob(5)) randmutg(M) domutcheck(M, null) M.UpdateAppearance() ..() return


datum/reagent/ants name = "Ants" id = "ants" description = "A sample of a lost breed of Space Ants (formicidae bastardium tyrannus), they are well-known for ravaging the living shit out of pretty much anything." reagent_state = SOLID color = "#993333" process_flags = ORGANIC | SYNTHETIC datum/reagent/ants/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume) //NOT THE ANTS if(iscarbon(M)) if(method == TOUCH || method==INGEST) M.adjustBruteLoss(4) M.emote("scream") M << "OH SHIT ANTS!!!!" datum/reagent/ants/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustBruteLoss(2) ..() return

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.