1 #ifndef GAMES_CATASTROPHE_STRUCTURE_H
2 #define GAMES_CATASTROPHE_STRUCTURE_H
14 #include <unordered_map>
16 #include <initializer_list>
18 #include "../../joueur/src/any.hpp"
20 #include "game_object.hpp"
22 #include "impl/catastrophe_fwd.hpp"
82 Structure_(std::initializer_list<std::pair<std::string, Any&&>> init);
83 Structure_() : Structure_({}){}
84 virtual void resize(
const std::string& name, std::size_t size)
override;
85 virtual void change_vec_values(
const std::string& name, std::vector<std::pair<std::size_t, Any>>& values)
override;
86 virtual void remove_key(
const std::string& name, Any& key)
override;
87 virtual std::unique_ptr<Any> add_key_value(
const std::string& name, Any& key, Any& value)
override;
88 virtual bool is_map(
const std::string& name)
override;
89 virtual void rebind_by_name(Any* to_change,
const std::string& member, std::shared_ptr<Base_object> ref)
override;
100 #endif // GAMES_CATASTROPHE_STRUCTURE_H
const Player & owner
The owner of this Structure if any, otherwise null.
Definition: structure.hpp:54
const Tile & tile
The Tile this Structure is on.
Definition: structure.hpp:59
A Tile in the game that makes up the 2D map grid.
Definition: tile.hpp:37
An object in the game. The most basic class that all game classes should inherit from automatically...
Definition: game_object.hpp:37
const int & materials
The number of materials in this Structure. Once this number reaches 0, this Structure is destroyed...
Definition: structure.hpp:49
A structure on a Tile.
Definition: structure.hpp:37
const std::string & type
The type of Structure this is ('shelter', 'monument', 'wall', 'road', 'neutral'). ...
Definition: structure.hpp:64
const int & effect_radius
The range of this Structure's effect. For example, a radius of 1 means this Structure affects a 3x3 s...
Definition: structure.hpp:44
A player in this game. Every AI controls one player.
Definition: player.hpp:37