Civilization
Player.hpp
1 // Generated by dia2code
2 #ifndef SHARED__PLAYER__H
3 #define SHARED__PLAYER__H
4 
5 #include <mutex>
6 #include <string>
7 #include <array>
8 #include <memory>
9 #include <boost/asio.hpp>
10 #include <vector>
11 
12 namespace shared {
13  class Player;
14  class ControlPawn;
15  class Caravan;
16  class City;
17  class Card;
18  class Map;
19  class Rules;
20  class questionAndAnswer;
21 }
22 
23 #include "CardsEnum.hpp"
24 #include "ResourceEnum.hpp"
25 #include "ControlPawn.hpp"
26 #include "Caravan.hpp"
27 #include "City.hpp"
28 #include "Card.hpp"
29 #include "Map.hpp"
30 #include "Rules.hpp"
31 #include "questionAndAnswer.hpp"
32 
33 namespace shared {
34 
36  class Player {
37  // Associations
38  // Attributes
39  public:
40  std::mutex socketReadMutex;
41  std::mutex socketWriteMutex;
42  struct questionAndAnswer qAndA ;
43  std::atomic<bool> connectedToSocket;
44  private:
45  std::string username;
46  std::array<unsigned,4> resources;
47  unsigned int techLevel = 0;
48  int wonderRessources[4];
49  std::shared_ptr<boost::asio::ip::tcp::socket> playerSocket;
50  std::array<std::shared_ptr<Card>,5> listOfPriorityCard;
51  std::vector<std::shared_ptr<Caravan>> listOfCaravan;
52  std::vector<std::shared_ptr<ControlPawn>> listOfControlPawn;
53  std::vector<std::shared_ptr<City>> listOfCity;
54  // Operations
55  public:
56  Player ();
57  Player (std::string username);
58  bool operator== (Player & otherPlayer);
59  std::string getName ();
60  unsigned getLevelOfCard (CardsEnum cardId);
61  boost::asio::ip::tcp::socket & getSocket ();
62  unsigned getNumberOfBox (CardsEnum cardId);
63  std::vector<std::shared_ptr<ControlPawn>> getControlPawns ();
64  unsigned getDificultyOfCard (CardsEnum cardType);
65  std::vector<std::shared_ptr<Caravan>> getCaravans ();
66  std::vector<std::shared_ptr<City>> getCityList ();
67  unsigned getTechLevel ();
68  unsigned getNumberOfResource (ResourceEnum resourceType);
69  std::array<std::shared_ptr<Card>,5> getListOfPriorityCards ();
70  void setSocket (boost::asio::ip::tcp::socket& clientSocket);
71  void setUsername (std::string username);
72  void setDificultyOfCard (CardsEnum cardType, unsigned newDificulty);
73  void upgradeCard (CardsEnum cardId);
74  std::array<int,3> incrementTechWheel (unsigned toIncrement);
75  bool haveResource (ResourceEnum resource);
76  void addResource (ResourceEnum resourceToAdd);
77  void addBox (CardsEnum cardType, unsigned numberOfBox);
78  void deleteBox (CardsEnum cardType, unsigned numberOfBox);
79  void addControlPawn (std::shared_ptr<ControlPawn> controlPawnPtr);
80  void removeControlPawn (std::shared_ptr<ControlPawn> controlPawnPtr);
81  void addCaravan (std::shared_ptr<Caravan> caravanPtr);
82  void addCity (std::shared_ptr<City> cityPtr);
83  void disconnectPlayer ();
84  // Setters and Getters
85  };
86 
87 };
88 
89 #endif
class Player -
Definition: Player.hpp:36
Definition: questionAndAnswer.hpp:11