Adds NanoPharm and Misc Fluff Meds, now with less Merge Conflicts (#19779)

Your coworkers getting you down? Struggling to keep that headache at bay
during a day at the office? Just need a pick-me-up? Look no further!

Adds the Nanopharm, a simple vending machine giving access to some
over-the-counter pharmaceuticals. Caffine pills, Cough medicine, that
sort of thing. Amazing for 'My coworkers are such a headache I need to
pop pills over it' rp.

Please actually do feel free to give feedback over what should be added
or omitted. I want to give some variety without adding things that
should be prescription and controlled substances. Current things of note
are caffeine pills, nicotine pills, and vitamins which this PR adds.


Same as #19740, but with less conflicts hopefully. Credit to
Courierbravo for helping with the map when my SDMM install messed up

---------

Signed-off-by: HanSolo1519 <72716882+HanSolo1519@users.noreply.github.com>
This commit is contained in:
HanSolo1519
2024-08-20 14:02:03 +00:00
committed by GitHub
parent 60603e6098
commit e3a54abf58
7 changed files with 184 additions and 19 deletions
+45 -4
View File
@@ -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."
@@ -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)
@@ -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 ..()
@@ -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)
+59
View File
@@ -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!)"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 82 KiB

+6 -13
View File
@@ -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" = (