Other great resources: Official JS API docs, Scripting Forum
DORDER_HELPBUILD
Overview
Instruct a construction droid to help with an existing structure building site.
Availability
Warzone 3.1 Beta 1 and above.
Example
// function that will identify part-built structures:
var toPartiallyBuilt = function(struct) {
return struct.status == BEING_BUILT;
}
// function that will find free trucks:
var busyOrders = [
DORDER_BUILD, // building
DORDER_HELPBUILD, // building
DORDER_LINEBUILD, // building
DORDER_DEMOLISH, // demolishing
DORDER_REPAIR, // repairing a building
DORDER_RTR, // getting repaired
DORDER_RECYCLE, // getting recycled (not sure about this one)
DORDER_SCOUT // scouting
];
var toFreeTrucks = function(droid) {
var order = droid.order;
return !busyOrders.some( function(busy) {return order==busy;} );
}
// get list of part-built structures:
var buildingSites = enumStruct().filter(toPartiallyBuilt);
// get list of free builders:
var freeBuilders = enumDroid(me,DROID_CONSTRUCT).filter(toFreeTrucks);
// Note: Should probably check that there are buildingSites before doing a costly enumDroid()
// get our free builders to help out where needed:
if (buildingSites.length && freeBuilders.length) {
buildingSites.forEach(
function(site) {
if (freeBuilders.length) orderDroidObj(freeBuilders.shift(),DORDER_HELPBUILD,site);
}
)
}Notes
The droid's current order can be determined from it's .order property. For more information see Droid object.
There's currently no easy way to determine how many builders are helping at a building site. A side effect of this is that you can end up with way too many construction droids working on one site.
See also
BEING_BUILT – structures being built
BUILT – structures that are fully built
BEING_DEMOLISHED – structures being demolished
DORDER_BUILD – used with orderDroidBiuld()
DORDER_LINEBUILD – indicates a droid is building a row of structures
Droids – quick reference of all JS API features relating to droids
Droid object – describes a droid object
orderDroidBuild() – make a droid build a somewhere
orderDroidObj() – tell a droid to do something with something
Structure object – describes a structure object