From b25046d0d7f0d8ae8074d418f786669a8efa8e18 Mon Sep 17 00:00:00 2001 From: Luc <89928798+lewcc@users.noreply.github.com> Date: Sat, 15 Oct 2022 14:50:48 -0400 Subject: [PATCH] [GBP: NO UPDATE] Fixes robotic surgery issues (#19253) * Fixes robotic surgery issues * Update code/datums/components/surgery_initiator.dm Co-authored-by: Farie82 Co-authored-by: Farie82 --- code/datums/components/surgery_initiator.dm | 5 ++++- code/modules/surgery/organs/organ_external.dm | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/datums/components/surgery_initiator.dm b/code/datums/components/surgery_initiator.dm index 0ff4eb2fc58..1ab902952c4 100644 --- a/code/datums/components/surgery_initiator.dm +++ b/code/datums/components/surgery_initiator.dm @@ -24,6 +24,9 @@ /// Also, note that for anything sharp, SURGERY_INITIATOR_ORGANIC should be set as well. var/valid_starting_types = SURGERY_INITIATOR_ORGANIC + // Replace any other surgery initiator + dupe_type = /datum/component/surgery_initiator + /** * Create a new surgery initiating component. * @@ -137,7 +140,7 @@ var/list/available_surgeries = list() for(var/datum/surgery/surgery in GLOB.surgeries_list) - if(surgery.abstract) // no choosing abstract surgeries + if(surgery.abstract && !istype(surgery, forced_surgery)) // no choosing abstract surgeries, though they can be forced continue if(!target.can_run_surgery(surgery, user)) continue diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index d87620b1626..24a08e5edd2 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -133,7 +133,7 @@ if(!is_robotic()) application_surgery = /datum/surgery/reattach else - application_surgery = /datum/surgery/attach_robotic_limb + application_surgery = /datum/surgery/reattach_synth AddComponent(/datum/component/surgery_initiator/limb, forced_surgery = application_surgery) @@ -699,6 +699,9 @@ Note that amputating the affected organ does in fact remove the infection from t // This is so surgery isn't kaput, let's see how this does encased = null + // override the existing initiator + AddComponent(/datum/component/surgery_initiator/limb, forced_surgery = /datum/surgery/reattach_synth) + if(company && istext(company)) set_company(company)