#pragma once
#include "BWAPI.h"
#include "UnitModel.h"
#include <vector>
#include <map>
using namespace BWAPI;
using namespace std;

class Overseer;

class ArmyStructureInferenceManager {
public:
		ArmyStructureInferenceManager(Overseer* ov);
		void calculateArmies();
		void drawArmies();
		std::vector<UnitModel*> getCollaboratorsOf(UnitModel* u);
		std::vector<UnitModel*> getCollaboratorsOf(Unit* u);
private:
	Overseer* overseer;
	std::vector<std::set<UnitModel*>> knownArmies;
	std::set<UnitModel*> assignedUnits;
	std::map<UnitModel*, std::vector<UnitModel*>> collaboratorMap;

protected:


};