Class: AttackPlan

AttackPlan()

This is an attack plan: It deals with everything in an attack, from picking a target to picking a path to it To making sure units are built, and pushing elements to the queue manager otherwise It also handles the actual attack, though much work is needed on that.

Constructor

new AttackPlan()

Source:

Methods

Abort()

reset any units
Source:

addBuildOrder()

Adds a build order. If resetQueue is true, this will reset the queue.
Source:

canStart()

Returns true if the attack can be executed at the current time Basically it checks we have enough units.
Source:

checkTargetObstruction()

Check that we can have a path to this target otherwise we may be blocked by walls and try to react accordingly This is done only when attacker and target are on the same land
Source:

defaultTargetFinder()

Default target finder aims for conquest critical targets We must apply the *same* selection (isValidTarget) as done in getNearestTarget
Source:

getAttackAccess()

The center position of this attack may be in an inaccessible area. So we use the access of the unit nearest to this center position.
Source:

getNearestTarget()

sameLand true means that we look for a target for which we do not need to take a transport
Source:

raidTargetFinder()

Raid target finder aims at destructing foundations from which our defenseManager has attacked the builders
Source:

reassignFastUnit()

Reassign one (at each turn) FastMoving unit to fasten raid preparation.
Source:

rushTargetFinder()

Rush target finder aims at isolated non-defended buildings
Source:

setRallyPoint()

Set rally point at the border of our territory
Source:

StartAttack()

Executes the attack plan, after this is executed the update function will be run every turn If we're here, it's because we have enough units.
Source:

update()

Runs every turn after the attack is executed
Source:

updatePreparation()

Three returns possible: 1 is "keep going", 0 is "failed plan", 2 is "start".
Source: