forked from 0ad/0ad
petra: do not anymore assume that workers are necessarily builders and gatherers
This was SVN commit r17821.
This commit is contained in:
parent
8725c3ae7a
commit
8d0223d6aa
@ -745,14 +745,13 @@ m.Entity = m.Class({
|
||||
return undefined;
|
||||
},
|
||||
|
||||
isGarrisonHolder: function() { return this.get("GarrisonHolder"); },
|
||||
isBuilder: function() { return this.get("Builder") !== undefined; },
|
||||
isGatherer: function() { return this.get("ResourceGatherer") !== undefined; },
|
||||
|
||||
isGarrisonHolder: function() { return this.get("GarrisonHolder") !== undefined; },
|
||||
garrisoned: function() { return this._entity.garrisoned; },
|
||||
|
||||
canGarrisonInside: function() { return this._entity.garrisoned.length < this.garrisonMax(); },
|
||||
|
||||
// TODO: visibility
|
||||
|
||||
move: function(x, z, queued = false) {
|
||||
Engine.PostCommand(PlayerID,{"type": "walk", "entities": [this.id()], "x": x, "z": z, "queued": queued });
|
||||
return this;
|
||||
|
@ -633,10 +633,10 @@ m.BaseManager.prototype.reassignIdleWorkers = function(gameState, idleWorkers)
|
||||
if (ent.hasClass("Worker"))
|
||||
{
|
||||
// Just emergency repairing here. It is better managed in assignToFoundations
|
||||
if (this.anchor && this.anchor.needsRepair() &&
|
||||
if (ent.isBuilder() && this.anchor && this.anchor.needsRepair() &&
|
||||
gameState.getOwnEntitiesByMetadata("target-foundation", this.anchor.id()).length < 2)
|
||||
ent.repair(this.anchor);
|
||||
else
|
||||
else if (ent.isGatherer())
|
||||
{
|
||||
let mostNeeded = gameState.ai.HQ.pickMostNeededResources(gameState);
|
||||
for (let needed of mostNeeded)
|
||||
@ -674,14 +674,12 @@ m.BaseManager.prototype.gatherersByType = function(gameState, type)
|
||||
m.BaseManager.prototype.pickBuilders = function(gameState, workers, number)
|
||||
{
|
||||
var availableWorkers = this.workers.filter(function (ent) {
|
||||
if (!ent.position())
|
||||
if (!ent.position() || !ent.isBuilder())
|
||||
return false;
|
||||
if (ent.getMetadata(PlayerID, "plan") == -2 || ent.getMetadata(PlayerID, "plan") == -3)
|
||||
return false;
|
||||
if (ent.getMetadata(PlayerID, "transport"))
|
||||
return false;
|
||||
if (ent.hasClass("Cavalry") || ent.hasClass("Ship"))
|
||||
return false;
|
||||
return true;
|
||||
}).toEntityArray();
|
||||
availableWorkers.sort(function (a,b) {
|
||||
|
Loading…
Reference in New Issue
Block a user