ID:2895299
 
Not a bug
BYOND Version:514
Operating System:Windows 10 Pro 64-bit
Web Browser:Firefox 118.0
Applies to:DM Language
Status: Not a bug

This is not a bug. It may be an incorrect use of syntax or a limitation in the software. For further discussion on the matter, please consult the BYOND forums.
Descriptive Problem Summary:
This came about because I was making an effect to make a mob look like a shifting dark mass with filter animations, then other code that was unaware of these filters was animating the mob to fade them to transparency. The fade out would interrupt the filter animates.

https://puu.sh/JSXAZ/f32b8ceccc.mp4

Numbered Steps to Reproduce Problem:
1. Create an object and apply a filter to it
2. Animate the filter over 10 seconds
3. Wait 5 seconds then animate the object

Code Snippet (if applicable) to Reproduce Problem:
var/mob/creature = new(locate(1, 1, 1))
creature.filters += filter(type="blur", size=0)
var/the_filter = creature.filters[1]
animate(the_filter, time=0, loop=-1, size=0)
animate(time=50, size=3)
animate(time=50, size=0)
sleep(50)
animate(creature, time=10, alpha=100)


Expected Results:
Both the filter's animation and the creature's animation to complete

Actual Results:
The filter's animation halts mid way as the creature's animate begins. There is no more looping animation.

Does the problem occur:
Every time? Yes
In other games? Tested with barebones project
In other user accounts? Both guest and logged in
On other computers? Unknown

When does the problem NOT occur?
Animating multiple filters seems to pose no problems, only when you animate the owner and its filters at the same time

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked?
Tested on 514.1589 and 515.1619

Workarounds:
Some animates on the owner can be replicated by adding a filter or overlay or such and animating that instead, but this isn't as viable in large older projects that have many animation sources from over the years.
Lummox JR resolved issue (Not a bug)
Animating an object's filters count as a new animation on the same object. You need to use the parallel flag for them to run simultaneously.
This seems like it's approaching the issue from a really structural perspective.

Like, I have no damn idea how the engine works under the hood, I just know what is accessible to me. When I think of filters I think of them as unique animateable things.
It never occurred to me that this would be intentional behavior, and I doubt it would to most users either.

It seems like structure leaking into behavior, rather then implementing something in an understandable way. I might just have weirdo brain tho, and the api we now need to wrap around animate calls has been long overdo anyhow so it's eh