Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Distorted distortion. [Distortion vs Knockdown bug]
#1
Whenever someone gets knocked down, while using Distortion buff from Spellthief, their icon pauses the animation making 'Distortion' really live up to it's name.
[Image: ht_pudding_the_fox_04_mt_140821_16x9_384.jpg]
Reply
#2
I suspect this occurs for everything that applies an animation effect. I think a fix will have to wait until after we update to the next BYOND version which has a new flag that should fix it.
Reply
#3
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.

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
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:

[Image: distortion_example_-_copia.gif]
[Image: ht_pudding_the_fox_04_mt_140821_16x9_384.jpg]
Reply
#4
It's not good to create objects repeatedly and delete them. Calling del causes significant overhead.
Reply
#5
It had a better use in Messatsu because it didn't have a system over a system over a system like SL2, I can imagine the server tanking from it. Especially if that was used in multiple mobs (imagine four Summoner/Spellthieves enchanting their 7-12 Youkai, OOF...), I understand.

Back to the drawing board.
[Image: ht_pudding_the_fox_04_mt_140821_16x9_384.jpg]
Reply
#6
What if you just had one or two overlays blinking in and out of view, either via the image or transparency manipulation in-game, and then repositioned those overlays in time with their disappearance? That would have the same visual effect without having to create and delete objects.
Reply
#7
Knockdown uses the same handler as Distortion (animate, iirc), this wouldn't be any different in regards to the interaction with KD, just make Distortion more beautiful I suppose?
[Image: ht_pudding_the_fox_04_mt_140821_16x9_384.jpg]
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)
Sigrogana Legend 2 Discord