diff --git a/_maps/shuttles/emergency_clown.dmm b/_maps/shuttles/emergency_clown.dmm index 074fab38c2f..d788c96d3b7 100644 --- a/_maps/shuttles/emergency_clown.dmm +++ b/_maps/shuttles/emergency_clown.dmm @@ -145,7 +145,7 @@ }, /area/shuttle/escape) "az" = ( -/turf/open/chasm/straight_down/lava_land_surface, +/turf/open/chasm/straight_down/lava_land_surface/normal_air, /area/shuttle/escape) "aA" = ( /turf/open/floor/noslip, diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index 76301f15c84..11b6b3e7096 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -53,19 +53,23 @@ would spawn and follow the beaker, even if it is carried or thrown. for(var/i in 1 to number) if(total_effects > 20) return - spawn(0) - if(holder) - location = get_turf(holder) - var/obj/effect/E = PoolOrNew(effect_type, location) - total_effects++ - var/direction - if(cardinals) - direction = pick(cardinal) - else - direction = pick(alldirs) - var/steps_amt = pick(1,2,3) - for(var/j in 1 to steps_amt) - sleep(5) - step(E,direction) - spawn(20) - total_effects-- \ No newline at end of file + addtimer(src, "generate_effect", 0) + +/datum/effect_system/proc/generate_effect() + if(holder) + location = get_turf(holder) + var/obj/effect/E = PoolOrNew(effect_type, location) + total_effects++ + var/direction + if(cardinals) + direction = pick(cardinal) + else + direction = pick(alldirs) + var/steps_amt = pick(1,2,3) + for(var/j in 1 to steps_amt) + sleep(5) + step(E,direction) + addtimer(src, "decrement_total_effect", 20) + +/datum/effect_system/proc/decrement_total_effect() + total_effects-- diff --git a/code/game/objects/effects/effect_system/effects_explosion.dm b/code/game/objects/effects/effect_system/effects_explosion.dm index 2c3445fbcea..2c5c635c69c 100644 --- a/code/game/objects/effects/effect_system/effects_explosion.dm +++ b/code/game/objects/effects/effect_system/effects_explosion.dm @@ -6,8 +6,7 @@ /obj/effect/particle_effect/expl_particles/New() ..() - spawn (15) - qdel(src) + QDEL_IN(src, 15) /datum/effect_system/expl_particles number = 10 @@ -34,9 +33,7 @@ /obj/effect/explosion/New() ..() - spawn (10) - qdel(src) - return + QDEL_IN(src, 10) /datum/effect_system/explosion @@ -54,4 +51,4 @@ spawn(5) var/datum/effect_system/smoke_spread/S = new S.set_up(2, location) - S.start() \ No newline at end of file + S.start() diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index dc51de0ad58..7ca593e3c3e 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -44,9 +44,7 @@ M.metal = metal M.updateicon() flick("[icon_state]-disolve", src) - spawn(5) - qdel(src) - + QDEL_IN(src, 5) /obj/effect/particle_effect/foam/process() lifetime-- @@ -220,7 +218,6 @@ /obj/structure/foamedmetal/attack_paw(mob/user) attack_hand(user) - return /obj/structure/foamedmetal/attack_animal(mob/living/simple_animal/user) @@ -283,4 +280,4 @@ /obj/structure/foamedmetal/CanAtmosPass() - return !density \ No newline at end of file + return !density diff --git a/code/game/objects/effects/effect_system/effects_other.dm b/code/game/objects/effects/effect_system/effects_other.dm index a22c44614f4..099847c5f7b 100644 --- a/code/game/objects/effects/effect_system/effects_other.dm +++ b/code/game/objects/effects/effect_system/effects_other.dm @@ -101,8 +101,6 @@ flashing = flash flashing_factor = flash_fact - return - /datum/effect_system/reagents_explosion/start() if(explosion_message) location.visible_message("The solution violently explodes!", \ diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index c772aa1246a..1c2bd7c4b8e 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -39,10 +39,8 @@ /obj/effect/particle_effect/smoke/proc/kill_smoke() STOP_PROCESSING(SSobj, src) - spawn(0) - fade_out() - spawn(10) - qdel(src) + addtimer(src, "fade_out", 0) + QDEL_IN(src, 10) /obj/effect/particle_effect/smoke/process() lifetime-- @@ -63,11 +61,13 @@ if(C.smoke_delay) return 0 C.smoke_delay++ - spawn(10) - if(C) - C.smoke_delay = 0 + addtimer(src, "remove_smoke_delay", 10, FALSE, C) return 1 +/obj/effect/particle_effect/smoke/proc/remove_smoke_delay(mob/living/carbon/C) + if(C) + C.smoke_delay = 0 + /obj/effect/particle_effect/smoke/proc/spread_smoke() var/turf/t_loc = get_turf(src) var/list/newsmokes = list() @@ -178,7 +178,6 @@ L.ExtinguishMob() for(var/obj/item/Item in T) Item.extinguish() - return /datum/effect_system/smoke_spread/freezing/set_up(radius = 5, loca, blasting = 0) ..() diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm index e3583e79b85..6488083cd4c 100644 --- a/code/game/objects/effects/effect_system/effects_sparks.dm +++ b/code/game/objects/effects/effect_system/effects_sparks.dm @@ -18,8 +18,7 @@ var/turf/T = src.loc if (istype(T, /turf)) T.hotspot_expose(1000,100) - spawn(20) - qdel(src) + QDEL_IN(src, 20) /obj/effect/particle_effect/sparks/Destroy() var/turf/T = src.loc @@ -44,4 +43,4 @@ icon_state = "electricity" /datum/effect_system/lightning_spread - effect_type = /obj/effect/particle_effect/sparks/electricity \ No newline at end of file + effect_type = /obj/effect/particle_effect/sparks/electricity diff --git a/code/game/objects/effects/effect_system/effects_water.dm b/code/game/objects/effects/effect_system/effects_water.dm index cd55f1291a4..e12894d970e 100644 --- a/code/game/objects/effects/effect_system/effects_water.dm +++ b/code/game/objects/effects/effect_system/effects_water.dm @@ -9,8 +9,7 @@ /obj/effect/particle_effect/water/New() ..() - spawn( 70 ) - qdel(src) + QDEL_IN(src, 70) /obj/effect/particle_effect/water/Move(turf/newloc) if (--src.life < 1) @@ -48,8 +47,7 @@ steam.start() -- spawns the effect /obj/effect/particle_effect/steam/New() ..() - spawn(20) - qdel(src) + QDEL_IN(src, 20) /datum/effect_system/steam_spread effect_type = /obj/effect/particle_effect/steam diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index a7cb2620390..a5b03d4fceb 100755 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -333,11 +333,12 @@ var/ash_type = /obj/effect/decal/cleanable/ash /obj/item/toy/snappop/proc/pop_burst(var/n=3, var/c=1) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + var/datum/effect_system/spark_spread/s = new() s.set_up(n, c, src) s.start() new ash_type(loc) - visible_message("[src.name] explodes!","You hear a snap!") + visible_message("[src] explodes!", + "You hear a snap!") playsound(src, 'sound/effects/snap.ogg', 50, 1) qdel(src)