Hypospray revamp (Vendor & Upgrades) (#15024)

* hyposprays but good

* upgrade applies to hypo not the modkit itself

* del the modkit

* del modkit 2

* add hypo panel

* typepath typo

* add sound to installing upgrade

* moves stuff out of the way of hypo vend in yog/meta

* readds hypo to box

* poke turdis
This commit is contained in:
ynot01
2022-08-20 07:32:35 -04:00
committed by GitHub
parent 6434925d1a
commit b3c4f8054e
13 changed files with 166 additions and 53 deletions

View File

@@ -11060,7 +11060,7 @@
"fwr" = (
/obj/machinery/smoke_machine,
/obj/item/reagent_containers/glass/beaker/large/silver_sulfadiazine{
list_reagents = list(/datum/reagent/consumable/condensedcapsaicin = 100);
list_reagents = list(/datum/reagent/consumable/condensedcapsaicin=100);
name = "liquid pepper spray"
},
/turf/open/floor/plasteel/dark,
@@ -13164,7 +13164,7 @@
},
/obj/machinery/computer/atmos_control/tank/toxin_tank{
dir = 4;
sensors = list("tox_sensor" = "Tank")
sensors = list("tox_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/machinery/door/firedoor/border_only{
@@ -16133,7 +16133,7 @@
},
/obj/machinery/computer/atmos_control/tank/oxygen_tank{
dir = 4;
sensors = list("o2_sensor" = "Tank")
sensors = list("o2_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/machinery/door/firedoor/border_only{
@@ -16402,7 +16402,7 @@
/obj/structure/window/reinforced,
/obj/machinery/computer/atmos_control/tank/carbon_tank{
dir = 1;
sensors = list("co2_sensor" = "Tank")
sensors = list("co2_sensor"="Tank")
},
/obj/machinery/door/firedoor/border_only,
/obj/machinery/door/firedoor/border_only{
@@ -16862,7 +16862,7 @@
dir = 1
},
/obj/machinery/computer/atmos_control/tank/mix_tank{
sensors = list("mix_sensor" = "Tank")
sensors = list("mix_sensor"="Tank")
},
/obj/machinery/door/firedoor/border_only{
dir = 1
@@ -22695,7 +22695,7 @@
/obj/structure/window/reinforced,
/obj/machinery/computer/atmos_control/tank/nitrous_tank{
dir = 1;
sensors = list("n2o_sensor" = "Tank")
sensors = list("n2o_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
@@ -23831,6 +23831,9 @@
pixel_x = 6;
pixel_y = -6
},
/obj/machinery/vending/wallhypo{
pixel_y = -28
},
/turf/open/floor/plasteel/white,
/area/medical/storage)
"lVD" = (
@@ -39797,7 +39800,7 @@
},
/obj/machinery/computer/atmos_control/tank/nitrogen_tank{
dir = 4;
sensors = list("n2_sensor" = "Tank")
sensors = list("n2_sensor"="Tank")
},
/obj/machinery/door/firedoor/border_only{
dir = 8
@@ -44199,7 +44202,7 @@
},
/obj/machinery/computer/atmos_control/tank/air_tank{
dir = 4;
sensors = list("air_sensor" = "Tank")
sensors = list("air_sensor"="Tank")
},
/obj/machinery/door/firedoor/border_only{
dir = 8

View File

@@ -2750,7 +2750,7 @@
/obj/effect/turf_decal/bot_white,
/obj/machinery/smoke_machine,
/obj/item/reagent_containers/glass/beaker/large/silver_sulfadiazine{
list_reagents = list(/datum/reagent/consumable/condensedcapsaicin = 100);
list_reagents = list(/datum/reagent/consumable/condensedcapsaicin=100);
name = "liquid pepper spray"
},
/turf/open/floor/plasteel/dark,
@@ -5178,7 +5178,7 @@
},
/obj/item/reagent_containers/food/drinks/drinkingglass{
icon_state = "cognacglass";
list_reagents = list(/datum/reagent/consumable/ethanol/cognac = 20);
list_reagents = list(/datum/reagent/consumable/ethanol/cognac=20);
pixel_x = -5;
pixel_y = -3
},
@@ -14247,7 +14247,7 @@
},
/obj/machinery/computer/atmos_control/tank/air_tank{
dir = 4;
sensors = list("air_sensor" = "Tank")
sensors = list("air_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel/dark,
@@ -17702,10 +17702,6 @@
pixel_x = 7;
pixel_y = -5
},
/obj/machinery/firealarm{
dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
},
@@ -20680,6 +20676,10 @@
dir = 8
},
/obj/effect/turf_decal/trimline/yellow/filled/corner,
/obj/machinery/firealarm{
dir = 1;
pixel_y = -26
},
/turf/open/floor/plasteel/white,
/area/medical/storage)
"dLs" = (
@@ -22291,7 +22291,7 @@
},
/obj/machinery/computer/atmos_control/tank/carbon_tank{
dir = 8;
sensors = list("co2_sensor" = "Tank")
sensors = list("co2_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/machinery/door/firedoor/border_only{
@@ -25317,7 +25317,7 @@
},
/obj/machinery/computer/atmos_control/tank/toxin_tank{
dir = 8;
sensors = list("tox_sensor" = "Tank")
sensors = list("tox_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 9
@@ -25500,6 +25500,9 @@
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 8
},
/obj/machinery/vending/wallhypo{
pixel_x = -28
},
/turf/open/floor/plasteel/white,
/area/medical/storage)
"fQn" = (
@@ -30839,7 +30842,7 @@
},
/obj/machinery/computer/atmos_control/tank/mix_tank{
dir = 4;
sensors = list("mix_sensor" = "Tank")
sensors = list("mix_sensor"="Tank")
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos_distro)
@@ -46405,7 +46408,7 @@
},
/obj/machinery/computer/atmos_control/tank/oxygen_tank{
dir = 4;
sensors = list("o2_sensor" = "Tank")
sensors = list("o2_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/machinery/door/firedoor/border_only{
@@ -54560,7 +54563,7 @@
},
/obj/machinery/computer/atmos_control/tank/nitrous_tank{
dir = 8;
sensors = list("n2o_sensor" = "Tank")
sensors = list("n2o_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/machinery/door/firedoor/border_only{
@@ -55090,7 +55093,7 @@
},
/obj/machinery/computer/atmos_control/tank/nitrogen_tank{
dir = 4;
sensors = list("n2_sensor" = "Tank")
sensors = list("n2_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel/dark,

View File

@@ -40888,9 +40888,6 @@
/turf/open/floor/plasteel/grimy,
/area/chapel/office)
"bWi" = (
/obj/structure/noticeboard{
pixel_y = 32
},
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 5
},
@@ -56619,9 +56616,6 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"dsh" = (
/obj/structure/sign/poster/official/random{
pixel_y = -32
},
/obj/effect/turf_decal/tile/blue{
dir = 4
},
@@ -56640,6 +56634,10 @@
pixel_x = -3;
pixel_y = 15
},
/obj/structure/noticeboard{
dir = 1;
pixel_y = -32
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/aft)
"dtd" = (
@@ -66682,7 +66680,7 @@
},
/obj/machinery/computer/atmos_control/tank/carbon_tank{
dir = 1;
sensors = list("co2_sensor" = "Tank")
sensors = list("co2_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
@@ -66721,7 +66719,7 @@
},
/obj/machinery/door/firedoor/border_only,
/obj/machinery/computer/atmos_control/tank/air_tank{
sensors = list("air_sensor" = "Tank")
sensors = list("air_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
@@ -67501,7 +67499,7 @@
},
/obj/machinery/computer/atmos_control/tank/toxin_tank{
dir = 1;
sensors = list("tox_sensor" = "Tank")
sensors = list("tox_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
@@ -70218,7 +70216,7 @@
},
/obj/machinery/computer/atmos_control/tank/mix_tank{
dir = 1;
sensors = list("mix_sensor" = "Tank")
sensors = list("mix_sensor"="Tank")
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos_distro)
@@ -70869,6 +70867,9 @@
name = "medbay camera";
network = list("ss13","medbay")
},
/obj/machinery/vending/wallhypo{
pixel_y = -28
},
/turf/open/floor/plasteel/dark,
/area/medical/storage)
"odP" = (
@@ -81323,7 +81324,7 @@
},
/obj/machinery/door/firedoor/border_only,
/obj/machinery/computer/atmos_control/tank/nitrogen_tank{
sensors = list("n2_sensor" = "Tank")
sensors = list("n2_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
@@ -82118,7 +82119,7 @@
},
/obj/machinery/door/firedoor/border_only,
/obj/machinery/computer/atmos_control/tank/oxygen_tank{
sensors = list("o2_sensor" = "Tank")
sensors = list("o2_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4
@@ -82733,7 +82734,7 @@
},
/obj/machinery/computer/atmos_control/tank/nitrous_tank{
dir = 1;
sensors = list("n2o_sensor" = "Tank")
sensors = list("n2o_sensor"="Tank")
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
dir = 4

View File

@@ -608,6 +608,7 @@
/obj/machinery/vending/clothing = "ClothesMate",
/obj/machinery/vending/medical = "NanoMed Plus",
/obj/machinery/vending/wallmed = "NanoMed",
/obj/machinery/vending/wallhypo = "HypoMed",
/obj/machinery/vending/assist = "Vendomat",
/obj/machinery/vending/engivend = "Engi-Vend",
/obj/machinery/vending/hydronutrients = "NutriMax",

View File

@@ -385,7 +385,7 @@
name = "basic hypospray kit"
desc = "A hypospray kit containing a hypospray and vials for most common situations."
stored_hypo = /obj/item/hypospray
custom_premium_price = 300
custom_premium_price = 150
/obj/item/storage/firstaid/hypospray/brute
name = "brute hypospray vial kit"
@@ -464,7 +464,7 @@
desc = "A hypospray kit containing vials for most situations."
icon_state = "hyporad"
item_state = "firstaid-rad"
custom_premium_price = 300
custom_premium_price = 200
/obj/item/storage/firstaid/hypospray/advanced/PopulateContents()
if(empty)
@@ -484,7 +484,7 @@
name = "advanced hypospray kit"
desc = "An advanced kit containing a hypospray and vials for most situations."
stored_hypo = /obj/item/hypospray
custom_premium_price = 500
custom_premium_price = 250
/obj/item/storage/firstaid/hypospray/deluxe
name = "deluxe hypospray kit"

View File

@@ -1460,10 +1460,11 @@
/datum/supply_pack/medical/vending
name = "Medical Vending Crate"
desc = "Contains one NanoMed Plus refill and one wall-mounted NanoMed refill."
cost = 2000
desc = "Contains one NanoMed Plus refill, one wall-mounted NanoMed refill, and one wall-mounted HypoMed refill."
cost = 2500
contains = list(/obj/item/vending_refill/medical,
/obj/item/vending_refill/wallmed)
/obj/item/vending_refill/wallmed,
/obj/item/vending_refill/wallhypo)
crate_name = "medical vending crate"
//////////////////////////////////////////////////////////////////////////////

View File

@@ -495,61 +495,73 @@
name = "vial (Libital)"
icon_state = "vial_red"
list_reagents = list(/datum/reagent/medicine/c2/libital = 15)
custom_premium_price = 25
/obj/item/reagent_containers/glass/bottle/vial/aiuri
name = "vial (Aiuri)"
icon_state = "vial_orange"
list_reagents = list(/datum/reagent/medicine/c2/aiuri = 15)
custom_premium_price = 25
/obj/item/reagent_containers/glass/bottle/vial/charcoal
name = "vial (Charcoal)"
icon_state = "vial_green"
list_reagents = list(/datum/reagent/medicine/charcoal = 15)
custom_premium_price = 25
/obj/item/reagent_containers/glass/bottle/vial/perfluorodecalin
name = "vial (Perfluorodecalin)"
icon_state = "vial_blue"
list_reagents = list(/datum/reagent/medicine/perfluorodecalin = 15)
custom_premium_price = 25
/obj/item/reagent_containers/glass/bottle/vial/epi
name = "vial (Epinephrine)"
icon_state = "vial_white"
list_reagents = list(/datum/reagent/medicine/epinephrine = 12, /datum/reagent/medicine/coagulant = 3)
custom_premium_price = 25
/obj/item/reagent_containers/glass/bottle/vial/styptic
name = "vial (Styptic Powder)"
icon_state = "vial_orange"
list_reagents = list(/datum/reagent/medicine/styptic_powder = 15)
custom_premium_price = 30
/obj/item/reagent_containers/glass/bottle/vial/silver_sulfadiazine
name = "vial (Silver Sulfadiazine)"
icon_state = "vial_red"
list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 15)
custom_premium_price = 30
/obj/item/reagent_containers/glass/bottle/vial/sal_acid
name = "vial (Salicyclic Acid)"
icon_state = "vial_white"
list_reagents = list(/datum/reagent/medicine/sal_acid = 15)
custom_premium_price = 50
/obj/item/reagent_containers/glass/bottle/vial/oxandrolone
name = "vial (Oxandrolone)"
icon_state = "vial_black"
list_reagents = list(/datum/reagent/medicine/oxandrolone = 15)
custom_premium_price = 50
/obj/item/reagent_containers/glass/bottle/vial/calomel
name = "vial (Calomel)"
icon_state = "vial_black"
list_reagents = list(/datum/reagent/medicine/calomel = 15)
custom_premium_price = 50
/obj/item/reagent_containers/glass/bottle/vial/salbutamol
name = "vial (Salbutamol)"
icon_state = "vial_white"
list_reagents = list(/datum/reagent/medicine/salbutamol = 15)
custom_premium_price = 50
/obj/item/reagent_containers/glass/bottle/vial/coagulant
name = "vial (Coagulant)"
icon_state = "vial_red"
list_reagents = list(/datum/reagent/medicine/coagulant = 15)
custom_premium_price = 50
/obj/item/reagent_containers/glass/bottle/vial/lavaland
name = "vial (Lavaland Extract Mix)"

View File

@@ -625,6 +625,61 @@
mode = HYPO_DRAW
to_chat(user, span_notice("[src] is now set to draw on application."))
/obj/item/hypospray/attackby(obj/item/I, mob/living/user)
if(istype(I, /obj/item/hypospray_upgrade))
var/obj/item/hypospray_upgrade/MK = I
if(MK.install(src, user))
to_chat(user, span_notice("You install the [MK] into the [src]."))
playsound(src, 'sound/items/screwdriver.ogg', 100, 1)
qdel(MK)
else
..()
/obj/item/hypospray_upgrade
name = "hypospray modification kit"
desc = "An upgrade for hyposprays."
icon = 'icons/obj/objects.dmi'
icon_state = "modkit"
w_class = WEIGHT_CLASS_SMALL
/obj/item/hypospray_upgrade/attackby(obj/item/A, mob/user)
if(istype(A, /obj/item/hypospray) && !issilicon(user))
if(install(A, user))
to_chat(user, span_notice("You install the [src] into the [A]."))
playsound(A, 'sound/items/screwdriver.ogg', 100, 1)
qdel(src)
else
..()
/obj/item/hypospray_upgrade/proc/install(var/obj/item/hypospray/hypo, mob/user)
to_chat(user, span_notice("The modkit you're trying to install is not meant to exist."))
return FALSE
/obj/item/hypospray_upgrade/quickload
name = "hypospray quickload upgrade"
desc = "An upgrade for hyposprays that installs a quickloading mechanism, allowing tactical reloads by using a container on it."
/obj/item/hypospray_upgrade/quickload/install(var/obj/item/hypospray/hypo, mob/user)
if(hypo.quickload)
to_chat(user, span_notice("[hypo] already has a quickloading mechanism!"))
return FALSE
else
hypo.quickload = TRUE
return TRUE
/obj/item/hypospray_upgrade/piercing
name = "hypospray piercing upgrade"
desc = "An upgrade for hyposprays that installs a diamond tipped needle, allowing it to pierce thick clothing."
/obj/item/hypospray_upgrade/piercing/install(var/obj/item/hypospray/hypo, mob/user)
if(hypo.penetrates)
to_chat(user, span_notice("[hypo] already has a piercing mechanism!"))
return FALSE
else
hypo.penetrates = TRUE
return TRUE
#undef HYPO_INJECT
#undef HYPO_SPRAY
#undef HYPO_DRAW

View File

@@ -271,6 +271,16 @@
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
/datum/design/hypospraypierceupg
name = "Hypospray Piercing Upgrade"
desc = "An upgrade for hyposprays that installs a diamond tipped needle, allowing it to pierce thick clothing."
id = "hypospraypierceupg"
build_path = /obj/item/hypospray_upgrade/piercing
build_type = PROTOLATHE
materials = list(/datum/material/glass = 2000, /datum/material/diamond = 1000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
/////////////////////////////////////////
//////////Cybernetic Implants////////////
/////////////////////////////////////////

View File

@@ -62,7 +62,7 @@
display_name = "Advanced Biotechnology"
description = "Advanced Biotechnology"
prereq_ids = list("biotech")
design_ids = list("hypospray", "piercesyringe", "pinpointer_crew", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "detective_scanner", "detective_scanner_advanced" , "defibrillator_compact")
design_ids = list("hypospray", "piercesyringe", "hypospraypierceupg", "pinpointer_crew", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "detective_scanner", "detective_scanner_advanced" , "defibrillator_compact")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
/datum/techweb_node/xenoorgan_biotech

View File

@@ -20,8 +20,6 @@
/obj/item/reagent_containers/glass/bottle/salglu_solution = 3,
/obj/item/reagent_containers/glass/bottle/toxin = 3,
/obj/item/reagent_containers/syringe/antiviral = 6,
/obj/item/reagent_containers/medspray/styptic = 2,
/obj/item/reagent_containers/medspray/silver_sulf = 2,
/obj/item/sensor_device = 2,
/obj/item/pinpointer/crew = 2,
/obj/item/healthanalyzer/wound = 4,
@@ -37,12 +35,6 @@
/obj/item/reagent_containers/autoinjector/medipen = 3,
/obj/item/storage/belt/medical = 3,
/obj/item/wrench/medical = 1,
/obj/item/storage/firstaid/hypospray/basic/hypo = 3,
/obj/item/storage/firstaid/hypospray/brute = 1,
/obj/item/storage/firstaid/hypospray/burn = 1,
/obj/item/storage/firstaid/hypospray/toxin = 1,
/obj/item/storage/firstaid/hypospray/oxygen = 1,
/obj/item/storage/firstaid/hypospray/advanced/hypo = 3,
/obj/item/storage/firstaid/advanced = 2)
armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50)
resistance_flags = FIRE_PROOF

View File

@@ -6,11 +6,9 @@
tiltable = FALSE
density = FALSE
products = list(/obj/item/reagent_containers/syringe = 3,
/obj/item/reagent_containers/pill/patch/styptic = 5,
/obj/item/reagent_containers/pill/patch/styptic = 5,
/obj/item/reagent_containers/pill/patch/silver_sulf = 5,
/obj/item/reagent_containers/pill/charcoal = 2,
/obj/item/reagent_containers/medspray/styptic = 2,
/obj/item/reagent_containers/medspray/silver_sulf = 2,
/obj/item/healthanalyzer/wound = 2,
/obj/item/stack/medical/bone_gel = 2)
contraband = list(/obj/item/reagent_containers/pill/tox = 2,
@@ -25,4 +23,41 @@
/obj/item/vending_refill/wallmed
machine_name = "NanoMed"
icon_state = "refill_medical"
/obj/machinery/vending/wallhypo
name = "\improper HypoMed"
desc = "Wall-mounted Hypospray Equipment dispenser."
icon_state = "wallhypo"
icon_deny = "wallhypo-deny"
tiltable = FALSE
density = FALSE
// No default products, all of this shit costs money
premium = list( /obj/item/hypospray = 5,
/obj/item/hypospray_upgrade/quickload = 5,
/obj/item/reagent_containers/glass/bottle/vial/libital = 10,
/obj/item/reagent_containers/glass/bottle/vial/aiuri = 10,
/obj/item/reagent_containers/glass/bottle/vial/charcoal = 10,
/obj/item/reagent_containers/glass/bottle/vial/perfluorodecalin = 10,
/obj/item/reagent_containers/glass/bottle/vial/epi = 10,
/obj/item/reagent_containers/glass/bottle/vial/styptic = 10,
/obj/item/reagent_containers/glass/bottle/vial/silver_sulfadiazine = 10,
/obj/item/reagent_containers/glass/bottle/vial/sal_acid = 10,
/obj/item/reagent_containers/glass/bottle/vial/oxandrolone = 10,
/obj/item/reagent_containers/glass/bottle/vial/calomel = 10,
/obj/item/reagent_containers/glass/bottle/vial/salbutamol = 10,
/obj/item/reagent_containers/glass/bottle/vial/coagulant = 10,
/obj/item/storage/firstaid/hypospray/basic = 5,
/obj/item/storage/firstaid/hypospray/advanced = 5,
/obj/item/storage/firstaid/hypospray/brute = 3,
/obj/item/storage/firstaid/hypospray/burn = 3,
/obj/item/storage/firstaid/hypospray/toxin = 3,
/obj/item/storage/firstaid/hypospray/oxygen = 3)
extra_price = 50
armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/wallhypo
payment_department = ACCOUNT_MED
/obj/item/vending_refill/wallhypo
machine_name = "HypoMed"
icon_state = "refill_medical"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 110 KiB