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
@@ -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"