Adds do_surgery() behaviour for various items

Heath scanners, autopsy scanners, syringes, hyposprays, droppers and bottles.
This commit is contained in:
HarpyEagle
2016-06-01 21:57:49 -04:00
committed by Yoshax
parent fc063115df
commit 58b87f1a4b
7 changed files with 48 additions and 17 deletions

View File

@@ -12,8 +12,15 @@
slot_flags = SLOT_EARS
volume = 5
/obj/item/weapon/reagent_containers/dropper/afterattack(var/obj/target, var/mob/user, var/flag)
if(!target.reagents || !flag) return
/obj/item/weapon/reagent_containers/dropper/do_surgery(mob/living/carbon/M, mob/living/user)
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
return ..()
afterattack(M, user, 1)
return 1
/obj/item/weapon/reagent_containers/dropper/afterattack(var/obj/target, var/mob/user, var/proximity)
if(!target.reagents || !proximity) return
if(reagents.total_volume)

View File

@@ -69,8 +69,15 @@
flags |= OPENCONTAINER
update_icon()
/obj/item/weapon/reagent_containers/glass/afterattack(var/obj/target, var/mob/user, var/flag)
if(!is_open_container() || !flag)
/obj/item/weapon/reagent_containers/glass/do_surgery(mob/living/carbon/M, mob/living/user)
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
return ..()
afterattack(M, user, 1)
return 1
/obj/item/weapon/reagent_containers/glass/afterattack(var/obj/target, var/mob/user, var/proximity)
if(!is_open_container() || !proximity)
return
for(var/type in can_be_placed_into)

View File

@@ -20,6 +20,12 @@
// reagents.add_reagent("tricordrazine", 30)
// return
/obj/item/weapon/reagent_containers/hypospray/do_surgery(mob/living/carbon/M, mob/living/user)
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
return ..()
attack(M, user)
return 1
/obj/item/weapon/reagent_containers/hypospray/attack(mob/living/M as mob, mob/user as mob)
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty.</span>"

View File

@@ -52,6 +52,14 @@
/obj/item/weapon/reagent_containers/syringe/attackby(obj/item/I as obj, mob/user as mob)
return
/obj/item/weapon/reagent_containers/syringe/do_surgery(mob/living/carbon/M, mob/living/user)
if(user.a_intent == I_HURT)
return 0
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
return ..()
afterattack(M, user, 1)
return 1
/obj/item/weapon/reagent_containers/syringe/afterattack(obj/target, mob/user, proximity)
if(!proximity || !target.reagents)
return
@@ -66,7 +74,6 @@
syringestab(target, user)
return
switch(mode)
if(SYRINGE_DRAW)