mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-22 05:17:38 +01:00
e4192f9b8f
we have a gorillion hard deletions and it turns out half of them are because we set the "ALWAYS HARD DELETE THIS" flag rather than just like. fixing the hard delete. cool
69 lines
1.6 KiB
Plaintext
69 lines
1.6 KiB
Plaintext
/obj/effect/expl_particles
|
|
name = "explosive particles"
|
|
icon = 'icons/effects/effects.dmi'
|
|
icon_state = "explosion_particle"
|
|
opacity = 1
|
|
anchored = 1
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
|
|
/obj/effect/expl_particles/New()
|
|
..()
|
|
QDEL_IN(src, 15)
|
|
return
|
|
|
|
/obj/effect/expl_particles/Move()
|
|
. = ..()
|
|
return
|
|
|
|
/datum/effect/system/expl_particles
|
|
var/number = 10
|
|
var/turf/location
|
|
var/total_particles = 0
|
|
|
|
/datum/effect/system/expl_particles/proc/set_up(n = 10, loca)
|
|
number = n
|
|
if(istype(loca, /turf/)) location = loca
|
|
else location = get_turf(loca)
|
|
|
|
/datum/effect/system/expl_particles/proc/start()
|
|
var/i = 0
|
|
for(i=0, i<src.number, i++)
|
|
spawn(0)
|
|
var/obj/effect/expl_particles/expl = new /obj/effect/expl_particles(src.location)
|
|
var/direct = pick(GLOB.alldirs)
|
|
for(i=0, i<pick(1;25,2;50,3,4;200), i++)
|
|
sleep(1)
|
|
step(expl,direct)
|
|
|
|
/obj/effect/explosion
|
|
name = "explosive particles"
|
|
icon = 'icons/effects/96x96.dmi'
|
|
icon_state = "explosion"
|
|
opacity = 1
|
|
anchored = 1
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
pixel_x = -32
|
|
pixel_y = -32
|
|
|
|
/obj/effect/explosion/New()
|
|
..()
|
|
QDEL_IN(src, 10)
|
|
return
|
|
|
|
/datum/effect/system/explosion
|
|
var/turf/location
|
|
|
|
/datum/effect/system/explosion/proc/set_up(loca)
|
|
if(istype(loca, /turf/)) location = loca
|
|
else location = get_turf(loca)
|
|
|
|
/datum/effect/system/explosion/proc/start()
|
|
new/obj/effect/explosion( location )
|
|
var/datum/effect/system/expl_particles/P = new/datum/effect/system/expl_particles()
|
|
P.set_up(10,location)
|
|
P.start()
|
|
spawn(5)
|
|
var/datum/effect/effect/system/smoke_spread/S = new/datum/effect/effect/system/smoke_spread()
|
|
S.set_up(5,0,location,null)
|
|
S.start()
|