2 #ifndef SHARED__PLAYER__H
3 #define SHARED__PLAYER__H
9 #include <boost/asio.hpp>
20 class questionAndAnswer;
23 #include "CardsEnum.hpp"
24 #include "ResourceEnum.hpp"
25 #include "ControlPawn.hpp"
26 #include "Caravan.hpp"
31 #include "questionAndAnswer.hpp"
40 std::mutex socketReadMutex;
41 std::mutex socketWriteMutex;
43 std::atomic<bool> connectedToSocket;
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;
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 ();
class Player -
Definition: Player.hpp:36
Definition: questionAndAnswer.hpp:11