#pragma once
#include "SetContainer.h"
#include <BWAPI/Race.h>
#include <BWAPI/Filters.h>
namespace BWAPI
{
// Forward Declarations
class PlayerInterface;
typedef PlayerInterface *Player;
class Unitset;
/// <summary>A set containing Player objects.</summary>
class Playerset : public SetContainer<BWAPI::Player, std::hash<void*>>
public:
/// <summary>Returns the set of all units that every player in this set owns.</summary>
///
/// @returns Unitset containing Playerset's units
/// @see PlayerInterface::getUnits
Unitset getUnits() const;
/// <summary>Returns the list of races that each player in the set is.</summary>
/// @returns Race::set containing Playerset's races
/// @see PlayerInterface::getRace
Race::set getRaces() const;
/// <summary>Sets the alliance status with all players contained in the Playerset.</summary>
/// <param name="allies">
/// Set to true to set the player to allied, or false for enemy.
/// </param>
/// <param name="alliedVictory">
/// Set to true to turn on allied victory, or false to disable it.
/// @see Game::setAlliance
void setAlliance(bool allies = true, bool alliedVictory = true);
};
}