From 062fe444b895a815673fffae8290c067250c1919 Mon Sep 17 00:00:00 2001 From: Jamini Date: Thu, 12 Mar 2020 20:37:38 -0400 Subject: [PATCH 1/2] Spreads out shock damage All Damage taken on an electrocution from an object is currently taken to the defense zone actively used to trigger the object (commonly hands) With increasing power values on the station overall and the addition of dismemberment from burn damage, this causes shocks to unprotected hands to effectively always remove the offending hand on the Polaris base map. Changes - Electrocution on human mobs now deals four instances of damage. One at 25% to the hand, one at 50% to the body, and two more at 25% to random bodyparts. --- code/modules/mob/living/carbon/carbon.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 6b9cbf0258..2c62aa9656 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -100,7 +100,11 @@ if (shock_damage<1) return 0 - src.apply_damage(shock_damage, BURN, def_zone, used_weapon="Electrocution") + src.apply_damage(0.25 * shock_damage, BURN, def_zone, used_weapon="Electrocution") //shock the target organ + src.apply_damage(0.50 * shock_damage, BURN, BP_TORSO, used_weapon="Electrocution") //shock the torso more + src.apply_damage(0.25 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! + src.apply_damage(0.25 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! + playsound(loc, "sparks", 50, 1, -1) if (shock_damage > 15) src.visible_message( @@ -456,4 +460,4 @@ /mob/living/carbon/proc/can_feel_pain(var/check_organ) if(isSynthetic()) return 0 - return !(species.flags & NO_PAIN) \ No newline at end of file + return !(species.flags & NO_PAIN) From 1e0eb3959e65787523aa627601ccc6368bfb9f67 Mon Sep 17 00:00:00 2001 From: Jamini Date: Thu, 12 Mar 2020 21:03:05 -0400 Subject: [PATCH 2/2] Spreads out Shock damage V2 All Damage taken on an electrocution from an object is currently taken to the defense zone actively used to trigger the object (commonly hands) With increasing power values on the station overall and the addition of dismemberment from burn damage, this causes shocks to unprotected hands to effectively always remove the offending hand on the Polaris base map. Changes Electrocution on human mobs now deals four instances of damage. One at 25% to the hand, one at 50% to the body, and two more at 25% to random bodyparts. Current Values At round-start (so 300kw in system from solars, another 150 from the SMES to power the station) this would result in going from a roughly 40 damage burn to the hand (more for some species. Which, seemingly, is enough to often dismember it) to about 10 to the hand, 20 burn to the body, and two more 10 damage burns. --- This would impact anything calling the electrocute_act() proc in carbon() This impacts: Shocks from Machinery or Cables SMES deconstruction discharge (This targets the torso. So the target still would take 75% of the damage on the torso, and another Technomancer Lightning Technomancer Instability Tesla Ball Shocks Energy Siphon Bioelectric Genesis Shock crate damage Defib shock damage Total damage value remains the same, however the damage would be spread out on the target instead of centralized. --- code/modules/mob/living/carbon/carbon.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 5eef49481c..2c7a4d59b4 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -105,10 +105,10 @@ if (shock_damage<1) return 0 - src.apply_damage(0.25 * shock_damage, BURN, def_zone, used_weapon="Electrocution") //shock the target organ - src.apply_damage(0.50 * shock_damage, BURN, BP_TORSO, used_weapon="Electrocution") //shock the torso more - src.apply_damage(0.25 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! - src.apply_damage(0.25 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! + src.apply_damage(0.2 * shock_damage, BURN, def_zone, used_weapon="Electrocution") //shock the target organ + src.apply_damage(0.4 * shock_damage, BURN, BP_TORSO, used_weapon="Electrocution") //shock the torso more + src.apply_damage(0.2 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! + src.apply_damage(0.2 * shock_damage, BURN, null, used_weapon="Electrocution") //shock a random part! playsound(loc, "sparks", 50, 1, -1) if (shock_damage > 15) @@ -399,4 +399,4 @@ /mob/living/carbon/needs_to_breathe() if(does_not_breathe) return FALSE - return ..() \ No newline at end of file + return ..()