diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 846e90a51bf..d5c5e9764b2 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -544,6 +544,10 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/weapon/reagent_containers/glass/bottle/toxin,
/obj/item/weapon/reagent_containers/glass/beaker/large,
/obj/item/weapon/reagent_containers/glass/beaker/large,
+ /obj/item/weapon/reagent_containers/pill/insulin,
+ /obj/item/weapon/reagent_containers/pill/insulin,
+ /obj/item/weapon/reagent_containers/pill/insulin,
+ /obj/item/weapon/reagent_containers/pill/insulin,
/obj/item/stack/medical/gauze,
/obj/item/weapon/storage/box/beakers,
/obj/item/weapon/storage/box/syringes,
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index eb030504a43..34382abd478 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -764,11 +764,11 @@
icon_deny = "med-deny"
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
req_access_txt = "5"
- products = list(/obj/item/weapon/reagent_containers/syringe = 12,/obj/item/stack/medical/gauze = 8,/obj/item/weapon/reagent_containers/pill/patch/styptic = 10,
- /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 10,/obj/item/weapon/reagent_containers/glass/bottle/charcoal = 4,
+ products = list(/obj/item/weapon/reagent_containers/syringe = 12,/obj/item/stack/medical/gauze = 8,/obj/item/weapon/reagent_containers/pill/patch/styptic = 5, /obj/item/weapon/reagent_containers/pill/insulin = 10,
+ /obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 5,/obj/item/weapon/reagent_containers/glass/bottle/charcoal = 4,
/obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 4,/obj/item/weapon/reagent_containers/glass/bottle/morphine = 4,
- /obj/item/weapon/reagent_containers/glass/bottle/diphenhydramine = 4,/obj/item/weapon/reagent_containers/glass/bottle/potass_iodide = 3, /obj/item/weapon/reagent_containers/glass/bottle/salglu_solution = 5,/obj/item/weapon/reagent_containers/glass/bottle/atropine = 3,/obj/item/weapon/reagent_containers/syringe/antiviral = 6,/obj/item/weapon/reagent_containers/syringe/calomel = 10,/obj/item/weapon/reagent_containers/pill/salbutamol = 10,/obj/item/weapon/reagent_containers/pill/mannitol = 10,/obj/item/weapon/reagent_containers/pill/mutadone = 5,/obj/item/device/healthanalyzer = 4, /obj/item/device/sensor_device = 2)
- contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/toxin = 3,/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/morphine = 4,/obj/item/weapon/reagent_containers/pill/charcoal = 6)
+ /obj/item/weapon/reagent_containers/glass/bottle/toxin = 3,/obj/item/weapon/reagent_containers/syringe/antiviral = 6,/obj/item/weapon/reagent_containers/pill/salbutamol = 2,/obj/item/device/healthanalyzer = 4, /obj/item/device/sensor_device = 2)
+ contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/morphine = 4,/obj/item/weapon/reagent_containers/pill/charcoal = 6)
//This one's from bay12
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 41877c85f4e..b53110bb30a 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -176,7 +176,22 @@ MASS SPECTROMETER
user.show_message("Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]")
else
user.show_message("Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]")
-
+ // Reagent Scanning - Iamgoofball
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(H.reagents)
+ if(H.reagents.reagent_list.len)
+ user.show_message("Subject contains the following reagents:")
+ for(var/datum/reagent/R in H.reagents.reagent_list)
+ user.show_message("[R.volume]u of [R.name][R.overdosed == 1 ? " - OVERDOSING" : "."]")
+ else
+ user.show_message("Subject contains no reagents.")
+ if(H.reagents.addiction_list.len)
+ user.show_message("Subject is addicted to the following reagents:")
+ for(var/datum/reagent/R in H.reagents.addiction_list)
+ user.show_message("[R.name]")
+ else
+ user.show_message("Subject is not addicted to any reagents.")
/obj/item/device/healthanalyzer/verb/toggle_mode()
set name = "Switch Verbosity"
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 2a26329b210..e8b9b1b9b0a 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -616,4 +616,25 @@
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
- new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
\ No newline at end of file
+ new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
+
+/obj/item/weapon/storage/box/bacon
+ name = "box of bacon"
+ desc = "To be used to encouage bacon usage."
+
+/obj/item/weapon/storage/box/bacon/New()
+ ..()
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/bacon(src)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
index 6935ef90038..1049a05e2aa 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
@@ -21,6 +21,8 @@
for(var/i = 0, i < 3, i++)
new /obj/item/weapon/reagent_containers/food/drinks/flour(src)
new /obj/item/weapon/reagent_containers/food/condiment/sugar(src)
+ new /obj/item/weapon/storage/box/bacon(src)
+ new /obj/item/weapon/storage/box/bacon(src)
return
diff --git a/code/modules/food&drinks/food/snacks_meat.dm b/code/modules/food&drinks/food/snacks_meat.dm
index 0b84a8f7573..53e0b32d233 100644
--- a/code/modules/food&drinks/food/snacks_meat.dm
+++ b/code/modules/food&drinks/food/snacks_meat.dm
@@ -91,11 +91,17 @@
icon_state = "faggot"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
+/obj/item/weapon/reagent_containers/food/snacks/bacon
+ name = "bacon"
+ desc = "An excellent product."
+ icon_state = "bacon"
+ list_reagents = list("nutriment" = 1, "porktonium" = 1)
+
/obj/item/weapon/reagent_containers/food/snacks/sausage
name = "sausage"
desc = "A piece of mixed, long meat."
icon_state = "sausage"
- list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ list_reagents = list("nutriment" = 5, "vitamin" = 1, "cholesterol" = 2)
/obj/item/weapon/reagent_containers/food/snacks/sausage/New()
..()
@@ -106,21 +112,21 @@
desc = "A savory dish of alien wing wang in soy."
icon_state = "wingfangchu"
trash = /obj/item/trash/snack_bowl
- list_reagents = list("nutriment" = 6, "vitamin" = 2)
+ list_reagents = list("nutriment" = 6, "vitamin" = 2, "cholesterol" = 2)
/obj/item/weapon/reagent_containers/food/snacks/human/kebab
name = "-kebab"
icon_state = "kebab"
desc = "A human meat, on a stick."
trash = /obj/item/stack/rods
- list_reagents = list("nutriment" = 8)
+ list_reagents = list("nutriment" = 8, "cholesterol" = 2)
/obj/item/weapon/reagent_containers/food/snacks/monkeykebab
name = "meat-kebab"
icon_state = "kebab"
desc = "Delicious meat, on a stick."
trash = /obj/item/stack/rods
- list_reagents = list("nutriment" = 8)
+ list_reagents = list("nutriment" = 8, "cholesterol" = 2)
/obj/item/weapon/reagent_containers/food/snacks/tofukebab
name = "tofu-kebab"
@@ -134,7 +140,7 @@
desc = "A piece of hot spicy meat."
icon_state = "meatsteak"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 8, "sodiumchloride" = 1, "blackpepper" = 1, "vitamin" = 1)
+ list_reagents = list("nutriment" = 8, "sodiumchloride" = 1, "blackpepper" = 1, "vitamin" = 1, "cholesterol" = 2)
/obj/item/weapon/reagent_containers/food/snacks/monkeycube
name = "monkey cube"
@@ -177,7 +183,7 @@
name = "enchiladas"
desc = "Viva La Mexico!"
icon_state = "enchiladas"
- list_reagents = list("nutriment" = 8, "capsaicin" = 6)
+ list_reagents = list("nutriment" = 8, "capsaicin" = 6, "cholesterol" = 2)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/stew
@@ -185,7 +191,7 @@
desc = "A nice and warm stew. Healthy and strong."
icon_state = "stew"
trash = /obj/item/trash/snack_bowl
- list_reagents = list("nutriment" = 10, "tomatojuice" = 5, "oculine" = 5, "water" = 5)
+ list_reagents = list("nutriment" = 10, "tomatojuice" = 5, "oculine" = 5, "water" = 5, "cholesterol" = 2)
bitesize = 10
/obj/item/weapon/reagent_containers/food/snacks/stew/New()
@@ -197,7 +203,7 @@
desc = "Even non-vegetarians will LOVE this!"
icon_state = "stewedsoymeat"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 8)
+ list_reagents = list("nutriment" = 8, "cholesterol" = 2)
/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat/New()
..()
@@ -208,18 +214,18 @@
desc = "A giant spider's leg that's still twitching after being cooked. Gross!"
icon_state = "spiderlegcooked"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 2, "capsaicin" = 2)
+ list_reagents = list("nutriment" = 2, "capsaicin" = 2, "cholesterol" = 2)
/obj/item/weapon/reagent_containers/food/snacks/spidereggsham
name = "green eggs and ham"
desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?"
icon_state = "spidereggsham"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 6, "sodiumchloride" = 1, "toxin" = 3)
+ list_reagents = list("nutriment" = 6, "sodiumchloride" = 1, "toxin" = 3, "cholesterol" = 2)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/sashimi
name = "carp sashimi"
desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself."
icon_state = "sashimi"
- list_reagents = list("nutriment" = 6, "capsaicin" = 4)
+ list_reagents = list("nutriment" = 6, "capsaicin" = 4, "cholesterol" = 2)
diff --git a/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm b/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm
index 3694a1e376a..e64d9529466 100644
--- a/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm
+++ b/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm
@@ -167,16 +167,15 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
M.status_flags |= GOTTAGOFAST
M.Jitter(3)
M.adjustBrainLoss(0.5)
- M.emote(pick("twitch", "shiver"))
+ if(prob(5))
+ M.emote(pick("twitch", "shiver"))
..()
return
/datum/reagent/methamphetamine/overdose_process(var/mob/living/M as mob)
if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ for(var/i = 0, i < 4, i++)
+ step(M, pick(cardinal))
if(prob(20))
M.emote("laugh")
if(prob(33))
@@ -205,10 +204,8 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
return
/datum/reagent/methamphetamine/addiction_act_stage3(var/mob/living/M as mob)
if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ for(var/i = 0, i < 4, i++)
+ step(M, pick(cardinal))
M.Jitter(15)
M.Dizzy(15)
if(prob(40))
@@ -217,14 +214,8 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
return
/datum/reagent/methamphetamine/addiction_act_stage4(var/mob/living/carbon/human/M as mob)
if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ for(var/i = 0, i < 8, i++)
+ step(M, pick(cardinal))
M.Jitter(20)
M.Dizzy(20)
M.adjustToxLoss(5)
@@ -340,21 +331,15 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
name = "bath_salts"
id = "bath_salts"
result = "bath_salts"
- required_reagents = list("????" = 1, "saltpetre" = 1, "nutriment" = 1, "cleaner" = 1, "enzyme" = 1, "tea" = 1)
- result_amount = 6
+ required_reagents = list("????" = 1, "saltpetre" = 1, "nutriment" = 1, "cleaner" = 1, "enzyme" = 1, "tea" = 1, "mercury" = 1)
+ result_amount = 7
required_temp = 374
/datum/reagent/bath_salts/overdose_process(var/mob/living/M as mob)
M.hallucination += 10
if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ for(var/i = 0, i < 8, i++)
+ step(M, pick(cardinal))
if(prob(20))
M.emote(pick("twitch","drool","moan"))
if(prob(33))
@@ -367,14 +352,8 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
/datum/reagent/bath_salts/addiction_act_stage1(var/mob/living/M as mob)
M.hallucination += 10
if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ for(var/i = 0, i < 8, i++)
+ step(M, pick(cardinal))
M.Jitter(5)
M.adjustBrainLoss(10)
if(prob(20))
@@ -384,14 +363,8 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
/datum/reagent/bath_salts/addiction_act_stage2(var/mob/living/M as mob)
M.hallucination += 20
if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ for(var/i = 0, i < 8, i++)
+ step(M, pick(cardinal))
M.Jitter(10)
M.Dizzy(10)
M.adjustBrainLoss(10)
@@ -402,18 +375,8 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
/datum/reagent/bath_salts/addiction_act_stage3(var/mob/living/M as mob)
M.hallucination += 30
if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ for(var/i = 0, i < 12, i++)
+ step(M, pick(cardinal))
M.Jitter(15)
M.Dizzy(15)
M.adjustBrainLoss(10)
@@ -424,22 +387,8 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
/datum/reagent/bath_salts/addiction_act_stage4(var/mob/living/carbon/human/M as mob)
M.hallucination += 40
if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ for(var/i = 0, i < 16, i++)
+ step(M, pick(cardinal))
M.Jitter(50)
M.Dizzy(50)
M.adjustToxLoss(5)
diff --git a/code/modules/reagents/Chemistry-Goon-Medicine.dm b/code/modules/reagents/Chemistry-Goon-Medicine.dm
index 9afb2cc233b..7d8688a23e3 100644
--- a/code/modules/reagents/Chemistry-Goon-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Goon-Medicine.dm
@@ -595,10 +595,12 @@ datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob)
datum/reagent/strange_reagent
name = "Strange Reagent"
id = "strange_reagent"
- description = "A miracle medical chem, this little beauty can bring the dead back to life! ...Well, if you're careful that is. If the cadaver is rotten or has too much BRUTE/BURN damage, SR will gib them on use."
+ description = "A chemical used in creation of other chemicals."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
- metabolization_rate = 0.2
+/*
+
+--Commented out for now due to balance issues, defibs were kind of worthless.
datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob, var/method=TOUCH, var/volume)
if(M.bruteloss > 80 || M.fireloss > 80)
@@ -626,7 +628,7 @@ datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob,
hardset_dna(M, null, null, null, null, /datum/species/zombie)
..()
return
-
+*/
datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(prob(rand(1,100)))
@@ -814,4 +816,18 @@ datum/reagent/stimulants/overdose_process(var/mob/living/M as mob)
M.adjustToxLoss(2*REM)
M.losebreath++
..()
+ return
+
+datum/reagent/insulin
+ name = "Insulin"
+ id = "insulin"
+ description = "Causes a little bit of drowsiness, reduces jitteriness. Raises histamine depletion rates by 3"
+ reagent_state = LIQUID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+datum/reagent/insulin/on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ if(M.sleeping)
+ M.sleeping--
+ M.reagents.remove_reagent("sugar", 5)
+ ..()
return
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Goon-Other.dm b/code/modules/reagents/Chemistry-Goon-Other.dm
index 963e85a214c..c0620450ab8 100644
--- a/code/modules/reagents/Chemistry-Goon-Other.dm
+++ b/code/modules/reagents/Chemistry-Goon-Other.dm
@@ -39,6 +39,14 @@ datum/reagent/carpet
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
+/datum/reagent/carpet/reaction_turf(var/turf/simulated/T, var/volume)
+ if(istype(T, /turf/simulated/floor/))
+ var/turf/simulated/floor/F = T
+ F.visible_message("[T] gets a layer of carpeting applied!")
+ F.ChangeTurf(/turf/simulated/floor/fancy/carpet)
+ ..()
+ return
+
datum/reagent/bromine
name = "Bromine"
id = "bromine"
@@ -81,6 +89,7 @@ datum/reagent/acetone
required_reagents = list("space_drugs" = 1, "blood" = 1)
result_amount = 2
+
/datum/chemical_reaction/oil
name = "Oil"
id = "oil"
@@ -148,3 +157,53 @@ datum/reagent/triple_citrus
result = "triple_citrus"
required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1)
result_amount = 5
+
+datum/reagent/corn_starch
+ name = "Corn Starch"
+ id = "corn_starch"
+ description = "A slippery solution."
+ reagent_state = LIQUID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+/datum/chemical_reaction/corn_syrup
+ name = "corn_syrup"
+ id = "corn_syrup"
+ result = "corn_syrup"
+ required_reagents = list("corn_starch" = 1, "sacid" = 1)
+ result_amount = 5
+ required_temp = 374
+
+datum/reagent/corn_syrup
+ name = "Corn Syrup"
+ id = "corn_syrup"
+ description = "Decays into sugar."
+ reagent_state = LIQUID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+datum/reagent/corn_syrup/on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ M.reagents.add_reagent("sugar", 3)
+ M.reagents.remove_reagent("corn_syrup", 1)
+ ..()
+ return
+
+/datum/chemical_reaction/corgium
+ name = "corgium"
+ id = "corgium"
+ result = "corgium"
+ required_reagents = list("nutriment" = 1, "colorful_reagent" = 1, "strange_reagent" = 1, "blood" = 1)
+ result_amount = 3
+ required_temp = 374
+
+datum/reagent/corgium
+ name = "Corgium"
+ id = "corgium"
+ description = "Creates a corgi at the reaction location."
+ reagent_state = LIQUID
+ color = "#C8A5DC" // rgb: 200, 165, 220
+
+/datum/chemical_reaction/corgium/on_reaction(var/datum/reagents/holder, var/created_volume)
+ var/location = get_turf(holder.my_atom)
+ new /mob/living/simple_animal/corgi(location)
+ ..()
+ return
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Goon-Toxins.dm b/code/modules/reagents/Chemistry-Goon-Toxins.dm
index 4264afcefa2..79b6d58985c 100644
--- a/code/modules/reagents/Chemistry-Goon-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Goon-Toxins.dm
@@ -205,4 +205,49 @@ datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob)
result = "facid"
required_reagents = list("sacid" = 1, "fluorine" = 1, "hydrogen" = 1, "potassium" = 1)
result_amount = 4
- required_temp = 380
\ No newline at end of file
+ required_temp = 380
+
+datum/reagent/cholesterol
+ name = "Cholesterol"
+ id = "cholesterol"
+ description = "Minor stamina penalty."
+ reagent_state = LIQUID
+ color = "#CF3600" // rgb: 207, 54, 0]
+ overdose_threshold = 25
+
+datum/reagent/cholesterol/on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ M.adjustStaminaLoss(0.5)
+ ..()
+ return
+
+datum/reagent/cholesterol/overdose_process(var/mob/living/M as mob)
+ if(prob(rand(1,100)))
+ M.adjustToxLoss(1)
+ if(prob(rand(1,100)))
+ var/obj/item/I = M.get_active_hand()
+ if(I)
+ M.drop_item()
+ M.show_message("You fumble and drop [I]!")
+ if(prob(rand(1,100)))
+ M.Stun(1)
+ ..()
+ return
+
+datum/reagent/porktonium
+ name = "Porktonium"
+ id = "porktonium"
+ description = "OVERDOSE - An 8% chance of metabolizing to 10 cyanide, 15 radium and 2 cholesterol for every 0.2 units above 125."
+ reagent_state = LIQUID
+ color = "#CF3600" // rgb: 207, 54, 0]
+ overdose_threshold = 125
+ metabolization_rate = 0.2
+
+datum/reagent/porktonium/overdose_process(var/mob/living/M as mob)
+ if(prob(8) && volume > 125)
+ M.reagents.add_reagent("cyanide", 10)
+ M.reagents.add_reagent("radium", 15)
+ M.reagents.add_reagent("cholesterol", 2)
+ M.reagents.remove_reagent("corn_syrup", 0.2)
+ ..()
+ return
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm
index a5c6f90546e..a1529eb4b58 100644
--- a/code/modules/reagents/Chemistry-Holder.dm
+++ b/code/modules/reagents/Chemistry-Holder.dm
@@ -211,6 +211,7 @@ datum/reagents/proc/metabolize(var/mob/M)
if(R.volume >= R.overdose_threshold && !R.overdosed && R.overdose_threshold > 0)
R.overdosed = 1
M << "You feel like you took too much of [R.name]!"
+ R.overdose_start(M)
if(R.volume >= R.addiction_threshold && !is_type_in_list(R, addiction_list) && R.addiction_threshold > 0)
var/datum/reagent/new_reagent = new R.type()
addiction_list.Add(new_reagent)
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index ef220eaca26..89d9c02ae53 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -900,6 +900,7 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
var/list/juice_items = list (
//Juicer Stuff
+ /obj/item/weapon/reagent_containers/food/snacks/grown/corn = list("corn_starch" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("tomatojuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot = list("carrotjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/berries = list("berryjuice" = 0),
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
index 335c2be3a81..f71f1fc6070 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
@@ -96,6 +96,9 @@ datum/reagent/proc/on_update(var/atom/A)
datum/reagent/proc/overdose_process(var/mob/living/M as mob)
return
+datum/reagent/proc/overdose_start(var/mob/living/M as mob)
+ return
+
datum/reagent/proc/addiction_act_stage1(var/mob/living/M as mob)
if(prob(30))
M << "You feel like some [name] right about now."
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
index 9443053a549..e25c1772971 100644
--- a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
@@ -53,6 +53,7 @@ datum/reagent/consumable/sugar
color = "#FFFFFF" // rgb: 255, 255, 255
nutriment_factor = 15 * REAGENTS_METABOLISM
metabolization_rate = 2 * REAGENTS_METABOLISM
+ overdose_threshold = 200 // Hyperglycaemic shock
datum/reagent/consumable/sugar/on_mob_life(var/mob/living/M as mob)
if(M.satiety > -200)
@@ -60,6 +61,17 @@ datum/reagent/consumable/sugar/on_mob_life(var/mob/living/M as mob)
M.nutrition += max(((NUTRITION_LEVEL_FED + 50) - M.nutrition )/100, 0) * nutriment_factor // sugar doesn't help your hunger if your stomach is nearly full
holder.remove_reagent(src.id, metabolization_rate)
+datum/reagent/consumable/sugar/overdose_start(var/mob/living/M as mob)
+ M << "You go into hyperglycaemic shock! Lay off the twinkies!"
+ M.sleeping += 30
+ ..()
+ return
+
+datum/reagent/consumable/sugar/overdose_process(var/mob/living/M as mob)
+ M.sleeping += 3
+ ..()
+ return
+
datum/reagent/consumable/virus_food
name = "Virus Food"
id = "virusfood"
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 04131cd4de8..1c3d0bee2ac 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -130,3 +130,9 @@
desc = "Used to dull pain."
icon_state = "pill5"
list_reagents = list("sal_acid" = 50)
+
+/obj/item/weapon/reagent_containers/pill/insulin
+ name = "insulin pill"
+ desc = "Handles hyperglycaemic coma."
+ icon_state = "pill5"
+ list_reagents = list("insulin" = 50)
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index 29b3bd9e767..eb9650984c1 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ