From 3cc86a75341c7dc4a4d720a54e56c3481a36fa06 Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Tue, 5 Jul 2016 17:54:09 +0100 Subject: [PATCH] Tesla now dusts people on tile it jumps to :cl: coiax fix: The tesla now dusts all carbon mobs on the turf that it moves to, grounding rod or no. /:cl: - Also made the miniball spawn a timer. --- code/modules/power/tesla/energy_ball.dm | 38 ++++++++++++------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 670aa1276a9..1b7e68f0d0c 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -48,7 +48,7 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, var/obj/singularity/energy_ball/EB = ball qdel(EB) - return ..() + . = ..() /obj/singularity/energy_ball/process() if(!orbiting) @@ -71,8 +71,6 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, else energy = 0 // ensure we dont have miniballs of miniballs - return - /obj/singularity/energy_ball/examine(mob/user) ..() if(orbiting_balls.len) @@ -89,28 +87,17 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, var/turf/T = get_step(src, move_dir) if(can_move(T)) loc = T + for(var/mob/living/carbon/C in loc) + dust_mobs(C) /obj/singularity/energy_ball/proc/handle_energy() - if(energy >= energy_to_raise) energy_to_lower = energy_to_raise - 20 energy_to_raise = energy_to_raise * 1.25 playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, 1, extrarange = 30) - spawn(100) - if (!loc) - return - var/obj/singularity/energy_ball/EB = new(loc) - - EB.transform *= pick(0.3, 0.4, 0.5, 0.6, 0.7) - var/icon/I = icon(icon,icon_state,dir) - - var/orbitsize = (I.Width() + I.Height()) * pick(0.4, 0.5, 0.6, 0.7, 0.8) - orbitsize -= (orbitsize / world.icon_size) * (world.icon_size * 0.25) - - EB.orbit(src, orbitsize, pick(FALSE, TRUE), rand(10, 25), pick(3, 4, 5, 6, 36)) - + addtimer(src, "new_mini_ball", 100) else if(energy < energy_to_lower && orbiting_balls.len) energy_to_raise = energy_to_raise / 1.25 @@ -122,6 +109,20 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, else if(orbiting_balls.len) dissipate() //sing code has a much better system. +/obj/singularity/energy_ball/proc/new_mini_ball() + if(!loc) + return + var/obj/singularity/energy_ball/EB = new(loc) + + EB.transform *= pick(0.3, 0.4, 0.5, 0.6, 0.7) + var/icon/I = icon(icon,icon_state,dir) + + var/orbitsize = (I.Width() + I.Height()) * pick(0.4, 0.5, 0.6, 0.7, 0.8) + orbitsize -= (orbitsize / world.icon_size) * (world.icon_size * 0.25) + + EB.orbit(src, orbitsize, pick(FALSE, TRUE), rand(10, 25), pick(3, 4, 5, 6, 36)) + + /obj/singularity/energy_ball/Bump(atom/A) dust_mobs(A) @@ -146,7 +147,6 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, if(istype(A, /mob/living/carbon)) var/mob/living/carbon/C = A C.dust() - return /proc/tesla_zap(var/atom/source, zap_range = 3, power) . = source.dir @@ -262,5 +262,3 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, else if(closest_structure) closest_structure.tesla_act(power) - -