Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/ai/petra/worker.js
Show First 20 Lines • Show All 342 Lines • ▼ Show 20 Lines | else if (subrole === PETRA.Worker.SUBROLE_BUILDER) | ||||
} | } | ||||
// okay so apparently we aren't working. | // okay so apparently we aren't working. | ||||
// Unless we've been explicitely told to keep our role, make us idle. | // Unless we've been explicitely told to keep our role, make us idle. | ||||
let target = gameState.getEntityById(ent.getMetadata(PlayerID, "target-foundation")); | let target = gameState.getEntityById(ent.getMetadata(PlayerID, "target-foundation")); | ||||
if (!target || target.foundationProgress() === undefined && target.needsRepair() === false) | if (!target || target.foundationProgress() === undefined && target.needsRepair() === false) | ||||
{ | { | ||||
ent.setMetadata(PlayerID, "subrole", PETRA.Worker.SUBROLE_IDLE); | ent.setMetadata(PlayerID, "subrole", PETRA.Worker.SUBROLE_IDLE); | ||||
ent.setMetadata(PlayerID, "target-foundation", undefined); | ent.setMetadata(PlayerID, "target-foundation", undefined); | ||||
if (this.baseID != gameState.ai.HQ.basesManager.baselessBase().ID) | // If worker elephant, move away to avoid being trapped in between constructions | ||||
if (ent.hasClass("Elephant")) | |||||
this.moveToGatherer(gameState, ent, true); | |||||
else if (this.baseID != gameState.ai.HQ.basesManager.baselessBase().ID) | |||||
{ | { | ||||
// reassign it to something useful | // reassign it to something useful | ||||
this.base.reassignIdleWorkers(gameState, [ent]); | this.base.reassignIdleWorkers(gameState, [ent]); | ||||
this.update(gameState, ent); | this.update(gameState, ent); | ||||
return; | return; | ||||
} | } | ||||
} | } | ||||
else | else | ||||
▲ Show 20 Lines • Show All 762 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator