User:DragonTrance

From /tg/station 13 Wiki
Jump to navigation Jump to search

A wannabe Wiki Maintainer for TGMC, also a wannabe xeno main who dies as a queen 2 minutes after shutters open.

I don't keep myself informed on any ideas people get within code or the wiki, so I apologize in advance if I do something that you really wanted to accomplish.

fear him

Discord if you wanna talk: Cyanosis#3864

Current Wiki Goals:

  1. Spruce up the TGMC:Guide_to_chemistry to include relevant reactions and reagents
  2. Create TGMC:Guide_to_Food and TGMC:Guide_to_Drinks pages
  3. TGMC:Guide_to_Research
  4. Create something that discusses minimap icons and what they mean?
  5. Remake TGMC:Hivemind because it's kinda lackin
  6. Make templates for xeno abilities. It's a bit annoying having to edit certain abilities that other castes have that are mechanically identical

The Boys

TGMC
Roles

TGMC PFC Jim.png
TerraGov Marines

Ranks

Command Captain, Field Commander, Staff Officer, Pilot Officer, Transport Officer, Mech Pilot
Vehicle Crew Assault Crewman, Transport Crewman
Engineering and Supply Chief Ship Engineer, Requisitions Officer, Ship Technician
Medical Chief Medical Officer, Medical Doctor, Researcher
Marines Squad Leader, Squad Smartgunner, Squad Engineer, Squad Corpsman, Squad Marine
Civilians Corporate Liaison
Silicon Combat robots, Synthetic, AI
Xenomorphs

Playtime

Tier 0 Larva, Minions
Tier 1 Drone, Runner, Defender, Sentinel
Tier 2 Hivelord, Carrier, Hunter, Wraith, Bull, Warrior, Puppeteer, Spitter, Pyrogen
Tier 3 Gorger, Defiler, Widow, Ravager, Warlock, Behemoth, Crusher, Praetorian, Boiler
Tier 4 Shrike, Queen, King, Hivemind
Others Zombie, Emergency Response Teams, Sons of Mars, Survivor


Reaction Code

Food

Tofu

/datum/chemical_reaction/tofu
	name = "Tofu"
	results = null
	required_reagents = list(/datum/reagent/consumable/drink/milk/soymilk = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

/datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume)
	var/location = get_turf(holder.my_atom)
	for(var/i = 1, i <= created_volume, i++)
		new /obj/item/reagent_containers/food/snacks/tofu(location)

Chocolate Bar

/datum/chemical_reaction/chocolate_bar
	name = "Chocolate Bar"
	results = null
	required_reagents = list(/datum/reagent/consumable/drink/milk/soymilk = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/sugar = 2)

/datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume)
	var/location = get_turf(holder.my_atom)
	for(var/i = 1, i <= created_volume, i++)
		new /obj/item/reagent_containers/food/snacks/chocolatebar(location)

Chocolate Bar

/datum/chemical_reaction/chocolate_bar2
	name = "Chocolate Bar"
	results = null
	required_reagents = list(/datum/reagent/consumable/drink/milk = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/sugar = 2)

/datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume)
	var/location = get_turf(holder.my_atom)
	for(var/i = 1, i <= created_volume, i++)
		new /obj/item/reagent_containers/food/snacks/chocolatebar(location)

Soy Sauce

/datum/chemical_reaction/soysauce
	name = "Soy Sauce"
	results = list(/datum/reagent/consumable/soysauce = 5)
	required_reagents = list(/datum/reagent/consumable/drink/milk/soymilk = 4, /datum/reagent/toxin/acid = 1)

Condensed Capsaicin

/datum/chemical_reaction/condensedcapsaicin
	name = "Condensed Capsaicin"
	results = list(/datum/reagent/consumable/capsaicin/condensed = 1)
	required_reagents = list(/datum/reagent/consumable/capsaicin = 2)
	required_catalysts = list(/datum/reagent/toxin/phoron = 5)

Sodium Chloride

/datum/chemical_reaction/sodiumchloride
	name = "Sodium Chloride"
	results = list(/datum/reagent/consumable/sodiumchloride = 2)
	required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/chlorine = 1)

Cheesewheel

/datum/chemical_reaction/cheesewheel
	name = "Cheesewheel"
	results = null
	required_reagents = list(/datum/reagent/consumable/drink/milk = 40)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

/datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume)
	var/location = get_turf(holder.my_atom)
	new /obj/item/reagent_containers/food/snacks/sliceable/cheesewheel(location)

Syntiflesh

/datum/chemical_reaction/syntiflesh
	name = "Syntiflesh"
	results = null
	required_reagents = list(/datum/reagent/blood = 5, /datum/reagent/medicine/clonexadone = 1)

/datum/chemical_reaction/syntiflesh/on_reaction(datum/reagents/holder, created_volume)
	var/location = get_turf(holder.my_atom)
	new /obj/item/reagent_containers/food/snacks/meat/syntiflesh(location)

Hot Ramen

/datum/chemical_reaction/hot_ramen
	name = "Hot Ramen"
	results = list(/datum/reagent/consumable/hot_ramen = 3)
	required_reagents = list(/datum/reagent/water = 1, /datum/reagent/consumable/dry_ramen = 3)

Hell Ramen

/datum/chemical_reaction/hell_ramen
	name = "Hell Ramen"
	results = list(/datum/reagent/consumable/hell_ramen = 6)
	required_reagents = list(/datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/hot_ramen = 6)

Drinks

Hot Coco

/datum/chemical_reaction/hot_coco
	name = "Hot Coco"
	results = list(/datum/reagent/consumable/drink/hot_coco = 5)
	required_reagents = list(/datum/reagent/water = 5, /datum/reagent/consumable/coco = 1)

Goldschlager

/datum/chemical_reaction/goldschlager
	name = "Goldschlager"
	results = list(/datum/reagent/consumable/ethanol/goldschlager = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 10, /datum/reagent/gold = 1)

Patron

/datum/chemical_reaction/patron
	name = "Patron"
	results = list(/datum/reagent/consumable/ethanol/patron = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 10, /datum/reagent/silver = 1)

Bilk

/datum/chemical_reaction/bilk
	name = "Bilk"
	results = list(/datum/reagent/consumable/ethanol/bilk = 2)
	required_reagents = list(/datum/reagent/consumable/drink/milk = 1, /datum/reagent/consumable/ethanol/beer = 1)

Iced Tea

/datum/chemical_reaction/icetea
	name = "Iced Tea"
	results = list(/datum/reagent/consumable/drink/tea/icetea = 4)
	required_reagents = list(/datum/reagent/consumable/drink/cold/ice = 1, /datum/reagent/consumable/drink/tea = 3)

Iced Coffee

/datum/chemical_reaction/icecoffee
	name = "Iced Coffee"
	results = list(/datum/reagent/consumable/drink/coffee/icecoffee = 4)
	required_reagents = list(/datum/reagent/consumable/drink/cold/ice = 1, /datum/reagent/consumable/drink/coffee = 3)

Nuka Cola

/datum/chemical_reaction/nuka_cola
	name = "Nuka Cola"
	results = list(/datum/reagent/consumable/drink/cold/nuka_cola = 6)
	required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/consumable/drink/cold/space_cola = 6)

Moonshine

/datum/chemical_reaction/moonshine
	name = "Moonshine"
	results = list(/datum/reagent/consumable/ethanol/moonshine = 15)
	required_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sugar = 5)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Grenadine Syrup

/datum/chemical_reaction/grenadine
	name = "Grenadine Syrup"
	results = list(/datum/reagent/consumable/drink/grenadine = 10)
	required_reagents = list(/datum/reagent/consumable/drink/berryjuice = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Wine

/datum/chemical_reaction/wine
	name = "Wine"
	results = list(/datum/reagent/consumable/ethanol/wine = 10)
	required_reagents = list(/datum/reagent/consumable/drink/grapejuice = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Poison Wine

/datum/chemical_reaction/pwine
	name = "Poison Wine"
	results = list(/datum/reagent/consumable/ethanol/pwine = 10)
	required_reagents = list(/datum/reagent/consumable/drink/poisonberryjuice = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Melon Liquor

/datum/chemical_reaction/melonliquor
	name = "Melon Liquor"
	results = list(/datum/reagent/consumable/ethanol/melonliquor = 10)
	required_reagents = list(/datum/reagent/consumable/drink/watermelonjuice = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Blue Curacao

/datum/chemical_reaction/bluecuracao
	name = "Blue Curacao"
	results = list(/datum/reagent/consumable/ethanol/bluecuracao = 10)
	required_reagents = list(/datum/reagent/consumable/drink/orangejuice = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Space Beer

/datum/chemical_reaction/spacebeer
	name = "Space Beer"
	results = list(/datum/reagent/consumable/ethanol/beer = 10)
	required_reagents = list(/datum/reagent/consumable/cornoil = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Vodka

/datum/chemical_reaction/vodka
	name = "Vodka"
	results = list(/datum/reagent/consumable/ethanol/vodka = 10)
	required_reagents = list(/datum/reagent/consumable/nutriment = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Sake

/datum/chemical_reaction/sake
	name = "Sake"
	results = list(/datum/reagent/consumable/ethanol/sake = 10)
	required_reagents = list(/datum/reagent/consumable/rice = 10)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Kahlua

/datum/chemical_reaction/kahlua
	name = "Kahlua"
	results = list(/datum/reagent/consumable/ethanol/kahlua = 10)
	required_reagents = list(/datum/reagent/consumable/drink/coffee = 5, /datum/reagent/consumable/sugar = 5)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Gin and Tonic

/datum/chemical_reaction/gin_tonic
	name = "Gin and Tonic"
	results = list(/datum/reagent/consumable/ethanol/gintonic = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/drink/cold/tonic = 1)

Cuba Libre

/datum/chemical_reaction/cuba_libre
	name = "Cuba Libre"
	results = list(/datum/reagent/consumable/ethanol/cuba_libre = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/drink/cold/space_cola = 1)

Classic Martini

/datum/chemical_reaction/martini
	name = "Classic Martini"
	results = list(/datum/reagent/consumable/ethanol/martini = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/ethanol/vermouth = 1)

Vodka Martini

/datum/chemical_reaction/vodkamartini
	name = "Vodka Martini"
	results = list(/datum/reagent/consumable/ethanol/vodkamartini = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/ethanol/vermouth = 1)

White Russian

/datum/chemical_reaction/white_russian
	name = "White Russian"
	results = list(/datum/reagent/consumable/ethanol/white_russian = 5)
	required_reagents = list(/datum/reagent/consumable/ethanol/black_russian = 3, /datum/reagent/consumable/drink/milk/cream = 2)

Whiskey Cola

/datum/chemical_reaction/whiskey_cola
	name = "Whiskey Cola"
	results = list(/datum/reagent/consumable/ethanol/whiskey_cola = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/drink/cold/space_cola = 1)

Screwdriver

/datum/chemical_reaction/screwdriver
	name = "Screwdriver"
	results = list(/datum/reagent/consumable/ethanol/screwdrivercocktail = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/drink/orangejuice = 1)

Bloody Mary

/datum/chemical_reaction/bloody_mary
	name = "Bloody Mary"
	results = list(/datum/reagent/consumable/ethanol/bloody_mary = 4)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/drink/tomatojuice = 2, /datum/reagent/consumable/drink/limejuice = 1)

Pan-Galactic Gargle Blaster

/datum/chemical_reaction/gargle_blaster
	name = "Pan-Galactic Gargle Blaster"
	results = list(/datum/reagent/consumable/drink/gargle_blaster = 5)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/gin = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/consumable/drink/limejuice = 1)

Brave Bull

/datum/chemical_reaction/brave_bull
	name = "Brave Bull"
	results = list(/datum/reagent/consumable/ethanol/brave_bull = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/ethanol/kahlua = 1)

Tequila Sunrise

/datum/chemical_reaction/tequila_sunrise
	name = "Tequila Sunrise"
	results = list(/datum/reagent/consumable/ethanol/tequila_sunrise = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/drink/orangejuice = 1)

Toxins Special

/datum/chemical_reaction/phoron_special
	name = "Toxins Special"
	results = list(/datum/reagent/consumable/ethanol/toxins_special = 5)
	required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vermouth = 1, /datum/reagent/toxin/phoron = 2)

Beepsky Smash

/datum/chemical_reaction/beepsky_smash
	name = "Beepksy Smash"
	results = list(/datum/reagent/consumable/ethanol/beepsky_smash = 4)
	required_reagents = list(/datum/reagent/consumable/drink/limejuice = 2, /datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/iron = 1)

The Doctor's Delight

/datum/chemical_reaction/doctor_delight
	name = "The Doctor's Delight"
	results = list(/datum/reagent/consumable/drink/doctor_delight = 5)
	required_reagents = list(/datum/reagent/consumable/drink/limejuice = 1, /datum/reagent/consumable/drink/tomatojuice = 1, /datum/reagent/consumable/drink/orangejuice = 1, /datum/reagent/consumable/drink/milk/cream = 1, /datum/reagent/medicine/tricordrazine = 1)

Irish Cream

/datum/chemical_reaction/irish_cream
	name = "Irish Cream"
	results = list(/datum/reagent/consumable/ethanol/irish_cream = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/drink/milk/cream = 1)

The Manly Dorf

/datum/chemical_reaction/manly_dorf
	name = "The Manly Dorf"
	results = list(/datum/reagent/consumable/ethanol/manly_dorf = 3)
	required_reagents = list (/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/ale = 2)

Hooch

/datum/chemical_reaction/hooch
	name = "Hooch"
	results = list(/datum/reagent/consumable/ethanol/hooch = 3)
	required_reagents = list (/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/ethanol = 2, /datum/reagent/fuel = 1)

Irish Coffee

/datum/chemical_reaction/irish_coffee
	name = "Irish Coffee"
	results = list(/datum/reagent/consumable/ethanol/irishcoffee = 2)
	required_reagents = list(/datum/reagent/consumable/ethanol/irish_cream = 1, /datum/reagent/consumable/drink/coffee = 1)

B-52

/datum/chemical_reaction/b52
	name = "B-52"
	results = list(/datum/reagent/consumable/ethanol/b52 = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/irish_cream = 1, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/cognac = 1)

Atomic Bomb

/datum/chemical_reaction/atomicbomb
	name = "Atomic Bomb"
	results = list(/datum/reagent/consumable/drink/atomicbomb = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/b52 = 10, /datum/reagent/uranium = 1)

Margarita

/datum/chemical_reaction/margarita
	name = "Margarita"
	results = list(/datum/reagent/consumable/ethanol/margarita = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/drink/limejuice = 1)

Long Island Iced Tea

/datum/chemical_reaction/longislandicedtea
	name = "Long Island Iced Tea"
	results = list(/datum/reagent/consumable/ethanol/longislandicedtea = 4)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/gin = 1, /datum/reagent/consumable/ethanol/tequila = 1, /datum/reagent/consumable/ethanol/cuba_libre = 1)

Three Mile Island Iced Tea

/datum/chemical_reaction/threemileisland
	name = "Three Mile Island Iced Tea"
	results = list(/datum/reagent/consumable/ethanol/threemileisland = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/longislandicedtea = 10, /datum/reagent/uranium = 1)

Whiskey Soda

/datum/chemical_reaction/whiskeysoda
	name = "Whiskey Soda"
	results = list(/datum/reagent/consumable/ethanol/whiskeysoda = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/drink/cold/sodawater = 1)

Black Russian

/datum/chemical_reaction/black_russian
	name = "Black Russian"
	results = list(/datum/reagent/consumable/ethanol/black_russian = 5)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 3, /datum/reagent/consumable/ethanol/kahlua = 2)

Manhattan

/datum/chemical_reaction/manhattan
	name = "Manhattan"
	results = list(/datum/reagent/consumable/ethanol/manhattan = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/ethanol/vermouth = 1)

Manhattan Project

/datum/chemical_reaction/manhattan_proj
	name = "Manhattan Project"
	results = list(/datum/reagent/consumable/ethanol/manhattan_proj = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/manhattan = 10, /datum/reagent/uranium = 1)

Vodka and Tonic

/datum/chemical_reaction/vodka_tonic
	name = "Vodka and Tonic"
	results = list(/datum/reagent/consumable/ethanol/vodkatonic = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/drink/cold/tonic = 1)

Gin Fizz

/datum/chemical_reaction/gin_fizz
	name = "Gin Fizz"
	results = list(/datum/reagent/consumable/ethanol/ginfizz = 4)
	required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/drink/cold/sodawater = 1, /datum/reagent/consumable/drink/limejuice = 1)

Bahama mama

/datum/chemical_reaction/bahama_mama
	name = "Bahama mama"
	results = list(/datum/reagent/consumable/ethanol/bahama_mama = 6)
	required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/drink/orangejuice = 2, /datum/reagent/consumable/drink/limejuice = 1, /datum/reagent/consumable/drink/cold/ice = 1)

Singulo

/datum/chemical_reaction/singulo
	name = "Singulo"
	results = list(/datum/reagent/consumable/ethanol/singulo = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 5, /datum/reagent/radium = 1, /datum/reagent/consumable/ethanol/wine = 5)

Allies Cocktail

/datum/chemical_reaction/alliescocktail
	name = "Allies Cocktail"
	results = list(/datum/reagent/consumable/ethanol/alliescocktail = 2)
	required_reagents = list(/datum/reagent/consumable/ethanol/martini = 1, /datum/reagent/consumable/ethanol/vodka = 1)

Demons Blood

/datum/chemical_reaction/demonsblood
	name = "Demons Blood"
	results = list(/datum/reagent/consumable/ethanol/demonsblood = 4)
	required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/drink/cold/spacemountainwind = 1, /datum/reagent/blood = 1, /datum/reagent/consumable/drink/cold/dr_gibb = 1)

Booger

/datum/chemical_reaction/booger
	name = "Booger"
	results = list(/datum/reagent/consumable/ethanol/booger = 4)
	required_reagents = list(/datum/reagent/consumable/drink/milk/cream = 1, /datum/reagent/consumable/drink/banana = 1, /datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/drink/watermelonjuice = 1)

Anti-freeze

/datum/chemical_reaction/antifreeze
	name = "Anti-freeze"
	results = list(/datum/reagent/consumable/ethanol/antifreeze = 4)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/drink/milk/cream = 1, /datum/reagent/consumable/drink/cold/ice = 1)

Barefoot

/datum/chemical_reaction/barefoot
	name = "Barefoot"
	results = list(/datum/reagent/consumable/ethanol/barefoot = 3)
	required_reagents = list(/datum/reagent/consumable/drink/berryjuice = 1, /datum/reagent/consumable/drink/milk/cream = 1, /datum/reagent/consumable/ethanol/vermouth = 1)

Grape Soda

/datum/chemical_reaction/grapesoda
	name = "Grape Soda"
	results = list(/datum/reagent/consumable/drink/grapesoda = 3)
	required_reagents = list(/datum/reagent/consumable/drink/grapejuice = 2, /datum/reagent/consumable/drink/cold/space_cola = 1)

Sbiten

/datum/chemical_reaction/sbiten
	name = "Sbiten"
	results = list(/datum/reagent/consumable/ethanol/sbiten = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 10, /datum/reagent/consumable/capsaicin = 1)

Red Mead

/datum/chemical_reaction/red_mead
	name = "Red Mead"
	results = list(/datum/reagent/consumable/ethanol/red_mead = 2)
	required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/ethanol/mead = 1)

Mead

/datum/chemical_reaction/mead
	name = "Mead"
	results = list(/datum/reagent/consumable/ethanol/mead = 2)
	required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/water = 1)
	required_catalysts = list(/datum/reagent/consumable/enzyme = 5)

Iced Beer

/datum/chemical_reaction/iced_beer
	name = "Iced Beer"
	results = list(/datum/reagent/consumable/ethanol/iced_beer = 10)
	required_reagents = list(/datum/reagent/consumable/ethanol/beer = 10, /datum/reagent/consumable/frostoil = 1)

Iced Beer

/datum/chemical_reaction/iced_beer2
	name = "Iced Beer"
	results = list(/datum/reagent/consumable/ethanol/iced_beer = 6)
	required_reagents = list(/datum/reagent/consumable/ethanol/beer = 5, /datum/reagent/consumable/drink/cold/ice = 1)

Grog

/datum/chemical_reaction/grog
	name = "Grog"
	results = list(/datum/reagent/consumable/ethanol/grog = 2)
	required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/water = 1)

Soy Latte

/datum/chemical_reaction/soy_latte
	name = "Soy Latte"
	results = list(/datum/reagent/consumable/drink/coffee/soy_latte = 2)
	required_reagents = list(/datum/reagent/consumable/drink/coffee = 1, /datum/reagent/consumable/drink/milk/soymilk = 1)

Cafe Latte

/datum/chemical_reaction/cafe_latte
	name = "Cafe Latte"
	results = list(/datum/reagent/consumable/drink/coffee/cafe_latte = 2)
	required_reagents = list(/datum/reagent/consumable/drink/coffee = 1, /datum/reagent/consumable/drink/milk = 1)

Acid Spit

/datum/chemical_reaction/acidspit
	name = "Acid Spit"
	results = list(/datum/reagent/consumable/ethanol/acid_spit = 6)
	required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/consumable/ethanol/wine = 5)

Amasec

/datum/chemical_reaction/amasec
	name = "Amasec"
	results = list(/datum/reagent/consumable/ethanol/amasec = 10)
	required_reagents = list(/datum/reagent/iron = 1, /datum/reagent/consumable/ethanol/wine = 5, /datum/reagent/consumable/ethanol/vodka = 5)

Changeling Sting

/datum/chemical_reaction/changelingsting
	name = "Changeling Sting"
	results = list(/datum/reagent/consumable/ethanol/changelingsting = 5)
	required_reagents = list(/datum/reagent/consumable/ethanol/screwdrivercocktail = 1, /datum/reagent/consumable/drink/limejuice = 1, /datum/reagent/consumable/drink/lemonjuice = 1)

Aloe

/datum/chemical_reaction/aloe
	name = "Aloe"
	results = list(/datum/reagent/consumable/ethanol/aloe = 2)
	required_reagents = list(/datum/reagent/consumable/drink/milk/cream = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/drink/watermelonjuice = 1)

Andalusia

/datum/chemical_reaction/andalusia
	name = "Andalusia"
	results = list(/datum/reagent/consumable/ethanol/andalusia = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/drink/lemonjuice = 1)

Neurotoxin

/datum/chemical_reaction/neurotoxin
	name = "Neurotoxin"
	results = list(/datum/reagent/consumable/drink/neurotoxin = 2)
	required_reagents = list(/datum/reagent/consumable/drink/gargle_blaster = 1, /datum/reagent/toxin/sleeptoxin = 1)

Snow White

/datum/chemical_reaction/snowwhite
	name = "Snow White"
	results = list(/datum/reagent/consumable/ethanol/snowwhite = 2)
	required_reagents = list(/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/drink/cold/lemon_lime = 1)

Irish Car Bomb

/datum/chemical_reaction/irishcarbomb
	name = "Irish Car Bomb"
	results = list(/datum/reagent/consumable/ethanol/irishcarbomb = 2)
	required_reagents = list(/datum/reagent/consumable/ethanol/ale = 1, /datum/reagent/consumable/ethanol/irish_cream = 1)

Syndicate Bomb

/datum/chemical_reaction/syndicatebomb
	name = "Syndicate Bomb"
	results = list(/datum/reagent/consumable/ethanol/syndicatebomb = 2)
	required_reagents = list(/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/whiskey_cola = 1)

Erika Surprise

/datum/chemical_reaction/erikasurprise
	name = "Erika Surprise"
	results = list(/datum/reagent/consumable/ethanol/erikasurprise = 5)
	required_reagents = list(/datum/reagent/consumable/ethanol/ale = 1, /datum/reagent/consumable/drink/limejuice = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/drink/banana = 1, /datum/reagent/consumable/drink/cold/ice = 1)

Devils Kiss

/datum/chemical_reaction/devilskiss
	name = "Devils Kiss"
	results = list(/datum/reagent/consumable/ethanol/devilskiss = 3)
	required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/rum = 1)

Hippies Delight

/datum/chemical_reaction/hippiesdelight
	name = "Hippies Delight"
	results = list(/datum/reagent/consumable/drink/hippies_delight = 2)
	required_reagents = list(/datum/reagent/consumable/psilocybin = 1, /datum/reagent/consumable/drink/gargle_blaster = 1)

Banana Honk

/datum/chemical_reaction/bananahonk
	name = "Banana Honk"
	results = list(/datum/reagent/consumable/ethanol/bananahonk = 3)
	required_reagents = list(/datum/reagent/consumable/drink/banana = 1, /datum/reagent/consumable/drink/milk/cream = 1, /datum/reagent/consumable/sugar = 1)

Silencer

/datum/chemical_reaction/silencer
	name = "Silencer"
	results = list(/datum/reagent/consumable/ethanol/silencer = 3)
	required_reagents = list(/datum/reagent/consumable/drink/nothing = 1, /datum/reagent/consumable/drink/milk/cream = 1, /datum/reagent/consumable/sugar = 1)

Driest Martini

/datum/chemical_reaction/driestmartini
	name = "Driest Martini"
	results = list(/datum/reagent/consumable/ethanol/driestmartini = 2)
	required_reagents = list(/datum/reagent/consumable/drink/nothing = 1, /datum/reagent/consumable/ethanol/gin = 1)

Lemonade

/datum/chemical_reaction/lemonade
	name = "Lemonade"
	results = list(/datum/reagent/consumable/drink/cold/lemonade = 3)
	required_reagents = list(/datum/reagent/consumable/drink/lemonjuice = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/water = 1)

Kira Special

/datum/chemical_reaction/kiraspecial
	name = "Kira Special"
	results = list(/datum/reagent/consumable/drink/cold/kiraspecial = 2)
	required_reagents = list(/datum/reagent/consumable/drink/orangejuice = 1, /datum/reagent/consumable/drink/limejuice = 1, /datum/reagent/consumable/drink/cold/sodawater = 1)

Brown Star

/datum/chemical_reaction/brownstar
	name = "Brown Star"
	results = list(/datum/reagent/consumable/drink/cold/brownstar = 2)
	required_reagents = list(/datum/reagent/consumable/drink/orangejuice = 2, /datum/reagent/consumable/drink/cold/space_cola = 1)

Milkshake

/datum/chemical_reaction/milkshake
	name = "Milkshake"
	results = list(/datum/reagent/consumable/drink/cold/milkshake = 5)
	required_reagents = list(/datum/reagent/consumable/drink/milk/cream = 1, /datum/reagent/consumable/drink/cold/ice = 2, /datum/reagent/consumable/drink/milk = 2)

Rewriter

/datum/chemical_reaction/rewriter
	name = "Rewriter"
	results = list(/datum/reagent/consumable/drink/cold/rewriter = 2)
	required_reagents = list(/datum/reagent/consumable/drink/cold/spacemountainwind = 1, /datum/reagent/consumable/drink/coffee = 1)

Sui Dream

/datum/chemical_reaction/suidream
	name = "Sui Dream"
	results = list(/datum/reagent/consumable/ethanol/suidream = 4)
	required_reagents = list(/datum/reagent/consumable/drink/cold/space_up = 2, /datum/reagent/consumable/ethanol/bluecuracao = 1, /datum/reagent/consumable/ethanol/melonliquor = 1)

Medical

Tricordrazine

/datum/chemical_reaction/tricordrazine
	name = "Tricordrazine"
	results = list(/datum/reagent/medicine/tricordrazine = 2)
	required_reagents = list(/datum/reagent/medicine/inaprovaline = 1, /datum/reagent/medicine/dylovene = 1)
	mob_react = FALSE

Alkysine

/datum/chemical_reaction/alkysine
	name = "Alkysine"
	results = list(/datum/reagent/medicine/alkysine = 2)
	required_reagents = list(/datum/reagent/chlorine = 1, /datum/reagent/nitrogen = 1, /datum/reagent/medicine/dylovene = 1)

Dexalin

/datum/chemical_reaction/dexalin
	name = "Dexalin"
	results = list(/datum/reagent/medicine/dexalin = 1)
	required_reagents = list(/datum/reagent/oxygen = 2, /datum/reagent/toxin/phoron = 0.1)
	required_catalysts = list(/datum/reagent/toxin/phoron = 5)

Dermaline

/datum/chemical_reaction/dermalime
	name = "Dermaline"
	results = list(/datum/reagent/medicine/dermaline = 3)
	required_reagents = list(/datum/reagent/oxygen = 1, /datum/reagent/phosphorus = 1, /datum/reagent/medicine/kelotane = 1, /datum/reagent/medicine/lemoline = 1)

Dexalin Plus

/datum/chemical_reaction/dexalinplus
	name = "Dexalin Plus"
	results = list(/datum/reagent/medicine/dexalinplus = 3)
	required_reagents = list(/datum/reagent/medicine/dexalin = 1, /datum/reagent/carbon = 1, /datum/reagent/iron = 1)

Bicaridine

/datum/chemical_reaction/bicaridine
	name = "Bicaridine"
	results = list(/datum/reagent/medicine/bicaridine = 2)
	required_reagents = list(/datum/reagent/medicine/inaprovaline = 1, /datum/reagent/carbon = 1)

Meralyne

/datum/chemical_reaction/meralyne
	name = "Meralyne"
	results = list(/datum/reagent/medicine/meralyne = 3)
	required_reagents = list(/datum/reagent/medicine/inaprovaline = 1, /datum/reagent/medicine/bicaridine = 1, /datum/reagent/iron = 1, /datum/reagent/medicine/lemoline = 1)

Ryetalyn

/datum/chemical_reaction/ryetalyn
	name = "Ryetalyn"
	results = list(/datum/reagent/medicine/ryetalyn = 2)
	required_reagents = list(/datum/reagent/medicine/arithrazine = 1, /datum/reagent/carbon = 1)

Cryoxadone

/datum/chemical_reaction/cryoxadone
	name = "Cryoxadone"
	results = list(/datum/reagent/medicine/cryoxadone = 3)
	required_reagents = list(/datum/reagent/medicine/dexalin = 1, /datum/reagent/water = 1, /datum/reagent/oxygen = 1)

Clonexadone

/datum/chemical_reaction/clonexadone
	name = "Clonexadone"
	results = list(/datum/reagent/medicine/clonexadone = 2)
	required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/sodium = 1, /datum/reagent/toxin/phoron = 0.1)
	required_catalysts = list(/datum/reagent/toxin/phoron = 5)

Spaceacillin

/datum/chemical_reaction/spaceacillin
	name = "Spaceacillin"
	results = list(/datum/reagent/medicine/spaceacillin = 2)
	required_reagents = list(/datum/reagent/cryptobiolin = 1, /datum/reagent/medicine/inaprovaline = 1)

Polyhexanide

/datum/chemical_reaction/polyhexanide
	name = "Polyhexanide"
	results = list(/datum/reagent/medicine/polyhexanide = 3)
	required_reagents = list(/datum/reagent/cryptobiolin = 1, /datum/reagent/medicine/spaceacillin = 1, /datum/reagent/sterilizine = 1)

Larvaway

/datum/chemical_reaction/larvaway
	name = "Larvaway"
	results = list(/datum/reagent/medicine/larvaway = 3)
	required_reagents = list(/datum/reagent/medicine/spaceacillin = 1, /datum/reagent/medicine/polyhexanide = 1, /datum/reagent/sterilizine = 1)

imidazoline

/datum/chemical_reaction/imidazoline
	name = "imidazoline"
	results = list(/datum/reagent/medicine/imidazoline = 2)
	required_reagents = list(/datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1, /datum/reagent/medicine/dylovene = 1)

Ethylredoxrazine

/datum/chemical_reaction/ethylredoxrazine
	name = "Ethylredoxrazine"
	results = list(/datum/reagent/medicine/ethylredoxrazine = 3)
	required_reagents = list(/datum/reagent/oxygen = 1, /datum/reagent/medicine/dylovene = 1, /datum/reagent/carbon = 1)

ethanoloxidation

/datum/chemical_reaction/ethanoloxidation
	name = "ethanoloxidation"	//Kind of a placeholder in case someone ever changes it so that chemicals
	results = list(/datum/reagent/water = 2) //H2O2 doesn't equal water, maybe change it in the future.
	required_reagents = list(/datum/reagent/medicine/ethylredoxrazine = 1, /datum/reagent/consumable/ethanol = 1)

Sterilizine

/datum/chemical_reaction/sterilizine
	name = "Sterilizine"
	results = list(/datum/reagent/sterilizine = 3)
	required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/dylovene = 1, /datum/reagent/chlorine = 1)

Inaprovaline

/datum/chemical_reaction/inaprovaline
	name = "Inaprovaline"
	results = list(/datum/reagent/medicine/inaprovaline = 3)
	required_reagents = list(/datum/reagent/oxygen = 1, /datum/reagent/carbon = 1, /datum/reagent/consumable/sugar = 1)

Dylovene

/datum/chemical_reaction/dylovene
	name = "Dylovene"
	results = list(/datum/reagent/medicine/dylovene = 3)
	required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/potassium = 1, /datum/reagent/nitrogen = 1)

Tramadol

/datum/chemical_reaction/tramadol
	name = "Tramadol"
	results = list(/datum/reagent/medicine/tramadol = 3)
	required_reagents = list(/datum/reagent/medicine/inaprovaline = 1, /datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1)

Paracetamol

/datum/chemical_reaction/paracetamol
	name = "Paracetamol"
	results = list(/datum/reagent/medicine/paracetamol = 3)
	required_reagents = list(/datum/reagent/medicine/tramadol = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/water = 1)

Oxycodone

/datum/chemical_reaction/oxycodone
	name = "Oxycodone"
	results = list(/datum/reagent/medicine/oxycodone = 1)
	required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/tramadol = 1)
	required_catalysts = list(/datum/reagent/toxin/phoron = 1)

Synaptizine

/datum/chemical_reaction/synaptizine
	name = "Synaptizine"
	results = list(/datum/reagent/medicine/synaptizine = 3)
	required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1, /datum/reagent/water = 1)

Leporazine

/datum/chemical_reaction/leporazine
	name = "Leporazine"
	results = list(/datum/reagent/medicine/leporazine = 2)
	required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/copper = 1)
	required_catalysts = list(/datum/reagent/toxin/phoron = 5)

Hyronalin

/datum/chemical_reaction/hyronalin
	name = "Hyronalin"
	results = list(/datum/reagent/medicine/hyronalin = 2)
	required_reagents = list(/datum/reagent/radium = 1, /datum/reagent/medicine/dylovene = 1)

Arithrazine

/datum/chemical_reaction/arithrazine
	name = "Arithrazine"
	results = list(/datum/reagent/medicine/arithrazine = 2)
	required_reagents = list(/datum/reagent/medicine/hyronalin = 1, /datum/reagent/hydrogen = 1)

Kelotane

/datum/chemical_reaction/kelotane
	name = "Kelotane"
	results = list(/datum/reagent/medicine/kelotane = 2)
	required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/carbon = 1)

Peridaxon

/datum/chemical_reaction/peridaxon
	name = "Peridaxon"
	results = list(/datum/reagent/medicine/peridaxon = 2)
	required_reagents = list(/datum/reagent/medicine/bicaridine = 2, /datum/reagent/medicine/clonexadone = 2)
	required_catalysts = list(/datum/reagent/toxin/phoron = 5)

Peridaxon Plus

/datum/chemical_reaction/peridaxon_plus
	name = "Peridaxon Plus"
	results = list(/datum/reagent/medicine/peridaxon_plus = 1)
	required_reagents = list(/datum/reagent/medicine/peridaxon = 5, /datum/reagent/medicine/ryetalyn = 5, /datum/reagent/toxin/phoron = 5)

Quick-Clot

/datum/chemical_reaction/quickclot
	name = "Quick-Clot"
	results = list(/datum/reagent/medicine/quickclot = 1)
	required_reagents = list(/datum/reagent/medicine/kelotane = 2, /datum/reagent/medicine/clonexadone = 2)
	required_catalysts = list(/datum/reagent/toxin/phoron = 5)

Hypervene

/datum/chemical_reaction/hypervene //New purge chem.
	name = "Hypervene"
	results = list(/datum/reagent/hypervene = 3)
	required_reagents = list(/datum/reagent/medicine/arithrazine = 1, /datum/reagent/medicine/dylovene = 1, /datum/reagent/medicine/ethylredoxrazine = 1)

Neuraline

/datum/chemical_reaction/neuraline
	name = "Neuraline"
	results = list(/datum/reagent/medicine/neuraline = 4, /datum/reagent/toxin/huskpowder = 1)
	required_reagents = list(/datum/reagent/medicine/synaptizine = 1, /datum/reagent/medicine/arithrazine = 1, /datum/reagent/medicine/tricordrazine = 2, /datum/reagent/consumable/larvajellyprepared = 1)
	required_catalysts = list(/datum/reagent/medicine/lemoline = 5)

Lemoline catalysis

/datum/chemical_reaction/lemoline
	name = "Lemoline catalysis"
	results = list(/datum/reagent/medicine/lemoline = 5) //4 to one multiplication ratio
	required_reagents = list(/datum/reagent/medicine/lemoline = 1, /datum/reagent/consumable/larvajelly = 1)

Biomass

/datum/chemical_reaction/expanded_biomass
	name = "Biomass"
	results = list(/datum/reagent/medicine/biomass/xeno = 10)
	required_reagents = list(/datum/reagent/blood/xeno_blood = 10, /datum/reagent/medicine/biomass = 1)

Duplicate Bicaridine

/datum/chemical_reaction/dupl_bicaridine
	name = "Duplicate Bicaridine"
	results = list(/datum/reagent/medicine/bicaridine = 2)
	required_reagents = list(/datum/reagent/virilyth = 1, /datum/reagent/medicine/bicaridine = 1)

Duplicate Kelotane

/datum/chemical_reaction/dupl_kelotane
	name = "Duplicate Kelotane"
	results = list(/datum/reagent/medicine/kelotane = 2)
	required_reagents = list(/datum/reagent/virilyth = 1, /datum/reagent/medicine/kelotane = 1)

Duplicate Tramadol

/datum/chemical_reaction/dupl_tramadol
	name = "Duplicate Tramadol"
	results = list(/datum/reagent/medicine/tramadol = 2)
	required_reagents = list(/datum/reagent/virilyth = 1, /datum/reagent/medicine/tramadol = 1)

Duplicate Dylovene

/datum/chemical_reaction/dupl_dylovene
	name = "Duplicate Dylovene"
	results = list(/datum/reagent/medicine/dylovene = 2)
	required_reagents = list(/datum/reagent/virilyth = 1, /datum/reagent/medicine/dylovene = 1)

Bihexajuline

/datum/chemical_reaction/bihexajuline
	name = "Bihexajuline"
	results = list(/datum/reagent/medicine/bihexajuline = 5)
	required_reagents = list(/datum/reagent/medicine/bicaridine = 2, /datum/reagent/consumable/drink/milk = 1, /datum/reagent/iron = 2)

Quietus

/datum/chemical_reaction/quietus
	name = "Quietus"
	results = list(/datum/reagent/medicine/research/quietus = 1)
	required_reagents = list(/datum/reagent/toxin/chloralhydrate = 3, /datum/reagent/medicine/dylovene = 1, /datum/reagent/medicine/lemoline = 3)

Somolent

/datum/chemical_reaction/somolent
	name = "Somolent"
	results = list(/datum/reagent/medicine/research/somolent = 4)
	required_reagents = list(/datum/reagent/toxin/sleeptoxin = 1, /datum/reagent/medicine/tricordrazine = 1, /datum/reagent/consumable/drink/doctor_delight = 1, /datum/reagent/medicine/paracetamol = 1)
	required_catalysts = list(/datum/reagent/medicine/lemoline = 5)

Medical Nanites

/datum/chemical_reaction/medicalnanites
	name = "Medical Nanites"
	results = list(/datum/reagent/medicine/research/medicalnanites = 1)
	required_reagents = list(/datum/reagent/toxin/nanites = 10, /datum/reagent/radium = 5, /datum/reagent/iron = 100, /datum/reagent/medicine/lemoline = 5)

Stimulum

/datum/chemical_reaction/stimulum
	name = "Stimulum"
	results = list(/datum/reagent/medicine/research/stimulon = 1)
	required_reagents = list(/datum/reagent/medicine/synaptizine = 10, /datum/reagent/medicine/arithrazine = 20, /datum/reagent/consumable/nutriment = 20, /datum/reagent/medicine/lemoline = 20)

Pyrotechnics

Chemsmoke

/datum/chemical_reaction/chemsmoke
	name = "Chemsmoke"
	required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/phosphorus = 1)

/datum/chemical_reaction/chemsmoke/on_reaction(datum/reagents/holder, created_volume)
	var/smoke_radius = round(sqrt(created_volume * 0.8), 1)
	var/location = get_turf(holder.my_atom)
	var/datum/effect_system/smoke_spread/chem/S = new(location)
	playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3)
	S?.set_up(holder, smoke_radius, location)
	S?.start()
	if(holder?.my_atom)
		holder.clear_reagents()

Foam surfactant

/datum/chemical_reaction/surfactant
	name = "Foam surfactant"
	results = list(/datum/reagent/fluorosurfactant = 5)
	required_reagents = list(/datum/reagent/fluorine = 2, /datum/reagent/carbon = 2, /datum/reagent/toxin/acid = 1)

Foam

/datum/chemical_reaction/foam
	name = "Foam"
	required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/water = 1)
	mob_react = FALSE

/datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, created_volume)
	var/turf/location = get_turf(holder.my_atom)
	location.visible_message(span_warning("The solution spews out foam!"))
	var/datum/effect_system/foam_spread/s = new()
	s.set_up(created_volume, location, holder, NONE)
	s.start()
	holder.clear_reagents()

Metal Foam

/datum/chemical_reaction/metalfoam
	name = "Metal Foam"
	required_reagents = list(/datum/reagent/aluminum = 3, /datum/reagent/foaming_agent = 1, /datum/reagent/toxin/acid/polyacid = 1)
	mob_react = FALSE

/datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, created_volume)
	var/turf/location = get_turf(holder.my_atom)
	location.visible_message(span_warning("The solution spews out a metalic foam!"))

	var/datum/effect_system/foam_spread/s = new()
	s.set_up(created_volume, location, holder, METAL_FOAM)
	s.start()
	holder.clear_reagents()

Iron Foam

/datum/chemical_reaction/ironfoam
	name = "Iron Foam"
	required_reagents = list(/datum/reagent/iron = 3, /datum/reagent/foaming_agent = 1, /datum/reagent/toxin/acid = 1)
	mob_react = FALSE

/datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, created_volume)
	var/turf/location = get_turf(holder.my_atom)
	location.visible_message(span_warning("The solution spews out a metallic foam!"))
	var/datum/effect_system/foam_spread/s = new()
	s.set_up(created_volume, location, holder, METAL_FOAM)
	s.start()
	holder.clear_reagents()

Razorburn Gas

/datum/chemical_reaction/razorburn
	name = "Razorburn Gas"
	required_reagents = list(/datum/reagent/foaming_agent = 1, /datum/reagent/toxin/nanites = 1)

/datum/chemical_reaction/razorburn/on_reaction(datum/reagents/holder, created_volume)
	var/turf/location = get_turf(holder.my_atom)
	location.visible_message(span_danger("The solution spews out a dense, ground-hugging gas! Get away!"))
	var/datum/effect_system/foam_spread/s = new()
	s.set_up(created_volume, location, holder, RAZOR_FOAM)
	s.start()
	holder.clear_reagents()

Foaming Agent

/datum/chemical_reaction/foaming_agent
	name = "Foaming Agent"
	results = list(/datum/reagent/foaming_agent = 1)
	required_reagents = list(/datum/reagent/lithium = 1, /datum/reagent/hydrogen = 1)

Flash powder

/datum/chemical_reaction/flash_powder
	name = "Flash powder"
	required_reagents = list(/datum/reagent/aluminum = 1, /datum/reagent/potassium = 1, /datum/reagent/sulfur = 1)

/datum/chemical_reaction/flash_powder/on_reaction(datum/reagents/holder, created_volume)
	var/location = get_turf(holder.my_atom)
	var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
	s.set_up(2, 1, location)
	s.start()
	for(var/mob/living/carbon/M in viewers(WORLD_VIEW, location))
		switch(get_dist(M, location))
			if(0 to 3)
				if(M.flash_act())
					M.Paralyze(30 SECONDS)

			if(4 to 5)
				if(M.flash_act())
					M.Stun(10 SECONDS)

Napalm

/datum/chemical_reaction/napalm
	name = "Napalm"
	required_reagents = list(/datum/reagent/aluminum = 1, /datum/reagent/toxin/phoron = 2, /datum/reagent/toxin/acid = 1 )

/datum/chemical_reaction/napalm/on_reaction(datum/reagents/holder, created_volume, radius)
	radius = round(sqrt(created_volume * 0.15)) //allows a nice, healthy 3-tile fire if using 2 120u beakers fully filled up.
	flame_radius(radius, get_turf(holder.my_atom))

White Phosphorous smoke

/datum/chemical_reaction/wpsmoke
	name = "White Phosphorous smoke"
	required_reagents = list(/datum/reagent/phosphorus = 2, /datum/reagent/silicon = 1, /datum/reagent/chlorine = 1)

/datum/chemical_reaction/wpsmoke/on_reaction(datum/reagents/holder, created_volume)
	var/smoke_radius = round(sqrt(created_volume * 0.66), 1)
	var/datum/effect_system/smoke_spread/phosphorus/smoke = new
	smoke.set_up(smoke_radius, get_turf(holder.my_atom), 11)
	smoke.start()
	playsound(get_turf(holder.my_atom), 'sound/effects/smoke.ogg', 50, 1, -3)

Tanglefoot smoke

/datum/chemical_reaction/plasmalosssmoke
	name = "Tanglefoot smoke"
	required_reagents = list(/datum/reagent/toxin/sleeptoxin = 2, /datum/reagent/medicine/synaptizine = 1, /datum/reagent/sulfur = 1)

/datum/chemical_reaction/plasmalosssmoke/on_reaction(datum/reagents/holder, created_volume)
	var/smoke_radius = round(sqrt(created_volume), 1)
	var/datum/effect_system/smoke_spread/plasmaloss/smoke = new
	smoke.set_up(smoke_radius, get_turf(holder.my_atom), 11)
	smoke.start()
	playsound(get_turf(holder.my_atom), 'sound/effects/smoke.ogg', 50, 1, -3)

Gunpowder

/datum/chemical_reaction/explosive/gunpowder
	name = "Gunpowder"
	required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/oxygen = 3, /datum/reagent/sulfur = 1, /datum/reagent/carbon = 1)

/datum/chemical_reaction/explosive/gunpowder/on_reaction(datum/reagents/holder, created_volume)
	var/radius = round(sqrt(created_volume* 0.5), 1) // should be about equal to the M15, maybe one tile more
	var/datum/effect_system/smoke_spread/bad/smoke = new
	smoke.set_up((radius - 1), get_turf(holder.my_atom), 2)
	smoke.start()
	explosion(get_turf(holder.my_atom), light_impact_range = radius, small_animation = TRUE)

ANFO

/datum/chemical_reaction/explosive/anfo
	name = "ANFO"
	required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/fuel = 3)

/datum/chemical_reaction/explosive/anfo/on_reaction(datum/reagents/holder, created_volume)
	var/radius = round(sqrt(created_volume* 0.25), 1) // should be a max of 2 tiles
	if(radius > 2)
		radius = 2 //enforced by a hardcap. Sorry!
		explosion(get_turf(holder.my_atom), heavy_impact_range = radius, small_animation = TRUE)

Other

Serotrotium

/datum/chemical_reaction/serotrotium
	name = "Serotrotium"
	results = list(/datum/reagent/serotrotium = 1) //Weird emotes, chance of minor drowsiness.
	required_reagents = list(/datum/reagent/medicine/paracetamol = 1, /datum/reagent/medicine/tramadol = 1)

Toxin

/datum/chemical_reaction/toxin_two //Space Atropine!
	name = "Toxin"
	results = list(/datum/reagent/toxin = 3)
	required_reagents = list(/datum/reagent/medicine/synaptizine = 1, /datum/reagent/toxin/xeno_neurotoxin = 8)

Toxin

/datum/chemical_reaction/sdtoxin
	name = "Toxin"
	results = list(/datum/reagent/toxin/sdtoxin = 2)
	required_reagents = list(/datum/reagent/medicine/synaptizine = 1, /datum/reagent/medicine/dylovene = 1)

Soporific

/datum/chemical_reaction/sleeptoxin
	name = "Soporific"
	results = list(/datum/reagent/toxin/sleeptoxin = 5)
	required_reagents = list(/datum/reagent/toxin/chloralhydrate = 1, /datum/reagent/consumable/sugar = 4)

Unstable mutagen

/datum/chemical_reaction/mutagen
	name = "Unstable mutagen"
	results = list(/datum/reagent/toxin/mutagen = 3)
	required_reagents = list(/datum/reagent/radium = 1, /datum/reagent/phosphorus = 1, /datum/reagent/chlorine = 1)

Water

/datum/chemical_reaction/water //I can't believe we never had this.
	name = "Water"
	results = list(/datum/reagent/water = 1)
	required_reagents = list(/datum/reagent/oxygen = 1, /datum/reagent/hydrogen = 2)

Lexorin

/datum/chemical_reaction/lexorin
	name = "Lexorin"
	results = list(/datum/reagent/toxin/lexorin = 3)
	required_reagents = list(/datum/reagent/toxin/phoron = 1, /datum/reagent/hydrogen = 1, /datum/reagent/nitrogen = 1)

Space Drugs

/datum/chemical_reaction/space_drugs
	name = "Space Drugs"
	results = list(/datum/reagent/space_drugs = 3)
	required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1)

Space Lube

/datum/chemical_reaction/lube
	name = "Space Lube"
	results = list(/datum/reagent/lube = 4)
	required_reagents = list(/datum/reagent/water = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1)

Polytrinic acid

/datum/chemical_reaction/pacid
	name = "Polytrinic acid"
	results = list(/datum/reagent/toxin/acid/polyacid = 3)
	required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/chlorine = 1, /datum/reagent/potassium = 1)

Impedrezene

/datum/chemical_reaction/impedrezene
	name = "Impedrezene"
	results = list(/datum/reagent/impedrezene = 2)
	required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1)

Cryptobiolin

/datum/chemical_reaction/cryptobiolin
	name = "Cryptobiolin"
	results = list(/datum/reagent/cryptobiolin = 3)
	required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1)

Glycerol

/datum/chemical_reaction/glycerol
	name = "Glycerol"
	results = list(/datum/reagent/glycerol = 1)
	required_reagents = list(/datum/reagent/consumable/cornoil = 3, /datum/reagent/toxin/acid = 1)

Chloral Hydrate

/datum/chemical_reaction/chloralhydrate
	name = "Chloral Hydrate"
	results = list(/datum/reagent/toxin/chloralhydrate = 1)
	required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/chlorine = 3, /datum/reagent/water = 1)

Potassium Chloride

/datum/chemical_reaction/potassium_chloride
	name = "Potassium Chloride"
	results = list(/datum/reagent/toxin/potassium_chloride = 2)
	required_reagents = list(/datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/potassium = 1)

Potassium Chlorophoride

/datum/chemical_reaction/potassium_chlorophoride
	name = "Potassium Chlorophoride"
	results = list(/datum/reagent/toxin/potassium_chlorophoride = 4)
	required_reagents = list(/datum/reagent/toxin/potassium_chloride = 1, /datum/reagent/toxin/phoron = 1, /datum/reagent/toxin/chloralhydrate = 1)

Zombie Powder

/datum/chemical_reaction/huskpowder
	name = "Zombie Powder"
	results = list(/datum/reagent/toxin/huskpowder = 2)
	required_reagents = list(/datum/reagent/toxin/carpotoxin = 5, /datum/reagent/toxin/sleeptoxin = 5, /datum/reagent/copper = 5)

Rezadone

/datum/chemical_reaction/rezadone
	name = "Rezadone"
	results = list(/datum/reagent/medicine/rezadone = 3)
	required_reagents = list(/datum/reagent/toxin/carpotoxin = 1, /datum/reagent/cryptobiolin = 1, /datum/reagent/copper = 1)

Mindbreaker Toxin

/datum/chemical_reaction/mindbreaker
	name = "Mindbreaker Toxin"
	results = list(/datum/reagent/toxin/mindbreaker = 3)
	required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/hydrogen = 1, /datum/reagent/medicine/dylovene = 1)

Lipozine

/datum/chemical_reaction/lipozine
	name = "Lipozine"
	results = list(/datum/reagent/lipozine = 3)
	required_reagents = list(/datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/consumable/ethanol = 1, /datum/reagent/radium = 1)

Solid Phoron

/datum/chemical_reaction/phoronsolidification
	name = "Solid Phoron"
	required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/consumable/frostoil = 5, /datum/reagent/toxin/phoron = 20)

/datum/chemical_reaction/phoronsolidification/on_reaction(datum/reagents/holder, created_volume)
	var/location = get_turf(holder.my_atom)
	new /obj/item/stack/sheet/mineral/phoron(location)

Plastic

/datum/chemical_reaction/plastication
	name = "Plastic"
	required_reagents = list(/datum/reagent/toxin/acid/polyacid = 10, /datum/reagent/toxin/plasticide = 20)

/datum/chemical_reaction/plastication/on_reaction(datum/reagents/holder)
	new /obj/item/stack/sheet/mineral/plastic(get_turf(holder.my_atom),10)

Virus Food

/datum/chemical_reaction/virus_food
	name = "Virus Food"
	results = list(/datum/reagent/consumable/virus_food = 15)
	required_reagents = list(/datum/reagent/water = 5, /datum/reagent/consumable/drink/milk = 5, /datum/reagent/oxygen = 5)

Ammonia

/datum/chemical_reaction/ammonia
	name = "Ammonia"
	results = list(/datum/reagent/ammonia = 3)
	required_reagents = list(/datum/reagent/hydrogen = 3, /datum/reagent/nitrogen = 1)

Diethylamine

/datum/chemical_reaction/diethylamine
	name = "Diethylamine"
	results = list(/datum/reagent/diethylamine = 2)
	required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/consumable/ethanol = 1)

Space cleaner

/datum/chemical_reaction/space_cleaner
	name = "Space cleaner"
	results = list(/datum/reagent/space_cleaner = 2)
	required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/water = 1)

Plant-B-Gone

/datum/chemical_reaction/plantbgone
	name = "Plant-B-Gone"
	results = list(/datum/reagent/toxin/plantbgone = 5)
	required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/water = 4)

laughter

/datum/chemical_reaction/laughter
	name = "laughter"
	results = list(/datum/reagent/consumable/laughter = 5)
	required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/drink/banana = 1)


Various Reagents

Base Reagents

X

Y

Consumables

Consumable

/datum/reagent/consumable
	name = "Consumable"
	custom_metabolism = FOOD_METABOLISM
	taste_description = "generic food"
	taste_multi = 4
	var/nutriment_factor = 1
	var/adj_temp = 0
	var/targ_temp = BODYTEMP_NORMAL
	taste_description = "generic food"

/datum/reagent/consumable/on_mob_life(mob/living/L, metabolism)
	current_cycle++
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.adjust_nutrition(nutriment_factor*0.5*effect_str)
	if(adj_temp)
		L.adjust_bodytemperature(adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT, (adj_temp < 0 ? targ_temp : INFINITY), (adj_temp > 0 ? 0 : targ_temp))
	holder.remove_reagent(type, custom_metabolism)
	return TRUE

Nutriment

/datum/reagent/consumable/nutriment
	name = "Nutriment"
	description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
	nutriment_factor = 15
	color = "#664330" // rgb: 102, 67, 48

	var/brute_heal = 1
	var/burn_heal = 0
	var/blood_gain = 0.4

/datum/reagent/consumable/nutriment/on_mob_life(mob/living/L, metabolism)
	if(prob(50))
		L.heal_limb_damage(brute_heal, burn_heal)
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		if(C.blood_volume < BLOOD_VOLUME_NORMAL)
			C.blood_volume += blood_gain

	return ..()

/datum/reagent/consumable/nutriment/on_new(list/supplied_data)
	// taste data can sometimes be ("salt" = 3, "chips" = 1)
	// and we want it to be in the form ("salt" = 0.75, "chips" = 0.25)
	// which is called "normalizing"
	if(!supplied_data)
		supplied_data = data

	// if data isn't an associative list, this has some WEIRD side effects
	// TODO probably check for assoc list?

	data = counterlist_normalise(supplied_data)

/datum/reagent/consumable/nutriment/on_merge(list/newdata, newvolume)
	if(!islist(newdata) || !newdata.len)
		return

	// data for nutriment is one or more (flavour -> ratio)
	// where all the ratio values adds up to 1

	var/list/taste_amounts = list()
	if(data)
		taste_amounts = data.Copy()

	counterlist_scale(taste_amounts, volume)

	var/list/other_taste_amounts = newdata.Copy()
	counterlist_scale(other_taste_amounts, newvolume)

	counterlist_combine(taste_amounts, other_taste_amounts)

	counterlist_normalise(taste_amounts)

	data = taste_amounts

Sugar

/datum/reagent/consumable/sugar
	name = "Sugar"
	description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste."
	color = "#FFFFFF" // rgb: 255, 255, 255
	taste_multi = 1.5 // stop sugar drowning out other flavours
	nutriment_factor = 10
	taste_description = "sweetness"

Virus Food

/datum/reagent/consumable/virus_food
	name = "Virus Food"
	description = "A mixture of water, milk, and oxygen. Virus cells can use this mixture to reproduce."
	reagent_state = LIQUID
	nutriment_factor = 2
	color = "#899613" // rgb: 137, 150, 19
	taste_description = "watery milk"

Soysauce

/datum/reagent/consumable/soysauce
	name = "Soysauce"
	description = "A salty sauce made from the soy plant."
	reagent_state = LIQUID
	nutriment_factor = 2
	color = "#792300" // rgb: 121, 35, 0
	taste_description = "umami"

Ketchup

/datum/reagent/consumable/ketchup
	name = "Ketchup"
	description = "Ketchup, catsup, whatever. It's tomato paste."
	reagent_state = LIQUID
	nutriment_factor = 5
	color = "#731008" // rgb: 115, 16, 8
	taste_description = "ketchup"

Capsaicin Oil

/datum/reagent/consumable/capsaicin
	name = "Capsaicin Oil"
	description = "This is what makes chilis hot."
	reagent_state = LIQUID
	color = "#B31008" // rgb: 179, 16, 8
	taste_description = "hot peppers"
	taste_multi = 1.5
	targ_temp = BODYTEMP_NORMAL + 15
	adj_temp = 5
	var/discomfort_message = span_danger("Your insides feel uncomfortably hot!")
	var/agony_start = 20
	var/agony_amount = 2

/datum/reagent/consumable/capsaicin/on_mob_life(mob/living/L, metabolism)
	if(holder.has_reagent(/datum/reagent/consumable/frostoil))
		holder.remove_reagent(/datum/reagent/consumable/frostoil, 5)
	if(ishuman(L))
		var/mob/living/carbon/human/H = L
		if((H.species.species_flags & NO_PAIN))
			return ..()
	switch(current_cycle)
		if(1 to agony_start - 1)
			if(prob(5))
				to_chat(L, discomfort_message)
		if(agony_start to INFINITY)
			L.apply_effect(agony_amount, AGONY)
			if(prob(5))
				L.emote(pick("dry heaves!", "coughs!", "splutters!"))
				to_chat(L, discomfort_message)
	return ..()

Condensed Capsaicin

/datum/reagent/consumable/capsaicin/condensed
	name = "Condensed Capsaicin"
	description = "A chemical agent used for self-defense and in police work."
	reagent_state = LIQUID
	color = "#B31008" // rgb: 179, 16, 8
	taste_description = "scorching agony"
	taste_multi = 10
	targ_temp = BODYTEMP_HEAT_DAMAGE_LIMIT_ONE + 5
	discomfort_message = span_danger("You feel like your insides are burning!")
	agony_start = 3
	agony_amount = 4

/datum/reagent/consumable/capsaicin/condensed/reaction_mob(mob/living/L, method = TOUCH, volume, show_message = TRUE, touch_protection = 0)
	. = ..()
	if(!(method in list(TOUCH, VAPOR)) || !ishuman(L))
		return
	var/mob/living/carbon/human/victim = L
	var/mouth_covered = 0
	var/eyes_covered = 0
	var/obj/item/safe_thing = null
	if( victim.wear_mask )
		if( victim.wear_mask.flags_inventory & COVEREYES )
			eyes_covered = 1
			safe_thing = victim.wear_mask
		if( victim.wear_mask.flags_inventory & COVERMOUTH )
			mouth_covered = 1
			safe_thing = victim.wear_mask
	if( victim.head )
		if( victim.head.flags_inventory & COVEREYES )
			eyes_covered = 1
			safe_thing = victim.head
		if( victim.head.flags_inventory & COVERMOUTH )
			mouth_covered = 1
			safe_thing = victim.head
	if(victim.glasses)
		eyes_covered = 1
		if( !safe_thing )
			safe_thing = victim.glasses
	if( eyes_covered && mouth_covered )
		if(show_message)
			to_chat(victim, span_danger("Your [safe_thing.name] protects you from the pepperspray!"))
		return
	else if( mouth_covered )	// Reduced effects if partially protected
		if(show_message)
			to_chat(victim, span_danger("Your [safe_thing] protect your face from the pepperspray!"))
		victim.blur_eyes(15)
		victim.blind_eyes(5)
		victim.Stun(10 SECONDS)
		victim.Paralyze(10 SECONDS)
		//victim.Unconscious(10)
		//victim.drop_held_item()
		return
	else if( eyes_covered ) // Mouth cover is better than eye cover, except it's actually the opposite.
		if(show_message)
			to_chat(victim, span_danger("Your [safe_thing] protects you from most of the pepperspray!"))
		if(!(victim.species && (victim.species.species_flags & NO_PAIN)))
			if(prob(10))
				victim.Stun(20)
		victim.blur_eyes(5)
		return
	else // Oh dear :D
		if(!(victim.species && (victim.species.species_flags & NO_PAIN)))
			if(prob(10))
				victim.emote("scream")
		if(show_message)
			to_chat(victim, span_danger("You're sprayed directly in the eyes with pepperspray!"))
		victim.blur_eyes(25)
		victim.blind_eyes(10)
		victim.Stun(10 SECONDS)
		victim.Paralyze(10 SECONDS)

Frost Oil

/datum/reagent/consumable/frostoil
	name = "Frost Oil"
	description = "A special oil that noticably chills the body. Extracted from Ice Peppers."
	reagent_state = LIQUID
	color = "#B31008" // rgb: 139, 166, 233
	taste_description = "mint"
	targ_temp = - 50
	adj_temp = 10

/datum/reagent/consumable/frostoil/on_mob_life(mob/living/L, metabolism)
	if(prob(1))
		L.emote("shiver")
	if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
		holder.remove_reagent(/datum/reagent/consumable/capsaicin, 5)
	return ..()

Table Salt

/datum/reagent/consumable/sodiumchloride
	name = "Table Salt"
	description = "A salt made of sodium chloride. Commonly used to season food."
	color = "#FFFFFF" // rgb: 255,255,255
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	taste_description = "salt"

/datum/reagent/consumable/sodiumchloride/overdose_process(mob/living/L, metabolism)
	L.Confused(40 SECONDS)
	if(prob(10))
		L.emote(pick("sigh","grumble","frown"))

/datum/reagent/consumable/sodiumchloride/overdose_crit_process(mob/living/L, metabolism)
	L.jitter(5) //Turn super salty
	if(prob(10))
		L.Paralyze(20 SECONDS)
	if(prob(10))
		L.emote(pick("cry","moan","pain"))

Black Pepper

/datum/reagent/consumable/blackpepper
	name = "Black Pepper"
	description = "A powder ground from peppercorns. *AAAACHOOO*"
	// no color (ie, black)
	taste_description = "pepper"

Coco Powder

/datum/reagent/consumable/coco
	name = "Coco Powder"
	description = "A fatty, bitter paste made from coco beans."
	nutriment_factor = 5
	color = "#302000" // rgb: 48, 32, 0
	taste_description = "bitterness"

Hot Chocolate

/datum/reagent/consumable/hot_coco
	name = "Hot Chocolate"
	description = "Made with love! And cocoa beans."
	reagent_state = LIQUID
	nutriment_factor = 2
	color = "#403010" // rgb: 64, 48, 16
	taste_description = "creamy chocolate"
	adj_temp = 5

Psilocybin

/datum/reagent/consumable/psilocybin
	name = "Psilocybin"
	description = "A strong psycotropic derived from certain species of mushroom."
	color = "#E700E7" // rgb: 231, 0, 231
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	taste_description = "mushroom"

/datum/reagent/consumable/psilocybin/on_mob_life(mob/living/L, metabolism)
	L.druggy = max(L.druggy, 30)
	switch(current_cycle)
		if(1 to 5)
			L.stuttering += 1
			L.dizzy(5)
			if(prob(10))
				L.emote(pick("twitch","giggle"))
		if(5 to 10)
			L.stuttering += 1
			L.jitter(10)
			L.dizzy(10)
			L.set_drugginess(35)
			if(prob(20))
				L.emote(pick("twitch","giggle"))
		if(10 to INFINITY)
			L.stuttering += 1
			L.jitter(20)
			L.dizzy(20)
			L.set_drugginess(40)
			if(prob(30))
				L.emote(pick("twitch","giggle"))
	return ..()

/datum/reagent/consumable/psilocybin/overdose_process(mob/living/L, metabolism)
	L.apply_damage(1, TOX)
	if(prob(15))
		L.Unconscious(10 SECONDS)

/datum/reagent/consumable/psilocybin/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(2, TOX)
	if(prob(60))
		L.Unconscious(60)
	L.setDrowsyness(max(L.drowsyness, 30))

Sprinkles

/datum/reagent/consumable/sprinkles
	name = "Sprinkles"
	description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
	nutriment_factor = 5
	color = "#FF00FF" // rgb: 255, 0, 255
	taste_description = "childhood whimsy"

Corn Oil

/datum/reagent/consumable/cornoil
	name = "Corn Oil"
	description = "An oil derived from various types of corn."
	reagent_state = LIQUID
	nutriment_factor = 20
	color = "#302000" // rgb: 48, 32, 0
	taste_description = "slime"

/datum/reagent/consumable/cornoil/reaction_turf(turf/T, volume)
	if(volume >= 3)
		T.wet_floor(FLOOR_WET_WATER)

Universal Enzyme

/datum/reagent/consumable/enzyme
	name = "Universal Enzyme"
	description = "A universal enzyme used in the preperation of certain chemicals and foods."
	reagent_state = LIQUID
	color = "#365E30" // rgb: 54, 94, 48
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	taste_description = "sweetness"

/datum/reagent/consumable/enzyme/overdose_process(mob/living/L, metabolism)
	L.apply_damage(1, BURN)

/datum/reagent/consumable/enzyme/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(2, BURN)

Dry Ramen

/datum/reagent/consumable/dry_ramen
	name = "Dry Ramen"
	description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
	nutriment_factor = 1
	color = "#302000" // rgb: 48, 32, 0
	taste_description = "dry and cheap noodles"

Hot Ramen

/datum/reagent/consumable/hot_ramen
	name = "Hot Ramen"
	description = "The noodles are boiled, the flavors are artificial, just like being back in school."
	reagent_state = LIQUID
	nutriment_factor = 5
	color = "#302000" // rgb: 48, 32, 0
	taste_description = "wet and cheap noodles"
	adj_temp = 10

Hell Ramen

/datum/reagent/consumable/hell_ramen
	name = "Hell Ramen"
	description = "The noodles are boiled, the flavors are artificial, just like being back in school."
	reagent_state = LIQUID
	nutriment_factor = 5
	color = "#302000" // rgb: 48, 32, 0
	taste_description = "wet and cheap noodles on fire"
	targ_temp = INFINITY
	adj_temp = 10

Rice

/datum/reagent/consumable/rice
	name = "Rice"
	description = "Enjoy the great taste of nothing."
	nutriment_factor = 2
	color = "#FFFFFF" // rgb: 0, 0, 0
	taste_description = "rice"

Cherry Jelly

/datum/reagent/consumable/cherryjelly
	name = "Cherry Jelly"
	description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
	reagent_state = LIQUID
	nutriment_factor = 5
	color = "#801E28" // rgb: 128, 30, 40
	taste_description = "cherry"

Honey

/datum/reagent/consumable/honey
	name = "Honey"
	description = "A golden yellow syrup, loaded with sugary sweetness."
	color = "#FFFF00"
	nutriment_factor = 15
	taste_description = "sweetness"

/datum/reagent/consumable/honey/on_mob_life(mob/living/L, metabolism)
	L.reagents.add_reagent(/datum/reagent/consumable/sugar,3)
	L.adjustBruteLoss(-0.25*effect_str)
	L.adjustFireLoss(-0.25*effect_str)
	L.adjustOxyLoss(-0.25*effect_str)
	L.adjustToxLoss(-0.25*effect_str)
	return ..()

Larva Jelly

/datum/reagent/consumable/larvajelly
	name = "Larva Jelly"
	description = "The blood and guts of a xenomorph larva blended into a paste. Drinking this is bad for you."
	reagent_state = LIQUID
	nutriment_factor = 0
	color = "#66801e"
	taste_description = "burning"

/datum/reagent/consumable/larvajelly/on_mob_life(mob/living/L, metabolism)
	L.adjustBruteLoss(-0.5*effect_str)
	L.adjustFireLoss(effect_str)
	L.adjustToxLoss(effect_str)
	return ..()

Prepared Larva Jelly

/datum/reagent/consumable/larvajellyprepared
	name = "Prepared Larva Jelly"
	description = "A delicious blend of xenomorphic entrails and acid, denatured by exposure to high-frequency radiation. Probably has some uses."
	reagent_state = LIQUID
	nutriment_factor = 1
	color = "#66801e"
	taste_description = "victory"

/datum/reagent/consumable/larvajellyprepared/on_mob_life(mob/living/L, metabolism)
	L.adjustBruteLoss(-0.5*effect_str)
	return ..()

Drinks

Ethanol

/datum/reagent/consumable/ethanol
	name = "Ethanol" //Parent class for all alcoholic reagents.
	description = "A well-known alcohol with a variety of applications."
	reagent_state = LIQUID
	nutriment_factor = 0 //So alcohol can fill you up! If they want to.
	color = "#404030" // rgb: 64, 64, 48
	taste_description = "alcohol"
	var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning.

	var/druggy = 0
	var/halluci = 0

/*
Boozepwr Chart
Note that all higher effects of alcohol poisoning will inherit effects for smaller amounts (i.e. light poisoning inherts from slight poisoning)
In addition, severe effects won't always trigger unless the drink is poisonously strong
All effects don't start immediately, but rather get worse over time; the rate is affected by the imbiber's alcohol tolerance
0: Non-alcoholic
1-10: Barely classifiable as alcohol - occassional slurring
11-20: Slight alcohol content - slurring
21-30: Below average - imbiber begins to look slightly drunk
31-40: Just below average - no unique effects
41-50: Average - mild disorientation, imbiber begins to look drunk
51-60: Just above average - disorientation, vomiting, imbiber begins to look heavily drunk
61-70: Above average - small chance of blurry vision, imbiber begins to look smashed
71-80: High alcohol content - blurry vision, imbiber completely shitfaced
81-90: Extremely high alcohol content - toxin damage, passing out
91-100: Dangerously toxic - brain damage, probable liver failure.
101 and beyond: Lethally toxic - Swift death.
*/

/datum/reagent/consumable/ethanol/on_mob_life(mob/living/L, metabolism)
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		if(C.drunkenness < volume * boozepwr * ALCOHOL_THRESHOLD_MODIFIER)
			C.drunkenness = max((C.drunkenness + (sqrt(volume) * boozepwr * ALCOHOL_RATE)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk.
		if(ishuman(C))
			var/mob/living/carbon/human/H = C
			var/datum/internal_organ/liver/O = H.internal_organs_by_name["liver"]
			if (istype(O))
				O.take_damage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * O.alcohol_tolerance, 0)) * 0.002), TRUE)

	if(druggy != 0)
		L.set_drugginess(druggy)

	if(halluci)
		L.hallucination += halluci

	return ..()

/datum/reagent/consumable/ethanol/reaction_obj(obj/O, volume)
	if(istype(O,/obj/item/paper))
		var/obj/item/paper/paperaffected = O
		paperaffected.clearpaper()
		to_chat(usr, span_warning("The [name] dissolves the ink on the paper."))
	if(istype(O,/obj/item/book))
		if(volume > 5)
			var/obj/item/book/affectedbook = O
			affectedbook.dat = null
			to_chat(usr, span_warning("The [name] dissolves the ink on the book."))
		else
			to_chat(usr, span_warning("[O]'s ink is smeared by [name], but doesn't wash away!"))

/datum/reagent/consumable/ethanol/reaction_mob(mob/living/L, method = TOUCH, volume, show_message = TRUE, touch_protection = 0)
	. = ..()
	if(method in list(TOUCH, VAPOR, PATCH))
		L.adjust_fire_stacks(round(volume * 0.65))

Beer

/datum/reagent/consumable/ethanol/beer
	name = "Beer"
	description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
	color = "#664300" // rgb: 102, 67, 0
	boozepwr = 25
	taste_description = "piss water"

Aspen Beer

/datum/reagent/consumable/ethanol/nt_beer
	name = "Aspen Beer"
	description = "Pretty good when you get past the fact that it tastes like piss. Canned by the Nanotrasen Corporation."
	color = "#ffcc66"
	boozepwr = 5 //Space Europeans hate it
	taste_description = "dish water"

Kahlua

/datum/reagent/consumable/ethanol/kahlua
	name = "Kahlua"
	description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "spiked latte"
	boozepwr = 45

/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/L, metabolism)
	L.dizzy(-4)
	L.adjustDrowsyness(-2)
	L.AdjustSleeping(-60)
	L.jitter(5)
	return ..()

Whiskey

/datum/reagent/consumable/ethanol/whiskey
	name = "Whiskey"
	description = "A superb and well-aged single-malt whiskey. Damn."
	color = "#664300" // rgb: 102, 67,
	taste_description = "molasses"
	boozepwr = 75

Special Blend Whiskey

/datum/reagent/consumable/ethanol/specialwhiskey
	name = "Special Blend Whiskey"
	description = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything."
	color = "#664300" // rgb: 102, 67, 0
	boozepwr = 80
	taste_description = "exquisite amber"

Sake

/datum/reagent/consumable/ethanol/sake
	name = "Sake"
	description = "A potent rice-wine."
	color = "#0064C8" // rgb: 102, 67, 0
	taste_description = "sweet rice wine"
	boozepwr = 70

Thirteen Loko

/datum/reagent/consumable/ethanol/thirteenloko
	name = "Thirteen Loko"
	description = "A potent mixture of caffeine and alcohol."
	color = "#102000" // rgb: 16, 32, 0
	boozepwr = 80
	nutriment_factor = 1 * FOOD_METABOLISM
	taste_description = "jitters and death"
	adj_temp = 5
	targ_temp = 305
	trait_flags = TACHYCARDIC

/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/L, metabolism)
	L.adjustDrowsyness(-7)
	L.AdjustSleeping(-80 SECONDS)
	L.jitter(5)
	return ..()

Vodka

/datum/reagent/consumable/ethanol/vodka
	name = "Vodka"
	description = "Number one drink AND fueling choice for Russians worldwide."
	color = "#0064C8" // rgb: 0, 100, 200
	taste_description = "grain alcohol"
	boozepwr = 65

Bilk

/datum/reagent/consumable/ethanol/bilk
	name = "Bilk"
	description = "This appears to be beer mixed with milk. Disgusting."
	color = "#895C4C" // rgb: 137, 92, 76
	boozepwr = 15
	nutriment_factor = 2 * FOOD_METABOLISM
	taste_description = "desperation and lactate"

Three Mile Island Iced Tea

/datum/reagent/consumable/ethanol/threemileisland
	name = "Three Mile Island Iced Tea"
	description = "Made for a woman, strong enough for a man."
	color = "#666340" // rgb: 102, 99, 64
	taste_description = "dryness"
	boozepwr = 10
	druggy = 50

Gin

/datum/reagent/consumable/ethanol/gin
	name = "Gin"
	description = "It's gin. In space. I say, good sir."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "pine"
	boozepwr = 45

Rum

/datum/reagent/consumable/ethanol/rum
	name = "Rum"
	description = "Yohoho and all that."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "spiked butterscotch"
	boozepwr = 60

Tequila

/datum/reagent/consumable/ethanol/tequila
	name = "Tequila"
	description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
	color = "#FFFF91" // rgb: 255, 255, 145
	boozepwr = 70
	taste_description = "paint stripper"

Vermouth

/datum/reagent/consumable/ethanol/vermouth
	name = "Vermouth"
	description = "You suddenly feel a craving for a martini..."
	color = "#91FF91" // rgb: 145, 255, 145
	taste_description = "dry alcohol"
	boozepwr = 45

Wine

/datum/reagent/consumable/ethanol/wine
	name = "Wine"
	description = "An premium alchoholic beverage made from distilled grape juice."
	color = "#7E4043" // rgb: 126, 64, 67
	boozepwr = 35
	taste_description = "bitter sweetness"

Cognac

/datum/reagent/consumable/ethanol/cognac
	name = "Cognac"
	description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
	color = "#AB3C05" // rgb: 171, 60, 5
	taste_description = "angry and irish"
	boozepwr = 75

Hooch

/datum/reagent/consumable/ethanol/hooch
	name = "Hooch"
	description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?"
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "pure resignation"
	boozepwr = 100

Ale

/datum/reagent/consumable/ethanol/ale
	name = "Ale"
	description = "A dark alchoholic beverage made by malted barley and yeast."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "hearty barley ale"
	boozepwr = 65

Absinthe

/datum/reagent/consumable/ethanol/absinthe
	name = "Absinthe"
	description = "Watch out that the Green Fairy doesn't come for you!"
	color = "#33EE00" // rgb: 51, 238, 0
	taste_description = "death and licorice"
	boozepwr = 80

/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/L, metabolism)
	if(prob(10))
		L.hallucination += 4 //Reference to the urban myth
	return ..()

Poison Wine

/datum/reagent/consumable/ethanol/pwine
	name = "Poison Wine"
	description = "A potent wine with hallucinogenic properties, popular among high personalities and villains."
	color = "#000000" // rgb: 0, 0, 0 SHOCKER
	taste_description = "evil velvet"
	boozepwr = 40

/datum/reagent/consumable/ethanol/pwine/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 19)
			L.jitter(2)
			L.hallucination = max(L.hallucination, 3)
			if(prob(1))
				L.emote(pick("twitch","giggle"))
		if(20 to 59)
			L.stuttering = max(L.stuttering, 2)
			L.hallucination = max(L.hallucination, 10)
			L.jitter(3)
			L.dizzy(2)
			L.set_drugginess(10)
			if(prob(5))
				L.emote(pick("twitch","giggle"))
		if(60 to 119)
			L.stuttering = max(L.stuttering, 2)
			L.hallucination = max(L.hallucination, 60)
			L.jitter(4)
			L.dizzy(4)
			L.set_drugginess(30)
			if(prob(10))
				L.emote(pick("twitch","giggle"))
			if(prob(30))
				L.adjustToxLoss(0.5)
		if(120 to 199)
			L.stuttering = max(L.stuttering, 2)
			L.hallucination = max(L.hallucination, 60)
			L.jitter(4)
			L.dizzy(4)
			L.druggy = max(L.druggy, 60)
			if(prob(10))
				L.emote(pick("twitch","giggle"))
			if(prob(30))
				L.adjustToxLoss(1)
			if(prob(5))
				if(ishuman(L))
					var/mob/living/carbon/human/H = L
					var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
					if(istype(E))
						E.take_damage(2)
		if(200 to INFINITY)
			L.stuttering += 1
			L.adjustToxLoss(1)
			L.hallucination = max(L.hallucination, 60)
			L.jitter(4)
			L.dizzy(4)
			L.druggy = max(L.druggy, 60)
			if(ishuman(L) && prob(10))
				var/mob/living/carbon/human/H = L
				var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
				if(istype(E))
					if(H.species.species_flags ~! NO_PAIN)
						to_chat(H, span_danger("You clutch for a moment as you feel a scorching pain covering your abdomen!"))
						H.Stun(60)
					E.take_damage(20)
	return ..()

Deadrum

/datum/reagent/consumable/ethanol/deadrum
	name = "Deadrum"
	description = "Popular with the sailors. Not very popular with everyone else."
	color = "#664300" // rgb: 102, 67, 0
	boozepwr = 35
	taste_description = "salty sea water"

/datum/reagent/consumable/ethanol/deadrum/on_mob_life(mob/living/L, metabolism)
	L.dizzy(5)
	return ..()

Davenport Rye

/datum/reagent/consumable/ethanol/davenport
	name = "Davenport Rye"
	description = "An expensive alcohol with a distinct flavor"
	color = "#ffcc66"
	taste_description = "oil, whiskey, salt, rosemary mixed togheter" // Insert reference here.
	boozepwr = 50

Goldschlager

/datum/reagent/consumable/ethanol/goldschlager
	name = "Goldschlager"
	description = "100% proof cinnamon schnapps, made for alcoholic teen girls on spring break."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "burning cinnamon"
	boozepwr = 25

Patron

/datum/reagent/consumable/ethanol/patron
	name = "Patron"
	description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
	color = "#585840" // rgb: 88, 88, 64
	taste_description = "metallic and expensive"
	boozepwr = 60

Gin and Tonic

/datum/reagent/consumable/ethanol/gintonic
	name = "Gin and Tonic"
	description = "An all time classic, mild cocktail."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "mild and tart"
	boozepwr = 25

Cuba Libre

/datum/reagent/consumable/ethanol/cuba_libre
	name = "Cuba Libre"
	description = "Viva la revolucion! Viva Cuba Libre!"
	color = "#3E1B00" // rgb: 62, 27, 0
	taste_description = "a refreshing marriage of citrus and rum"
	boozepwr = 50

Whiskey Cola

/datum/reagent/consumable/ethanol/whiskey_cola
	name = "Whiskey Cola"
	description = "Whiskey, mixed with cola. Surprisingly refreshing."
	color = "#3E1B00" // rgb: 62, 27, 0
	taste_description = "cola"
	boozepwr = 70

Classic Martini

/datum/reagent/consumable/ethanol/martini
	name = "Classic Martini"
	description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "dry class"
	boozepwr = 60

Vodka Martini

/datum/reagent/consumable/ethanol/vodkamartini
	name = "Vodka Martini"
	description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "shaken, not stirred"
	boozepwr = 65

White Russian

/datum/reagent/consumable/ethanol/white_russian
	name = "White Russian"
	description = "That's just, like, your opinion, man..."
	color = "#A68340" // rgb: 166, 131, 64
	taste_description = "bitter cream"
	boozepwr = 50

Screwdriver

/datum/reagent/consumable/ethanol/screwdrivercocktail
	name = "Screwdriver"
	description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
	color = "#A68310" // rgb: 166, 131, 16
	taste_description = "oranges"
	boozepwr = 55

Booger

/datum/reagent/consumable/ethanol/booger
	name = "Booger"
	description = "Ewww..."
	color = "#8CFF8C" // rgb: 140, 255, 140
	taste_description = "sweet 'n creamy"
	boozepwr = 45

Bloody Mary

/datum/reagent/consumable/ethanol/bloody_mary
	name = "Bloody Mary"
	description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "tomatoes with a hint of lime"
	boozepwr = 55

/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/L, metabolism)
	if(L.blood_volume < BLOOD_VOLUME_NORMAL)
		L.blood_volume += 0.3 //Bloody Mary slowly restores blood loss.
	return ..()

Brave Bull

/datum/reagent/consumable/ethanol/brave_bull
	name = "Brave Bull"
	description = "It's just as effective as Dutch-Courage!"
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "alcoholic bravery"
	boozepwr = 80

Tequila Sunrise

/datum/reagent/consumable/ethanol/tequila_sunrise
	name = "Tequila Sunrise"
	description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~"
	color = "#FFE48C" // rgb: 255, 228, 140
	taste_description = "oranges with a hint of pomegranate"
	boozepwr = 45

Toxins Special

/datum/reagent/consumable/ethanol/toxins_special
	name = "Toxins Special"
	description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!"
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "spicy toxins"
	boozepwr = 25
	targ_temp = 330
	adj_temp = 15

Beepsky Smash

/datum/reagent/consumable/ethanol/beepsky_smash
	name = "Beepsky Smash"
	description = "Deny drinking this and prepare for THE LAW."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "JUSTICE"
	boozepwr = 90 //THE FIST OF THE LAW IS STRONG AND HARD

/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/L, metabolism)
	L.Stun(40)
	return ..()

Irish Cream

/datum/reagent/consumable/ethanol/irish_cream
	name = "Irish Cream"
	description = "Whiskey-imbued cream, what else would you expect from the Irish."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "creamy alcohol"
	boozepwr = 70

The Manly Dorf

/datum/reagent/consumable/ethanol/manly_dorf
	name = "The Manly Dorf"
	description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "hair on your chest and your chin"
	boozepwr = 100 //For the manly only

Long Island Iced Tea

/datum/reagent/consumable/ethanol/longislandicedtea
	name = "Long Island Iced Tea"
	description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "a mixture of cola and alcohol"
	boozepwr = 35

Moonshine

/datum/reagent/consumable/ethanol/moonshine
	name = "Moonshine"
	description = "You've really hit rock bottom now... your liver packed its bags and left last night."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "bitterness"
	boozepwr = 95

B-52

/datum/reagent/consumable/ethanol/b52
	name = "B-52"
	description = "Coffee, Irish Cream, and cognac. You will get bombed."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "angry and irish"
	boozepwr = 85

Irish Coffee

/datum/reagent/consumable/ethanol/irishcoffee
	name = "Irish Coffee"
	description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "giving up on the day"
	boozepwr = 35

Margarita

/datum/reagent/consumable/ethanol/margarita
	name = "Margarita"
	description = "On the rocks with salt on the rim. Arriba~!"
	color = "#8CFF8C" // rgb: 140, 255, 140
	taste_description = "dry and salty"
	boozepwr = 35

Black Russian

/datum/reagent/consumable/ethanol/black_russian
	name = "Black Russian"
	description = "For the lactose-intolerant. Still as classy as a White Russian."
	color = "#360000" // rgb: 54, 0, 0
	taste_description = "bitterness"
	boozepwr = 70

Manhattan

/datum/reagent/consumable/ethanol/manhattan
	name = "Manhattan"
	description = "The Detective's undercover drink of choice. He never could stomach gin..."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "mild dryness"
	boozepwr = 30

Manhattan Project

/datum/reagent/consumable/ethanol/manhattan_proj
	name = "Manhattan Project"
	description = "A scientist's drink of choice, for pondering ways to blow up the station."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "death, the destroyer of worlds"
	boozepwr = 45
	druggy = 30

Whiskey Soda

/datum/reagent/consumable/ethanol/whiskeysoda
	name = "Whiskey Soda"
	description = "For the more refined griffon."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "soda"
	boozepwr = 70

Anti-freeze

/datum/reagent/consumable/ethanol/antifreeze
	name = "Anti-freeze"
	description = "Ultimate refreshment."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "Jack Frost's piss"
	boozepwr = 35
	targ_temp = 330
	adj_temp = 20

Barefoot

/datum/reagent/consumable/ethanol/barefoot
	name = "Barefoot"
	description = "Barefoot and pregnant"
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "creamy berries"
	boozepwr = 45

Snow White

/datum/reagent/consumable/ethanol/snowwhite
	name = "Snow White"
	description = "A cold refreshment"
	color = "#FFFFFF" // rgb: 255, 255, 255
	taste_description = "refreshing cold"
	boozepwr = 35

Melon Liquor

/datum/reagent/consumable/ethanol/melonliquor
	name = "Melon Liquor"
	description = "A relatively sweet and fruity 46 proof liquor."
	color = "#138808" // rgb: 19, 136, 8
	boozepwr = 60
	taste_description = "fruity alcohol"

Blue Curacao

/datum/reagent/consumable/ethanol/bluecuracao
	name = "Blue Curacao"
	description = "Exotically blue, fruity drink, distilled from oranges."
	color = "#0000CD" // rgb: 0, 0, 205
	boozepwr = 50
	taste_description = "oranges"

Sui Dream

/datum/reagent/consumable/ethanol/suidream
	name = "Sui Dream"
	description = "Comprised of: White soda, blue curacao, melon liquor."
	color = "#00A86B" // rgb: 0, 168, 107
	taste_description = "fruity soda"
	boozepwr = 10

Demons Blood

/datum/reagent/consumable/ethanol/demonsblood
	name = "Demons Blood"
	description = "AHHHH!!!!"
	color = "#820000" // rgb: 130, 0, 0
	taste_description = "sweet tasting iron"
	boozepwr = 75

Vodka and Tonic

/datum/reagent/consumable/ethanol/vodkatonic
	name = "Vodka and Tonic"
	description = "For when a gin and tonic isn't russian enough."
	color = "#0064C8" // rgb: 0, 100, 200
	taste_description = "tart bitterness"
	boozepwr = 70

Gin Fizz

/datum/reagent/consumable/ethanol/ginfizz
	name = "Gin Fizz"
	description = "Refreshingly lemony, deliciously dry."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "dry, tart lemons"
	boozepwr = 45

Bahama mama

/datum/reagent/consumable/ethanol/bahama_mama
	name = "Bahama mama"
	description = "Tropical cocktail."
	color = "#FF7F3B" // rgb: 255, 127, 59
	taste_description = "lime and orange"
	boozepwr = 35

Singulo

/datum/reagent/consumable/ethanol/singulo
	name = "Singulo"
	description = "A blue-space beverage!"
	color = "#2E6671" // rgb: 46, 102, 113
	taste_description = "concentrated matter"
	boozepwr = 35

Sbiten

/datum/reagent/consumable/ethanol/sbiten
	name = "Sbiten"
	description = "A spicy Vodka! Might be a little hot for the little guys!"
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "hot and spice"
	boozepwr = 70
	targ_temp = 360
	adj_temp = 50

Devils Kiss

/datum/reagent/consumable/ethanol/devilskiss
	name = "Devils Kiss"
	description = "Creepy time!"
	color = "#A68310" // rgb: 166, 131, 16
	taste_description = "bitter iron"
	boozepwr = 70

Red Mead

/datum/reagent/consumable/ethanol/red_mead
	name = "Red Mead"
	description = "The true Viking's drink! Even though it has a strange red color."
	color = "#C73C00" // rgb: 199, 60, 0
	taste_description = "sweet and salty alcohol"
	boozepwr = 51

Mead

/datum/reagent/consumable/ethanol/mead
	name = "Mead"
	description = "A Viking's drink, though a cheap one."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "sweet, sweet alcohol"
	boozepwr = 50
	nutriment_factor = 1 * FOOD_METABOLISM

Iced Beer

/datum/reagent/consumable/ethanol/iced_beer
	name = "Iced Beer"
	description = "A beer which is so cold the air around it freezes."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "refreshingly cold"
	boozepwr = 15
	targ_temp = 270
	adj_temp = 20

Grog

/datum/reagent/consumable/ethanol/grog
	name = "Grog"
	description = "Watered down rum, NanoTrasen approves!"
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "a poor excuse for alcohol"
	boozepwr = 1

Aloe

/datum/reagent/consumable/ethanol/aloe
	name = "Aloe"
	description = "So very, very, very good."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "sweet 'n creamy"
	boozepwr = 35

Andalusia

/datum/reagent/consumable/ethanol/andalusia
	name = "Andalusia"
	description = "A nice, strangely named drink."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "lemons"
	boozepwr = 40

Allies Cocktail

/datum/reagent/consumable/ethanol/alliescocktail
	name = "Allies Cocktail"
	description = "A drink made from your allies, not as sweet as when made from your enemies."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "bitter yet free"
	boozepwr = 45

Acid Spit

/datum/reagent/consumable/ethanol/acid_spit
	name = "Acid Spit"
	description = "A drink for the daring, can be deadly if incorrectly prepared!"
	color = "#365000" // rgb: 54, 80, 0
	taste_description = "stomach acid"
	boozepwr = 80

Amasec

/datum/reagent/consumable/ethanol/amasec
	name = "Amasec"
	description = "Official drink of the NanoTrasen Gun-Club!"
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "dark and metallic"
	boozepwr = 35

Changeling Sting

/datum/reagent/consumable/ethanol/changelingsting
	name = "Changeling Sting"
	description = "You take a tiny sip and feel a burning sensation..."
	color = "#2E6671" // rgb: 46, 102, 113
	taste_description = "your brain coming out your nose"
	boozepwr = 95

Irish Car Bomb

/datum/reagent/consumable/ethanol/irishcarbomb
	name = "Irish Car Bomb"
	description = "Mmm, tastes like chocolate cake..."
	color = "#2E6671" // rgb: 46, 102, 113
	taste_description = "delicious anger"
	boozepwr = 25

Syndicate Bomb

/datum/reagent/consumable/ethanol/syndicatebomb
	name = "Syndicate Bomb"
	description = "Tastes like terrorism!"
	color = "#2E6671" // rgb: 46, 102, 113
	taste_description = "purified antagonism"
	boozepwr = 90

Erika Surprise

/datum/reagent/consumable/ethanol/erikasurprise
	name = "Erika Surprise"
	description = "The surprise is it's green!"
	color = "#2E6671" // rgb: 46, 102, 113
	taste_description = "tartness and bananas"
	boozepwr = 35

Driest Martini

/datum/reagent/consumable/ethanol/driestmartini
	name = "Driest Martini"
	description = "Only for the experienced. You think you see sand floating in the glass."
	nutriment_factor = 1 * FOOD_METABOLISM
	color = "#2E6671" // rgb: 46, 102, 113
	taste_description = "a beach"
	boozepwr = 65

Banana Mama

/datum/reagent/consumable/ethanol/bananahonk
	name = "Banana Mama"
	description = "A drink from Clown Heaven."
	nutriment_factor = 1 * REAGENTS_METABOLISM
	color = "#FFFF91" // rgb: 255, 255, 140
	taste_description = "a bad joke"
	boozepwr = 60

Silencer

/datum/reagent/consumable/ethanol/silencer
	name = "Silencer"
	description = "A drink from Mime Heaven."
	nutriment_factor = 1 * FOOD_METABOLISM
	color = "#664300" // rgb: 102, 67, 0
	boozepwr = 59
	taste_description = "a pencil eraser"

/datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 50)
			L.dizzy(5)
			L.stuttering += 2
		if(51 to 100)
			L.dizzy(5)
			L.stuttering += 5
			if(prob(20))
				L.AdjustConfused(60)
		if(101 to INFINITY)
			L.dizzy(6)
			L.stuttering += 5
			if(prob(20))
				L.AdjustConfused(10 SECONDS)
	return ..()

Drink

/datum/reagent/consumable/drink
	name = "Drink"
	description = "Uh, some kind of drink."
	reagent_state = LIQUID
	nutriment_factor = 1
	color = "#E78108" // rgb: 231, 129, 8
	var/adj_dizzy = 0
	var/adj_drowsy = 0
	var/adj_sleepy = 0

/datum/reagent/consumable/drink/on_mob_life(mob/living/L, metabolism)
	if(adj_dizzy != 0)
		L.dizzy(adj_dizzy)
	if(adj_drowsy != 0)
		L.adjustDrowsyness(adj_drowsy)
	if(adj_sleepy != 0)
		L.AdjustSleeping(adj_sleepy)
	return ..()

Orange Juice

/datum/reagent/consumable/drink/orangejuice
	name = "Orange juice"
	description = "Both delicious AND rich in Vitamin C, what more do you need?"
	color = "#E78108" // rgb: 231, 129, 8
	taste_description = "oranges"

/datum/reagent/consumable/drink/orangejuice/on_mob_life(mob/living/L, metabolism)
	L.adjustOxyLoss(-0.3)
	return ..()

Tomato Juice

/datum/reagent/consumable/drink/tomatojuice
	name = "Tomato Juice"
	description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?"
	color = "#731008" // rgb: 115, 16, 8
	taste_description = "tomatoes"

/datum/reagent/consumable/drink/tomatojuice/on_mob_life(mob/living/L, metabolism)
	L.heal_limb_damage(0, 0.2)
	return ..()

Lime Juice

/datum/reagent/consumable/drink/limejuice
	name = "Lime Juice"
	description = "The sweet-sour juice of limes."
	color = "#365E30" // rgb: 54, 94, 48
	taste_description = "unbearable sourness"

/datum/reagent/consumable/drink/limejuice/on_mob_life(mob/living/L, metabolism)
	L.adjustToxLoss(-0.2)
	return ..()

Carrot Juice

/datum/reagent/consumable/drink/carrotjuice
	name = "Carrot juice"
	description = "It is just like a carrot but without crunching."
	color = "#973800" // rgb: 151, 56, 0
	taste_description = "carrots"

/datum/reagent/consumable/drink/carrotjuice/on_mob_life(mob/living/L, metabolism)
	L.adjust_blurriness(-1)
	L.adjust_blindness(-1)
	switch(current_cycle)
		if(1 to 20)
			//nothing
		if(21 to INFINITY)
			if(prob(current_cycle-10) && iscarbon(L))
				var/mob/living/carbon/C = L
				C.disabilities &= ~NEARSIGHTED
	return ..()

Berry Juice

/datum/reagent/consumable/drink/berryjuice
	name = "Berry Juice"
	description = "A delicious blend of several different kinds of berries."
	color = "#990066" // rgb: 153, 0, 102
	taste_description = "berries"

Grape Juice

/datum/reagent/consumable/drink/grapejuice
	name = "Grape Juice"
	description = "It's grrrrrape!"
	color = "#863333" // rgb: 134, 51, 51
	taste_description = "grapes"

Souto Classic

/datum/reagent/consumable/drink/suoto
	name = "Souto Classic"
	description = "A fruit flavored soda canned in Havana"
	color = "#802b00"
	taste_description = "sour soda"
	taste_multi = 2

Souto Cherry

/datum/reagent/consumable/drink/suoto/cherry
	name = "Souto Cherry"
	description = "Now with more artificial flavors! Canned in Havanna"
	color = "#800000"
	taste_description = "bittersweet soda"

Grape Soda

/datum/reagent/consumable/drink/grapesoda
	name = "Grape Soda"
	description = "Grapes made into a fine drank."
	color = "#421C52" // rgb: 98, 57, 53
	adj_drowsy = -3
	taste_description = "grape soda"

Poison Berry Juice

/datum/reagent/consumable/drink/poisonberryjuice
	name = "Poison Berry Juice"
	description = "A tasty juice blended from various kinds of very deadly and toxic berries."
	color = "#863353" // rgb: 134, 51, 83
	taste_description = "berries"

/datum/reagent/consumable/drink/poisonberryjuice/on_mob_life(mob/living/L, metabolism)
	L.adjustToxLoss(1)
	return ..()

Watermelon Juice

/datum/reagent/consumable/drink/watermelonjuice
	name = "Watermelon Juice"
	description = "Delicious juice made from watermelon."
	color = "#863333" // rgb: 134, 51, 51
	taste_description = "juicy watermelon"

Lemon Juice

/datum/reagent/consumable/drink/lemonjuice
	name = "Lemon Juice"
	description = "This juice is VERY sour."
	color = "#863333" // rgb: 175, 175, 0
	taste_description = "sourness"

Banana Juice

/datum/reagent/consumable/drink/banana
	name = "Banana Juice"
	description = "The raw essence of a banana."
	color = "#863333" // rgb: 175, 175, 0
	taste_description = "banana"

Nothing

/datum/reagent/consumable/drink/nothing
	name = "Nothing"
	description = "Absolutely nothing."
	taste_description = "nothing"

Laughter

/datum/reagent/consumable/laughter
	name = "Laughter"
	description = "Some say that this is the best medicine, but recent studies have proven that to be untrue."
	custom_metabolism = INFINITY
	color = "#FF4DD2"
	taste_description = "laughter"

/datum/reagent/consumable/laughter/on_mob_life(mob/living/carbon/M)
	M.emote("laugh")
	return ..()

Potato Juice

/datum/reagent/consumable/drink/potato_juice
	name = "Potato Juice"
	description = "Juice of the potato. Bleh."
	nutriment_factor = 2 * FOOD_METABOLISM
	color = "#302000" // rgb: 48, 32, 0
	taste_description = "irish sadness"

Milk

/datum/reagent/consumable/drink/milk
	name = "Milk"
	description = "An opaque white liquid produced by the mammary glands of mammals."
	color = "#DFDFDF" // rgb: 223, 223, 223
	taste_description = "milk"

/datum/reagent/consumable/drink/milk/on_mob_life(mob/living/L, metabolism)
	L.heal_limb_damage(0.2)
	if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
		holder.remove_reagent(/datum/reagent/consumable/capsaicin, 2)
	return ..()

Soy Milk

/datum/reagent/consumable/drink/milk/soymilk
	name = "Soy Milk"
	description = "An opaque white liquid made from soybeans."
	color = "#DFDFC7" // rgb: 223, 223, 199
	taste_description = "soy milk"

Cream

/datum/reagent/consumable/drink/milk/cream
	name = "Cream"
	description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?"
	color = "#DFD7AF" // rgb: 223, 215, 175
	taste_description = "creamy milk"

Grenadine Syrup

/datum/reagent/consumable/drink/grenadine
	name = "Grenadine Syrup"
	description = "Made in the modern day with proper pomegranate substitute. Who uses real fruit, anyways?"
	color = "#FF004F" // rgb: 255, 0, 79
	taste_description = "100% pure pomegranate"

Hot Chocolate

/datum/reagent/consumable/drink/hot_coco
	name = "Hot Chocolate"
	description = "Made with love! And cocoa beans."
	nutriment_factor = 2
	color = "#403010" // rgb: 64, 48, 16
	adj_temp = 15
	taste_description = "creamy chocolate"

Coffee

/datum/reagent/consumable/drink/coffee
	name = "Coffee"
	description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant."
	color = "#482000" // rgb: 72, 32, 0
	nutriment_factor = 0
	overdose_threshold = REAGENTS_OVERDOSE * 2
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 3
	custom_metabolism = REAGENTS_METABOLISM * 5 //1u/tick
	adj_dizzy = -5
	adj_drowsy = -3
	adj_sleepy = -2
	adj_temp = 20
	taste_description = "bitterness"
	purge_rate = 2
	trait_flags = TACHYCARDIC


/datum/reagent/consumable/drink/coffee/overdose_process(mob/living/L, metabolism)
	L.apply_damage(0.2, TOX)
	L.jitter(2)
	if(prob(5) && ishuman(L))
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
		if(E)
			E.take_damage(1, TRUE)
		L.emote(pick("twitch", "blink_r", "shiver"))

/datum/reagent/consumable/drink/coffee/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(0.5, TOX)
	L.jitter(5)
	if(prob(5) && L.stat != UNCONSCIOUS)
		to_chat(L, span_warning("You spasm and pass out!"))
		L.Unconscious(10 SECONDS)
	if(prob(30) && ishuman(L))
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
		if(E)
			E.take_damage(1, TRUE)

Atomic Coffee

/datum/reagent/consumable/drink/coffee/atomiccoffee
	name = "Atomic Coffee"
	description = "This coffee is a brewed drink prepared from roasted seeds and enriched from use in atomic coffemaker. Consume in moderation"
	color = "#482000" // rgb: 72, 32, 0
	nutriment_factor = 0
	overdose_threshold = REAGENTS_OVERDOSE * 2
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 3
	custom_metabolism = REAGENTS_METABOLISM * 5 //1u/tick
	adj_dizzy = -5
	adj_drowsy = -3
	adj_sleepy = -2
	adj_temp = 20
	taste_description = "bitterness"
	purge_list = list(/datum/reagent/consumable/frostoil, /datum/reagent/medicine/oxycodone)
	purge_rate = 2
	trait_flags = TACHYCARDIC

/datum/reagent/consumable/drink/atomiccoffee/on_mob_add(mob/living/L, metabolism)
	. = ..()
	L.add_movespeed_modifier(type, TRUE, 0, NONE, TRUE, -0.2)

/datum/reagent/consumable/drink/atomiccoffee/on_mob_delete(mob/living/L, metabolism)
	L.remove_movespeed_modifier(type)
	var/amount = (current_cycle * 0.5) // 15/cup
	L.adjustStaminaLoss(amount)

/datum/reagent/consumable/drink/atomiccoffee/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 10)
			L.adjustStaminaLoss(-effect_str)
		if(11 to 30)
			L.adjustStaminaLoss(-0.5*effect_str)
		if(11 to 60)
			L.adjustStaminaLoss(-0.25*effect_str)
			L.jitter(1)
		if(61 to 150)
			L.adjustStaminaLoss(0.25*effect_str)
			L.apply_damage(5, TOX)
			L.jitter(2)
		if(151 to INFINITY)
			L.adjustStaminaLoss(2.5*effect_str)
			L.apply_damage(10, TOX) //You're having a bad day.
			L.jitter(5)
	return ..()

Iced Coffee

/datum/reagent/consumable/drink/coffee/icecoffee
	name = "Iced Coffee"
	description = "Coffee and ice, refreshing and cool."
	color = "#102838" // rgb: 16, 40, 56
	taste_description = "bitter coldness"
	adj_temp = 5
	targ_temp = BODYTEMP_NORMAL - 5

Soy Latte

/datum/reagent/consumable/drink/coffee/soy_latte
	name = "Soy Latte"
	description = "A nice and tasty beverage while you are reading your hippie books."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "creamy coffee"
	adj_sleepy = 0
	adj_temp = 5

/datum/reagent/consumable/drink/coffee/soy_latte/on_mob_life(mob/living/L, metabolism)
	L.heal_limb_damage(0.2)
	return ..()

Cafe Latte

/datum/reagent/consumable/drink/coffee/cafe_latte
	name = "Cafe Latte"
	description = "A nice, strong and tasty beverage while you are reading."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "bitter cream"
	adj_sleepy = 0
	adj_temp = 5

/datum/reagent/consumable/drink/coffee/cafe_latte/on_mob_life(mob/living/L, metabolism)
	L.heal_limb_damage(0.2)
	return ..()

Tea

/datum/reagent/consumable/drink/tea
	name = "Tea"
	description = "Tasty black tea, it has antioxidants, it's good for you!"
	color = "#101000" // rgb: 16, 16, 0
	nutriment_factor = 0
	taste_description = "tart black tea"
	adj_dizzy = - 2
	adj_drowsy = -1
	adj_sleepy = -1
	adj_temp = 10

/datum/reagent/consumable/drink/tea/on_mob_life(mob/living/L, metabolism)
	L.adjustToxLoss(-0.2)
	return ..()

Iced Tea

/datum/reagent/consumable/drink/tea/icetea
	name = "Iced Tea"
	description = "No relation to a certain rap artist/ actor."
	color = "#104038" // rgb: 16, 64, 56
	taste_description = "sweet tea"
	adj_temp = - 5
	targ_temp = BODYTEMP_NORMAL - 5

Cold drink

/datum/reagent/consumable/drink/cold
	name = "Cold drink"
	adj_temp = - 5
	targ_temp = BODYTEMP_NORMAL - 5
	taste_description = "refreshment"

Tonic Water

/datum/reagent/consumable/drink/cold/tonic
	name = "Tonic Water"
	description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "tart and fresh"
	adj_dizzy = - 5
	adj_drowsy = -2
	adj_sleepy = -1

Soda Water

/datum/reagent/consumable/drink/cold/sodawater
	name = "Soda Water"
	description = "A can of club soda. Why not make a scotch and soda?"
	color = "#619494" // rgb: 97, 148, 148
	taste_description = "carbonated water"
	adj_dizzy = -5
	adj_drowsy = -1

Ice

/datum/reagent/consumable/drink/cold/ice
	name = "Ice"
	description = "Frozen water, your dentist wouldn't like you chewing this."
	reagent_state = SOLID
	color = "#619494" // rgb: 97, 148, 148
	taste_description = "ice"
	adj_temp = - 7
	targ_temp = BODYTEMP_NORMAL - 15

Space Cola

/datum/reagent/consumable/drink/cold/space_cola
	name = "Space Cola"
	description = "A refreshing beverage."
	color = "#100800" // rgb: 16, 8, 0
	taste_description = "cola"
	adj_drowsy = -2
	adj_sleepy = -1

Nuka Cola

/datum/reagent/consumable/drink/cold/nuka_cola
	name = "Nuka Cola"
	description = "Cola, cola never changes."
	color = "#100800" // rgb: 16, 8, 0
	taste_description = "the future"
	adj_sleepy = -2
	adj_drowsy = -10
	adj_dizzy = 5

/datum/reagent/consumable/drink/cold/nuka_cola/on_mob_life(mob/living/L, metabolism)
	L.jitter(10)
	L.set_drugginess(30)
	return ..()

Mountain Wind

/datum/reagent/consumable/drink/cold/spacemountainwind
	name = "Mountain Wind"
	description = "Blows right through you like a space wind."
	color = "#102000" // rgb: 16, 32, 0
	taste_description = "sweet citrus soda"
	adj_drowsy = -7
	adj_sleepy = -1

Dr. Gibb

/datum/reagent/consumable/drink/cold/dr_gibb
	name = "Dr. Gibb"
	description = "A delicious blend of 42 different flavours"
	color = "#102000" // rgb: 16, 32, 0
	taste_description = "cherry soda" // FALSE ADVERTISING
	adj_drowsy = -6

Space-Up

/datum/reagent/consumable/drink/cold/space_up
	name = "Space-Up"
	description = "Tastes like a hull breach in your mouth."
	color = "#202800" // rgb: 32, 40, 0
	taste_description = "cherry soda"
	adj_temp = - 8
	targ_temp = BODYTEMP_NORMAL - 10

Lemon Lime

/datum/reagent/consumable/drink/cold/lemon_lime
	name = "Lemon Lime"
	description = "A tangy substance made of 0.5% natural citrus!"
	color = "#878F00" // rgb: 135, 40, 0
	taste_description = "tangy lime and lemon soda"
	adj_temp = - 8
	targ_temp = BODYTEMP_NORMAL - 10

Lemonade

/datum/reagent/consumable/drink/cold/lemonade
	name = "Lemonade"
	description = "Oh the nostalgia..."
	color = "#FFFF00" // rgb: 255, 255, 0
	taste_description = "tartness"

Kira Special

/datum/reagent/consumable/drink/cold/kiraspecial
	name = "Kira Special"
	description = "Long live the guy who everyone had mistaken for a girl. Baka!"
	color = "#CCCC99" // rgb: 204, 204, 153
	taste_description = "fruity sweetness"

Brown Star

/datum/reagent/consumable/drink/cold/brownstar
	name = "Brown Star"
	description = "It's not what it sounds like..."
	color = "#9F3400" // rgb: 159, 052, 000
	taste_description = "orange and cola soda"
	adj_temp = - 2

Milkshake

/datum/reagent/consumable/drink/cold/milkshake
	name = "Milkshake"
	description = "Glorious brainfreezing mixture."
	color = "#AEE5E4" // rgb" 174, 229, 228
	taste_description = "creamy vanilla"
	adj_temp = - 9
	targ_temp = BODYTEMP_NORMAL - 10

/datum/reagent/consumable/drink/cold/milkshake/on_mob_life(mob/living/L, metabolism)
	if(prob(1))
		L.emote("shiver")
	if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
		holder.remove_reagent(/datum/reagent/consumable/capsaicin, 2)
	return ..()

Rewriter

/datum/reagent/consumable/drink/cold/rewriter
	name = "Rewriter"
	description = "The secret of the sanctuary of the Librarian..."
	color = "#485000" // rgb:72, 080, 0
	taste_description = "a bad night out"

/datum/reagent/consumable/drink/cold/rewriter/on_mob_life(mob/living/L, metabolism)
	L.jitter(5)
	return ..()

The Doctor's Delight

/datum/reagent/consumable/drink/doctor_delight
	name = "The Doctor's Delight"
	description = "A gulp a day keeps the MediBot away. That's probably for the best."
	color = "#FF8CFF" // rgb: 255, 140, 255
	taste_description = "homely fruit"
	nutriment_factor = - 1
	custom_metabolism = REAGENTS_METABOLISM * 0.25 //Twice the rate of paracetamol
	adj_dizzy = - 10

/datum/reagent/consumable/drink/doctor_delight/on_mob_life(mob/living/L, metabolism)
	L.adjustBruteLoss(-0.5, 0)
	L.adjustFireLoss(-0.5, 0)
	L.adjustToxLoss(-0.5, 0)
	L.adjustOxyLoss(-0.5, 0)
	L.AdjustConfused(-10 SECONDS)
	return ..()

Atomic Bomb

/datum/reagent/consumable/drink/atomicbomb
	name = "Atomic Bomb"
	description = "Nuclear proliferation never tasted so good."
	color = "#666300" // rgb: 102, 99, 0
	adj_dizzy = 10
	taste_description = "da bomb"

/datum/reagent/consumable/drink/atomicbomb/on_mob_life(mob/living/L, metabolism)
	L.set_drugginess(50)
	L.AdjustConfused(40)
	L.slurring += 2
	switch(current_cycle)
		if(40 to 49)
			L.adjustDrowsyness(2)
		if(51 to 200)
			L.Sleeping(60)
		if(201 to INFINITY)
			L.Sleeping(60)
			L.adjustToxLoss(2)
	return ..()

Pan-Galactic Gargle Blaster

/datum/reagent/consumable/drink/gargle_blaster
	name = "Pan-Galactic Gargle Blaster"
	description = "Whoah, this stuff looks volatile!"
	color = "#664300" // rgb: 102, 67, 0
	adj_dizzy = 6
	taste_description = "your brains smashed out by a lemon wrapped around a gold brick"

/datum/reagent/consumable/drink/gargle_blaster/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(15 to 45)
			L.slurring += 2
			L.jitter(2)
		if(46 to 65)
			L.AdjustConfused(40)
			L.slurring += 2
			L.jitter(3)
		if(66 to 199)
			L.set_drugginess(50)
			if(prob(10))
				L.vomit()
			L.jitter(4)
			if(prob(5))
				L.Sleeping(16 SECONDS)
		if(200 to INFINITY)
			L.set_drugginess(50)
			L.AdjustConfused(40)
			L.slurring += 2
			L.adjustToxLoss(2)
			L.jitter(5)
			if(prob(10))
				L.vomit()
			L.Sleeping(60)
	return ..()

Neurotoxin

/datum/reagent/consumable/drink/neurotoxin
	name = "Neurotoxin"
	description = "A strong neurotoxin that puts the subject into a death-like state."
	color = "#2E2E61" // rgb: 46, 46, 97
	adj_dizzy = 6
	taste_description = "a numbing sensation"
	trait_flags = BRADYCARDICS

/datum/reagent/consumable/drink/neurotoxin/on_mob_life(mob/living/L, metabolism)
	L.Paralyze(60)
	switch(current_cycle)
		if(15 to 35)
			L.stuttering += 2
		if(36 to 55)
			L.stuttering +=2
			L.AdjustConfused(40)
		if(56 to 200)
			L.stuttering +=2
			L.AdjustConfused(40)
			L.set_drugginess(30)
		if(201 to INFINITY)
			L.set_drugginess(30)
			L.adjustToxLoss(2)
	return ..()

Hippies' Delight

/datum/reagent/consumable/drink/hippies_delight
	name = "Hippies' Delight"
	description = "You just don't get it maaaan."
	color = "#664300" // rgb: 102, 67, 0
	taste_description = "giving peace a chance"

/datum/reagent/consumable/drink/hippies_delight/on_mob_life(mob/living/L, metabolism)
	L.slurring = max(L.slurring, 2)
	switch(current_cycle)
		if(1 to 5)
			L.dizzy(10)
			L.set_drugginess(30)
			if(prob(10))
				L.emote(pick("twitch","giggle"))
		if(6 to 10)
			L.dizzy(20)
			L.jitter(20)
			L.set_drugginess(45)
			if(prob(20))
				L.emote(pick("twitch","giggle"))
		if(11 to 200)
			L.dizzy(40)
			L.jitter(40)
			L.set_drugginess(60)
			if(prob(30))
				L.emote(pick("twitch","giggle"))
		if(201 to INFINITY)
			L.stuttering = 1
			L.jitter(60)
			L.dizzy(60)
			L.set_drugginess(75)
			if(prob(40))
				L.emote(pick("twitch","giggle"))
			L.adjustToxLoss(0.6)
	return ..()

Medicines

Medicine

/datum/reagent/medicine
	name = "Medicine"
	taste_description = "bitterness"
	reagent_state = LIQUID
	taste_description = "bitterness"

Inaprovaline

/datum/reagent/medicine/inaprovaline
	name = "Inaprovaline"
	description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients."
	color = "#C8A5DC" // rgb: 200, 165, 220
	overdose_threshold = REAGENTS_OVERDOSE*2
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL*2
	scannable = TRUE
	trait_flags = TACHYCARDIC

/datum/reagent/medicine/inaprovaline/on_mob_life(mob/living/L, metabolism)
	L.reagent_shock_modifier += PAIN_REDUCTION_LIGHT
	if(metabolism & IS_VOX)
		L.adjustToxLoss(REAGENTS_METABOLISM)
	else if(iscarbon(L))
		var/mob/living/carbon/C = L
		if(C.losebreath > 10)
			C.set_Losebreath(10)
	return ..()

/datum/reagent/medicine/inaprovaline/overdose_process(mob/living/L, metabolism)
	L.jitter(5) //Overdose causes a spasm
	L.Unconscious(40 SECONDS)

/datum/reagent/medicine/inaprovaline/overdose_crit_process(mob/living/L, metabolism)
	L.setDrowsyness(L.drowsyness, 20)
	if(ishuman(L)) //Critical overdose causes total blackout and heart damage. Too much stimulant
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
		E.take_damage(0.5*effect_str, TRUE)
	if(prob(10))
		L.emote(pick("twitch","blink_r","shiver"))

Ryetalyn

/datum/reagent/medicine/ryetalyn
	name = "Ryetalyn"
	description = "Ryetalyn is a long-duration shield against toxic chemicals."
	reagent_state = SOLID
	color = "#C8A5DC" // rgb: 200, 165, 220
	scannable = TRUE
	custom_metabolism = REAGENTS_METABOLISM * 0.125
	purge_list = list(/datum/reagent/toxin, /datum/reagent/zombium)
	purge_rate = 5
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL

/datum/reagent/medicine/ryetalyn/on_mob_life(mob/living/L, metabolism)
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.disabilities = 0
	return ..()

/datum/reagent/medicine/ryetalyn/overdose_process(mob/living/L, metabolism)
	L.Confused(40 SECONDS)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/ryetalyn/overdose_crit_process(mob/living/L, metabolism)
	if(prob(15))
		L.Unconscious(30 SECONDS)
	L.apply_damage(3*effect_str, CLONE)

Paracetamol

/datum/reagent/medicine/paracetamol
	name = "Paracetamol"
	description = "Most probably know this as Tylenol, but this chemical is a mild, simple painkiller, good for enduring heavy labor."
	color = "#C855DC"
	scannable = TRUE
	custom_metabolism = REAGENTS_METABOLISM * 0.125
	purge_list = list(/datum/reagent/medicine/kelotane, /datum/reagent/medicine/tricordrazine, /datum/reagent/medicine/bicaridine)
	purge_rate = 1
	overdose_threshold = REAGENTS_OVERDOSE*2
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL*2

/datum/reagent/medicine/paracetamol/on_mob_life(mob/living/L, metabolism)
	L.reagent_pain_modifier += PAIN_REDUCTION_HEAVY
	L.heal_limb_damage(0.2*effect_str, 0.2*effect_str)
	L.adjustToxLoss(-0.1*effect_str)
	L.adjustStaminaLoss(-effect_str)
	return ..()

/datum/reagent/paracetamol/overdose_process(mob/living/L, metabolism)
	L.hallucination = max(L.hallucination, 2)
	L.reagent_pain_modifier += PAIN_REDUCTION_VERY_LIGHT
	L.apply_damage(0.5*effect_str, TOX)

/datum/reagent/paracetamol/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(3*effect_str, TOX)

Tramadol

/datum/reagent/medicine/tramadol
	name = "Tramadol"
	description = "A simple, yet effective painkiller."
	color = "#C8A5DC"
	scannable = TRUE
	custom_metabolism = REAGENTS_METABOLISM * 0.5
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL

/datum/reagent/medicine/tramadol/on_mob_life(mob/living/L)
	L.reagent_pain_modifier += PAIN_REDUCTION_VERY_HEAVY
	if(volume > 20)
		L.reagent_pain_modifier += PAIN_REDUCTION_LIGHT
		L.apply_damage(0.25*effect_str, TOX)
	return ..()

/datum/reagent/medicine/tramadol/overdose_process(mob/living/L, metabolism)
	L.hallucination = max(L.hallucination, 2) //Hallucinations and oxy damage
	L.apply_damage(effect_str, OXY)

/datum/reagent/medicine/tramadol/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(3*effect_str, TOX)

Oxycodone

/datum/reagent/medicine/oxycodone
	name = "Oxycodone"
	description = "An effective and very addictive painkiller."
	color = "#C805DC"
	custom_metabolism = REAGENTS_METABOLISM * 1.25
	overdose_threshold = REAGENTS_OVERDOSE * 0.5
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 0.5
	scannable = TRUE

/datum/reagent/medicine/oxycodone/on_mob_add(mob/living/L, metabolism)
	L.adjustStaminaLoss(-20*effect_str)
	to_chat(L, span_userdanger("You feel a burst of energy revitalize you all of a sudden! You can do anything!"))

/datum/reagent/medicine/oxycodone/on_mob_life(mob/living/L, metabolism)
	L.reagent_pain_modifier += PAIN_REDUCTION_VERY_HEAVY
	L.apply_damage(0.2*effect_str, TOX)
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.setShock_Stage(min(C.shock_stage - 1*effect_str, 150)) //you can still paincrit if under ludicrous situations, but you can't go into deep shock
	return ..()

/datum/reagent/medicine/oxycodone/overdose_process(mob/living/L, metabolism)
	L.hallucination = max(L.hallucination, 3)
	L.set_drugginess(10)
	L.jitter(3)

/datum/reagent/medicine/oxycodone/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(3*effect_str, TOX)
	L.reagent_pain_modifier += PAIN_REDUCTION_VERY_HEAVY
	if(ishuman(L))
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
		if(E)
			E.take_damage(3*effect_str, TRUE)

/datum/reagent/medicine/oxycodone/on_mob_delete(mob/living/L, metabolism)
	to_chat(L, span_userdanger("The room spins slightly as you start to come down off your painkillers!"))
	addtimer(CALLBACK(L, /mob/living.proc/Paralyze, 3), 10 SECONDS)

Hydrocodone

/datum/reagent/medicine/hydrocodone
	name = "Hydrocodone"
	description = "An effective but very short lasting painkiller only made by autodocs."
	color = "#C805DC"
	custom_metabolism = REAGENTS_METABOLISM * 2
	overdose_threshold = REAGENTS_OVERDOSE*0.6 //You aren't using this out of combat. And only the B18 makes it.
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL*0.5
	scannable = TRUE

/datum/reagent/medicine/hydrocodone/on_mob_life(mob/living/L, metabolism)
	L.reagent_pain_modifier += PAIN_REDUCTION_VERY_HEAVY
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.setShock_Stage(min(C.shock_stage - 1*effect_str, 150)) //you can still paincrit if under ludicrous situations, but you can't go into deep shock
	return ..()

/datum/reagent/medicine/hydrocodone/overdose_process(mob/living/L, metabolism)
	L.adjustToxLoss(2.5*effect_str, TRUE)

/datum/reagent/medicine/hydrocodone/overdose_crit_process(mob/living/L, metabolism)
	L.adjustBrainLoss(1.5*effect_str, TRUE)

Leporazine

/datum/reagent/medicine/leporazine
	name = "Leporazine"
	description = "Leporazine can be use to stabilize an individuals body temperature."
	color = "#C8A5DC" // rgb: 200, 165, 220
	scannable = TRUE
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL

/datum/reagent/medicine/leporazine/on_mob_life(mob/living/L, metabolism)
	var/target_temp = L.get_standard_bodytemperature()
	if(L.bodytemperature > target_temp)
		L.adjust_bodytemperature(-40*TEMPERATURE_DAMAGE_COEFFICIENT*effect_str, target_temp)
	else if(L.bodytemperature < target_temp + 1)
		L.adjust_bodytemperature(40*TEMPERATURE_DAMAGE_COEFFICIENT*effect_str, 0, target_temp)
	return ..()

/datum/reagent/medicine/leporazine/overdose_process(mob/living/L, metabolism)
	if(prob(10))
		L.Unconscious(5 SECONDS)

/datum/reagent/medicine/leporazine/overdose_crit_process(mob/living/L, metabolism)
	L.drowsyness  = max(L.drowsyness, 30)

Kelotane

/datum/reagent/medicine/kelotane
	name = "Kelotane"
	description = "Kelotane is a drug used to treat burns."
	color = "#D8C58C"
	scannable = TRUE
	purge_list = list(/datum/reagent/medicine/ryetalyn)
	purge_rate = 1
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL

/datum/reagent/medicine/kelotane/on_mob_life(mob/living/L, metabolism)
	var/target_temp = L.get_standard_bodytemperature()
	L.heal_limb_damage(0, effect_str)
	if(L.bodytemperature > target_temp)
		L.adjust_bodytemperature(-2.5*TEMPERATURE_DAMAGE_COEFFICIENT*effect_str, target_temp)
	if(volume > 10)
		L.reagent_pain_modifier -= PAIN_REDUCTION_VERY_LIGHT
	if(volume > 20)
		L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT
		L.heal_limb_damage(0, 0.5*effect_str)
	return ..()

/datum/reagent/medicine/kelotane/overdose_process(mob/living/L, metabolism)
	L.apply_damages(effect_str, 0, effect_str)

/datum/reagent/medicine/kelotane/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(2*effect_str, 0, 2*effect_str)

Dermaline

/datum/reagent/medicine/dermaline
	name = "Dermaline"
	description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
	color = "#F8C57C"
	overdose_threshold = REAGENTS_OVERDOSE*0.5
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL*0.5
	scannable = TRUE
	purge_list = list(/datum/reagent/medicine/oxycodone)
	purge_rate = 0.2

/datum/reagent/medicine/dermaline/on_mob_life(mob/living/L, metabolism)
	var/target_temp = L.get_standard_bodytemperature()
	L.heal_limb_damage(0, 2*effect_str)
	if(L.bodytemperature > target_temp)
		L.adjust_bodytemperature(-5*TEMPERATURE_DAMAGE_COEFFICIENT*effect_str, target_temp)
	if(volume > 5)
		L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT
	if(volume > 10)
		L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT
		L.heal_limb_damage(0, 1.5*effect_str)
	return ..()

/datum/reagent/medicine/dermaline/overdose_process(mob/living/L, metabolism)
	L.apply_damages(effect_str, 0, effect_str)

/datum/reagent/medicine/dermaline/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(3*effect_str, 0, 3*effect_str)

Dexalin

/datum/reagent/medicine/dexalin
	name = "Dexalin"
	description = "Dexalin is used in the treatment of oxygen deprivation."
	color = "#C865FC"
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	scannable = TRUE

/datum/reagent/medicine/dexalin/on_mob_life(mob/living/L,metabolism)
	if(metabolism & IS_VOX)
		L.adjustToxLoss(3*effect_str)
	else
		L.adjustOxyLoss(-3*effect_str)
	holder.remove_reagent("lexorin", effect_str)
	return ..()

/datum/reagent/medicine/dexalin/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/dexalin/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(2*effect_str, 0, 2*effect_str)

Dexalin Plus

/datum/reagent/medicine/dexalinplus
	name = "Dexalin Plus"
	description = "Dexalin Plus is used in the treatment of oxygen deprivation. It is highly effective."
	color = "#C8A5FC"
	overdose_threshold = REAGENTS_OVERDOSE/2
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/2
	scannable = TRUE

/datum/reagent/medicine/dexalinplus/on_mob_life(mob/living/L,metabolism)
	if(metabolism & IS_VOX)
		L.adjustToxLoss(1.5*effect_str)
	else
		L.adjustOxyLoss(-L.getOxyLoss())
	holder.remove_reagent("lexorin", effect_str)
	return ..()

/datum/reagent/medicine/dexalinplus/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/dexalinplus/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(2*effect_str, 0, 3*effect_str)

Tricordrazine

/datum/reagent/medicine/tricordrazine
	name = "Tricordrazine"
	description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
	color = "#B865CC"
	scannable = TRUE
	purge_list = list(/datum/reagent/medicine/ryetalyn)
	purge_rate = 1
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	taste_description = "grossness"

/datum/reagent/medicine/tricordrazine/on_mob_life(mob/living/L, metabolism)

	L.adjustOxyLoss(-0.5*effect_str)
	L.adjustToxLoss(-0.4*effect_str)
	L.heal_limb_damage(0.8*effect_str, 0.8*effect_str)
	if(volume > 10)
		L.reagent_pain_modifier -= PAIN_REDUCTION_VERY_LIGHT
	if(volume > 20)
		L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT
	return ..()

/datum/reagent/medicine/tricordrazine/overdose_process(mob/living/L, metabolism)
	L.jitter(5)
	L.adjustBrainLoss(effect_str, TRUE)

/datum/reagent/medicine/tricordrazine/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(3*effect_str, 3*effect_str, 3*effect_str)

Dylovene

/datum/reagent/medicine/dylovene
	name = "Dylovene"
	description = "Dylovene is a broad-spectrum antitoxin."
	color = "#A8F59C"
	scannable = TRUE
	purge_list = list(/datum/reagent/toxin, /datum/reagent/medicine/research/stimulon, /datum/reagent/consumable/drink/atomiccoffee, /datum/reagent/medicine/paracetamol, /datum/reagent/medicine/larvaway)
	purge_rate = 1
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	taste_description = "a roll of gauze"

/datum/reagent/medicine/dylovene/on_mob_life(mob/living/L,metabolism)
	L.hallucination = max(0, L.hallucination -  2.5*effect_str)
	L.adjustToxLoss(-effect_str)
	if(volume > 10)
		L.adjustStaminaLoss(0.5*effect_str)
	return ..()

/datum/reagent/medicine/dylovene/overdose_process(mob/living/L, metabolism)
	if(!ishuman(L))
		return
	var/mob/living/carbon/human/H = L
	var/datum/internal_organ/eyes/E = H.internal_organs_by_name["eyes"]
	if(E)
		E.take_damage(0.5*effect_str, TRUE)

/datum/reagent/medicine/dylovene/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(2*effect_str, 2*effect_str)
	if(ishuman(L))
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/eyes/E = H.internal_organs_by_name["eyes"]
		if(E)
			E.take_damage(1.5*effect_str, TRUE)

Adminordrazine

/datum/reagent/medicine/adminordrazine //An OP chemical for admins
	name = "Adminordrazine"
	description = "It's magic. We don't have to explain it."
	color = "#C8A5DC" // rgb: 200, 165, 220
	taste_description = "badmins"

/datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/L, metabolism)
	L.reagents.remove_all_type(/datum/reagent/toxin, 2.5*effect_str, 0, 1)
	L.setCloneLoss(0)
	L.setOxyLoss(0)
	L.heal_limb_damage(5, 5)
	L.adjustToxLoss(-5)
	L.hallucination = 0
	L.setBrainLoss(0)
	L.set_blurriness(0, TRUE)
	L.set_blindness(0, TRUE)
	L.SetStun(0, FALSE)
	L.SetUnconscious(0)
	L.SetParalyzed(0)
	L.dizziness = 0
	L.setDrowsyness(0)
	L.stuttering = 0
	L.SetConfused(0)
	L.SetSleeping(0)
	L.jitteriness = 0
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.drunkenness = 0
		C.disabilities = 0
	return ..()

Synaptizine

/datum/reagent/medicine/synaptizine
	name = "Synaptizine"
	description = "Synaptizine is a commonly used performance-enhancing drug with minimal side effects."
	color = "#C8A5DC" // rgb: 200, 165, 220
	overdose_threshold = REAGENTS_OVERDOSE/5
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/5
	scannable = TRUE
	custom_metabolism = REAGENTS_METABOLISM * 0.5
	purge_list = list(/datum/reagent/toxin/mindbreaker)
	purge_rate = 5

/datum/reagent/medicine/synaptizine/on_mob_add(mob/living/L, metabolism)
	L.adjustStaminaLoss(-30*effect_str)
	to_chat(L, span_userdanger("You feel a burst of energy as the stimulants course through you! Time to go!"))

/datum/reagent/medicine/synaptizine/on_mob_life(mob/living/L, metabolism)
	L.reagent_shock_modifier += PAIN_REDUCTION_MEDIUM
	L.adjustDrowsyness(-5)
	L.AdjustUnconscious(-20)
	L.AdjustStun(-20)
	L.AdjustParalyzed(-20)
	L.adjustToxLoss(effect_str)
	L.hallucination = max(0, L.hallucination - 10)
	switch(current_cycle)
		if(1 to 10)
			L.adjustStaminaLoss(-7.5*effect_str)
		if(11 to 40)
			L.adjustStaminaLoss((current_cycle*0.75 - 14)*effect_str)
		if(41 to INFINITY)
			L.adjustStaminaLoss(15*effect_str)
	return ..()

/datum/reagent/medicine/synaptizine/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/synaptizine/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(effect_str, effect_str, effect_str)

/datum/reagent/medicine/synaptizine/on_mob_delete(mob/living/L, metabolism)
	to_chat(L, span_userdanger("The room spins as you start to come down off your stimulants!"))
	addtimer(CALLBACK(L, /mob/living.proc/Paralyze, 15), 10 SECONDS)

Neuraline

/datum/reagent/medicine/neuraline //injected by neurostimulator implant and medic-only injector
	name = "Neuraline"
	description = "A chemical cocktail tailored to enhance or dampen specific neural processes."
	color = "#C8A5DC" // rgb: 200, 165, 220
	custom_metabolism = REAGENTS_METABOLISM * 2
	overdose_threshold = 5
	overdose_crit_threshold = 6
	scannable = FALSE

/datum/reagent/medicine/neuraline/on_mob_life(mob/living/L)
	L.reagent_shock_modifier += (2 * PAIN_REDUCTION_VERY_HEAVY)
	L.adjustDrowsyness(-5)
	L.dizzy(-5)
	L.stuttering = max(L.stuttering-5, 0)
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.drunkenness = max(C.drunkenness-5, 0)
	L.AdjustConfused(-10 SECONDS)
	L.adjust_blurriness(-5)
	L.AdjustUnconscious(-40)
	L.AdjustStun(-40)
	L.AdjustParalyzed(-20)
	L.AdjustSleeping(-40)
	L.adjustStaminaLoss(-30*effect_str)
	L.heal_limb_damage(7.5*effect_str, 7.5*effect_str)
	L.adjustToxLoss(3.75*effect_str)
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.setShock_Stage(min(C.shock_stage - volume*effect_str, 150)) //will pull a target out of deep paincrit instantly, if he's in it
	return ..()

/datum/reagent/medicine/neuraline/overdose_process(mob/living/L, metabolism)
	L.adjustToxLoss(2.5*effect_str, TRUE)

/datum/reagent/medicine/neuraline/overdose_crit_process(mob/living/L, metabolism)
	L.adjustBrainLoss(10*effect_str, TRUE) //if you double inject, you're fucked till surgery. This is the downside of a very strong chem.

Hyronalin

/datum/reagent/medicine/hyronalin
	name = "Hyronalin"
	description = "Hyronalin is a medicinal drug used to counter the effect of toxin poisoning."
	color = "#C8A5DC" // rgb: 200, 165, 220
	custom_metabolism = REAGENTS_METABOLISM
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	scannable = TRUE

/datum/reagent/medicine/hyronalin/on_mob_life(mob/living/L)
	L.adjustToxLoss(-effect_str)
	return ..()

/datum/reagent/medicine/hyronalin/overdose_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, TOX)

/datum/reagent/medicine/hyronalin/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(0, effect_str, effect_str)

Arithrazine

/datum/reagent/medicine/arithrazine
	name = "Arithrazine"
	description = "Arithrazine is an unstable medication used for minor cases of toxin poisoning."
	color = "#C8A5DC" // rgb: 200, 165, 220
	custom_metabolism = REAGENTS_METABOLISM
	overdose_threshold = REAGENTS_OVERDOSE/2
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/2
	scannable = TRUE

/datum/reagent/medicine/arithrazine/on_mob_life(mob/living/L)
	L.adjustToxLoss(-0.5*effect_str)
	if(prob(15))
		L.take_limb_damage(effect_str, 0)
	return ..()

/datum/reagent/medicine/arithrazine/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/arithrazine/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(effect_str, effect_str, 2*effect_str)

Russian Red

/datum/reagent/medicine/russian_red
	name = "Russian Red"
	description = "An emergency generic treatment with extreme side effects."
	color = "#C8A5DC" // rgb: 200, 165, 220
	custom_metabolism = REAGENTS_METABOLISM * 5
	overdose_threshold = REAGENTS_OVERDOSE/2   //so it makes the OD threshold effectively 15 so two pills  is too much but one is fine
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/2.5 //and this makes the Critical OD 20
	scannable = TRUE

/datum/reagent/medicine/russian_red/on_mob_life(mob/living/L, metabolism)
	L.heal_limb_damage(10*effect_str, 10*effect_str)
	L.adjustToxLoss(-2.5*effect_str)
	L.adjustCloneLoss(effect_str)
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.setShock_Stage(min(C.shock_stage - 5*effect_str, 150)) //removes a target from deep paincrit instantly
	return ..()

/datum/reagent/medicine/russian_red/overdose_process(mob/living/L, metabolism)
	L.apply_damages(effect_str, 0, 0)

/datum/reagent/medicine/russian_red/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(effect_str, 2*effect_str, effect_str)
	L.adjustBrainLoss(2*effect_str, TRUE)

Alkysine

/datum/reagent/medicine/alkysine
	name = "Alkysine"
	description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue."
	color = "#E89599"
	custom_metabolism = REAGENTS_METABOLISM * 0.25
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	scannable = TRUE

/datum/reagent/medicine/alkysine/on_mob_life(mob/living/L, metabolism)
	L.reagent_shock_modifier += PAIN_REDUCTION_VERY_LIGHT
	L.adjustBrainLoss(-1.5*effect_str)
	return ..()

/datum/reagent/medicine/alkysine/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/alkysine/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(0, effect_str, effect_str)

Imidazoline

/datum/reagent/medicine/imidazoline
	name = "Imidazoline"
	description = "Heals eye damage"
	color = "#C8A5DC" // rgb: 200, 165, 220
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	scannable = TRUE
	taste_description = "dull toxin"

/datum/reagent/medicine/imidazoline/on_mob_life(mob/living/L, metabolism)
	L.adjust_blurriness(-5)
	L.adjust_blindness(-5)
	if(ishuman(L))
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/eyes/E = H.internal_organs_by_name["eyes"]
		if(E)
			E.heal_organ_damage(effect_str)
	return ..()

/datum/reagent/medicine/imidazoline/overdose_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, TOX)

/datum/reagent/medicine/imidazoline/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(0, effect_str, 2*effect_str)

Peridaxon

/datum/reagent/medicine/peridaxon
	name = "Peridaxon"
	description = "Used to stabilize internal organs while waiting for surgery, and fixes organ damage at cryogenic temperatures. Medicate cautiously."
	color = "#C845DC"
	overdose_threshold = REAGENTS_OVERDOSE/2
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/2
	custom_metabolism = REAGENTS_METABOLISM * 0.25
	scannable = TRUE

/datum/reagent/medicine/peridaxon/on_mob_life(mob/living/L, metabolism)
	if(!ishuman(L))
		return ..()
	var/mob/living/carbon/human/H = L
	for(var/datum/internal_organ/I in H.internal_organs)
		if(I.damage)
			if(L.bodytemperature > 169 && I.damage > 5)
				continue
			I.heal_organ_damage(effect_str)
	return ..()

/datum/reagent/medicine/peridaxon/overdose_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, BRUTE)

/datum/reagent/peridaxon/overdose_crit_process(mob/living/L, metabolism) //wiki editor's comment: broken type lol
	L.apply_damages(effect_str, 3*effect_str, 3*effect_str)

Peridaxon Plus

/datum/reagent/medicine/peridaxon_plus
	name = "Peridaxon Plus"
	description = "Used to heal severely damaged internal organs in the field. Moderately toxic. Do not self-administer."
	color = "#C845DC"
	overdose_threshold = REAGENTS_OVERDOSE/30
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/25
	custom_metabolism = REAGENTS_METABOLISM * 0.5
	scannable = TRUE

/datum/reagent/medicine/peridaxon_plus/on_mob_add(mob/living/L, metabolism)
	if(TIMER_COOLDOWN_CHECK(L, name))
		return
	L.adjustCloneLoss(5*effect_str)

/datum/reagent/medicine/peridaxon_plus/on_mob_delete(mob/living/L, metabolism)
	TIMER_COOLDOWN_START(L, name, 30 SECONDS)

/datum/reagent/medicine/peridaxon_plus/on_mob_life(mob/living/L, metabolism)
	L.reagents.add_reagent(/datum/reagent/toxin,5)
	L.adjustStaminaLoss(10*effect_str)
	if(!ishuman(L))
		return ..()
	var/mob/living/carbon/human/H = L
	for(var/datum/internal_organ/I in H.internal_organs)
		if(I.damage)
			I.heal_organ_damage(2*effect_str)
	return ..()

/datum/reagent/medicine/peridaxon_plus/overdose_process(mob/living/L, metabolism)
	L.apply_damage(15*effect_str, TOX)

/datum/reagent/peridaxon_plus/overdose_crit_process(mob/living/L, metabolism) //wiki editor sez: fix your type paths what fuck
	L.apply_damages(15*effect_str, TOX) //Ya triple-clicked. Ya shouldn'ta did that.

Bicaridine

/datum/reagent/medicine/bicaridine
	name = "Bicaridine"
	description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
	color = "#E8756C"
	purge_list = list(/datum/reagent/medicine/ryetalyn)
	purge_rate = 1
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	scannable = TRUE

/datum/reagent/medicine/bicaridine/on_mob_life(mob/living/L, metabolism)
	L.heal_limb_damage(effect_str, 0)
	if(volume > 10)
		L.reagent_pain_modifier -= PAIN_REDUCTION_VERY_LIGHT
	if(volume > 20)
		L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT
		L.heal_limb_damage(0.5*effect_str, 0)
	return ..()

/datum/reagent/medicine/bicaridine/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, BURN)

/datum/reagent/medicine/bicaridine/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(effect_str, 3*effect_str, 2*effect_str)

Meralyne

/datum/reagent/medicine/meralyne
	name = "Meralyne"
	description = "Meralyne is a concentrated form of bicardine and can be used to treat extensive blunt trauma."
	color = "#E6666C"
	overdose_threshold = REAGENTS_OVERDOSE*0.5
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL*0.5
	scannable = TRUE
	purge_list = list(/datum/reagent/medicine/oxycodone)
	purge_rate = 0.2

/datum/reagent/medicine/meralyne/on_mob_life(mob/living/L, metabolism)
	L.heal_limb_damage(2*effect_str, 0)
	if(volume > 5)
		L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT
	if(volume > 10)
		L.reagent_pain_modifier -= PAIN_REDUCTION_LIGHT
		L.heal_limb_damage(1.5*effect_str, 0)
	return ..()

/datum/reagent/medicine/meralyne/overdose_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, BURN)

/datum/reagent/medicine/meralyne/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(2*effect_str, 6*effect_str, 4*effect_str)

Quick Clot

/datum/reagent/medicine/quickclot
	name = "Quick Clot"
	description = "A chemical designed to quickly arrest all sorts of bleeding by encouraging coagulation. Can rectify internal bleeding at cryogenic temperatures."
	color = "#CC00FF"
	overdose_threshold = REAGENTS_OVERDOSE/2 //Was 4, now 6 //Now 15
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/2
	scannable = TRUE //scannable now.  HUZZAH.
	custom_metabolism = REAGENTS_METABOLISM * 0.25

/datum/reagent/medicine/quickclot/on_mob_life(mob/living/L, metabolism)
	L.blood_volume += 0.2
	if(!ishuman(L) || L.bodytemperature > 169) //only heals IB at cryogenic temperatures.
		return ..()
	var/mob/living/carbon/human/H = L
	for(var/datum/limb/X in H.limbs)
		for(var/datum/wound/W in X.wounds)
			if(W.internal)
				W.damage = max(0, W.damage - (effect_str))
				X.update_damages()
				if (X.update_icon())
					X.owner.UpdateDamageIcon(1)
	return ..()


/datum/reagent/medicine/quickclot/overdose_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, BRUTE)

/datum/reagent/medicine/quickclot/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(0, 2*effect_str, 2*effect_str)

Quick Clot Plus

/datum/reagent/medicine/quickclotplus
	name = "Quick Clot Plus"
	description = "A chemical designed to quickly and painfully remove internal bleeding by encouraging coagulation. Should not be self-administered."
	color = "#CC00FF"
	overdose_threshold = REAGENTS_OVERDOSE/5 //Was 4, now 6 //Now 15 //Now 6 again, yay oldQC
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/5 //10u
	scannable = TRUE
	custom_metabolism = REAGENTS_METABOLISM * 2.5

/datum/reagent/medicine/quickclotplus/on_mob_add(mob/living/L, metabolism)
	if(TIMER_COOLDOWN_CHECK(L, name))
		return
	L.adjustCloneLoss(5*effect_str)

/datum/reagent/medicine/quickclotplus/on_mob_delete(mob/living/L, metabolism)
	TIMER_COOLDOWN_START(L, name, 30 SECONDS)

/datum/reagent/medicine/quickclotplus/on_mob_life(mob/living/L, metabolism)
	var/mob/living/carbon/human/H = L
	for(var/datum/limb/X in H.limbs)
		for(var/datum/wound/W in X.wounds)
			if(W.internal)
				W.damage = max(0, W.damage - (2.5*effect_str))
				X.update_damages()
				if (X.update_icon())
					X.owner.UpdateDamageIcon(1)
	L.reagents.add_reagent(/datum/reagent/toxin,5)
	L.reagent_shock_modifier -= PAIN_REDUCTION_VERY_HEAVY
	L.adjustStaminaLoss(15*effect_str)
	return ..()

/datum/reagent/medicine/quickclotplus/overdose_process(mob/living/L, metabolism)
	L.apply_damage(1.5*effect_str, TOX)
	L.blood_volume -= 4

/datum/reagent/medicine/quickclotplus/overdose_crit_process(mob/living/L, metabolism)
	L.blood_volume -= 20

Nanoblood

/datum/reagent/medicine/nanoblood
	name = "Nanoblood"
	description = "A chemical designed to massively boost the body's natural blood restoration rate. Causes fatigue and minor toxic effects."
	color = "#CC00FF"
	overdose_threshold = REAGENTS_OVERDOSE/5 //6u
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/5 //10u
	scannable = TRUE

/datum/reagent/medicine/nanoblood/on_mob_life(mob/living/L, metabolism)
	L.blood_volume += 2.4
	L.adjustToxLoss(effect_str)
	L.adjustStaminaLoss(6*effect_str)
	if(L.blood_volume < BLOOD_VOLUME_OKAY)
		L.blood_volume += 2.4
	if(L.blood_volume < BLOOD_VOLUME_BAD)
		L.blood_volume = (BLOOD_VOLUME_BAD+1)
		L.reagents.add_reagent(/datum/reagent/toxin,25)
		L.AdjustSleeping(100)
	return ..()

/datum/reagent/medicine/nanoblood/overdose_process(mob/living/L, metabolism)
	L.apply_damage(1.5*effect_str, TOX)

/datum/reagent/medicine/nanoblood/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(3*effect_str, TOX)

Hyperzine

/datum/reagent/medicine/hyperzine
	name = "Hyperzine"
	description = "Hyperzine is a highly effective, muscle and adrenal stimulant that massively accelerates metabolism.  May cause heart damage"
	color = "#C8A5DC" // rgb: 200, 165, 220
	overdose_threshold = REAGENTS_OVERDOSE/5
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL/5
	scannable = TRUE
	purge_list = list(/datum/reagent/medicine/dexalinplus) //Does this purge any specific chems?
	purge_rate = 15 //rate at which it purges specific chems
	trait_flags = TACHYCARDIC

/datum/reagent/medicine/hyperzine/on_mob_add(mob/living/L, metabolism)
	. = ..()
	L.add_movespeed_modifier(type, TRUE, 0, NONE, TRUE, -1)

/datum/reagent/medicine/hyperzine/on_mob_delete(mob/living/L, metabolism)
	L.remove_movespeed_modifier(type)
	var/amount = current_cycle * 2
	L.adjustOxyLoss(amount)
	L.adjustStaminaLoss(amount * 1.5)
	if(L.stat == DEAD)
		var/death_message = span_danger("Your body is unable to bear the strain. The last thing you feel, aside from crippling exhaustion, is an explosive pain in your chest as you drop dead. It's a sad thing your adventures have ended here!")
		if(iscarbon(L))
			var/mob/living/carbon/C = L
			if(C.species.species_flags & NO_PAIN)
				death_message = span_danger("Your body is unable to bear the strain. The last thing you feel as you drop dead is utterly crippling exhaustion. It's a sad thing your adventures have ended here!")

		to_chat(L, "[death_message]")
	else
		switch(amount)
			if(4 to 20)
				to_chat(L, span_warning("You feel a bit tired."))
			if(21 to 50)
				L.Paralyze(amount * 2)
				to_chat(L, span_danger("You collapse as a sudden wave of fatigue washes over you."))
			if(50 to INFINITY)
				L.Unconscious(amount * 2)
				to_chat(L, span_danger("Your world convulses as a wave of extreme fatigue washes over you!")) //when hyperzine is removed from the body, there's a backlash as it struggles to transition and operate without the drug

	return ..()

/datum/reagent/medicine/hyperzine/on_mob_life(mob/living/L, metabolism)
	if(iscarbon(L))
		var/mob/living/carbon/C = L
		C.adjust_nutrition(-volume * 1.5*effect_str)
	if(prob(1))
		L.emote(pick("twitch","blink_r","shiver"))
		if(ishuman(L))
			var/mob/living/carbon/human/H = L
			var/datum/internal_organ/heart/F = H.internal_organs_by_name["heart"]
			F.take_damage(effect_str, TRUE)
	return ..()

/datum/reagent/medicine/hyperzine/overdose_process(mob/living/L, metabolism)
	if(ishuman(L))
		L.jitter(5)
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
		if(E)
			E.take_damage(0.5*effect_str, TRUE)
	if(prob(10))
		L.emote(pick("twitch", "blink_r", "shiver"))

/datum/reagent/medicine/hyperzine/overdose_crit_process(mob/living/L, metabolism)
	if(ishuman(L))
		L.jitter(10)
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
		if(E)
			E.take_damage(2*effect_str, TRUE)
	if(prob(25))
		L.emote(pick("twitch", "blink_r", "shiver"))

Ultrazine

/datum/reagent/medicine/ultrazine
	name = "Ultrazine"
	description = "A highly-potent, long-lasting combination CNS and muscle stimulant. Extremely addictive."
	color = "#C8A5DC" // rgb: 200, 165, 220
	custom_metabolism = REAGENTS_METABOLISM * 0.0835
	overdose_threshold = 10
	overdose_crit_threshold = 20
	addiction_threshold = 0.4 // Adios Addiction Virus
	taste_multi = 2

/datum/reagent/medicine/ultrazine/on_mob_add(mob/living/L, metabolism)
	. = ..()
	L.add_movespeed_modifier(type, TRUE, 0, NONE, TRUE, -1)

/datum/reagent/medicine/ultrazine/on_mob_delete(mob/living/L, metabolism)
	L.remove_movespeed_modifier(type)

/datum/reagent/medicine/ultrazine/on_mob_life(mob/living/L, metabolism)
	if(prob(50))
		L.AdjustParalyzed(-20)
		L.AdjustStun(-20)
		L.AdjustUnconscious(-20)
	L.adjustStaminaLoss(-2*effect_str)
	if(prob(2))
		L.emote(pick("twitch","blink_r","shiver"))
	return ..()

/datum/reagent/medicine/ultrazine/addiction_act_stage1(mob/living/L, metabolism)
	if(prob(10))
		to_chat(L, span_notice("[pick("You could use another hit.", "More of that would be nice.", "Another dose would help.", "One more dose wouldn't hurt", "Why not take one more?")]"))
	if(prob(5))
		L.emote(pick("twitch","blink_r","shiver"))
		L.adjustStaminaLoss(20)
	if(prob(20))
		L.hallucination += 10

/datum/reagent/medicine/ultrazine/addiction_act_stage2(mob/living/L, metabolism)
	if(prob(10))
		to_chat(L, span_warning("[pick("It's just not the same without it.", "You could use another hit.", "You should take another.", "Just one more.", "Looks like you need another one.")]"))
	if(prob(5))
		L.emote("me", EMOTE_VISIBLE, pick("winces slightly.", "grimaces."))
		L.adjustStaminaLoss(35)
		L.Stun(20)
	if(prob(20))
		L.hallucination += 15
		L.AdjustConfused(60)

/datum/reagent/medicine/ultrazine/addiction_act_stage3(mob/living/L, metabolism)
	if(prob(10))
		to_chat(L, span_warning("[pick("You need more.", "It's hard to go on like this.", "You want more. You need more.", "Just take another hit. Now.", "One more.")]"))
	if(prob(5))
		L.emote("me", EMOTE_VISIBLE, pick("winces.", "grimaces.", "groans!"))
		L.Stun(30)
	if(prob(20))
		L.hallucination += 20
		L.AdjustConfused(10 SECONDS)
		L.dizzy(60)
	L.adjustToxLoss(0.1*effect_str)
	L.adjustBrainLoss(0.1*effect_str, TRUE)

/datum/reagent/medicine/ultrazine/addiction_act_stage4(mob/living/L, metabolism)
	if(prob(10))
		to_chat(L, span_danger("[pick("You need another dose, now. NOW.", "You can't stand it. You have to go back. You have to go back.", "You need more. YOU NEED MORE.", "MORE", "TAKE MORE.")]"))
	if(prob(5))
		L.emote("me", EMOTE_VISIBLE, pick("groans painfully!", "contorts with pain!"))
		L.Stun(80)
		L.do_jitter_animation(200)
	if(prob(20))
		L.hallucination += 30
		L.AdjustConfused(14 SECONDS)
		L.dizzy(80)
	L.adjustToxLoss(0.3*effect_str)
	L.adjustBrainLoss(0.1*effect_str, TRUE)
	if(prob(15) && ishuman(L))
		var/mob/living/carbon/human/H = L
		var/affected_organ = pick("heart","lungs","liver","kidneys")
		var/datum/internal_organ/I =  H.internal_organs_by_name[affected_organ]
		I.take_damage(5.5*effect_str)

/datum/reagent/medicine/ultrazine/overdose_process(mob/living/L, metabolism)
	if(ishuman(L))
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
		if(E)
			E.take_damage(0.5*effect_str, TRUE)
	else
		L.adjustToxLoss(0.5*effect_str)
	if(prob(10))
		L.emote(pick("twitch", "blink_r", "shiver"))

/datum/reagent/medicine/ultrazine/overdose_crit_process(mob/living/L, metabolism)
	if(!ishuman(L))
		L.adjustToxLoss(1.5*effect_str)
	else
		var/mob/living/carbon/human/H = L
		var/datum/internal_organ/heart/E = H.internal_organs_by_name["heart"]
		if(E)
			E.take_damage(1.5*effect_str, TRUE)

Cryoxadone

/datum/reagent/medicine/cryoxadone
	name = "Cryoxadone"
	description = "A chemical mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 170K for it to metabolise correctly."
	reagent_state = LIQUID
	color = "#C8A5DC" // rgb: 200, 165, 220
	scannable = TRUE
	taste_description = "sludge"
	trait_flags = BRADYCARDICS

/datum/reagent/medicine/cryoxadone/on_mob_life(mob/living/L, metabolism)
	if(L.bodytemperature < 170)
		L.adjustCloneLoss(-effect_str)
		L.adjustOxyLoss(-effect_str)
		L.heal_limb_damage(effect_str,effect_str)
		L.adjustToxLoss(-effect_str)
	return ..()

Clonexadone

/datum/reagent/medicine/clonexadone
	name = "Clonexadone"
	description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' the cloning process when used in conjunction with a cryo tube."
	color = "#C8A5DC" // rgb: 200, 165, 220
	scannable = TRUE
	taste_description = "muscle"
	trait_flags = BRADYCARDICS

/datum/reagent/medicine/clonexadone/on_mob_life(mob/living/L, metabolism)
	if(L.bodytemperature < 170)
		L.adjustCloneLoss(-3*effect_str)
		L.adjustOxyLoss(-3*effect_str)
		L.heal_limb_damage(3*effect_str,3*effect_str)
		L.adjustToxLoss(-3*effect_str)

	return ..()

Rezadone

/datum/reagent/medicine/rezadone
	name = "Rezadone"
	description = "A powder derived from fish toxin, this substance can effectively treat genetic damage in humanoids, though excessive consumption has side effects."
	reagent_state = SOLID
	color = "#669900" // rgb: 102, 153, 0
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	scannable = TRUE
	taste_description = "fish"

/datum/reagent/medicine/rezadone/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 15)
			L.adjustCloneLoss(-effect_str)
			L.heal_limb_damage(effect_str,effect_str)
		if(16 to 35)
			L.adjustCloneLoss(-2*effect_str)
			L.heal_limb_damage(2*effect_str,effect_str)

			L.status_flags &= ~DISFIGURED
			if(ishuman(L))
				var/mob/living/carbon/human/H = L
				H.name = H.get_visible_name()
		if(35 to INFINITY)
			L.adjustToxLoss(effect_str)
			L.dizzy(5)
			L.jitter(5)
	return ..()

/datum/reagent/medicine/rezadone/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/rezadone/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, TOX)

Spaceacillin

/datum/reagent/medicine/spaceacillin
	name = "Spaceacillin"
	description = "An all-purpose antiviral agent."
	color = "#C8A5DC" // rgb: 200, 165, 220
	custom_metabolism = REAGENTS_METABOLISM * 0.05
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	scannable = TRUE

/datum/reagent/medicine/spaceacillin/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/spaceacillin/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, TOX)

Polyhexanide

/datum/reagent/medicine/polyhexanide
	name = "Polyhexanide"
	description = "A sterilizing agent designed for internal use. Powerful, but dangerous."
	color = "#C8A5DC" // rgb: 200, 165, 220
	custom_metabolism = REAGENTS_METABOLISM * 2
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL
	scannable = TRUE

/datum/reagent/medicine/polyhexanide/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 9)
			L.adjustToxLoss(effect_str)
			L.adjustDrowsyness(5)
		if(10 to 50)
			L.adjustToxLoss(1.25*effect_str)
			L.Sleeping(10 SECONDS)
		if(51 to INFINITY)
			L.adjustToxLoss((current_cycle/10-4.6)*effect_str) //why yes, the sleeping stops after it stops working. Yay screaming patients running off!
	return ..()

/datum/reagent/medicine/polyhexanide/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, TOX)

Larvaway

/datum/reagent/medicine/larvaway
	name = "Larvaway"
	description = "A proprietary blend of antibiotics and antifungal agents designed to inhibit the growth of xenomorph embryos. Builds up toxicity over time."
	color = "#C8A5DC" // rgb: 200, 165, 220
	custom_metabolism = REAGENTS_METABOLISM * 0.5
	overdose_threshold = REAGENTS_OVERDOSE * 0.5
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 0.5
	scannable = TRUE

/datum/reagent/medicine/larvaway/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 100)
			L.adjustToxLoss(0.5*effect_str)
			if(prob(25))
				L.adjustStaminaLoss(0.5*effect_str)
		if(101 to 200)
			L.adjustToxLoss(effect_str)
			if(prob(25))
				L.adjustStaminaLoss(20*effect_str)
		if(201 to INFINITY)
			L.adjustToxLoss(3*effect_str)
	return ..()

/datum/reagent/medicine/larvaway/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/larvaway/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, TOX)

Ethylredoxrazine

/datum/reagent/medicine/ethylredoxrazine	// FUCK YOU, ALCOHOL
	name = "Ethylredoxrazine"
	description = "A powerful oxidizer that reacts with ethanol."
	reagent_state = SOLID
	color = "#605048" // rgb: 96, 80, 72
	overdose_threshold = REAGENTS_OVERDOSE
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL

/datum/reagent/medicine/ethylredoxrazine/on_mob_life(mob/living/L, metabolism)
	L.dizzy(-1)
	L.adjustDrowsyness(-1)
	L.stuttering = max(L.stuttering-1, 0)
	L.AdjustConfused(-20)
	var/mob/living/carbon/C = L
	C.drunkenness = max(C.drunkenness-4, 0)
	L.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 0.5*effect_str, 0, 1)
	return ..()

/datum/reagent/medicine/ethylredoxrazine/overdose_process(mob/living/L, metabolism)
	L.apply_damage(effect_str, TOX)

/datum/reagent/medicine/ethylredoxrazine/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damage(2*effect_str, TOX)

Hypervene

/datum/reagent/hypervene // this isn't under /medicine so things that purge /datum/reagent/medicine like neuro/larval don't purge it
	name = "Hypervene"
	description = "Quickly purges the body of toxin damage, radiation and all other chemicals. Causes significant pain."
	color = "#19C832"
	overdose_threshold = REAGENTS_OVERDOSE * 0.5
	overdose_crit_threshold = REAGENTS_OVERDOSE_CRITICAL * 0.5
	custom_metabolism = REAGENTS_METABOLISM * 5
	purge_list = list(/datum/reagent/medicine, /datum/reagent/toxin, /datum/reagent/zombium)
	purge_rate = 5
	scannable = TRUE
	taste_description = "punishment"
	taste_multi = 8

/datum/reagent/hypervene/on_mob_life(mob/living/L, metabolism)
	L.reagent_shock_modifier -= PAIN_REDUCTION_HEAVY //Significant pain while metabolized.
	if(prob(5)) //causes vomiting
		L.vomit()
	return ..()

/datum/reagent/hypervene/overdose_process(mob/living/L, metabolism)
	L.apply_damages(effect_str, effect_str)
	if(prob(10)) //heavy vomiting
		L.vomit()
	L.reagent_shock_modifier -= PAIN_REDUCTION_VERY_HEAVY * 1.25//Massive pain.

/datum/reagent/hypervene/overdose_crit_process(mob/living/L, metabolism)
	L.apply_damages(2*effect_str, 2*effect_str)
	if(prob(50)) //violent vomiting
		L.vomit()
	L.reagent_shock_modifier -= PAIN_REDUCTION_VERY_HEAVY * 4 //Unlimited agony.

Roulettium

/datum/reagent/medicine/roulettium
	name = "Roulettium"
	description = "The concentrated essence of unga. Unsafe to ingest in any quantity"
	color = "#19C832"
	custom_metabolism = REAGENTS_METABOLISM * 0.5
	taste_description = "Poor life choices"

/datum/reagent/medicine/roulettium/on_mob_life(mob/living/L, metabolism)
	L.reagent_shock_modifier += PAIN_REDUCTION_VERY_HEAVY * 4
	L.adjustToxLoss(-30*effect_str)
	L.heal_limb_damage(30*effect_str, 30*effect_str)
	L.adjustStaminaLoss(-30*effect_str)
	L.AdjustStun(-100)
	if(prob(5))
		L.adjustBruteLoss(1200*effect_str) //the big oof. No, it's not kill or gib, I want them to nugget.

Lemoline

/datum/reagent/medicine/lemoline
	name = "Lemoline"
	description = "A concentrated set of powders used to enhance other medicine in chemical recipes. Has no use on its own."
	reagent_state = LIQUID
	color = "#66801e"
	taste_description = "piss"

Bihexajuline

/datum/reagent/medicine/bihexajuline
	name = "Bihexajuline"
	description = "Accelerates natural bone repair in a low temperature environment. Causes severe pain."
	color = "#DFDFDF"
	taste_description = "skim milk"
	scannable = TRUE
	overdose_threshold = REAGENTS_OVERDOSE

/datum/reagent/medicine/bihexajuline/on_mob_life(mob/living/L, metabolism)
	. = ..()
	if(!ishuman(L))
		return
	var/mob/living/carbon/human/host = L
	host.reagent_shock_modifier -= PAIN_REDUCTION_VERY_HEAVY //oof ow ouch
	if(host.bodytemperature < 170)
		for(var/datum/limb/limb_to_fix AS in host.limbs)
			if(limb_to_fix.limb_status & (LIMB_BROKEN | LIMB_SPLINTED | LIMB_STABILIZED))
				limb_to_fix.remove_limb_flags(LIMB_BROKEN | LIMB_SPLINTED | LIMB_STABILIZED)
				limb_to_fix.add_limb_flags(LIMB_REPAIRED)
				break

/datum/reagent/medicine/bihexajuline/overdose_process(mob/living/L, metabolism)
	if(!ishuman(L))
		return
	var/mob/living/carbon/human/host = L
	for(var/datum/limb/limb_to_unfix AS in host.limbs)
		if(limb_to_unfix.limb_status & (LIMB_BROKEN | LIMB_SPLINTED | LIMB_STABILIZED | LIMB_DESTROYED | LIMB_AMPUTATED))
			continue
		limb_to_unfix.fracture()
		break

Research-Related

Research precursor

/datum/reagent/medicine/research
	name = "Research precursor" //nothing with this subtype should be added to vendors
	taste_description = "bitterness"
	reagent_state = LIQUID
	taste_description = "bitterness"

Quietus

/datum/reagent/medicine/research/quietus
	name = "Quietus"
	description = "This is a latent poison, designed to quickly and painlessly kill you in the event that you become unable to fight. Never washes out on it's own, must be purged."
	color = "#19C832"
	custom_metabolism = 0
	scannable = TRUE
	taste_description = "Victory"

/datum/reagent/medicine/research/quietus/on_mob_add(mob/living/L, metabolism)
	to_chat(L, span_userdanger("You feel like this shot will negatively affect your revival prospects."))

/datum/reagent/medicine/research/quietus/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 59)
			L.adjustStaminaLoss(1*effect_str)
			if(prob(5))
				to_chat(L, span_notice("You feel weakened by a poison."))
		if(60)
			to_chat(L, span_warning("You feel the poison settle into your body."))
		if(61 to INFINITY)
			if(L.stat == UNCONSCIOUS)
				L.adjustOxyLoss(25*effect_str)
				to_chat(L, span_userdanger("You fade into blackness as your lungs seize up!"))
			if(prob(5))
				L.adjustStaminaLoss(1*effect_str)
	return ..()
	
/datum/reagent/medicine/research/quietus/on_mob_delete(mob/living/L, metabolism)
	to_chat(L, span_danger("You convulse as your body violently rejects the suicide drug!"))
	L.adjustToxLoss(30*effect_str)

Somolent

/datum/reagent/medicine/research/somolent
	name = "Somolent"
	description = "This is a highly potent regenerative drug, designed to heal critically injured personnel. Only functions on unconscious or sleeping people."
	color = "#19C832"
	scannable = TRUE
	overdose_threshold = REAGENTS_OVERDOSE
	taste_description = "naptime"

/datum/reagent/medicine/research/somolent/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 50)
			if(L.stat == UNCONSCIOUS)
				L.heal_limb_damage(0.2*current_cycle*effect_str, 0.2*current_cycle*effect_str)
			if(prob(20) && L.stat != UNCONSCIOUS)
				to_chat(L, span_notice("You feel as though you should be sleeping for the medicine to work."))
		if(51 to INFINITY)
			if(L.stat == UNCONSCIOUS)
				L.heal_limb_damage(10*effect_str, 10*effect_str)
				L.adjustCloneLoss(-0.1*effect_str-(0.02*(L.maxHealth - L.health)))
				holder.remove_reagent(/datum/reagent/medicine/research/somolent, 0.6)
	return ..()

/datum/reagent/medicine/research/somolent/overdose_process(mob/living/L, metabolism)
	holder.remove_reagent(/datum/reagent/medicine/research/somolent, 1)

Medical nanites

/datum/reagent/medicine/research/medicalnanites
	name = "Medical nanites"
	description = "These are a batch of construction nanites altered for in-vivo replication. They can heal wounds using the iron present in the bloodstream. Medical care is recommended during injection."
	color = "#19C832"
	custom_metabolism = 0
	scannable = TRUE
	taste_description = "metal, followed by mild burning"
	overdose_threshold = REAGENTS_OVERDOSE * 1.2 //slight buffer to keep you safe

/datum/reagent/medicine/research/medicalnanites/on_mob_add(mob/living/L, metabolism)
	to_chat(L, span_userdanger("You feel like you should stay near medical help until this shot settles in."))

/datum/reagent/medicine/research/medicalnanites/on_mob_life(mob/living/L, metabolism)
	switch(current_cycle)
		if(1 to 150)
			L.take_limb_damage(0.015*current_cycle*effect_str, 0.015*current_cycle*effect_str)
			L.adjustToxLoss(1*effect_str)
			L.adjustStaminaLoss((1.5)*effect_str)
			L.reagents.add_reagent(/datum/reagent/medicine/research/medicalnanites, 0.20)
			if(prob(5))
				to_chat(L, span_notice("You feel intense itching!"))
		if(151)
			to_chat(L, span_warning("The pain rapidly subsides. Looks like they've adapted to you."))
		if(152 to INFINITY)
			if(volume < 30) //smol injection will self-replicate up to 30u using 240u of blood.
				L.reagents.add_reagent(/datum/reagent/medicine/research/medicalnanites, 0.15)
				L.blood_volume -= 2
			
			if(volume < 35) //allows 10 ticks of healing for 20 points of free heal to lower scratch damage bloodloss amounts.
				L.reagents.add_reagent(/datum/reagent/medicine/research/medicalnanites, 0.1)
			
			if (volume >5 && L.getBruteLoss()) //Unhealed IB wasting nanites is an INTENTIONAL feature.
				L.heal_limb_damage(2*effect_str, 0)
				L.adjustToxLoss(0.1*effect_str)
				holder.remove_reagent(/datum/reagent/medicine/research/medicalnanites, 0.5)
				if(prob(40))
					to_chat(L, span_notice("Your cuts and bruises begin to scab over rapidly!"))
				
			if (volume > 5 && L.getFireLoss())
				L.heal_limb_damage(0, 2*effect_str)
				L.adjustToxLoss(0.1*effect_str)
				holder.remove_reagent(/datum/reagent/medicine/research/medicalnanites, 0.5)
				if(prob(40))
					to_chat(L, span_notice("Your burns begin to slough off, revealing healthy tissue!"))
	return ..()

/datum/reagent/medicine/research/medicalnanites/overdose_process(mob/living/L, metabolism)
	L.adjustToxLoss(effect_str) //softcap VS injecting massive amounts of medical nanites for the healing factor with no downsides. Still doable if you're clever about it.
	holder.remove_reagent(/datum/reagent/medicine/research/medicalnanites, 0.25)

/datum/reagent/medicine/research/medicalnanites/on_mob_delete(mob/living/L, metabolism)
	to_chat(L, span_userdanger("Your nanites have been fully purged! They no longer affect you."))

Stimulon

/datum/reagent/medicine/research/stimulon
	name = "Stimulon"
	description = "A chemical designed to boost running by driving your body beyond it's normal limits. Can have unpredictable side effects, caution recommended."
	color = "#19C832"
	custom_metabolism = 0
	scannable = TRUE

/datum/reagent/medicine/research/stimulon/on_mob_add(mob/living/L, metabolism)
	to_chat(L, span_userdanger("You feel jittery and fast! Time to MOVE!"))
	. = ..()
	L.add_movespeed_modifier(type, TRUE, 0, NONE, TRUE, -1)
	L.adjustCloneLoss(10*effect_str)

/datum/reagent/medicine/research/stimulon/on_mob_delete(mob/living/L, metabolism)
	L.remove_movespeed_modifier(type)
	L.Paralyze(20)
	to_chat(L, span_warning("You reel as the stimulant departs your bloodstream!"))

/datum/reagent/medicine/research/stimulon/on_mob_life(mob/living/L, metabolism)
	L.adjustStaminaLoss(1*effect_str)
	L.take_limb_damage(rand(0.5*effect_str, 4*effect_str), 0)
	L.adjustCloneLoss(rand (0, 5) * effect_str * current_cycle * 0.02)
	if(prob(20))
		L.emote(pick("twitch","blink_r","shiver"))
	if(volume < 100) //THERE IS NO "MINIMUM SAFE DOSE" MUAHAHAHA!
		L.reagents.add_reagent(/datum/reagent/medicine/research/stimulon, 0.5)
	switch(current_cycle)
		if(20)//avg cloneloss of 1/tick and 10 additional units made
			to_chat(L, span_userdanger("You start to ache and cramp as your muscles wear out. You should probably remove this drug soon."))
		if (21 to INFINITY)
			L.jitter(5)
	return ..()

Other

Paint

/datum/reagent/paint
	name = "Paint"
	reagent_state = 2
	color = "#808080"
	description = "This paint will only adhere to floor tiles."

/datum/reagent/paint/reaction_turf(turf/T, volume)
	if(!istype(T) || isspaceturf(T))
		return
	T.color = color

/datum/reagent/paint/reaction_obj(obj/O, volume)
	. = ..()
	if(istype(O,/obj/item/light_bulb))
		O.color = color

Red Paint

/datum/reagent/paint/red
	name = "Red Paint"
	color = "#FE191A"

Green Paint

/datum/reagent/paint/green
	name = "Green Paint"
	color = "#18A31A"

Blue Paint

/datum/reagent/paint/blue
	name = "Blue Paint"
	color = "#247CFF"

Yellow Paint

/datum/reagent/paint/yellow
	name = "Yellow Paint"
	color = "#FDFE7D"

Violet Paint

/datum/reagent/paint/violet
	name = "Violet Paint"
	color = "#CC0099"

Black Paint

/datum/reagent/paint/black
	name = "Black Paint"
	color = "#333333"

White Paint

/datum/reagent/paint/white
	name = "White Paint"
	color = "#F0F8FF"

Paint Remover

/datum/reagent/paint/remover
	name = "Paint Remover"
	description = "Paint remover is used to remove floor paint from floor tiles."
	reagent_state = 2
	color = "#808080"

/datum/reagent/paint/remover/reaction_turf(turf/T, volume)
	if(istype(T) && T.icon != initial(T.icon))
		T.icon = initial(T.icon)


Cool Images and other misc junk because this is MY page i can do what I WANT

Tgmc hivemind core and mind.gif Tgmc hivemind materialisation.gif Maturity4.gif

Tgmc spriter mind.PNG