HomeWildfire Games

Chasing fix - ignore the target's obstruction to avoid colliding with it.

Description

Chasing fix - ignore the target's obstruction to avoid colliding with it.

Units movement is currently "all or nothing". This means that a chasing entity that moves fast enough is likely to collide with its target, if the latter is moving also. This means that it might fail to get in range if the max range is smaller than the movement speed over a turn.
This happens to be very much the case in MP, as cavalry range is 4, melee cav speed is ~20 and turns are 500ms.

This problem depends on which unit moves first (i.e. which unit is lowest-ID).

To fix this, ignore the obstruction of the target, if it is moving, when moving. This however means sometimes chasers will 'overshoot' and block their target pathing, making the chase easier than it probably should be.
Fleeing units don't suffer from this problem since they also ignore their target (and their code handles it).

This new problem introduced in this diff is heavily dependent on the exact speeds and ranges at play, and a further diff will improve the situation to acceptable levels.

Reported by: FeldFeld

Refs #5936

Differential Revision: https://code.wildfiregames.com/D3482