(A) Introduce patient and intimidation parameters; Units could now get ‘impatient’ by getting stuck in a single cell for longer than the specified period. An ‘impatient’ unit get its repulsion value multiplied by its intimidation parameter as well as reduction to other unit’s pushes, allowing it a greater chance of breaking through a blockade.
(B) Implement collisions list to keep track of which unit is colliding and with who, ensuring the Collision Breaker won’t be executed more than intended.
(C) Take into account the size of the unit when calculating obstacle repulsion force.
PS: Video to be shown in next post.