diff --git a/code/game/objects/items/weapons/dnascrambler.dm b/code/game/objects/items/weapons/dnascrambler.dm index 3b65e921e60..07277512f97 100644 --- a/code/game/objects/items/weapons/dnascrambler.dm +++ b/code/game/objects/items/weapons/dnascrambler.dm @@ -4,44 +4,34 @@ icon = 'icons/obj/syringe.dmi' item_state = "syringe_0" icon_state = "b10" - var/used = null - update_icon() - if(used) - icon_state = "b0" +/obj/item/weapon/dnascrambler/attack(var/mob/living/carbon/human/M, var/mob/living/carbon/human/user) + if(!istype(M) || !istype(user)) + return + + if(M == user) + user.visible_message("\The [user] injects \himself with [src]!") + src.injected(user,user) + else + user.visible_message("\The [user] is trying to inject \the [M] with [src]!") + if (do_mob(user,M,30)) + user.visible_message("\The [user] injects \the [M] with [src].") + src.injected(M, user) else - icon_state = "b10" + to_chat(user, "You fail to inject \the [M].") - attack(mob/M as mob, mob/user as mob) - if(!M || !user) - return +/obj/item/weapon/dnascrambler/proc/injected(var/mob/living/carbon/target, var/mob/living/carbon/user) + target.generate_name() - if(!ishuman(M) || !ishuman(user)) - return + scramble(1, target, 100) - if(src.used) - return + log_attack("[key_name(user)] injected [key_name(target)] with \the [src]") + log_game("[key_name_admin(user)] injected [key_name_admin(target)] with \the [src]") - if(M == user) - user.visible_message("[user.name] injects \himself with [src]!") - src.injected(user,user) - else - user.visible_message("[user.name] is trying to inject [M.name] with [src]!") - if (do_mob(user,M,30)) - user.visible_message("[user.name] injects [M.name] with [src].") - src.injected(M, user) - else - to_chat(user, "You failed to inject [M.name].") + user.drop_item(src, force_drop = 1) + //We don't want to leave an obvious "used dna scrambler" behind, let's just create a harmless syringe. + var/obj/item/weapon/reagent_containers/syringe/spent = new(get_turf(user)) + transfer_fingerprints(src, spent) + user.put_in_hands(spent) - proc/injected(var/mob/living/carbon/target, var/mob/living/carbon/user) - target.generate_name() - target.real_name = target.name - - scramble(1, target, 100) - - log_attack("[key_name(user)] injected [key_name(target)] with the [name]") - log_game("[key_name_admin(user)] injected [key_name_admin(target)] with the [name]") - - src.used = 1 - src.update_icon() - src.name = "used " + src.name \ No newline at end of file + qdel(src)