From 949a6349a233071fd6cc226580208bd49cdebc16 Mon Sep 17 00:00:00 2001 From: Artorp Date: Tue, 14 Apr 2015 21:36:22 +0200 Subject: [PATCH] Electric Chair update - Changed toggle verb into activation verb - Added support for spawned/mapplaced e-chairs - Fixed activation animation - Fixed updating of icon - Buffed damage, victim will die much quicker - Removed stun --- code/game/objects/structures/electricchair.dm | 48 ++++++++++--------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm index f9e49fcc40b..ca237c278b2 100644 --- a/code/game/objects/structures/electricchair.dm +++ b/code/game/objects/structures/electricchair.dm @@ -1,11 +1,10 @@ - /obj/structure/stool/bed/chair/e_chair name = "electric chair" desc = "Looks absolutely SHOCKING!" icon_state = "echair0" - var/on = 0 var/obj/item/assembly/shock_kit/part = null var/last_time = 1.0 + var/delay_time = 50 /obj/structure/stool/bed/chair/e_chair/New() ..() @@ -17,6 +16,12 @@ var/obj/structure/stool/bed/chair/C = new /obj/structure/stool/bed/chair(loc) playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) C.dir = dir + if(isnull(part)) + part = new(src) + var/obj/item/clothing/head/helmet/part1 = new(part) + var/obj/item/device/radio/electropack/part2 = new(part) + part.part1 = part1 + part.part2 = part2 part.loc = loc part.master = null part = null @@ -24,20 +29,17 @@ return return -/obj/structure/stool/bed/chair/e_chair/verb/toggle() - set name = "Toggle Electric Chair" +/obj/structure/stool/bed/chair/e_chair/verb/activate_e_chair() + set name = "Activate Electric Chair" set category = "Object" set src in oview(1) if(usr.stat || !usr.canmove || usr.restrained()) return - if(on) - on = 0 - icon_state = "echair0" - else - on = 1 - icon_state = "echair1" - shock() - usr << "You switch [on ? "on" : "off"] [src]." + if(last_time + delay_time > world.time) + usr << "\The [src] is not ready yet!" + return + usr << "You activate \the [src]." + shock() return /obj/structure/stool/bed/chair/e_chair/rotate() @@ -47,34 +49,36 @@ return /obj/structure/stool/bed/chair/e_chair/proc/shock() - if(!on) - return - if(last_time + 50 > world.time) + if(last_time + delay_time > world.time) return last_time = world.time + icon_state = "echair1" + spawn(delay_time) + icon_state = "echair0" + // special power handling var/area/A = get_area(src) if(!isarea(A)) return if(!A.powered(EQUIP)) return - A.use_power(EQUIP, 5000) + A.use_power(5000, EQUIP) var/light = A.power_light A.updateicon() - flick("echair1", src) + flick("echair_shock", src) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(12, 1, src) s.start() + visible_message("The electric chair went off!", "You hear a deep sharp shock!") if(buckled_mob) - buckled_mob.burn_skin(85) + buckled_mob.burn_skin(90) buckled_mob << "You feel a deep shock course through your body!" sleep(1) - buckled_mob.burn_skin(85) - buckled_mob.Stun(600) - on = 0 - visible_message("The electric chair went off!", "You hear a deep sharp shock!") + buckled_mob.burn_skin(90) + sleep(5) + buckled_mob.burn_skin(max(rand(5,20),rand(5,20))) A.power_light = light A.updateicon()