Zappy GUI
C++ graphic client: renderer, camera, network
Loading...
Searching...
No Matches
Resources.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <ostream>
4#include <stdexcept>
5#include <string>
6
10class Resources {
11 public:
12 int food = 0;
13 int linemate = 0;
14 int deraumere = 0;
15 int sibur = 0;
16 int mendiane = 0;
17 int phiras = 0;
18 int thystame = 0;
19
20 bool isEmpty() const
21 {
22 return food == 0 && linemate == 0 && deraumere == 0 && sibur == 0 && mendiane == 0 &&
23 phiras == 0 && thystame == 0;
24 }
25
26 std::string get_name(int index) const
27 {
28 switch (index) {
29 case 0:
30 return "Food";
31 case 1:
32 return "Linemate";
33 case 2:
34 return "Deraumere";
35 case 3:
36 return "Sibur";
37 case 4:
38 return "Mendiane";
39 case 5:
40 return "Phiras";
41 case 6:
42 return "Thystame";
43 default:
44 throw std::out_of_range("Invalid resource index");
45 }
46 }
47
48 int& operator[](size_t index)
49 {
50 switch (index) {
51 case 0:
52 return food;
53 case 1:
54 return linemate;
55 case 2:
56 return deraumere;
57 case 3:
58 return sibur;
59 case 4:
60 return mendiane;
61 case 5:
62 return phiras;
63 case 6:
64 return thystame;
65 default:
66 throw std::out_of_range("Invalid resource index");
67 }
68 }
69
70 const int& operator[](size_t index) const
71 {
72 switch (index) {
73 case 0:
74 return food;
75 case 1:
76 return linemate;
77 case 2:
78 return deraumere;
79 case 3:
80 return sibur;
81 case 4:
82 return mendiane;
83 case 5:
84 return phiras;
85 case 6:
86 return thystame;
87 default:
88 throw std::out_of_range("Invalid resource index");
89 }
90 }
91};
92
93inline std::ostream& operator<<(std::ostream& os, const Resources& res)
94{
95 os << "Food: " << res.food << ", Linemate: " << res.linemate << ", Deraumere: " << res.deraumere
96 << ", Sibur: " << res.sibur << ", Mendiane: " << res.mendiane << ", Phiras: " << res.phiras
97 << ", Thystame: " << res.thystame;
98 return os;
99}
std::ostream & operator<<(std::ostream &os, const Resources &res)
Definition Resources.hpp:93
bool isEmpty() const
int & operator[](size_t index)
static std::string get_name(int index)
int deraumere
Definition Resources.hpp:14