diff --git a/code/game/objects/items/weapons/implants/implant_traitor.dm b/code/game/objects/items/weapons/implants/implant_traitor.dm
index ba89e970de8..fdb30eaae8e 100644
--- a/code/game/objects/items/weapons/implants/implant_traitor.dm
+++ b/code/game/objects/items/weapons/implants/implant_traitor.dm
@@ -17,62 +17,64 @@
return dat
/obj/item/weapon/implant/traitor/implant(mob/M, mob/user)
- var/mob/living/carbon/human/H = M
- if(ismindslave(H))
- H.visible_message("[H] seems to resist the implant!", "You feel a strange sensation in your head that quickly dissipates.")
- qdel(src)
- return -1
- if(..())
- var/list/implanters
- var/ref = "\ref[user.mind]"
- if(!ishuman(M))
- return 0
- if(!M.mind)
- return 0
- if(M == user)
- user << "Making yourself loyal to yourself was a great idea! Perhaps even the best idea ever! Actually, you just feel like an idiot."
- if(isliving(user))
- var/mob/living/L = user
- L.adjustBrainLoss(20)
- removed(M)
- qdel(src)
- return -1
- if(isloyal(H))
+ if(!activated) //So you can't just keep taking it out and putting it back into other people.
+ var/mob/living/carbon/human/H = M
+ if(ismindslave(H))
H.visible_message("[H] seems to resist the implant!", "You feel a strange sensation in your head that quickly dissipates.")
- removed(M)
qdel(src)
return -1
- H.implanting = 1
- H << "You feel completely loyal to [user.name]."
- if(!(user.mind in ticker.mode:implanter))
- ticker.mode:implanter[ref] = list()
- implanters = ticker.mode:implanter[ref]
- implanters.Add(H.mind)
- ticker.mode.implanted.Add(H.mind)
- ticker.mode.implanted[H.mind] = user.mind
- //ticker.mode:implanter[user.mind] += H.mind
- ticker.mode:implanter[ref] = implanters
- ticker.mode.traitors += H.mind
- H.mind.special_role = "traitor"
- H << "You're now completely loyal to [user.name]! You now must lay down your life to protect them and assist in their goals at any cost."
- var/datum/objective/protect/p = new
- p.owner = H.mind
- p.target = user:mind
- p.explanation_text = "Obey every order from and protect [user:real_name], the [user:mind:assigned_role=="MODE" ? (user:mind:special_role) : (user:mind:assigned_role)]."
- H.mind.objectives += p
- for(var/datum/objective/objective in H.mind.objectives)
- H << "Objective #1: [objective.explanation_text]"
+ if(..())
+ var/list/implanters
+ var/ref = "\ref[user.mind]"
+ if(!ishuman(M))
+ return 0
+ if(!M.mind)
+ return 0
+ if(M == user)
+ user << "Making yourself loyal to yourself was a great idea! Perhaps even the best idea ever! Actually, you just feel like an idiot."
+ if(isliving(user))
+ var/mob/living/L = user
+ L.adjustBrainLoss(20)
+ removed(M)
+ qdel(src)
+ return -1
+ if(isloyal(H))
+ H.visible_message("[H] seems to resist the implant!", "You feel a strange sensation in your head that quickly dissipates.")
+ removed(M)
+ qdel(src)
+ return -1
+ H.implanting = 1
+ H << "You feel completely loyal to [user.name]."
+ if(!(user.mind in ticker.mode:implanter))
+ ticker.mode:implanter[ref] = list()
+ implanters = ticker.mode:implanter[ref]
+ implanters.Add(H.mind)
+ ticker.mode.implanted.Add(H.mind)
+ ticker.mode.implanted[H.mind] = user.mind
+ //ticker.mode:implanter[user.mind] += H.mind
+ ticker.mode:implanter[ref] = implanters
+ ticker.mode.traitors += H.mind
+ H.mind.special_role = "traitor"
+ H << "You're now completely loyal to [user.name]! You now must lay down your life to protect them and assist in their goals at any cost."
+ var/datum/objective/protect/p = new
+ p.owner = H.mind
+ p.target = user:mind
+ p.explanation_text = "Obey every order from and protect [user:real_name], the [user:mind:assigned_role=="MODE" ? (user:mind:special_role) : (user:mind:assigned_role)]."
+ H.mind.objectives += p
+ for(var/datum/objective/objective in H.mind.objectives)
+ H << "Objective #1: [objective.explanation_text]"
- ticker.mode.update_traitor_icons_added(user.mind)
- ticker.mode.update_traitor_icons_added(H.mind)//handles datahuds/observerhuds
+ ticker.mode.update_traitor_icons_added(user.mind)
+ ticker.mode.update_traitor_icons_added(H.mind)//handles datahuds/observerhuds
- if(user.mind.som)//do not add if not a traitor..and you just picked up an implanter in the hall...
- var/datum/mindslaves/slaved = user.mind.som
- H.mind.som = slaved
- slaved.serv += H
- slaved.add_serv_hud(user.mind,"syndicate")//handles master servent icons
- slaved.add_serv_hud(H.mind,"mindslave")
+ if(user.mind.som)//do not add if not a traitor..and you just picked up an implanter in the hall...
+ var/datum/mindslaves/slaved = user.mind.som
+ H.mind.som = slaved
+ slaved.serv += H
+ slaved.add_serv_hud(user.mind,"syndicate")//handles master servent icons
+ slaved.add_serv_hud(H.mind,"mindslave")
- log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].")
- return 1
- return 0
\ No newline at end of file
+ log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].")
+ activated = 1
+ return 1
+ return 0
\ No newline at end of file