#pragma once
#include "BWAPI.h"
#include "UnitModel.h"
#include "UnitManager.h"
#include "BWTA.h"
#include "TargetEvaluator.h"
#include "NudgeModule.h"
using namespace BWTA;
using namespace BWAPI;

class Overseer;


class MicroBehaviour {

public:
	virtual bool execute() = 0;
	virtual void nudge() = 0;
	virtual UnitModel* getCurrentTarget() { return currentTarget; };
	virtual int getBehaviourID() { return id;};
	virtual void setCurrentTarget(UnitModel* c) { currentTarget = c; };

private:


protected:
	UnitModel* subject;
	UnitModel* currentTarget;

	int id;
	TargetEvaluator* targettingSystem;
	
};