Implement city production projects for units and buildings
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
#ifndef BUILDINGCONFIG_H
|
||||
#define BUILDINGCONFIG_H
|
||||
|
||||
#include <QString>
|
||||
#include <QMap>
|
||||
#include <vector>
|
||||
|
||||
struct BuildingConfig {
|
||||
QString id;
|
||||
QString name;
|
||||
QString district; // e.g. "center"
|
||||
int laborCost;
|
||||
float foodModifier; // e.g. 0.50f for +50% food production
|
||||
int foodBonus;
|
||||
int laborBonus;
|
||||
int cultureBonus;
|
||||
int scienceBonus;
|
||||
int faithBonus;
|
||||
int goldBonus;
|
||||
QString iconPath;
|
||||
QString description;
|
||||
|
||||
BuildingConfig()
|
||||
: id(""), name(""), district("center"), laborCost(1000),
|
||||
foodModifier(0.0f), foodBonus(0), laborBonus(0), cultureBonus(0),
|
||||
scienceBonus(0), faithBonus(0), goldBonus(0),
|
||||
iconPath(""), description("") {}
|
||||
};
|
||||
|
||||
struct DistrictConfig {
|
||||
QString id;
|
||||
QString name;
|
||||
int maxBuildings;
|
||||
QString description;
|
||||
|
||||
DistrictConfig()
|
||||
: id("center"), name("City Center"), maxBuildings(10), description("") {}
|
||||
};
|
||||
|
||||
class BuildingConfigManager {
|
||||
public:
|
||||
BuildingConfigManager();
|
||||
|
||||
bool loadConfigFile(const QString &filePath);
|
||||
const BuildingConfig* getBuilding(const QString &id) const;
|
||||
const DistrictConfig* getDistrict(const QString &id) const;
|
||||
const QMap<QString, BuildingConfig>& getAllBuildings() const { return m_buildings; }
|
||||
const QMap<QString, DistrictConfig>& getAllDistricts() const { return m_districts; }
|
||||
|
||||
private:
|
||||
QMap<QString, BuildingConfig> m_buildings;
|
||||
QMap<QString, DistrictConfig> m_districts;
|
||||
};
|
||||
|
||||
#endif // BUILDINGCONFIG_H
|
||||
Reference in New Issue
Block a user