Medical Hypospray

This commit is contained in:
Fox McCloud
2018-08-02 23:39:15 -04:00
parent 9101fcd29d
commit 3193d599cb
4 changed files with 42 additions and 2 deletions
+1 -1
View File
@@ -1027,7 +1027,7 @@
req_access_txt = "5"
products = list(/obj/item/reagent_containers/glass/bottle/charcoal = 4,/obj/item/reagent_containers/glass/bottle/morphine = 4,/obj/item/reagent_containers/glass/bottle/ether = 4,/obj/item/reagent_containers/glass/bottle/epinephrine = 4,
/obj/item/reagent_containers/glass/bottle/toxin = 4,/obj/item/reagent_containers/syringe/antiviral = 6,/obj/item/reagent_containers/syringe/insulin = 4,
/obj/item/reagent_containers/syringe = 12,/obj/item/healthanalyzer = 5,/obj/item/healthupgrade = 5,/obj/item/reagent_containers/glass/beaker = 4,
/obj/item/reagent_containers/syringe = 12,/obj/item/healthanalyzer = 5,/obj/item/healthupgrade = 5,/obj/item/reagent_containers/glass/beaker = 4, /obj/item/reagent_containers/hypospray/safety = 2,
/obj/item/reagent_containers/dropper = 2,/obj/item/stack/medical/bruise_pack/advanced = 3, /obj/item/stack/medical/ointment/advanced = 3,
/obj/item/stack/medical/bruise_pack = 3,/obj/item/stack/medical/splint = 4, /obj/item/sensor_device = 2, /obj/item/reagent_containers/hypospray/autoinjector = 4,
/obj/item/pinpointer/crew = 2)
@@ -13,7 +13,9 @@
possible_transfer_amounts = list(1,2,3,4,5,10,15,20,25,30)
flags = OPENCONTAINER
slot_flags = SLOT_BELT
var/ignore_flags = 0
var/ignore_flags = FALSE
var/emagged = FALSE
var/safety_hypo = FALSE
/obj/item/reagent_containers/hypospray/attack(mob/living/M, mob/user)
if(!reagents.total_volume)
@@ -31,8 +33,13 @@
for(var/datum/reagent/R in reagents.reagent_list)
injected += R.name
var/primary_reagent_name = reagents.get_master_reagent_name()
var/trans = reagents.trans_to(M, amount_per_transfer_from_this)
if(safety_hypo)
visible_message("<span class='warning'>[user] injects [M] with [trans] units of [primary_reagent_name].</span>")
playsound(loc, 'sound/goonstation/items/hypo.ogg', 80, 0)
to_chat(user, "<span class='notice'>[trans] unit\s injected. [reagents.total_volume] unit\s remaining in [src].</span>")
var/contained = english_list(injected)
@@ -41,6 +48,31 @@
return TRUE
/obj/item/reagent_containers/hypospray/on_reagent_change()
if(safety_hypo && !emagged)
var/found_forbidden_reagent = FALSE
for(var/datum/reagent/R in reagents.reagent_list)
if(!safe_chem_list.Find(R.id))
reagents.del_reagent(R.id)
found_forbidden_reagent = TRUE
if(found_forbidden_reagent)
if(ismob(loc))
to_chat(loc, "<span class='warning'>[src] identifies and removes a harmful substance.</span>")
else
visible_message("<span class='warning'>[src] identifies and removes a harmful substance.</span>")
/obj/item/reagent_containers/hypospray/emag_act(mob/user)
if(safety_hypo && !emagged)
emagged = TRUE
ignore_flags = TRUE
to_chat(user, "<span class='warning'>You short out the safeties on [src].</span>")
/obj/item/reagent_containers/hypospray/safety
name = "medical hypospray"
desc = "A modified hypospray for quickly injecting safe medicinal chemicals."
icon_state = "combat_hypo"
safety_hypo = TRUE
/obj/item/reagent_containers/hypospray/CMO
list_reagents = list("omnizine" = 30)
@@ -591,6 +591,14 @@
build_path = /obj/item/reagent_containers/syringe
category = list("initial", "Medical")
/datum/design/safety_hypo
name = "Medical Hypospray"
id = "safetyhypo"
build_type = AUTOLATHE
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
build_path = /obj/item/reagent_containers/hypospray/safety
category = list("initial", "Medical")
/datum/design/prox_sensor
name = "Proximity Sensor"
id = "prox_sensor"
Binary file not shown.