#pragma once

#include <BWAPI.h>
#include <bwem.h>
#include <iostream>
#include <fstream>
#include "rapidjson\document.h"

#include "Config.h"
#include "GameCommander.h"
#include "Logger.h"
#include "MapTools.h"
//#include "The.h"

namespace UAlbertaBot
{
class UAlbertaBotModule : public BWAPI::AIModule
{
	The & the;
public:
	UAlbertaBotModule();
	void	onStart();
	void	onFrame();
	void	onEnd(bool isWinner);
	void	onUnitDestroy(BWAPI::Unit unit);
	void	onUnitMorph(BWAPI::Unit unit);
	void	onSendText(std::string text);
	void	onUnitCreate(BWAPI::Unit unit);
	void	onUnitComplete(BWAPI::Unit unit);
	void	onUnitShow(BWAPI::Unit unit);
	void	onUnitHide(BWAPI::Unit unit);
	void	onUnitRenegade(BWAPI::Unit unit);
};

}