#pragma once
#include "TaskBase.h"

class TrainingTask : public TaskBase {
public:
	TrainingTask( BaseModel* base, BWAPI::UnitType unitType, Overseer* ov);
	virtual bool canInitialize();
	virtual bool execute();
	virtual void monitor();
	virtual bool isExecuting();
	virtual bool isFinished();
	virtual bool isInitialized();
	virtual UnitType getBuildType() { return type; };
	virtual void setTargetBase(BaseModel* b);
	virtual void setRallyLocation(Position p);
		virtual void setRallyLocation(int baseID);
		bool findTrainingTarget();
		Position findPointOnChokePoint(bool frontOrBack);
private:
	Position rallyLoc;
	int rallyBaseID;
	bool trainingBegun;
	UnitModel* targetConstructor;
protected:

};
