From dbf58b1b1d318b4a82cf22b5b8e720c753388f4b Mon Sep 17 00:00:00 2001 From: hop311 Date: Thu, 31 Oct 2024 19:29:34 +0000 Subject: Load defines directly into named and typed variables rather than using an IdentifierRegistry --- src/openvic-simulation/defines/MilitaryDefines.hpp | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/openvic-simulation/defines/MilitaryDefines.hpp (limited to 'src/openvic-simulation/defines/MilitaryDefines.hpp') diff --git a/src/openvic-simulation/defines/MilitaryDefines.hpp b/src/openvic-simulation/defines/MilitaryDefines.hpp new file mode 100644 index 0000000..2921195 --- /dev/null +++ b/src/openvic-simulation/defines/MilitaryDefines.hpp @@ -0,0 +1,86 @@ +#pragma once + +#include "openvic-simulation/dataloader/NodeTools.hpp" +#include "openvic-simulation/pop/Pop.hpp" +#include "openvic-simulation/types/Date.hpp" +#include "openvic-simulation/types/fixed_point/FixedPoint.hpp" +#include "openvic-simulation/utility/Getters.hpp" + +namespace OpenVic { + struct DefineManager; + + struct MilitaryDefines { + friend struct DefineManager; + + private: + Timespan PROPERTY(dig_in_increase_each_days); + fixed_point_t PROPERTY(reinforce_speed); + fixed_point_t PROPERTY(combat_difficulty_impact); + size_t PROPERTY(base_combat_width); + Pop::pop_size_t PROPERTY(min_pop_size_for_regiment); + Pop::pop_size_t PROPERTY(pop_size_per_regiment); + fixed_point_t PROPERTY(soldier_to_pop_damage); + fixed_point_t PROPERTY(land_speed_modifier); + fixed_point_t PROPERTY(naval_speed_modifier); + fixed_point_t PROPERTY(exp_gain_div); + fixed_point_t PROPERTY(leader_recruit_cost); + fixed_point_t PROPERTY(supply_range); + fixed_point_t PROPERTY(pop_size_per_regiment_protectorate_multiplier); + fixed_point_t PROPERTY(pop_size_per_regiment_colony_multiplier); + fixed_point_t PROPERTY(pop_size_per_regiment_non_core_multiplier); + size_t PROPERTY(gas_attack_modifier); + fixed_point_t PROPERTY(combatloss_war_exhaustion); + fixed_point_t PROPERTY(leader_max_random_prestige); + fixed_point_t PROPERTY(leader_age_death_factor); + fixed_point_t PROPERTY(leader_prestige_to_morale_factor); + fixed_point_t PROPERTY(leader_prestige_to_max_org_factor); + fixed_point_t PROPERTY(leader_transfer_penalty_on_country_prestige); + fixed_point_t PROPERTY(leader_prestige_land_gain); + fixed_point_t PROPERTY(leader_prestige_naval_gain); + fixed_point_t PROPERTY(naval_combat_seeking_chance); + fixed_point_t PROPERTY(naval_combat_seeking_chance_min); + fixed_point_t PROPERTY(naval_combat_self_defence_chance); + fixed_point_t PROPERTY(naval_combat_shift_back_on_next_target); + fixed_point_t PROPERTY(naval_combat_shift_back_duration_scale); + fixed_point_t PROPERTY(naval_combat_speed_to_distance_factor); + fixed_point_t PROPERTY(naval_combat_change_target_chance); + fixed_point_t PROPERTY(naval_combat_damage_org_mult); + fixed_point_t PROPERTY(naval_combat_damage_str_mult); + fixed_point_t PROPERTY(naval_combat_damage_mult_no_org); + fixed_point_t PROPERTY(naval_combat_retreat_chance); + fixed_point_t PROPERTY(naval_combat_retreat_str_org_level); + fixed_point_t PROPERTY(naval_combat_retreat_speed_mod); + fixed_point_t PROPERTY(naval_combat_retreat_min_distance); + fixed_point_t PROPERTY(naval_combat_damaged_target_selection); + fixed_point_t PROPERTY(naval_combat_stacking_target_change); + fixed_point_t PROPERTY(naval_combat_stacking_target_select); + size_t PROPERTY(naval_combat_max_targets); + fixed_point_t PROPERTY(ai_bigship_proportion); + fixed_point_t PROPERTY(ai_lightship_proportion); + fixed_point_t PROPERTY(ai_transport_proportion); + fixed_point_t PROPERTY(ai_cavalry_proportion); + fixed_point_t PROPERTY(ai_support_proportion); + fixed_point_t PROPERTY(ai_special_proportion); + fixed_point_t PROPERTY(ai_escort_ratio); + fixed_point_t PROPERTY(ai_army_taxbase_fraction); + fixed_point_t PROPERTY(ai_navy_taxbase_fraction); + fixed_point_t PROPERTY(ai_blockade_range); + fixed_point_t PROPERTY(recon_unit_ratio); + fixed_point_t PROPERTY(engineer_unit_ratio); + size_t PROPERTY(siege_brigades_min); + size_t PROPERTY(siege_brigades_max); + fixed_point_t PROPERTY(siege_brigades_bonus); + fixed_point_t PROPERTY(recon_siege_effect); + fixed_point_t PROPERTY(siege_attrition); + fixed_point_t PROPERTY(base_military_tactics); + fixed_point_t PROPERTY(naval_low_supply_damage_supply_status); + Timespan PROPERTY(naval_low_supply_damage_days_delay); + fixed_point_t PROPERTY(naval_low_supply_damage_min_str); + fixed_point_t PROPERTY(naval_low_supply_damage_per_day); + + MilitaryDefines(); + + std::string_view get_name() const; + NodeTools::node_callback_t expect_defines(); + }; +} -- cgit v1.2.3-56-ga3b1