Find out if a specific propulsion can travel between two points on the map...
Syntax
var returnValue = propulsionCanReach(propulsion, x1, y1, x2, y2);
Parameters
Parameter
Type
Mandatory
Notes
Game version
propulsion
String
A string defining the propulsion id (see propulsion.txt or propulsion.ini)
3.2
x1
Number
The x co-ordinate of the start position
3.2
y1
Number
The y co-ordinate of the start position
3.2
x2
Number
The x co-ordinate of the destination
3.2
y2
Number
The y co-ordinate of the destination
3.2
Return value
Value
Type
Notes
Game version
true
Boolean
The propulsion can travel between the two points (ignores player-build blockades)
3.1 Beta 1
false
Boolean
The propulsion is not capable of travelling between the two points.
3.1 Beta 1
<error>
Error
Invalid parameters or droid not found.
3.1 Beta 1
Notes
The function ignores player built structures (tank traps, walls, etc) and features (trees, skyscrapers, etc). The assumption is that you'll blow them up on the way to your destination.
If you plan to scan all tiles on the map for both land and hover access, that would be as much as 131,072 iterations on a 256x256 map! And each check is doing path finding to determine the route that propulsion would take from A to B. And you could have up to 9 AIs (and even 10 if scavengers join the fun) doing the same thing at the same time.
So, if you plan to scan the whole map, do it incrementally using a timer and only process a few tiles at a time. Note: You don't need to change the start position (your base), you'd just be changing the destination.
Example
// get my start position
var myPos = startPositions(playerData[me].position);
// get player 2's start position
var theirPos = startPositions(playerData[1].position);
if ( propulsionCanReach("wheeled01", myPos.x, myPos.y, theirPos.x, theirPos.y) ) {
// I can reach them with wheels, half-track, hover, track and vtol
} else if ( propulsionCanReach("hover01", myPos.x, myPos.y, theirPos.x, theirPos.y) ) {
// I can only reach them with hover and VTOL
} else {
// I can only reach them with VTOL (assuming VTOLs can get anywhere on the map)
}
Availability 3.2+
Requires:
Warzone 3.1 Beta 1 and above.
Contents
Jump to:
See also
Related articles:
droidCanReach() – check if a specific droid can reach some destination from it's current position