bool GatherTask::preUpdate() { if(hasEnded()) return true; updateRequirements(); return false; }
bool TechTask::preUpdate() { if(BWAPI::Broodwar->self()->hasResearched(mType)) complete(); if((isStopped() || isCanceled() || isCompleted()) && mUnit && !mUnit->isResearching()) return true; updateRequirements(); return false; }
bool ConstructionTask::preUpdate() { if(mProducedUnit) { if(mProducedUnit->exists()) { freeResources(); freeLocation(); } if(!isStopped() && !isCanceled() && mProducedUnit->isCompleted()) { complete(); return true; } } if(mReservedLocation) { if(hasEnded()) freeLocation(); else if(isPaused() || isStopped()) { freeResources(); mRequiredSatisfyTime = Requirement::maxTime; mRequiredDelayTime = Requirement::maxTime; mReservedLocation->setStartTime(Requirement::maxTime); } } if(!shouldReturnUnit()) updateRequirements(); if(mBuilder && finishedWithBuilder() && (mType.getRace() == BWAPI::Races::Protoss || !mBuilder->isConstructing())) return true; return false; }
bool DefaultSquadTask::preUpdate() { updateRequirements(); return hasEnded(); }