From 31a357b48d8f6a94c81538146df41af71e57748b Mon Sep 17 00:00:00 2001 From: XFirebirdX <142694283+XFirebirdX@users.noreply.github.com> Date: Sat, 4 Oct 2025 02:33:19 +0200 Subject: [PATCH] Fixes some golem oversights. (#30605) --- code/modules/surgery/organs/brain.dm | 1 + code/modules/surgery/organs/organ.dm | 3 ++- code/modules/surgery/organs_internal.dm | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/code/modules/surgery/organs/brain.dm b/code/modules/surgery/organs/brain.dm index 9880d58bbba..daaffbc74a2 100644 --- a/code/modules/surgery/organs/brain.dm +++ b/code/modules/surgery/organs/brain.dm @@ -208,6 +208,7 @@ desc = "A tightly furled roll of paper, covered with indecipherable runes." icon = 'icons/obj/wizard.dmi' icon_state = "scroll" + requires_golem_person = TRUE /obj/item/organ/internal/brain/cluwne diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index 4d2b13883ba..d3c8bf9ae31 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -32,7 +32,8 @@ var/requires_robotic_bodypart = FALSE /// When this variable is true, it can only be installed on the machine person species. var/requires_machine_person = FALSE - + /// When this variable is true, it can only be inserted on the golem species. + var/requires_golem_person = FALSE ///Should this organ be destroyed on removal? var/destroy_on_removal = FALSE diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index c6184be772b..f703d85ab59 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -389,6 +389,10 @@ to_chat(user, "[I] is an organ that requires an IPC interface! [target]'s [parse_zone(target_zone)] does not have one.") return SURGERY_BEGINSTEP_SKIP + if(I.requires_golem_person && !isgolem(target)) + to_chat(user, "[I] requires a Golem body! [I] won't fit into [target]'s body.") + return SURGERY_BEGINSTEP_SKIP + if(target_zone != I.parent_organ || target.get_organ_slot(I.slot)) to_chat(user, "There is no room for [I] in [target]'s [parse_zone(target_zone)]!") return SURGERY_BEGINSTEP_SKIP @@ -428,6 +432,9 @@ if(I.requires_machine_person && !ismachineperson(target)) to_chat(user, "[I] requires an IPC interface!") return SURGERY_STEP_INCOMPLETE + if(I.requires_golem_person && !isgolem(target)) + to_chat(user, "[I] requires a Golem body! [I] won't fit into [target]'s body.") + return SURGERY_STEP_INCOMPLETE if(!user.drop_item()) to_chat(user, "[I] is stuck to your hand, you can't put it in [target]!") return SURGERY_STEP_INCOMPLETE