WorldSim  inDev
2D tile-based sandbox RPG with procedurally generated fantasy world simulator 🌏
Settlement.hpp
Go to the documentation of this file.
1 #pragma once
2 #ifndef WORLDSIM_SETTLEMENT_HPP
3 #define WORLDSIM_SETTLEMENT_HPP
4 
5 #include "Location.hpp"
6 #include "Government.hpp"
7 
8 #include "Stockpile.hpp"
9 #include "WorldObjectGlobal.hpp"
10 #include "Civ.hpp"
11 
12 #include "ItemRequest.cpp"
13 #include "LocationRequest.cpp"
14 
15 class Settlement: public WorldObjectGlobal, public TableInterface
16 {
17  private:
18 
19 
20  protected:
21  RandomNonStatic random;
22 
23  public:
24 
26  Vector <Character*> vCharacter;
27  Vector <Character*> vDeceased;
28  Vector <Item*> vItem;
29  // Ideas can become technologies and also books and other things.
30  Vector <Idea> vIdea;
31 
33 
35  //IntermediateManager stockpileIntermediate;
38  //ResourceManager resourceManager;
40 
42 
43  int colourRed;
46 
47  /* Counters to regulate logic ticks */
50 
51  int race;
52 
53  Settlement();
54  void initSimulation(); // biomes, creatures etc have been initialised.
55 
56  /* GETTER AND SETTER */
57  int getPopulation();
59  Character* getCharacter(Vector <Character*>* vExclude);
60 
61  bool has ( enumLocation loc );
62  bool canBuild ( enumLocation loc );
63 
64  int getMiningCapacity();
65  int getFarmingCapacity();
66 
68 
69  void printAllMoneyInSettlement(); // Including Character money
70  int getAllMoneyInSettlement(); // Including Character money
73 
74  /* SIMULATE X TURNS OF THE SETTLEMENT. */
75  virtual void incrementTicks ( int /* nTicks */ );
76 
77  bool removeCharacter( Character* /* _character */ );
78 
79  bool hasIdea(Idea);
80  bool isSpecialIdea(Idea idea); // If the idea leads to a breakthrough
81  void giveIdea(Idea);
82 
83  void buildDwarvenFortress();
84 
85  virtual std::string getName() override;
86 
87  // WorldObjectGlobal virtual.
88  Texture* currentTexture() override;
89 
90  /* TABLE INTERFACE */
91  std::string getColumn(std::string _column) override;
92  std::string getColumnType(std::string _column) override;
93 };
94 
95 #endif
int monthlyCounter
Definition: Settlement.hpp:49
double getMoneyPercentInTreasury()
Definition: Settlement.cpp:84
Government government
Definition: Settlement.hpp:32
Definition: Civ.hpp:28
Vector< Character * > vCharacter
Definition: Settlement.hpp:26
enumLocation
Definition: Driver_Settings_Enums.hpp:76
LocationManager location
Definition: Settlement.hpp:41
Definition: WorldObjectGlobal.hpp:17
Vector< Idea > vIdea
Definition: Settlement.hpp:30
Definition: World_Biome.hpp:46
int colourBlue
Definition: Settlement.hpp:45
Definition: LocationRequest.cpp:69
Definition: Location.hpp:129
virtual std::string getName() override
Definition: Settlement.cpp:29
World_Biome * getBiome()
Definition: Settlement.cpp:179
virtual void incrementTicks(int)
Definition: Settlement.cpp:140
Civ * parentCiv
Definition: Settlement.hpp:25
double getAverageCharacterWealth()
Definition: Settlement.cpp:96
Character * getRandomCharacter()
Definition: Settlement.cpp:34
Definition: Settlement.hpp:15
int getFarmingCapacity()
Definition: Settlement.cpp:174
void printAllMoneyInSettlement()
Definition: Settlement.cpp:54
Stockpile stockpile
Definition: Settlement.hpp:34
int colourRed
Definition: Settlement.hpp:43
Definition: Technology.hpp:19
Character * getCharacter(Vector< Character *> *vExclude)
Definition: Settlement.cpp:102
int getPopulation()
Definition: Settlement.cpp:164
Definition: Character.hpp:38
void initSimulation()
Definition: Settlement.cpp:24
int race
Definition: Settlement.hpp:51
Vector< Item * > vItem
Definition: Settlement.hpp:28
bool canBuild(enumLocation loc)
Definition: Settlement.cpp:49
void buildDwarvenFortress()
Definition: Settlement.cpp:200
std::string getColumnType(std::string _column) override
Definition: Settlement.cpp:268
bool has(enumLocation loc)
Definition: Settlement.cpp:44
int getMiningCapacity()
Definition: Settlement.cpp:169
int colourGreen
Definition: Settlement.hpp:44
RandomNonStatic random
Definition: Settlement.hpp:21
Texture * currentTexture() override
Definition: Settlement.cpp:134
Definition: Idea.hpp:18
int getAllMoneyInSettlement()
Definition: Settlement.cpp:70
Settlement()
Definition: Settlement.cpp:9
Technology technology
Definition: Settlement.hpp:39
int dailyCounter
Definition: Settlement.hpp:48
void giveIdea(Idea)
Definition: Settlement.cpp:184
LocationRequestManager locationRequestManager
Definition: Settlement.hpp:37
Definition: Stockpile.hpp:120
Definition: ItemRequest.cpp:110
bool isSpecialIdea(Idea idea)
Definition: Settlement.cpp:159
bool removeCharacter(Character *)
Definition: Settlement.cpp:129
Vector< Character * > vDeceased
Definition: Settlement.hpp:27
std::string getColumn(std::string _column) override
Definition: Settlement.cpp:207
ItemRequestManager requestManager
Definition: Settlement.hpp:36
Definition: Government.hpp:14
bool hasIdea(Idea)
Definition: Settlement.cpp:147