mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-06-10 16:02:43 +01:00
b471da4ed4
Tracking implants can now be used to message the holder. Mini Readme update. Explosive implants will explode when the host dies. Might try and wrap these into nuke or as a new traitor item. Added a play local sound proc. Fixed most of the runtimes in the latest log. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2074 316c924e-a436-60f5-8080-3fe189b3f50e
117 lines
2.6 KiB
Plaintext
117 lines
2.6 KiB
Plaintext
/obj/item/weapon/implantcase
|
|
name = "Glass Case"
|
|
desc = "A case containing an implant."
|
|
icon_state = "implantcase-0"
|
|
item_state = "implantcase"
|
|
throw_speed = 1
|
|
throw_range = 5
|
|
w_class = 1.0
|
|
var
|
|
obj/item/weapon/implant/imp = null
|
|
proc
|
|
update()
|
|
|
|
|
|
update()
|
|
if (src.imp)
|
|
src.icon_state = text("implantcase-[]", src.imp.color)
|
|
else
|
|
src.icon_state = "implantcase-0"
|
|
return
|
|
|
|
|
|
attackby(obj/item/weapon/I as obj, mob/user as mob)
|
|
..()
|
|
if (istype(I, /obj/item/weapon/pen))
|
|
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
|
|
if (user.equipped() != I)
|
|
return
|
|
if((!in_range(src, usr) && src.loc != user))
|
|
return
|
|
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
|
|
if(t)
|
|
src.name = text("Glass Case- '[]'", t)
|
|
else
|
|
src.name = "Glass Case"
|
|
else if(istype(I, /obj/item/weapon/reagent_containers/syringe))
|
|
if(!src.imp) return
|
|
if(!src.imp.allow_reagents) return
|
|
if(src.imp.reagents.total_volume >= 10)
|
|
user << "\red [src] is full."
|
|
else
|
|
spawn(5)
|
|
I.reagents.trans_to(src.imp, 5)
|
|
user << "\blue You inject 5 units of the solution. The syringe now contains [I.reagents.total_volume] units."
|
|
else if (istype(I, /obj/item/weapon/implanter))
|
|
if (I:imp)
|
|
if ((src.imp || I:imp.implanted))
|
|
return
|
|
I:imp.loc = src
|
|
src.imp = I:imp
|
|
I:imp = null
|
|
src.update()
|
|
I:update()
|
|
else
|
|
if (src.imp)
|
|
if (I:imp)
|
|
return
|
|
src.imp.loc = I
|
|
I:imp = src.imp
|
|
src.imp = null
|
|
update()
|
|
I:update()
|
|
return
|
|
|
|
|
|
|
|
/obj/item/weapon/implantcase/tracking
|
|
name = "Glass Case- 'Tracking'"
|
|
desc = "A case containing a tracking implant."
|
|
icon = 'items.dmi'
|
|
icon_state = "implantcase-b"
|
|
|
|
|
|
New()
|
|
src.imp = new /obj/item/weapon/implant/tracking( src )
|
|
..()
|
|
return
|
|
|
|
|
|
|
|
/obj/item/weapon/implantcase/explosive
|
|
name = "Glass Case- 'Explosive'"
|
|
desc = "A case containing an explosive implant."
|
|
icon = 'items.dmi'
|
|
icon_state = "implantcase-r"
|
|
|
|
|
|
New()
|
|
src.imp = new /obj/item/weapon/implant/explosive( src )
|
|
..()
|
|
return
|
|
|
|
|
|
|
|
/obj/item/weapon/implantcase/chem
|
|
name = "Glass Case- 'Chem'"
|
|
desc = "A case containing a chemical implant."
|
|
icon = 'items.dmi'
|
|
icon_state = "implantcase-b"
|
|
/obj/item/weapon/implantcase/chem/New()
|
|
|
|
src.imp = new /obj/item/weapon/implant/chem( src )
|
|
..()
|
|
return
|
|
|
|
|
|
/obj/item/weapon/implantcase/loyalty
|
|
name = "Glass Case- 'Loyalty'"
|
|
desc = "A case containing a loyalty implant."
|
|
icon = 'items.dmi'
|
|
icon_state = "implantcase-r"
|
|
|
|
|
|
New()
|
|
src.imp = new /obj/item/weapon/implant/loyalty( src )
|
|
..()
|
|
return |