diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index a7c8f69e32d..54a774b176c 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -367,6 +367,17 @@ the implant may become unstable and either pre-maturely inject the subject or si processing_objects.Add(src) return 1 +/obj/item/weapon/implant/loyalty/ipc + name = "loyalty chip" + desc = "A device that sets directives programmed for loyalty to NanoTrasen on the synthetic subject. Will not work on organics." + +/obj/item/weapon/implant/loyalty/ipc/implanted(mob/M) + + if (!isipc(M)) + return + + ..() + /obj/item/weapon/implant/adrenalin name = "adrenalin" desc = "Removes all stuns and knockdowns." diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index e644681b0f3..ebd8b3b2bc8 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -210,7 +210,11 @@ /mob/living/carbon/human/proc/implant_loyalty(mob/living/carbon/human/M, override = FALSE) // Won't override by default. if(!config.use_loyalty_implants && !override) return // Nuh-uh. - var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M) + var/obj/item/weapon/implant/loyalty/L + if(isipc(M)) + L = new/obj/item/weapon/implant/loyalty/ipc(M) + else + L = new/obj/item/weapon/implant/loyalty(M) L.imp_in = M L.implanted = 1 var/obj/item/organ/external/affected = M.organs_by_name["head"]