void TransportAgent::computeActions() { if (unit->isBeingConstructed()) return; int currentLoad = getCurrentLoad(); int eCnt = enemyUnitsWithinRange(unit->getType().sightRange()); if (eCnt == 0) { if (currentLoad < maxLoad) { BaseAgent* toLoad = findUnitToLoad(maxLoad - currentLoad); if (toLoad != NULL) { unit->load(toLoad->getUnit()); return; } } } else { if (currentLoad > 0) { TilePosition t = unit->getTilePosition(); unit->unloadAll(); return; } } defensive = true; NavigationAgent::getInstance()->computeMove(this, goal, defensive); }
double Motor::getLoad() { return getCurrentLoad(); }