diff options
author | hop311 <hop3114@gmail.com> | 2024-10-31 20:29:34 +0100 |
---|---|---|
committer | hop311 <hop3114@gmail.com> | 2024-10-31 20:54:50 +0100 |
commit | dbf58b1b1d318b4a82cf22b5b8e720c753388f4b (patch) | |
tree | d6d2be10697d6fa320f7f8da14eda45111bd9399 /src/openvic-simulation/defines/MilitaryDefines.hpp | |
parent | c763a0aedd834432b54b6e49c6bc7e1936be1131 (diff) |
Load defines directly into named and typed variables rather than using an IdentifierRegistrydefines-variables
Diffstat (limited to 'src/openvic-simulation/defines/MilitaryDefines.hpp')
-rw-r--r-- | src/openvic-simulation/defines/MilitaryDefines.hpp | 86 |
1 files changed, 86 insertions, 0 deletions
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(); + }; +} |