mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-02 13:33:29 +00:00
Adds toolspeed var, which is a multiplier on how 'fast' the tool works. 0.5 means it goes twice as fast. Adds usesound var, which determines what sound is used when a tool is being used. Changes a lot of code to use those two vars instead. Adds 'ayyy' tools, which are ported from /tg/'s abductor gamemode. They're currently admin only but I might make them obtainable by xenoarch later. Adds powertools, also from /tg/. CE starts with them in a new toolbelt that spawns in their locker, ported from (you guessed it) /tg/. Changes welder sprites to look nicer, ported yet again from /tg/. Modified the blue welder slightly so it can be the electric welder sprite. Adds various sounds from /tg/, for tools and welders.
78 lines
2.0 KiB
Plaintext
78 lines
2.0 KiB
Plaintext
/obj/structure/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
|
|
|
|
/obj/structure/bed/chair/e_chair/New()
|
|
..()
|
|
overlays += image('icons/obj/objects.dmi', src, "echair_over", MOB_LAYER + 1, dir)
|
|
return
|
|
|
|
/obj/structure/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(istype(W, /obj/item/weapon/wrench))
|
|
var/obj/structure/bed/chair/C = new /obj/structure/bed/chair(loc)
|
|
playsound(src, W.usesound, 50, 1)
|
|
C.set_dir(dir)
|
|
part.loc = loc
|
|
part.master = null
|
|
part = null
|
|
qdel(src)
|
|
return
|
|
return
|
|
|
|
/obj/structure/bed/chair/e_chair/verb/toggle()
|
|
set name = "Toggle Electric Chair"
|
|
set category = "Object"
|
|
set src in oview(1)
|
|
|
|
if(on)
|
|
on = 0
|
|
icon_state = "echair0"
|
|
else
|
|
on = 1
|
|
icon_state = "echair1"
|
|
usr << "<span class='notice'>You switch [on ? "on" : "off"] [src].</span>"
|
|
return
|
|
|
|
/obj/structure/bed/chair/e_chair/rotate()
|
|
..()
|
|
overlays.Cut()
|
|
overlays += image('icons/obj/objects.dmi', src, "echair_over", MOB_LAYER + 1, dir) //there's probably a better way of handling this, but eh. -Pete
|
|
return
|
|
|
|
/obj/structure/bed/chair/e_chair/proc/shock()
|
|
if(!on)
|
|
return
|
|
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(EQUIP))
|
|
return
|
|
A.use_power(EQUIP, 5000)
|
|
var/light = A.power_light
|
|
A.updateicon()
|
|
|
|
flick("echair1", src)
|
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
|
s.set_up(12, 1, src)
|
|
s.start()
|
|
if(buckled_mob)
|
|
buckled_mob.burn_skin(85)
|
|
buckled_mob << "<span class='danger'>You feel a deep shock course through your body!</span>"
|
|
sleep(1)
|
|
buckled_mob.burn_skin(85)
|
|
buckled_mob.Stun(600)
|
|
visible_message("<span class='danger'>The electric chair went off!</span>", "<span class='danger'>You hear a deep sharp shock!</span>")
|
|
|
|
A.power_light = light
|
|
A.updateicon()
|
|
return
|