Merge remote-tracking branch 'upstream/master' into HUNKE

This commit is contained in:
Fox-McCloud
2017-08-16 18:36:30 -04:00
502 changed files with 6483 additions and 15620 deletions
+23 -56
View File
@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
var/const/TOUCH = 1
var/const/INGEST = 2
#define ADDICTION_TIME 4800 //8 minutes
@@ -27,8 +25,6 @@ var/const/INGEST = 2
for(var/path in paths)
var/datum/reagent/D = new path()
chemical_reagents_list[D.id] = D
if(!D.can_grow_in_plants)
plant_blocked_chems.Add(D.id)
if(!chemical_reactions_list)
//Chemical Reactions - Initialises all /datum/chemical_reaction into a list
// It is filtered into multiple lists within a list.
@@ -239,10 +235,10 @@ var/const/INGEST = 2
if(M && R)
R.on_mob_life(M)
if(R.volume >= R.overdose_threshold && !R.overdosed && R.overdose_threshold > 0)
R.overdosed = 1
R.overdosed = TRUE
R.overdose_start(M)
if(R.volume < R.overdose_threshold && R.overdosed)
R.overdosed = 0
R.overdosed = FALSE
if(R.overdosed)
R.overdose_process(M, R.volume >= R.overdose_threshold*2 ? 2 : 1)
@@ -493,41 +489,33 @@ var/const/INGEST = 2
//Species with PROCESS_DUO are only affected by reagents that affect both organics and synthetics, like acid and hellwater
if((R.process_flags & ORGANIC) && (R.process_flags & SYNTHETIC) && (H.species.reagent_tag & PROCESS_DUO))
can_process = 1
if(H.species && H.species.exotic_blood)
if(R.id == H.species.exotic_blood)
can_process = 0
//We'll assume that non-human mobs lack the ability to process synthetic-oriented reagents (adjust this if we need to change that assumption)
else
if(R.process_flags != SYNTHETIC)
can_process = 1
return can_process
/datum/reagents/proc/reaction(atom/A, method=TOUCH, volume_modifier = 1)
switch(method)
if(TOUCH)
for(var/datum/reagent/R in reagent_list)
if(isliving(A))
var/check = reaction_check(A, R)
if(!check)
continue
else
R.reaction_mob(A, TOUCH, R.volume*volume_modifier)
if(isturf(A))
R.reaction_turf(A, R.volume*volume_modifier)
if(isobj(A))
R.reaction_obj(A, R.volume*volume_modifier)
if(INGEST)
for(var/datum/reagent/R in reagent_list)
if(isliving(A))
var/check = reaction_check(A, R)
if(!check)
continue
else
R.reaction_mob(A, INGEST, R.volume*volume_modifier)
if(isturf(A))
R.reaction_turf(A, R.volume*volume_modifier)
if(isobj(A))
R.reaction_obj(A, R.volume*volume_modifier)
/datum/reagents/proc/reaction(atom/A, method = TOUCH, volume_modifier = 1)
var/react_type
if(isliving(A))
react_type = "LIVING"
else if(isturf(A))
react_type = "TURF"
else if(istype(A, /obj))
react_type = "OBJ"
else
return
for(var/datum/reagent/R in reagent_list)
switch(react_type)
if("LIVING")
var/check = reaction_check(A, R)
if(!check)
continue
R.reaction_mob(A, method, R.volume * volume_modifier)
if("TURF")
R.reaction_turf(A, R.volume * volume_modifier)
if("OBJ")
R.reaction_obj(A, R.volume * volume_modifier)
/datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null) // Like add_reagent but you can enter a list. Format it like this: list("toxin" = 10, "beer" = 15)
for(var/r_id in list_reagents)
@@ -695,27 +683,6 @@ var/const/INGEST = 2
return trans_data
// For random item spawning. Takes a list of paths, and returns the same list without anything that contains admin only reagents
/proc/adminReagentCheck(list/incoming)
var/list/outgoing[0]
for(var/tocheck in incoming)
if(ispath(tocheck))
var/check = new tocheck
if(istype(check, /atom))
var/atom/reagentCheck = check
var/datum/reagents/reagents = reagentCheck.reagents
var/admin = 0
for(var/reag in reagents.reagent_list)
var/datum/reagent/reagent = reag
if(reagent.admin_only)
admin = 1
break
if(!(admin))
outgoing += tocheck
else
outgoing += tocheck
return outgoing
///////////////////////////////////////////////////////////////////////////////////
+9 -9
View File
@@ -12,32 +12,32 @@
var/heart_rate_increase = 0
var/heart_rate_decrease = 0
var/heart_rate_stop = 0
var/penetrates_skin = 0 //Whether or not a reagent penetrates the skin
var/can_grow_in_plants = 1 //Determines if the reagent can be grown in plants, 0 means it cannot be grown
var/penetrates_skin = FALSE //Whether or not a reagent penetrates the skin
//Processing flags, defines the type of mobs the reagent will affect
//By default, all reagents will ONLY affect organics, not synthetics. Re-define in the reagent's definition if the reagent is meant to affect synths
var/process_flags = ORGANIC
var/admin_only = 0
var/can_synth = 1 //whether or not a mech syringe gun and synthesize this reagent
var/can_synth = TRUE //whether or not a mech syringe gun and synthesize this reagent
var/overdose_threshold = 0
var/addiction_chance = 0
var/addiction_stage = 1
var/last_addiction_dose = 0
var/overdosed = 0 // You fucked up and this is now triggering it's overdose effects, purge that shit quick.
var/overdosed = FALSE // You fucked up and this is now triggering it's overdose effects, purge that shit quick.
var/current_cycle = 1
var/drink_icon = null
var/drink_name = "Glass of ..what?"
var/drink_desc = "You can't really tell what this is."
var/taste_strength = 1 //how easy it is to taste - the more the easier
var/taste_message = "bitterness" //life's bitter by default. Cool points for using a span class for when you're tasting <span class='userdanger'>LIQUID FUCKING DEATH</span>
/datum/reagent/Destroy()
. = ..()
holder = null
/datum/reagent/proc/reaction_mob(mob/living/M, method=TOUCH, volume) //Some reagents transfer on touch, others don't; dependent on if they penetrate the skin or not.
/datum/reagent/proc/reaction_mob(mob/living/M, method = TOUCH, volume) //Some reagents transfer on touch, others don't; dependent on if they penetrate the skin or not.
if(holder) //for catching rare runtimes
if(method == TOUCH && penetrates_skin)
var/block = M.get_permeability_protection()
var/amount = round(volume * (1.0 - block), 0.1)
var/amount = round(volume * (1 - block), 0.1)
if(M.reagents)
if(amount >= 1)
M.reagents.add_reagent(id, amount)
@@ -58,7 +58,7 @@
if(AD && istype(AD, src))
AD.last_addiction_dose = world.timeofday
AD.addiction_stage = 1
return 1
return TRUE
/datum/reagent/proc/reaction_obj(obj/O, volume)
return
@@ -147,4 +147,4 @@
if(prob(5))
to_chat(M, "<span class='warning'>You feel like you can't live without [name]!</span>")
if(prob(5))
to_chat(M, "<span class='warning'>You would DIE for some [name] right now!</span>")
to_chat(M, "<span class='warning'>You would DIE for some [name] right now!</span>")
@@ -5,8 +5,8 @@
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
process_flags = ORGANIC | SYNTHETIC //Adminbuse knows no bounds!
admin_only = 1
can_synth = 0
can_synth = FALSE
taste_message = "admin abuse"
/datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/M)
M.setCloneLoss(0)
@@ -18,9 +18,9 @@
M.setBrainLoss(0)
if(ishuman(M))
var/mob/living/carbon/human/H = M
for(var/name in H.internal_organs)
var/obj/item/organ/internal/I = H.get_int_organ(name)
I.damage = max(0, I.damage-5)
for(var/thing in H.internal_organs)
var/obj/item/organ/internal/I = thing
I.take_damage(-5)
for(var/obj/item/organ/external/E in H.bodyparts)
if(E.mend_fracture())
E.perma_injury = 0
@@ -56,4 +56,5 @@
/datum/reagent/medicine/adminordrazine/nanites
name = "Nanites"
id = "nanites"
description = "Nanomachines that aid in rapid cellular regeneration."
description = "Nanomachines that aid in rapid cellular regeneration."
taste_message = "nanomachines, son"
@@ -6,9 +6,9 @@
reagent_state = LIQUID
nutriment_factor = 0 //So alcohol can fill you up! If they want to.
color = "#404030" // rgb: 64, 64, 48
can_grow_in_plants = 0 //Alcoholic drinks won't be grown in plants (would "water down" random seed chems too much)
var/dizzy_adj = 3
var/alcohol_perc = 1 //percentage of ethanol in a beverage 0.0 - 1.0
taste_message = "liquid fire"
/datum/reagent/consumable/ethanol/on_mob_life(mob/living/M)
M.AdjustDrunk(alcohol_perc)
@@ -43,6 +43,7 @@
drink_icon ="beerglass"
drink_name = "Beer glass"
drink_desc = "A freezing pint of beer"
taste_message = "beer"
/datum/reagent/consumable/ethanol/cider
name = "Cider"
@@ -54,6 +55,7 @@
drink_icon = "rewriter"
drink_name = "Cider"
drink_desc = "a refreshing glass of traditional cider"
taste_message = "cider"
/datum/reagent/consumable/ethanol/whiskey
name = "Whiskey"
@@ -72,6 +74,7 @@
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
taste_message = "class"
/datum/reagent/consumable/ethanol/gin
name = "Gin"
@@ -95,6 +98,7 @@
drink_icon = "absinthebottle"
drink_name = "Glass of Absinthe"
drink_desc = "The green fairy is going to get you now!"
taste_message = "fucking pain"
//copy paste from LSD... shoot me
/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/M)
@@ -128,6 +132,7 @@
drink_icon = "mojito"
drink_name = "Glass of Mojito"
drink_desc = "Fresh from Spesscuba."
taste_message = "mojito"
/datum/reagent/consumable/ethanol/vodka
name = "Vodka"
@@ -148,6 +153,7 @@
drink_icon = "ginvodkaglass"
drink_name = "Glass of Sake"
drink_desc = "A glass of Sake."
taste_message = "sake"
/datum/reagent/consumable/ethanol/tequila
name = "Tequila"
@@ -168,6 +174,7 @@
drink_icon = "vermouthglass"
drink_name = "Glass of Vermouth"
drink_desc = "You wonder why you're even drinking this straight."
taste_message = "vermouth"
/datum/reagent/consumable/ethanol/wine
name = "Wine"
@@ -179,6 +186,7 @@
drink_icon = "wineglass"
drink_name = "Glass of wine"
drink_desc = "A very classy looking drink."
taste_message = "wine"
/datum/reagent/consumable/ethanol/cognac
name = "Cognac"
@@ -201,6 +209,7 @@
drink_icon = "suicider"
drink_name = "Suicider"
drink_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
taste_message = "approaching death"
/datum/reagent/consumable/ethanol/ale
name = "Ale"
@@ -211,6 +220,7 @@
drink_icon = "aleglass"
drink_name = "Ale glass"
drink_desc = "A freezing pint of delicious Ale"
taste_message = "ale"
/datum/reagent/consumable/ethanol/thirteenloko
name = "Thirteen Loko"
@@ -224,6 +234,7 @@
drink_icon = "thirteen_loko_glass"
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"
taste_message = "party"
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/M)
M.AdjustDrowsy(-7)
@@ -247,6 +258,7 @@
drink_icon = "glass_brown"
drink_name = "Glass of bilk"
drink_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
taste_message = "bilk"
/datum/reagent/consumable/ethanol/atomicbomb
name = "Atomic Bomb"
@@ -258,6 +270,7 @@
drink_icon = "atomicbombglass"
drink_name = "Atomic Bomb"
drink_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing."
taste_message = "fruity alcohol"
/datum/reagent/consumable/ethanol/threemileisland
name = "THree Mile Island Iced Tea"
@@ -269,6 +282,7 @@
drink_icon = "threemileislandglass"
drink_name = "Three Mile Island Ice Tea"
drink_desc = "A glass of this is sure to prevent a meltdown."
taste_message = "fruity alcohol"
/datum/reagent/consumable/ethanol/goldschlager
name = "Goldschlager"
@@ -313,6 +327,7 @@
drink_icon = "cubalibreglass"
drink_name = "Cuba Libre"
drink_desc = "A classic mix of rum and cola."
taste_message = "fruity alcohol"
/datum/reagent/consumable/ethanol/whiskey_cola
name = "Whiskey Cola"
@@ -324,6 +339,7 @@
drink_icon = "whiskeycolaglass"
drink_name = "Whiskey Cola"
drink_desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
taste_message = "whiskey and coke"
/datum/reagent/consumable/ethanol/martini
name = "Classic Martini"
@@ -335,6 +351,7 @@
drink_icon = "martiniglass"
drink_name = "Classic Martini"
drink_desc = "Damn, the bartender even stirred it, not shook it."
taste_message = "martini"
/datum/reagent/consumable/ethanol/vodkamartini
name = "Vodka Martini"
@@ -357,6 +374,7 @@
drink_icon = "whiterussianglass"
drink_name = "White Russian"
drink_desc = "A very nice looking drink. But that's just, like, your opinion, man."
taste_message = "creamy alcohol"
/datum/reagent/consumable/ethanol/screwdrivercocktail
name = "Screwdriver"
@@ -368,6 +386,7 @@
drink_icon = "screwdriverglass"
drink_name = "Screwdriver"
drink_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
taste_message = "fruity alcohol"
/datum/reagent/consumable/ethanol/booger
name = "Booger"
@@ -379,6 +398,7 @@
drink_icon = "booger"
drink_name = "Booger"
drink_desc = "Ewww..."
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/bloody_mary
name = "Bloody Mary"
@@ -390,6 +410,7 @@
drink_icon = "bloodymaryglass"
drink_name = "Bloody Mary"
drink_desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
taste_message = "tomatoes with booze"
/datum/reagent/consumable/ethanol/gargle_blaster
name = "Pan-Galactic Gargle Blaster"
@@ -401,6 +422,7 @@
drink_icon = "gargleblasterglass"
drink_name = "Pan-Galactic Gargle Blaster"
drink_desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy."
taste_message = "the number fourty two"
/datum/reagent/consumable/ethanol/brave_bull
name = "Brave Bull"
@@ -412,6 +434,7 @@
drink_icon = "bravebullglass"
drink_name = "Brave Bull"
drink_desc = "Tequila and Coffee liquor, brought together in a mouthwatering mixture. Drink up."
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/tequila_sunrise
name = "Tequila Sunrise"
@@ -423,6 +446,7 @@
drink_icon = "tequilasunriseglass"
drink_name = "Tequila Sunrise"
drink_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
taste_message = "fruity alcohol"
/datum/reagent/consumable/ethanol/toxins_special
name = "Toxins Special"
@@ -434,6 +458,7 @@
drink_icon = "toxinsspecialglass"
drink_name = "Toxins Special"
drink_desc = "Whoah, this thing is on FIRE"
taste_message = "FIRE"
/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(mob/living/M)
if(M.bodytemperature < 330)
@@ -448,8 +473,10 @@
color = "#664300" // rgb: 102, 67, 0
alcohol_perc = 0.5
drink_icon = "beepskysmashglass"
description = "Whiskey-imbued cream, what else would you expect from the Irish."
drink_name = "Beepsky Smash"
drink_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
taste_message = "THE LAW"
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/M)
M.Stun(1)
@@ -458,13 +485,13 @@
/datum/reagent/consumable/ethanol/irish_cream
name = "Irish Cream"
id = "irishcream"
description = "Whiskey-imbued cream, what else would you expect from the Irish."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
alcohol_perc = 0.3
drink_icon = "irishcreamglass"
drink_name = "Irish Cream"
drink_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
taste_message = "creamy alcohol"
/datum/reagent/consumable/ethanol/manly_dorf
name = "The Manly Dorf"
@@ -476,6 +503,7 @@
drink_icon = "manlydorfglass"
drink_name = "The Manly Dorf"
drink_desc = "A manly concotion made from Ale and Beer. Intended for true men only."
taste_message = "manliness"
/datum/reagent/consumable/ethanol/longislandicedtea
name = "Long Island Iced Tea"
@@ -487,6 +515,7 @@
drink_icon = "longislandicedteaglass"
drink_name = "Long Island Iced Tea"
drink_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
taste_message = "fruity alcohol"
/datum/reagent/consumable/ethanol/moonshine
name = "Moonshine"
@@ -498,6 +527,7 @@
drink_icon = "glass_clear"
drink_name = "Moonshine"
drink_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
taste_message = "prohibition"
/datum/reagent/consumable/ethanol/b52
name = "B-52"
@@ -509,6 +539,7 @@
drink_icon = "b52glass"
drink_name = "B-52"
drink_desc = "Kahlua, Irish Cream, and congac. You will get bombed."
taste_message = "creamy alcohol"
/datum/reagent/consumable/ethanol/irishcoffee
name = "Irish Coffee"
@@ -520,6 +551,7 @@
drink_icon = "irishcoffeeglass"
drink_name = "Irish Coffee"
drink_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
taste_message = "coffee and booze"
/datum/reagent/consumable/ethanol/margarita
name = "Margarita"
@@ -531,6 +563,7 @@
drink_icon = "margaritaglass"
drink_name = "Margarita"
drink_desc = "On the rocks with salt on the rim. Arriba~!"
taste_message = "fruity alcohol"
/datum/reagent/consumable/ethanol/black_russian
name = "Black Russian"
@@ -542,6 +575,7 @@
drink_icon = "blackrussianglass"
drink_name = "Black Russian"
drink_desc = "For the lactose-intolerant. Still as classy as a White Russian."
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/manhattan
name = "Manhattan"
@@ -553,6 +587,7 @@
drink_icon = "manhattanglass"
drink_name = "Manhattan"
drink_desc = "The Detective's undercover drink of choice. He never could stomach gin..."
taste_message = "bitter alcohol"
/datum/reagent/consumable/ethanol/manhattan_proj
name = "Manhattan Project"
@@ -564,6 +599,7 @@
drink_icon = "proj_manhattanglass"
drink_name = "Manhattan Project"
drink_desc = "A scienitst drink of choice, for thinking how to blow up the station."
taste_message = "bitter alcohol"
/datum/reagent/consumable/ethanol/whiskeysoda
name = "Whiskey Soda"
@@ -575,6 +611,7 @@
drink_icon = "whiskeysodaglass2"
drink_name = "Whiskey Soda"
drink_desc = "Ultimate refreshment."
taste_message = "mediocrity"
/datum/reagent/consumable/ethanol/antifreeze
name = "Anti-freeze"
@@ -586,6 +623,7 @@
drink_icon = "antifreeze"
drink_name = "Anti-freeze"
drink_desc = "The ultimate refreshment."
taste_message = "poor life choices"
/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/M)
if(M.bodytemperature < 330)
@@ -602,6 +640,7 @@
drink_icon = "b&p"
drink_name = "Barefoot"
drink_desc = "Barefoot and pregnant"
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/snowwhite
name = "Snow White"
@@ -613,6 +652,7 @@
drink_icon = "snowwhite"
drink_name = "Snow White"
drink_desc = "A cold refreshment."
taste_message = "refreshing alcohol"
/datum/reagent/consumable/ethanol/demonsblood
name = "Demons Blood"
@@ -625,6 +665,7 @@
drink_icon = "demonsblood"
drink_name = "Demons Blood"
drink_desc = "Just looking at this thing makes the hair at the back of your neck stand up."
taste_message = "<span class='warning'>evil</span>"
/datum/reagent/consumable/ethanol/vodkatonic
name = "Vodka and Tonic"
@@ -637,6 +678,7 @@
drink_icon = "vodkatonicglass"
drink_name = "Vodka and Tonic"
drink_desc = "For when a gin and tonic isn't russian enough."
taste_message = "fizzy alcohol"
/datum/reagent/consumable/ethanol/ginfizz
name = "Gin Fizz"
@@ -649,6 +691,7 @@
drink_icon = "ginfizzglass"
drink_name = "Gin Fizz"
drink_desc = "Refreshingly lemony, deliciously dry."
taste_message = "fizzy alcohol"
/datum/reagent/consumable/ethanol/bahama_mama
name = "Bahama mama"
@@ -660,6 +703,7 @@
drink_icon = "bahama_mama"
drink_name = "Bahama Mama"
drink_desc = "Tropic cocktail"
taste_message = "fruity alcohol"
/datum/reagent/consumable/ethanol/singulo
name = "Singulo"
@@ -672,6 +716,7 @@
drink_icon = "singulo"
drink_name = "Singulo"
drink_desc = "A blue-space beverage."
taste_message = "infinity"
/datum/reagent/consumable/ethanol/sbiten
name = "Sbiten"
@@ -683,6 +728,7 @@
drink_icon = "sbitenglass"
drink_name = "Sbiten"
drink_desc = "A spicy mix of Vodka and Spice. Very hot."
taste_message = "spicy alcohol"
/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/M)
if(M.bodytemperature < 360)
@@ -699,6 +745,7 @@
drink_icon = "devilskiss"
drink_name = "Devils Kiss"
drink_desc = "Creepy time!"
taste_message = "blood"
/datum/reagent/consumable/ethanol/red_mead
name = "Red Mead"
@@ -710,6 +757,7 @@
drink_icon = "red_meadglass"
drink_name = "Red Mead"
drink_desc = "A True Vikings Beverage, though its color is strange."
taste_message = "blood"
/datum/reagent/consumable/ethanol/mead
name = "Mead"
@@ -722,6 +770,7 @@
drink_icon = "meadglass"
drink_name = "Mead"
drink_desc = "A Vikings Beverage, though a cheap one."
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/iced_beer
name = "Iced Beer"
@@ -733,6 +782,7 @@
drink_icon = "iced_beerglass"
drink_name = "Iced Beer"
drink_desc = "A beer so frosty, the air around it freezes."
taste_message = "refreshing alcohol"
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/M)
if(M.bodytemperature > 270)
@@ -749,6 +799,7 @@
drink_icon = "grogglass"
drink_name = "Grog"
drink_desc = "A fine and cepa drink for Space."
taste_message = "rum"
/datum/reagent/consumable/ethanol/aloe
name = "Aloe"
@@ -760,6 +811,7 @@
drink_icon = "aloe"
drink_name = "Aloe"
drink_desc = "Very, very, very good."
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/andalusia
name = "Andalusia"
@@ -771,6 +823,7 @@
drink_icon = "andalusia"
drink_name = "Andalusia"
drink_desc = "A nice, strange named drink."
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/alliescocktail
name = "Allies Cocktail"
@@ -782,6 +835,7 @@
drink_icon = "alliescocktail"
drink_name = "Allies cocktail"
drink_desc = "A drink made from your allies."
taste_message = "bitter alcohol"
/datum/reagent/consumable/ethanol/acid_spit
name = "Acid Spit"
@@ -793,6 +847,7 @@
drink_icon = "acidspitglass"
drink_name = "Acid Spit"
drink_desc = "A drink from Nanotrasen. Made from live aliens."
taste_message = "PAIN"
/datum/reagent/consumable/ethanol/amasec
name = "Amasec"
@@ -804,6 +859,7 @@
drink_icon = "amasecglass"
drink_name = "Amasec"
drink_desc = "Always handy before COMBAT!!!"
taste_message = "a stunbaton"
/datum/reagent/consumable/ethanol/neurotoxin
name = "Neuro-toxin"
@@ -817,6 +873,7 @@
drink_icon = "neurotoxinglass"
drink_name = "Neurotoxin"
drink_desc = "A drink that is guaranteed to knock you silly."
taste_message = "brain damageeeEEeee"
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/M)
if(current_cycle >= 13)
@@ -870,6 +927,7 @@
drink_icon = "changelingsting"
drink_name = "Changeling Sting"
drink_desc = "A stingy drink."
taste_message = "a tiny prick"
/datum/reagent/consumable/ethanol/irishcarbomb
name = "Irish Car Bomb"
@@ -882,6 +940,7 @@
drink_icon = "irishcarbomb"
drink_name = "Irish Car Bomb"
drink_desc = "An irish car bomb."
taste_message = "creamy alcohol"
/datum/reagent/consumable/ethanol/syndicatebomb
name = "Syndicate Bomb"
@@ -893,6 +952,7 @@
drink_icon = "syndicatebomb"
drink_name = "Syndicate Bomb"
drink_desc = "A syndicate bomb."
taste_message = "a job offer"
/datum/reagent/consumable/ethanol/erikasurprise
name = "Erika Surprise"
@@ -904,6 +964,7 @@
drink_icon = "erikasurprise"
name = "Erika Surprise"
drink_desc = "The surprise is, it's green!"
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/driestmartini
name = "Driest Martini"
@@ -916,6 +977,7 @@
drink_icon = "driestmartiniglass"
drink_name = "Driest Martini"
drink_desc = "Only for the experienced. You think you see sand floating in the glass."
taste_message = "bitter alcohol"
/datum/reagent/consumable/ethanol/driestmartini/on_mob_life(mob/living/M)
if(current_cycle >= 55 && current_cycle < 115)
@@ -931,6 +993,7 @@
drink_icon = "kahluaglass"
drink_name = "Glass of RR coffee Liquor"
drink_desc = "DAMN, THIS THING LOOKS ROBUST"
taste_message = "sweet alcohol"
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/M)
M.AdjustDizzy(-5)
@@ -948,6 +1011,7 @@
drink_icon = "ginsonic"
drink_name = "Gin and Sonic"
drink_desc = "An extremely high amperage drink. Absolutely not for the true Englishman."
taste_message = "SPEED"
/datum/reagent/ginsonic/on_mob_life(mob/living/M)
M.AdjustDrowsy(-5)
@@ -973,6 +1037,7 @@
drink_icon = "cognacglass"
drink_name = "Glass of applejack"
drink_desc = "When cider isn't strong enough, you gotta jack it."
taste_message = "strong cider"
/datum/reagent/consumable/ethanol/jackrose
name = "Jack Rose"
@@ -983,6 +1048,7 @@
drink_icon = "patronglass"
drink_name = "Jack Rose"
drink_desc = "Drinking this makes you feel like you belong in a luxury hotel bar during the 1920s."
taste_message = "style"
/datum/reagent/consumable/ethanol/drunkenblumpkin
name = "Drunken Blumpkin"
@@ -993,6 +1059,7 @@
drink_icon = "drunkenblumpkin"
drink_name = "Drunken Blumpkin"
drink_desc = "A drink for the drunks"
taste_message = "weirdness"
/datum/reagent/consumable/ethanol/eggnog
name = "Eggnog"
@@ -1004,6 +1071,7 @@
drink_icon = "glass_yellow"
drink_name = "Eggnog"
drink_desc = "For enjoying the most wonderful time of the year."
taste_message = "christmas spirit"
/datum/reagent/consumable/ethanol/dragons_breath //inaccessible to players, but here for admin shennanigans
name = "Dragon's Breath"
@@ -1012,7 +1080,8 @@
reagent_state = LIQUID
color = "#DC0000"
alcohol_perc = 1
can_synth = 0
can_synth = FALSE
taste_message = "<span class='userdanger'>LIQUID FUCKING DEATH OH GOD WHAT THE FUCK</span>"
/datum/reagent/consumable/ethanol/dragons_breath/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == INGEST && prob(20))
@@ -1060,6 +1129,7 @@
drink_icon = "synthanolglass"
drink_name = "Glass of Synthanol"
drink_desc = "The equivalent of alcohol for synthetic crewmembers. They'd find it awful if they had tastebuds too."
taste_message = "motor oil mixed with puke"
/datum/reagent/consumable/ethanol/synthanol/on_mob_life(mob/living/M)
if(!M.isSynthetic())
@@ -1139,4 +1209,4 @@
alcohol_perc = 0.25
drink_icon = "synthignonglass"
drink_name = "Glass of Synthignon"
drink_desc = "Someone mixed good wine and robot booze. Romantic, but atrocious."
drink_desc = "Someone mixed good wine and robot booze. Romantic, but atrocious."
@@ -4,7 +4,7 @@
description = ""
var/message = "The blob strikes you" //message sent to any mob hit by the blob
var/message_living = null //extension to first mob sent to only living mobs i.e. silicons have no skin to be burnt
can_synth = 0
can_synth = FALSE
/datum/reagent/blob/reaction_mob(mob/living/M, method=TOUCH, volume, show_message, touch_protection)
return round(volume * min(1.5 - touch_protection, 1), 0.1) //full touch protection means 50% volume, any prot below 0.5 means 100% volume.
@@ -4,7 +4,7 @@
description = "A fine dust containing spider eggs. Oh gosh."
reagent_state = SOLID
color = "#FFFFFF"
can_synth = 0
can_synth = FALSE
/datum/reagent/spider_eggs/on_mob_life(mob/living/M)
if(volume > 2.5)
@@ -19,7 +19,7 @@
id = "nanomachines"
description = "Microscopic construction robots."
color = "#535E66" // rgb: 83, 94, 102
can_synth = 0
can_synth = FALSE
/datum/reagent/nanomachines/on_mob_life(mob/living/carbon/M)
if(volume > 1.5)
@@ -32,7 +32,7 @@
id = "xenomicrobes"
description = "Microbes with an entirely alien cellular structure."
color = "#535E66" // rgb: 83, 94, 102
can_synth = 0
can_synth = FALSE
/datum/reagent/xenomicrobes/on_mob_life(mob/living/carbon/M)
if(volume > 1.5)
@@ -44,7 +44,7 @@
id = "fungalspores"
description = "Active fungal spores."
color = "#92D17D" // rgb: 146, 209, 125
can_synth = 0
can_synth = FALSE
/datum/reagent/fungalspores/on_mob_life(mob/living/carbon/M)
if(volume > 2.5)
@@ -57,7 +57,7 @@
description = "Rapid chemical decomposition has warped these crystals into twisted spikes."
reagent_state = SOLID
color = "#FA0000" // rgb: 250, 0, 0
can_synth = 0
can_synth = FALSE
/datum/reagent/jagged_crystals/on_mob_life(mob/living/carbon/M)
M.ForceContractDisease(new /datum/disease/berserker(0))
@@ -69,7 +69,7 @@
description = "A nasty bacteria found in spoiled food."
reagent_state = LIQUID
color = "#1E4600"
can_synth = 0
can_synth = FALSE
/datum/reagent/salmonella/on_mob_life(mob/living/carbon/M)
M.ForceContractDisease(new /datum/disease/food_poisoning(0))
@@ -81,7 +81,7 @@
description = "Liquid gibbis."
reagent_state = LIQUID
color = "#FF0000"
can_synth = 0
can_synth = FALSE
/datum/reagent/gibbis/on_mob_life(mob/living/carbon/M)
if(volume > 2.5)
@@ -94,7 +94,7 @@
description = "A disease-causing agent that is neither bacterial nor fungal nor viral and contains no genetic material."
reagent_state = LIQUID
color = "#FFFFFF"
can_synth = 0
can_synth = FALSE
/datum/reagent/prions/on_mob_life(mob/living/carbon/M)
if(volume > 4.5)
@@ -107,7 +107,7 @@
description = "Moldy old dust taken from a grave site."
reagent_state = LIQUID
color = "#465046"
can_synth = 0
can_synth = FALSE
/datum/reagent/grave_dust/on_mob_life(mob/living/carbon/M)
if(volume > 4.5)
@@ -120,7 +120,7 @@
description = "Aww, gross! These things can't be good for your heart. They're gunna eat it!"
reagent_state = SOLID
color = "#925D6C"
can_synth = 0
can_synth = FALSE
/datum/reagent/heartworms/on_mob_life(mob/living/carbon/M)
if(volume > 4.5)
@@ -138,7 +138,7 @@
description = "A guaranteed heart-stopper!"
reagent_state = LIQUID
color = "#AB1CCF"
can_synth = 0
can_synth = FALSE
/datum/reagent/concentrated_initro/on_mob_life(mob/living/M)
if(volume >= 5)
@@ -146,6 +146,7 @@
var/mob/living/carbon/human/H = M
if(!H.undergoing_cardiac_arrest())
H.set_heartattack(TRUE) // rip in pepperoni
..()
//virus foods
@@ -23,4 +23,4 @@
if(adj_temp_cool)
if(M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = max(310, M.bodytemperature - (adj_temp_cool * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
..()
@@ -1,6 +1,7 @@
/datum/reagent/consumable/drink/cold
name = "Cold drink"
adj_temp_cool = 5
taste_message = null
/datum/reagent/consumable/drink/cold/tonic
name = "Tonic Water"
@@ -50,6 +51,7 @@
drink_icon = "glass_brown"
drink_name = "Glass of Space Cola"
drink_desc = "A glass of refreshing Space Cola"
taste_message = "cola"
/datum/reagent/consumable/drink/cold/nuka_cola
name = "Nuka Cola"
@@ -60,6 +62,7 @@
drink_icon = "nuka_colaglass"
drink_name = "Nuka Cola"
drink_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland"
taste_message = "cola"
/datum/reagent/consumable/drink/cold/nuka_cola/on_mob_life(mob/living/M)
M.Jitter(20)
@@ -83,6 +86,7 @@
drink_icon = "Space_mountain_wind_glass"
drink_name = "Glass of Space Mountain Wind"
drink_desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind."
taste_message = "lime soda"
/datum/reagent/consumable/drink/cold/dr_gibb
name = "Dr. Gibb"
@@ -93,6 +97,7 @@
drink_icon = "dr_gibb_glass"
drink_name = "Glass of Dr. Gibb"
drink_desc = "Dr. Gibb. Not as dangerous as the name might imply."
taste_message = "cherry soda"
/datum/reagent/consumable/drink/cold/space_up
name = "Space-Up"
@@ -103,6 +108,7 @@
drink_icon = "space-up_glass"
drink_name = "Glass of Space-up"
drink_desc = "Space-up. It helps keep your cool."
taste_message = "lemon soda"
/datum/reagent/consumable/drink/cold/lemon_lime
name = "Lemon Lime"
@@ -110,6 +116,7 @@
id = "lemon_lime"
color = "#878F00" // rgb: 135, 40, 0
adj_temp_cool = 8
taste_message = "citrus soda"
/datum/reagent/consumable/drink/cold/lemonade
name = "Lemonade"
@@ -119,6 +126,7 @@
drink_icon = "lemonade"
drink_name = "Lemonade"
drink_desc = "Oh the nostalgia..."
taste_message = "lemonade"
/datum/reagent/consumable/drink/cold/kiraspecial
name = "Kira Special"
@@ -128,6 +136,7 @@
drink_icon = "kiraspecial"
drink_name = "Kira Special"
drink_desc = "Long live the guy who everyone had mistaken for a girl. Baka!"
taste_message = "citrus soda"
/datum/reagent/consumable/drink/cold/brownstar
name = "Brown Star"
@@ -138,6 +147,7 @@
drink_icon = "brownstar"
drink_name = "Brown Star"
drink_desc = "Its not what it sounds like..."
taste_message = "orange soda"
/datum/reagent/consumable/drink/cold/milkshake
name = "Milkshake"
@@ -148,6 +158,7 @@
drink_icon = "milkshake"
drink_name = "Milkshake"
drink_desc = "Glorious brainfreezing mixture."
taste_message = "milkshake"
/datum/reagent/consumable/drink/cold/rewriter
name = "Rewriter"
@@ -157,7 +168,8 @@
drink_icon = "rewriter"
drink_name = "Rewriter"
drink_desc = "The secert of the sanctuary of the Libarian..."
taste_message = "coffee...soda?"
/datum/reagent/consumable/drink/cold/rewriter/on_mob_life(mob/living/M)
M.Jitter(5)
..()
..()
@@ -6,6 +6,7 @@
drink_icon = "glass_orange"
drink_name = "Glass of Orange juice"
drink_desc = "Vitamins! Yay!"
taste_message = "orange juice"
/datum/reagent/consumable/drink/orangejuicde/on_mob_life(mob/living/M)
if(M.getOxyLoss() && prob(30))
@@ -20,6 +21,7 @@
drink_icon = "glass_red"
drink_name = "Glass of Tomato juice"
drink_desc = "Are you sure this is tomato juice?"
taste_message = "tomato juice"
/datum/reagent/consumable/drink/tomatojuice/on_mob_life(mob/living/M)
if(M.getFireLoss() && prob(20))
@@ -34,6 +36,7 @@
drink_icon = "glass_green"
drink_name = "Glass of Lime juice"
drink_desc = "A glass of sweet-sour lime juice."
taste_message = "lime juice"
/datum/reagent/consumable/drink/limejuice/on_mob_life(mob/living/M)
if(M.getToxLoss() && prob(20))
@@ -48,6 +51,7 @@
drink_icon = "carrotjuice"
drink_name = "Glass of carrot juice"
drink_desc = "It is just like a carrot but without crunching."
taste_message = "carrot juice"
/datum/reagent/consumable/drink/carrotjuicde/on_mob_life(mob/living/M)
M.AdjustEyeBlurry(-1)
@@ -69,6 +73,7 @@
drink_icon = "doctorsdelightglass"
drink_name = "Doctor's Delight"
drink_desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
taste_message = "healthy dietary choices"
/datum/reagent/consumable/drink/doctors_delight/on_mob_life(mob/living/M)
if(M.getToxLoss() && prob(20))
@@ -84,6 +89,7 @@
drink_icon = "triplecitrus"
drink_name = "Glass of Triplecitrus Juice"
drink_desc = "As colorful and healthy as it is delicious."
taste_message = "citrus juice"
/datum/reagent/consumable/drink/triple_citrus/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == INGEST)
@@ -97,6 +103,7 @@
drink_icon = "berryjuice"
drink_name = "Glass of berry juice"
drink_desc = "Berry juice. Or maybe its jam. Who cares?"
taste_message = "berry juice"
/datum/reagent/consumable/drink/poisonberryjuice
name = "Poison Berry Juice"
@@ -106,6 +113,7 @@
drink_icon = "poisonberryjuice"
drink_name = "Glass of poison berry juice"
drink_desc = "A glass of deadly juice."
taste_message = "berry juice"
/datum/reagent/consumable/drink/poisonberryjuice/on_mob_life(mob/living/M)
M.adjustToxLoss(1)
@@ -116,12 +124,14 @@
id = "applejuice"
description = "The sweet juice of an apple, fit for all ages."
color = "#ECFF56" // rgb: 236, 255, 86
taste_message = "apple juice"
/datum/reagent/consumable/drink/watermelonjuice
name = "Watermelon Juice"
id = "watermelonjuice"
description = "Delicious juice made from watermelon."
color = "#863333" // rgb: 134, 51, 51
taste_message = "watermelon juice"
/datum/reagent/consumable/drink/lemonjuice
name = "Lemon Juice"
@@ -131,12 +141,14 @@
drink_icon = "lemonglass"
drink_name = "Glass of lemonjuice"
drink_desc = "Sour..."
taste_message = "lemon juice"
/datum/reagent/consumable/drink/grapejuice
name = "Grape Juice"
id = "grapejuice"
description = "This juice is known to stain shirts."
color = "#993399" // rgb: 153, 51, 153
taste_message = "grape juice"
/datum/reagent/consumable/drink/banana
name = "Banana Juice"
@@ -146,6 +158,7 @@
drink_icon = "banana"
drink_name = "Glass of banana juice"
drink_desc = "The raw essence of a banana. HONK"
taste_message = "banana juice"
/datum/reagent/consumable/drink/banana/on_mob_life(mob/living/M)
if((ishuman(M) && M.job in list("Clown") ) || issmall(M))
@@ -160,6 +173,7 @@
drink_icon = "nothing"
drink_name = "Nothing"
drink_desc = "Absolutely nothing."
taste_message = "nothing... how?"
/datum/reagent/consumable/drink/nothing/on_mob_life(mob/living/M)
if(ishuman(M) && M.job in list("Mime"))
@@ -176,6 +190,7 @@
drink_icon = "glass_brown"
drink_name = "Glass of potato juice"
drink_desc = "Who in the hell requests this? Gross!"
taste_message = "puke, you're pretty sure"
/datum/reagent/consumable/drink/milk
name = "Milk"
@@ -185,6 +200,7 @@
drink_icon = "glass_white"
drink_name = "Glass of milk"
drink_desc = "White and nutritious goodness!"
taste_message = "milk"
/datum/reagent/consumable/drink/milk/on_mob_life(mob/living/M)
if(M.getBruteLoss() && prob(20))
@@ -200,6 +216,7 @@
color = "#DFDFC7" // rgb: 223, 223, 199
drink_name = "Glass of soy milk"
drink_desc = "White and nutritious soy goodness!"
taste_message = "fake milk"
/datum/reagent/consumable/drink/milk/cream
name = "Cream"
@@ -208,12 +225,14 @@
color = "#DFD7AF" // rgb: 223, 215, 175
drink_name = "Glass of cream"
drink_desc = "Ewwww..."
taste_message = "cream"
/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"
taste_message = "chocolate milk"
/datum/reagent/consumable/drink/hot_coco
name = "Hot Chocolate"
@@ -225,6 +244,7 @@
drink_icon = "hot_coco"
drink_name = "Glass of hot coco"
drink_desc = "Delicious and cozy"
taste_message = "chocolate"
/datum/reagent/consumable/drink/coffee
name = "Coffee"
@@ -242,6 +262,7 @@
drink_icon = "glass_brown"
drink_name = "Glass of coffee"
drink_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere."
taste_message = "coffee"
/datum/reagent/consumable/drink/coffee/on_mob_life(mob/living/M)
if(holder.has_reagent("frostoil"))
@@ -266,6 +287,7 @@
drink_icon = "icedcoffeeglass"
drink_name = "Iced Coffee"
drink_desc = "A drink to perk you up and refresh you!"
taste_message = "coffee"
/datum/reagent/consumable/drink/coffee/soy_latte
name = "Soy Latte"
@@ -322,6 +344,7 @@
drink_icon = "glass_brown"
drink_name = "Glass of Tea"
drink_desc = "A glass of hot tea. Perhaps a cup with a handle would have been smarter?"
taste_message = "tea"
/datum/reagent/consumable/drink/tea/on_mob_life(mob/living/M)
if(M.getToxLoss() && prob(20))
@@ -347,6 +370,7 @@
drink_icon = "bananahonkglass"
drink_name = "Banana Honk"
drink_desc = "A drink from Banana Heaven."
taste_message = "honks"
/datum/reagent/consumable/drink/bananahonk/on_mob_life(mob/living/M)
if((ishuman(M) && M.job in list("Clown") ) || issmall(M))
@@ -362,6 +386,7 @@
drink_icon = "silencerglass"
drink_name = "Silencer"
drink_desc = "A drink from mime Heaven."
taste_message = "mphhhh"
/datum/reagent/consumable/drink/silencer/on_mob_life(mob/living/M)
if(ishuman(M) && M.job in list("Mime"))
@@ -378,6 +403,7 @@
drink_icon = "chocolatepudding"
drink_name = "Chocolate Pudding"
drink_desc = "Tasty"
taste_message = "chocolate"
/datum/reagent/consumable/drink/vanillapudding
name = "Vanilla Pudding"
@@ -388,6 +414,7 @@
drink_icon = "vanillapudding"
drink_name = "Vanilla Pudding"
drink_desc = "Tasty."
taste_message = "vanilla"
/datum/reagent/consumable/drink/cherryshake
name = "Cherry Shake"
@@ -398,6 +425,7 @@
drink_icon = "cherryshake"
drink_name = "Cherry Shake"
drink_desc = "A cherry flavored milkshake."
taste_message = "cherry milkshake"
/datum/reagent/consumable/drink/bluecherryshake
name = "Blue Cherry Shake"
@@ -408,6 +436,7 @@
drink_icon = "bluecherryshake"
drink_name = "Blue Cherry Shake"
drink_desc = "An exotic blue milkshake."
taste_message = "cherry milkshake"
/datum/reagent/consumable/drink/pumpkin_latte
name = "Pumpkin Latte"
@@ -418,6 +447,7 @@
drink_icon = "pumpkin_latte"
drink_name = "Pumpkin Latte"
drink_desc = "A mix of coffee and pumpkin juice."
taste_message = "overpriced hipster spices"
/datum/reagent/consumable/drink/gibbfloats
name = "Gibb Floats"
@@ -428,21 +458,25 @@
drink_icon= "gibbfloats"
drink_name = "Gibbfloat"
drink_desc = "Dr. Gibb with ice cream on top."
taste_message = "taste revolution"
/datum/reagent/consumable/drink/pumpkinjuice
name = "Pumpkin Juice"
id = "pumpkinjuice"
description = "Juiced from real pumpkin."
color = "#FFA500"
taste_message = "autumn"
/datum/reagent/consumable/drink/blumpkinjuice
name = "Blumpkin Juice"
id = "blumpkinjuice"
description = "Juiced from real blumpkin."
color = "#00BFFF"
taste_message = "caustic puke"
/datum/reagent/consumable/drink/grape_soda
name = "Grape soda"
id = "grapesoda"
description = "Beloved of children and teetotalers."
color = "#E6CDFF"
color = "#E6CDFF"
taste_message = "grape soda"
@@ -439,6 +439,7 @@
reagent_state = LIQUID
color = "#644600"
addiction_chance = 30
taste_message = "puke... or worse"
/datum/reagent/jenkem/on_mob_life(mob/living/M)
M.Dizzy(5)
@@ -500,6 +501,7 @@
overdose_threshold = 15
process_flags = ORGANIC | SYNTHETIC //Flipping for everyone!
addiction_chance = 10
taste_message = "flips"
/datum/reagent/fliptonium/on_mob_life(mob/living/M)
if(current_cycle == 5)
@@ -575,6 +577,7 @@
overdose_threshold = 20
addiction_chance = 60
metabolization_rate = 0.6
taste_message = "wiper fluid"
/datum/reagent/lube/ultra/on_mob_life(mob/living/M)
var/high_message = pick("You feel your servos whir!", "You feel like you need to go faster.", "You feel like you were just overclocked!")
@@ -622,6 +625,7 @@
process_flags = SYNTHETIC
overdose_threshold = 20
addiction_chance = 50
taste_message = "silicone"
/datum/reagent/surge/on_mob_life(mob/living/M)
@@ -651,4 +655,4 @@
B.pixel_y = rand(-20, 0)
B.icon = I
M.adjustFireLoss(rand(1,5)*REAGENTS_EFFECT_MULTIPLIER)
M.adjustBruteLoss(rand(1,5)*REAGENTS_EFFECT_MULTIPLIER)
M.adjustBruteLoss(rand(1,5)*REAGENTS_EFFECT_MULTIPLIER)
@@ -23,6 +23,7 @@
reagent_state = SOLID
nutriment_factor = 15 * REAGENTS_METABOLISM
color = "#664330" // rgb: 102, 67, 48
taste_message = "bland food"
/datum/reagent/consumable/nutriment/on_mob_life(mob/living/M)
if(!(M.mind in ticker.mode.vampires))
@@ -31,7 +32,7 @@
if(H.can_eat(diet_flags)) //Make sure the species has it's dietflag set, otherwise it can't digest any nutrients
if(prob(50))
M.adjustBruteLoss(-1)
if(!(H.species.flags & NO_BLOOD))//do not restore blood on things with no blood by nature.
if(!(NO_BLOOD in H.species.species_traits))//do not restore blood on things with no blood by nature.
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
H.blood_volume += 0.4
..()
@@ -41,12 +42,14 @@
id = "protein"
description = "Various essential proteins and fats commonly found in animal flesh and blood."
diet_flags = DIET_CARN | DIET_OMNI
taste_message = "meat"
/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."
diet_flags = DIET_HERB | DIET_OMNI
taste_message = "plant matter"
/datum/reagent/consumable/vitamin
name = "Vitamin"
@@ -54,6 +57,7 @@
description = "All the best vitamins, minerals, and carbohydrates the body needs in pure form."
reagent_state = SOLID
color = "#664330" // rgb: 102, 67, 48
taste_message = null
/datum/reagent/consumable/vitamin/on_mob_life(mob/living/M)
if(prob(50))
@@ -63,7 +67,7 @@
M.satiety += 30
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!(H.species.flags & NO_BLOOD))//do not restore blood on things with no blood by nature.
if(!(NO_BLOOD in H.species.species_traits))//do not restore blood on things with no blood by nature.
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
H.blood_volume += 0.5
..()
@@ -76,6 +80,7 @@
color = "#FFFFFF" // rgb: 255, 255, 255
nutriment_factor = 5 * REAGENTS_METABOLISM
overdose_threshold = 200 // Hyperglycaemic shock
taste_message = "sweetness"
/datum/reagent/consumable/sugar/on_mob_life(mob/living/M)
M.AdjustDrowsy(-5)
@@ -107,6 +112,7 @@
reagent_state = LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#792300" // rgb: 121, 35, 0
taste_message = "salt"
/datum/reagent/consumable/ketchup
name = "Ketchup"
@@ -115,6 +121,7 @@
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#731008" // rgb: 115, 16, 8
taste_message = "ketchup"
/datum/reagent/consumable/capsaicin
name = "Capsaicin Oil"
@@ -122,6 +129,7 @@
description = "This is what makes chilis hot."
reagent_state = LIQUID
color = "#B31008" // rgb: 179, 16, 8
taste_message = "<span class='warning'>HOTNESS</span>"
/datum/reagent/consumable/capsaicin/on_mob_life(mob/living/M)
switch(current_cycle)
@@ -151,6 +159,7 @@
description = "This shit goes in pepperspray."
reagent_state = LIQUID
color = "#B31008" // rgb: 179, 16, 8
taste_message = "<span class='userdanger'>PURE FIRE</span>"
/datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/M)
if(prob(5))
@@ -219,6 +228,7 @@
reagent_state = LIQUID
color = "#8BA6E9" // rgb: 139, 166, 233
process_flags = ORGANIC | SYNTHETIC
taste_message = "<font color='lightblue'>cold</span>"
/datum/reagent/consumable/frostoil/on_mob_life(mob/living/M)
switch(current_cycle)
@@ -258,6 +268,7 @@
reagent_state = SOLID
color = "#B1B0B0"
overdose_threshold = 100
taste_message = "salt"
/datum/reagent/consumable/sodiumchloride/overdose_process(mob/living/M, severity)
if(prob(70))
@@ -269,6 +280,7 @@
id = "blackpepper"
description = "A powder ground from peppercorns. *AAAACHOOO*"
reagent_state = SOLID
taste_message = "pepper"
/datum/reagent/consumable/cocoa
name = "Cocoa Powder"
@@ -277,6 +289,7 @@
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
taste_message = "bitter cocoa"
/datum/reagent/consumable/vanilla
name = "Vanilla Powder"
@@ -285,6 +298,7 @@
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#FFFACD"
taste_message = "bitter vanilla"
/datum/reagent/consumable/hot_coco
name = "Hot Chocolate"
@@ -293,6 +307,7 @@
reagent_state = LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#403010" // rgb: 64, 48, 16
taste_message = "chocolate"
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/M)
if(M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
@@ -304,6 +319,7 @@
id = "sprinkles"
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
color = "#FF00FF" // rgb: 255, 0, 255
taste_message = "sweetness"
/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"))
@@ -318,6 +334,7 @@
reagent_state = LIQUID
nutriment_factor = 20 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
taste_message = "oil"
/datum/reagent/consumable/cornoil/reaction_turf(turf/simulated/T, volume)
if(!istype(T))
@@ -338,6 +355,7 @@
description = "Heated beyond usefulness, this enzyme is now worthless."
reagent_state = LIQUID
color = "#282314" // rgb: 54, 94, 48
taste_message = null
/datum/reagent/consumable/dry_ramen
name = "Dry Ramen"
@@ -345,6 +363,7 @@
description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
reagent_state = SOLID
color = "#302000" // rgb: 48, 32, 0
taste_message = "dry ramen coated with what might just be your tears"
/datum/reagent/consumable/hot_ramen
name = "Hot Ramen"
@@ -353,6 +372,7 @@
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
taste_message = "ramen"
/datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/M)
if(M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
@@ -366,6 +386,7 @@
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
taste_message = "SPICY ramen"
/datum/reagent/consumable/hell_ramen/on_mob_life(mob/living/M)
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
@@ -377,9 +398,10 @@
description = "This is what you rub all over yourself to pretend to be a ghost."
reagent_state = SOLID
color = "#FFFFFF" // rgb: 0, 0, 0
taste_message = "flour"
/datum/reagent/consumable/flour/reaction_turf(turf/T, volume)
if(!istype(T, /turf/space))
if(!isspaceturf(T))
new /obj/effect/decal/cleanable/flour(T)
/datum/reagent/consumable/rice
@@ -389,6 +411,7 @@
reagent_state = SOLID
nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#FFFFFF" // rgb: 0, 0, 0
taste_message = "rice"
/datum/reagent/consumable/cherryjelly
name = "Cherry Jelly"
@@ -396,6 +419,7 @@
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
reagent_state = LIQUID
color = "#801E28" // rgb: 128, 30, 40
taste_message = "cherry jelly"
/datum/reagent/consumable/bluecherryjelly
name = "Blue Cherry Jelly"
@@ -403,6 +427,7 @@
description = "Blue and tastier kind of cherry jelly."
reagent_state = LIQUID
color = "#00F0FF"
taste_message = "cherry jelly"
/datum/reagent/consumable/egg
name = "Egg"
@@ -410,6 +435,7 @@
description = "A runny and viscous mixture of clear and yellow fluids."
reagent_state = LIQUID
color = "#F0C814"
taste_message = "eggs"
/datum/reagent/consumable/egg/on_mob_life(mob/living/M)
if(prob(8))
@@ -424,6 +450,7 @@
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"
taste_message = "flour"
/datum/reagent/consumable/corn_syrup
name = "Corn Syrup"
@@ -431,6 +458,7 @@
description = "A sweet syrup derived from corn starch that has had its starches converted into maltose and other sugars."
reagent_state = LIQUID
color = "#C8A5DC"
taste_message = "sweetness"
/datum/reagent/consumable/corn_syrup/on_mob_life(mob/living/M)
M.reagents.add_reagent("sugar", 1.2)
@@ -442,6 +470,7 @@
description = "An incredibly sweet syrup, created from corn syrup treated with enzymes to convert its sugars into fructose."
reagent_state = LIQUID
color = "#C8A5DC"
taste_message = "diabetes"
/datum/reagent/consumable/vhfcs/on_mob_life(mob/living/M)
M.reagents.add_reagent("sugar", 2.4)
@@ -454,6 +483,7 @@
reagent_state = LIQUID
color = "#d3a308"
nutriment_factor = 15 * REAGENTS_METABOLISM
taste_message = "sweetness"
/datum/reagent/consumable/honey/on_mob_life(mob/living/M)
M.reagents.add_reagent("sugar", 3)
@@ -462,6 +492,25 @@
M.adjustFireLoss(-1)
..()
/datum/reagent/consumable/onion
name = "Concentrated Onion Juice"
id = "onionjuice"
description = "A strong tasting substance that can induce partial blindness."
color = "#c0c9a0"
taste_message = "bitterness"
/datum/reagent/consumable/onion/reaction_mob(mob/living/M, method = TOUCH, volume)
if(method == TOUCH)
if(!M.is_mouth_covered() && !M.is_eyes_covered())
if(!M.get_organ_slot("eyes")) //can't blind somebody with no eyes
to_chat(M, "<span class = 'notice'>Your eye sockets feel wet.</span>")
else
if(!M.eye_blurry)
to_chat(M, "<span class = 'warning'>Tears well up in your eyes!</span>")
M.EyeBlind(2)
M.EyeBlurry(5)
..()
/datum/reagent/consumable/chocolate
name = "Chocolate"
id = "chocolate"
@@ -472,13 +521,14 @@
drink_icon = "chocolateglass"
drink_name = "Glass of chocolate"
drink_desc = "Tasty"
taste_message = "chocolate"
/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))
if(volume >= 5 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/choc_pile(T)
/datum/reagent/consumable/mugwort
@@ -487,6 +537,7 @@
description = "A rather bitter herb once thought to hold magical protective properties."
reagent_state = LIQUID
color = "#21170E"
taste_message = "tea"
/datum/reagent/consumable/mugwort/on_mob_life(mob/living/M)
if(ishuman(M) && M.mind)
@@ -505,6 +556,7 @@
color = "#AB5D5D"
metabolization_rate = 0.2
overdose_threshold = 133
taste_message = "bacon"
/datum/reagent/consumable/porktonium/overdose_process(mob/living/M, severity)
if(prob(15))
@@ -521,6 +573,7 @@
color = "#B4B400"
metabolization_rate = 0.2
nutriment_factor = 2
taste_message = "broth"
/datum/reagent/consumable/cheese
name = "Cheese"
@@ -528,6 +581,7 @@
description = "Some cheese. Pour it out to make it solid."
reagent_state = SOLID
color = "#FFFF00"
taste_message = "cheese"
/datum/reagent/consumable/cheese/on_mob_life(mob/living/M)
if(prob(3))
@@ -535,7 +589,7 @@
..()
/datum/reagent/consumable/cheese/reaction_turf(turf/T, volume)
if(volume >= 5 && !istype(T, /turf/space))
if(volume >= 5 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge(T)
/datum/reagent/consumable/fake_cheese
@@ -545,6 +599,7 @@
reagent_state = LIQUID
color = "#B2B139"
overdose_threshold = 50
taste_message = "cheese?"
/datum/reagent/consumable/fake_cheese/overdose_process(mob/living/M, severity)
if(prob(8))
@@ -558,6 +613,7 @@
reagent_state = SOLID
color = "#50FF00"
addiction_chance = 5
taste_message = "cheeeeeese...?"
/datum/reagent/consumable/weird_cheese/on_mob_life(mob/living/M)
if(prob(5))
@@ -565,7 +621,7 @@
..()
/datum/reagent/consumable/weird_cheese/reaction_turf(turf/T, volume)
if(volume >= 5 && !istype(T, /turf/space))
if(volume >= 5 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/weirdcheesewedge(T)
/datum/reagent/consumable/beans
@@ -574,6 +630,7 @@
description = "A dish made of mashed beans cooked with lard."
reagent_state = LIQUID
color = "#684435"
taste_message = "burritos"
/datum/reagent/consumable/beans/on_mob_life(mob/living/M)
if(prob(10))
@@ -586,6 +643,7 @@
description = "Bread! Yep, bread."
reagent_state = SOLID
color = "#9C5013"
taste_message = "bread"
/datum/reagent/consumable/soybeanoil
name = "Space-soybean oil"
@@ -593,6 +651,7 @@
description = "An oil derived from extra-terrestrial soybeans."
reagent_state = LIQUID
color = "#B1B0B0"
taste_message = "oil"
/datum/reagent/consumable/soybeanoil/on_mob_life(mob/living/M)
if(prob(10))
@@ -609,6 +668,7 @@
color = "#B1B0B0"
metabolization_rate = 0.2
overdose_threshold = 75
taste_message = "oil"
/datum/reagent/consumable/hydrogenated_soybeanoil/on_mob_life(mob/living/M)
if(prob(15))
@@ -639,6 +699,7 @@
description = "A paste comprised of highly-processed organic material. Uncomfortably similar to deviled ham spread."
reagent_state = LIQUID
color = "#EBD7D7"
taste_message = "meat"
/datum/reagent/consumable/meatslurry/on_mob_life(mob/living/M)
if(prob(4))
@@ -646,7 +707,7 @@
..()
/datum/reagent/consumable/meatslurry/reaction_turf(turf/T, volume)
if(volume >= 5 && prob(10) && !istype(T, /turf/space))
if(prob(10) && volume >= 5 && !isspaceturf(T))
new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T)
playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
@@ -656,6 +717,7 @@
description = "A starchy food paste made from boiled potatoes."
reagent_state = SOLID
color = "#D6D9C1"
taste_message = "potatoes"
/datum/reagent/consumable/gravy
name = "Gravy"
@@ -663,6 +725,7 @@
description = "A savory sauce made from a simple meat-dripping roux and milk."
reagent_state = LIQUID
color = "#B4641B"
taste_message = "gravy"
/datum/reagent/consumable/beff
name = "Beff"
@@ -670,6 +733,7 @@
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"
taste_message = "meat"
/datum/reagent/consumable/beff/on_mob_life(mob/living/M)
if(prob(5))
@@ -687,6 +751,7 @@
description = "An Italian-American variety of salami usually made from beef and pork"
reagent_state = SOLID
color = "#AC7E67"
taste_message = "pepperoni"
/datum/reagent/consumable/pepperoni/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == TOUCH)
@@ -718,6 +783,7 @@
description = "A gross and unidentifiable substance."
reagent_state = LIQUID
color = "#63DE63"
taste_message = "burned food"
/datum/reagent/questionmark/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == INGEST)
@@ -733,6 +799,7 @@
reagent_state = LIQUID
color = "#F5F5F5"
metabolization_rate = 0.2
taste_message = "excellent cuisine"
/datum/reagent/msg/on_mob_life(mob/living/M)
if(prob(5))
@@ -743,16 +810,13 @@
M.Stun(rand(2,5))
..()
/datum/reagent/msg/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == INGEST)
to_chat(M, "<span class='notice'>That tasted amazing!</span>")
/datum/reagent/cholesterol
name = "cholesterol"
id = "cholesterol"
description = "Pure cholesterol. Probably not very good for you."
reagent_state = LIQUID
color = "#FFFAC8"
taste_message = "heart attack"
/datum/reagent/cholesterol/on_mob_life(mob/living/M)
if(volume >= 25 && prob(volume*0.15))
@@ -778,6 +842,7 @@
description = "Scrapings of some unknown fungus found growing on the station walls."
reagent_state = LIQUID
color = "#C87D28"
taste_message = "mold"
/datum/reagent/fungus/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == INGEST)
@@ -798,6 +863,7 @@
reagent_state = LIQUID
color = "#8EAE7B"
process_flags = ORGANIC | SYNTHETIC //Because apparently ghosts in the shell
taste_message = "spooks"
/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...")
@@ -811,13 +877,13 @@
to_chat(M, "<span class='warning'>[spooky_eat]</span>")
/datum/reagent/ectoplasm/reaction_turf(turf/T, volume)
if(volume >= 10 && !istype(T, /turf/space))
if(volume >= 10 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/ectoplasm(T)
///Vomit///
/datum/reagent/consumable/bread/reaction_turf(turf/T, volume)
if(volume >= 5 && !istype(T, /turf/space))
if(volume >= 5 && !isspaceturf(T))
new /obj/item/weapon/reagent_containers/food/snacks/breadslice(T)
/datum/reagent/vomit
@@ -826,9 +892,10 @@
description = "Looks like someone lost their lunch. And then collected it. Yuck."
reagent_state = LIQUID
color = "#FFFF00"
taste_message = "puke"
/datum/reagent/vomit/reaction_turf(turf/T, volume)
if(volume >= 5 && !istype(T, /turf/space))
if(volume >= 5 && !isspaceturf(T))
new /obj/effect/decal/cleanable/vomit(T)
playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
@@ -838,9 +905,10 @@
description = "Whoa, that can't be natural. That's horrible."
reagent_state = LIQUID
color = "#78FF74"
taste_message = "puke"
/datum/reagent/greenvomit/reaction_turf(turf/T, volume)
if(volume >= 5 && !istype(T, /turf/space))
if(volume >= 5 && !isspaceturf(T))
new /obj/effect/decal/cleanable/vomit/green(T)
playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
@@ -851,6 +919,7 @@
id = "entpoly"
description = "An ichor, derived from a certain mushroom, makes for a bad time."
color = "#1d043d"
taste_message = "mold"
/datum/reagent/consumable/entpoly/on_mob_life(mob/living/M)
if(current_cycle >= 10)
@@ -869,6 +938,7 @@
description = "A stimulating ichor which causes luminescent fungi to grow on the skin. "
color = "#b5a213"
var/light_activated = 0
taste_message = "mold"
/datum/reagent/consumable/tinlux/on_mob_life(mob/living/M)
if(!light_activated)
@@ -885,6 +955,7 @@
description = "A bubbly paste that heals wounds of the skin."
color = "#d3a308"
nutriment_factor = 3 * REAGENTS_METABOLISM
taste_message = "sweetness"
/datum/reagent/consumable/vitfro/on_mob_life(mob/living/M)
if(prob(80))
@@ -92,8 +92,7 @@
//Mitocholide is hard enough to get, it's probably fair to make this all internal organs
for(var/obj/item/organ/internal/I in H.internal_organs)
if(I.damage > 0)
I.damage = max(I.damage-0.4, 0)
I.take_damage(-0.4)
..()
/datum/reagent/medicine/mitocholide/reaction_obj(obj/O, volume)
@@ -203,8 +202,9 @@
description = "This saline and glucose solution can help stabilize critically injured patients and cleanse wounds."
reagent_state = LIQUID
color = "#C8A5DC"
penetrates_skin = 1
penetrates_skin = TRUE
metabolization_rate = 0.15
taste_message = "salt"
/datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/M)
if(prob(33))
@@ -212,7 +212,7 @@
M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
if(ishuman(M) && prob(33))
var/mob/living/carbon/human/H = M
if(!(H.species.flags & NO_BLOOD))//do not restore blood on things with no blood by nature.
if(!(NO_BLOOD in H.species.species_traits))//do not restore blood on things with no blood by nature.
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
H.blood_volume += 1
..()
@@ -234,7 +234,7 @@
..()
/datum/reagent/medicine/synthflesh/reaction_turf(turf/T, volume) //let's make a mess!
if(volume >= 5 && !istype(T, /turf/space))
if(volume >= 5 && !isspaceturf(T))
new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T)
playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
@@ -512,7 +512,7 @@
var/mob/living/carbon/human/H = M
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
if(istype(E))
E.damage = max(E.damage-1, 0)
E.take_damage(-1)
M.AdjustEyeBlurry(-1)
M.AdjustEarDamage(-1)
if(prob(50))
@@ -725,7 +725,7 @@
id = "stimulants"
description = "Increases run speed and eliminates stuns, can heal minor damage. If overdosed it will deal toxin damage and stun."
color = "#C8A5DC"
can_synth = 0
can_synth = FALSE
/datum/reagent/medicine/stimulants/on_mob_life(mob/living/M)
if(volume > 5)
@@ -760,7 +760,7 @@
color = "#C8A5DC"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
overdose_threshold = 60
can_synth = 0
can_synth = FALSE
/datum/reagent/medicine/stimulative_agent/on_mob_life(mob/living/M)
M.status_flags |= GOTTAGOFAST
@@ -873,7 +873,7 @@
description = "Miniature medical robots that swiftly restore bodily damage. May begin to attack their host's cells in high amounts."
reagent_state = SOLID
color = "#555555"
can_synth = 0
can_synth = FALSE
/datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M)
M.adjustBruteLoss(-5*REAGENTS_EFFECT_MULTIPLIER) //A ton of healing - this is a 50 telecrystal investment.
@@ -38,6 +38,7 @@
description = "A colorless, odorless gas."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
taste_message = null
/datum/reagent/nitrogen
name = "Nitrogen"
@@ -45,7 +46,7 @@
description = "A colorless, odorless, tasteless gas."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
taste_message = null
/datum/reagent/hydrogen
name = "Hydrogen"
@@ -53,7 +54,7 @@
description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
taste_message = null
/datum/reagent/potassium
name = "Potassium"
@@ -61,7 +62,7 @@
description = "A soft, low-melting solid that can easily be cut with a knife. Reacts violently with water."
reagent_state = SOLID
color = "#A0A0A0" // rgb: 160, 160, 160
taste_message = "bad ideas"
/datum/reagent/sulfur
name = "Sulfur"
@@ -69,7 +70,7 @@
description = "A chemical element."
reagent_state = SOLID
color = "#BF8C00" // rgb: 191, 140, 0
taste_message = "impulsive decisions"
/datum/reagent/sodium
name = "Sodium"
@@ -77,7 +78,7 @@
description = "A chemical element."
reagent_state = SOLID
color = "#808080" // rgb: 128, 128, 128
taste_message = "horrible misjudgement"
/datum/reagent/phosphorus
name = "Phosphorus"
@@ -85,7 +86,7 @@
description = "A chemical element."
reagent_state = SOLID
color = "#832828" // rgb: 131, 40, 40
taste_message = "misguided choices"
/datum/reagent/carbon
name = "Carbon"
@@ -93,9 +94,10 @@
description = "A chemical element."
reagent_state = SOLID
color = "#1C1300" // rgb: 30, 20, 0
taste_message = "like a pencil or something"
/datum/reagent/carbon/reaction_turf(turf/T, volume)
if(!istype(T, /turf/space) && !(locate(/obj/effect/decal/cleanable/dirt) in T)) // Only add one dirt per turf. Was causing people to crash.
if(!(locate(/obj/effect/decal/cleanable/dirt) in T) && !isspaceturf(T)) // Only add one dirt per turf. Was causing people to crash.
new /obj/effect/decal/cleanable/dirt(T)
/datum/reagent/gold
@@ -104,6 +106,7 @@
description = "Gold is a dense, soft, shiny metal and the most malleable and ductile metal known."
reagent_state = SOLID
color = "#F7C430" // rgb: 247, 196, 48
taste_message = "bling"
/datum/reagent/silver
@@ -112,6 +115,7 @@
description = "A lustrous metallic element regarded as one of the precious metals."
reagent_state = SOLID
color = "#D0D0D0" // rgb: 208, 208, 208
taste_message = "sub-par bling"
/datum/reagent/aluminum
@@ -120,6 +124,7 @@
description = "A silvery white and ductile member of the boron group of chemical elements."
reagent_state = SOLID
color = "#A8A8A8" // rgb: 168, 168, 168
taste_message = null
/datum/reagent/silicon
@@ -128,6 +133,7 @@
description = "A tetravalent metalloid, silicon is less reactive than its chemical analog carbon."
reagent_state = SOLID
color = "#A8A8A8" // rgb: 168, 168, 168
taste_message = "a CPU"
/datum/reagent/copper
@@ -135,6 +141,7 @@
id = "copper"
description = "A highly ductile metal."
color = "#6E3B08" // rgb: 110, 59, 8
taste_message = "copper"
/datum/reagent/iron
@@ -143,12 +150,14 @@
description = "Pure iron is a metal."
reagent_state = SOLID
color = "#C8A5DC" // rgb: 200, 165, 220
taste_message = "metal"
/datum/reagent/iron/on_mob_life(mob/living/M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!H.species.exotic_blood && !(H.species.flags & NO_BLOOD))
H.blood_volume += 0.8
if(!H.species.exotic_blood && !(NO_BLOOD in H.species.species_traits))
if(H.blood_volume < BLOOD_VOLUME_NORMAL)
H.blood_volume += 0.8
..()
//foam
@@ -158,6 +167,7 @@
description = "A perfluoronated sulfonic acid that forms a foam when mixed with water."
reagent_state = LIQUID
color = "#9E6B38" // rgb: 158, 107, 56
taste_message = null
// metal foaming agent
// this is lithium hydride. Add other recipies (e.g. LiH + H2O -> LiOH + H2) eventually
@@ -167,6 +177,7 @@
description = "A caustic substance commonly used in fertilizer or household cleaners."
reagent_state = GAS
color = "#404030" // rgb: 64, 64, 48
taste_message = "floor cleaner"
/datum/reagent/diethylamine
name = "Diethylamine"
@@ -174,6 +185,7 @@
description = "A secondary amine, useful as a plant nutrient and as building block for other compounds."
reagent_state = LIQUID
color = "#322D00"
taste_message = null
/datum/reagent/oil
name = "Oil"
@@ -181,6 +193,7 @@
description = "A decent lubricant for machines. High in benzene, naptha and other hydrocarbons."
reagent_state = LIQUID
color = "#3C3C3C"
taste_message = "motor oil"
/datum/reagent/iodine
name = "Iodine"
@@ -188,6 +201,7 @@
description = "A purple gaseous element."
reagent_state = GAS
color = "#493062"
taste_message = null
/datum/reagent/carpet
name = "Carpet"
@@ -195,6 +209,7 @@
description = "A covering of thick fabric used on floors. This type looks particularly gross."
reagent_state = LIQUID
color = "#701345"
taste_message = "a carpet...what?"
/datum/reagent/carpet/reaction_turf(turf/simulated/T, volume)
if(istype(T, /turf/simulated/floor/plating) || istype(T, /turf/simulated/floor/plasteel))
@@ -208,6 +223,7 @@
description = "A red-brown liquid element."
reagent_state = LIQUID
color = "#4E3A3A"
taste_message = null
/datum/reagent/phenol
name = "Phenol"
@@ -215,6 +231,7 @@
description = "Also known as carbolic acid, this is a useful building block in organic chemistry."
reagent_state = LIQUID
color = "#525050"
taste_message = null
/datum/reagent/ash
name = "Ash"
@@ -222,6 +239,7 @@
description = "Ashes to ashes, dust to dust."
reagent_state = LIQUID
color = "#191919"
taste_message = "ash"
/datum/reagent/acetone
name = "Acetone"
@@ -229,6 +247,7 @@
description = "Pure 100% nail polish remover, also works as an industrial solvent."
reagent_state = LIQUID
color = "#474747"
taste_message = null
/datum/reagent/acetone/on_mob_life(mob/living/M)
M.adjustToxLoss(1.5)
@@ -240,6 +259,7 @@
description = "Volatile."
reagent_state = LIQUID
color = "#60A584" // rgb: 96, 165, 132
taste_message = null
/datum/reagent/colorful_reagent
name = "Colorful Reagent"
@@ -247,6 +267,7 @@
description = "It's pure liquid colors. That's a thing now."
reagent_state = LIQUID
color = "#FFFFFF"
taste_message = "the rainbow"
/datum/reagent/colorful_reagent/reaction_mob(mob/living/simple_animal/M, method=TOUCH, volume)
if(isanimal(M))
@@ -254,14 +275,10 @@
..()
/datum/reagent/colorful_reagent/reaction_obj(obj/O, volume)
if(O)
O.color = pick(random_color_list)
..()
O.color = pick(random_color_list)
/datum/reagent/colorful_reagent/reaction_turf(turf/T, volume)
if(T)
T.color = pick(random_color_list)
..()
T.color = pick(random_color_list)
/datum/reagent/hair_dye
name = "Quantum Hair Dye"
@@ -269,17 +286,16 @@
description = "A rather tubular and gnarly way of coloring totally bodacious hair. Duuuudddeee."
reagent_state = LIQUID
color = "#960096"
taste_message = "the 2559 Autumn release of the Le Jeune Homme catalogue for professional hairdressers"
/datum/reagent/hair_dye/reaction_mob(mob/living/M, volume)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
head_organ.r_facial = rand(0,255)
head_organ.g_facial = rand(0,255)
head_organ.b_facial = rand(0,255)
head_organ.r_hair = rand(0,255)
head_organ.g_hair = rand(0,255)
head_organ.b_hair = rand(0,255)
head_organ.facial_colour = rand_hex_color()
head_organ.sec_facial_colour = rand_hex_color()
head_organ.hair_colour = rand_hex_color()
head_organ.sec_hair_colour = rand_hex_color()
H.update_hair()
H.update_fhair()
..()
@@ -290,7 +306,8 @@
description = "A mysterious chemical purported to help grow hair. Often found on late-night TV infomercials."
reagent_state = LIQUID
color = "#5DDA5D"
penetrates_skin = 1
penetrates_skin = TRUE
taste_message = "someone's beard"
/datum/reagent/hairgrownium/reaction_mob(mob/living/M, volume)
if(ishuman(M))
@@ -308,7 +325,8 @@
description = "A mysterious and powerful chemical purported to cause rapid hair growth."
reagent_state = LIQUID
color = "#5DD95D"
penetrates_skin = 1
penetrates_skin = TRUE
taste_message = "multiple beards"
/datum/reagent/super_hairgrownium/reaction_mob(mob/living/M, volume)
if(ishuman(M))
@@ -341,6 +359,7 @@
description = "Oh god it never ends, IT NEVER STOPS!"
reagent_state = GAS
color = "#D06E27"
taste_message = "mexican cuisine"
/datum/reagent/fartonium/on_mob_life(mob/living/M)
if(prob(66))
@@ -364,6 +383,7 @@
description = "Hugs, in liquid form. Yes, the concept of a hug. As a liquid. This makes sense in the future."
reagent_state = LIQUID
color = "#FF97B9"
taste_message = "<font color='pink'><b>hugs</b></font>"
/datum/reagent/love
name = "Pure love"
@@ -372,6 +392,7 @@
reagent_state = LIQUID
color = "#FF83A5"
process_flags = ORGANIC | SYNTHETIC // That's the power of love~
taste_message = "<font color='pink'><b>love</b></font>"
/datum/reagent/love/on_mob_life(mob/living/M)
if(M.a_intent != INTENT_HELP)
@@ -406,6 +427,7 @@
id = "royal_bee_jelly"
description = "Royal Bee Jelly, if injected into a Queen Space Bee said bee will split into two bees."
color = "#00ff80"
taste_message = "sweetness"
/datum/reagent/royal_bee_jelly/on_mob_life(mob/living/M)
if(prob(2))
@@ -418,6 +440,7 @@
description = "A commercial chemical designed to help older men in the bedroom." //not really it just makes you a giant
color = "#ff0000"//strong red. rgb 255, 0, 0
var/current_size = 1
taste_message = "enhancement"
/datum/reagent/growthserum/on_mob_life(mob/living/carbon/H)
var/newsize = current_size
@@ -449,13 +472,15 @@
description = "Finely ground Coffee beans, used to make coffee."
reagent_state = SOLID
color = "#5B2E0D" // rgb: 91, 46, 13
taste_message = "bitterness"
/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
color = "#7F8400" // rgb: 127, 132, 0"
taste_message = "bitterness"
//////////////////////////////////Hydroponics stuff///////////////////////////////
@@ -465,6 +490,7 @@
description = "Some kind of nutriment. You can't really tell what it is. You should probably report it, along with how you obtained it."
color = "#000000" // RBG: 0, 0, 0
var/tox_prob = 0
taste_message = "puke"
/datum/reagent/plantnutriment/on_mob_life(mob/living/M)
if(prob(tox_prob))
@@ -527,4 +553,4 @@
id = "triplepiss"
description = "Ewwwwwwwww."
reagent_state = LIQUID
color = "#857400"
color = "#857400"
@@ -4,9 +4,10 @@
description = "Floor paint is used to color floor tiles."
reagent_state = LIQUID
color = "#808080"
taste_message = "paint"
/datum/reagent/paint/reaction_turf(turf/T, volume)
if(!istype(T, /turf/space))
if(!isspaceturf(T))
T.color = color
/datum/reagent/paint/reaction_obj(obj/O, volume)
@@ -54,7 +55,8 @@
description = "Paint remover is used to remove floor paint from floor tiles."
reagent_state = LIQUID
color = "#808080"
taste_message = "alcohol"
/datum/reagent/paint_remover/reaction_turf(turf/T, volume)
if(!istype(T, /turf/space))
T.color = initial(T.color)
if(!isspaceturf(T))
T.color = initial(T.color)
@@ -15,6 +15,7 @@
description = "Tastes just how you'd think Paradise would if you could bottle it."
reagent_state = LIQUID
color = "#cc0044"
taste_message = "paradise"
//Apple-pocalypse: Low chance to cause a goonchem vortex that pulls things within a very small radius (2 tiles?) towards the drinker
/datum/reagent/consumable/drink/apple_pocalypse
@@ -23,6 +24,7 @@
description = "If doomsday came in fruit form, it'd probably be apples."
reagent_state = LIQUID
color = "#44FF44"
taste_message = "doomsday"
/datum/reagent/consumable/drink/apple_pocalypse/on_mob_life(mob/living/M)
if(prob(1))
@@ -38,6 +40,7 @@
description = "Reason for ban: Excessive Flavor."
reagent_state = LIQUID
color = "#FF44FF"
taste_message = "a permaban"
/datum/reagent/consumable/drink/berry_banned/on_mob_life(mob/living/M)
if(prob(10))
@@ -65,6 +68,7 @@
description = "Reason for ban: Excessive Flavor."
reagent_state = LIQUID
color = "#FF44FF"
taste_message = "a permaban"
/datum/reagent/consumable/drink/berry_banned2/on_mob_life(mob/living/M)
if(prob(50))
@@ -85,6 +89,7 @@
description = "Creamy, smooth flavor, just like the bald heads of the masses. Supposedly aged for 30 years."
reagent_state = LIQUID
color = "#4d2600"
taste_message = "greytide"
/datum/reagent/consumable/drink/blackeye_brew/on_mob_life(mob/living/M)
if(prob(25))
@@ -107,6 +112,7 @@
description = "Exploding with grape flavor and a favorite among ERT members system-wide."
reagent_state = LIQUID
color = "#9933ff"
taste_message = "old people"
/datum/reagent/consumable/drink/grape_granade/on_mob_life(mob/living/M)
if(prob(1))
@@ -125,6 +131,7 @@
description = "Soft drinks have been detected on collision course with your tastebuds."
reagent_state = LIQUID
color = "#cc9900"
taste_message = "flying space rocks"
/datum/reagent/consumable/drink/meteor_malt/on_mob_life(mob/living/M)
if(prob(25))
@@ -134,4 +141,4 @@
var/amount = rand(1, 5)
var/mineral = pick("copper", "iron", "gold", "carbon", "silver", "aluminum", "silicon", "sodiumchloride", "plasma")
M.reagents.add_reagent(mineral, amount)
..()
..()
@@ -7,6 +7,7 @@
drink_icon = "dr_gibb_glass"
drink_name = "Glass of welder fuel"
drink_desc = "Unless you are an industrial tool, this is probably not safe for consumption."
taste_message = "mistakes"
/datum/reagent/fuel/reaction_mob(mob/living/M, method=TOUCH, volume)//Splashing people with welding fuel to make them easy to ignite!
if(method == TOUCH)
@@ -20,6 +21,7 @@
description = "The liquid phase of an unusual extraterrestrial compound."
reagent_state = LIQUID
color = "#7A2B94"
taste_message = "corporate assets going to waste"
/datum/reagent/plasma/on_mob_life(mob/living/M)
M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
@@ -43,12 +45,13 @@
reagent_state = SOLID
color = "#673910" // rgb: 103, 57, 16
process_flags = ORGANIC | SYNTHETIC
taste_message = "rust"
/datum/reagent/thermite/reaction_turf(turf/simulated/wall/W, volume)
if(volume >= 5 && istype(W))
W.thermite = 1
W.overlays.Cut()
W.overlays = image('icons/effects/effects.dmi',icon_state = "thermite")
W.overlays = image('icons/effects/effects.dmi', icon_state = "thermite")
/datum/reagent/glycerol
name = "Glycerol"
@@ -56,6 +59,7 @@
description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity."
reagent_state = LIQUID
color = "#808080" // rgb: 128, 128, 128
taste_message = "sweetness"
/datum/reagent/stabilizing_agent
name = "Stabilizing Agent"
@@ -63,6 +67,7 @@
description = "A chemical that stabilises normally volatile compounds, preventing them from reacting immediately."
reagent_state = LIQUID
color = "#FFFF00"
taste_message = "long-term stability"
/datum/reagent/clf3
name = "Chlorine Trifluoride"
@@ -72,6 +77,7 @@
color = "#FF0000"
metabolization_rate = 4
process_flags = ORGANIC | SYNTHETIC
taste_message = null
/datum/reagent/clf3/on_mob_life(mob/living/M)
M.adjust_fire_stacks(2)
@@ -80,21 +86,19 @@
..()
/datum/reagent/clf3/reaction_turf(turf/simulated/T, volume)
if(istype(T, /turf/simulated/floor/plating))
if(prob(1) && istype(T, /turf/simulated/floor/plating))
var/turf/simulated/floor/plating/F = T
if(prob(1))
F.ChangeTurf(/turf/space)
if(istype(T, /turf/simulated/floor/))
F.ChangeTurf(/turf/space)
if(istype(T, /turf/simulated/floor))
var/turf/simulated/floor/F = T
if(prob(volume/10))
F.make_plating()
if(istype(F, /turf/simulated/floor/))
if(istype(F, /turf/simulated/floor))
new /obj/effect/hotspot(F)
if(istype(T, /turf/simulated/wall/))
if(prob(volume/10) && istype(T, /turf/simulated/wall))
var/turf/simulated/wall/W = T
if(prob(volume/10))
W.ChangeTurf(/turf/simulated/floor)
if(istype(T, /turf/simulated/shuttle/))
W.ChangeTurf(/turf/simulated/floor)
if(istype(T, /turf/simulated/shuttle))
new /obj/effect/hotspot(T)
/datum/reagent/clf3/reaction_mob(mob/living/M, method=TOUCH, volume)
@@ -116,6 +120,7 @@
description = "Sucks everything into the detonation point."
reagent_state = LIQUID
color = "#800080"
taste_message = "the end of the world"
/datum/reagent/blackpowder
name = "Black Powder"
@@ -124,10 +129,11 @@
reagent_state = LIQUID
color = "#000000"
metabolization_rate = 0.05
penetrates_skin = 1
penetrates_skin = TRUE
taste_message = "explosions"
/datum/reagent/blackpowder/reaction_turf(turf/T, volume) //oh shit
if(volume >= 5 && !istype(T, /turf/space))
if(volume >= 5 && !isspaceturf(T))
if(!locate(/obj/effect/decal/cleanable/dirt/blackpowder) in T) //let's not have hundreds of decals of black powder on the same turf
new /obj/effect/decal/cleanable/dirt/blackpowder(T)
@@ -258,8 +264,7 @@
M.ExtinguishMob()
/datum/reagent/firefighting_foam/reaction_obj(obj/O, volume)
if(istype(O))
O.extinguish()
O.extinguish()
/datum/reagent/firefighting_foam/reaction_turf(turf/simulated/T, volume)
if(!istype(T))
@@ -279,6 +284,7 @@
id = "plasma_dust"
description = "A fine dust of plasma. This chemical has unusual mutagenic properties for viruses and slimes alike."
color = "#500064" // rgb: 80, 0, 100
taste_message = "corporate assets going to waste"
/datum/reagent/plasma_dust/on_mob_life(mob/living/M)
M.adjustToxLoss(3)
@@ -38,6 +38,7 @@
description = "Useful for dealing with undesirable customers."
reagent_state = LIQUID
color = "#CF3600" // rgb: 207, 54, 0
taste_message = "mint"
/datum/reagent/minttoxin/on_mob_life(mob/living/M)
if(FAT in M.mutations)
@@ -50,6 +51,7 @@
description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL."
reagent_state = LIQUID
color = "#801E28" // rgb: 128, 30, 40
taste_message = "slimes"
/datum/reagent/slimejelly/on_mob_life(mob/living/M)
if(prob(10))
@@ -65,7 +67,8 @@
description = "A corruptive toxin produced by slimes."
reagent_state = LIQUID
color = "#13BC5E" // rgb: 19, 188, 94
can_synth = 0
can_synth = FALSE
taste_message = "shadows"
/datum/reagent/slimetoxin/on_mob_life(mob/living/M)
if(ishuman(M))
@@ -84,7 +87,7 @@
description = "An advanced corruptive toxin produced by slimes."
reagent_state = LIQUID
color = "#13BC5E" // rgb: 19, 188, 94
can_synth = 0
can_synth = FALSE
/datum/reagent/aslimetoxin/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method != TOUCH)
@@ -98,7 +101,8 @@
reagent_state = LIQUID
color = "#484848" // rgb: 72, 72, 72
metabolization_rate = 0.2
penetrates_skin = 1
penetrates_skin = TRUE
taste_message = "metal"
/datum/reagent/mercury/on_mob_life(mob/living/M)
if(prob(70))
@@ -111,8 +115,9 @@
description = "A chemical element."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
penetrates_skin = 1
penetrates_skin = TRUE
process_flags = ORGANIC | SYNTHETIC
taste_message = "fire"
/datum/reagent/chlorine/on_mob_life(mob/living/M)
M.adjustFireLoss(1)
@@ -124,8 +129,9 @@
description = "A highly-reactive chemical element."
reagent_state = GAS
color = "#6A6054"
penetrates_skin = 1
penetrates_skin = TRUE
process_flags = ORGANIC | SYNTHETIC
taste_message = "spicy freshness"
/datum/reagent/fluorine/on_mob_life(mob/living/M)
M.adjustFireLoss(1)
@@ -138,7 +144,7 @@
description = "Radium is an alkaline earth metal. It is extremely radioactive."
reagent_state = SOLID
color = "#C7C7C7" // rgb: 199,199,199
penetrates_skin = 1
penetrates_skin = TRUE
/datum/reagent/radium/on_mob_life(mob/living/M)
if(M.radiation < 80)
@@ -146,7 +152,7 @@
..()
/datum/reagent/radium/reaction_turf(turf/T, volume)
if(volume >= 3 && !istype(T, /turf/space))
if(volume >= 3 && !isspaceturf(T))
new /obj/effect/decal/cleanable/greenglow(T)
/datum/reagent/mutagen
@@ -182,13 +188,14 @@
description = "A silvery-white metallic chemical element in the actinide series, weakly radioactive."
reagent_state = SOLID
color = "#B8B8C0" // rgb: 184, 184, 192
taste_message = null
/datum/reagent/uranium/on_mob_life(mob/living/M)
M.apply_effect(2, IRRADIATE, negate_armor = 1)
..()
/datum/reagent/uranium/reaction_turf(turf/T, volume)
if(volume >= 3 && !istype(T, /turf/space))
if(volume >= 3 && !isspaceturf(T))
new /obj/effect/decal/cleanable/greenglow(T)
@@ -212,6 +219,7 @@
reagent_state = LIQUID
color = "#00D72B"
process_flags = ORGANIC | SYNTHETIC
taste_message = "<span class='userdanger'>ACID</span>"
/datum/reagent/sacid/on_mob_life(mob/living/M)
M.adjustFireLoss(1)
@@ -249,12 +257,10 @@
if(method == INGEST)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.get_species() == "Grey")
return
if(volume < 10)
to_chat(M, "<span class='danger'>The greenish acidic substance stings you, but isn't concentrated enough to harm you!</span>")
if(volume >=10 && volume <=25)
if(!H.unacidable)
M.take_organ_damage(0,min(max(volume-10,2)*2,20))
@@ -326,6 +332,7 @@
drink_icon ="beerglass"
drink_name = "Beer glass"
drink_desc = "A freezing pint of beer"
taste_message = "beer"
/datum/reagent/beer2/on_mob_life(mob/living/M)
switch(current_cycle)
@@ -343,8 +350,9 @@
reagent_state = LIQUID
color = "#CF3600"
metabolization_rate = 0.1
penetrates_skin = 1
can_synth = 0
penetrates_skin = TRUE
can_synth = FALSE
taste_message = null
/datum/reagent/polonium/on_mob_life(mob/living/M)
M.apply_effect(8, IRRADIATE, negate_armor = 1)
@@ -358,6 +366,7 @@
color = "#E7C4C4"
metabolization_rate = 0.2
overdose_threshold = 40
taste_message = null
/datum/reagent/histamine/reaction_mob(mob/living/M, method=TOUCH, volume) //dumping histamine on someone is VERY mean.
if(iscarbon(M))
@@ -429,7 +438,7 @@
description = "Formaldehyde is a common industrial chemical and is used to preserve corpses and medical samples. It is highly toxic and irritating."
reagent_state = LIQUID
color = "#DED6D0"
penetrates_skin = 1
penetrates_skin = TRUE
/datum/reagent/formaldehyde/on_mob_life(mob/living/M)
M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
@@ -445,7 +454,7 @@
color = "#CF3600"
metabolization_rate = 0.2
overdose_threshold = 40
can_synth = 0
can_synth = FALSE
/datum/reagent/venom/on_mob_life(mob/living/M)
if(prob(25))
@@ -513,7 +522,8 @@
reagent_state = LIQUID
color = "#CF3600"
metabolization_rate = 0.1
penetrates_skin = 1
penetrates_skin = TRUE
taste_message = "almonds"
/datum/reagent/cyanide/on_mob_life(mob/living/M)
M.adjustToxLoss(1.5*REAGENTS_EFFECT_MULTIPLIER)
@@ -536,7 +546,7 @@
reagent_state = LIQUID
color = "#B0B0B0"
metabolization_rate = 0.3
penetrates_skin = 1
penetrates_skin = TRUE
/datum/reagent/itching_powder/on_mob_life(mob/living/M)
if(prob(25))
@@ -570,6 +580,7 @@
reagent_state = LIQUID
color = "#4141D2"
process_flags = ORGANIC | SYNTHETIC
taste_message = "<span class='userdanger'>ACID</span>"
/datum/reagent/facid/on_mob_life(mob/living/M)
M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
@@ -632,7 +643,8 @@
description = "A highly potent cardiac poison - can kill within minutes."
reagent_state = LIQUID
color = "#7F10C0"
can_synth = 0
can_synth = FALSE
taste_message = null
/datum/reagent/initropidril/on_mob_life(mob/living/M)
if(prob(33))
@@ -663,6 +675,7 @@
reagent_state = LIQUID
color = "#1E4664"
metabolization_rate = 0.2
taste_message = null
/datum/reagent/pancuronium/on_mob_life(mob/living/M)
switch(current_cycle)
@@ -695,7 +708,8 @@
reagent_state = LIQUID
color = "#5F8BE1"
metabolization_rate = 0.7
can_synth = 0
can_synth = FALSE
taste_message = null
/datum/reagent/sodium_thiopental/on_mob_life(mob/living/M)
switch(current_cycle)
@@ -722,8 +736,9 @@
reagent_state = LIQUID
color = "#646EA0"
metabolization_rate = 0.8
penetrates_skin = 1
can_synth = 0
penetrates_skin = TRUE
can_synth = FALSE
taste_message = null
/datum/reagent/ketamine/on_mob_life(mob/living/M)
switch(current_cycle)
@@ -773,6 +788,7 @@
description = "A toxin produced by certain mushrooms. Very deadly."
reagent_state = LIQUID
color = "#D9D9D9"
taste_message = null
/datum/reagent/amanitin/on_mob_delete(mob/living/M)
M.adjustToxLoss(current_cycle*rand(2,4))
@@ -785,6 +801,7 @@
reagent_state = SOLID
color = "#D1DED1"
metabolization_rate = 0.2
taste_message = "battery acid"
/datum/reagent/lipolicide/on_mob_life(mob/living/M)
if(!M.nutrition)
@@ -808,7 +825,7 @@
reagent_state = LIQUID
color = "#C2D8CD"
metabolization_rate = 0.05
can_synth = 0
can_synth = FALSE
/datum/reagent/coniine/on_mob_life(mob/living/M)
M.adjustToxLoss(2)
@@ -822,7 +839,7 @@
reagent_state = LIQUID
color = "#191919"
metabolization_rate = 0.1
penetrates_skin = 1
penetrates_skin = TRUE
/datum/reagent/curare/on_mob_life(mob/living/M)
M.adjustToxLoss(1)
@@ -848,6 +865,21 @@
M.AdjustLoseBreath(1)
..()
/datum/reagent/heparin //Based on a real-life anticoagulant.
name = "Heparin"
id = "heparin"
description = "A powerful anticoagulant. Victims will bleed uncontrollably and suffer scaling bruising."
reagent_state = LIQUID
color = "#C8C8C8" //RGB: 200, 200, 200
metabolization_rate = 0.2 * REAGENTS_METABOLISM
/datum/reagent/heparin/on_mob_life(mob/living/M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.bleed_rate = min(H.bleed_rate + 2, 8)
H.adjustBruteLoss(1)
..()
/datum/reagent/sarin
name = "Sarin"
id = "sarin"
@@ -855,8 +887,9 @@
reagent_state = LIQUID
color = "#C7C7C7"
metabolization_rate = 0.1
penetrates_skin = 1
penetrates_skin = TRUE
overdose_threshold = 25
taste_message = null
/datum/reagent/sarin/on_mob_life(mob/living/M)
switch(current_cycle)
@@ -924,13 +957,13 @@
W.visible_message("<span class='warning'>The fungi are completely dissolved by the solution!</span>")
/datum/reagent/glyphosate/reaction_obj(obj/O, volume)
if(istype(O,/obj/structure/alien/weeds/))
if(istype(O,/obj/structure/alien/weeds))
var/obj/structure/alien/weeds/alien_weeds = O
alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
alien_weeds.healthcheck()
else if(istype(O, /obj/structure/glowshroom)) //even a small amount is enough to kill it
qdel(O)
else if(istype(O,/obj/structure/spacevine))
else if(istype(O, /obj/structure/spacevine))
var/obj/structure/spacevine/SV = O
SV.on_chem_effect(src)
@@ -941,7 +974,7 @@
C.adjustToxLoss(lethality)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.flags & IS_PLANT) //plantmen take a LOT of damage
if(IS_PLANT in H.species.species_traits) //plantmen take a LOT of damage
H.adjustToxLoss(50)
..()
else if(istype(M, /mob/living/simple_animal/diona)) //plantmen monkeys (diona) take EVEN MORE damage
@@ -985,6 +1018,7 @@
reagent_state = LIQUID
color = "#60A584"
heart_rate_stop = 1
taste_message = "sweetness"
/datum/reagent/capulettium/on_mob_life(mob/living/M)
switch(current_cycle)
@@ -1008,6 +1042,7 @@
reagent_state = LIQUID
color = "#60A584"
heart_rate_stop = 1
taste_message = "sweetness"
/datum/reagent/capulettium_plus/on_mob_life(mob/living/M)
M.Silence(2)
@@ -1066,6 +1101,7 @@
reagent_state = SOLID
color = "#993333"
process_flags = ORGANIC | SYNTHETIC
taste_message = "<span class='warning'>ANTS OH GOD</span>"
/datum/reagent/ants/on_mob_life(mob/living/M)
M.adjustBruteLoss(2)
@@ -1087,6 +1123,7 @@
metabolization_rate = 0.2
var/shock_timer = 0
process_flags = ORGANIC | SYNTHETIC
taste_message = "electricity"
/datum/reagent/teslium/on_mob_life(mob/living/M)
shock_timer++
@@ -18,6 +18,7 @@
drink_icon = "glass_clear"
drink_name = "Glass of Water"
drink_desc = "The father of all refreshments."
taste_message = null
/datum/reagent/water/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == TOUCH)
@@ -98,8 +99,7 @@
qdel(hotspot)
/datum/reagent/water/reaction_obj(obj/O, volume)
if(istype(O))
O.extinguish()
O.extinguish()
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube))
var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
@@ -116,6 +116,7 @@
description = "Lubricant is a substance introduced between two moving surfaces to reduce the friction and wear between them. giggity."
reagent_state = LIQUID
color = "#1BB1AB"
taste_message = "oil"
/datum/reagent/lube/reaction_turf(turf/simulated/T, volume)
if(volume >= 1 && istype(T))
@@ -128,19 +129,18 @@
description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
reagent_state = LIQUID
color = "#61C2C2"
taste_message = "floor cleaner"
/datum/reagent/space_cleaner/reaction_obj(obj/O, volume)
if(O && !istype(O, /atom/movable/lighting_overlay))
O.color = initial(O.color)
if(istype(O, /obj/effect/decal/cleanable))
qdel(O)
else if(O)
else
O.color = initial(O.color)
O.clean_blood()
/datum/reagent/space_cleaner/reaction_turf(turf/T, volume)
if(volume >= 1)
if(T)
T.color = initial(T.color)
T.color = initial(T.color)
T.clean_blood()
for(var/obj/effect/decal/cleanable/C in src)
qdel(C)
@@ -190,9 +190,11 @@
id = "blood"
reagent_state = LIQUID
color = "#C80000" // rgb: 200, 0, 0
metabolization_rate = 5 //fast rate so it disappears fast.
drink_icon = "glass_red"
drink_name = "Glass of Tomato juice"
drink_desc = "Are you sure this is tomato juice?"
taste_message = "<span class='warning'>blood</span>"
/datum/reagent/blood/reaction_mob(mob/living/M, method=TOUCH, volume)
if(data && data["viruses"])
@@ -210,10 +212,10 @@
if(method == INGEST && iscarbon(M))
var/mob/living/carbon/C = M
if(C.get_blood_id() == "blood")
if((!data || !(data["blood_type"] in get_safe_blood(C.dna.b_type))) && !M.mind.vampire)
if((!data || !(data["blood_type"] in get_safe_blood(C.dna.b_type))))
C.reagents.add_reagent("toxin", volume * 0.5)
else
C.blood_volume = min(C.blood_volume + round(volume, 0.1), BLOOD_VOLUME_MAXIMUM)
C.blood_volume = min(C.blood_volume + round(volume, 0.1), BLOOD_VOLUME_NORMAL)
/datum/reagent/blood/on_new(list/data)
if(istype(data))
@@ -293,6 +295,7 @@
description = "Smelly water from a fish tank. Gross!"
reagent_state = LIQUID
color = "#757547"
taste_message = "puke"
/datum/reagent/fishwater/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == INGEST)
@@ -312,6 +315,7 @@
description = "Filthy water scoured from a nasty toilet bowl. Absolutely disgusting."
reagent_state = LIQUID
color = "#757547"
taste_message = "puke"
/datum/reagent/fishwater/toiletwater/reaction_mob(mob/living/M, method=TOUCH, volume) //For shennanigans
return
@@ -326,6 +330,7 @@
drink_icon = "glass_clear"
drink_name = "Glass of Water"
drink_desc = "The father of all refreshments."
taste_message = null
/datum/reagent/holywater/on_mob_life(mob/living/M)
M.AdjustJitter(-5)
@@ -401,6 +406,7 @@
description = "Something that shouldn't exist on this plane of existance."
process_flags = ORGANIC | SYNTHETIC //ethereal means everything processes it.
metabolization_rate = 1
taste_message = null
/datum/reagent/fuel/unholywater/on_mob_life(mob/living/M)
if(iscultist(M))
@@ -427,7 +433,8 @@
description = "YOUR FLESH! IT BURNS!"
process_flags = ORGANIC | SYNTHETIC //Admin-bus has no brakes! KILL THEM ALL.
metabolization_rate = 1
can_synth = 0
can_synth = FALSE
taste_message = "admin abuse"
/datum/reagent/hellwater/on_mob_life(mob/living/M)
M.fire_stacks = min(5, M.fire_stacks + 3)
@@ -443,9 +450,10 @@
color = "#FF9966"
description = "You don't even want to think about what's in here."
reagent_state = LIQUID
taste_message = "meat"
/datum/reagent/liquidgibs/reaction_turf(turf/T, volume) //yes i took it from synthflesh...
if(volume >= 5 && !istype(T, /turf/space))
if(volume >= 5 && !isspaceturf(T))
new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T)
playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
@@ -455,6 +463,7 @@
description = "Also known as sodium hydroxide."
reagent_state = LIQUID
color = "#FFFFD6" // very very light yellow
taste_message = "<span class='userdanger'>ACID</span>"//don't drink lye, kids
/datum/reagent/drying_agent
name = "Drying agent"
@@ -471,4 +480,4 @@
if(istype(O, /obj/item/clothing/shoes/galoshes))
var/t_loc = get_turf(O)
qdel(O)
new /obj/item/clothing/shoes/galoshes/dry(t_loc)
new /obj/item/clothing/shoes/galoshes/dry(t_loc)
@@ -154,4 +154,13 @@
result = "mutagen"
required_reagents = list("radium" = 1, "plasma" = 1, "chlorine" = 1)
result_amount = 3
mix_message = "The substance turns neon green and bubbles unnervingly."
mix_message = "The substance turns neon green and bubbles unnervingly."
/datum/chemical_reaction/heparin
name = "Heparin"
id = "Heparin"
result = "heparin"
required_reagents = list("formaldehyde" = 1, "sodium" = 1, "chlorine" = 1, "lithium" = 1)
result_amount = 4
mix_message = "The mixture thins and loses all color."
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
@@ -10,6 +10,7 @@
possible_transfer_amounts = null
volume = 50
consume_sound = null
taste = FALSE
/obj/item/weapon/reagent_containers/food/pill/New()
..()
@@ -108,4 +109,4 @@
name = "Salbutamol pill"
desc = "Used to treat respiratory distress."
icon_state = "pill8"
list_reagents = list("salbutamol" = 20)
list_reagents = list("salbutamol" = 20)