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