diff --git a/code/WorkInProgress/Chemistry-Reagents.dm b/code/WorkInProgress/Chemistry-Reagents.dm
index abe93f3d5d6..a771249c1f6 100644
--- a/code/WorkInProgress/Chemistry-Reagents.dm
+++ b/code/WorkInProgress/Chemistry-Reagents.dm
@@ -155,6 +155,9 @@ datum
id = "milk"
description = "An opaque white liquid produced by the mammary glands of mammals."
reagent_state = LIQUID
+ on_mob_life(var/mob/M)
+ if(!M) M = holder.my_atom
+ if(M:bruteloss && prob(10)) M:bruteloss--
beer
name = "Beer"
@@ -262,6 +265,8 @@ datum
holder.remove_reagent("acid", 1)
if(holder.has_reagent("cyanide"))
holder.remove_reagent("cyanide", 1)
+ if(holder.has_reagent("amatoxin"))
+ holder.remove_reagent("amatoxin", 2)
M:toxloss = max(M:toxloss-2,0)
..()
return
@@ -983,6 +988,7 @@ datum
holder.remove_reagent(src.id, 0.2)
return
+
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
nanites
@@ -1059,6 +1065,128 @@ datum
description = "A secondary amine, mildly corrosive."
reagent_state = LIQUID
+ ethylredoxrazine // FUCK YOU, ALCOHOL
+ name = "Ethylredoxrazine"
+ id = "ethylredoxrazine"
+ description = "A powerfuld oxidizer that reacts with ethanol."
+ reagent_state = SOLID
+ on_mob_life(var/mob/M)
+ if(!M) M = holder.my_atom
+ M.dizziness = 0
+ M:drowsyness = 0
+ M:stuttering = 0
+ M:confused = 0
+ ..()
+
+
+/////////////////////////Food Reagents////////////////////////////
+// Part of the food code. It is used instead of the old "heal_amt" code. Also is where all the food
+// condiments, additives, and such go.
+ nutriment
+ name = "Nutrition"
+ id = "nutriment"
+ description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
+ reagent_state = SOLID
+ on_mob_life(var/mob/M)
+ if(!M) M = holder.my_atom
+ M:bruteloss--
+ M:nutrition += 20 //This is the bit that makes you fat.
+ ..()
+ return
+
+ berryjam
+ name = "Berry Jam"
+ id = "berryjam"
+ description = "A delightfully sweat flavor of some indescernible berry... you think."
+ reagent_state = LIQUID
+ on_mob_life(var/mob/M)
+ if(!M) M = holder.my_atom
+ M:nutrition++
+ ..()
+
+ soysauce
+ name = "Soysauce"
+ id = "soysauce"
+ description = "A salty sauce made from the soy plant."
+ reagent_state = LIQUID
+
+ ketchup
+ name = "Ketchup"
+ id = "ketchup"
+ description = "Ketchup, catsup, whatever. It's tomato paste."
+ reagent_state = LIQUID
+
+ capsaicin
+ name = "Capsaicin Oil"
+ id = "capsaicin"
+ description = "This is what makes chilis hot."
+ reagent_state = LIQUID
+ on_mob_life(var/mob/M)
+ if(!M) M = holder.my_atom
+ M:bodytemperature += 5
+ if(prob(40)) M:fireloss++
+ ..()
+ return
+
+ frostoil
+ name = "Frost Oil"
+ id = "frostoil"
+ description = "A special oil that noticably chills the body. Extraced from Icepeppers."
+ reagent_state = LIQUID
+ on_mob_life(var/mob/M)
+ if(!M) M = holder.my_atom
+ M:bodytemperature -= 5
+ if(prob(40)) M:fireloss++
+ ..()
+ return
+
+ tablesalt
+ name = "Table Salt"
+ id = "tablesalt"
+ description = "A salt made of sodium chloride. Commonly used to season food."
+ reagent_state = SOLID
+
+ blackpepper
+ name = "Black Pepper"
+ id = "blackpepper"
+ description = "A power ground from peppercorns. *AAAACHOOO*"
+ reagent_state = SOLID
+
+ amatoxin
+ name = "Amatoxin"
+ id = "amatoxin"
+ description = "A powerful poison derived from certain species of mushroom."
+ on_mob_life(var/mob/M)
+ if(!M) M = holder.my_atom
+ M:toxloss++
+ ..()
+ return
+
+ psilocybin
+ name = "Psilocybin"
+ id = "psilocybin"
+ description = "A strong psycotropic derived from certain species of mushroom."
+ on_mob_life(var/mob/M)
+ if(!M) M = holder.my_atom
+ M.druggy = max(M.druggy, 30)
+ if(M.canmove) step(M, pick(cardinal))
+ if(prob(14)) M:emote(pick("twitch","drool","moan","giggle"))
+ holder.remove_reagent(src.id, 0.2)
+ ..()
+ return
+
+ sprinkles
+ name = "Sprinkles"
+ id = "sprinkles"
+ description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
+ on_mob_life(var/mob/M)
+ if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective"))
+ if(!M) M = holder.my_atom
+ M:bruteloss--
+ M:fireloss--
+ ..()
+ return
+
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////// ALCHOHOLIC DRINKS BELOW, Beer is up there though, along with cola. Cap'n Pete's Cuban Spiced Rum////////////////////////////////
diff --git a/code/WorkInProgress/Chemistry-Recipes.dm b/code/WorkInProgress/Chemistry-Recipes.dm
index 3097d23a56d..3ee8c2a48cf 100644
--- a/code/WorkInProgress/Chemistry-Recipes.dm
+++ b/code/WorkInProgress/Chemistry-Recipes.dm
@@ -200,12 +200,26 @@ datum
result_amount = 10
spaceacillin
- name = "spaceacillin"
+ name = "Spaceacillin"
id = "spaceacillin"
result = "spaceacillin"
required_reagents = list("cryptobiolin" = 1, "inaprovaline" = 1)
result_amount = 2
+ ethylredoxrazine
+ name = "Ethylredoxrazine"
+ id = "ethylredoxrazine"
+ result = "ethylredoxrazine"
+ required_reagents = list("oxygen" = 1, "anti_toxin" = 1, "carbon" = 1)
+ result_amount = 3
+
+ ethanoloxidation
+ name = "ethanoloxidation" //Kind of a placeholder in case someone ever changes it so that chemicals
+ id = "ethanoloxidation" // react in the body. Also it would be silly if it didn't exist.
+ result = "water"
+ required_reagents = list("ethylredoxrazine" = 1, "ethanol" = 1)
+ result_amount = 2
+
flash_powder
name = "Flash powder"
id = "flash_powder"
diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm
index 2d615466035..5f80cf9bfd8 100644
--- a/code/WorkInProgress/Chemistry-Tools.dm
+++ b/code/WorkInProgress/Chemistry-Tools.dm
@@ -329,10 +329,10 @@
w_class = 1
var/amount_per_transfer_from_this = 5
- New()
+/* New()
var/datum/reagents/R = new/datum/reagents(50)
reagents = R
- R.my_atom = src
+ R.my_atom = src */
attackby(obj/item/weapon/W as obj, mob/user as mob)
return
@@ -385,6 +385,7 @@
reagents = R
R.my_atom = src
+
afterattack(obj/target, mob/user , flag)
for(var/type in src.can_be_placed_into)
if(istype(target, type))
@@ -642,197 +643,57 @@
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food
- var/heal_amt = 0
+ New() //Sets the default container amount for all food items.
+ var/datum/reagents/R = new/datum/reagents(50) // if you want a food item with a different capacity
+ reagents = R // then just redefine it in the code for the specific food item.
+ R.my_atom = src
- // -- Skie - Mushrooms & poisoned foor
- // 0 = no poison, 25 = some poison, >50 = LOTS of poison
- var/poison_amt = 0
+/obj/item/weapon/reagent_containers/food/condiment //Food items that aren't eaten normally and leave an empty container behind.
+ name = "condiment"
+ desc = "yummy"
+ icon = 'food.dmi'
+ icon_state = null
- // -- Skie - Psilocybin
- // 0 = no trip, 25 = medium trip, 50 large trip, >75 = WTF
- var/drug_amt = 0
-
- // -- Skie - Hot foods
- // 0 = no heat, 25 = cayenne, 50 = habanero, >75 = jolokia
- var/heat_amt = 0
-
- proc
- heal(var/mob/M)
- var/healing = min(src.heal_amt/2, 1.0) // Should prevent taking damage from healing
- if(istype(M, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- for(var/A in H.organs)
- var/datum/organ/external/affecting = null
- if(!H.organs[A]) continue
- affecting = H.organs[A]
- if(!istype(affecting, /datum/organ/external)) continue
- if(affecting.heal_damage(healing, healing))
- H.UpdateDamageIcon()
- else
- H.UpdateDamage()
- else
- M.bruteloss = max(0, M.bruteloss - healing)
- M.fireloss = max(0, M.fireloss - healing)
- M.updatehealth()
-
-
- proc
- poison(var/mob/M)
- var/poison_temp = src.poison_amt
- src = null
- spawn(200)
- if(istype(M, /mob/living/carbon/human))
- var/mob/living/carbon/human/C = M
- if(poison_temp > 0)
- C.toxloss += rand(0,poison_temp/2) // Some initial damage
- C.fireloss += rand(0,poison_temp/4) // Some initial damage
- C.UpdateDamageIcon()
- C.weakened += poison_temp/(rand(1,4))
- if(poison_temp > 20 && poison_temp < 50)
- C << "\red You feel absolutely horrible."
- C.emote(pick("blink", "blink_r", "twitch_s", "frown", "blush", "shrug", "pale", "sniff", "whimper", "flap", "drool", "moan", "twitch"))
- else if(poison_temp > 49)
- C << "\red You feel like your liver is being disintegrated by an infernal poison."
- C.emote(pick("groan", "frown", "moan", "whimper", "drool", "pale"))
-
-
- C.eye_blurry += poison_temp
- C.make_dizzy(5*poison_temp)
- spawn()
- for(poison_temp, poison_temp>0, 1) // Poison does 10 damage per tick
- sleep(100) // Every 10 seconds
- C.toxloss += min(poison_temp, 10)
- poison_temp -= 10 // Until poison amount is depleted
-
-
- proc
- drug(var/mob/M)
- var/drug_temp = src.drug_amt
- src = null // Detach proc
- spawn(200) // In 20 seconds...
- if(istype(M, /mob/living/carbon/human))
-
- var/mob/living/carbon/human/C = M
- C.druggy += (drug_temp*(drug_temp/15)+10) // Have a trip
- if(drug_temp > 25)
- C.make_dizzy(5*drug_temp) // Dizzify
- C.stuttering = drug_temp // Speech impediments
- spawn(3000) // 5 minutes
- C << "\red You feel a craving for a trip..."
-
- if(drug_temp > 50)
- C.make_jittery(5*drug_temp) // Jitter
- spawn(-1)
- for(var/i=1, i == 1, 1)
- C.see_invisible = 15
- sleep(300)
- C.emote(pick("blink", "blink_r", "twitch_s", "frown", "blush", "shrug", "pale", "sniff", "whimper", "flap", "drool", "moan", "twitch"))
- if(prob(15))
- C.see_invisible = 0
- i = 0
- C.client.view = world.view // Return view range back to normal
- if(drug_temp > 75)
- C.confused += drug_temp // Hard to move where you want
- C.weakened += rand(0, drug_temp/4) // Fall on your back
- // Add cool stuff here later, like everything starting to look different etc.
-
- C.client.view = min(C.client.view + rand(0,4), 14) // FUCK YE
-
- proc
- burn(var/mob/M)
- var/temp_heat = src.heat_amt
- var/temp_name = src.name
- src = null
- spawn(50)
- if(istype(M, /mob/living/carbon/human))
- var/mob/living/carbon/human/C = M
-
- // BRING ON THE HEAT/FROST
- spawn()
- while(temp_heat > 5) // Until chili pepper's potency is depleted
- sleep(20) // Every 2 seconds
- C.fireloss += 3 // Do some burn damage because body temperature itself doesn't do anything :(
- if (temp_heat > 0 && temp_name == "Chili")
- C.bodytemperature += min(temp_heat*5, 25)
- temp_heat -= 5 // Until heat amount is depleted
- else if (temp_heat > 0 && temp_name == "Icepepper") // Herp derp, bad way to do it but herp derp
- C.bodytemperature -= min(temp_heat*5, 25)
- temp_heat -= 5 // Until heat amount is depleted
-
-
-/obj/item/weapon/reagent_containers/food/snacks
+/obj/item/weapon/reagent_containers/food/snacks //Food items that are eaten normally and don't leave anything behind.
name = "snack"
desc = "yummy"
icon = 'food.dmi'
icon_state = null
- var/amount = 3
- heal_amt = 1
-
- New()
- var/datum/reagents/R = new/datum/reagents(10)
- reagents = R
- R.my_atom = src
+ var/bitesize = 1
attackby(obj/item/weapon/W as obj, mob/user as mob)
return
attack_self(mob/user as mob)
return
attack(mob/M as mob, mob/user as mob, def_zone)
- if(!src.amount)
+ if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
user << "\red None of [src] left, oh no!"
del(src)
return 0
if(istype(M, /mob/living/carbon/human))
- if(M == user)
+ if(M == user) //If you're eating it yourself.
M << "\blue You take a bite of [src]."
- if(reagents)
- if(reagents.total_volume)
- reagents.reaction(M, INGEST)
- spawn(5)
- reagents.trans_to(M, reagents.total_volume)
- src.amount--
- playsound(M.loc,'eatfood.ogg', rand(10,50), 1)
- M.nutrition += src.heal_amt * 10
- if(src.heal_amt > 0)
- src.heal(M)
- if(src.poison_amt > 0)
- src.poison(M)
- if(src.drug_amt > 0)
- src.drug(M)
- if(src.heat_amt > 0)
- src.burn(M)
- if(!src.amount)
- user << "\red You finish eating [src]."
- del(src)
- return 1
- else
+ else //If you're feeding it to someone else.
for(var/mob/O in viewers(world.view, user))
O.show_message("\red [user] attempts to feed [M] [src].", 1)
if(!do_mob(user, M)) return
for(var/mob/O in viewers(world.view, user))
O.show_message("\red [user] feeds [M] [src].", 1)
- if(reagents)
- if(reagents.total_volume)
- reagents.reaction(M, INGEST)
- spawn(5)
+ if(reagents) //Handle ingestion of the reagent.
+ if(reagents.total_volume)
+ reagents.reaction(M, INGEST)
+ spawn(5)
+ if(reagents.total_volume > bitesize)
+ reagents.trans_to(M, bitesize)
+ else
reagents.trans_to(M, reagents.total_volume)
- src.amount--
- playsound(M.loc, 'eatfood.ogg', rand(10,50), 1)
- M.nutrition += src.heal_amt * 10
- if(src.heal_amt > 0)
- src.heal(M)
- if(src.poison_amt > 0)
- src.poison(M)
- if(src.drug_amt > 0)
- src.drug(M)
- if(src.heat_amt > 0)
- src.burn(M)
- if(!src.amount)
- user << "\red [M] finishes eating [src]."
- del(src)
+ if(!reagents.total_volume)
+ if(M == user) user << "\red You finish eating [src]."
+ else user << "\red [M] finishes eating [src]."
+ del(src)
+ playsound(M.loc,'eatfood.ogg', rand(10,50), 1)
return 1
-
return 0
attackby(obj/item/I as obj, mob/user as mob)
@@ -840,8 +701,7 @@
afterattack(obj/target, mob/user , flag)
return
-/obj/item/weapon/reagent_containers/food/snacks/grown/
- icon = 'harvest.dmi'
+
////////////////////////////////////////////////////////////////////////////////
/// FOOD END
@@ -862,15 +722,11 @@
var/datum/reagents/R = new/datum/reagents(50)
reagents = R
R.my_atom = src
- update_gulp_size()
-
- proc
- update_gulp_size()
- gulp_size = round(reagents.total_volume / 5)
- if (gulp_size < 5) gulp_size = 5
on_reagent_change()
- update_gulp_size()
+ if (gulp_size < 5) gulp_size = 5
+ else gulp_size = max(round(reagents.total_volume / 5), 5)
+
attackby(obj/item/weapon/W as obj, mob/user as mob)
return
@@ -956,7 +812,7 @@
item_state = "pill"
New()
- var/datum/reagents/R = new/datum/reagents(100)
+ var/datum/reagents/R = new/datum/reagents(50)
reagents = R
R.my_atom = src
icon_state = "pill[rand(1,20)]"
@@ -1074,6 +930,18 @@
..()
reagents.add_reagent("fluorosurfactant", 20)
+/obj/item/weapon/reagent_containers/glass/beaker
+ name = "beaker"
+ desc = "A beaker. Can hold up to 50 units."
+ icon = 'chemical.dmi'
+ icon_state = "beaker0"
+ item_state = "beaker"
+
+ on_reagent_change()
+ if(reagents.total_volume)
+ icon_state = "beaker1"
+ else
+ icon_state = "beaker0"
/obj/item/weapon/reagent_containers/glass/large
name = "large reagent glass"
@@ -1084,11 +952,6 @@
amount_per_transfer_from_this = 10
flags = FPRINT | TABLEPASS | OPENCONTAINER
- New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
-
/obj/item/weapon/reagent_containers/glass/bottle/
name = "bottle"
desc = "A small bottle."
@@ -1112,10 +975,8 @@
amount_per_transfer_from_this = 10
New()
- var/datum/reagents/R = new/datum/reagents(30)
- reagents = R
- R.my_atom = src
- R.add_reagent("inaprovaline", 30)
+ ..()
+ reagents.add_reagent("inaprovaline", 30)
/obj/item/weapon/reagent_containers/glass/bottle/toxin
name = "toxin bottle"
@@ -1125,10 +986,8 @@
amount_per_transfer_from_this = 5
New()
- var/datum/reagents/R = new/datum/reagents(30)
- reagents = R
- R.my_atom = src
- R.add_reagent("toxin", 30)
+ ..()
+ reagents.add_reagent("toxin", 30)
/obj/item/weapon/reagent_containers/glass/bottle/stoxin
name = "sleep-toxin bottle"
@@ -1138,10 +997,8 @@
amount_per_transfer_from_this = 5
New()
- var/datum/reagents/R = new/datum/reagents(30)
- reagents = R
- R.my_atom = src
- R.add_reagent("stoxin", 30)
+ ..()
+ reagents.add_reagent("stoxin", 30)
/obj/item/weapon/reagent_containers/glass/bottle/antitoxin
name = "anti-toxin bottle"
@@ -1151,10 +1008,8 @@
amount_per_transfer_from_this = 5
New()
- var/datum/reagents/R = new/datum/reagents(30)
- reagents = R
- R.my_atom = src
- R.add_reagent("anti_toxin", 30)
+ ..()
+ reagents.add_reagent("anti_toxin", 30)
/obj/item/weapon/reagent_containers/glass/bottle/flu_virion
@@ -1163,14 +1018,11 @@
icon = 'chemical.dmi'
icon_state = "bottle3"
amount_per_transfer_from_this = 5
-
New()
- var/datum/reagents/R = new/datum/reagents(20)
- reagents = R
- R.my_atom = src
+ ..()
var/datum/disease/F = new /datum/disease/flu(0)
var/list/data = list("virus"= F)
- R.add_reagent("blood", 20, data)
+ reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/cold
@@ -1179,14 +1031,11 @@
icon = 'chemical.dmi'
icon_state = "bottle3"
amount_per_transfer_from_this = 5
-
New()
- var/datum/reagents/R = new/datum/reagents(20)
- reagents = R
- R.my_atom = src
+ ..()
var/datum/disease/F = new /datum/disease/cold(0)
var/list/data = list("virus"= F)
- R.add_reagent("blood", 20, data)
+ reagents.add_reagent("blood", 20, data)
/*
/obj/item/weapon/reagent_containers/glass/bottle/gbs
@@ -1210,14 +1059,11 @@
icon = 'chemical.dmi'
icon_state = "bottle3"
amount_per_transfer_from_this = 5
-
New()
- var/datum/reagents/R = new/datum/reagents(20)
- reagents = R
- R.my_atom = src
+ ..()
var/datum/disease/F = new /datum/disease/fake_gbs(0)
var/list/data = list("virus"= F)
- R.add_reagent("blood", 20, data)
+ reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/brainrot
@@ -1226,14 +1072,11 @@
icon = 'chemical.dmi'
icon_state = "bottle3"
amount_per_transfer_from_this = 5
-
New()
- var/datum/reagents/R = new/datum/reagents(30)
- reagents = R
- R.my_atom = src
+ ..()
var/datum/disease/F = new /datum/disease/brainrot(0)
var/list/data = list("virus"= F)
- R.add_reagent("blood", 20, data)
+ reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/magnitis
name = "Magnitis culture bottle"
@@ -1241,14 +1084,11 @@
icon = 'chemical.dmi'
icon_state = "bottle3"
amount_per_transfer_from_this = 5
-
New()
- var/datum/reagents/R = new/datum/reagents(20)
- reagents = R
- R.my_atom = src
+ ..()
var/datum/disease/F = new /datum/disease/magnitis(0)
var/list/data = list("virus"= F)
- R.add_reagent("blood", 20, data)
+ reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/wizarditis
@@ -1257,29 +1097,11 @@
icon = 'chemical.dmi'
icon_state = "bottle3"
amount_per_transfer_from_this = 5
-
New()
- var/datum/reagents/R = new/datum/reagents(20)
- reagents = R
- R.my_atom = src
+ ..()
var/datum/disease/F = new /datum/disease/wizarditis(0)
var/list/data = list("virus"= F)
- R.add_reagent("blood", 20, data)
-
-
-
-/obj/item/weapon/reagent_containers/glass/beaker
- name = "beaker"
- desc = "A beaker. Can hold up to 30 units."
- icon = 'chemical.dmi'
- icon_state = "beaker0"
- item_state = "beaker"
-
- on_reagent_change()
- if(reagents.total_volume)
- icon_state = "beaker1"
- else
- icon_state = "beaker0"
+ reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
@@ -1290,10 +1112,8 @@
item_state = "beaker"
New()
- var/datum/reagents/R = new/datum/reagents(30)
- reagents = R
- R.my_atom = src
- R.add_reagent("cryoxadone", 30)
+ ..()
+ reagents.add_reagent("cryoxadone", 30)
//Syringes
@@ -1301,12 +1121,9 @@
name = "Syringe (mixed)"
desc = "Contains inaprovaline & anti-toxins."
New()
- var/datum/reagents/R = new/datum/reagents(15)
- reagents = R
- R.maximum_volume = 15
- R.my_atom = src
- R.add_reagent("inaprovaline", 7)
- R.add_reagent("anti_toxin", 8)
+ ..()
+ reagents.add_reagent("inaprovaline", 7)
+ reagents.add_reagent("anti_toxin", 8)
mode = "i"
update_icon()
@@ -1314,81 +1131,100 @@
name = "Syringe (inaprovaline)"
desc = "Contains inaprovaline - used to stabilize patients."
New()
- var/datum/reagents/R = new/datum/reagents(15)
- reagents = R
- R.maximum_volume = 15
- R.my_atom = src
- R.add_reagent("inaprovaline", 15)
+ ..()
+ reagents.add_reagent("inaprovaline", 15)
update_icon()
/obj/item/weapon/reagent_containers/syringe/antitoxin
name = "Syringe (anti-toxin)"
desc = "Contains anti-toxins."
New()
- var/datum/reagents/R = new/datum/reagents(15)
- reagents = R
- R.maximum_volume = 15
- R.my_atom = src
- R.add_reagent("anti_toxin", 15)
+ ..()
+ reagents.add_reagent("anti_toxin", 15)
update_icon()
/obj/item/weapon/reagent_containers/syringe/antiviral
name = "Syringe (spaceacillin)"
desc = "Contains antiviral agents."
New()
- var/datum/reagents/R = new/datum/reagents(15)
- reagents = R
- R.maximum_volume = 15
- R.my_atom = src
- R.add_reagent("spaceacillin", 15)
+ ..()
+ reagents.add_reagent("spaceacillin", 15)
update_icon()
//////////////////////////////////////////////////
////////////////////////////////////////////Snacks
//////////////////////////////////////////////////
+//Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created
+// already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten.
+
+//Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units Generally speaking, you don't want to go over 40
+// total for the item because you want to leave space for extra condiments. If you want effects besides healing, add a reagent for
+// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use Tricordrazine). On use
+// effects (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way).
+
+//The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to
+// 2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a
+// bitesize of 2, then it'll take 3 bites to eat. Unlike the old system, the contained reagents are evenly spread among all
+// the bites. No more contained reagents = no more bites.
+
+//Here is an example of the new formatting for anyone who wants to add more food items.
+///obj/item/weapon/reagent_containers/food/snacks/xenoburger //Identification path for the object.
+// name = "Xenoburger" //Name that displays in the UI.
+// desc = "Smells caustic. Tastes like heresy." //Duh
+// icon_state = "xburger" //Refers to an icon in food.dmi
+// New() //Don't mess with this.
+// ..() //Same here.
+// reagents.add_reagent("xenomicrobes", 10) //This is what is in the food item. you may copy/paste
+// reagents.add_reagent("nutriment", 2) // this line of code for all the contents.
+// bitesize = 3 //This is the amount each bite consumes.
/obj/item/weapon/reagent_containers/food/snacks/candy
name = "candy"
desc = "Man, that shit looks good. I bet it's got nougat. Fuck."
icon_state = "candy"
- heal_amt = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/chips
name = "chips"
desc = "Commander Riker's What-The-Crisps"
icon_state = "chips"
- heal_amt = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/donut
name = "donut"
desc = "Goes great with Robust Coffee."
icon_state = "donut1"
- heal_amt = 1
New()
..()
- if(rand(1,3) == 1)
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("sprinkles", 1)
+ if(prob(30))
src.icon_state = "donut2"
src.name = "frosted donut"
- src.heal_amt = 2
- heal(var/mob/M)
- if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective"))
- src.heal_amt *= 2
- ..()
- src.heal_amt /= 2
+ src.bitesize = 2
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("sprinkles", 1)
/obj/item/weapon/reagent_containers/food/snacks/egg
name = "egg"
desc = "An egg!"
icon_state = "egg"
- amount = 1
- heal_amt = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 1)
/obj/item/weapon/reagent_containers/food/snacks/flour
name = "flour"
desc = "Some flour"
icon_state = "flour"
- amount = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 1)
/obj/item/weapon/reagent_containers/food/snacks/humanmeat
name = "-meat"
@@ -1396,51 +1232,41 @@
icon_state = "meat"
var/subjectname = ""
var/subjectjob = null
- amount = 1
-
-/* Commented out due to being completly useless. Goddamn goon humor.
-/obj/item/weapon/reagent_containers/food/snacks/assburger
- name = "assburger"
- desc = "This burger gives off an air of awkwardness."
- icon_state = "assburger"
- amount = 5
- heal_amt = 2
-*/
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/brainburger
name = "brainburger"
desc = "A strange looking burger. It looks almost sentient."
icon_state = "brainburger"
- amount = 5
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 8)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/faggot
- name = "faggot"
- desc = "A great meal all round."
+ name = "Faggot"
+ desc = "A great meal all round. Not a cord of wood."
icon_state = "faggot"
- amount = 1
- heal_amt = 2
- heal(var/mob/M)
+ New()
..()
+ reagents.add_reagent("nutriment", 2)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/donkpocket
- name = "donk-pocket"
+ name = "Donk-pocket"
desc = "The food of choice for the seasoned traitor."
icon_state = "donkpocket"
- heal_amt = 1
- amount = 1
- var/warm = 0
- heal(var/mob/M)
- if(src.warm && M.reagents)
- M.reagents.add_reagent("tricordrazine",15)
- else
- M << "\red It's just not good enough cold.."
+ New()
..()
-
- proc/cooltime()
+ reagents.add_reagent("nutriment", 1)
+ var/warm = 0
+ proc/cooltime() //Not working, derp?
if (src.warm)
spawn( 4200 )
src.warm = 0
+ src.reagents.del_reagent("tricordrazine")
src.name = "donk-pocket"
return
@@ -1450,74 +1276,65 @@
var/job = null
desc = "A bloody burger."
icon_state = "hburger"
- amount = 5
- heal_amt = 2
- heal(var/mob/M)
+ New()
..()
+ reagents.add_reagent("nutriment", 8)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger
name = "monkeyburger"
desc = "The cornerstone of every nutritious breakfast."
icon_state = "hburger"
- amount = 5
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 8)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatbread
name = "meatbread loaf"
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
icon_state = "meatbread"
- amount = 30
- heal_amt = 5
-/* New()
- var/datum/reagents/R = new/datum/reagents(20)
- reagents = R
- R.my_atom = src
- R.add_reagent("cholesterol", 20)*/
- heal(var/mob/M)
+ New()
..()
-
+ reagents.add_reagent("nutriment", 40)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
name = "meatbread slice"
desc = "A slice of delicious meatbread."
icon_state = "meatbreadslice"
- amount = 5
- heal_amt = 6
-/* New()
- var/datum/reagents/R = new/datum/reagents(10)
- reagents = R
- R.my_atom = src
- R.add_reagent("cholesterol", 10)*/
- heal(var/mob/M)
+ New()
..()
+ reagents.add_reagent("nutriment", 8)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesewheel
name = "Cheese wheel"
desc = "A big wheel of delcious Cheddar."
icon_state = "cheesewheel"
- amount = 25
- heal_amt = 3
- heal(var/mob/M)
+ New()
..()
+ reagents.add_reagent("nutriment", 20)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
name = "Cheese wedge"
desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far."
icon_state = "cheesewedge"
- amount = 4
- heal_amt = 4
- heal(var/mob/M)
+ New()
..()
+ reagents.add_reagent("nutriment", 4)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/omelette
name = "Omelette Du Fromage"
desc = "That's all you can say!"
icon_state = "omelette"
- amount = 15
- heal_amt = 3
- heal(var/mob/M)
+ New()
..()
+ reagents.add_reagent("nutriment", 10)
+ bitesize = 1
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/kitchen/utensil/fork))
W.icon = 'kitchen.dmi'
@@ -1527,214 +1344,138 @@
/obj/item/weapon/reagent_containers/food/snacks/omeletteforkload
name = "Omelette Du Fromage"
desc = "That's all you can say!"
- amount = 1
- heal_amt = 4
- heal(var/mob/M)
+ New()
..()
+ reagents.add_reagent("nutriment", 1)
+
/obj/item/weapon/reagent_containers/food/snacks/muffin
name = "Muffin"
desc = "A delicious and spongy little cake"
icon_state = "muffin"
- amount = 4
- heal_amt = 6
- heal(var/mob/M)
+ New()
..()
+ reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/roburger
name = "roburger"
desc = "The lettuce is the only organic component. Beep."
icon_state = "roburger"
New()
- var/datum/reagents/R = new/datum/reagents(5)
- reagents = R
- R.my_atom = src
- R.add_reagent("nanites", 5)
+ ..()
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("nanites", 10)
+ bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/xenoburger
name = "xenoburger"
desc = "Smells caustic. Tastes like heresy."
icon_state = "xburger"
New()
- var/datum/reagents/R = new/datum/reagents(5)
- reagents = R
- R.my_atom = src
- R.add_reagent("xenomicrobes", 5)
+ ..()
+ reagents.add_reagent("xenomicrobes", 10)
+ reagents.add_reagent("nutriment", 2)
+ bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/monkeymeat
name = "meat"
desc = "A slab of meat"
icon_state = "meat"
- amount = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
name = "meat"
desc = "A slab of meat"
icon_state = "xenomeat"
- amount = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/pie
name = "custard pie"
desc = "It smells delicious. You just want to plant your face in it."
icon_state = "pie"
- amount = 3
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/waffles
name = "waffles"
desc = "Mmm, waffles"
icon_state = "waffles"
- amount = 5
- heal_amt = 2
-
-//Drinks
-/obj/item/weapon/reagent_containers/food/drinks/coffee
- name = "Robust Coffee"
- desc = "Careful, the beverage you're about to enjoy is extremely hot."
- icon_state = "coffee"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
- R.add_reagent("coffee", 30)
-
-/obj/item/weapon/reagent_containers/food/drinks/cola
- name = "space cola"
- desc = "Cola. in space."
- icon_state = "cola"
- heal_amt = 1
- New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
- R.add_reagent("cola", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/beer
- name = "Space Beer"
- desc = "Beer. in space."
- icon_state = "beer"
- heal_amt = 1
- New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
- R.add_reagent("beer", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/ale
- name = "Magm-Ale"
- desc = "A true dorf's drink of choice."
- icon_state = "alebottle"
- heal_amt = 1
- New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
- R.add_reagent("ale", 30)
-
-/obj/item/weapon/reagent_containers/food/drinks/milk
- name = "Space Milk"
- desc = "It's milk. White and nutritious goodness!"
- icon_state = "milk"
- heal_amt = 2
- New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
- R.add_reagent("milk", 50)
-
-/obj/item/weapon/reagent_containers/food/snacks/ketchup
- name = "Ketchup"
- desc = "You feel more American already."
- icon_state = "ketchup"
- amount = 1
-
-/obj/item/weapon/reagent_containers/food/snacks/hotsauce
- name = "Hotsauce"
- desc = "You can almost TASTE the stomach ulcers now!"
- icon_state = "hotsauce"
- amount = 1
-
-/obj/item/weapon/reagent_containers/food/snacks/berryjam
- name = "Berry Jam"
- desc = "A delightfully sweat flavor of some indescernible berry... you think."
- icon_state = "berryjam"
- amount = 1
+ ..()
+ reagents.add_reagent("nutriment", 8)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/eggplantparm
name = "Eggplant Parmigiana"
desc = "The only good recipe for eggplant."
icon_state = "eggplantparm"
- amount = 5
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 8)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/jellydonut
name = "Jelly Donut"
desc = "Oh so gooey on the inside."
icon_state = "donut1" //Placeholder until I stop being lazy. ie. Never. -- Darem
- heal_amt = 2
New()
..()
- if(rand(1,3) == 1)
+ reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("sprinkles", 3)
+ bitesize = 2
+ if(prob(30))
src.icon_state = "donut2"
src.name = "Frosted Jelly Donut"
- src.heal_amt = 3
- heal(var/mob/M)
- if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective"))
- src.heal_amt *= 2
- ..()
- src.heal_amt /= 2
+ reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("sprinkles", 3)
+ bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/soylentgreen
name = "Soylent Green"
desc = "Not made of people. Honest." //Totally people.
icon_state = "soylent"
- amount = 5
- heal_amt = 1
-
-/obj/item/weapon/reagent_containers/food/snacks/soysauce
- name = "Soy Sauce"
- desc = "A salty soy-based flavoring."
- icon_state = "soysauce"
- amount = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 5)
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians
name = "Soylen Virdians"
desc = "Not made of people. Honest." //Actually honest for once.
icon_state = "soylent"
- amount = 5
- heal_amt = 1
-
-
-/obj/item/weapon/reagent_containers/food/snacks/coldsauce
- name = "Coldsauce"
- desc = "Leaves the tongue numb in it's passage."
- icon_state = "coldsauce"
- amount = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 5)
/obj/item/weapon/reagent_containers/food/snacks/carrotcake
name = "Carrot Cake"
desc = "A favorite desert of a certain wascally wabbit. Also not a lie."
icon_state = "carrotcake"
- amount = 5
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 8)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesecake
name = "Cheese Cake"
desc = "DANGEROUSLY cheesy."
icon_state = "cheesecake"
- amount = 5
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 8)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/plaincake
name = "Vanilla Cake"
desc = "A plain cake, not a lie."
icon_state = "plaincake"
- amount = 5
- heal_amt = 1
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 4)
/obj/item/weapon/reagent_containers/food/snacks/humeatpie
name = "-pie"
@@ -1742,231 +1483,300 @@
var/job = null
icon_state = "pie" //placeholder
desc = "A delicious meatpie."
- amount = 3
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 6)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/momeatpie
name = "Monkey-pie"
icon_state = "pie"
desc = "A delicious meatpie."
- amount = 3
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 6)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/xemeatpie
name = "Xeno-pie"
icon_state = "pie" //placeholder
desc = "A delicious meatpie. Probably heretical."
New()
- var/datum/reagents/R = new/datum/reagents(5)
- reagents = R
- R.my_atom = src
- R.add_reagent("xenomicrobes", 5)
+ ..()
+ reagents.add_reagent("nutriment", 2)
+ bitesize = 4
+ reagents.add_reagent("xenomicrobes", 10)
/obj/item/weapon/reagent_containers/food/snacks/wingfangchu
name = "Wing Fang Chu"
desc = "A savory dish of alien wing wang in soy."
icon_state = "wingfangchu"
New()
- var/datum/reagents/R = new/datum/reagents(5)
- reagents = R
- R.my_atom = src
- R.add_reagent("xenomicrobes", 5)
+ ..()
+ reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("xenomicrobes", 5)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/chaosdonut
name = "Chaos Donut"
desc = "Like life, it never quite tastes the same."
icon_state = "donut1"
- heat_amt = 25
New()
..()
- if(rand(1,3) == 1)
+ reagents.add_reagent("nutriment", 3)
+ bitesize = 2
+ if(prob(30))
src.icon_state = "donut2"
src.name = "Frosted Chaos Donut"
- heat_amt = 0
- drug_amt = 25
+ var/temp_chaos = pick(1, 2, 3)
+ if(temp_chaos == 1)
+ reagents.add_reagent("capsaicin", 3)
+ else if(temp_chaos == 2)
+ reagents.add_reagent("frostoil", 3)
+ else if(temp_chaos == 3)
+ reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/humankabob
name = "-kabob"
var/hname = ""
var/job = null
icon_state = "kabob"
- amount = 3
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 6)
+ bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/monkeykabob
name = "Monkey-kabob"
icon_state = "kabob"
- amount = 3
- heal_amt = 2
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 6)
+ bitesize = 2
+
+///////////////////////////////////////////////Condiments
+//Notes by Darem: The condiments food-subtype is for stuff you don't actually eat but you use to modify existing food. They all
+// leave empty containers when used up and can be filled/re-filled with other items. However, they start already full with
+// whatever substance they are designed for. Formatting almost identical to snacks except you don't have to worry about bite size.
+// and such. Condiments should be either Liquids or Solids.
+
+/obj/item/weapon/reagent_containers/food/condiment/ketchup
+ name = "Ketchup"
+ desc = "You feel more American already."
+ icon_state = "ketchup"
+ New()
+ ..()
+ reagents.add_reagent("ketchup", 50)
+
+/obj/item/weapon/reagent_containers/food/condiment/hotsauce
+ name = "Hotsauce"
+ desc = "You can almost TASTE the stomach ulcers now!"
+ icon_state = "hotsauce"
+ New()
+ ..()
+ reagents.add_reagent("capsaicin", 50)
+
+/obj/item/weapon/reagent_containers/food/condiment/berryjam
+ name = "Berry Jam"
+ desc = "A delightfully sweat flavor of some indescernible berry... you think."
+ icon_state = "berryjam"
+ New()
+ ..()
+ reagents.add_reagent("berryjam", 50)
+
+/obj/item/weapon/reagent_containers/food/condiment/soysauce
+ name = "Soy Sauce"
+ desc = "A salty soy-based flavoring."
+ icon_state = "soysauce"
+ New()
+ ..()
+ reagents.add_reagent("soysauce", 50)
+
+/obj/item/weapon/reagent_containers/food/condiment/coldsauce
+ name = "Coldsauce"
+ desc = "Leaves the tongue numb in it's passage."
+ icon_state = "coldsauce"
+ New()
+ ..()
+ reagents.add_reagent("frostoil", 50)
+
+///////////////////////////////////////////////Drinks
+//Notes by Darem: Drinks are simply containers that start preloaded. Unlike condiments, the contents can be ingested directly
+// rather then having to add it to something else first. They should only contain liquids. They have a default container size of 50.
+// Formatting is the same as condiments.
+/obj/item/weapon/reagent_containers/food/drinks/milk
+ name = "Space Milk"
+ desc = "It's milk. White and nutritious goodness!"
+ icon_state = "milk"
+ New()
+ ..()
+ reagents.add_reagent("milk", 50)
+
+/obj/item/weapon/reagent_containers/food/drinks/coffee
+ name = "Robust Coffee"
+ desc = "Careful, the beverage you're about to enjoy is extremely hot."
+ icon_state = "coffee"
+ New()
+ ..()
+ reagents.add_reagent("coffee", 30)
+
+/obj/item/weapon/reagent_containers/food/drinks/cola
+ name = "Space Cola"
+ desc = "Cola. in space."
+ icon_state = "cola"
+ New()
+ ..()
+ reagents.add_reagent("cola", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/beer
+ name = "Space Beer"
+ desc = "Beer. In space."
+ icon_state = "beer"
+ New()
+ ..()
+ reagents.add_reagent("beer", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/ale
+ name = "Magm-Ale"
+ desc = "A true dorf's drink of choice."
+ icon_state = "alebottle"
+ New()
+ ..()
+ reagents.add_reagent("ale", 30)
///////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
+//Notes by Darem: Functionally identical to regular drinks. The only difference is that the default bottle size is 100.
+/obj/item/weapon/reagent_containers/food/drinks/bottle
+ New()
+ var/datum/reagents/R = new/datum/reagents(100)
+ reagents = R
+ R.my_atom = src
-/obj/item/weapon/reagent_containers/food/drinks/gin
+/obj/item/weapon/reagent_containers/food/drinks/bottle/gin
name = "Griffeater Gin"
desc = "A bottle of high quality gin, produced in the New London Space Station."
icon_state = "ginbottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("gin", 100)
+ ..()
+ reagents.add_reagent("gin", 100)
-/obj/item/weapon/reagent_containers/food/drinks/whiskey
+/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey
name = "Uncle Git's Special Reserve"
desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES."
icon_state = "whiskeybottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("whiskey", 100)
+ ..()
+ reagents.add_reagent("whiskey", 100)
-/obj/item/weapon/reagent_containers/food/drinks/vodka
+/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka
name = "Tunguska Triple Distilled"
desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide."
icon_state = "vodkabottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("vodka", 100)
+ ..()
+ reagents.add_reagent("vodka", 100)
-/obj/item/weapon/reagent_containers/food/drinks/tequilla
+/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla
name = "Caccavo Guaranteed Quality Tequilla"
desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!"
icon_state = "tequillabottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("tequilla", 100)
+ ..()
+ reagents.add_reagent("tequilla", 100)
-/obj/item/weapon/reagent_containers/food/drinks/rum
+/obj/item/weapon/reagent_containers/food/drinks/bottle/rum
name = "Captain Pete's Cuban Spiced Rum"
desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle."
icon_state = "rumbottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("rum", 100)
+ ..()
+ reagents.add_reagent("rum", 100)
-/obj/item/weapon/reagent_containers/food/drinks/vermouth
+/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth
name = "Goldeneye Vermouth"
desc = "Sweet, sweet dryness~"
icon_state = "vermouthbottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("vermouth", 100)
+ ..()
+ reagents.add_reagent("vermouth", 100)
-/obj/item/weapon/reagent_containers/food/drinks/kahlua
+/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua
name = "Robert Robust's Coffee Liqueur"
desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK"
icon_state = "kahluabottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("kahlua", 100)
+ ..()
+ reagents.add_reagent("kahlua", 100)
-/obj/item/weapon/reagent_containers/food/drinks/cognac
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac
name = "Chateau De Baton Premium Cognac"
desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time."
icon_state = "cognacbottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("cognac", 100)
+ ..()
+ reagents.add_reagent("cognac", 100)
-/obj/item/weapon/reagent_containers/food/drinks/wine
+/obj/item/weapon/reagent_containers/food/drinks/bottle/wine
name = "Doublebeard Bearded Special Wine"
desc = "A faint aura of unease and asspainery surrounds the bottle."
icon_state = "winebottle"
- heal_amt = 1
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("wine", 100)
+ ..()
+ reagents.add_reagent("wine", 100)
//////////////////////////JUICES AND STUFF ///////////////////////
-/obj/item/weapon/reagent_containers/food/drinks/orangejuice
+/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice
name = "Orange Juice"
desc = "Full of vitamins and deliciousness!"
icon_state = "orangejuice"
- heal_amt = 2
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("orangejuice", 100)
+ ..()
+ reagents.add_reagent("orangejuice", 100)
-/obj/item/weapon/reagent_containers/food/drinks/cream
+/obj/item/weapon/reagent_containers/food/drinks/bottle/cream
name = "Milk Cream"
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
icon_state = "cream"
- heal_amt = 2
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("cream", 100)
+ ..()
+ reagents.add_reagent("cream", 100)
-/obj/item/weapon/reagent_containers/food/drinks/tomatojuice
+/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice
name = "Tomato Juice"
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
icon_state = "tomatojuice"
- heal_amt = 2
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("tomatojuice", 100)
+ ..()
+ reagents.add_reagent("tomatojuice", 100)
-/obj/item/weapon/reagent_containers/food/drinks/limejuice
+/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice
name = "Lime Juice"
desc = "Sweet-sour goodness."
icon_state = "limejuice"
- heal_amt = 2
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("limejuice", 100)
+ ..()
+ reagents.add_reagent("limejuice", 100)
/obj/item/weapon/reagent_containers/food/drinks/tonic
name = "T-Borg's Tonic Water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
icon_state = "tonic"
- heal_amt = 2
New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
- R.add_reagent("tonic", 50)
+ ..()
+ reagents.add_reagent("tonic", 50)
/obj/item/weapon/reagent_containers/food/drinks/sodawater
name = "Soda Water"
desc = "A can of soda water. Why not make a scotch and soda?"
icon_state = "sodawater"
- heal_amt = 2
New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
- R.add_reagent("sodawater", 50)
+ ..()
+ reagents.add_reagent("sodawater", 50)
//Pills
@@ -1974,23 +1784,17 @@
name = "Anti-toxins pill"
desc = "Neutralizes many common toxins."
icon_state = "pill17"
-
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("anti_toxin", 50)
+ ..()
+ reagents.add_reagent("anti_toxin", 50)
/obj/item/weapon/reagent_containers/pill/tox
name = "Toxins pill"
desc = "Highly toxic."
icon_state = "pill5"
-
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("toxin", 50)
+ ..()
+ reagents.add_reagent("toxin", 50)
/obj/item/weapon/reagent_containers/pill/stox
name = "Sleeping pill"
@@ -1998,10 +1802,8 @@
icon_state = "pill8"
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("stoxin", 30)
+ ..()
+ reagents.add_reagent("stoxin", 30)
/obj/item/weapon/reagent_containers/pill/kelotane
name = "Kelotane pill"
@@ -2009,10 +1811,8 @@
icon_state = "pill11"
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("kelotane", 30)
+ ..()
+ reagents.add_reagent("kelotane", 30)
/obj/item/weapon/reagent_containers/pill/inaprovaline
name = "Inaprovaline pill"
@@ -2020,10 +1820,8 @@
icon_state = "pill20"
New()
- var/datum/reagents/R = new/datum/reagents(100)
- reagents = R
- R.my_atom = src
- R.add_reagent("inaprovaline", 30)
+ ..()
+ reagents.add_reagent("inaprovaline", 30)
//Dispensers
/obj/reagent_dispensers/watertank
@@ -2075,6 +1873,9 @@
//////////////////////////drinkingglass and shaker//
+//Note by Darem: This code handles the mixing of drinks. New drinks go in three places: In Chemistry-Reagents.dm (for the drink
+// itself), in Chemistry-Recipes.dm (for the reaction that changes the components into the drink), and here (for the drinking glass
+// icon states.
/obj/item/weapon/reagent_containers/food/drinks/shaker
name = "Shaker"
@@ -2316,10 +2117,8 @@
icon_state = "jar"
item_state = "beaker"
New()
- var/datum/reagents/R = new/datum/reagents(50)
- reagents = R
- R.my_atom = src
- R.add_reagent("metroid", 50)
+ ..()
+ reagents.add_reagent("metroid", 50)
on_reagent_change()
if (reagents.reagent_list.len > 0)
diff --git a/code/defines/atom.dm b/code/defines/atom.dm
index 35c7d2f9972..b1f5da64de4 100644
--- a/code/defines/atom.dm
+++ b/code/defines/atom.dm
@@ -33,6 +33,14 @@
proc/is_open_container()
return flags & OPENCONTAINER
+/*//Convenience proc to see whether a container can be accessed in a certain way.
+
+ proc/can_subract_container()
+ return flags & EXTRACT_CONTAINER
+
+ proc/can_add_container()
+ return flags & INSERT_CONTAINER
+*/
obj
assume_air(datum/air_group/giver)
diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm
index 2f8cce5641b..8ffb77e318b 100644
--- a/code/defines/obj/hydro.dm
+++ b/code/defines/obj/hydro.dm
@@ -381,8 +381,25 @@
// Data from the seeds carry over to these grown foods
// ***********************************************************
+//Grown foods
+/obj/item/weapon/reagent_containers/food/snacks/grown/ //New subclass so we can pass on values
+ var/seed = ""
+ var/plantname = ""
+ var/productname = ""
+ var/species = ""
+ var/lifespan = 0
+ var/endurance = 0
+ var/maturation = 0
+ var/production = 0
+ var/yield = 0
+ var/potency = -1
+ var/plant_type = 0
+ icon = 'harvest.dmi'
+ var/poison_amt = 0
+ var/drug_amt = 0
+ var/heat_amt = 0
-obj/item/weapon/reagent_containers/food/snacks/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/item/weapon/reagent_containers/food/snacks/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (istype(O, /obj/item/device/analyzer/plant_analyzer))
user << "This is a \blue [name]"
switch(plant_type)
@@ -397,7 +414,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/attackby(var/obj/item/O as
user << "- Maturation speed: \blue [maturation]"
user << "- Production speed: \blue [production]"
user << "- Endurance: \blue [endurance]"
- user << "- Healing properties: \blue [heal_amt]"
+ user << "- Healing properties: \blue [reagents.get_reagent_amount("nutriment")]"
user << "- Amatoxins: \blue [poison_amt]%"
user << "- Psilocybin: \blue [drug_amt]%"
user << "- Capsaicin: \blue [heat_amt]%"
@@ -405,7 +422,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/attackby(var/obj/item/O as
return
-obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
+/obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (istype(O, /obj/item/device/analyzer/plant_analyzer))
user << "This is a \blue [name]"
switch(plant_type)
@@ -424,28 +441,15 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
return
-//Grown foods
-/obj/item/weapon/reagent_containers/food/snacks/grown/ //New subclass so we can pass on values
- var/seed = ""
- var/plantname = ""
- var/productname = ""
- var/species = ""
- var/lifespan = 0
- var/endurance = 0
- var/maturation = 0
- var/production = 0
- var/yield = 0
- var/potency = -1
- var/plant_type = 0
/obj/item/weapon/reagent_containers/food/snacks/grown/berries
seed = "/obj/item/seeds/berryseed"
name = "Berries"
desc = "Nutritious!"
icon_state = "berrypile"
- amount = 2
- heal_amt = 3
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -454,11 +458,11 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Chili"
desc = "Spicy!"
icon_state = "chilipepper"
- amount = 1
- heal_amt = 2
- heat_amt = 20
- potency = 20
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("capsaicin", max(round(heat_amt / 5, 1), 4))
+ bitesize = max(round(reagents.total_volume / 2, 1), 1)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -467,9 +471,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Eggplant"
desc = "Yum!"
icon_state = "eggplant"
- amount = 1
- heal_amt = 5
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -478,9 +482,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Soybeans"
desc = "Pretty bland, but the possibilities..."
icon_state = "soybeans"
- amount = 2
- heal_amt = 2
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -489,9 +493,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Tomato"
desc = "Tom-mae-to or to-mah-to? You decide."
icon_state = "tomato"
- amount = 2
- heal_amt = 5
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -500,9 +504,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Wheat"
desc = "I wouldn't eat this, unless you're one of those health freaks.."
icon_state = "wheat"
- amount = 1
- heal_amt = 2
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -511,11 +515,12 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Icepepper"
desc = "A mutant strain of chile"
icon_state = "icepepper"
- amount = 1
- heal_amt = 3
- heat_amt = 20
potency = 20
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("frostoil", max(round(heat_amt / 5, 1), 4))
+ bitesize = max(round(reagents.total_volume / 2, 1), 1)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -524,9 +529,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Carrot"
desc = "Good for the eyes!"
icon_state = "carrot"
- amount = 3
- heal_amt = 1
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -535,11 +540,13 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Fly amanita"
desc = "Amanita Muscaria: Learn poisonous mushrooms by heart. Only pick mushrooms you know."
icon_state = "amanita"
- amount = 1
- heal_amt = 0
- poison_amt = 25
potency = 10
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("amatoxin", max(poison_amt, 4))
+ reagents.add_reagent("psilocybin", max(drug_amt, 1))
+ bitesize = max(round(reagents.total_volume / 2, 1), 1)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -548,11 +555,13 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Destroying angel"
desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amatoxins."
icon_state = "angel"
- amount = 1
- heal_amt = 0
- poison_amt = 75
potency = 35
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("amatoxin", max(poison_amt, 14))
+ reagents.add_reagent("psilocybin", max(drug_amt, 1))
+ bitesize = max(round(reagents.total_volume / 2, 1), 1)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -561,11 +570,12 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Liberty cap"
desc = "Psilocybe Semilanceata: Liberate yourself!"
icon_state = "libertycap"
- amount = 1
- heal_amt = 3
- drug_amt = 15
potency = 15
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("psilocybin", max(drug_amt, 4))
+ bitesize = max(round(reagents.total_volume / 2), 1)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -574,9 +584,10 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Plump Helmet"
desc = "Plumus Hellmus: Plump, soft and s-so inviting~"
icon_state = "plumphelmet"
- amount = 2
- heal_amt = 5
New()
+ ..()
+ reagents.add_reagent("nutriment", 4)
+ bitesize = 2
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -585,9 +596,9 @@ obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
name = "Chanterelle"
desc = "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty! There's a lot!"
icon_state = "chanterelle"
- amount = 3
- heal_amt = 2
New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm
index 1be833ce2bb..64cf1f437b8 100644
--- a/code/defines/obj/machinery.dm
+++ b/code/defines/obj/machinery.dm
@@ -554,7 +554,7 @@
name = "Booze-O-Mat"
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one."
icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles
- product_paths = "/obj/item/weapon/reagent_containers/food/drinks/gin;/obj/item/weapon/reagent_containers/food/drinks/whiskey;/obj/item/weapon/reagent_containers/food/drinks/tequilla;/obj/item/weapon/reagent_containers/food/drinks/vodka;/obj/item/weapon/reagent_containers/food/drinks/vermouth;/obj/item/weapon/reagent_containers/food/drinks/rum;/obj/item/weapon/reagent_containers/food/drinks/wine;/obj/item/weapon/reagent_containers/food/drinks/cognac;/obj/item/weapon/reagent_containers/food/drinks/kahlua;/obj/item/weapon/reagent_containers/food/drinks/beer;/obj/item/weapon/reagent_containers/food/drinks/ale;/obj/item/weapon/reagent_containers/food/drinks/orangejuice;/obj/item/weapon/reagent_containers/food/drinks/tomatojuice;/obj/item/weapon/reagent_containers/food/drinks/limejuice;/obj/item/weapon/reagent_containers/food/drinks/cream;/obj/item/weapon/reagent_containers/food/drinks/tonic;/obj/item/weapon/reagent_containers/food/drinks/cola;/obj/item/weapon/reagent_containers/food/drinks/sodawater;/obj/item/weapon/reagent_containers/food/drinks/drinkingglass"
+ product_paths = "/obj/item/weapon/reagent_containers/food/drinks/bottle/gin;/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey;/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla;/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka;/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth;/obj/item/weapon/reagent_containers/food/drinks/bottle/rum;/obj/item/weapon/reagent_containers/food/drinks/bottle/wine;/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac;/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua;/obj/item/weapon/reagent_containers/food/drinks/beer;/obj/item/weapon/reagent_containers/food/drinks/ale;/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice;/obj/item/weapon/reagent_containers/food/drinks/bottle/cream;/obj/item/weapon/reagent_containers/food/drinks/tonic;/obj/item/weapon/reagent_containers/food/drinks/cola;/obj/item/weapon/reagent_containers/food/drinks/sodawater;/obj/item/weapon/reagent_containers/food/drinks/drinkingglass"
product_amounts = "5;5;5;5;5;5;5;5;5;6;6;4;4;4;4;8;8;8;30"
vend_delay = 15
product_hidden = "/obj/item/weapon/reagent_containers/food/drinks/coffee"
diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm
index cbd85de1e0d..2f3eab61a93 100644
--- a/code/game/machinery/hydroponics.dm
+++ b/code/game/machinery/hydroponics.dm
@@ -678,10 +678,10 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
t_prod.potency = src.myseed.potency
t_prod.plant_type = src.myseed.plant_type
if(src.myseed.species == "amanita" || src.myseed.species == "angel")
- t_prod.poison_amt = src.myseed.potency * 2 // Potency translates to poison amount
- t_prod.drug_amt = src.myseed.potency / 5 // Small trip
+ t_prod.poison_amt = round(src.myseed.potency * 0.4, 1) // Potency translates to poison amount
+ t_prod.drug_amt = round(src.myseed.potency / 25, 1) // Small trip
else if(src.myseed.species == "liberty")
- t_prod.drug_amt = src.myseed.potency // TRIP TIME
+ t_prod.drug_amt = round(src.myseed.potency / 5, 1) // TRIP TIME
else if(src.myseed.species == "chili" || src.myseed.species == "chiliice")
t_prod.heat_amt = src.myseed.potency // BRING ON THE HEAT
t_amount++
diff --git a/code/game/machinery/microwave.dm b/code/game/machinery/microwave.dm
index a087e523194..99eddf73a6e 100644
--- a/code/game/machinery/microwave.dm
+++ b/code/game/machinery/microwave.dm
@@ -19,7 +19,7 @@
/datum/recipe/jellydonut
egg_amount = 1
flour_amount = 1
- extra_item = /obj/item/weapon/reagent_containers/food/snacks/berryjam
+ extra_item = /obj/item/weapon/reagent_containers/food/condiment/berryjam
creates = "/obj/item/weapon/reagent_containers/food/snacks/jellydonut"
/datum/recipe/donut
@@ -207,7 +207,7 @@
src.available_recipes += new /datum/recipe/momeatpie(src)
src.available_recipes += new /datum/recipe/xemeatpie(src)
src.available_recipes += new /datum/recipe/wingfangchu(src)
- //src.available_recipes += new /datum/recipe/chaosdonut(src) // Commented out until I come up with a better idea.
+ src.available_recipes += new /datum/recipe/chaosdonut(src)
@@ -297,15 +297,15 @@ obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob)
src.donkpocket_amount++
del(O)
- else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/hotsauce))
+ else if(istype(O, /obj/item/weapon/reagent_containers/food/condiment/hotsauce))
if(src.hotsauce_amount < 5)
for(var/mob/V in viewers(src, null))
- V.show_message(text("\blue [user] adds some meat to the microwave."))
+ V.show_message(text("\blue [user] adds some hot sauce to the microwave."))
src.hotsauce_amount++
src.sauce_amount++
del(O)
- else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/coldsauce))
+ else if(istype(O, /obj/item/weapon/reagent_containers/food/condiment/coldsauce))
if(src.coldsauce_amount < 5)
for(var/mob/V in viewers(src, null))
V.show_message(text("\blue [user] adds some coldsauce to the microwave."))
@@ -313,7 +313,7 @@ obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob)
src.sauce_amount++
del(O)
- else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/soysauce))
+ else if(istype(O, /obj/item/weapon/reagent_containers/food/condiment/soysauce))
if(src.soysauce_amount < 5)
for(var/mob/V in viewers(src, null))
V.show_message(text("\blue [user] adds some soysauce to the microwave."))
@@ -321,7 +321,7 @@ obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob)
src.sauce_amount++
del(O)
- else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/ketchup))
+ else if(istype(O, /obj/item/weapon/reagent_containers/food/condiment/ketchup))
if(src.ketchup_amount < 5)
for(var/mob/V in viewers(src, null))
V.show_message(text("\blue [user] adds some ketchup to the microwave."))
@@ -537,7 +537,7 @@ Please clean it before use!
src.extra_item = null
usr << "You dispose of the microwave contents."
- var/cooking = cooked_item // Get the item that needs to be spanwed
+ var/cooking = cooked_item // Get the item that needs to be spawned
if(!isnull(cooking))
src.operating = 1 // Turn it on so it can't be used again while it's cooking
src.icon_state = "mw1" //Make it look on too
@@ -557,7 +557,9 @@ Please clean it before use!
src.being_cooked:job = humanmeat_job
if(istype(src.being_cooked, /obj/item/weapon/reagent_containers/food/snacks/donkpocket))
src.being_cooked:warm = 1
- src.being_cooked.name = "warm " + src.being_cooked.name
+ src.being_cooked:reagents.add_reagent("tricordrazine", 5)
+ src.being_cooked:bitesize = 6
+ src.being_cooked.name = "Warm " + src.being_cooked.name
src.being_cooked:cooltime()
src.being_cooked.loc = get_turf(src) // Create the new item
src.being_cooked = null // We're done!
diff --git a/code/game/machinery/processor.dm b/code/game/machinery/processor.dm
index 34d7d764f9f..f9028acb534 100644
--- a/code/game/machinery/processor.dm
+++ b/code/game/machinery/processor.dm
@@ -49,7 +49,7 @@ obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/mob/V in viewers(src, null))
V.show_message(text("\blue [user] turns on \a [src]."))
del(O)
- new /obj/item/weapon/reagent_containers/food/snacks/hotsauce(src.loc)
+ new /obj/item/weapon/reagent_containers/food/condiment/hotsauce(src.loc)
src.processing = 0
return
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/tomato))
@@ -59,7 +59,7 @@ obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/mob/V in viewers(src, null))
V.show_message(text("\blue [user] turns on \a [src]."))
del(O)
- new /obj/item/weapon/reagent_containers/food/snacks/ketchup(src.loc)
+ new /obj/item/weapon/reagent_containers/food/condiment/ketchup(src.loc)
src.processing = 0
return
@@ -70,7 +70,7 @@ obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/mob/V in viewers(src, null))
V.show_message(text("\blue [user] turns on \a [src]."))
del(O)
- new /obj/item/weapon/reagent_containers/food/snacks/berryjam(src.loc)
+ new /obj/item/weapon/reagent_containers/food/condiment/berryjam(src.loc)
src.processing = 0
return
@@ -81,7 +81,7 @@ obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/mob/V in viewers(src, null))
V.show_message(text("\blue [user] turns on \a [src]."))
del(O)
- new /obj/item/weapon/reagent_containers/food/snacks/soysauce(src.loc)
+ new /obj/item/weapon/reagent_containers/food/condiment/soysauce(src.loc)
src.processing = 0
return
@@ -92,7 +92,7 @@ obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/mob/V in viewers(src, null))
V.show_message(text("\blue [user] turns on \a [src]."))
del(O)
- new /obj/item/weapon/reagent_containers/food/snacks/coldsauce(src.loc)
+ new /obj/item/weapon/reagent_containers/food/condiment/coldsauce(src.loc)
src.processing = 0
return
diff --git a/code/setup.dm b/code/setup.dm
index ab4049058e2..3afa69d66c7 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -102,6 +102,8 @@
#define NOSLIP 1024 //prevents from slipping on wet floors, in space etc
+//#define EXTRACT_CONTAINER 4095 //Container may have reagents removed from it.
+//#define INSERT_CONTAINER 4096 //Container may have reagents added to it.
#define OPENCONTAINER 4096 // is an open container for chemistry purposes
#define ONESIZEFITSALL 8192 // can be worn by fatties (or children? ugh)
diff --git a/icons/changelog.html b/icons/changelog.html
index 3646cc5539e..aa1e732dd1a 100644
--- a/icons/changelog.html
+++ b/icons/changelog.html
@@ -38,13 +38,30 @@
Visit our IRC channel, #tgstation13 on irc.rizon.net