コード例 #1
0
ファイル: GatherTask.cpp プロジェクト: Excolo/StarcraftBot
bool GatherTask::preUpdate()
{
	if(hasEnded())
		return true;

	updateRequirements();

	return false;
}
コード例 #2
0
ファイル: TechTask.cpp プロジェクト: Excolo/StarcraftBot
bool TechTask::preUpdate()
{
	if(BWAPI::Broodwar->self()->hasResearched(mType))
		complete();

	if((isStopped() || isCanceled() || isCompleted()) && mUnit && !mUnit->isResearching())
		return true;

	updateRequirements();

	return false;
}
コード例 #3
0
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;
}
コード例 #4
0
ファイル: DefaultSquad.cpp プロジェクト: SPQRBrutus/skynetbot
bool DefaultSquadTask::preUpdate()
{
	updateRequirements();

	return hasEnded();
}