14 static const Tag NullTag = 0LL;
58 enum class ChatChannel {
88 ai_build(RandomBuild) {
92 const std::string& in_player_name =
"",
93 Difficulty in_difficulty = Easy, AIBuild in_ai_build = RandomBuild):
96 player_name(in_player_name),
98 difficulty(in_difficulty),
99 ai_build(in_ai_build) {
104 Race race,
Agent* agent,
const std::string& player_name =
"") {
105 return PlayerSetup(PlayerType::Participant, race, agent, player_name);
109 Race race, Difficulty difficulty = Easy, AIBuild ai_build = RandomBuild,
110 const std::string& player_name =
"") {
111 return PlayerSetup(PlayerType::Computer, race,
nullptr, player_name, difficulty, ai_build);
124 bool IsValid()
const {
125 return game_port > 0 && base_port > 0;
132 std::vector<PortSet> client_ports;
139 bool IsValid()
const {
142 if (!server_ports.IsValid())
144 if (client_ports.size() < 1)
146 for (std::size_t i = 0; i < client_ports.size(); ++i)
147 if (!client_ports[i].IsValid())
154 static const int max_path_size = 512;
155 static const int max_version_size = 32;
156 static const int max_num_players = 16;
178 race_selected(Random) {
185 unsigned int duration_gameloops;
189 std::string map_name;
190 std::string map_path;
191 std::string replay_path;
193 std::string data_version;
198 duration_gameloops(0),
204 bool GetPlayerInfo(
ReplayPlayerInfo& replay_player_info,
int playerID)
const {
205 for (
int i = 0; i < num_players; ++i) {
206 if (playerID == players[i].player_id) {
207 replay_player_info = players[i];
215 float GetGameloopsPerSecond()
const {
216 return float(duration_gameloops) / duration;
221 PlayerResult(uint32_t player_id, GameResult result) : player_id(player_id), result(result) {};
Race race_selected
Selected player race. If the race is "Random", the race data member may be different.
Definition: sc2_gametypes.h:169
Common data types, including points, rectangles and colors.
Definition: sc2_gametypes.h:220
int apm
Player actions per minute.
Definition: sc2_gametypes.h:165
Information about a replay file.
Definition: sc2_gametypes.h:183
Definition: sc2_action.h:9
Port setup for one or more clients in a game.
Definition: sc2_gametypes.h:130
Difficulty difficulty
Difficulty: Only for playing against the built-in AI.
Definition: sc2_gametypes.h:79
Port setup for a client.
Definition: sc2_gametypes.h:115
Information about a player in a replay.
Definition: sc2_gametypes.h:159
GameResult game_result
If the player won or lost.
Definition: sc2_gametypes.h:171
int player_id
Player ID.
Definition: sc2_gametypes.h:161
Agent * agent
Agent, if one is available.
Definition: sc2_gametypes.h:70
int mmr
Player ranking.
Definition: sc2_gametypes.h:163
Race race
Race: Terran, Zerg or Protoss. Only for playing against the built-in AI.
Definition: sc2_gametypes.h:77
Setup for a player in a game.
Definition: sc2_gametypes.h:66
Definition: sc2_gametypes.h:227
AIBuild ai_build
Build type, used by computer opponent.
Definition: sc2_gametypes.h:81
PlayerType type
Player can be a Participant (usually an agent), Computer (in-built AI) or Observer.
Definition: sc2_gametypes.h:68
std::string player_name
Name of this player.
Definition: sc2_gametypes.h:72
The base class for user defined bots.
Definition: sc2_agent.h:22
Race race
Actual player race.
Definition: sc2_gametypes.h:167