#pragma once

#include <stdlib.h>
#include <BWAPI.h>
#include "CUnit.h"
#include "Macro.h"

using namespace BWAPI;

class Military
{
public:
	static void attackMaxed();
	static void attackNonMaxed();
	static void addSquadlessUnits(int squadIndex);
	static void checkAttack();
	static void checkDefense();
	static double checkEnemiesAt(CBase base);
	static void checkSquads();
	static bool droneDefenseNeeded();
	static std::pair<TilePosition, int> getAttackLocation();
	static int getAttackSquadsIndex();
	static double getBaseDefense(CBase b, std::string type, int playerID);
	static int getClosestSquad(TilePosition tp);
	static int getIdleSquad();
	static std::pair<int, int> getMostVulnerableBase(int playerID);
	static bool inThreatRange(TilePosition tp, CUnit unit);
	static bool isThreatened(TilePosition tp);
	static double likelihoodToAttack();
	static void sendDefense(TilePosition tp, int attackerScore, int defenseScore);
	static bool shouldAttackNonMaxed();
};