////////////////////////////////////////
// Vars and Default tesla_act behavior
////////////////////////////////////////
/obj
var/being_shocked = FALSE
/obj/proc/tesla_act(var/power)
being_shocked = TRUE
var/power_bounced = power / 2
tesla_zap(src, 3, power_bounced)
//addtimer(CALLBACK(src, .proc/reset_shocked), 10)
//schedule_task_with_source_in(10, src, .proc/reset_shocked)
spawn(10) reset_shocked()
/obj/proc/reset_shocked()
being_shocked = FALSE
// Overrides for behavior on specific types
/obj/structure/blob/tesla_act(power)
..()
adjust_integrity(-power/400)
/obj/machinery/nuclearbomb/tesla_act(power, explosive)
..()
if(explosive)
qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over
/obj/machinery/tesla_act(power, explosive = FALSE)
..()
if(prob(85) && explosive)
explosion(loc, 1, 2, 4, /*flame_range = 2,*/ adminlog = FALSE/*, smoke = FALSE*/)
else if(prob(50))
emp_act(2)
else
ex_act(2)
/obj/machinery/camera/tesla_act(var/power)//EMP proof upgrade also makes it tesla immune
if(isEmpProof())
return
..()
qdel(src) //to prevent bomb testing camera from exploding over and over forever
/obj/machinery/light/tesla_act(power, explosive = FALSE)
if(explosive)
explosion(loc, 0, 0, 0/*, flame_range = 5*/, adminlog = FALSE)
qdel(src)
return
on = TRUE
broken()
/obj/structure/closet/tesla_act(var/power)
..() //extend the zap
visible_message("[src] is blown apart by the bolt of electricity!", "You hear a metallic screeching sound.")
dump_contents()
qdel(src)
/obj/structure/reagent_dispensers/fueltank/tesla_act()
..() //extend the zap
explode()
/obj/mecha/tesla_act(power)
..()
take_damage(power / 200, "energy") // A surface lightning strike will do 100 damage.