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.
This commit is contained in:
DeltaFire
2020-11-13 17:21:03 +01:00
parent 021d3bbada
commit 82bf995dba
3 changed files with 7 additions and 2 deletions

View File

@@ -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)

View File

@@ -20,7 +20,7 @@
switch(corruption)
if(0 to CORRUPTION_THRESHHOLD_MINOR)
timer_req = INFINITY //Below minor corruption you are fiiine
corruption_state = "<font color='green'>None</font>"
corruption_state = "<font color='green'>None</font>" //This should never happen, but have it anyways.
if(CORRUPTION_THRESHHOLD_MINOR to CORRUPTION_THRESHHOLD_MAJOR)
corruption_state = "<font color='blue'>Minor</font>"
if(CORRUPTION_THRESHHOLD_MAJOR to CORRUPTION_THRESHHOLD_CRITICAL)

View File

@@ -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)