From ab2268f66a2e3b1a0ffcc8a2a66c69218006c06e Mon Sep 17 00:00:00 2001 From: warior4356 Date: Sun, 25 Jul 2021 02:14:44 -0700 Subject: [PATCH] Fixed Golems escaping servitude with new bodies (#16340) * Fixed Golems escaping servitude * Keeps free golems free --- .../ghost_role_spawners/golems.dm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm index 2c7be0f1329..53860cdb627 100644 --- a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm +++ b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm @@ -124,6 +124,13 @@ if(.) return if(isgolem(user) && can_transfer) + var/datum/species/golem/g = user.dna.species + if(g.owner) + has_owner = TRUE + owner = g.owner + else + has_owner = FALSE + owner = null var/transfer_choice = alert("Transfer your soul to [src]? (Warning, your old body will die!)",,"Yes","No") if(transfer_choice != "Yes") return @@ -144,9 +151,17 @@ return if(QDELETED(src) || uses <= 0 || user.stat >= 1 || QDELETED(I)) return - if(istype(src, /obj/effect/mob_spawn/human/golem/servant)) + if(istype(src, /obj/effect/mob_spawn/human/golem/servant) && !isgolem(user)) has_owner = FALSE - flavour_text = null + if(isgolem(user) && can_transfer) + var/datum/species/golem/g = user.dna.species + if(g.owner) + has_owner = TRUE + owner = g.owner + else + has_owner = FALSE + owner = null + flavour_text = null user.visible_message("As [user] applies the potion on the golem shell, a faint light leaves them, moving to [src] and animating it!", "You apply the potion to [src], feeling your mind leave your body!") message_admins("[key_name(user)] used [I] to transfer their mind into [src]")