@@ -7268,54 +7268,55 @@ economy::commodity_set get_required_supply(sys::state& state, dcon::nation_id ow
7268
7268
7269
7269
void recover_org (sys::state& state) {
7270
7270
/*
7271
- Units that are not in combat and not embarked recover organization daily at: (national-organization-regeneration-modifier +
7272
- morale-from-tech + leader-morale-trait + 1) x the-unit's-supply-factor / 5 up to the maximum organization possible for the unit
7273
- times (0.25 + 0.75 x effective land or naval spending).
7271
+ - Units that are not in combat and not embarked recover organization daily at: (national-organization-regeneration-modifier
7272
+ + morale-from-tech + leader-morale-trait + 1) x the-unit's-supply-factor / 5 up to the maximum organization possible
7273
+ for the unit times (0.25 + 0.75 x effective land or naval spending).
7274
7274
- Additionally, the prestige of the leader factors in morale as unit-morale
7275
- + (leader-prestige x defines:LEADER_PRESTIGE_TO_MORALE_FACTOR).
7275
+ + (leader-prestige x defines:LEADER_PRESTIGE_TO_MORALE_FACTOR).
7276
+ - Similarly, unit-max-org + (leader-prestige x defines:LEADER_PRESTIGE_TO_MAX_ORG_FACTOR) allows for maximum org.
7276
7277
*/
7277
7278
7278
7279
for (auto ar : state.world .in_army ) {
7279
7280
if (ar.get_army_battle_participation ().get_battle () || ar.get_navy_from_army_transport ())
7280
- continue ;
7281
+ continue ;
7281
7282
7282
7283
auto in_nation = ar.get_controller_from_army_control ();
7283
7284
auto tech_nation = in_nation ? in_nation : ar.get_controller_from_army_rebel_control ().get_ruler_from_rebellion_within ();
7284
7285
7285
7286
auto leader = ar.get_general_from_army_leadership ();
7286
- auto regen_mod = tech_nation.get_modifier_values (sys::national_mod_offsets::org_regain) +
7287
- leader.get_personality ().get_morale () + leader.get_background ().get_morale () + 1 .0f
7288
- + leader.get_prestige () * state.defines .leader_prestige_to_morale_factor ;
7287
+ auto regen_mod = tech_nation.get_modifier_values (sys::national_mod_offsets::org_regain)
7288
+ + leader.get_personality ().get_morale () + leader.get_background ().get_morale () + 1 .0f
7289
+ + leader.get_prestige () * state.defines .leader_prestige_to_max_org_factor ;
7289
7290
auto spending_level = (in_nation ? in_nation.get_effective_land_spending () : 1 .0f );
7290
- auto modified_regen = regen_mod * spending_level / 150 .0f ;
7291
-
7291
+ auto modified_regen = regen_mod * spending_level / 150 .f ;
7292
+ auto max_org = 0 . 25f + 0 . 75f * spending_level;
7292
7293
for (auto reg : ar.get_army_membership ()) {
7293
7294
auto c_org = reg.get_regiment ().get_org ();
7294
- reg.get_regiment ().set_org (std::min (c_org + modified_regen, std::max (c_org, 0 . 25f + 0 . 75f * spending_level) ));
7295
+ reg.get_regiment ().set_org (std::min (c_org + modified_regen, max_org ));
7295
7296
}
7296
7297
}
7297
7298
7298
7299
for (auto ar : state.world .in_navy ) {
7299
7300
if (ar.get_navy_battle_participation ().get_battle ())
7300
- continue ;
7301
+ continue ;
7301
7302
7302
7303
auto in_nation = ar.get_controller_from_navy_control ();
7303
7304
7304
7305
auto leader = ar.get_admiral_from_navy_leadership ();
7305
- auto regen_mod = in_nation.get_modifier_values (sys::national_mod_offsets::org_regain) +
7306
- leader.get_personality ().get_morale () + leader.get_background ().get_morale () + 1 .0f
7307
- + leader.get_prestige () * state.defines .leader_prestige_to_morale_factor ;
7306
+ auto regen_mod = in_nation.get_modifier_values (sys::national_mod_offsets::org_regain)
7307
+ + leader.get_personality ().get_morale () + leader.get_background ().get_morale () + 1 .0f
7308
+ + leader.get_prestige () * state.defines .leader_prestige_to_morale_factor ;
7308
7309
float oversize_amount =
7309
- in_nation.get_naval_supply_points () > 0
7310
- ? std::min (float (in_nation.get_used_naval_supply_points ()) / float (in_nation.get_naval_supply_points ()), 1 .75f )
7311
- : 1 .75f ;
7310
+ in_nation.get_naval_supply_points () > 0
7311
+ ? std::min (float (in_nation.get_used_naval_supply_points ()) / float (in_nation.get_naval_supply_points ()), 1 .75f )
7312
+ : 1 .75f ;
7312
7313
float over_size_penalty = oversize_amount > 1 .0f ? 2 .0f - oversize_amount : 1 .0f ;
7313
7314
auto spending_level = in_nation.get_effective_naval_spending () * over_size_penalty;
7314
7315
auto modified_regen = regen_mod * spending_level / 150 .0f ;
7315
-
7316
+ auto max_org = 0 . 25f + 0 . 75f * spending_level;
7316
7317
for (auto reg : ar.get_navy_membership ()) {
7317
7318
auto c_org = reg.get_ship ().get_org ();
7318
- reg.get_ship ().set_org (std::min (c_org + modified_regen, std::max (c_org, 0 . 25f + 0 . 75f * spending_level) ));
7319
+ reg.get_ship ().set_org (std::min (c_org + modified_regen, max_org ));
7319
7320
}
7320
7321
}
7321
7322
}
0 commit comments