Implant removal surgery. Scalpel > Hemostat > Restractor > Hemostat (Multiple times may be needed). For now syndicate implants simply disintegrate. Other implants can be put back into an implanter.

Also allows rag to hold 5 reagents, smother people with it, and also stops it causing attack messages.
This commit is contained in:
Erthilo
2012-05-21 15:13:15 +01:00
parent 418d1684d1
commit 4bda83ec51
5 changed files with 101 additions and 22 deletions
@@ -1,5 +1,8 @@
/obj/item/weapon/implant
name = "implant"
desc = "An implant. Not usually seen outside a body."
icon = 'items.dmi'
icon_state = "implant"
var
implanted = null
mob/imp_in = null
@@ -16,15 +19,24 @@
trigger(emote, source as mob)
return
activate()
return
attackby(obj/item/weapon/I as obj, mob/user as mob)
..()
if (istype(I, /obj/item/weapon/implanter))
if (I:imp)
return
else
src.loc = I
I:imp = src
// del(src)
I:update()
return
implanted(source as mob)
return
get_data()
return "No information available"
@@ -34,8 +46,8 @@
/obj/item/weapon/implant/uplink
name = "uplink"
desc = "Summon things."
name = "uplink implant"
desc = "A micro-telecrystal implant which allows for instant transportation of equipment."
var
activation_emote = "chuckle"
obj/item/device/uplink/radio/uplink = null
@@ -63,8 +75,8 @@
/obj/item/weapon/implant/tracking
name = "tracking"
desc = "Track with this."
name = "tracking implant"
desc = "An implant which relays information to the appropriate tracking computer."
var
id = 1.0
@@ -89,8 +101,8 @@ Implant Specifics:<BR>"}
//Nuke Agent Explosive
/obj/item/weapon/implant/dexplosive
name = "explosive"
desc = "And boom goes the weasel."
name = "explosive implant"
desc = "A military grade micro bio-explosive. Highly dangerous."
var/activation_emote = "deathgasp"
var/coded = 0
@@ -140,8 +152,8 @@ Implant Specifics:<BR>"}
/obj/item/weapon/implant/chem
name = "chem"
desc = "Injects things."
name = "chemical implant"
desc = "A micro-injector that can be triggered remotely."
allow_reagents = 1
get_data()
@@ -190,8 +202,8 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/loyalty
name = "loyalty"
desc = "Makes you loyal or such."
name = "loyalty implant"
desc = "An implant which contains a small pod of nanobots which manipulate host mental functions to induce loyalty."
get_data()
var/dat = {"
@@ -220,8 +232,8 @@ the implant may become unstable and either pre-maturely inject the subject or si
//BS12 Explosive
/obj/item/weapon/implant/explosive
name = "explosive"
desc = "And boom goes the weasel."
name = "explosive implant"
desc = "A military grade micro bio-explosive. Highly dangerous."
var/phrase = "supercalifragilisticexpialidocious"
@@ -263,8 +275,8 @@ the implant may become unstable and either pre-maturely inject the subject or si
usr << "The implanted explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate."
/obj/item/weapon/implant/death_alarm
name = "death alarm"
desc = "Danger Will Robinson!"
name = "death alarm implant"
desc = "An alarm which monitors host vital signs and transmits a radio message upon death."
var/mobname = "Will Robinson"
get_data()
@@ -302,7 +314,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/compressed
name = "compressed matter implant"
desc = "*fwooomp*"
desc = "Based on compressed matter technology, can store a single item."
var/activation_emote = "sigh"
var/obj/item/scanned = null
@@ -569,8 +569,47 @@ CIRCULAR SAW
return 0
if(!S.bleeding)
user << "\red [H] is not bleeding in \his [S.display_name]!"
return 0
if(S.implant)
if(H != user)
H.visible_message( \
"\red [user] is attempting to remove the implant in [H]'s [S.display_name] with \the [src].", \
"\red [user] attempts to remove the implant in your [S.display_name] with \the [src]!")
else
H.visible_message( \
"\red [user] attempts to remove the implant in \his [S.display_name] with \the [src]!", \
"\red You attempt to remove the implant in your [S.display_name] with \the [src]!")
if(do_mob(user, H, 50))
if(prob(50))
if(H != user)
H.visible_message( \
"\red [user] successfully removes the implant in [H]'s [S.display_name] with \the [src]!", \
"\red [user] successfully removes the implant in your [S.display_name] with \the [src]!")
else
H.visible_message( \
"\red [user] successfully removes the implant in \his [S.display_name] with \the [src]!", \
"\red You successfully remove the implant in your [S.display_name] with \the [src]!")
for(var/obj/item/weapon/implant/implant in S.implant)
implant.loc = (get_turf(H))
implant.implanted = 0
S.implant = null
if(istype(implant, /obj/item/weapon/implant/explosive) || istype(implant, /obj/item/weapon/implant/uplink) || istype(implant, /obj/item/weapon/implant/dexplosive) || istype(implant, /obj/item/weapon/implant/explosive) || istype(implant, /obj/item/weapon/implant/compressed))
usr << "The implant disintegrates into nothing..."
del(implant)
else
if(H != user)
H.visible_message( \
"\red [user] fails to removes the implant!", \
"\red [user] fails to removes the implant!")
else
H.visible_message( \
"\red [user] fails to removes the implant!", \
"\red You fail to removes the implant!")
return 1
else
user << "\red [H] is not bleeding in \his [S.display_name]!"
return 0
if(H != user)
H.visible_message( \