diff options
author | wvpm <24685035+wvpm@users.noreply.github.com> | 2024-10-31 10:51:50 +0100 |
---|---|---|
committer | wvpm <24685035+wvpm@users.noreply.github.com> | 2024-10-31 10:51:50 +0100 |
commit | c57b3195c41a60e55d8b45fd6a1f654ab36fc467 (patch) | |
tree | a0fd54c027f1335027c9e2d3d0d37a8f15dc8e9b | |
parent | 5d8451172fefa93f6f53583fa6b8723f1dd3598e (diff) |
Correct rgo size calcuationcorrect_rgo_size
-rw-r--r-- | src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp | 12 | ||||
-rw-r--r-- | src/openvic-simulation/modifier/ModifierManager.cpp | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp b/src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp index df91645..70cb64d 100644 --- a/src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp +++ b/src/openvic-simulation/economy/production/ResourceGatheringOperation.cpp @@ -83,12 +83,20 @@ Pop::pop_size_t ResourceGatheringOperation::update_size_and_return_total_worker_ } } } + + fixed_point_t base_size_modifier = fixed_point_t::_1(); + if (production_type.is_farm()) { + base_size_modifier += location.get_modifier_effect_value_nullcheck(modifier_effect_cache.get_farm_rgo_size_local()); + } + if (production_type.is_mine()) { + base_size_modifier += location.get_modifier_effect_value_nullcheck(modifier_effect_cache.get_mine_rgo_size_local()); + } const fixed_point_t base_workforce_size = production_type.get_base_workforce_size(); - if (size_modifier == fixed_point_t::_0()) { + if (base_size_modifier == fixed_point_t::_0()) { size_multiplier = 0; } else { - size_multiplier = ((total_worker_count_in_province / (size_modifier * base_workforce_size)).ceil() * fixed_point_t::_1_50()).floor(); + size_multiplier = ((total_worker_count_in_province / (base_size_modifier * base_workforce_size)).ceil() * fixed_point_t::_1_50()).floor(); } max_employee_count_cache = (size_modifier * size_multiplier * base_workforce_size).floor(); return total_worker_count_in_province; diff --git a/src/openvic-simulation/modifier/ModifierManager.cpp b/src/openvic-simulation/modifier/ModifierManager.cpp index a5ef8a8..f1ed3e0 100644 --- a/src/openvic-simulation/modifier/ModifierManager.cpp +++ b/src/openvic-simulation/modifier/ModifierManager.cpp @@ -428,7 +428,7 @@ bool ModifierManager::setup_modifier_effects() { ret &= register_base_province_modifier_effect( modifier_effect_cache.farm_rgo_output_local, "farm_rgo_eff", true, PROPORTION_DECIMAL, "TECH_FARM_OUTPUT" ); - ret &= register_shared_tech_country_modifier_effect( + ret &= register_technology_modifier_effect( modifier_effect_cache.farm_rgo_size_global, "farm_rgo_size", true, PROPORTION_DECIMAL, ModifierEffect::make_default_modifier_effect_localisation_key("farm_size") ); @@ -499,7 +499,7 @@ bool ModifierManager::setup_modifier_effects() { ret &= register_base_province_modifier_effect( modifier_effect_cache.mine_rgo_output_local, "mine_rgo_eff", true, PROPORTION_DECIMAL, "TECH_MINE_OUTPUT" ); - ret &= register_shared_tech_country_modifier_effect( + ret &= register_technology_modifier_effect( modifier_effect_cache.mine_rgo_size_global, "mine_rgo_size", true, PROPORTION_DECIMAL, ModifierEffect::make_default_modifier_effect_localisation_key("mine_size") ); |