From ef3162121a31041625505dba2c9970b7997afdca Mon Sep 17 00:00:00 2001 From: Faron <171642577+FaronCD@users.noreply.github.com> Date: Tue, 25 Jun 2024 05:34:22 -0500 Subject: [PATCH] Fixes clones being stuck mindslaved (#25981) * Update clonepod.dm Signed-off-by: Faron <171642577+FaronCD@users.noreply.github.com> * Update clonepod.dm Signed-off-by: Faron <171642577+FaronCD@users.noreply.github.com> * Update bio_chip_traitor.dm Signed-off-by: Faron <171642577+FaronCD@users.noreply.github.com> * Update datum_mindslave.dm Signed-off-by: Faron <171642577+FaronCD@users.noreply.github.com> * Update datum_mindslave.dm Signed-off-by: Faron <171642577+FaronCD@users.noreply.github.com> * Create misc_mindslave.dm Signed-off-by: Faron <171642577+FaronCD@users.noreply.github.com> * Update paradise.dme Signed-off-by: Faron <171642577+FaronCD@users.noreply.github.com> --------- Signed-off-by: Faron <171642577+FaronCD@users.noreply.github.com> --- code/game/objects/items/weapons/bio_chips/bio_chip_traitor.dm | 4 ++-- code/modules/antagonists/traitor/misc_mindslave.dm | 4 ++++ paradise.dme | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 code/modules/antagonists/traitor/misc_mindslave.dm diff --git a/code/game/objects/items/weapons/bio_chips/bio_chip_traitor.dm b/code/game/objects/items/weapons/bio_chips/bio_chip_traitor.dm index 656e82f74c2..649ada0a5f6 100644 --- a/code/game/objects/items/weapons/bio_chips/bio_chip_traitor.dm +++ b/code/game/objects/items/weapons/bio_chips/bio_chip_traitor.dm @@ -35,7 +35,7 @@ return FALSE // Create a new mindslave datum for the target with the user as their master. - mindslave_target.mind.add_antag_datum(new /datum/antagonist/mindslave(user.mind)) + mindslave_target.mind.add_antag_datum(new /datum/antagonist/mindslave/implant(user.mind)) mindslave_UID = mindslave_target.mind.UID() log_admin("[key_name_admin(user)] has mind-slaved [key_name_admin(mindslave_target)].") return ..() @@ -43,7 +43,7 @@ /obj/item/bio_chip/traitor/removed(mob/target) . = ..() var/datum/mind/M = locateUID(mindslave_UID) - M.remove_antag_datum(/datum/antagonist/mindslave) + M.remove_antag_datum(/datum/antagonist/mindslave/implant) /obj/item/bio_chip_implanter/traitor name = "bio-chip implanter (Mindslave)" diff --git a/code/modules/antagonists/traitor/misc_mindslave.dm b/code/modules/antagonists/traitor/misc_mindslave.dm new file mode 100644 index 00000000000..5fcaae1a0be --- /dev/null +++ b/code/modules/antagonists/traitor/misc_mindslave.dm @@ -0,0 +1,4 @@ +//Mindslave given by an implant, if the mob is transfered they lose the implant and cant have mindslave removed otherwise +/datum/antagonist/mindslave/implant/on_body_transfer(mob/living/old_body, mob/living/new_body) + . = ..() + owner.remove_antag_datum(/datum/antagonist/mindslave/implant) diff --git a/paradise.dme b/paradise.dme index 748c7a97a49..7dc54d50058 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1468,6 +1468,7 @@ #include "code\modules\antagonists\survivalist\survivalist.dm" #include "code\modules\antagonists\traitor\datum_mindslave.dm" #include "code\modules\antagonists\traitor\datum_traitor.dm" +#include "code\modules\antagonists\traitor\misc_mindslave.dm" #include "code\modules\antagonists\traitor\contractor\datums\contractor_hub.dm" #include "code\modules\antagonists\traitor\contractor\datums\contractor_hub_ui.dm" #include "code\modules\antagonists\traitor\contractor\datums\objective_contract.dm"