From 82bf995dba5d1a7d66148e83045eb0933a930fcc Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Fri, 13 Nov 2020 17:21:03 +0100 Subject: [PATCH] EMP tweaks EMPs do less libm damage on synthetics (half, so, max of 15 instead of 30), and the corruption amount is reduced to a max of 11.5, logarythmical so it's already 4 at a EMP power of 5 / 8 at 25, though the limb burn amount stays linear. --- code/modules/mob/living/carbon/carbon_defense.dm | 5 ++++- code/modules/mob/living/carbon/handle_corruption.dm | 2 +- code/modules/mob/living/carbon/human/human_defense.dm | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 01df737f58..7a16d5c352 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -213,7 +213,10 @@ if(. & EMP_PROTECT_CONTENTS) return if(HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM)) - adjustToxLoss(severity/5, toxins_type = TOX_SYSCORRUPT) //EMPs fuck robots over. Up to 20 corruption per EMP if hit by the full power. Might be a bit high, subject to change if it is. + //EMPs fuck robots over. Up to ~11.5 corruption per EMP if hit by the full power. They also get up to 15 burn damage per EMP (up to 2.5 per limb), plus short hardstun + //Though, note that the burn damage is linear, while corruption is logarythmical, which means at lower severities you still get corruption, but far less burn / stun + //Note than as compensation, they only take half the limb burn damage someone fully augmented would take, which would be up to 30 burn. + adjustToxLoss(round(log(severity)*2.5, 0.1), toxins_type = TOX_SYSCORRUPT) for(var/X in internal_organs) var/obj/item/organ/O = X O.emp_act(severity) diff --git a/code/modules/mob/living/carbon/handle_corruption.dm b/code/modules/mob/living/carbon/handle_corruption.dm index eaec7d6389..7b84c41e27 100644 --- a/code/modules/mob/living/carbon/handle_corruption.dm +++ b/code/modules/mob/living/carbon/handle_corruption.dm @@ -20,7 +20,7 @@ switch(corruption) if(0 to CORRUPTION_THRESHHOLD_MINOR) timer_req = INFINITY //Below minor corruption you are fiiine - corruption_state = "None" + corruption_state = "None" //This should never happen, but have it anyways. if(CORRUPTION_THRESHHOLD_MINOR to CORRUPTION_THRESHHOLD_MAJOR) corruption_state = "Minor" if(CORRUPTION_THRESHHOLD_MAJOR to CORRUPTION_THRESHHOLD_CRITICAL) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 10295a7de4..1b140af672 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -411,6 +411,8 @@ if(isrobotic(src)) apply_status_effect(/datum/status_effect/no_combat_mode/robotic_emp, severity / 20) severity *= 0.5 + if(HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM)) + severity *= 0.5 //Robotpeople take less limb damage, but instead suffer system corruption (see carbon emp_act) for(var/obj/item/bodypart/L in src.bodyparts) if(L.is_robotic_limb()) if(!informed)