This commit is contained in:
2026-11-10 20:31:33 +01:00
parent 2ef8e857e0
commit 8c24b112d4
20 changed files with 83 additions and 66 deletions
+8 -10
View File
@@ -48,23 +48,21 @@ struct UnitConfig {
QString obsoleteTech;
QString iconPath;
QStringList actions;
QMap<QString, float> actionSpeeds; // Duration in seconds per action (e.g. "boerderij_bouwen": 10.0f)
QMap<QString, float> actionSpeeds; // Duration in simulation ticks per action (e.g. "boerderij_bouwen": 2.0f)
QStringList impassableTerrains;
QStringList passableTerrains;
// Recharge / Cooldown configuration for military units
int rechargeTime; // Time in milliseconds between attacks
float rechargeDuration; // Duration of recharge state (optional, for visual indication)
int attackFlashDuration; // How long the flash effect lasts (in ms)
// Recharge / Cooldown configuration for military units (in simulation ticks)
int rechargeTicks; // Ticks between attacks for military units
int attackFlashTicks; // Ticks for visual attack flash effect
UnitConfig()
: id(""), name(""), category(UnitCategory::Builder),
movementDomain(MovementDomain::Land), health(100),
movementSpeed(2.0f), cost(10), laborCost(1000), attackDamage(0), attackRange(1),
buildCharges(-1), infiniteCharges(true), requiredTech(""), obsoleteTech(""), iconPath(""),
rechargeTime(500), // Default recharge time: 500ms (0.5 seconds)
rechargeDuration(300), // Visual cooldown bar duration: 300ms
attackFlashDuration(400) // Attack flash effect duration: 400ms
rechargeTicks(2), // Default recharge: 2 simulation ticks
attackFlashTicks(1) // Attack flash effect: 1 tick
{}
bool isRanged() const { return attackRange > 1; }
@@ -77,11 +75,11 @@ struct UnitConfig {
bool canBuildRoad() const { return actions.contains("build_road") || actions.contains("weg_bouwen"); }
bool isBuilder() const { return canBuildFarm() || canBuildRoad(); }
float getActionDuration(const QString &actionName, float fallback = 10.0f) const {
float getActionDuration(const QString &actionName, float fallbackTicks = 2.0f) const {
if (actionSpeeds.contains(actionName)) {
return actionSpeeds.value(actionName);
}
return fallback;
return fallbackTicks;
}
};