From 4fdb79cd448726cfd6e1412c6f42bf345febad2c Mon Sep 17 00:00:00 2001 From: "baloh.matevz" Date: Mon, 21 Mar 2011 01:44:33 +0000 Subject: [PATCH] Increased efficiency of electrocution code when wearing insulated gloves which greatly reduced lag when touching an object which should electrocute you with insulated gloves. Spamming clicks on electrified doors no longer causes huge server lag. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1225 316c924e-a436-60f5-8080-3fe189b3f50e --- code/modules/power/power.dm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 5c5ff244460..c3798cb02ce 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -387,7 +387,7 @@ /obj/machinery/power/proc/disconnect_from_network() //TODO: dunno how to do that return - + /turf/proc/get_cable_node() if(!istype(src, /turf/simulated/floor)) return null @@ -409,6 +409,13 @@ //source is an object caused electrocuting (airlock, grille, etc) //No animations will be performed by this proc. /proc/electrocute_mob(mob/living/carbon/M as mob, var/power_source, var/obj/source, var/siemens_coeff = 1.0) + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(H.gloves) + var/obj/item/clothing/gloves/G = H.gloves + var/siem_coef = G.siemens_coefficient + if(siem_coef == 0) //to avoid spamming with insulated glvoes on + return 0 var/area/source_area if (istype(power_source,/area)) source_area = power_source @@ -451,7 +458,7 @@ shock_damage = cell_damage var/drained_hp = M.electrocute_act(shock_damage, source, siemens_coeff) //zzzzzzap! var/drained_energy = drained_hp*20 - + if (source_area) source_area.use_power(drained_energy/CELLRATE) else if (istype(power_source,/datum/powernet))