From 6333e7ab72efded67ab594e12fa6bc19f60a601b Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 22 Oct 2019 21:13:25 -0400 Subject: [PATCH] Ports Polaris #6492 Fixes a divide by zero issue with brain damage and pulse. --- code/modules/mob/living/carbon/human/life.dm | 2 +- code/modules/organs/internal/brain.dm | 7 +------ code/modules/organs/internal/lungs.dm | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index b89d0d1df3b..5c0cab75f79 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1641,7 +1641,7 @@ if(R.volume >= R.overdose) temp = PULSE_NONE - return round(temp * brain_modifier) + return max(0, round(temp * brain_modifier)) /mob/living/carbon/human/proc/handle_heartbeat() if(pulse == PULSE_NONE) diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm index 71e81526778..f177f6c3339 100644 --- a/code/modules/organs/internal/brain.dm +++ b/code/modules/organs/internal/brain.dm @@ -131,12 +131,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) ..() /obj/item/organ/internal/brain/proc/get_control_efficiency() - . = 0 - - if(!is_broken()) - . = 1 - (round(damage / max_damage * 10) / 10) - - return . + . = max(0, 1 - (round(damage / max_damage * 10) / 10)) /obj/item/organ/internal/brain/pariah_brain name = "brain remnants" diff --git a/code/modules/organs/internal/lungs.dm b/code/modules/organs/internal/lungs.dm index e515eec971f..07ef683e061 100644 --- a/code/modules/organs/internal/lungs.dm +++ b/code/modules/organs/internal/lungs.dm @@ -24,9 +24,9 @@ if(owner.internal_organs_by_name[O_BRAIN]) // As the brain starts having Trouble, the lungs start malfunctioning. var/obj/item/organ/internal/brain/Brain = owner.internal_organs_by_name[O_BRAIN] if(Brain.get_control_efficiency() <= 0.8) - if(prob(4 / Brain.get_control_efficiency())) + if(prob(4 / max(0.1,Brain.get_control_efficiency()))) spawn owner.emote("me", 1, "gasps for air!") - owner.AdjustLosebreath(round(3 / Brain.get_control_efficiency())) + owner.AdjustLosebreath(round(3 / max(0.1,Brain.get_control_efficiency()))) /obj/item/organ/internal/lungs/proc/rupture() var/obj/item/organ/external/parent = owner.get_organ(parent_organ)