Участник:DragonTrance
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.
Discord if you wanna talk: Cyanosis#3864
Current Wiki Goals:
- Spruce up the TGMC:Guide_to_chemistry to include relevant reactions and reagents
- Create TGMC:Guide_to_Food and TGMC:Guide_to_Drinks pages
- TGMC:Guide_to_Research
- Create something that discusses minimap icons and what they mean?
- Remake TGMC:Hivemind because it's kinda lackin
- 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 | ||
TerraGov Marines | Command | Captain, Field Commander, Staff Officer, Pilot Officer |
Engineering and Supply | Chief Ship Engineer, Requisitions Officer, Ship Technician | |
Medical | Chief Medical Officer, Medical Officer, Researcher | |
Marines | Squad Leader, Mech Pilot, Squad Smartgunner, Squad Engineer, Squad Corpsman, Squad Marine | |
Civilians | Corporate Liaison | |
Silicon-Based | Combat robots, Synthetic, AI | |
Xenomorphs | Tier 0 | Larva, Minions |
Tier 1 | Drone, Runner, Defender, Baneling, Sentinel | |
Tier 2 | Hivelord, Carrier, Hunter, Wraith, Bull, Warrior, Puppeteer, Spitter | |
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, |
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[править | править код]
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)