diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 14096425500..5e500ed5d1c 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -67,7 +67,7 @@ if ((O.client && !( O.blinded ))) O << "\red [src] has been scanned by [user] with the [W]" else - if (!( istype(W, /obj/item/weapon/grab) ) && !(istype(W, /obj/item/weapon/plastique)) &&!(istype(W, /obj/item/weapon/cleaner)) &&!(istype(W, /obj/item/weapon/chemsprayer)) &&!(istype(W, /obj/item/weapon/pepperspray)) && !(istype(W, /obj/item/weapon/plantbgone)) ) + if (!( istype(W, /obj/item/weapon/grab) ) && !(istype(W, /obj/item/weapon/plastique)) &&!(istype(W, /obj/item/weapon/cleaner)) &&!(istype(W, /obj/item/weapon/chemsprayer)) &&!(istype(W, /obj/item/weapon/pepperspray)) && !(istype(W, /obj/item/weapon/plantbgone)) && !(istype(W, /obj/item/weapon/reagent_containers/glass/rag)) ) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O << "\red [src] has been hit by [user] with [W]" diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 510d2c76be4..6c0fd9a6bcc 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -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:
"} //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:
"} /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]'', say [src.phrase] 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 diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 527b13f4caf..ecd091dfa5b 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -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( \ diff --git a/code/modules/DetectiveWork/detective_work.dm b/code/modules/DetectiveWork/detective_work.dm index 807fd6296ef..dec64c2fb59 100644 --- a/code/modules/DetectiveWork/detective_work.dm +++ b/code/modules/DetectiveWork/detective_work.dm @@ -742,11 +742,32 @@ proc/blood_incompatible(donor,receiver) return 0 /obj/item/weapon/rag + New() // So I don't have to grab maplock + spawn(1) + new/obj/item/weapon/reagent_containers/glass/rag(loc) + del src + +/obj/item/weapon/reagent_containers/glass/rag name = "damp rag" - desc = "For cleaning up messes, I suppose." + desc = "For cleaning up messes, you suppose." w_class = 1 icon = 'toy.dmi' icon_state = "rag" + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list(5) + volume = 5 + can_be_placed_into = null + + attack(atom/target as obj|turf|area, mob/user as mob , flag) + if(ismob(target) && target.reagents && reagents.total_volume) + user << "\blue You smother [target] with \the [src]." + for(var/mob/O in viewers(world.view, user)) + O.show_message(text("\red [] has been smothered with \the [] by []!", target, src, user), 1) + src.reagents.reaction(target, TOUCH) + spawn(5) src.reagents.clear_reagents() + return + else + ..() afterattack(atom/A as obj|turf|area, mob/user as mob) if(istype(A)) @@ -754,4 +775,11 @@ proc/blood_incompatible(donor,receiver) if(do_after(user,30)) user.visible_message("[user] finishes wiping off the [A]!") A.clean_blood() - return \ No newline at end of file + return + + examine() + if (!( usr )) + return + usr << "That's \a [src]." + usr << desc + return diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 6adf1ab3ec0..05cd0f79145 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ