2 #ifndef SHARED__HEXAGON__H
3 #define SHARED__HEXAGON__H
8 #include <boost/serialization/access.hpp>
9 #include <boost/serialization/vector.hpp>
13 class BarbarianVillage;
20 #include "Resource.hpp"
21 #include "FieldLevel.hpp"
22 #include "BarbarianVillage.hpp"
23 #include "Barbarian.hpp"
24 #include "ControlPawn.hpp"
25 #include "Caravan.hpp"
34 std::shared_ptr<Resource> hexResource;
36 std::vector<std::shared_ptr<std::variant<Caravan,Barbarian,BarbarianVillage,ControlPawn,City>>> elementsList = {};
38 friend class boost::serialization::access ;
42 FieldLevel getFieldLevel ();
43 std::vector<std::shared_ptr<std::variant<Caravan,Barbarian,BarbarianVillage,ControlPawn,City>>> getElements ();
44 void setFieldType (FieldLevel field);
45 void addElement (std::shared_ptr<std::variant<Caravan,Barbarian,BarbarianVillage,ControlPawn,City>> element);
46 void removeElement (std::shared_ptr<std::variant<Caravan,Barbarian,BarbarianVillage,ControlPawn,City>> element);
49 template<
class Archive>
void serialize (Archive& ar,
const unsigned int version);
50 template <
class Archive>
void save (Archive& ar,
const unsigned int version)
const;
51 template <
class Archive>
void load (Archive& ar,
const unsigned int version);
class Hexagon -
Definition: Hexagon.hpp:31