removes the useless effect/delete() proc, used QDEL_IN and addtimers, nanofrost can weld scrubbers too, some more cleanup fixes and tried to get smoke fade_out to work (it doesn't work and hasn't in the past)

This commit is contained in:
uraniummeltdown
2017-11-04 12:06:35 +04:00
parent a0939ca93b
commit 718aaf4d87
6 changed files with 29 additions and 48 deletions
@@ -21,20 +21,6 @@ would spawn and follow the beaker, even if it is carried or thrown.
cameranet.updateVisibility(src)
return ..()
/obj/effect/proc/delete()
qdel(src)
/datum/effect/proc/fadeOut(atom/A, frames = 16)
if(A.alpha == 0) //Handle already transparent case
return
if(frames == 0)
frames = 1 //We will just assume that by 0 frames, the coder meant "during one frame".
var/step = A.alpha / frames
for(var/i = 0, i < frames, i++)
A.alpha -= step
sleep(world.tick_lag)
return
/datum/effect/system
var/number = 3
var/cardinals = 0
@@ -37,7 +37,7 @@
I.icon_state = ""
spawn(20)
if(I)
I.delete()
qdel(I)
src.oldposition = T
spawn(2)
if(src.on)
@@ -100,9 +100,9 @@
II.icon_state = ""
spawn(20)
if(I)
I.delete()
qdel(I)
if(II)
II.delete()
qdel(II)
spawn(2)
if(src.on)
src.processing = 1
@@ -23,12 +23,13 @@
var/step = alpha / frames
for(var/i = 0, i < frames, i++)
alpha -= step
sleep(world.tick_lag)
if(alpha < 160)
set_opacity(0)
stoplag()
/obj/effect/effect/smoke/New()
..()
spawn(time_to_live)
delete()
QDEL_IN(src, time_to_live)
return
/obj/effect/effect/smoke/Crossed(mob/living/M)
@@ -61,8 +62,7 @@
direction = direct
/datum/effect/system/smoke_spread/start()
var/i = 0
for(i=0, i<number, i++)
for(var/i=0, i<number, i++)
if(total_smoke > 20)
return
spawn(0)
@@ -81,10 +81,8 @@
step(S,direction)
spawn(S.time_to_live*0.75+rand(10,30))
if(S)
spawn(0)
S.fade_out()
spawn(10)
S.delete()
addtimer(S, "fade_out", 0)
QDEL_IN(S, 10)
total_smoke--
/////////////////////////////////////////////
@@ -147,10 +145,15 @@
G.nitrogen += (G.toxins)
G.toxins = 0
for(var/obj/machinery/atmospherics/unary/vent_pump/V in T)
if(!isnull(V.welded) && !V.welded) //must be an unwelded vent pump or vent scrubber.
if(!isnull(V.welded) && !V.welded) //must be an unwelded vent pump.
V.welded = 1
V.update_icon()
V.visible_message("<span class='danger'>[V] was frozen shut!</span>")
for(var/obj/machinery/atmospherics/unary/vent_scrubber/U in T)
if(!isnull(U.welded) && !U.welded) //must be an unwelded vent scrubber.
U.welded = 1
U.update_icon()
U.visible_message("<span class='danger'>[U] was frozen shut!</span>")
for(var/mob/living/L in T)
L.ExtinguishMob()
for(var/obj/item/Item in T)
@@ -257,8 +260,6 @@
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key. CODERS: carry.my_atom may be null.")
/datum/effect/system/smoke_spread/chem/start(effect_range = 2)
var/i = 0
var/color = mix_color_from_reagents(chemholder.reagents.reagent_list)
var/obj/effect/effect/smoke/chem/smokeholder = new smoke_type(location)
for(var/atom/A in view(effect_range, smokeholder))
@@ -268,7 +269,7 @@
if(C.can_breathe_gas())
chemholder.reagents.copy_to(C, chemholder.reagents.total_volume)
qdel(smokeholder)
for(i=0, i<src.number, i++)
for(var/i=0, i<number, i++)
if(total_smoke > 20)
return
spawn(0)
@@ -292,10 +293,8 @@
for(i=0, i<pick(0,1,1,1,2,2,2,3), i++)
sleep(10)
step(smoke,direction)
spawn(smoke.time_to_live+rand(10,30))
spawn(smoke.time_to_live*0.75+rand(10,30))
if(smoke)
spawn(0)
smoke.fade_out()
spawn(10)
smoke.delete()
addtimer(smoke, "fade_out", 0)
QDEL_IN(smoke, 10)
total_smoke--
@@ -19,8 +19,7 @@
var/turf/T = loc
if(istype(T, /turf))
T.hotspot_expose(1000, 100)
spawn (100)
qdel(src)
QDEL_IN(src, 100)
/obj/effect/effect/sparks/Destroy()
var/turf/T = src.loc
@@ -94,8 +93,7 @@
var/turf/T = src.loc
if(istype(T, /turf))
T.hotspot_expose(3000,100)
spawn (100)
qdel(src)
QDEL_IN(src, 100)
return
/obj/effect/sparkles/Destroy()
@@ -11,18 +11,16 @@
//var/turf/T = src.loc
//if(istype(T, /turf))
// T.firelevel = 0 //TODO: FIX
spawn(70)
delete()
return
QDEL_IN(src, 70)
return
/obj/effect/effect/water/Move(turf/newloc)
//var/turf/T = src.loc
//if(istype(T, /turf))
// T.firelevel = 0 //TODO: FIX
if(--src.life < 1)
if(--life < 1)
//SN src = null
delete()
qdel()
if(newloc.density)
return 0
.=..()
@@ -81,7 +79,8 @@ steam.start() -- spawns the effect
sleep(5)
step(steam,direction)
spawn(20)
if(steam) steam.delete()
if(steam)
qdel(steam)
/////////////////////////////////////////////
//////// Attach a steam trail to an object (eg. a reacting beaker) that will follow it
@@ -115,7 +114,7 @@ steam.start() -- spawns the effect
I.dir = src.holder.dir
spawn(10)
if(I)
I.delete()
qdel(I)
src.number--
spawn(2)
if(src.on)