Implement city production projects for units and buildings

This commit is contained in:
bart
2026-11-08 21:22:04 +01:00
parent ae04619dae
commit f8cd221e37
19 changed files with 444 additions and 12 deletions
+8
View File
@@ -6,6 +6,7 @@
#include <QString>
#include "player.h"
#include "unitconfig.h"
#include "buildingconfig.h"
#include "unit.h"
#include "city.h"
#include "matrix2d.h"
@@ -45,6 +46,8 @@ public:
PlayerManager& players() { return m_playerManager; }
UnitConfigManager& unitConfigs() { return m_unitConfigManager; }
BuildingConfigManager& buildingConfigs() { return m_buildingConfigManager; }
const BuildingConfigManager& buildingConfigs() const { return m_buildingConfigManager; }
const std::vector<std::shared_ptr<Unit>>& getUnits() const { return m_units; }
const std::vector<City>& getCities() const { return m_cities; }
@@ -79,6 +82,10 @@ public:
bool isTileOwned(int tx, int ty, int *outOwnerCityId = nullptr) const;
bool buyTileForCity(int cityId, int tx, int ty);
void setCityProject(int cityId, CityProjectType type, const QString &id);
void cancelCityProject(int cityId);
void completeCityProject(City &city, Matrix2D<TerrainPoint> *mapPoints, int numPoints05);
void commandMoveSelected(int targetX, int targetY, Matrix2D<TerrainPoint> *mapPoints, int numPoints05);
void commandAttack(Unit *target);
void commandBuildCitySelected(Matrix2D<TerrainPoint> *mapPoints, int numPoints05);
@@ -110,6 +117,7 @@ private:
PlayerManager m_playerManager;
UnitConfigManager m_unitConfigManager;
BuildingConfigManager m_buildingConfigManager;
std::vector<std::shared_ptr<Unit>> m_units;
std::vector<City> m_cities;
std::vector<FloatingText> m_floatingTexts;