Deep RTS
Constants.h
Go to the documentation of this file.
1//
2// Created by Per-Arne on 24.02.2017.
3//
4#pragma once
5
6#include <string>
7#include <unordered_map>
8#include <map>
9
10#define DEBUG(x) do { std::cerr << x; } while (0)
11
12namespace Constants{
13
14 const int MAX_PLAYERS = 8;
15 const int MAX_UNITS = 1000;
16 const int ACTION_MIN = 1;
17 const int ACTION_MAX = 16; // Set based on last action in enum
18
19
20 enum Unit {
22 Peon = 2,
24
27 Farm = 6,
28 Archer = 7,
29
30 None = -1
31 };
32
33
34 enum Race {
35 Human = 1,
36 Orc = 2
37 };
38
41 Defeat = 2,
42 Playing = 3
43 };
44
46 Lumber = 1,
47 Gold = 2,
48 Stone = 3,
49 Food = 4
50 };
51
52 const std::unordered_map<std::string, int> TypeToID = {
53 {"Spawn", 1},
54 {"Grass", 2},
55 {"Wall", 3},
56 {"Desert", 4},
57 {"Water", 5},
58 {"Lumber", 6},
59 {"Gold", 7},
60 {"Stone", 8},
61 };
62
63
64 enum State {
70 Combat = 6,
71 Dead = 7,
72 Idle = 8,
73 Base = -1,
74 };
75
78 All = 2,
80 Harvestable = 4
81 };
82
83 enum Direction {
84 Down = 1,
85 Up = 2,
86 Left = 3,
87 Right = 4,
90 UpLeft = 7,
91 UpRight = 8
92 };
93
94 enum Action {
99 MoveUp = 5,
105
106 Attack = 11,
108
109 Build0 = 13,
110 Build1 = 14,
111 Build2 = 15,
113 };
114
115 class Map{
116 public:
117 [[maybe_unused]] inline static const std::string TEN = "10x10-2v2.json";
118 [[maybe_unused]] inline static const std::string FIFTEEN = "15x15-2v2.json";
119 [[maybe_unused]] inline static const std::string TWENTYONE = "21x21-2v2.json";
120 [[maybe_unused]] inline static const std::string THIRTYONE = "31x31-2v2.json";
121 [[maybe_unused]] inline static const std::string THIRTYONE_FOUR = "31x31-4v4.json";
122 [[maybe_unused]] inline static const std::string THIRTYONE_SIX = "31x31-6v6.json";
123 [[maybe_unused]] inline static const std::string FIND_GOLD = "scenario-find-gold.json";
124 };
125
126 const std::map<int, std::string> ActionToName = {
127 {PreviousUnit, "Prev Unit"},
128 {NextUnit, "Next Unit"},
129 {MoveLeft, "Move Left"},
130 {MoveRight, "Move Right"},
131 {MoveUp, "Move Up"},
132 {MoveDown, "Move Down"},
133 {MoveUpLeft, "Move Up Left"},
134 {MoveUpRight, "Move Up Right"},
135 {MoveDownLeft, "Move Down Left"},
136 {MoveDownRight, "Move Down Right"},
137 {Attack, "Attack"},
138 {Harvest, "Harvest"},
139 {Build0, "Build 0"},
140 {Build1, "Build 1"},
141 {Build2, "Build 2"},
142 {NoAction, "No Action"}
143 };
144
145
146}
Definition: Building.h:11
Definition: Combat.h:11
Definition: Constants.h:115
static const std::string THIRTYONE_FOUR
Definition: Constants.h:121
static const std::string THIRTYONE_SIX
Definition: Constants.h:122
static const std::string TEN
Definition: Constants.h:117
static const std::string FIFTEEN
Definition: Constants.h:118
static const std::string TWENTYONE
Definition: Constants.h:119
static const std::string THIRTYONE
Definition: Constants.h:120
static const std::string FIND_GOLD
Definition: Constants.h:123
Definition: Dead.h:11
Definition: Despawned.h:13
Definition: Footman.h:10
Definition: Harvesting.h:13
Definition: Idle.h:11
Definition: Spawning.h:12
Definition: Unit.h:25
Definition: Walking.h:12
Definition: Constants.h:12
const int MAX_PLAYERS
Definition: Constants.h:14
const int ACTION_MIN
Definition: Constants.h:16
PlayerState
Definition: Constants.h:39
@ Playing
Definition: Constants.h:42
@ Victory
Definition: Constants.h:40
@ Defeat
Definition: Constants.h:41
const std::unordered_map< std::string, int > TypeToID
Definition: Constants.h:52
Action
Definition: Constants.h:94
@ MoveDown
Definition: Constants.h:100
@ MoveUpRight
Definition: Constants.h:102
@ Attack
Definition: Constants.h:106
@ Build2
Definition: Constants.h:111
@ MoveDownRight
Definition: Constants.h:104
@ MoveUpLeft
Definition: Constants.h:101
@ NoAction
Definition: Constants.h:112
@ MoveUp
Definition: Constants.h:99
@ MoveLeft
Definition: Constants.h:97
@ PreviousUnit
Definition: Constants.h:95
@ Build1
Definition: Constants.h:110
@ Build0
Definition: Constants.h:109
@ MoveDownLeft
Definition: Constants.h:103
@ Harvest
Definition: Constants.h:107
@ NextUnit
Definition: Constants.h:96
@ MoveRight
Definition: Constants.h:98
Race
Definition: Constants.h:34
@ Human
Definition: Constants.h:35
@ Orc
Definition: Constants.h:36
Pathfinding
Definition: Constants.h:76
@ All
Definition: Constants.h:78
@ Walkable
Definition: Constants.h:77
@ Attackable
Definition: Constants.h:79
@ Harvestable
Definition: Constants.h:80
Resource
Definition: Constants.h:45
@ Stone
Definition: Constants.h:48
@ Lumber
Definition: Constants.h:46
@ Gold
Definition: Constants.h:47
@ Food
Definition: Constants.h:49
State
Definition: Constants.h:64
@ Base
Definition: Constants.h:73
const int ACTION_MAX
Definition: Constants.h:17
Direction
Definition: Constants.h:83
@ UpRight
Definition: Constants.h:91
@ Down
Definition: Constants.h:84
@ Up
Definition: Constants.h:85
@ DownLeft
Definition: Constants.h:88
@ DownRight
Definition: Constants.h:89
@ Right
Definition: Constants.h:87
@ UpLeft
Definition: Constants.h:90
@ Left
Definition: Constants.h:86
const int MAX_UNITS
Definition: Constants.h:15
const std::map< int, std::string > ActionToName
Definition: Constants.h:126
@ Farm
Definition: Constants.h:27
@ None
Definition: Constants.h:30
@ Peasant
Definition: Constants.h:21
@ Archer
Definition: Constants.h:28
@ Barracks
Definition: Constants.h:25
@ Peon
Definition: Constants.h:22
@ TownHall
Definition: Constants.h:23