diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index b584cdb92ab..aa80b0fc63e 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -659,16 +659,13 @@
if("remove")
for(var/obj/item/weapon/implant/mindshield/I in H.contents)
if(I && I.implanted)
- I.removed(H)
qdel(I)
to_chat(H, "Your mindshield implant has been deactivated.")
log_admin("[key_name(usr)] has deactivated [key_name(current)]'s mindshield implant")
message_admins("[key_name_admin(usr)] has deactivated [key_name_admin(current)]'s mindshield implant")
if("add")
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
- L.imp_in = H
- L.implanted = 1
- H.sec_hud_set_implants()
+ L.implant(H)
log_admin("[key_name(usr)] has given [key_name(current)] a mindshield implant")
message_admins("[key_name_admin(usr)] has given [key_name_admin(current)] a mindshield implant")
diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm
index 9bc700ebabe..5c11c42930a 100644
--- a/code/datums/outfits/outfit_admin.dm
+++ b/code/datums/outfits/outfit_admin.dm
@@ -219,9 +219,7 @@
apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Nanotrasen Navy Officer")
var/obj/item/weapon/implant/L = new /obj/item/weapon/implant/mindshield(H)
- L.imp_in = H
- L.implanted = 1
- H.sec_hud_set_implants()
+ L.implant(H)
/datum/outfit/admin/nt_special_ops_officer
@@ -330,9 +328,7 @@
apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Captain"), "Nanotrasen Navy Captain")
var/obj/item/weapon/implant/L = new /obj/item/weapon/implant/mindshield(H)
- L.imp_in = H
- L.implanted = 1
- H.sec_hud_set_implants()
+ L.implant(H)
/datum/outfit/admin/nt_diplomat
name = "NT Diplomat"
@@ -756,9 +752,7 @@
apply_to_card(I, H, get_centcom_access("Emergency Response Team Member"), "Emergency Response Team Member")
var/obj/item/weapon/implant/L = new /obj/item/weapon/implant/mindshield(H)
- L.imp_in = H
- L.implanted = 1
- H.sec_hud_set_implants()
+ L.implant(H)
/datum/outfit/admin/chrono
name = "Chrono Legionnaire"
diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index 1868222718f..70ebd23912f 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -126,8 +126,7 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
//Now apply cortical stack.
var/obj/item/weapon/implant/cortical/I = new(vox)
- I.imp_in = vox
- I.implanted = 1
+ I.implant(vox)
cortical_stacks += I
vox.equip_vox_raider()
diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm
index 4d0b4d51dd3..ec9b8776f80 100644
--- a/code/game/jobs/job/job.dm
+++ b/code/game/jobs/job/job.dm
@@ -198,9 +198,7 @@
if(implants)
for(var/implant_type in implants)
var/obj/item/weapon/implant/I = new implant_type(H)
- I.imp_in = H
- I.implanted = 1
- H.sec_hud_set_implants()
+ I.implant(H)
if(gear_leftovers.len)
for(var/datum/gear/G in gear_leftovers)
@@ -228,7 +226,7 @@
var/datum/job/J = job_master.GetJobType(jobtype)
if(!J)
J = job_master.GetJob(H.job)
-
+
var/alt_title
if(H.mind)
alt_title = H.mind.role_alt_title
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index 0d47420edc9..ee307dd84d5 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -413,13 +413,10 @@
R.languages=subject.languages
//Add an implant if needed
var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject)
- if(isnull(imp))
+ if(!imp)
imp = new /obj/item/weapon/implant/health(subject)
- imp.implanted = subject
- R.implant = "\ref[imp]"
- //Update it if needed
- else
- R.implant = "\ref[imp]"
+ imp.implant(subject)
+ R.implant = "\ref[imp]"
if(!isnull(subject.mind)) //Save that mind so traitors can continue traitoring after cloning.
R.mind = "\ref[subject.mind]"
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index 66b4b228b64..8109e8e8b86 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -48,7 +48,7 @@
for(var/X in actions)
var/datum/action/A = X
A.Grant(source)
- if(istype(source, /mob/living/carbon/human))
+ if(ishuman(source))
var/mob/living/carbon/human/H = source
H.sec_hud_set_implants()
@@ -66,7 +66,7 @@
var/datum/action/A = X
A.Grant(source)
- if(istype(source, /mob/living/carbon/human))
+ if(ishuman(source))
var/mob/living/carbon/human/H = source
H.sec_hud_set_implants()
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index 496c998b623..04f8b29da0c 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -485,8 +485,7 @@ client/proc/one_click_antag()
//Now apply cortical stack.
var/obj/item/weapon/implant/cortical/I = new(new_vox)
- I.imp_in = new_vox
- I.implanted = 1
+ I.implant(new_vox)
cortical_stacks += I
new_vox.equip_vox_raider()
diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm
index d90c8a50a84..83e8d617210 100644
--- a/code/modules/admin/verbs/striketeam.dm
+++ b/code/modules/admin/verbs/striketeam.dm
@@ -158,9 +158,7 @@ var/global/sent_strike_team = 0
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(src)
- L.imp_in = src
- L.implanted = 1
- sec_hud_set_implants()
+ L.implant(src)
var/obj/item/weapon/card/id/W = new(src)
W.name = "[real_name]'s ID Card"
diff --git a/code/modules/mob/living/carbon/superheroes.dm b/code/modules/mob/living/carbon/superheroes.dm
index ce9fe15ae6e..e5a9d73e402 100644
--- a/code/modules/mob/living/carbon/superheroes.dm
+++ b/code/modules/mob/living/carbon/superheroes.dm
@@ -97,7 +97,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/head/griffin/(H), slot_head)
var/obj/item/weapon/implant/freedom/L = new/obj/item/weapon/implant/freedom(H)
- L.implant(H, H)
+ L.implant(H)
/datum/superheroes/lightnian
diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm
index b952ddd0f79..498976c4635 100644
--- a/code/modules/surgery/implant.dm
+++ b/code/modules/surgery/implant.dm
@@ -291,7 +291,6 @@
user.visible_message("[user] places [I] into [case]!", "You place [I] into [case].")
else
qdel(I)
- //target.sec_hud_set_implants()
return 1
else
user.visible_message(" [user] could not find anything inside [target]'s [affected.name], and pulls \the [tool] out.", \