Implement default best-yield resource and long-press resource selection for city slots
This commit is contained in:
+18
-1
@@ -7,6 +7,7 @@
|
||||
#include "player.h"
|
||||
#include "unitconfig.h"
|
||||
#include "buildingconfig.h"
|
||||
#include "roadconfig.h"
|
||||
#include "unit.h"
|
||||
#include "city.h"
|
||||
#include "matrix2d.h"
|
||||
@@ -18,7 +19,8 @@ enum class ActionMode {
|
||||
Move,
|
||||
Attack,
|
||||
BuildCity,
|
||||
BuildFarm
|
||||
BuildFarm,
|
||||
BuildRoad
|
||||
};
|
||||
|
||||
struct TileImprovement {
|
||||
@@ -29,6 +31,15 @@ struct TileImprovement {
|
||||
QVector3D worldPos;
|
||||
};
|
||||
|
||||
struct TileRoad {
|
||||
QString roadTypeId = "dirt";
|
||||
int tileX = 0;
|
||||
int tileY = 0;
|
||||
int playerId = 1;
|
||||
QVector3D worldPos;
|
||||
unsigned char connectionMask = 0; // bit e (0..5) indicates connected across edge e
|
||||
};
|
||||
|
||||
struct FloatingText {
|
||||
QString text;
|
||||
QVector3D worldPos;
|
||||
@@ -48,6 +59,8 @@ public:
|
||||
UnitConfigManager& unitConfigs() { return m_unitConfigManager; }
|
||||
BuildingConfigManager& buildingConfigs() { return m_buildingConfigManager; }
|
||||
const BuildingConfigManager& buildingConfigs() const { return m_buildingConfigManager; }
|
||||
RoadConfigManager& roadConfigs() { return m_roadConfigManager; }
|
||||
const RoadConfigManager& roadConfigs() const { return m_roadConfigManager; }
|
||||
|
||||
const std::vector<std::shared_ptr<Unit>>& getUnits() const { return m_units; }
|
||||
const std::vector<City>& getCities() const { return m_cities; }
|
||||
@@ -79,6 +92,10 @@ public:
|
||||
CityYieldSummary calculateCityYields(const City &city, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const;
|
||||
void processTickYields(Matrix2D<TerrainPoint> *mapPoints, int numPoints05);
|
||||
|
||||
QMap<QString, int> getTileYields(int tx, int ty, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const;
|
||||
int getTileYield(int tx, int ty, const QString &res, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const;
|
||||
QString getBestTileResource(int tx, int ty, Matrix2D<TerrainPoint> *mapPoints, int numPoints05) const;
|
||||
|
||||
bool isTileOwned(int tx, int ty, int *outOwnerCityId = nullptr) const;
|
||||
bool buyTileForCity(int cityId, int tx, int ty);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user