#pragma once
#include "MicroBehaviour.h"
#include "ParticleGenerator.h"

class Army;

class HighTemplarGeneralMicroBehaviour : public MicroBehaviour {
public:
	HighTemplarGeneralMicroBehaviour( UnitModel* sub , UnitManager* u);
	virtual bool execute();
	virtual void nudge();
	void setTargetArmy(Army* a);
	void clearTargetArmy();
	void getBestStormTarget();
		void checkForMergeOpportunity();
private:
	BWAPI::Position targetPosition;
	UnitManager* unitManager;
	UnitModel* mergeTarget;
	Position armyEye;
	bool attacking;
	bool moving;
	bool just_used_stasis;
	Army* targetArmy;
	int MIN_STORM_NEIGHBOURS;
	int STORM_CONFIDENCE;
	int STORM_CONFIDENCE_THRESHOLD;
	int STORM_COOLDOWN;
	int STORM_INSPECTION_COOLDOWN;
	int preEnergy;

	bool isMerging;

protected:


};