From c1e897b298865ae8e852cd41768410d1e0171d0a Mon Sep 17 00:00:00 2001 From: RandomMarine Date: Sat, 17 Mar 2018 06:48:56 -0700 Subject: [PATCH 1/2] Tesla coils and grounding rods actually shock buckled mobs. (#36437) * coils and grounding rods shock buckled things * general tesla buckle shock proc --- code/game/objects/obj_defense.dm | 8 ++++++++ code/modules/power/tesla/coil.dm | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index c4c85bc6a5..5b23ea6715 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -227,6 +227,14 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e tesla_zap(src, 3, power_bounced) addtimer(CALLBACK(src, .proc/reset_shocked), 10) +//The surgeon general warns that being buckled to certain objects recieving powerful shocks is greatly hazardous to your health +//Only tesla coils and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later. +/obj/proc/tesla_buckle_check(var/strength) + if(has_buckled_mobs()) + for(var/m in buckled_mobs) + var/mob/living/buckled_mob = m + buckled_mob.electrocute_act((CLAMP(round(strength/400), 10, 90) + rand(-5, 5)), src, tesla_shock = 1) + /obj/proc/reset_shocked() obj_flags &= ~BEING_SHOCKED diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index b00aa51d09..7c79d16b48 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -87,6 +87,7 @@ if(istype(linked_techweb)) linked_techweb.research_points += min(power_produced, 1) addtimer(CALLBACK(src, .proc/reset_shocked), 10) + tesla_buckle_check(power) else ..() @@ -100,6 +101,7 @@ add_load(power) playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 10, power/(coeff/2)) + tesla_buckle_check(power/(coeff/2)) // Tesla R&D researcher /obj/machinery/power/tesla_coil/research @@ -120,6 +122,7 @@ if(istype(linked_techweb)) linked_techweb.research_points += min(power_produced, 3) // 4 coils makes ~720/m bonus for R&D, addtimer(CALLBACK(src, .proc/reset_shocked), 10) + tesla_buckle_check(power) else ..() @@ -179,5 +182,6 @@ /obj/machinery/power/grounding_rod/tesla_act(var/power) if(anchored && !panel_open) flick("grounding_rodhit", src) + tesla_buckle_check(power) else - ..() + ..() \ No newline at end of file