From eead0e6282615cc9469e19f9746ced788f6587c9 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Thu, 9 Dec 2021 18:35:26 +0100 Subject: [PATCH 1/2] slow --- code/__DEFINES/DNA.dm | 2 +- code/modules/surgery/organs/organ_internal.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index cf98755a36..a5b5cf6dc0 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -182,7 +182,7 @@ ////organ defines #define STANDARD_ORGAN_THRESHOLD 100 -#define STANDARD_ORGAN_HEALING (1/(15 MINUTES / (2 SECONDS))) +#define STANDARD_ORGAN_HEALING (1/(15 MINUTES / (2 SECONDS))) / 3 //Base organ healing can be amped by a factor of up to x5 via satiety. This assumes it to be somewhat in the upper center of positive satiety as base. #define STANDARD_ORGAN_DECAY (1/(15 MINUTES / (2 SECONDS))) //designed to fail organs when left to decay for ~15 minutes. 2 SECOND is SSmobs tickrate. diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index de8e3d623d..a3a98dfe60 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -156,12 +156,12 @@ return FALSE if(organ_flags & ORGAN_SYNTHETIC_EMP) //Synthetic organ has been emped, is now failing. applyOrganDamage(maxHealth * decay_factor) - return + return FALSE if(!is_cold() && damage) ///Damage decrements by a percent of its maxhealth var/healing_amount = -(maxHealth * healing_factor) ///Damage decrements again by a percent of its maxhealth, up to a total of 4 extra times depending on the owner's satiety - healing_amount -= owner.satiety > 0 ? 4 * healing_factor * owner.satiety / MAX_SATIETY : 0 + healing_amount -= owner.satiety > 0 ? 4 * (maxHealth * healing_factor) * (owner.satiety / MAX_SATIETY) : 0 if(healing_amount) applyOrganDamage(healing_amount) //to FERMI_TWEAK return TRUE From 1e375d86a2a7941738ce94af6030aebdf3f758ee Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Thu, 9 Dec 2021 19:09:10 +0100 Subject: [PATCH 2/2] cyber organ oversight & synth satiety --- code/modules/surgery/organs/organ_internal.dm | 2 ++ code/modules/surgery/organs/stomach.dm | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index a3a98dfe60..734603fbc7 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -157,6 +157,8 @@ if(organ_flags & ORGAN_SYNTHETIC_EMP) //Synthetic organ has been emped, is now failing. applyOrganDamage(maxHealth * decay_factor) return FALSE + if(organ_flags & ORGAN_SYNTHETIC) + return TRUE if(!is_cold() && damage) ///Damage decrements by a percent of its maxhealth var/healing_amount = -(maxHealth * healing_factor) diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index f436b31513..89549d2d42 100644 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -131,6 +131,13 @@ name = "ipc cell" icon_state = "stomach-ipc" +/obj/item/organ/stomach/ipc/on_life() + . = ..() + if(!.) + return + if(HAS_TRAIT(owner, TRAIT_ROBOTIC_ORGANISM) && owner.nutrition >= NUTRITION_LEVEL_FED) + owner.satiety += 5 //We don't need to cap the value as it's already automatically capped during nutrition level handling. Also effectively only +4 as you lose 1 per life tick. 300 seconds of sufficient charge to reach full satiety. + /obj/item/organ/stomach/ipc/emp_act(severity) . = ..() if(!owner || . & EMP_PROTECT_SELF)