From 0f59d4d353cd15053b09017984df3daccc914667 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 24 May 2014 00:22:32 -0400 Subject: [PATCH] Adds cap on SM damage rate --- code/modules/supermatter/supermatter.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 92860e2f57d..8cd0291dade 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -138,7 +138,12 @@ damage += max((power-1600)/10, 0) //exciting the supermatter in a vacuum means the internal energy is mostly locked inside. else damage_archived = damage - damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 ) + + //ensure that damage doesn't increase too quickly due to super high temperatures resulting from no coolant, for example. We dont want the SM exploding before anyone can react. + //want the cap to scale linearly with power. Let's aim for a cap of 5 at power = 900 (based on testing, equals roughly 5% per SM alert announcement). + var/damage_inc_limit = (explosion_point*0.005)*(power/900) + + damage = max( damage + min( ( (removed.temperature - 800) / 150 ), damage_inc_limit ) , 0 ) //Ok, 100% oxygen atmosphere = best reaction //Maxes out at 100% oxygen pressure oxygen = max(min((removed.oxygen - (removed.nitrogen * NITROGEN_RETARDATION_FACTOR)) / MOLES_CELLSTANDARD, 1), 0)