As reported by feldfeld and discussed on IRC, there is a fundamental problem with fast moving units and MP turns.
- movement is "all or nothing"
- Over 500ms MP turns, cavalry can move by slightly more than 9 meter
- their attack range is only 4 meters
- entities have to account for their target moving later in the turn if they want to be in range by next turn
Entities can try to move ahead of their target, thus colliding with them, thus not moving at all, thus never actually going in range.
This happens less if the ID order is reversed because the chased unit moves first, and the chaser has ample room to actually catch up a little. However, if the target isn't actually moving very fast (typically, a trader or a muskox), then the cavalry, which is still going a little ahead of its target, might run in the same issue regardless (it's, in this case, a speed ∆ problem).
Note that this diff introduces another problem, which can be argued to be less bad: the chaser will go through the attacker if its ID is lower and end up "blocking" the attacker when he tries to move (since the move is 'committed'). Thus chased units will suddenly stop. This makes chasing much more efficient compared in the "lower ID" case, which is a little annoying, but perhaps better than making chase just not work at all.
It's quite stat-dependent and only seems to happen with cav-on-cav in A24, so I think it might be fixed by tweaking cav stats.
See test map I'll attach tomorrow & likewise video.