/obj/structure/chair/e_chair name = "electric chair" desc = "Looks absolutely SHOCKING!" icon_state = "echair0" var/obj/item/assembly/shock_kit/part = null var/last_time = 1 item_chair = null /obj/structure/chair/e_chair/Initialize() . = ..() add_overlay(mutable_appearance('icons/obj/chairs.dmi', "echair_over", MOB_LAYER + 1)) /obj/structure/chair/e_chair/attackby(obj/item/W, mob/user, params) if(W.tool_behaviour == TOOL_WRENCH) var/obj/structure/chair/C = new /obj/structure/chair(loc) W.play_tool_sound(src) C.setDir(dir) part.forceMove(loc) part.master = null part = null qdel(src) /obj/structure/chair/e_chair/proc/shock() if(last_time + 50 > world.time) return last_time = world.time // special power handling var/area/A = get_area(src) if(!isarea(A)) return if(!A.powered(AREA_USAGE_EQUIP)) return A.use_power(AREA_USAGE_EQUIP, 5000) flick("echair_shock", src) var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(12, 1, src) s.start() if(has_buckled_mobs()) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m buckled_mob.electrocute_act(85, src, 1) to_chat(buckled_mob, "You feel a deep shock course through your body!") addtimer(CALLBACK(buckled_mob, /mob/living.proc/electrocute_act, 85, src, 1), 1) visible_message("The electric chair went off!", "You hear a deep sharp shock!") /obj/structure/chair/e_chair/post_buckle_mob(mob/living/L) SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "dying", /datum/mood_event/deaths_door) /obj/structure/chair/e_chair/post_unbuckle_mob(mob/living/L) SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "dying")