02-24-2018, 03:30 AM
Dev, my boy Dev. I got a neat one for you in regards to this one.
You know the uhh... Geist Schritt animation? You spawn an animation that clones the character icon and makes it 'sneak' forth until it's fully invisible and deleted, right?
Why don't you make it so that Distortion makes those "Geist Schritt Afterimage Clones" spawn on different, randomized pixel_x/pixel_y around the user on a constant that is active while the buff is active?
It will make a nice effect of 'distortion' since many images are going to be projected around the character's current instance while the buff is being used, giving the illusion that light is actually being distorted around the enemy. I've seen that application better on Messatsu Realms, and since it won't use an 'animation' proc, it won't overlap Knockdown's own 'animation' proc.
A practical use is uhh... It's going to look like this, but less ugly as this is just a demonstration of what will be happening when somebody stands in place:
You know the uhh... Geist Schritt animation? You spawn an animation that clones the character icon and makes it 'sneak' forth until it's fully invisible and deleted, right?
Why don't you make it so that Distortion makes those "Geist Schritt Afterimage Clones" spawn on different, randomized pixel_x/pixel_y around the user on a constant that is active while the buff is active?
It will make a nice effect of 'distortion' since many images are going to be projected around the character's current instance while the buff is being used, giving the illusion that light is actually being distorted around the enemy. I've seen that application better on Messatsu Realms, and since it won't use an 'animation' proc, it won't overlap Knockdown's own 'animation' proc.
Code:
Something something:
-----------------
while "Distortion Buff is active"
DistortionFlick(src) //src being obviously the user/owner of this buff
-----------------
And then on another place:
mob/proc/DistortionFlick(mob/m)
while("whatever-variable-Distortion-is-assigned-to")
var/obj/DashImage/I = new
I.icon=m.icon
I.icon_state="Flight"
I.alpha=135
I.overlays=m.overlays
I.loc=m.loc
I.dir=m.dir
I.pixel_x=m.pixel_x
I.pixel_y=m.pixel_y
I.pixel_z=m.pixel_z
I.name=m.name
sleep(30) //Whatever frequency you want them to spawn around, I suggest 30-60 or so to not make toaster computers explode?
obj/DashImage
Grabbable=0
density=0
New()
spawn(2)
animate(src,pixel_x=rand(-8,8),pixel_y=rand(-8,8))
animate(src,alpha=0,time=8)
spawn(8)
del src