diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index d1f27c68bf1..c2fb8574d8b 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -746,7 +746,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, @@ -766,12 +766,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..6f6146ede98 100644 --- a/code/game/objects/items/weapons/storage/pill_bottle.dm +++ b/code/game/objects/items/weapons/storage/pill_bottle.dm @@ -180,3 +180,18 @@ 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 7e9ce5c7afc..a6eebb80a54 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -1918,3 +1918,43 @@ 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 and attentional performance, as well as 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..c8b33eedf9e 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" @@ -304,6 +304,11 @@ 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) +/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" desc = "Commonly abbreviated to RMT, it contains chemicals rampantly used by those seeking to remedy the effects of prolonged zero-gravity adaptations." @@ -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 93fe4e676ed..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 1e92172f859..f9845aa7bd6 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -96100,24 +96100,19 @@ }, /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/machinery/light/floor{ + dir = 4 + }, +/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" = (