mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-18 18:42:08 +01:00
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()
|