mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-31 07:57:47 +01:00
effect/system to effect_system
effect/effect to effect/particle_effect make foam an effect again move explosion_particles.dm to effect_system folder OOP effect code, addtimers, QDEL_IN fixed reagent explosions never having a flash range due to a typo
This commit is contained in:
@@ -1,20 +1,18 @@
|
||||
//WATER EFFECTS
|
||||
/obj/effect/effect/water
|
||||
/obj/effect/particle_effect/water
|
||||
name = "water"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "extinguish"
|
||||
mouse_opacity = 0
|
||||
var/life = 15.0
|
||||
|
||||
/obj/effect/effect/water/New()
|
||||
/obj/effect/particle_effect/water/New()
|
||||
..()
|
||||
//var/turf/T = src.loc
|
||||
//if(istype(T, /turf))
|
||||
// T.firelevel = 0 //TODO: FIX
|
||||
QDEL_IN(src, 70)
|
||||
return
|
||||
|
||||
/obj/effect/effect/water/Move(turf/newloc)
|
||||
/obj/effect/particle_effect/water/Move(turf/newloc)
|
||||
//var/turf/T = src.loc
|
||||
//if(istype(T, /turf))
|
||||
// T.firelevel = 0 //TODO: FIX
|
||||
@@ -25,7 +23,7 @@
|
||||
return 0
|
||||
.=..()
|
||||
|
||||
/obj/effect/effect/water/Bump(atom/A)
|
||||
/obj/effect/particle_effect/water/Bump(atom/A)
|
||||
if(reagents)
|
||||
reagents.reaction(A)
|
||||
if(istype(A,/atom/movable))
|
||||
@@ -42,90 +40,20 @@
|
||||
// will always spawn at the items location, even if it's moved.
|
||||
|
||||
/* Example:
|
||||
var/datum/effect/system/steam_spread/steam = new /datum/effect/system/steam_spread() -- creates new system
|
||||
var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system
|
||||
steam.set_up(5, 0, mob.loc) -- sets up variables
|
||||
OPTIONAL: steam.attach(mob)
|
||||
steam.start() -- spawns the effect
|
||||
*/
|
||||
/////////////////////////////////////////////
|
||||
/obj/effect/effect/steam
|
||||
/obj/effect/particle_effect/steam
|
||||
name = "steam"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "extinguish"
|
||||
density = 0
|
||||
|
||||
/datum/effect/system/steam_spread
|
||||
/obj/effect/particle_effect/steam/New()
|
||||
..()
|
||||
QDEL_IN(src, 20)
|
||||
|
||||
/datum/effect/system/steam_spread/set_up(n = 3, c = 0, turf/loc)
|
||||
if(n > 10)
|
||||
n = 10
|
||||
number = n
|
||||
cardinals = c
|
||||
location = loc
|
||||
|
||||
/datum/effect/system/steam_spread/start()
|
||||
var/i = 0
|
||||
for(i=0, i<src.number, i++)
|
||||
spawn(0)
|
||||
if(holder)
|
||||
src.location = get_turf(holder)
|
||||
var/obj/effect/effect/steam/steam = new /obj/effect/effect/steam(src.location)
|
||||
var/direction
|
||||
if(src.cardinals)
|
||||
direction = pick(cardinal)
|
||||
else
|
||||
direction = pick(alldirs)
|
||||
for(i=0, i<pick(1,2,3), i++)
|
||||
sleep(5)
|
||||
step(steam,direction)
|
||||
spawn(20)
|
||||
if(steam)
|
||||
qdel(steam)
|
||||
|
||||
/////////////////////////////////////////////
|
||||
//////// Attach a steam trail to an object (eg. a reacting beaker) that will follow it
|
||||
// even if it's carried of thrown.
|
||||
/////////////////////////////////////////////
|
||||
|
||||
/datum/effect/system/steam_trail_follow
|
||||
var/turf/oldposition
|
||||
var/processing = 1
|
||||
var/on = 1
|
||||
|
||||
/datum/effect/system/steam_trail_follow/Destroy()
|
||||
oldposition = null
|
||||
return ..()
|
||||
|
||||
/datum/effect/system/steam_trail_follow/set_up(atom/atom)
|
||||
attach(atom)
|
||||
oldposition = get_turf(atom)
|
||||
|
||||
/datum/effect/system/steam_trail_follow/start()
|
||||
if(!src.on)
|
||||
src.on = 1
|
||||
src.processing = 1
|
||||
if(src.processing)
|
||||
src.processing = 0
|
||||
spawn(0)
|
||||
if(src.number < 3)
|
||||
var/obj/effect/effect/steam/I = new /obj/effect/effect/steam(src.oldposition)
|
||||
src.number++
|
||||
src.oldposition = get_turf(holder)
|
||||
I.dir = src.holder.dir
|
||||
spawn(10)
|
||||
if(I)
|
||||
qdel(I)
|
||||
src.number--
|
||||
spawn(2)
|
||||
if(src.on)
|
||||
src.processing = 1
|
||||
src.start()
|
||||
else
|
||||
spawn(2)
|
||||
if(src.on)
|
||||
src.processing = 1
|
||||
src.start()
|
||||
|
||||
/datum/effect/system/steam_trail_follow/proc/stop()
|
||||
src.processing = 0
|
||||
src.on = 0
|
||||
/datum/effect_system/steam_spread
|
||||
effect_type = /obj/effect/particle_effect/steam
|
||||
|
||||
Reference in New Issue
Block a user