aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/defines/MilitaryDefines.hpp
diff options
context:
space:
mode:
author Hop311 <Hop3114@gmail.com>2024-10-31 21:50:36 +0100
committer GitHub <noreply@github.com>2024-10-31 21:50:36 +0100
commitb602c10cf890c5973c1efbe8d958bf9b67499efe (patch)
tree3b34e78831ab11d6333ce2822b10244995a69848 /src/openvic-simulation/defines/MilitaryDefines.hpp
parent968c60580997d26035496cc675138e580354332f (diff)
parentdbf58b1b1d318b4a82cf22b5b8e720c753388f4b (diff)
Merge pull request #222 from OpenVicProject/defines-variables
Load defines directly into named and typed variables rather than using an IdentifierRegistry
Diffstat (limited to 'src/openvic-simulation/defines/MilitaryDefines.hpp')
-rw-r--r--src/openvic-simulation/defines/MilitaryDefines.hpp86
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();
+ };
+}