diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index b976ac0fc8..03c4999d50 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -113,6 +113,9 @@ duration = set_duration . = ..() +/datum/status_effect/no_combat_mode/robotic_emp + id = "emp_no_combat_mode" + /datum/status_effect/mesmerize id = "Mesmerize" alert_type = /obj/screen/alert/status_effect/mesmerized diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index f47b3a93bd..7f4f8cf63d 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -393,6 +393,8 @@ if(. & EMP_PROTECT_CONTENTS) return var/informed = FALSE + if(isrobotic(src)) + apply_status_effect(/datum/status_effect/no_combat_mode/robotic_emp, 2.5 * severity) for(var/obj/item/bodypart/L in src.bodyparts) if(L.status == BODYPART_ROBOTIC) if(!informed) @@ -405,13 +407,9 @@ L.receive_damage(0,10) Stun(200) else - // robotic species take far less damage, and roll to have their parts fly off on a heavy emp + // robotic species take far less damage and get combat mode lock instead of stuns // this is to stop emps outright killing them, and also because their organs have emp acts - L.receive_damage(0,4) - Stun(50) - if(!(L.body_part == CHEST || L.body_part == HEAD)) // only dismember legs/arms - if(prob(20)) - L.dismember() + L.receive_damage(0,5) if(2) L.receive_damage(0,5) Stun(100) @@ -419,8 +417,7 @@ L.receive_damage(0,5) Stun(100) else - L.receive_damage(0,2) - Stun(25) + L.receive_damage(0,3) /mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit) var/list/damaged = list()