Merge pull request #15425 from DeltaFire15/slower-organ-healing
Nerfs* passive organ healing, plus some minor stuff
This commit is contained in:
@@ -182,7 +182,7 @@
|
|||||||
|
|
||||||
////organ defines
|
////organ defines
|
||||||
#define STANDARD_ORGAN_THRESHOLD 100
|
#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.
|
#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.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -156,12 +156,14 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
if(organ_flags & ORGAN_SYNTHETIC_EMP) //Synthetic organ has been emped, is now failing.
|
if(organ_flags & ORGAN_SYNTHETIC_EMP) //Synthetic organ has been emped, is now failing.
|
||||||
applyOrganDamage(maxHealth * decay_factor)
|
applyOrganDamage(maxHealth * decay_factor)
|
||||||
return
|
return FALSE
|
||||||
|
if(organ_flags & ORGAN_SYNTHETIC)
|
||||||
|
return TRUE
|
||||||
if(!is_cold() && damage)
|
if(!is_cold() && damage)
|
||||||
///Damage decrements by a percent of its maxhealth
|
///Damage decrements by a percent of its maxhealth
|
||||||
var/healing_amount = -(maxHealth * healing_factor)
|
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
|
///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)
|
if(healing_amount)
|
||||||
applyOrganDamage(healing_amount) //to FERMI_TWEAK
|
applyOrganDamage(healing_amount) //to FERMI_TWEAK
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|||||||
@@ -131,6 +131,13 @@
|
|||||||
name = "ipc cell"
|
name = "ipc cell"
|
||||||
icon_state = "stomach-ipc"
|
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)
|
/obj/item/organ/stomach/ipc/emp_act(severity)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!owner || . & EMP_PROTECT_SELF)
|
if(!owner || . & EMP_PROTECT_SELF)
|
||||||
|
|||||||
Reference in New Issue
Block a user