From af1e547e0142123657448e27f2d663246392b70d Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Thu, 1 Jan 2026 07:38:19 -0700 Subject: [PATCH] [MIRROR] Fixes synths sometimes having permanant disfigurement and an inconsistancy with self repair (#12193) Co-authored-by: Reo Lozzot <84661000+ReoDaProtovali@users.noreply.github.com> Co-authored-by: Cameron Lennox --- code/modules/organs/organ_external.dm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 71787fbc28..1a88992464 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -516,14 +516,15 @@ if("omni") damage_amount = max(brute_dam,burn_dam) else return 0 - if(!damage_amount) + if(!damage_amount && !disfigured) to_chat(user, span_notice("Nothing to fix!")) return 0 if(brute_dam + burn_dam >= min_broken_damage) //VOREStation Edit - Makes robotic limb damage scalable to_chat(user, span_danger("The damage is far too severe to patch over externally.")) return 0 - + /* // Leaving this here as a reference to how it used to work, but as of now, this just makes self repair for synths extra tedious. + // Normal meds like brute kits and such dont have this restriction, so this shouldn't have it either. if(user == src.owner) var/grasp if(user.l_hand == tool && (src.body_part & (ARM_LEFT|HAND_LEFT))) @@ -534,7 +535,7 @@ if(grasp) to_chat(user, span_warning("You can't reach your [src.name] while holding [tool] in your [owner.get_bodypart_name(grasp)].")) return 0 - + */ user.setClickCooldown(user.get_attack_speed(tool)) if(!do_after(user, 1 SECOND, src)) to_chat(user, span_warning("You must stand still to do that.")) @@ -546,7 +547,10 @@ if("omni")src.heal_damage(repair_amount, repair_amount, 0, 1) if(damage_desc) - var/fix_verb = (damage_amount > repair_amount) ? "patches" : "finishes patching" + var/fix_verb = "patches" + if(damage_amount > repair_amount) + fix_verb = "finishes patching" + disfigured = FALSE //Prevents some edgecases where you can repair despite hitting disfigurement thresholds, they're fully healed at this point anyways. if(user == src.owner) user.visible_message(span_infoplain(span_bold("\The [user]") + " [fix_verb] [damage_desc] on [user.p_their()] [src.name] with [tool].")) else