summaryrefslogtreecommitdiff
path: root/universe
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2023-02-04 02:33:18 +0100
committerAki <please@ignore.pl>2023-02-04 02:33:18 +0100
commit9a456b0e0d2f5505ced3751a0bbfc10c2dd1d233 (patch)
treea04ee380db847328e20361fffae461a8a4467a69 /universe
parentfb1d3eda51cd9d89083130cf9932c7bde758756c (diff)
downloadkurator-9a456b0e0d2f5505ced3751a0bbfc10c2dd1d233.zip
kurator-9a456b0e0d2f5505ced3751a0bbfc10c2dd1d233.tar.gz
kurator-9a456b0e0d2f5505ced3751a0bbfc10c2dd1d233.tar.bz2
Ship types JSON now support base_*_resists entries
Diffstat (limited to 'universe')
-rw-r--r--universe/include/kurator/universe/ShipType.h3
-rw-r--r--universe/src/JsonRepository.cpp33
2 files changed, 22 insertions, 14 deletions
diff --git a/universe/include/kurator/universe/ShipType.h b/universe/include/kurator/universe/ShipType.h
index c98a865..164dd9b 100644
--- a/universe/include/kurator/universe/ShipType.h
+++ b/universe/include/kurator/universe/ShipType.h
@@ -16,6 +16,9 @@ struct ShipType
double base_armour_points;
double base_shield_points;
double max_speed;
+ double base_structure_resists = 0.3;
+ double base_armour_resists = 0.3;
+ double base_shield_resists = 0.3;
};
diff --git a/universe/src/JsonRepository.cpp b/universe/src/JsonRepository.cpp
index 0100eb6..5d15646 100644
--- a/universe/src/JsonRepository.cpp
+++ b/universe/src/JsonRepository.cpp
@@ -22,6 +22,15 @@ namespace universe
{
+template <typename Type>
+void
+maybe_to(const json& item, const char* member, Type& output)
+{
+ if (item.contains(member))
+ item.at(member).get_to(output);
+}
+
+
void
from_json(const json& item, ShipType& ship)
{
@@ -30,6 +39,9 @@ from_json(const json& item, ShipType& ship)
item.at("base_armour_points").get_to(ship.base_armour_points);
item.at("base_shield_points").get_to(ship.base_shield_points);
item.at("max_speed").get_to(ship.max_speed);
+ maybe_to(item, "base_structure_resists", ship.base_structure_resists);
+ maybe_to(item, "base_armour_resists", ship.base_armour_resists);
+ maybe_to(item, "base_shield_resists", ship.base_shield_resists);
}
@@ -37,20 +49,13 @@ void
from_json(const json& item, TurretType& turret)
{
item.at("name").get_to(turret.name);
- if (item.contains("base_damage"))
- item.at("base_damage").get_to(turret.base_damage);
- if (item.contains("rounds"))
- item.at("rounds").get_to(turret.rounds);
- if (item.contains("rate_of_fire"))
- item.at("rate_of_fire").get_to(turret.rate_of_fire);
- if (item.contains("reload"))
- item.at("reload").get_to(turret.reload);
- if (item.contains("optimal_range"))
- item.at("optimal_range").get_to(turret.optimal_range);
- if (item.contains("falloff_modifier"))
- item.at("falloff_modifier").get_to(turret.falloff_modifier);
- if (item.contains("falloff_intensity"))
- item.at("falloff_intensity").get_to(turret.falloff_intensity);
+ maybe_to(item, "base_damage", turret.base_damage);
+ maybe_to(item, "rounds", turret.rounds);
+ maybe_to(item, "rate_of_fire", turret.rate_of_fire);
+ maybe_to(item, "reload", turret.reload);
+ maybe_to(item, "optimal_range", turret.optimal_range);
+ maybe_to(item, "falloff_modifier", turret.falloff_modifier);
+ maybe_to(item, "falloff_intensity", turret.falloff_intensity);
}