diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index 1060721856a..d73f02afd73 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -716,7 +716,7 @@ 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?" icon_state = "wallmed" req_access = list(ACCESS_MEDICAL) - density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude + density = FALSE //It is wall-mounted, and thus, not dense. --Superxpdude vend_id = "meds" products = list( /obj/item/stack/medical/bruise_pack = 3, @@ -736,7 +736,7 @@ premium = list( /obj/item/reagent_containers/pill/mortaphenyl = 4 ) - random_itemcount = 0 + random_itemcount = FALSE temperature_setting = -1 light_color = LIGHT_COLOR_GREEN obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED @@ -747,7 +747,7 @@ desc = "A wall-mounted version of the NanoMed, containing only vital first aid equipment." icon_state = "wallmed" req_access = list(ACCESS_MEDICAL) - density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude + density = FALSE //It is wall-mounted, and thus, not dense. --Superxpdude vend_id = "meds" products = list( /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 5, @@ -767,12 +767,53 @@ premium = list( /obj/item/reagent_containers/pill/mortaphenyl = 4 ) - random_itemcount = 0 + random_itemcount = FALSE temperature_setting = -1 light_color = LIGHT_COLOR_GREEN obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED manufacturer = "zenghu" +/obj/machinery/vending/wallpharm + name = "\improper NanoPharm Mini" + desc = "A wall-mounted pharmaceuticals vending machine packed with over-the-counter bottles. For the sick salaried worker in you." + icon_state = "wallpharm" + density = FALSE + products = list( + /obj/item/storage/pill_bottle/antidexafen = 4, + /obj/item/storage/pill_bottle/dexalin = 4, + /obj/item/storage/pill_bottle/dylovene = 4, + /obj/item/stack/medical/bruise_pack = 5, + /obj/item/stack/medical/ointment = 5, + /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 2, + /obj/item/storage/pill_bottle/vitamin = 5, + /obj/item/storage/pill_bottle/cetahydramine = 4, + /obj/item/storage/pill_bottle/caffeine = 3, + /obj/item/storage/pill_bottle/nicotine = 4, + /obj/item/storage/pill_bottle/rmt = 2 + ) + prices = list( + /obj/item/storage/pill_bottle/antidexafen = 70, + /obj/item/storage/pill_bottle/dexalin = 60, + /obj/item/storage/pill_bottle/dylovene = 75, + /obj/item/stack/medical/bruise_pack = 5, + /obj/item/stack/medical/ointment = 8, + /obj/item/reagent_containers/hypospray/autoinjector/inaprovaline = 14, + /obj/item/storage/pill_bottle/vitamin = 55, + /obj/item/storage/pill_bottle/cetahydramine = 60, + /obj/item/storage/pill_bottle/caffeine = 90, + /obj/item/storage/pill_bottle/nicotine = 85, + /obj/item/storage/pill_bottle/rmt = 550 + ) + contraband = list( + /obj/item/reagent_containers/pill/tox = 3, + /obj/item/storage/pill_bottle/perconol = 3 + ) + random_itemcount = FALSE + temperature_setting = -1 + light_color = COLOR_GOLD + obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED + manufacturer = "nanotrasen" + /obj/machinery/vending/security name = "SecTech" desc = "A security equipment vendor." diff --git a/code/game/objects/items/weapons/storage/pill_bottle.dm b/code/game/objects/items/weapons/storage/pill_bottle.dm index df84cb44f2c..5cc9514c2af 100644 --- a/code/game/objects/items/weapons/storage/pill_bottle.dm +++ b/code/game/objects/items/weapons/storage/pill_bottle.dm @@ -180,3 +180,19 @@ name = "bottle of 10u Ryetalyn pills" desc = "Contains pills used to treat genetic and immune diseases." starts_with = list(/obj/item/reagent_containers/pill/ryetalyn = 4) + +/obj/item/storage/pill_bottle/caffeine + name = "bottle of 5u Caffeine pills" + desc = "Contains pills used to help with alertness and fatigue. The label warns against taking more than 2 in a 6-hour period. Possible side effects include jitteriness, heart palpitations, difficulty with concentrating, and even death." + starts_with = list(/obj/item/reagent_containers/pill/caffeine = 7) + +/obj/item/storage/pill_bottle/nicotine + name = "bottle of 10u Nicotine pills" + desc = "Contains pills used to treat nicotine addiction." + starts_with = list(/obj/item/reagent_containers/pill/nicotine = 7) + +/obj/item/storage/pill_bottle/vitamin + name = "bottle of Vitamin supplements" + desc = "Contains pills used to treat vitamin deficiency." + starts_with = list(/obj/item/reagent_containers/pill/bio_vitamin/cheap = 7) + diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index db62cd6412d..9be275f7b62 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -1920,3 +1920,42 @@ var/obj/item/organ/external/E = Z.parent_organ Z.curing = TRUE to_chat(M, SPAN_WARNING("Your [E.name] tightens, pulses, and squirms as \the [Z] fights back against the antibodies!")) + +/singleton/reagent/caffeine // Copied from Hyperzine + name = "Caffeine" + description = "Caffeine is a central nervous system stimulant found naturally in many plants. It's used as a mild cognitive enhancer to increase alertness, attentional performance, and improve cardiovascular health." + reagent_state = SOLID + color = "#f9edea" + metabolism = REM * 0.15 + overdose = 11 + var/datum/modifier = null + taste_description = "bitter" + metabolism_min = REM * 0.025 + breathe_met = REM * 0.15 * 0.5 + +/singleton/reagent/caffeine/get_od_min_dose(mob/living/carbon/M, location, datum/reagents/holder) + if(REAGENT_VOLUME(M.reagents, /singleton/reagent/adrenaline) > 5) + return 0 // Takes effect instantly. + . = od_minimum_dose + +/singleton/reagent/caffeine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder) + if(prob(5)) + to_chat(M, SPAN_GOOD(pick("You feel alert!", "You feel awake!", "You feel pumped!"))) + if(check_min_dose(M, 0.5)) + M.add_chemical_effect(CE_PULSE, 1) + +/singleton/reagent/caffeine/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder) + M.adjustNutritionLoss(5*removed) + M.add_chemical_effect(CE_PULSE, 2) + M.add_chemical_effect(CE_SPEEDBOOST, 0.35) // Coffee = 0.3, Zora Soda = 0.4, Thirteen Loko = 0.5. Seems fine here, if a bit low. + M.make_jittery(5) + if(prob(5)) + to_chat(M, SPAN_WARNING(pick("You have a headache!", "Energy, energy, energy - so much energy!", "You can't sit still!", "It's difficult to focus right now... but that's not important!", "Your heart is beating rapidly!", "Your chest hurts!", "You've totally over-exerted yourself!"))) + if(prob(M.chem_doses[type] / 3)) + M.emote(pick("twitch", "blink_r", "shiver")) + M.take_organ_damage(5 * removed, 0) + M.adjustHalLoss(15) + +/singleton/reagent/caffeine/Destroy() + QDEL_NULL(modifier) + return ..() diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 4b0de14b81b..2b66e1cde68 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -293,7 +293,7 @@ icon_state = "pill19" reagents_to_add = list(/singleton/reagent/thetamycin = 15) -/obj/item/reagent_containers/pill/bio_vitamin +/obj/item/reagent_containers/pill/bio_vitamin //Biogenerator Version name = "Vitamin Pill" desc = "Contains a meal's worth of nutrients." icon_state = "pill11" @@ -302,7 +302,12 @@ /obj/item/reagent_containers/pill/bio_vitamin/Initialize() . = ..() var/juice = pick(/singleton/reagent/drink/banana, /singleton/reagent/drink/berryjuice, /singleton/reagent/drink/grapejuice, /singleton/reagent/drink/lemonjuice, /singleton/reagent/drink/limejuice, /singleton/reagent/drink/orangejuice, /singleton/reagent/drink/watermelonjuice) - reagents.add_reagent(juice, 1) + reagents.add_reagent(juice, 5) + +/obj/item/reagent_containers/pill/bio_vitamin/cheap //Vending machine version + name = "Vitamin Pill" + desc = "Has all the vitamins a person needs." + reagents_to_add = list(/singleton/reagent/nutriment = 2) /obj/item/reagent_containers/pill/rmt name = "15u Regenerative-Muscular Tissue Supplement Pill" @@ -375,3 +380,15 @@ desc = "A medicine used to treat genetic conditions, including benign and malignant tumours." icon_state = "pill11" reagents_to_add = list(/singleton/reagent/ryetalyn = 10) + +/obj/item/reagent_containers/pill/caffeine + name = "5u Caffeine Pill" + desc = "A stimulant used to help with alertness and fatigue." + icon_state = "pill18" + reagents_to_add = list(/singleton/reagent/caffeine = 5) + +/obj/item/reagent_containers/pill/nicotine + name = "5u Nicotine Pill" + desc = "A pill used to treat nicotine addiction." + icon_state = "pill18" + reagents_to_add = list(/singleton/reagent/mental/nicotine = 5) diff --git a/html/changelogs/nanopharm.yml b/html/changelogs/nanopharm.yml new file mode 100644 index 00000000000..dada771a15f --- /dev/null +++ b/html/changelogs/nanopharm.yml @@ -0,0 +1,59 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: HanSolo1519 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added the NanoPharm, a vending machine for over-the-counter medical items." + - rscadd: "Added NanoPharm to Infirmary Lobby (Thanks CourierBravo!)" diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index 884e1385954..3eb4897c767 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm index 74442363c0b..7d87cce1e69 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -96037,24 +96037,17 @@ }, /area/antag/wizard) "orz" = ( -/obj/machinery/light{ - dir = 8 - }, /obj/effect/floor_decal/corner_wide/lime{ dir = 9 }, -/obj/structure/closet/walllocker/medical{ - pixel_x = -32 +/obj/machinery/vending/wallpharm{ + pixel_x = -28 + }, +/obj/effect/floor_decal/industrial/outline_corner{ + dir = 8; + color = "#8daf6a" }, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/bruise_pack, /obj/effect/floor_decal/industrial/outline/medical, -/obj/item/reagent_containers/hypospray/autoinjector/dylovene, -/obj/item/reagent_containers/hypospray/autoinjector/dylovene, -/obj/item/reagent_containers/hypospray/autoinjector/inaprovaline, -/obj/item/reagent_containers/hypospray/autoinjector/inaprovaline, /turf/simulated/floor/tiled/white, /area/medical/reception) "orQ" = (