There are a few events to help track movements of other player units:
Information shared through these events is sufficient to properly animate transition of units.
There are two kinds of situations when server may send this message:
S2C::UNIT_ENTER message shares unit B data including unit ID which is required to interact with the unit. While message specifies exact tile where unit is located it does not indicated where exactly on the tile the unit is. If state of the unit is STANDING, then it is certainly in the middle of the cell. However, unit B may be moving to any of neighbouring cells (state: MOVING) and in this case it is not clear how to render the unit yet.
Similarly, there are two situations when server may send this message:
For client it means that future interactions with unit B are not allowed (e.g., it is not possible to attack it). Server will not disclose movement trajectory for units out of visibility area of the player.
If another player's unit B enters visibility area of the player and starts the movement, then server sends S2C::UNIT_MOVE message outlining movement trajectory for unit B. Server isn't sharing full path of unit B in this message, but shares enough to perform movement animation for several seconds. If needed, server sends additional S2C::UNIT_MOVE message to extend previously declared path of the unit, so animation can be extended as well. Also, server never shares path tiles outside of player's visibility area, except may be the last point of the path.
There are three situations when server may send stop message for another player's unit: