ID:2096985
 
Not a bug
BYOND Version:510
Operating System:Windows 10 Pro 64-bit
Web Browser:Firefox 47.0
Applies to:Dream Seeker
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:

If an animation is called to change pixel_x or pixel_y without a time argument, any animations for .color will be completed immediately. The reverse is also true.

Numbered Steps to Reproduce Problem:

Animate color with any noticeable timeframe

Animate pixel_x/y without a time argument

Code Snippet (if applicable) to Reproduce Problem:
mob

verb // Replace AAAA with anything
test_color()
animate(AAAA, color=rgb(50,50,50), time=30)


test_pixel_x()
animate(AAAA, pixel_x=0)


Expected Results:

animations work normally

Actual Results:

animations are ended as if their time was 0

Does the problem occur:
Every time? Or how often?
Every time
In other games?
I would assume so
In other user accounts?
I would assume so
On other computers?
Yes

When does the problem NOT occur?

When a time argument is given to the second animation.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)

Unsure

Workarounds:

None so far.

Is this not an expected limitation of animate(): you can only have one animate running at a time?

You're starting a new animation, immediately ending the preceding one and jumping to its final state, no?
In response to GinjaNinja32
GinjaNinja32 wrote:
Is this not an expected limitation of animate(): you can only have one animate running at a time?

You're starting a new animation, immediately ending the preceding one and jumping to its final state, no?

Thinking this.
I'm animating a different variable with the second animation though.

If you set time variables on both, then both animations play normally, which means multiple animations can work on a single object just fine.

I'm unsure what other variables interact this way.
Did some more testing, the animations will both play if they both have time arguments, but the first animation always adopts the animation time of the second.

Example:
animate(src, pixel_x = 10, time= 100)
animate(src, color=rgb(0,0,0), time=50)
Both will finish in 5 seconds.
If the second animation is called 2 seconds into the first, the first will then complete over the course of 5 seconds, giving it a total time of 7 seconds.

I'm likely wrong about multiple animations, and it's more that it merges all current animations into one, based on the time given in the latest animation call.

That's understandable, but that seems like an unwanted result.

If I wish to change something's color to red over 10 seconds, and then I would like to make it wiggle by modifying pixel_x for 1 second, I should be able to do that, or at least I'd hope to be able to do so.
If I wish to change something's color to red over 10 seconds, and then I would like to make it wiggle by modifying pixel_x for 1 second, I should be able to do that, or at least I'd hope to be able to do so.

Multiple parallel animation chains are not supported in 510 and below.
Parallel animations are a goal I'm shooting for in 511, but the current behavior is by no means a bug.
Lummox JR resolved issue (Not a bug)
Well, looks like I'm waiting for 511 until I can release the full demo then =|

That's a feature that I pretty much need for several effects to function properly.