So I'm trying to make an example for someone else. He wants to make a gem game where you have gems that fall down when other gems are removed from the board. He told me he doesn't want to be creating or destroying any new gems on the board, he just wants to use the existing gems and change their animations to make it look like they're being moved around. He told me he already has an array with IDs and stuff set up so it would be easier this way for him.
So his idea was to take a column, and shift all of the gems upwards by 1 tile, then "transfer" all the animations down a tile. Therefore there will be an empty space tile where the user just clicked and it looks like the tiles above weren't changed from before. This also allows a new tile to be at the top of the column that will fall down with the rest of the gems. Then the column would slide down to occupy the empty space.
Now I did all of this with fastloops and it works great for the most part. However if I try to destroy another block in the same column as I did before, the system breaks. I'll link the .mfa and a GIF showing what's happening. Any help would be appreciated, I'm not sure why this is happening. I tried to organize and comment my code as best as I could to help people understand my thought process. Thanks!
GIF: Please login to see this link.
MFA: Please login to see this link.