diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm index 3b4815b3533..63ea0e136f6 100644 --- a/code/__defines/chemistry.dm +++ b/code/__defines/chemistry.dm @@ -38,6 +38,7 @@ #define CE_SLOWDOWN "goslow" // Slowdown #define CE_ANTACID "nopuke" // Don't puke. #define CE_ALLERGEN "allergyreaction" // Self explanatory +#define CE_DARKSIGHT "darksight" // Gives perfect vision in dark #define REAGENTS_PER_SHEET 20 diff --git a/code/game/objects/random/maintenance.dm b/code/game/objects/random/maintenance.dm index b3370c2792c..a5b47951276 100644 --- a/code/game/objects/random/maintenance.dm +++ b/code/game/objects/random/maintenance.dm @@ -114,7 +114,8 @@ something, make sure it's not in one of the other lists.*/ prob(1);/obj/item/toy/baseball, prob(1);/obj/item/pizzavoucher, prob(5);/obj/item/weapon/material/fishing_net/butterfly_net, - prob(2);/obj/item/weapon/cracker + prob(2);/obj/item/weapon/cracker, + prob(5);/obj/random/mega_nukies /* VOREStation Edit End */ ) diff --git a/code/game/objects/random/misc_vr.dm b/code/game/objects/random/misc_vr.dm index f16d2385d89..b1781eb66ef 100644 --- a/code/game/objects/random/misc_vr.dm +++ b/code/game/objects/random/misc_vr.dm @@ -366,3 +366,21 @@ prob(10);/obj/item/device/perfect_tele/magic, prob(10);/obj/item/weapon/reagent_containers/glass/bottle/potion/truepolymorph ) + +/obj/random/mega_nukies + name = "random mega nukie" + desc = "A random mega nukie." + icon = 'icons/obj/drinks.dmi' + icon_state = "nukie_mega_high" + spawn_nothing_percentage = 0 + +/obj/random/mega_nukies/item_to_spawn() + return pick(prob(5);/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_sight, + prob(2);/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_heart, + prob(5);/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_sleep, + prob(5);/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_shock, + prob(5);/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_fast, + prob(5);/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_high, + prob(10);/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_shrink, + prob(10);/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_grow + ) diff --git a/code/modules/food/food/cans.dm b/code/modules/food/food/cans.dm index 7e52a15d5c8..592c706edc1 100644 --- a/code/modules/food/food/cans.dm +++ b/code/modules/food/food/cans.dm @@ -549,3 +549,94 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/nukie_special/Initialize() . = ..() reagents.add_reagent("nukie_special", 60) + +/////////////////////////MEGA NUKIES///////////////////////// +//Rare loot energy drinks with special properties, for the funnies. + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_sight + name = "\improper Nukies Mega - Plum Peeper" + desc = "Harness the power of the atom with this illegal, unfit for organic consumption and absolutely not regulator approved energy drink." + icon_state = "nukie_mega_sight" + center_of_mass = list("x"=16, "y"=8) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_sight/Initialize() + . = ..() + reagents.add_reagent("nukie_mega_sight", 60) + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_heart + name = "\improper Nukies Mega - Juice Pumper" + desc = "Harness the power of the atom with this illegal, unfit for organic consumption and absolutely not regulator approved energy drink." + icon_state = "nukie_mega_heart" + center_of_mass = list("x"=16, "y"=8) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_heart/Initialize() + . = ..() + reagents.add_reagent("nukie_mega_heart", 60) + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_sleep + name = "\improper Nukies Nega - Vibrating Nights" + desc = "Harness the power of the atom with this illegal, unfit for organic consumption and absolutely not regulator approved energy drink." + icon_state = "nukie_mega_sleep" + center_of_mass = list("x"=16, "y"=8) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_sleep/Initialize() + . = ..() + reagents.add_reagent("nukie_mega_sleep", 60) + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_shock + name = "\improper Nukies Mega - Jolt Railer" + desc = "Harness the power of the atom with this illegal, unfit for organic consumption and absolutely not regulator approved energy drink." + icon_state = "nukie_mega_strong" + center_of_mass = list("x"=16, "y"=8) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_shock/Initialize() + . = ..() + reagents.add_reagent("nukie_mega_shock", 60) + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_fast + name = "\improper Nukies Mega - Rapid Rager" + desc = "Harness the power of the atom with this illegal, unfit for organic consumption and absolutely not regulator approved energy drink." + icon_state = "nukie_mega_fast" + center_of_mass = list("x"=16, "y"=8) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_fast/Initialize() + . = ..() + reagents.add_reagent("nukie_mega_fast", 60) + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_high + name = "\improper Nukies Mega - Diamond Sky" + desc = "Harness the power of the atom with this illegal, unfit for organic consumption and absolutely not regulator approved energy drink." + icon_state = "nukie_mega_high" + center_of_mass = list("x"=16, "y"=8) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_high/Initialize() + . = ..() + reagents.add_reagent("nukie_mega_high", 60) + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_shrink + name = "\improper Nukies Mega - Shrinking Flower" + desc = "Harness the power of the atom with this illegal, unfit for organic consumption and absolutely not regulator approved energy drink." + icon_state = "nukie_mega_shrink" + center_of_mass = list("x"=16, "y"=8) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_shrink/Initialize() + . = ..() + reagents.add_reagent("nukie_mega_shrink", 60) + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_grow + name = "\improper Nukies Mega - Growing Geyser" + desc = "Harness the power of the atom with this illegal, unfit for organic consumption and absolutely not regulator approved energy drink." + icon_state = "nukie_mega_grow" + center_of_mass = list("x"=16, "y"=8) + volume = 60 + +/obj/item/weapon/reagent_containers/food/drinks/cans/nukie_mega_grow/Initialize() + . = ..() + reagents.add_reagent("nukie_mega_growth", 60) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index c531ef5086f..1b8a9957544 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -171,6 +171,13 @@ var/list/slots = list(slot_glasses,slot_head) var/list/compiled_vis = list() + if(CE_DARKSIGHT in chem_effects) //Putting this near the beginning so it can be overwritten by equipment + plane_holder.set_vis(VIS_FULLBRIGHT,TRUE) + compiled_vis += VIS_FULLBRIGHT + else + plane_holder.set_vis(VIS_FULLBRIGHT,FALSE) + compiled_vis -= VIS_FULLBRIGHT + for(var/slot in slots) var/obj/item/clothing/O = get_equipped_item(slot) //Change this type if you move the vision stuff to item or something. if(istype(O) && O.enables_planes && (slot in O.plane_slots)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 53e5e240d66..115c9defdc3 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -18,6 +18,7 @@ /mob/living/carbon/human var/in_stasis = 0 var/heartbeat = 0 + var/chemical_darksight = 0 /mob/living/carbon/human/Life() set invisibility = 0 @@ -1162,6 +1163,13 @@ playsound(src, growlsound, vol = growlmultiplier, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) // VOREStation Edit End + if((CE_DARKSIGHT in chem_effects) && chemical_darksight == 0) + recalculate_vis() + chemical_darksight = 1 + if(!(CE_DARKSIGHT in chem_effects) && chemical_darksight == 1) + recalculate_vis() + chemical_darksight = 0 + // TODO: stomach and bloodstream organ. if(!isSynthetic()) handle_trace_chems() diff --git a/code/modules/reagents/reagents/food_drinks_vr.dm b/code/modules/reagents/reagents/food_drinks_vr.dm index 01514b4ee4c..038bb30aac9 100644 --- a/code/modules/reagents/reagents/food_drinks_vr.dm +++ b/code/modules/reagents/reagents/food_drinks_vr.dm @@ -781,3 +781,171 @@ id = "nukie_special" color = "#ffffff" taste_description = "sitting in your college dorm one week before your exams start, staring at a screen without anything particularly interesting on, knowing that you should really be studying, but you can put it off for another day right? Plus your friends are gonna be getting on soon and there's an event starting that you need to prep for" + +/datum/reagent/drink/coffee/nukie/mega + + name = "Mega Nukie" + id = "nukie_mega" + description = "An extremely dangerously concentrated caffinated drink." + color = "#102838" + adj_temp = 0 + adj_dizzy = 0 + adj_drowsy = -5 + adj_sleepy = -10 + + glass_name = "nukie" + glass_desc = "A drink that might just explode your heart!" + overdose = 5 + + taste_description = "flavourless energy" + +/datum/reagent/drink/coffee/nukie/mega/sight + name = "Nukie Mega Plum" + id = "nukie_mega_sight" + color = "#f4fc03" + taste_description = "seeing beyond the margins of this world" + +/datum/reagent/drink/coffee/nukie/mega/sight/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + if(prob(1)) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES] + if(istype(E)) + if(E.robotic >= ORGAN_ROBOT) + return + if(E.damage < 100) + E.damage = max(E.damage + 1 * removed, 0) + M.add_chemical_effect(CE_DARKSIGHT, 1) + +/datum/reagent/drink/coffee/nukie/mega/heart //Heals you pretty damn well but damages your heart + name = "Nukie Mega Juice" + id = "nukie_mega_heart" + color = "#fc03e7" + taste_description = "the end is rapidly approaching, yet remains forever far" + +/datum/reagent/drink/coffee/nukie/mega/heart/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + var/chem_effective = 1 * M.species.chem_strength_heal + if(alien == IS_SLIME) + chem_effective = 0.75 + if(alien != IS_DIONA) + M.heal_organ_damage(6 * removed * chem_effective, 6 * removed * chem_effective) //VOREStation Edit + if(ishuman(M)) + var/mob/living/carbon/human/H = M + for(var/obj/item/organ/I in H.internal_organs) + if(I.robotic >= ORGAN_ROBOT || !(I.organ_tag in list(O_HEART))) + continue + if(I.damage < 100 && prob(10)) + I.damage = max(I.damage + 0.2 * removed, 0) + ..() + +/datum/reagent/drink/coffee/nukie/mega/nega //Makes you both jittery and sleepy + name = "Nukie Nega" + id = "nukie_mega_sleep" + color = "#00dded" + taste_description = "the void encompassing you" + adj_drowsy = 0 + adj_sleepy = 0 + var/adj_tiredness = 5 + +/datum/reagent/drink/coffee/nukie/mega/nega/affect_ingest(var/mob/living/carbon/human/M) + if(M.tiredness < 105) + M.tiredness = (M.tiredness + adj_tiredness) + ..() + +/datum/reagent/drink/coffee/nukie/mega/shock //Rapidly fills you up and even repairs your NIF, unless you don't have one in which case you'll be confused. + name = "Nukie Mega Shock" + id = "nukie_mega_shock" + color = "#ede500" + taste_description = "a thousand volts running down your spine" + +/datum/reagent/drink/coffee/nukie/mega/shock/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.nif) + var/obj/item/device/nif/nif = H.nif //L o c a l + if(nif.stat == NIF_TEMPFAIL) + nif.stat = NIF_INSTALLING + nif.repair(removed) + else if(prob(5)) + M.confused = max(M.confused, 20) + M.emote(pick("shudders", "seems lost", "blanks for a moment")) + M.adjust_nutrition(4 * removed) + + +/datum/reagent/drink/coffee/nukie/mega/fast //Like hyperzine, but instead of overdosing, it occassionally burns you + name = "Nukie Mega Rapid" + id = "nukie_mega_fast" + color = "#000000" + taste_description = "more, more, now, quick, get yourself some more, don't stop" + +/datum/reagent/drink/coffee/nukie/mega/fast/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + if(prob(1)) + M.visible_message("\The [M] sizzles!") + M.adjustFireLoss(5) + M.add_chemical_effect(CE_SPEEDBOOST, 1) + +/datum/reagent/drink/coffee/nukie/mega/high //Simultaneously makes you high and hungry + name = "Nukie Mega Sky" + id = "nukie_mega_high" + color = "#fafafa" + taste_description = "moreishness, you could really go for a proper snack right now" + +/datum/reagent/drink/coffee/nukie/mega/high/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + var/threshold = 1 * M.species.chem_strength_tox + if(alien == IS_SKRELL) + threshold = 1.2 + + if(alien == IS_SLIME) + threshold = 0.8 + + M.druggy = max(M.druggy, 30) + M.adjust_nutrition(-10 * removed) + + var/drug_strength = 20 + var/effective_dose = dose + if(issmall(M)) effective_dose *= 2 + if(effective_dose < 1 * threshold) + M.apply_effect(3, STUTTER) + M.make_dizzy(5) + if(prob(3)) + M.emote(pick("twitch", "giggle")) + else if(effective_dose < 2 * threshold) + M.apply_effect(3, STUTTER) + M.make_jittery(5) + M.make_dizzy(5) + M.druggy = max(M.druggy, 35) + M.hallucination = max(M.hallucination, drug_strength * threshold) + if(prob(5)) + M.emote(pick("twitch", "giggle")) + else + M.apply_effect(3, STUTTER) + M.make_jittery(10) + M.make_dizzy(10) + M.druggy = max(M.druggy, 40) + M.hallucination = max(M.hallucination, drug_strength * threshold) + if(prob(10)) + M.emote(pick("twitch", "giggle")) + +/datum/reagent/drink/coffee/nukie/mega/shrink //Basically microcillin but for ingesting + name = "Nukie Mega Shrink" + id = "nukie_mega_shrink" + color = "#15ff00" + taste_description = "a plastic bag floating gently on the breeze" + +/datum/reagent/drink/coffee/nukie/mega/shrink/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + M.resize((M.size_multiplier - 0.01), uncapped = M.has_large_resize_bounds(), aura_animation = FALSE) + +/datum/reagent/drink/coffee/nukie/mega/grow //Basically macrocillin but for ingesting + name = "Nukie Mega Growth" + id = "nukie_mega_growth" + color = "#90ed87" + taste_description = "absurd hugeness" + +/datum/reagent/drink/coffee/nukie/mega/grow/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + M.resize((M.size_multiplier + 0.01), uncapped = M.has_large_resize_bounds(), aura_animation = FALSE) diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index b93b37da2f4..d15f3417d0e 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ