Add new performance option: Maximum frontline unit supply per CP

This commit is contained in:
MetalStormGhost 2022-08-17 00:05:47 +03:00 committed by Raffson
parent b74291f82a
commit d08adc2842
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
3 changed files with 29 additions and 5 deletions

View File

@ -28,6 +28,7 @@ Saves from 5.x are not compatible with 6.0.
* **[Campaign]** Allow campaign designers to define default values for the economy settings (starting budget and multiplier). * **[Campaign]** Allow campaign designers to define default values for the economy settings (starting budget and multiplier).
* **[Plugins]** Allow full support of the SkynetIADS plugin with all advanced features (connection nodes, power sources, command centers) if campaign supports it. * **[Plugins]** Allow full support of the SkynetIADS plugin with all advanced features (connection nodes, power sources, command centers) if campaign supports it.
* **[Plugins]** Added support for the CTLD script by ciribob with many possible customization options and updated the JTAC Autolase to the CTLD included script. * **[Plugins]** Added support for the CTLD script by ciribob with many possible customization options and updated the JTAC Autolase to the CTLD included script.
* **[Performance]** Added performance option: Maximum front-line unit supply per control point.
## Fixes ## Fixes

View File

@ -443,6 +443,27 @@ class Settings:
section=PERFORMANCE_SECTION, section=PERFORMANCE_SECTION,
default=True, default=True,
) )
# perf_disable_convoys: bool = boolean_option(
# "Disable convoys",
# page=MISSION_GENERATOR_PAGE,
# section=PERFORMANCE_SECTION,
# default=False,
# )
# perf_frontline_units_prefer_roads: bool = boolean_option(
# "Front line troops prefer roads",
# page=MISSION_GENERATOR_PAGE,
# section=PERFORMANCE_SECTION,
# default=False,
# )
perf_frontline_units_max_supply: int = bounded_int_option(
"Maximum frontline unit supply per control point",
page=MISSION_GENERATOR_PAGE,
section=PERFORMANCE_SECTION,
default=60,
min=10,
max=300,
causes_expensive_game_update=True,
)
perf_infantry: bool = boolean_option( perf_infantry: bool = boolean_option(
"Generate infantry squads alongside vehicles", "Generate infantry squads alongside vehicles",
page=MISSION_GENERATOR_PAGE, page=MISSION_GENERATOR_PAGE,

View File

@ -976,11 +976,13 @@ class ControlPoint(MissionTarget, SidcDescribable, ABC):
self.front_line_capacity_with(ammo_depot_count), self.base.total_armor self.front_line_capacity_with(ammo_depot_count), self.base.total_armor
) )
@classmethod def front_line_capacity_with(self, ammo_depot_count: int) -> int:
def front_line_capacity_with(cls, ammo_depot_count: int) -> int: return min(
return ( self.coalition.game.settings.perf_frontline_units_max_supply,
FREE_FRONTLINE_UNIT_SUPPLY (
+ ammo_depot_count * AMMO_DEPOT_FRONTLINE_UNIT_CONTRIBUTION FREE_FRONTLINE_UNIT_SUPPLY
+ ammo_depot_count * AMMO_DEPOT_FRONTLINE_UNIT_CONTRIBUTION
),
) )
@property @property