From 14e2eb8eb049db7c3bb4dcc04a372fba4a130517 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 8 Nov 2016 10:26:29 -0500 Subject: [PATCH] consumables --- .../food_and_drinks/drinks/drinks/bottle.dm | 2 +- .../recipes/tablecraft/recipes_table.dm | 4 +- code/modules/mob/living/carbon/human/life.dm | 2 +- .../modules/projectiles/projectile/bullets.dm | 2 +- code/modules/reagents/chemistry/reagents.dm | 2 - .../reagents/chemistry/reagents/alcohol.dm | 215 ++-- .../reagents/chemistry/reagents/disease.dm | 6 +- .../reagents/chemistry/reagents/drink_base.dm | 6 +- .../reagents/chemistry/reagents/drink_cold.dm | 38 +- .../reagents/chemistry/reagents/drinks.dm | 106 +- .../reagents/chemistry/reagents/food.dm | 970 +++++++++--------- .../reagents/chemistry/reagents/medicine.dm | 2 +- .../reagents/chemistry/reagents/misc.dm | 34 + .../reagents/chemistry/reagents/toxins.dm | 67 -- code/modules/surgery/organs/organ_internal.dm | 4 +- 15 files changed, 708 insertions(+), 752 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 7ee7509d8f1..53130d972f4 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -284,7 +284,7 @@ desc = "A throwing weapon used to ignite things, typically filled with an accelerant. Recommended highly by rioters and revolutionaries. Light and toss." icon_state = "vodkabottle" list_reagents = list() - var/list/accelerants = list(/datum/reagent/ethanol,/datum/reagent/fuel,/datum/reagent/clf3,/datum/reagent/phlogiston, + var/list/accelerants = list(/datum/reagent/consumable/ethanol,/datum/reagent/fuel,/datum/reagent/clf3,/datum/reagent/phlogiston, /datum/reagent/napalm,/datum/reagent/hellwater,/datum/reagent/plasma,/datum/reagent/plasma_dust) var/active = 0 diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm index 005be6c1f7e..b6c943dbdab 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm @@ -31,7 +31,7 @@ /datum/crafting_recipe/cherrysandwich name = "Cherry Jelly Sandwich" reqs = list( - /datum/reagent/cherryjelly = 5, + /datum/reagent/consumable/cherryjelly = 5, /obj/item/weapon/reagent_containers/food/snacks/breadslice = 2, ) result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry @@ -49,7 +49,7 @@ /datum/crafting_recipe/jellyburger name = "Cherry Jelly Burger" reqs = list( - /datum/reagent/cherryjelly = 5, + /datum/reagent/consumable/cherryjelly = 5, /obj/item/weapon/reagent_containers/food/snacks/bun = 1, ) result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 471cb6bbf69..4685b3b3113 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -787,7 +787,7 @@ /mob/living/carbon/human/proc/has_booze() //checks if the human has ethanol or its subtypes inside for(var/A in reagents.reagent_list) var/datum/reagent/R = A - if(istype(R, /datum/reagent/ethanol)) + if(istype(R, /datum/reagent/consumable/ethanol)) return 1 return 0 diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 275e2ec94e5..9c3475d2141 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -28,7 +28,7 @@ M.AdjustConfused(20) M.AdjustEyeBlurry(20) M.AdjustDrowsy(20) - for(var/datum/reagent/ethanol/A in M.reagents.reagent_list) + for(var/datum/reagent/consumable/ethanol/A in M.reagents.reagent_list) M.AdjustParalysis(2) M.AdjustDizzy(10) M.AdjustSlur(10) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 8077b248587..1b6e2e08854 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -1,7 +1,6 @@ #define SOLID 1 #define LIQUID 2 #define GAS 3 -#define FOOD_METABOLISM 0.4 #define REM REAGENTS_EFFECT_MULTIPLIER /datum/reagent @@ -12,7 +11,6 @@ var/reagent_state = SOLID var/list/data = null var/volume = 0 - var/nutriment_factor = 0 var/metabolization_rate = REAGENTS_METABOLISM //var/list/viruses = list() var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!) diff --git a/code/modules/reagents/chemistry/reagents/alcohol.dm b/code/modules/reagents/chemistry/reagents/alcohol.dm index 59313654d35..adebb394fc0 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol.dm @@ -1,5 +1,5 @@ //ALCOHOL WOO -/datum/reagent/ethanol +/datum/reagent/consumable/ethanol name = "Ethanol" //Parent class for all alcoholic reagents. id = "ethanol" description = "A well-known alcohol with a variety of applications." @@ -10,14 +10,13 @@ var/dizzy_adj = 3 var/alcohol_perc = 1 //percentage of ethanol in a beverage 0.0 - 1.0 -/datum/reagent/ethanol/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor +/datum/reagent/consumable/ethanol/on_mob_life(mob/living/M) M.AdjustDrunk(alcohol_perc) M.AdjustDizzy(dizzy_adj) ..() -/datum/reagent/ethanol/reaction_obj(obj/O, volume) +/datum/reagent/consumable/ethanol/reaction_obj(obj/O, volume) if(istype(O,/obj/item/weapon/paper)) var/obj/item/weapon/paper/paperaffected = O paperaffected.clearpaper() @@ -30,23 +29,23 @@ else to_chat(usr, "It wasn't enough...") -/datum/reagent/ethanol/reaction_mob(mob/living/M, method=TOUCH, volume)//Splashing people with ethanol isn't quite as good as fuel. +/datum/reagent/consumable/ethanol/reaction_mob(mob/living/M, method=TOUCH, volume)//Splashing people with ethanol isn't quite as good as fuel. if(method == TOUCH) M.adjust_fire_stacks(volume / 15) -/datum/reagent/ethanol/beer +/datum/reagent/consumable/ethanol/beer name = "Beer" id = "beer" description = "An alcoholic beverage made from malted grains, hops, yeast, and water." - nutriment_factor = 2 * FOOD_METABOLISM + nutriment_factor = 2 * REAGENTS_METABOLISM color = "#664300" // rgb: 102, 67, 0 alcohol_perc = 0.2 drink_icon ="beerglass" drink_name = "Beer glass" drink_desc = "A freezing pint of beer" -/datum/reagent/ethanol/cider +/datum/reagent/consumable/ethanol/cider name = "Cider" id = "cider" description = "An alcoholic beverage derived from apples." @@ -56,7 +55,7 @@ drink_name = "Cider" drink_desc = "a refreshing glass of traditional cider" -/datum/reagent/ethanol/whiskey +/datum/reagent/consumable/ethanol/whiskey name = "Whiskey" id = "whiskey" description = "A superb and well-aged single-malt whiskey. Damn." @@ -67,14 +66,14 @@ drink_name = "Glass of whiskey" drink_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy." -/datum/reagent/ethanol/specialwhiskey +/datum/reagent/consumable/ethanol/specialwhiskey name = "Special Blend Whiskey" id = "specialwhiskey" 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 alcohol_perc = 0.5 -/datum/reagent/ethanol/gin +/datum/reagent/consumable/ethanol/gin name = "Gin" id = "gin" description = "It's gin. In space. I say, good sir." @@ -85,7 +84,7 @@ drink_name = "Glass of gin" drink_desc = "A crystal clear glass of Griffeater gin." -/datum/reagent/ethanol/absinthe +/datum/reagent/consumable/ethanol/absinthe name = "Absinthe" id = "absinthe" description = "Watch out that the Green Fairy doesn't come for you!" @@ -98,14 +97,14 @@ drink_desc = "The green fairy is going to get you now!" //copy paste from LSD... shoot me -/datum/reagent/ethanol/absinthe/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/M) M.AdjustHallucinate(5) ..() -/datum/reagent/ethanol/absinthe/overdose_process(mob/living/M, severity) +/datum/reagent/consumable/ethanol/absinthe/overdose_process(mob/living/M, severity) M.adjustToxLoss(1) -/datum/reagent/ethanol/rum +/datum/reagent/consumable/ethanol/rum name = "Rum" id = "rum" description = "Popular with the sailors. Not very popular with everyone else." @@ -117,10 +116,10 @@ drink_name = "Glass of Rum" drink_desc = "Now you want to Pray for a pirate suit, don't you?" -/datum/reagent/ethanol/rum/overdose_process(mob/living/M, severity) +/datum/reagent/consumable/ethanol/rum/overdose_process(mob/living/M, severity) M.adjustToxLoss(1) -/datum/reagent/ethanol/mojito +/datum/reagent/consumable/ethanol/mojito name = "Mojito" id = "mojito" description = "If it's good enough for Spesscuba, it's good enough for you." @@ -130,7 +129,7 @@ drink_name = "Glass of Mojito" drink_desc = "Fresh from Spesscuba." -/datum/reagent/ethanol/vodka +/datum/reagent/consumable/ethanol/vodka name = "Vodka" id = "vodka" description = "Number one drink AND fueling choice for Russians worldwide." @@ -140,7 +139,7 @@ drink_name = "Glass of vodka" drink_desc = "The glass contain wodka. Xynta." -/datum/reagent/ethanol/sake +/datum/reagent/consumable/ethanol/sake name = "Sake" id = "sake" description = "Anime's favorite drink." @@ -150,7 +149,7 @@ drink_name = "Glass of Sake" drink_desc = "A glass of Sake." -/datum/reagent/ethanol/tequila +/datum/reagent/consumable/ethanol/tequila name = "Tequila" id = "tequila" description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?" @@ -160,7 +159,7 @@ drink_name = "Glass of Tequila" drink_desc = "Now all that's missing is the weird colored shades!" -/datum/reagent/ethanol/vermouth +/datum/reagent/consumable/ethanol/vermouth name = "Vermouth" id = "vermouth" description = "You suddenly feel a craving for a martini..." @@ -170,7 +169,7 @@ drink_name = "Glass of Vermouth" drink_desc = "You wonder why you're even drinking this straight." -/datum/reagent/ethanol/wine +/datum/reagent/consumable/ethanol/wine name = "Wine" id = "wine" description = "An premium alchoholic beverage made from distilled grape juice." @@ -181,7 +180,7 @@ drink_name = "Glass of wine" drink_desc = "A very classy looking drink." -/datum/reagent/ethanol/cognac +/datum/reagent/consumable/ethanol/cognac name = "Cognac" id = "cognac" description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication." @@ -192,7 +191,7 @@ drink_name = "Glass of cognac" drink_desc = "Damn, you feel like some kind of French aristocrat just by holding this." -/datum/reagent/ethanol/suicider //otherwise known as "I want to get so smashed my liver gives out and I die from alcohol poisoning". +/datum/reagent/consumable/ethanol/suicider //otherwise known as "I want to get so smashed my liver gives out and I die from alcohol poisoning". name = "Suicider" id = "suicider" description = "An unbelievably strong and potent variety of Cider." @@ -203,7 +202,7 @@ drink_name = "Suicider" drink_desc = "You've really hit rock bottom now... your liver packed its bags and left last night." -/datum/reagent/ethanol/ale +/datum/reagent/consumable/ethanol/ale name = "Ale" id = "ale" description = "A dark alchoholic beverage made by malted barley and yeast." @@ -213,7 +212,7 @@ drink_name = "Ale glass" drink_desc = "A freezing pint of delicious Ale" -/datum/reagent/ethanol/thirteenloko +/datum/reagent/consumable/ethanol/thirteenloko name = "Thirteen Loko" id = "thirteenloko" description = "A potent mixture of caffeine and alcohol." @@ -225,7 +224,7 @@ drink_name = "Glass of Thirteen Loko" drink_desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass" -/datum/reagent/ethanol/thirteenloko/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/M) M.AdjustDrowsy(-7) M.AdjustSleeping(-2) if(M.bodytemperature > 310) @@ -236,7 +235,7 @@ /////////////////////////////////////////////////////////////////cocktail entities////////////////////////////////////////////// -/datum/reagent/ethanol/bilk +/datum/reagent/consumable/ethanol/bilk name = "Bilk" id = "bilk" description = "This appears to be beer mixed with milk. Disgusting." @@ -247,7 +246,7 @@ drink_name = "Glass of bilk" drink_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis." -/datum/reagent/ethanol/atomicbomb +/datum/reagent/consumable/ethanol/atomicbomb name = "Atomic Bomb" id = "atomicbomb" description = "Nuclear proliferation never tasted so good." @@ -258,7 +257,7 @@ drink_name = "Atomic Bomb" drink_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing." -/datum/reagent/ethanol/threemileisland +/datum/reagent/consumable/ethanol/threemileisland name = "THree Mile Island Iced Tea" id = "threemileisland" description = "Made for a woman, strong enough for a man." @@ -269,7 +268,7 @@ drink_name = "Three Mile Island Ice Tea" drink_desc = "A glass of this is sure to prevent a meltdown." -/datum/reagent/ethanol/goldschlager +/datum/reagent/consumable/ethanol/goldschlager name = "Goldschlager" id = "goldschlager" description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break." @@ -280,7 +279,7 @@ drink_name = "Glass of goldschlager" drink_desc = "100 proof that teen girls will drink anything with gold in it." -/datum/reagent/ethanol/patron +/datum/reagent/consumable/ethanol/patron name = "Patron" id = "patron" description = "Tequila with silver in it, a favorite of alcoholic women in the club scene." @@ -291,7 +290,7 @@ drink_name = "Glass of Patron" drink_desc = "Drinking patron in the bar, with all the subpar ladies." -/datum/reagent/ethanol/gintonic +/datum/reagent/consumable/ethanol/gintonic name = "Gin and Tonic" id = "gintonic" description = "An all time classic, mild cocktail." @@ -302,7 +301,7 @@ drink_name = "Gin and Tonic" drink_desc = "A mild but still great cocktail. Drink up, like a true Englishman." -/datum/reagent/ethanol/cuba_libre +/datum/reagent/consumable/ethanol/cuba_libre name = "Cuba Libre" id = "cubalibre" description = "Rum, mixed with cola. Viva la revolution." @@ -313,7 +312,7 @@ drink_name = "Cuba Libre" drink_desc = "A classic mix of rum and cola." -/datum/reagent/ethanol/whiskey_cola +/datum/reagent/consumable/ethanol/whiskey_cola name = "Whiskey Cola" id = "whiskeycola" description = "Whiskey, mixed with cola. Surprisingly refreshing." @@ -324,7 +323,7 @@ drink_name = "Whiskey Cola" drink_desc = "An innocent-looking mixture of cola and Whiskey. Delicious." -/datum/reagent/ethanol/martini +/datum/reagent/consumable/ethanol/martini name = "Classic Martini" id = "martini" description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious." @@ -335,7 +334,7 @@ drink_name = "Classic Martini" drink_desc = "Damn, the bartender even stirred it, not shook it." -/datum/reagent/ethanol/vodkamartini +/datum/reagent/consumable/ethanol/vodkamartini name = "Vodka Martini" id = "vodkamartini" description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious." @@ -346,7 +345,7 @@ drink_name = "Vodka martini" drink_desc ="A bastardisation of the classic martini. Still great." -/datum/reagent/ethanol/white_russian +/datum/reagent/consumable/ethanol/white_russian name = "White Russian" id = "whiterussian" description = "That's just, like, your opinion, man..." @@ -357,7 +356,7 @@ drink_name = "White Russian" drink_desc = "A very nice looking drink. But that's just, like, your opinion, man." -/datum/reagent/ethanol/screwdrivercocktail +/datum/reagent/consumable/ethanol/screwdrivercocktail name = "Screwdriver" id = "screwdrivercocktail" description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious." @@ -368,7 +367,7 @@ drink_name = "Screwdriver" drink_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer." -/datum/reagent/ethanol/booger +/datum/reagent/consumable/ethanol/booger name = "Booger" id = "booger" description = "Ewww..." @@ -379,7 +378,7 @@ drink_name = "Booger" drink_desc = "Ewww..." -/datum/reagent/ethanol/bloody_mary +/datum/reagent/consumable/ethanol/bloody_mary name = "Bloody Mary" id = "bloodymary" description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice." @@ -390,7 +389,7 @@ drink_name = "Bloody Mary" drink_desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder." -/datum/reagent/ethanol/gargle_blaster +/datum/reagent/consumable/ethanol/gargle_blaster name = "Pan-Galactic Gargle Blaster" id = "gargleblaster" description = "Whoah, this stuff looks volatile!" @@ -401,7 +400,7 @@ drink_name = "Pan-Galactic Gargle Blaster" drink_desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy." -/datum/reagent/ethanol/brave_bull +/datum/reagent/consumable/ethanol/brave_bull name = "Brave Bull" id = "bravebull" description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice." @@ -412,7 +411,7 @@ drink_name = "Brave Bull" drink_desc = "Tequila and Coffee liquor, brought together in a mouthwatering mixture. Drink up." -/datum/reagent/ethanol/tequila_sunrise +/datum/reagent/consumable/ethanol/tequila_sunrise name = "Tequila Sunrise" id = "tequilasunrise" description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~" @@ -423,7 +422,7 @@ drink_name = "Tequila Sunrise" drink_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..." -/datum/reagent/ethanol/toxins_special +/datum/reagent/consumable/ethanol/toxins_special name = "Toxins Special" id = "toxinsspecial" description = "This thing is FLAMING!. CALL THE DAMN SHUTTLE!" @@ -434,12 +433,12 @@ drink_name = "Toxins Special" drink_desc = "Whoah, this thing is on FIRE" -/datum/reagent/ethanol/toxins_special/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(mob/living/M) if(M.bodytemperature < 330) M.bodytemperature = min(330, M.bodytemperature + (15 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055 ..() -/datum/reagent/ethanol/beepsky_smash +/datum/reagent/consumable/ethanol/beepsky_smash name = "Beepsky Smash" id = "beepskysmash" description = "Deny drinking this and prepare for THE LAW." @@ -450,11 +449,11 @@ drink_name = "Beepsky Smash" drink_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW." -/datum/reagent/ethanol/beepsky_smash/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/M) M.Stun(1) ..() -/datum/reagent/ethanol/irish_cream +/datum/reagent/consumable/ethanol/irish_cream name = "Irish Cream" id = "irishcream" description = "Whiskey-imbued cream, what else would you expect from the Irish." @@ -465,7 +464,7 @@ drink_name = "Irish Cream" drink_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?" -/datum/reagent/ethanol/manly_dorf +/datum/reagent/consumable/ethanol/manly_dorf name = "The Manly Dorf" id = "manlydorf" description = "Beer and Ale, brought together in a delicious mix. Intended for true men only." @@ -476,7 +475,7 @@ drink_name = "The Manly Dorf" drink_desc = "A manly concotion made from Ale and Beer. Intended for true men only." -/datum/reagent/ethanol/longislandicedtea +/datum/reagent/consumable/ethanol/longislandicedtea name = "Long Island Iced Tea" id = "longislandicedtea" description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." @@ -487,7 +486,7 @@ drink_name = "Long Island Iced Tea" drink_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." -/datum/reagent/ethanol/moonshine +/datum/reagent/consumable/ethanol/moonshine name = "Moonshine" id = "moonshine" description = "You've really hit rock bottom now... your liver packed its bags and left last night." @@ -498,7 +497,7 @@ drink_name = "Moonshine" drink_desc = "You've really hit rock bottom now... your liver packed its bags and left last night." -/datum/reagent/ethanol/b52 +/datum/reagent/consumable/ethanol/b52 name = "B-52" id = "b52" description = "Coffee, Irish Cream, and congac. You will get bombed." @@ -509,7 +508,7 @@ drink_name = "B-52" drink_desc = "Kahlua, Irish Cream, and congac. You will get bombed." -/datum/reagent/ethanol/irishcoffee +/datum/reagent/consumable/ethanol/irishcoffee name = "Irish Coffee" id = "irishcoffee" description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning." @@ -520,7 +519,7 @@ drink_name = "Irish Coffee" drink_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning." -/datum/reagent/ethanol/margarita +/datum/reagent/consumable/ethanol/margarita name = "Margarita" id = "margarita" description = "On the rocks with salt on the rim. Arriba~!" @@ -531,7 +530,7 @@ drink_name = "Margarita" drink_desc = "On the rocks with salt on the rim. Arriba~!" -/datum/reagent/ethanol/black_russian +/datum/reagent/consumable/ethanol/black_russian name = "Black Russian" id = "blackrussian" description = "For the lactose-intolerant. Still as classy as a White Russian." @@ -542,7 +541,7 @@ drink_name = "Black Russian" drink_desc = "For the lactose-intolerant. Still as classy as a White Russian." -/datum/reagent/ethanol/manhattan +/datum/reagent/consumable/ethanol/manhattan name = "Manhattan" id = "manhattan" description = "The Detective's undercover drink of choice. He never could stomach gin..." @@ -553,7 +552,7 @@ drink_name = "Manhattan" drink_desc = "The Detective's undercover drink of choice. He never could stomach gin..." -/datum/reagent/ethanol/manhattan_proj +/datum/reagent/consumable/ethanol/manhattan_proj name = "Manhattan Project" id = "manhattan_proj" description = "A scienitst's drink of choice, for pondering ways to blow up the station." @@ -564,7 +563,7 @@ drink_name = "Manhattan Project" drink_desc = "A scienitst drink of choice, for thinking how to blow up the station." -/datum/reagent/ethanol/whiskeysoda +/datum/reagent/consumable/ethanol/whiskeysoda name = "Whiskey Soda" id = "whiskeysoda" description = "Ultimate refreshment." @@ -575,7 +574,7 @@ drink_name = "Whiskey Soda" drink_desc = "Ultimate refreshment." -/datum/reagent/ethanol/antifreeze +/datum/reagent/consumable/ethanol/antifreeze name = "Anti-freeze" id = "antifreeze" description = "Ultimate refreshment." @@ -586,12 +585,12 @@ drink_name = "Anti-freeze" drink_desc = "The ultimate refreshment." -/datum/reagent/ethanol/antifreeze/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/M) if(M.bodytemperature < 330) M.bodytemperature = min(330, M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055 ..() -/datum/reagent/ethanol/barefoot +/datum/reagent/consumable/ethanol/barefoot name = "Barefoot" id = "barefoot" description = "Barefoot and pregnant" @@ -602,7 +601,7 @@ drink_name = "Barefoot" drink_desc = "Barefoot and pregnant" -/datum/reagent/ethanol/snowwhite +/datum/reagent/consumable/ethanol/snowwhite name = "Snow White" id = "snowwhite" description = "A cold refreshment" @@ -613,7 +612,7 @@ drink_name = "Snow White" drink_desc = "A cold refreshment." -/datum/reagent/ethanol/demonsblood +/datum/reagent/consumable/ethanol/demonsblood name = "Demons Blood" id = "demonsblood" description = "AHHHH!!!!" @@ -625,7 +624,7 @@ drink_name = "Demons Blood" drink_desc = "Just looking at this thing makes the hair at the back of your neck stand up." -/datum/reagent/ethanol/vodkatonic +/datum/reagent/consumable/ethanol/vodkatonic name = "Vodka and Tonic" id = "vodkatonic" description = "For when a gin and tonic isn't russian enough." @@ -637,7 +636,7 @@ drink_name = "Vodka and Tonic" drink_desc = "For when a gin and tonic isn't russian enough." -/datum/reagent/ethanol/ginfizz +/datum/reagent/consumable/ethanol/ginfizz name = "Gin Fizz" id = "ginfizz" description = "Refreshingly lemony, deliciously dry." @@ -649,7 +648,7 @@ drink_name = "Gin Fizz" drink_desc = "Refreshingly lemony, deliciously dry." -/datum/reagent/ethanol/bahama_mama +/datum/reagent/consumable/ethanol/bahama_mama name = "Bahama mama" id = "bahama_mama" description = "Tropic cocktail." @@ -660,7 +659,7 @@ drink_name = "Bahama Mama" drink_desc = "Tropic cocktail" -/datum/reagent/ethanol/singulo +/datum/reagent/consumable/ethanol/singulo name = "Singulo" id = "singulo" description = "A blue-space beverage!" @@ -672,7 +671,7 @@ drink_name = "Singulo" drink_desc = "A blue-space beverage." -/datum/reagent/ethanol/sbiten +/datum/reagent/consumable/ethanol/sbiten name = "Sbiten" id = "sbiten" description = "A spicy Vodka! Might be a little hot for the little guys!" @@ -683,12 +682,12 @@ drink_name = "Sbiten" drink_desc = "A spicy mix of Vodka and Spice. Very hot." -/datum/reagent/ethanol/sbiten/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/M) if(M.bodytemperature < 360) M.bodytemperature = min(360, M.bodytemperature + (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055 ..() -/datum/reagent/ethanol/devilskiss +/datum/reagent/consumable/ethanol/devilskiss name = "Devils Kiss" id = "devilskiss" description = "Creepy time!" @@ -699,7 +698,7 @@ drink_name = "Devils Kiss" drink_desc = "Creepy time!" -/datum/reagent/ethanol/red_mead +/datum/reagent/consumable/ethanol/red_mead name = "Red Mead" id = "red_mead" description = "The true Viking drink! Even though it has a strange red color." @@ -710,7 +709,7 @@ drink_name = "Red Mead" drink_desc = "A True Vikings Beverage, though its color is strange." -/datum/reagent/ethanol/mead +/datum/reagent/consumable/ethanol/mead name = "Mead" id = "mead" description = "A Vikings drink, though a cheap one." @@ -721,7 +720,7 @@ drink_name = "Mead" drink_desc = "A Vikings Beverage, though a cheap one." -/datum/reagent/ethanol/iced_beer +/datum/reagent/consumable/ethanol/iced_beer name = "Iced Beer" id = "iced_beer" description = "A beer which is so cold the air around it freezes." @@ -732,12 +731,12 @@ drink_name = "Iced Beer" drink_desc = "A beer so frosty, the air around it freezes." -/datum/reagent/ethanol/iced_beer/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/M) if(M.bodytemperature > 270) M.bodytemperature = max(270, M.bodytemperature - (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055 ..() -/datum/reagent/ethanol/grog +/datum/reagent/consumable/ethanol/grog name = "Grog" id = "grog" description = "Watered down rum, Nanotrasen approves!" @@ -748,7 +747,7 @@ drink_name = "Grog" drink_desc = "A fine and cepa drink for Space." -/datum/reagent/ethanol/aloe +/datum/reagent/consumable/ethanol/aloe name = "Aloe" id = "aloe" description = "So very, very, very good." @@ -759,7 +758,7 @@ drink_name = "Aloe" drink_desc = "Very, very, very good." -/datum/reagent/ethanol/andalusia +/datum/reagent/consumable/ethanol/andalusia name = "Andalusia" id = "andalusia" description = "A nice, strange named drink." @@ -770,7 +769,7 @@ drink_name = "Andalusia" drink_desc = "A nice, strange named drink." -/datum/reagent/ethanol/alliescocktail +/datum/reagent/consumable/ethanol/alliescocktail name = "Allies Cocktail" id = "alliescocktail" description = "A drink made from your allies." @@ -781,7 +780,7 @@ drink_name = "Allies cocktail" drink_desc = "A drink made from your allies." -/datum/reagent/ethanol/acid_spit +/datum/reagent/consumable/ethanol/acid_spit name = "Acid Spit" id = "acidspit" description = "A drink by Nanotrasen. Made from live aliens." @@ -792,7 +791,7 @@ drink_name = "Acid Spit" drink_desc = "A drink from Nanotrasen. Made from live aliens." -/datum/reagent/ethanol/amasec +/datum/reagent/consumable/ethanol/amasec name = "Amasec" id = "amasec" description = "Official drink of the Imperium." @@ -803,7 +802,7 @@ drink_name = "Amasec" drink_desc = "Always handy before COMBAT!!!" -/datum/reagent/ethanol/neurotoxin +/datum/reagent/consumable/ethanol/neurotoxin name = "Neuro-toxin" id = "neurotoxin" description = "A strong neurotoxin that puts the subject into a death-like state." @@ -816,7 +815,7 @@ drink_name = "Neurotoxin" drink_desc = "A drink that is guaranteed to knock you silly." -/datum/reagent/ethanol/neurotoxin/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/M) M.weakened = max(M.weakened, 3) if(current_cycle >=55) M.Druggy(55) @@ -824,7 +823,7 @@ M.adjustToxLoss(2) ..() -/datum/reagent/ethanol/hippies_delight +/datum/reagent/consumable/ethanol/hippies_delight name = "Hippie's Delight" id = "hippiesdelight" description = "You just don't get it maaaan." @@ -835,7 +834,7 @@ drink_name = "Hippie's Delight" drink_desc = "A drink enjoyed by people during the 1960's." -/datum/reagent/ethanol/hippies_delight/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/M) M.Druggy(50) switch(current_cycle) if(1 to 5) @@ -856,7 +855,7 @@ if(prob(30)) M.emote(pick("twitch","giggle")) ..() -/datum/reagent/ethanol/changelingsting +/datum/reagent/consumable/ethanol/changelingsting name = "Changeling Sting" id = "changelingsting" description = "A stingy drink." @@ -868,7 +867,7 @@ drink_name = "Changeling Sting" drink_desc = "A stingy drink." -/datum/reagent/ethanol/irishcarbomb +/datum/reagent/consumable/ethanol/irishcarbomb name = "Irish Car Bomb" id = "irishcarbomb" description = "Mmm, tastes like chocolate cake..." @@ -880,7 +879,7 @@ drink_name = "Irish Car Bomb" drink_desc = "An irish car bomb." -/datum/reagent/ethanol/syndicatebomb +/datum/reagent/consumable/ethanol/syndicatebomb name = "Syndicate Bomb" id = "syndicatebomb" description = "A Syndicate bomb" @@ -891,7 +890,7 @@ drink_name = "Syndicate Bomb" drink_desc = "A syndicate bomb." -/datum/reagent/ethanol/erikasurprise +/datum/reagent/consumable/ethanol/erikasurprise name = "Erika Surprise" id = "erikasurprise" description = "The surprise is, it's green!" @@ -902,11 +901,11 @@ name = "Erika Surprise" drink_desc = "The surprise is, it's green!" -/datum/reagent/ethanol/driestmartini +/datum/reagent/consumable/ethanol/driestmartini name = "Driest Martini" id = "driestmartini" description = "Only for the experienced. You think you see sand floating in the glass." - nutriment_factor = 1 * FOOD_METABOLISM + nutriment_factor = 1 * REAGENTS_METABOLISM color = "#2E6671" // rgb: 46, 102, 113 alcohol_perc = 0.5 dizzy_adj = 10 @@ -914,12 +913,12 @@ drink_name = "Driest Martini" drink_desc = "Only for the experienced. You think you see sand floating in the glass." -/datum/reagent/ethanol/driestmartini/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/driestmartini/on_mob_life(mob/living/M) if(current_cycle >= 55 && current_cycle < 115) M.stuttering += 10 ..() -/datum/reagent/ethanol/kahlua +/datum/reagent/consumable/ethanol/kahlua name = "Kahlua" id = "kahlua" description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!" @@ -929,7 +928,7 @@ drink_name = "Glass of RR coffee Liquor" drink_desc = "DAMN, THIS THING LOOKS ROBUST" -/datum/reagent/ethanol/kahlua/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/M) M.AdjustDizzy(-5) M.AdjustDrowsy(-3) M.AdjustSleeping(-2) @@ -961,7 +960,7 @@ to_chat(M, "[sonic_message ]") ..() -/datum/reagent/ethanol/applejack +/datum/reagent/consumable/ethanol/applejack name = "Applejack" id = "applejack" description = "A highly concentrated alcoholic beverage made by repeatedly freezing cider and removing the ice." @@ -971,7 +970,7 @@ drink_name = "Glass of applejack" drink_desc = "When cider isn't strong enough, you gotta jack it." -/datum/reagent/ethanol/jackrose +/datum/reagent/consumable/ethanol/jackrose name = "Jack Rose" id = "jackrose" description = "A classic cocktail that had fallen out of fashion, but never out of taste," @@ -981,7 +980,7 @@ drink_name = "Jack Rose" drink_desc = "Drinking this makes you feel like you belong in a luxury hotel bar during the 1920s." -/datum/reagent/ethanol/dragons_breath //inaccessible to players, but here for admin shennanigans +/datum/reagent/consumable/ethanol/dragons_breath //inaccessible to players, but here for admin shennanigans name = "Dragon's Breath" id = "dragonsbreath" description = "Possessing this stuff probably breaks the Geneva convention." @@ -989,12 +988,12 @@ color = "#DC0000" alcohol_perc = 1 -/datum/reagent/ethanol/dragons_breath/reaction_mob(mob/living/M, method=TOUCH, volume) +/datum/reagent/consumable/ethanol/dragons_breath/reaction_mob(mob/living/M, method=TOUCH, volume) if(method == INGEST && prob(20)) if(M.on_fire) M.adjust_fire_stacks(3) -/datum/reagent/ethanol/dragons_breath/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/dragons_breath/on_mob_life(mob/living/M) if(M.reagents.has_reagent("milk")) to_chat(M, "The milk stops the burning. Ahhh.") M.reagents.del_reagent("milk") @@ -1024,7 +1023,7 @@ // ROBOT ALCOHOL PAST THIS POINT // WOOO! -/datum/reagent/ethanol/synthanol +/datum/reagent/consumable/ethanol/synthanol name = "Synthanol" id = "synthanol" description = "A runny liquid with conductive capacities. Its effects on synthetics are similar to those of alcohol on organics." @@ -1037,7 +1036,7 @@ drink_name = "Glass of Synthanol" drink_desc = "The equivalent of alcohol for synthetic crewmembers. They'd find it awful if they had tastebuds too." -/datum/reagent/ethanol/synthanol/on_mob_life(mob/living/M) +/datum/reagent/consumable/ethanol/synthanol/on_mob_life(mob/living/M) if(!M.isSynthetic()) holder.remove_reagent(id, 3.6) //gets removed from organics very fast if(prob(25)) @@ -1045,13 +1044,13 @@ M.fakevomit() ..() -/datum/reagent/ethanol/synthanol/reaction_mob(mob/living/M, method=TOUCH, volume) +/datum/reagent/consumable/ethanol/synthanol/reaction_mob(mob/living/M, method=TOUCH, volume) if(M.isSynthetic()) return if(method == INGEST) to_chat(M, pick("That was awful!", "Yuck!")) -/datum/reagent/ethanol/synthanol/robottears +/datum/reagent/consumable/ethanol/synthanol/robottears name = "Robot Tears" id = "robottears" description = "An oily substance that an IPC could technically consider a 'drink'." @@ -1062,7 +1061,7 @@ drink_name = "Glass of Robot Tears" drink_desc = "No robots were hurt in the making of this drink." -/datum/reagent/ethanol/synthanol/trinary +/datum/reagent/consumable/ethanol/synthanol/trinary name = "Trinary" id = "trinary" description = "A fruit drink meant only for synthetics, however that works." @@ -1073,7 +1072,7 @@ drink_name = "Glass of Trinary" drink_desc = "Colorful drink made for synthetic crewmembers. It doesn't seem like it would taste well." -/datum/reagent/ethanol/synthanol/servo +/datum/reagent/consumable/ethanol/synthanol/servo name = "Servo" id = "servo" description = "A drink containing some organic ingredients, but meant only for synthetics." @@ -1084,7 +1083,7 @@ drink_name = "Glass of Servo" drink_desc = "Chocolate - based drink made for IPCs. Not sure if anyone's actually tried out the recipe." -/datum/reagent/ethanol/synthanol/uplink +/datum/reagent/consumable/ethanol/synthanol/uplink name = "Uplink" id = "uplink" description = "A potent mix of alcohol and synthanol. Will only work on synthetics." @@ -1095,7 +1094,7 @@ drink_name = "Glass of Uplink" drink_desc = "An exquisite mix of the finest liquoirs and synthanol. Meant only for synthetics." -/datum/reagent/ethanol/synthanol/synthnsoda +/datum/reagent/consumable/ethanol/synthanol/synthnsoda name = "Synth 'n Soda" id = "synthnsoda" description = "The classic drink adjusted for a robot's tastes." @@ -1106,7 +1105,7 @@ drink_name = "Glass of Synth 'n Soda" drink_desc = "Classic drink altered to fit the tastes of a robot. Bad idea to drink if you're made of carbon." -/datum/reagent/ethanol/synthanol/synthignon +/datum/reagent/consumable/ethanol/synthanol/synthignon name = "Synthignon" id = "synthignon" description = "Someone mixed wine and alcohol for robots. Hope you're proud of yourself." diff --git a/code/modules/reagents/chemistry/reagents/disease.dm b/code/modules/reagents/chemistry/reagents/disease.dm index 56493362f7c..cfebcfd4b7c 100644 --- a/code/modules/reagents/chemistry/reagents/disease.dm +++ b/code/modules/reagents/chemistry/reagents/disease.dm @@ -139,7 +139,7 @@ //virus foods -/datum/reagent/virus_food +/datum/reagent/consumable/virus_food name = "Virus Food" id = "virusfood" description = "A mixture of water, milk, and oxygen. Virus cells can use this mixture to reproduce." @@ -147,10 +147,6 @@ nutriment_factor = 2 * REAGENTS_METABOLISM color = "#899613" // rgb: 137, 150, 19 -/datum/reagent/virus_food/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor * REAGENTS_EFFECT_MULTIPLIER - ..() - /datum/reagent/mutagen/mutagenvirusfood name = "mutagenic agar" id = "mutagenvirusfood" diff --git a/code/modules/reagents/chemistry/reagents/drink_base.dm b/code/modules/reagents/chemistry/reagents/drink_base.dm index 884451c2dd0..25484983a4f 100644 --- a/code/modules/reagents/chemistry/reagents/drink_base.dm +++ b/code/modules/reagents/chemistry/reagents/drink_base.dm @@ -1,9 +1,8 @@ -/datum/reagent/drink +/datum/reagent/consumable/drink name = "Drink" id = "drink" description = "Uh, some kind of drink." reagent_state = LIQUID - nutriment_factor = 1 * REAGENTS_METABOLISM color = "#E78108" // rgb: 231, 129, 8 var/adj_dizzy = 0 var/adj_drowsy = 0 @@ -11,8 +10,7 @@ var/adj_temp_hot = 0 var/adj_temp_cool = 0 -/datum/reagent/drink/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor +/datum/reagent/consumable/drink/on_mob_life(mob/living/M) if(adj_dizzy) M.AdjustDizzy(adj_dizzy) if(adj_drowsy) diff --git a/code/modules/reagents/chemistry/reagents/drink_cold.dm b/code/modules/reagents/chemistry/reagents/drink_cold.dm index 56e399373e4..ffd43a81840 100644 --- a/code/modules/reagents/chemistry/reagents/drink_cold.dm +++ b/code/modules/reagents/chemistry/reagents/drink_cold.dm @@ -1,8 +1,8 @@ -/datum/reagent/drink/cold +/datum/reagent/consumable/drink/cold name = "Cold drink" adj_temp_cool = 5 -/datum/reagent/drink/cold/tonic +/datum/reagent/consumable/drink/cold/tonic name = "Tonic Water" id = "tonic" description = "It tastes strange but at least the quinine keeps the Space Malaria at bay." @@ -14,7 +14,7 @@ drink_name = "Glass of Tonic Water" drink_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." -/datum/reagent/drink/cold/sodawater +/datum/reagent/consumable/drink/cold/sodawater name = "Soda Water" id = "sodawater" description = "A can of club soda. Why not make a scotch and soda?" @@ -25,7 +25,7 @@ drink_name = "Glass of Soda Water" drink_desc = "Soda water. Why not make a scotch and soda?" -/datum/reagent/drink/cold/ice +/datum/reagent/consumable/drink/cold/ice name = "Ice" id = "ice" description = "Frozen water, your dentist wouldn't like you chewing this." @@ -36,11 +36,11 @@ drink_name = "Glass of ice" drink_desc = "Generally, you're supposed to put something else in there too..." -/datum/reagent/drink/cold/ice/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/cold/ice/on_mob_life(mob/living/M) M.bodytemperature = max(M.bodytemperature - 5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) ..() -/datum/reagent/drink/cold/space_cola +/datum/reagent/consumable/drink/cold/space_cola name = "Cola" id = "cola" description = "A refreshing beverage." @@ -51,7 +51,7 @@ drink_name = "Glass of Space Cola" drink_desc = "A glass of refreshing Space Cola" -/datum/reagent/drink/cold/nuka_cola +/datum/reagent/consumable/drink/cold/nuka_cola name = "Nuka Cola" id = "nuka_cola" description = "Cola, cola never changes." @@ -61,7 +61,7 @@ drink_name = "Nuka Cola" drink_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland" -/datum/reagent/drink/cold/nuka_cola/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/cold/nuka_cola/on_mob_life(mob/living/M) M.Jitter(20) M.Druggy(30) M.AdjustDizzy(5) @@ -69,11 +69,11 @@ M.status_flags |= GOTTAGOFAST ..() -/datum/reagent/drink/cold/nuka_cola/on_mob_delete(mob/living/M) +/datum/reagent/consumable/drink/cold/nuka_cola/on_mob_delete(mob/living/M) M.status_flags &= ~GOTTAGOFAST ..() -/datum/reagent/drink/cold/spacemountainwind +/datum/reagent/consumable/drink/cold/spacemountainwind name = "Space Mountain Wind" id = "spacemountainwind" description = "Blows right through you like a space wind." @@ -84,7 +84,7 @@ drink_name = "Glass of Space Mountain Wind" drink_desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind." -/datum/reagent/drink/cold/dr_gibb +/datum/reagent/consumable/drink/cold/dr_gibb name = "Dr. Gibb" id = "dr_gibb" description = "A delicious blend of 42 different flavours" @@ -94,7 +94,7 @@ drink_name = "Glass of Dr. Gibb" drink_desc = "Dr. Gibb. Not as dangerous as the name might imply." -/datum/reagent/drink/cold/space_up +/datum/reagent/consumable/drink/cold/space_up name = "Space-Up" id = "space_up" description = "Tastes like a hull breach in your mouth." @@ -104,14 +104,14 @@ drink_name = "Glass of Space-up" drink_desc = "Space-up. It helps keep your cool." -/datum/reagent/drink/cold/lemon_lime +/datum/reagent/consumable/drink/cold/lemon_lime name = "Lemon Lime" description = "A tangy substance made of 0.5% natural citrus!" id = "lemon_lime" color = "#878F00" // rgb: 135, 40, 0 adj_temp_cool = 8 -/datum/reagent/drink/cold/lemonade +/datum/reagent/consumable/drink/cold/lemonade name = "Lemonade" description = "Oh the nostalgia..." id = "lemonade" @@ -120,7 +120,7 @@ drink_name = "Lemonade" drink_desc = "Oh the nostalgia..." -/datum/reagent/drink/cold/kiraspecial +/datum/reagent/consumable/drink/cold/kiraspecial name = "Kira Special" description = "Long live the guy who everyone had mistaken for a girl. Baka!" id = "kiraspecial" @@ -129,7 +129,7 @@ drink_name = "Kira Special" drink_desc = "Long live the guy who everyone had mistaken for a girl. Baka!" -/datum/reagent/drink/cold/brownstar +/datum/reagent/consumable/drink/cold/brownstar name = "Brown Star" description = "It's not what it sounds like..." id = "brownstar" @@ -139,7 +139,7 @@ drink_name = "Brown Star" drink_desc = "Its not what it sounds like..." -/datum/reagent/drink/cold/milkshake +/datum/reagent/consumable/drink/cold/milkshake name = "Milkshake" description = "Glorious brainfreezing mixture." id = "milkshake" @@ -149,7 +149,7 @@ drink_name = "Milkshake" drink_desc = "Glorious brainfreezing mixture." -/datum/reagent/drink/cold/rewriter +/datum/reagent/consumable/drink/cold/rewriter name = "Rewriter" description = "The secert of the sanctuary of the Libarian..." id = "rewriter" @@ -158,6 +158,6 @@ drink_name = "Rewriter" drink_desc = "The secert of the sanctuary of the Libarian..." -/datum/reagent/drink/cold/rewriter/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/cold/rewriter/on_mob_life(mob/living/M) M.Jitter(5) ..() \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/drinks.dm b/code/modules/reagents/chemistry/reagents/drinks.dm index 58574701a40..eb1c4f5ee68 100644 --- a/code/modules/reagents/chemistry/reagents/drinks.dm +++ b/code/modules/reagents/chemistry/reagents/drinks.dm @@ -1,4 +1,4 @@ -/datum/reagent/drink/orangejuice +/datum/reagent/consumable/drink/orangejuice name = "Orange juice" id = "orangejuice" description = "Both delicious AND rich in Vitamin C, what more do you need?" @@ -7,12 +7,12 @@ drink_name = "Glass of Orange juice" drink_desc = "Vitamins! Yay!" -/datum/reagent/drink/orangejuicde/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/orangejuicde/on_mob_life(mob/living/M) if(M.getOxyLoss() && prob(30)) M.adjustOxyLoss(-1*REM) ..() -/datum/reagent/drink/tomatojuice +/datum/reagent/consumable/drink/tomatojuice name = "Tomato Juice" id = "tomatojuice" description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?" @@ -21,12 +21,12 @@ drink_name = "Glass of Tomato juice" drink_desc = "Are you sure this is tomato juice?" -/datum/reagent/drink/tomatojuice/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/tomatojuice/on_mob_life(mob/living/M) if(M.getFireLoss() && prob(20)) M.adjustFireLoss(-1) ..() -/datum/reagent/drink/limejuice +/datum/reagent/consumable/drink/limejuice name = "Lime Juice" id = "limejuice" description = "The sweet-sour juice of limes." @@ -35,12 +35,12 @@ drink_name = "Glass of Lime juice" drink_desc = "A glass of sweet-sour lime juice." -/datum/reagent/drink/limejuice/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/limejuice/on_mob_life(mob/living/M) if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1) ..() -/datum/reagent/drink/carrotjuice +/datum/reagent/consumable/drink/carrotjuice name = "Carrot juice" id = "carrotjuice" description = "It is just like a carrot but without crunching." @@ -49,7 +49,7 @@ drink_name = "Glass of carrot juice" drink_desc = "It is just like a carrot but without crunching." -/datum/reagent/drink/carrotjuicde/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/carrotjuicde/on_mob_life(mob/living/M) M.AdjustEyeBlurry(-1) M.AdjustEyeBlind(-1) switch(current_cycle) @@ -60,7 +60,7 @@ M.disabilities &= ~NEARSIGHTED ..() -/datum/reagent/drink/doctor_delight +/datum/reagent/consumable/drink/doctor_delight name = "The Doctor's Delight" id = "doctorsdelight" description = "A gulp a day keeps the MediBot away. That's probably for the best." @@ -70,12 +70,26 @@ drink_name = "Doctor's Delight" drink_desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place." -/datum/reagent/drink/doctors_delight/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/doctors_delight/on_mob_life(mob/living/M) if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1) ..() -/datum/reagent/drink/berryjuice +/datum/reagent/consumable/drink/triple_citrus + name = "Triple Citrus" + id = "triple_citrus" + description = "A refreshing mixed drink of orange, lemon and lime juice." + reagent_state = LIQUID + color = "#23A046" + drink_icon = "triplecitrus" + drink_name = "Glass of Triplecitrus Juice" + drink_desc = "As colorful and healthy as it is delicious." + +/datum/reagent/consumable/drink/triple_citrus/reaction_mob(mob/living/M, method=TOUCH, volume) + if(method == INGEST) + M.adjustToxLoss(-rand(1,2)) + +/datum/reagent/consumable/drink/berryjuice name = "Berry Juice" id = "berryjuice" description = "A delicious blend of several different kinds of berries." @@ -84,7 +98,7 @@ drink_name = "Glass of berry juice" drink_desc = "Berry juice. Or maybe its jam. Who cares?" -/datum/reagent/drink/poisonberryjuice +/datum/reagent/consumable/drink/poisonberryjuice name = "Poison Berry Juice" id = "poisonberryjuice" description = "A tasty juice blended from various kinds of very deadly and toxic berries." @@ -93,17 +107,17 @@ drink_name = "Glass of poison berry juice" drink_desc = "A glass of deadly juice." -/datum/reagent/drink/poisonberryjuice/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/poisonberryjuice/on_mob_life(mob/living/M) M.adjustToxLoss(1) ..() -/datum/reagent/drink/watermelonjuice +/datum/reagent/consumable/drink/watermelonjuice name = "Watermelon Juice" id = "watermelonjuice" description = "Delicious juice made from watermelon." color = "#863333" // rgb: 134, 51, 51 -/datum/reagent/drink/lemonjuice +/datum/reagent/consumable/drink/lemonjuice name = "Lemon Juice" id = "lemonjuice" description = "This juice is VERY sour." @@ -112,13 +126,13 @@ drink_name = "Glass of lemonjuice" drink_desc = "Sour..." -/datum/reagent/drink/grapejuice +/datum/reagent/consumable/drink/grapejuice name = "Grape Juice" id = "grapejuice" description = "This juice is known to stain shirts." color = "#993399" // rgb: 153, 51, 153 -/datum/reagent/drink/banana +/datum/reagent/consumable/drink/banana name = "Banana Juice" id = "banana" description = "The raw essence of a banana." @@ -127,13 +141,13 @@ drink_name = "Glass of banana juice" drink_desc = "The raw essence of a banana. HONK" -/datum/reagent/drink/banana/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/banana/on_mob_life(mob/living/M) if((ishuman(M) && M.job in list("Clown") ) || issmall(M)) M.adjustBruteLoss(-1) M.adjustFireLoss(-1) ..() -/datum/reagent/drink/nothing +/datum/reagent/consumable/drink/nothing name = "Nothing" id = "nothing" description = "Absolutely nothing." @@ -141,23 +155,23 @@ drink_name = "Nothing" drink_desc = "Absolutely nothing." -/datum/reagent/drink/nothing/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/nothing/on_mob_life(mob/living/M) if(ishuman(M) && M.job in list("Mime")) M.adjustBruteLoss(-1) M.adjustFireLoss(-1) ..() -/datum/reagent/drink/potato_juice +/datum/reagent/consumable/drink/potato_juice name = "Potato Juice" id = "potato" description = "Juice of the potato. Bleh." - nutriment_factor = 2 * FOOD_METABOLISM + nutriment_factor = 2 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 drink_icon = "glass_brown" drink_name = "Glass of potato juice" drink_desc = "Who in the hell requests this? Gross!" -/datum/reagent/drink/milk +/datum/reagent/consumable/drink/milk name = "Milk" id = "milk" description = "An opaque white liquid produced by the mammary glands of mammals." @@ -166,14 +180,14 @@ drink_name = "Glass of milk" drink_desc = "White and nutritious goodness!" -/datum/reagent/drink/milk/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/milk/on_mob_life(mob/living/M) if(M.getBruteLoss() && prob(20)) M.adjustBruteLoss(-1) if(holder.has_reagent("capsaicin")) holder.remove_reagent("capsaicin", 2) ..() -/datum/reagent/drink/milk/soymilk +/datum/reagent/consumable/drink/milk/soymilk name = "Soy Milk" id = "soymilk" description = "An opaque white liquid made from soybeans." @@ -181,7 +195,7 @@ drink_name = "Glass of soy milk" drink_desc = "White and nutritious soy goodness!" -/datum/reagent/drink/milk/cream +/datum/reagent/consumable/drink/milk/cream name = "Cream" id = "cream" description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?" @@ -189,24 +203,24 @@ drink_name = "Glass of cream" drink_desc = "Ewwww..." -/datum/reagent/drink/milk/chocolate_milk +/datum/reagent/consumable/drink/milk/chocolate_milk name = "Chocolate milk" id ="chocolate_milk" description = "Chocolate-flavored milk, tastes like being a kid again." color = "#85432C" -/datum/reagent/drink/hot_coco +/datum/reagent/consumable/drink/hot_coco name = "Hot Chocolate" id = "hot_coco" description = "Made with love! And coco beans." - nutriment_factor = 2 * FOOD_METABOLISM + nutriment_factor = 2 * REAGENTS_METABOLISM color = "#403010" // rgb: 64, 48, 16 adj_temp_hot = 5 drink_icon = "hot_coco" drink_name = "Glass of hot coco" drink_desc = "Delicious and cozy" -/datum/reagent/drink/coffee +/datum/reagent/consumable/drink/coffee name = "Coffee" id = "coffee" description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant." @@ -222,7 +236,7 @@ drink_name = "Glass of coffee" drink_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." -/datum/reagent/drink/coffee/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/coffee/on_mob_life(mob/living/M) if(holder.has_reagent("frostoil")) holder.remove_reagent("frostoil", 5) if(prob(50)) @@ -231,11 +245,11 @@ M.AdjustWeakened(-1) ..() -/datum/reagent/drink/coffee/overdose_process(mob/living/M, severity) +/datum/reagent/consumable/drink/coffee/overdose_process(mob/living/M, severity) if(volume > 45) M.Jitter(5) -/datum/reagent/drink/coffee/icecoffee +/datum/reagent/consumable/drink/coffee/icecoffee name = "Iced Coffee" id = "icecoffee" description = "Coffee and ice, refreshing and cool." @@ -246,7 +260,7 @@ drink_name = "Iced Coffee" drink_desc = "A drink to perk you up and refresh you!" -/datum/reagent/drink/coffee/soy_latte +/datum/reagent/consumable/drink/coffee/soy_latte name = "Soy Latte" id = "soy_latte" description = "A nice and tasty beverage while you are reading your hippie books." @@ -257,13 +271,13 @@ drink_name = "Soy Latte" drink_desc = "A nice and refrshing beverage while you are reading." -/datum/reagent/drink/coffee/soy_latte/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/coffee/soy_latte/on_mob_life(mob/living/M) ..() M.SetSleeping(0) if(M.getBruteLoss() && prob(20)) M.adjustBruteLoss(-1) -/datum/reagent/drink/coffee/cafe_latte +/datum/reagent/consumable/drink/coffee/cafe_latte name = "Cafe Latte" id = "cafe_latte" description = "A nice, strong and tasty beverage while you are reading." @@ -274,13 +288,13 @@ drink_name = "Cafe Latte" drink_desc = "A nice, strong and refreshing beverage while you are reading." -/datum/reagent/drink/coffee/cafe_latte/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/coffee/cafe_latte/on_mob_life(mob/living/M) ..() M.SetSleeping(0) if(M.getBruteLoss() && prob(20)) M.adjustBruteLoss(-1) -/datum/reagent/drink/coffee/cafe_latte/cafe_mocha +/datum/reagent/consumable/drink/coffee/cafe_latte/cafe_mocha name = "Cafe Mocha" id = "cafe_mocha" description = "The perfect blend of coffe, milk, and chocolate." @@ -288,7 +302,7 @@ drink_name = "Cafe Mocha" drink_desc = "The perfect blend of coffe, milk, and chocolate." -/datum/reagent/drink/tea +/datum/reagent/consumable/drink/tea name = "Tea" id = "tea" description = "Tasty black tea: It has antioxidants. It's good for you!" @@ -301,12 +315,12 @@ drink_name = "Glass of Tea" drink_desc = "A glass of hot tea. Perhaps a cup with a handle would have been smarter?" -/datum/reagent/drink/tea/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/tea/on_mob_life(mob/living/M) if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1) ..() -/datum/reagent/drink/tea/icetea +/datum/reagent/consumable/drink/tea/icetea name = "Iced Tea" id = "icetea" description = "No relation to a certain rap artist/ actor." @@ -317,33 +331,31 @@ drink_name = "Iced Tea" drink_desc = "No relation to a certain rap artist/ actor." -/datum/reagent/drink/bananahonk +/datum/reagent/consumable/drink/bananahonk name = "Banana Mama" id = "bananahonk" description = "A drink from Clown Heaven." - nutriment_factor = 1 * FOOD_METABOLISM color = "#664300" // rgb: 102, 67, 0 drink_icon = "bananahonkglass" drink_name = "Banana Honk" drink_desc = "A drink from Banana Heaven." -/datum/reagent/drink/bananahonk/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/bananahonk/on_mob_life(mob/living/M) if((ishuman(M) && M.job in list("Clown") ) || issmall(M)) M.adjustBruteLoss(-1) M.adjustFireLoss(-1) ..() -/datum/reagent/drink/silencer +/datum/reagent/consumable/drink/silencer name = "Silencer" id = "silencer" description = "A drink from Mime Heaven." - nutriment_factor = 1 * FOOD_METABOLISM color = "#664300" // rgb: 102, 67, 0 drink_icon = "silencerglass" drink_name = "Silencer" drink_desc = "A drink from mime Heaven." -/datum/reagent/drink/silencer/on_mob_life(mob/living/M) +/datum/reagent/consumable/drink/silencer/on_mob_life(mob/living/M) if(ishuman(M) && M.job in list("Mime")) M.adjustBruteLoss(-1) M.adjustFireLoss(-1) diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index 69864d487a6..f502f697505 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -1,21 +1,34 @@ /////////////////////////Food Reagents//////////////////////////// // Part of the food code. Nutriment is used instead of the old "heal_amt" code. Also is where all the food // condiments, additives, and such go. -/datum/reagent/nutriment // Pure nutriment, universally digestable and thus slightly less effective + +/datum/reagent/consumable + name = "Consumable" + id = "consumable" + var/nutriment_factor = 1 * REAGENTS_METABOLISM + var/diet_flags = DIET_OMNI | DIET_HERB | DIET_CARN + +/datum/reagent/consumable/on_mob_life(mob/living/M) + if(!(M.mind in ticker.mode.vampires)) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.can_eat(diet_flags)) //Make sure the species has it's dietflag set, otherwise it can't digest any nutrients + H.nutrition += nutriment_factor // For hunger and fatness + ..() + +/datum/reagent/consumable/nutriment // Pure nutriment, universally digestable and thus slightly less effective name = "Nutriment" id = "nutriment" description = "A questionable mixture of various pure nutrients commonly found in processed foods." reagent_state = SOLID nutriment_factor = 12 * REAGENTS_METABOLISM color = "#664330" // rgb: 102, 67, 48 - var/diet_flags = DIET_OMNI | DIET_HERB | DIET_CARN -/datum/reagent/nutriment/on_mob_life(mob/living/M) +/datum/reagent/consumable/nutriment/on_mob_life(mob/living/M) if(!(M.mind in ticker.mode.vampires)) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.can_eat(diet_flags)) //Make sure the species has it's dietflag set, otherwise it can't digest any nutrients - H.nutrition += nutriment_factor // For hunger and fatness if(prob(50)) M.adjustBruteLoss(-1) if(H.species.exotic_blood) @@ -25,31 +38,28 @@ H.vessel.add_reagent("blood", 0.4) ..() -/datum/reagent/nutriment/protein // Meat-based protein, digestable by carnivores and omnivores, worthless to herbivores +/datum/reagent/consumable/nutriment/protein // Meat-based protein, digestable by carnivores and omnivores, worthless to herbivores name = "Protein" id = "protein" description = "Various essential proteins and fats commonly found in animal flesh and blood." nutriment_factor = 15 * REAGENTS_METABOLISM diet_flags = DIET_CARN | DIET_OMNI -/datum/reagent/nutriment/plantmatter // Plant-based biomatter, digestable by herbivores and omnivores, worthless to carnivores +/datum/reagent/consumable/nutriment/plantmatter // Plant-based biomatter, digestable by herbivores and omnivores, worthless to carnivores name = "Plant-matter" id = "plantmatter" description = "Vitamin-rich fibers and natural sugars commonly found in fresh produce." nutriment_factor = 15 * REAGENTS_METABOLISM diet_flags = DIET_HERB | DIET_OMNI - -/datum/reagent/vitamin +/datum/reagent/consumable/vitamin name = "Vitamin" id = "vitamin" description = "All the best vitamins, minerals, and carbohydrates the body needs in pure form." reagent_state = SOLID - nutriment_factor = 1 * REAGENTS_METABOLISM color = "#664330" // rgb: 102, 67, 48 -/datum/reagent/vitamin/on_mob_life(mob/living/M) //everyone needs vitamins, so this works on everyone, regardless of diet or if they're a vampire. - M.nutrition += nutriment_factor +/datum/reagent/consumable/vitamin/on_mob_life(mob/living/M) if(prob(50)) M.adjustBruteLoss(-1) M.adjustFireLoss(-1) @@ -62,7 +72,7 @@ H.vessel.add_reagent("blood", 0.5) ..() -/datum/reagent/soysauce +/datum/reagent/consumable/soysauce name = "Soysauce" id = "soysauce" description = "A salty sauce made from the soy plant." @@ -70,7 +80,7 @@ nutriment_factor = 2 * REAGENTS_METABOLISM color = "#792300" // rgb: 121, 35, 0 -/datum/reagent/ketchup +/datum/reagent/consumable/ketchup name = "Ketchup" id = "ketchup" description = "Ketchup, catsup, whatever. It's tomato paste." @@ -78,15 +88,14 @@ nutriment_factor = 5 * REAGENTS_METABOLISM color = "#731008" // rgb: 115, 16, 8 - -/datum/reagent/capsaicin +/datum/reagent/consumable/capsaicin name = "Capsaicin Oil" id = "capsaicin" description = "This is what makes chilis hot." reagent_state = LIQUID color = "#B31008" // rgb: 179, 16, 8 -/datum/reagent/capsaicin/on_mob_life(mob/living/M) +/datum/reagent/consumable/capsaicin/on_mob_life(mob/living/M) switch(current_cycle) if(1 to 15) M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT @@ -108,7 +117,74 @@ M.bodytemperature += rand(20,25) ..() -/datum/reagent/frostoil +/datum/reagent/consumable/condensedcapsaicin + name = "Condensed Capsaicin" + id = "condensedcapsaicin" + description = "This shit goes in pepperspray." + reagent_state = LIQUID + color = "#B31008" // rgb: 179, 16, 8 + +/datum/reagent/consumable/condensedcapsaicin/reaction_mob(mob/living/M, method=TOUCH, volume) + if(method == TOUCH) + if(ishuman(M)) + var/mob/living/carbon/human/victim = M + var/mouth_covered = 0 + var/eyes_covered = 0 + var/obj/item/safe_thing = null + if( victim.wear_mask ) + if( victim.wear_mask.flags & MASKCOVERSEYES ) + eyes_covered = 1 + safe_thing = victim.wear_mask + if( victim.wear_mask.flags & MASKCOVERSMOUTH ) + mouth_covered = 1 + safe_thing = victim.wear_mask + if( victim.head ) + if( victim.head.flags & MASKCOVERSEYES ) + eyes_covered = 1 + safe_thing = victim.head + if( victim.head.flags & MASKCOVERSMOUTH ) + 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 ) + to_chat(victim, "Your [safe_thing] protects you from the pepperspray!") + return + else if( mouth_covered ) // Reduced effects if partially protected + to_chat(victim, "Your [safe_thing] protect you from most of the pepperspray!") + if(prob(5)) + victim.emote("scream") + victim.EyeBlurry(3) + victim.EyeBlind(1) + victim.Confused(3) + victim.damageoverlaytemp = 60 + victim.Weaken(3) + victim.drop_item() + return + else if( eyes_covered ) // Eye cover is better than mouth cover + to_chat(victim, "Your [safe_thing] protects your eyes from the pepperspray!") + victim.EyeBlurry(3) + victim.damageoverlaytemp = 30 + return + else // Oh dear :D + if(prob(5)) + victim.emote("scream") + to_chat(victim, "You're sprayed directly in the eyes with pepperspray!") + victim.EyeBlurry(5) + victim.EyeBlind(2) + victim.Confused(6) + victim.damageoverlaytemp = 75 + victim.Weaken(5) + victim.drop_item() + +/datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/M) + if(prob(5)) + M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]") + ..() + +/datum/reagent/consumable/frostoil name = "Frost Oil" id = "frostoil" description = "A special oil that noticably chills the body. Extraced from Icepeppers." @@ -116,7 +192,7 @@ color = "#8BA6E9" // rgb: 139, 166, 233 process_flags = ORGANIC | SYNTHETIC -/datum/reagent/frostoil/on_mob_life(mob/living/M) +/datum/reagent/consumable/frostoil/on_mob_life(mob/living/M) switch(current_cycle) if(1 to 15) M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT @@ -142,13 +218,12 @@ M.bodytemperature -= rand(20,25) ..() -/datum/reagent/frostoil/reaction_turf(turf/T, volume) +/datum/reagent/consumable/frostoil/reaction_turf(turf/T, volume) if(volume >= 5) for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(15,30)) - -/datum/reagent/sodiumchloride +/datum/reagent/consumable/sodiumchloride name = "Salt" id = "sodiumchloride" description = "Sodium chloride, common table salt." @@ -156,18 +231,18 @@ color = "#B1B0B0" overdose_threshold = 100 -/datum/reagent/sodiumchloride/overdose_process(mob/living/M, severity) +/datum/reagent/consumable/sodiumchloride/overdose_process(mob/living/M, severity) if(prob(70)) M.adjustBrainLoss(1) ..() -/datum/reagent/blackpepper +/datum/reagent/consumable/blackpepper name = "Black Pepper" id = "blackpepper" description = "A powder ground from peppercorns. *AAAACHOOO*" reagent_state = SOLID -/datum/reagent/cocoa +/datum/reagent/consumable/cocoa name = "Cocoa Powder" id = "cocoa" description = "A fatty, bitter paste made from cocoa beans." @@ -175,11 +250,7 @@ nutriment_factor = 5 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 -/datum/reagent/cocoa/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor - ..() - -/datum/reagent/hot_coco +/datum/reagent/consumable/hot_coco name = "Hot Chocolate" id = "hot_coco" description = "Made with love! And cocoa beans." @@ -187,28 +258,24 @@ nutriment_factor = 2 * REAGENTS_METABOLISM color = "#403010" // rgb: 64, 48, 16 -/datum/reagent/hot_coco/on_mob_life(mob/living/M) +/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/M) if(M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) - M.nutrition += nutriment_factor ..() -/datum/reagent/sprinkles +/datum/reagent/consumable/sprinkles name = "Sprinkles" id = "sprinkles" description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops." - nutriment_factor = 1 * REAGENTS_METABOLISM color = "#FF00FF" // rgb: 255, 0, 255 -/datum/reagent/sprinkles/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor +/datum/reagent/consumable/sprinkles/on_mob_life(mob/living/M) if(ishuman(M) && M.job in list("Security Officer", "Security Pod Pilot", "Detective", "Warden", "Head of Security", "Brig Physician", "Internal Affairs Agent", "Magistrate")) M.adjustBruteLoss(-1) M.adjustFireLoss(-1) ..() - -/datum/reagent/cornoil +/datum/reagent/consumable/cornoil name = "Corn Oil" id = "cornoil" description = "An oil derived from various types of corn." @@ -216,11 +283,7 @@ nutriment_factor = 20 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 -/datum/reagent/cornoil/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor - ..() - -/datum/reagent/cornoil/reaction_turf(turf/simulated/T, volume) +/datum/reagent/consumable/cornoil/reaction_turf(turf/simulated/T, volume) if(!istype(T)) return if(volume >= 3) @@ -233,29 +296,21 @@ T.assume_air(lowertemp) qdel(hotspot) - -/datum/reagent/enzyme +/datum/reagent/consumable/enzyme name = "Denatured Enzyme" id = "enzyme" description = "Heated beyond usefulness, this enzyme is now worthless." reagent_state = LIQUID color = "#282314" // rgb: 54, 94, 48 - -/datum/reagent/dry_ramen +/datum/reagent/consumable/dry_ramen name = "Dry Ramen" id = "dry_ramen" description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water." reagent_state = SOLID - nutriment_factor = 1 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 -/datum/reagent/dry_ramen/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor - ..() - - -/datum/reagent/hot_ramen +/datum/reagent/consumable/hot_ramen name = "Hot Ramen" id = "hot_ramen" description = "The noodles are boiled, the flavors are artificial, just like being back in school." @@ -263,14 +318,12 @@ nutriment_factor = 5 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 -/datum/reagent/hot_ramen/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor +/datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/M) if(M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 M.bodytemperature = min(310, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT)) ..() - -/datum/reagent/hell_ramen +/datum/reagent/consumable/hell_ramen name = "Hell Ramen" id = "hell_ramen" description = "The noodles are boiled, the flavors are artificial, just like being back in school." @@ -278,88 +331,345 @@ nutriment_factor = 5 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 -/datum/reagent/hell_ramen/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor +/datum/reagent/consumable/hell_ramen/on_mob_life(mob/living/M) M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT ..() - -/datum/reagent/flour +/datum/reagent/consumable/flour name = "flour" id = "flour" description = "This is what you rub all over yourself to pretend to be a ghost." reagent_state = SOLID - nutriment_factor = 1 * REAGENTS_METABOLISM color = "#FFFFFF" // rgb: 0, 0, 0 -/datum/reagent/flour/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor - ..() - -/datum/reagent/flour/reaction_turf(turf/T, volume) +/datum/reagent/consumable/flour/reaction_turf(turf/T, volume) if(!istype(T, /turf/space)) new /obj/effect/decal/cleanable/flour(T) - -/datum/reagent/rice +/datum/reagent/consumable/rice name = "Rice" id = "rice" description = "Enjoy the great taste of nothing." reagent_state = SOLID - nutriment_factor = 1 * REAGENTS_METABOLISM color = "#FFFFFF" // rgb: 0, 0, 0 -/datum/reagent/rice/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor - ..() - - -/datum/reagent/cherryjelly +/datum/reagent/consumable/cherryjelly name = "Cherry Jelly" id = "cherryjelly" description = "Totally the best. Only to be spread on foods with excellent lateral symmetry." reagent_state = LIQUID - nutriment_factor = 1 * REAGENTS_METABOLISM color = "#801E28" // rgb: 128, 30, 40 -/datum/reagent/cherryjelly/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor +/datum/reagent/consumable/egg + name = "Egg" + id = "egg" + description = "A runny and viscous mixture of clear and yellow fluids." + reagent_state = LIQUID + color = "#F0C814" + +/datum/reagent/consumable/egg/on_mob_life(mob/living/M) + if(prob(8)) + M.emote("fart") + if(prob(3)) + M.reagents.add_reagent("cholesterol", rand(1,2)) ..() -/datum/reagent/toxin/coffeepowder - name = "Coffee Grounds" - id = "coffeepowder" - description = "Finely ground Coffee beans, used to make coffee." - reagent_state = SOLID - color = "#5B2E0D" // rgb: 91, 46, 13 - -/datum/reagent/toxin/teapowder - name = "Ground Tea Leaves" - id = "teapowder" - description = "Finely shredded Tea leaves, used for making tea." - reagent_state = SOLID - color = "#7F8400" // rgb: 127, 132, 0 - -//Reagents used for plant fertilizers. -/datum/reagent/toxin/fertilizer - name = "fertilizer" - id = "fertilizer" - description = "A chemical mix good for growing plants with." +/datum/reagent/consumable/corn_starch + name = "Corn Starch" + id = "corn_starch" + description = "The powdered starch of maize, derived from the kernel's endosperm. Used as a thickener for gravies and puddings." reagent_state = LIQUID - color = "#664330" // rgb: 102, 67, 48 + color = "#C8A5DC" -/datum/reagent/toxin/fertilizer/eznutrient - name = "EZ Nutrient" - id = "eznutrient" +/datum/reagent/consumable/corn_syrup + name = "Corn Syrup" + id = "corn_syrup" + description = "A sweet syrup derived from corn starch that has had its starches converted into maltose and other sugars." + reagent_state = LIQUID + color = "#C8A5DC" -/datum/reagent/toxin/fertilizer/left4zed - name = "Left-4-Zed" - id = "left4zed" +/datum/reagent/consumable/corn_syrup/on_mob_life(mob/living/M) + M.reagents.add_reagent("sugar", 1.2) + ..() -/datum/reagent/toxin/fertilizer/robustharvest - name = "Robust Harvest" - id = "robustharvest" +/datum/reagent/consumable/vhfcs + name = "Very-high-fructose corn syrup" + id = "vhfcs" + description = "An incredibly sweet syrup, created from corn syrup treated with enzymes to convert its sugars into fructose." + reagent_state = LIQUID + color = "#C8A5DC" +/datum/reagent/consumable/vhfcs/on_mob_life(mob/living/M) + M.reagents.add_reagent("sugar", 2.4) + ..() + +/datum/reagent/consumable/honey + name = "Honey" + id = "honey" + description = "A sweet substance produced by bees through partial digestion. Bee barf." + reagent_state = LIQUID + color = "#d3a308" + +/datum/reagent/consumable/honey/on_mob_life(mob/living/M) + M.reagents.add_reagent("sugar", 0.4) + if(prob(20)) + M.adjustBruteLoss(-3) + M.adjustFireLoss(-1) + ..() + +/datum/reagent/consumable/chocolate + name = "Chocolate" + id = "chocolate" + description = "Chocolate is a delightful product derived from the seeds of the theobroma cacao tree." + reagent_state = LIQUID + nutriment_factor = 5 * REAGENTS_METABOLISM //same as pure cocoa powder, because it makes no sense that chocolate won't fill you up and make you fat + color = "#2E2418" + drink_icon = "chocolateglass" + drink_name = "Glass of chocolate" + drink_desc = "Tasty" + +/datum/reagent/consumable/chocolate/on_mob_life(mob/living/M) + M.reagents.add_reagent("sugar", 0.8) + ..() + +/datum/reagent/consumable/chocolate/reaction_turf(turf/T, volume) + if(volume >= 5 && !istype(T, /turf/space)) + new /obj/item/weapon/reagent_containers/food/snacks/choc_pile(T) + +/datum/reagent/consumable/mugwort + name = "Mugwort" + id = "mugwort" + description = "A rather bitter herb once thought to hold magical protective properties." + reagent_state = LIQUID + color = "#21170E" + +/datum/reagent/consumable/mugwort/on_mob_life(mob/living/M) + if(ishuman(M) && M.mind) + if(M.mind.special_role == SPECIAL_ROLE_WIZARD) + M.adjustToxLoss(-1*REM) + M.adjustOxyLoss(-1*REM) + M.adjustBruteLoss(-1*REM) + M.adjustFireLoss(-1*REM) + ..() + +/datum/reagent/consumable/porktonium + name = "Porktonium" + id = "porktonium" + description = "A highly-radioactive pork byproduct first discovered in hotdogs." + reagent_state = LIQUID + color = "#AB5D5D" + metabolization_rate = 0.2 + overdose_threshold = 133 + +/datum/reagent/consumable/porktonium/overdose_process(mob/living/M, severity) + if(prob(15)) + M.reagents.add_reagent("cholesterol", rand(1,3)) + if(prob(8)) + M.reagents.add_reagent("radium", 15) + M.reagents.add_reagent("cyanide", 10) + +/datum/reagent/consumable/chicken_soup + name = "Chicken soup" + id = "chicken_soup" + description = "An old household remedy for mild illnesses." + reagent_state = LIQUID + color = "#B4B400" + metabolization_rate = 0.2 + nutriment_factor = 2 + +/datum/reagent/consumable/cheese + name = "Cheese" + id = "cheese" + description = "Some cheese. Pour it out to make it solid." + reagent_state = SOLID + color = "#FFFF00" + metabolization_rate = 0 //heheheh + nutriment_factor = 0 + +/datum/reagent/consumable/cheese/on_mob_life(mob/living/M) + if(prob(3)) + M.reagents.add_reagent("cholesterol", rand(1,2)) + ..() + +/datum/reagent/consumable/cheese/reaction_turf(turf/T, volume) + if(volume >= 5 && !istype(T, /turf/space)) + new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge(T) + +/datum/reagent/consumable/fake_cheese + name = "Cheese substitute" + id = "fake_cheese" + description = "A cheese-like substance derived loosely from actual cheese." + reagent_state = LIQUID + color = "#B2B139" + overdose_threshold = 50 + +/datum/reagent/consumable/fake_cheese/overdose_process(mob/living/M, severity) + if(prob(8)) + to_chat(M, "You feel something squirming in your stomach. Your thoughts turn to cheese and you begin to sweat.") + M.adjustToxLoss(rand(1,2)) + +/datum/reagent/consumable/weird_cheese + name = "Weird cheese" + id = "weird_cheese" + description = "Hell, I don't even know if this IS cheese. Whatever it is, it ain't normal. If you want to, pour it out to make it solid." + reagent_state = SOLID + color = "#50FF00" + metabolization_rate = 0 //heheheh + addiction_chance = 5 + nutriment_factor = 0 + +/datum/reagent/consumable/weird_cheese/on_mob_life(mob/living/M) + if(prob(5)) + M.reagents.add_reagent("cholesterol", rand(1,3)) + ..() + +/datum/reagent/consumable/weird_cheese/reaction_turf(turf/T, volume) + if(volume >= 5 && !istype(T, /turf/space)) + new /obj/item/weapon/reagent_containers/food/snacks/weirdcheesewedge(T) + +/datum/reagent/consumable/beans + name = "Refried beans" + id = "beans" + description = "A dish made of mashed beans cooked with lard." + reagent_state = LIQUID + color = "#684435" + +/datum/reagent/consumable/beans/on_mob_life(mob/living/M) + if(prob(10)) + M.emote("fart") + ..() + +/datum/reagent/consumable/bread + name = "Bread" + id = "bread" + description = "Bread! Yep, bread." + reagent_state = SOLID + color = "#9C5013" + +/datum/reagent/consumable/soybeanoil + name = "Space-soybean oil" + id = "soybeanoil" + description = "An oil derived from extra-terrestrial soybeans." + reagent_state = LIQUID + color = "#B1B0B0" + +/datum/reagent/consumable/soybeanoil/on_mob_life(mob/living/M) + if(prob(10)) + M.reagents.add_reagent("cholesterol", rand(1,3)) + if(prob(8)) + M.reagents.add_reagent("porktonium", 5) + ..() + +/datum/reagent/consumable/hydrogenated_soybeanoil + name = "Partially hydrogenated space-soybean oil" + id = "hydrogenated_soybeanoil" + description = "An oil derived from extra-terrestrial soybeans, with additional hydrogen atoms added to convert it into a saturated form." + reagent_state = LIQUID + color = "#B1B0B0" + metabolization_rate = 0.2 + overdose_threshold = 75 + +/datum/reagent/consumable/hydrogenated_soybeanoil/on_mob_life(mob/living/M) + if(prob(15)) + M.reagents.add_reagent("cholesterol", rand(1,3)) + if(prob(8)) + M.reagents.add_reagent("porktonium", 5) + if(volume >= 75) + metabolization_rate = 0.4 + else + metabolization_rate = 0.2 + ..() + +/datum/reagent/consumable/hydrogenated_soybeanoil/overdose_process(mob/living/M, severity) + if(prob(33)) + to_chat(M, "You feel horribly weak.") + if(prob(10)) + to_chat(M, "You cannot breathe!") + M.adjustOxyLoss(5) + if(prob(5)) + to_chat(M, "You feel a sharp pain in your chest!") + M.adjustOxyLoss(25) + M.Stun(5) + M.Paralyse(10) + +/datum/reagent/consumable/meatslurry + name = "Meat Slurry" + id = "meatslurry" + description = "A paste comprised of highly-processed organic material. Uncomfortably similar to deviled ham spread." + reagent_state = LIQUID + color = "#EBD7D7" + +/datum/reagent/consumable/meatslurry/on_mob_life(mob/living/M) + if(prob(4)) + M.reagents.add_reagent("cholesterol", rand(1,3)) + ..() + +/datum/reagent/consumable/meatslurry/reaction_turf(turf/T, volume) + if(volume >= 5 && prob(10) && !istype(T, /turf/space)) + new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T) + playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) + +/datum/reagent/consumable/mashedpotatoes + name = "Mashed potatoes" + id = "mashedpotatoes" + description = "A starchy food paste made from boiled potatoes." + reagent_state = SOLID + color = "#D6D9C1" + +/datum/reagent/consumable/gravy + name = "Gravy" + id = "gravy" + description = "A savory sauce made from a simple meat-dripping roux and milk." + reagent_state = LIQUID + color = "#B4641B" + +/datum/reagent/consumable/beff + name = "Beff" + id = "beff" + description = "An advanced blend of mechanically-recovered meat and textured synthesized protein product notable for its unusual crystalline grain when sliced." + reagent_state = SOLID + color = "#AC7E67" + +/datum/reagent/consumable/beff/on_mob_life(mob/living/M) + if(prob(5)) + M.reagents.add_reagent("cholesterol", rand(1,3)) + if(prob(8)) + M.reagents.add_reagent(pick("blood", "corn_syrup", "synthflesh", "hydrogenated_soybeanoil", "porktonium", "toxic_slurry"), 0.8) + else if(prob(6)) + to_chat(M, "[pick("You feel ill.","Your stomach churns.","You feel queasy.","You feel sick.")]") + M.emote(pick("groan","moan")) + ..() + +/datum/reagent/consumable/pepperoni + name = "Pepperoni" + id = "pepperoni" + description = "An Italian-American variety of salami usually made from beef and pork" + reagent_state = SOLID + color = "#AC7E67" + +/datum/reagent/consumable/pepperoni/reaction_mob(mob/living/M, method=TOUCH, volume) + if(method == TOUCH) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + + if(H.wear_mask) + to_chat(H, "The pepperoni bounces off your mask!") + return + + if(H.head) + to_chat(H, "Your mask protects you from the errant pepperoni!") + return + + if(prob(50)) + M.adjustBruteLoss(1) + playsound(M, 'sound/effects/woodhit.ogg', 50, 1) + to_chat(M, "A slice of pepperoni slaps you!") + else + M.emote("burp") + to_chat(M, "My goodness, that was tasty!") + + +///Food Related, but non-nutritious /datum/reagent/sugar name = "Sugar" @@ -407,127 +717,51 @@ to_chat(M, "Ugh! Eating that was a terrible idea!") M.ForceContractDisease(new /datum/disease/food_poisoning(0)) -/datum/reagent/egg - name = "Egg" - id = "egg" - description = "A runny and viscous mixture of clear and yellow fluids." +/datum/reagent/msg + name = "Monosodium glutamate" + id = "msg" + description = "Monosodium Glutamate is a sodium salt known chiefly for its use as a controversial flavor enhancer." reagent_state = LIQUID - color = "#F0C814" - -/datum/reagent/egg/on_mob_life(mob/living/M) - if(prob(8)) - M.emote("fart") - if(prob(3)) - M.reagents.add_reagent("cholesterol", rand(1,2)) - ..() - -/datum/reagent/triple_citrus - name = "Triple Citrus" - id = "triple_citrus" - description = "A refreshing mixed drink of orange, lemon and lime juice." - reagent_state = LIQUID - color = "#23A046" - drink_icon = "triplecitrus" - drink_name = "Glass of Triplecitrus Juice" - drink_desc = "As colorful and healthy as it is delicious." - -/datum/reagent/triple_citrus/reaction_mob(mob/living/M, method=TOUCH, volume) - if(method == INGEST) - M.adjustToxLoss(-rand(1,2)) - -/datum/reagent/corn_starch - name = "Corn Starch" - id = "corn_starch" - description = "The powdered starch of maize, derived from the kernel's endosperm. Used as a thickener for gravies and puddings." - reagent_state = LIQUID - color = "#C8A5DC" - -/datum/reagent/corn_syrup - name = "Corn Syrup" - id = "corn_syrup" - description = "A sweet syrup derived from corn starch that has had its starches converted into maltose and other sugars." - reagent_state = LIQUID - color = "#C8A5DC" - -/datum/reagent/corn_syrup/on_mob_life(mob/living/M) - M.reagents.add_reagent("sugar", 1.2) - ..() - -/datum/reagent/vhfcs - name = "Very-high-fructose corn syrup" - id = "vhfcs" - description = "An incredibly sweet syrup, created from corn syrup treated with enzymes to convert its sugars into fructose." - reagent_state = LIQUID - color = "#C8A5DC" - -/datum/reagent/vhfcs/on_mob_life(mob/living/M) - M.reagents.add_reagent("sugar", 2.4) - ..() - -/datum/reagent/honey - name = "Honey" - id = "honey" - description = "A sweet substance produced by bees through partial digestion. Bee barf." - reagent_state = LIQUID - color = "#d3a308" - -/datum/reagent/honey/on_mob_life(mob/living/M) - M.reagents.add_reagent("sugar", 0.4) - if(prob(20)) - M.heal_organ_damage(3,1) - ..() - -/datum/reagent/chocolate - name = "Chocolate" - id = "chocolate" - description = "Chocolate is a delightful product derived from the seeds of the theobroma cacao tree." - reagent_state = LIQUID - nutriment_factor = 5 * REAGENTS_METABOLISM //same as pure cocoa powder, because it makes no sense that chocolate won't fill you up and make you fat - color = "#2E2418" - drink_icon = "chocolateglass" - drink_name = "Glass of chocolate" - drink_desc = "Tasty" - -/datum/reagent/chocolate/on_mob_life(mob/living/M) - M.nutrition += nutriment_factor - M.reagents.add_reagent("sugar", 0.8) - ..() - -/datum/reagent/chocolate/reaction_turf(turf/T, volume) - if(volume >= 5 && !istype(T, /turf/space)) - new /obj/item/weapon/reagent_containers/food/snacks/choc_pile(T) - -/datum/reagent/mugwort - name = "Mugwort" - id = "mugwort" - description = "A rather bitter herb once thought to hold magical protective properties." - reagent_state = LIQUID - color = "#21170E" - -/datum/reagent/mugwort/on_mob_life(mob/living/M) - if(ishuman(M) && M.mind) - if(M.mind.special_role == SPECIAL_ROLE_WIZARD) - M.adjustToxLoss(-1*REM) - M.adjustOxyLoss(-1*REM) - M.adjustBruteLoss(-1*REM) - M.adjustFireLoss(-1*REM) - ..() - -/datum/reagent/porktonium - name = "Porktonium" - id = "porktonium" - description = "A highly-radioactive pork byproduct first discovered in hotdogs." - reagent_state = LIQUID - color = "#AB5D5D" + color = "#F5F5F5" metabolization_rate = 0.2 - overdose_threshold = 133 -/datum/reagent/porktonium/overdose_process(mob/living/M, severity) - if(prob(15)) - M.reagents.add_reagent("cholesterol", rand(1,3)) - if(prob(8)) - M.reagents.add_reagent("radium", 15) - M.reagents.add_reagent("cyanide", 10) +/datum/reagent/msg/reaction_mob(mob/living/M, method=TOUCH, volume) + if(method == INGEST) + to_chat(M, "That tasted amazing!") + +/datum/reagent/msg/on_mob_life(mob/living/M) + if(prob(5)) + if(prob(10)) + M.adjustToxLoss(rand(2.4)) + if(prob(7)) + to_chat(M, "A horrible migraine overpowers you.") + M.Stun(rand(2,5)) + ..() + +/datum/reagent/cholesterol + name = "cholesterol" + id = "cholesterol" + description = "Pure cholesterol. Probably not very good for you." + reagent_state = LIQUID + color = "#FFFAC8" + +/datum/reagent/cholesterol/on_mob_life(mob/living/M) + if(volume >= 25 && prob(volume*0.15)) + to_chat(M, "Your chest feels [pick("weird","uncomfortable","nasty","gross","odd","unusual","warm")]!") + M.adjustToxLoss(rand(1,2)) + else if(volume >= 45 && prob(volume*0.08)) + to_chat(M, "Your chest [pick("hurts","stings","aches","burns")]!") + M.adjustToxLoss(rand(2,4)) + M.Stun(1) + else if(volume >= 150 && prob(volume*0.01)) + to_chat(M, "Your chest is burning with pain!") + M.Stun(1) + M.Weaken(1) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.heart_attack) + H.heart_attack = 1 + ..() /datum/reagent/fungus name = "Space fungus" @@ -548,109 +782,32 @@ else to_chat(M, "Yuck!") -/datum/reagent/chicken_soup - name = "Chicken soup" - id = "chicken_soup" - description = "An old household remedy for mild illnesses." +/datum/reagent/ectoplasm + name = "Ectoplasm" + id = "ectoplasm" + description = "A bizarre gelatinous substance supposedly derived from ghosts." reagent_state = LIQUID - color = "#B4B400" - metabolization_rate = 0.2 + color = "#8EAE7B" + process_flags = ORGANIC | SYNTHETIC //Because apparently ghosts in the shell -/datum/reagent/chicken_soup/on_mob_life(mob/living/M) - M.nutrition += 2 - ..() - -/datum/reagent/msg - name = "Monosodium glutamate" - id = "msg" - description = "Monosodium Glutamate is a sodium salt known chiefly for its use as a controversial flavor enhancer." - reagent_state = LIQUID - color = "#F5F5F5" - metabolization_rate = 0.2 - -/datum/reagent/msg/reaction_mob(mob/living/M, method=TOUCH, volume) +/datum/reagent/ectoplasm/reaction_mob(mob/living/M, method=TOUCH, volume) if(method == INGEST) - to_chat(M, "That tasted amazing!") + var/spooky_eat = pick("Ugh, why did you eat that? Your mouth feels haunted. Haunted with bad flavors.", "Ugh, why did you eat that? It has the texture of ham aspic. From the 1950s. Left out in the sun.", "Ugh, why did you eat that? It tastes like a ghost fart.", "Ugh, why did you eat that? It tastes like flavor died.") + to_chat(M, "[spooky_eat]") - -/datum/reagent/msg/on_mob_life(mob/living/M) - if(prob(5)) - if(prob(10)) - M.adjustToxLoss(rand(2.4)) - if(prob(7)) - to_chat(M, "A horrible migraine overpowers you.") - M.Stun(rand(2,5)) - ..() - -/datum/reagent/cheese - name = "Cheese" - id = "cheese" - description = "Some cheese. Pour it out to make it solid." - reagent_state = SOLID - color = "#FFFF00" - metabolization_rate = 0 //heheheh - - -/datum/reagent/cheese/on_mob_life(mob/living/M) - if(prob(3)) - M.reagents.add_reagent("cholesterol", rand(1,2)) - ..() - -/datum/reagent/cheese/reaction_turf(turf/T, volume) - if(volume >= 5 && !istype(T, /turf/space)) - new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge(T) - -/datum/reagent/fake_cheese - name = "Cheese substitute" - id = "fake_cheese" - description = "A cheese-like substance derived loosely from actual cheese." - reagent_state = LIQUID - color = "#B2B139" - overdose_threshold = 50 - -/datum/reagent/fake_cheese/overdose_process(mob/living/M, severity) +/datum/reagent/ectoplasm/on_mob_life(mob/living/M) + var/spooky_message = pick("You notice something moving out of the corner of your eye, but nothing is there...", "Your eyes twitch, you feel like something you can't see is here...", "You've got the heebie-jeebies.", "You feel uneasy.", "You shudder as if cold...", "You feel something gliding across your back...") if(prob(8)) - to_chat(M, "You feel something squirming in your stomach. Your thoughts turn to cheese and you begin to sweat.") - M.adjustToxLoss(rand(1,2)) - -/datum/reagent/weird_cheese - name = "Weird cheese" - id = "weird_cheese" - description = "Hell, I don't even know if this IS cheese. Whatever it is, it ain't normal. If you want to, pour it out to make it solid." - reagent_state = SOLID - color = "#50FF00" - metabolization_rate = 0 //heheheh - addiction_chance = 5 - -/datum/reagent/weird_cheese/on_mob_life(mob/living/M) - if(prob(5)) - M.reagents.add_reagent("cholesterol", rand(1,3)) + to_chat(M, "[spooky_message]") ..() -/datum/reagent/weird_cheese/reaction_turf(turf/T, volume) - if(volume >= 5 && !istype(T, /turf/space)) - new /obj/item/weapon/reagent_containers/food/snacks/weirdcheesewedge(T) +/datum/reagent/ectoplasm/reaction_turf(turf/T, volume) + if(volume >= 10 && !istype(T, /turf/space)) + new /obj/item/weapon/reagent_containers/food/snacks/ectoplasm(T) -/datum/reagent/beans - name = "Refried beans" - id = "beans" - description = "A dish made of mashed beans cooked with lard." - reagent_state = LIQUID - color = "#684435" +///Vomit/// -/datum/reagent/beans/on_mob_life(mob/living/M) - if(prob(10)) - M.emote("fart") - ..() - -/datum/reagent/bread - name = "Bread" - id = "bread" - description = "Bread! Yep, bread." - reagent_state = SOLID - color = "#9C5013" - -/datum/reagent/bread/reaction_turf(turf/T, volume) +/datum/reagent/consumable/bread/reaction_turf(turf/T, volume) if(volume >= 5 && !istype(T, /turf/space)) new /obj/item/weapon/reagent_containers/food/snacks/breadslice(T) @@ -676,175 +833,4 @@ /datum/reagent/greenvomit/reaction_turf(turf/T, volume) if(volume >= 5 && !istype(T, /turf/space)) new /obj/effect/decal/cleanable/vomit/green(T) - playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) - - -/datum/reagent/ectoplasm - name = "Ectoplasm" - id = "ectoplasm" - description = "A bizarre gelatinous substance supposedly derived from ghosts." - reagent_state = LIQUID - color = "#8EAE7B" - process_flags = ORGANIC | SYNTHETIC //Because apparently ghosts in the shell - -/datum/reagent/ectoplasm/reaction_mob(mob/living/M, method=TOUCH, volume) - if(method == INGEST) - var/spooky_eat = pick("Ugh, why did you eat that? Your mouth feels haunted. Haunted with bad flavors.", "Ugh, why did you eat that? It has the texture of ham aspic. From the 1950s. Left out in the sun.", "Ugh, why did you eat that? It tastes like a ghost fart.", "Ugh, why did you eat that? It tastes like flavor died.") - to_chat(M, "[spooky_eat]") - -/datum/reagent/ectoplasm/on_mob_life(mob/living/M) - var/spooky_message = pick("You notice something moving out of the corner of your eye, but nothing is there...", "Your eyes twitch, you feel like something you can't see is here...", "You've got the heebie-jeebies.", "You feel uneasy.", "You shudder as if cold...", "You feel something gliding across your back...") - if(prob(8)) - to_chat(M, "[spooky_message]") - ..() - -/datum/reagent/ectoplasm/reaction_turf(turf/T, volume) - if(volume >= 10 && !istype(T, /turf/space)) - new /obj/item/weapon/reagent_containers/food/snacks/ectoplasm(T) - -/datum/reagent/soybeanoil - name = "Space-soybean oil" - id = "soybeanoil" - description = "An oil derived from extra-terrestrial soybeans." - reagent_state = LIQUID - color = "#B1B0B0" - -/datum/reagent/soybeanoil/on_mob_life(mob/living/M) - if(prob(10)) - M.reagents.add_reagent("cholesterol", rand(1,3)) - if(prob(8)) - M.reagents.add_reagent("porktonium", 5) - ..() - -/datum/reagent/hydrogenated_soybeanoil - name = "Partially hydrogenated space-soybean oil" - id = "hydrogenated_soybeanoil" - description = "An oil derived from extra-terrestrial soybeans, with additional hydrogen atoms added to convert it into a saturated form." - reagent_state = LIQUID - color = "#B1B0B0" - metabolization_rate = 0.2 - overdose_threshold = 75 - -/datum/reagent/hydrogenated_soybeanoil/on_mob_life(mob/living/M) - if(prob(15)) - M.reagents.add_reagent("cholesterol", rand(1,3)) - if(prob(8)) - M.reagents.add_reagent("porktonium", 5) - if(volume >= 75) - metabolization_rate = 0.4 - else - metabolization_rate = 0.2 - ..() - -/datum/reagent/hydrogenated_soybeanoil/overdose_process(mob/living/M, severity) - if(prob(33)) - to_chat(M, "You feel horribly weak.") - if(prob(10)) - to_chat(M, "You cannot breathe!") - M.adjustOxyLoss(5) - if(prob(5)) - to_chat(M, "You feel a sharp pain in your chest!") - M.adjustOxyLoss(25) - M.Stun(5) - M.Paralyse(10) - -/datum/reagent/meatslurry - name = "Meat Slurry" - id = "meatslurry" - description = "A paste comprised of highly-processed organic material. Uncomfortably similar to deviled ham spread." - reagent_state = LIQUID - color = "#EBD7D7" - -/datum/reagent/meatslurry/on_mob_life(mob/living/M) - if(prob(4)) - M.reagents.add_reagent("cholesterol", rand(1,3)) - ..() - -/datum/reagent/meatslurry/reaction_turf(turf/T, volume) - if(volume >= 5 && prob(10) && !istype(T, /turf/space)) - new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T) - playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) - -/datum/reagent/mashedpotatoes - name = "Mashed potatoes" - id = "mashedpotatoes" - description = "A starchy food paste made from boiled potatoes." - reagent_state = SOLID - color = "#D6D9C1" - -/datum/reagent/gravy - name = "Gravy" - id = "gravy" - description = "A savory sauce made from a simple meat-dripping roux and milk." - reagent_state = LIQUID - color = "#B4641B" - -/datum/reagent/beff - name = "Beff" - id = "beff" - description = "An advanced blend of mechanically-recovered meat and textured synthesized protein product notable for its unusual crystalline grain when sliced." - reagent_state = SOLID - color = "#AC7E67" - -/datum/reagent/beff/on_mob_life(mob/living/M) - if(prob(5)) - M.reagents.add_reagent("cholesterol", rand(1,3)) - if(prob(8)) - M.reagents.add_reagent(pick("blood", "corn_syrup", "synthflesh", "hydrogenated_soybeanoil", "porktonium", "toxic_slurry"), 0.8) - else if(prob(6)) - to_chat(M, "[pick("You feel ill.","Your stomach churns.","You feel queasy.","You feel sick.")]") - M.emote(pick("groan","moan")) - ..() - -/datum/reagent/pepperoni - name = "Pepperoni" - id = "pepperoni" - description = "An Italian-American variety of salami usually made from beef and pork" - reagent_state = SOLID - color = "#AC7E67" - -/datum/reagent/pepperoni/reaction_mob(mob/living/M, method=TOUCH, volume) - if(method == TOUCH) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - - if(H.wear_mask) - to_chat(H, "The pepperoni bounces off your mask!") - return - - if(H.head) - to_chat(H, "Your mask protects you from the errant pepperoni!") - return - - if(prob(50)) - M.adjustBruteLoss(1) - playsound(M, 'sound/effects/woodhit.ogg', 50, 1) - to_chat(M, "A slice of pepperoni slaps you!") - else - M.emote("burp") - to_chat(M, "My goodness, that was tasty!") - -/datum/reagent/cholesterol - name = "cholesterol" - id = "cholesterol" - description = "Pure cholesterol. Probably not very good for you." - reagent_state = LIQUID - color = "#FFFAC8" - -/datum/reagent/cholesterol/on_mob_life(mob/living/M) - if(volume >= 25 && prob(volume*0.15)) - to_chat(M, "Your chest feels [pick("weird","uncomfortable","nasty","gross","odd","unusual","warm")]!") - M.adjustToxLoss(rand(1,2)) - else if(volume >= 45 && prob(volume*0.08)) - to_chat(M, "Your chest [pick("hurts","stings","aches","burns")]!") - M.adjustToxLoss(rand(2,4)) - M.Stun(1) - else if(volume >= 150 && prob(volume*0.01)) - to_chat(M, "Your chest is burning with pain!") - M.Stun(1) - M.Weaken(1) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(!H.heart_attack) - H.heart_attack = 1 - ..() \ No newline at end of file + playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 96ddcb5be3b..2f4df5ee4aa 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -691,7 +691,7 @@ /datum/reagent/medicine/antihol/on_mob_life(mob/living/M) M.SetSlur(0) M.AdjustDrunk(-4) - M.reagents.remove_all_type(/datum/reagent/ethanol, 8, 0, 1) + M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 8, 0, 1) if(M.toxloss <= 25) M.adjustToxLoss(-2.0) ..() diff --git a/code/modules/reagents/chemistry/reagents/misc.dm b/code/modules/reagents/chemistry/reagents/misc.dm index 9837e2e27dc..aa8e7b93f6d 100644 --- a/code/modules/reagents/chemistry/reagents/misc.dm +++ b/code/modules/reagents/chemistry/reagents/misc.dm @@ -416,6 +416,40 @@ M.say(pick("Bzzz...","BZZ BZZ","Bzzzzzzzzzzz...")) ..() +/datum/reagent/toxin/coffeepowder + name = "Coffee Grounds" + id = "coffeepowder" + description = "Finely ground Coffee beans, used to make coffee." + reagent_state = SOLID + color = "#5B2E0D" // rgb: 91, 46, 13 + +/datum/reagent/toxin/teapowder + name = "Ground Tea Leaves" + id = "teapowder" + description = "Finely shredded Tea leaves, used for making tea." + reagent_state = SOLID + color = "#7F8400" // rgb: 127, 132, 0 + +//Reagents used for plant fertilizers. +/datum/reagent/toxin/fertilizer + name = "fertilizer" + id = "fertilizer" + description = "A chemical mix good for growing plants with." + reagent_state = LIQUID + color = "#664330" // rgb: 102, 67, 48 + +/datum/reagent/toxin/fertilizer/eznutrient + name = "EZ Nutrient" + id = "eznutrient" + +/datum/reagent/toxin/fertilizer/left4zed + name = "Left-4-Zed" + id = "left4zed" + +/datum/reagent/toxin/fertilizer/robustharvest + name = "Robust Harvest" + id = "robustharvest" + ///Alchemical Reagents /datum/reagent/eyenewt diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index abffbcde16e..5870e4fad00 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -332,73 +332,6 @@ ..() /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/datum/reagent/condensedcapsaicin - name = "Condensed Capsaicin" - id = "condensedcapsaicin" - description = "This shit goes in pepperspray." - reagent_state = LIQUID - color = "#B31008" // rgb: 179, 16, 8 - -/datum/reagent/condensedcapsaicin/reaction_mob(mob/living/M, method=TOUCH, volume) - if(method == TOUCH) - if(ishuman(M)) - var/mob/living/carbon/human/victim = M - var/mouth_covered = 0 - var/eyes_covered = 0 - var/obj/item/safe_thing = null - if( victim.wear_mask ) - if( victim.wear_mask.flags & MASKCOVERSEYES ) - eyes_covered = 1 - safe_thing = victim.wear_mask - if( victim.wear_mask.flags & MASKCOVERSMOUTH ) - mouth_covered = 1 - safe_thing = victim.wear_mask - if( victim.head ) - if( victim.head.flags & MASKCOVERSEYES ) - eyes_covered = 1 - safe_thing = victim.head - if( victim.head.flags & MASKCOVERSMOUTH ) - 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 ) - to_chat(victim, "Your [safe_thing] protects you from the pepperspray!") - return - else if( mouth_covered ) // Reduced effects if partially protected - to_chat(victim, "Your [safe_thing] protect you from most of the pepperspray!") - if(prob(5)) - victim.emote("scream") - victim.EyeBlurry(3) - victim.EyeBlind(1) - victim.Confused(3) - victim.damageoverlaytemp = 60 - victim.Weaken(3) - victim.drop_item() - return - else if( eyes_covered ) // Eye cover is better than mouth cover - to_chat(victim, "Your [safe_thing] protects your eyes from the pepperspray!") - victim.EyeBlurry(3) - victim.damageoverlaytemp = 30 - return - else // Oh dear :D - if(prob(5)) - victim.emote("scream") - to_chat(victim, "You're sprayed directly in the eyes with pepperspray!") - victim.EyeBlurry(5) - victim.EyeBlind(2) - victim.Confused(6) - victim.damageoverlaytemp = 75 - victim.Weaken(5) - victim.drop_item() - -/datum/reagent/condensedcapsaicin/on_mob_life(mob/living/M) - if(prob(5)) - M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]") - ..() - /datum/reagent/polonium name = "Polonium" id = "polonium" diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 18f0e51b2e2..5dd4d570ee2 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -327,7 +327,7 @@ // Coffee is really bad for you with busted kidneys. // This should probably be expanded in some way, but fucked if I know // what else kidneys can process in our reagent list. - var/datum/reagent/coffee = locate(/datum/reagent/drink/coffee) in owner.reagents.reagent_list + var/datum/reagent/coffee = locate(/datum/reagent/consumable/drink/coffee) in owner.reagents.reagent_list if(coffee) if(is_bruised()) owner.adjustToxLoss(0.1 * PROCESS_ACCURACY) @@ -416,7 +416,7 @@ if(src.damage >= src.min_bruised_damage) for(var/datum/reagent/R in owner.reagents.reagent_list) // Ethanol and all drinks are bad - if(istype(R, /datum/reagent/ethanol)) + if(istype(R, /datum/reagent/consumable/ethanol)) owner.adjustToxLoss(0.1 * PROCESS_ACCURACY) // Can't cope with toxins at all