#pragma once
#include <BWAPI.h>
#include "KoraBot.h"
#include "Macro.h"

using namespace BWAPI;
using namespace Filter;

class CBase
{
public:
	CBase(BWAPI::TilePosition tp);
	CBase(BWAPI::Unit unit);
	CBase();
	const BWEM::Area* area;
	bool complete;
	int completedTime;
	int creepColonyCount;
	BWAPI::TilePosition defenseLocation;
	bool exposedToCenter;
	int lastAttack;
	int lastSeen;
	int mineralWorkers;
	int mineralPatches;
	int minsAmount;
	int gasWorkers;
	int gasPatches;
	int gasAmount;
	int originalMinerals;
	int originalGas;
	BWAPI::Position position;
	bool startLocation;
	int sporeCount;
	int sunkenCount;
	BWAPI::TilePosition tilePosition;
	BWAPI::Unit base;

	// functions
	void addWorker(std::string resource);
	int desiredSporeCount();
	int desiredSunkenCount();
	int extractorsBuilt();
	void getDefense();
	void getResources();
	void initialize();
	void initializeResources();
	bool isExposedToCenter();
	bool isOwned();
	bool isSaturated(std::string resource);
	bool isStartLocation();
	void setDefenseLocation();
	void subtractWorker(std::string resource);
	int techCount();
};
