diff --git a/code/game/objects/devices/PDA/uplink.dm b/code/game/objects/devices/PDA/uplink.dm index 7186c52d2e8..bca3ca79c15 100644 --- a/code/game/objects/devices/PDA/uplink.dm +++ b/code/game/objects/devices/PDA/uplink.dm @@ -140,11 +140,13 @@ uses -= 3 var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(get_turf(hostpda)) O.imp = new /obj/item/weapon/implant/freedom(O) + O.update() if("imp_uplink") if (uses >= 10) uses -= 10 var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(get_turf(hostpda)) O.imp = new /obj/item/weapon/implant/uplink(O) + O.update() if("imp_exp") if (src.uses >= 6) src.uses -= 6 diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index 05f8236005c..174e5fe007f 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -29,17 +29,16 @@ O.show_message(text("\red [] is trying to implant [] with [src.name]!", user, M), 1) else O.show_message("\red [user] is trying to inject themselves with [src.name]!", 1) - if(!do_mob(user, M,60)) return + if(!do_mob(user, M,60)) + return if(istype(M, /mob/living/carbon/human)) var/picked = 0 var/mob/living/carbon/human/T = M - var/list/datum/organ/external/E = T.organs - while(picked == 0 && E.len > 0) - var/datum/organ/external/O = pick(E) - E -= O + for(var/datum/organ/external/E in T) if(!E.implant) - O.implant = src.imp + E.implant = src.imp picked = 1 + break if(picked == 0) for (var/mob/O in viewers(M, null)) O.show_message(text("[user.name] can't find anywhere to implant [M.name]"), 1)