mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
parent
1ebc289fb7
commit
cb6bffe3ec
@ -76,7 +76,12 @@ class ProcurementAi:
|
|||||||
cp_aircraft = cp.allocated_aircraft(parking_type)
|
cp_aircraft = cp.allocated_aircraft(parking_type)
|
||||||
aircraft_investment += cp_aircraft.total_value
|
aircraft_investment += cp_aircraft.total_value
|
||||||
|
|
||||||
air = self.game.settings.auto_procurement_balance / 100.0
|
balance = (
|
||||||
|
self.game.settings.auto_procurement_balance
|
||||||
|
if self.is_player
|
||||||
|
else self.game.settings.auto_procurement_balance_red
|
||||||
|
)
|
||||||
|
air = balance / 100.0
|
||||||
ground = 1 - air
|
ground = 1 - air
|
||||||
weighted_investment = aircraft_investment * air + armor_investment * ground
|
weighted_investment = aircraft_investment * air + armor_investment * ground
|
||||||
if weighted_investment == 0:
|
if weighted_investment == 0:
|
||||||
@ -269,7 +274,12 @@ class ProcurementAi:
|
|||||||
# No source of ground units, so can't buy anything.
|
# No source of ground units, so can't buy anything.
|
||||||
continue
|
continue
|
||||||
|
|
||||||
fr_factor = self.game.settings.frontline_reserves_factor / 100.0
|
reserves_factor = (
|
||||||
|
self.game.settings.frontline_reserves_factor
|
||||||
|
if self.is_player
|
||||||
|
else self.game.settings.frontline_reserves_factor_red
|
||||||
|
)
|
||||||
|
fr_factor = reserves_factor / 100.0
|
||||||
purchase_target = cp.frontline_unit_count_limit * fr_factor
|
purchase_target = cp.frontline_unit_count_limit * fr_factor
|
||||||
allocated = cp.allocated_ground_units(
|
allocated = cp.allocated_ground_units(
|
||||||
self.game.coalition_for(self.is_player).transfers
|
self.game.coalition_for(self.is_player).transfers
|
||||||
@ -303,7 +313,12 @@ class ProcurementAi:
|
|||||||
allocated = cp.allocated_ground_units(
|
allocated = cp.allocated_ground_units(
|
||||||
self.game.coalition_for(self.is_player).transfers
|
self.game.coalition_for(self.is_player).transfers
|
||||||
)
|
)
|
||||||
if allocated.total >= self.game.settings.reserves_procurement_target:
|
target = (
|
||||||
|
self.game.settings.reserves_procurement_target
|
||||||
|
if self.is_player
|
||||||
|
else self.game.settings.reserves_procurement_target_red
|
||||||
|
)
|
||||||
|
if allocated.total >= target:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if allocated.total < worst_supply:
|
if allocated.total < worst_supply:
|
||||||
|
|||||||
@ -477,7 +477,7 @@ class Settings:
|
|||||||
default=True,
|
default=True,
|
||||||
)
|
)
|
||||||
auto_procurement_balance: int = bounded_int_option(
|
auto_procurement_balance: int = bounded_int_option(
|
||||||
"AI ground unit procurement budget ratio (%)",
|
"AI ground unit procurement budget ratio (%) for BLUE",
|
||||||
CAMPAIGN_MANAGEMENT_PAGE,
|
CAMPAIGN_MANAGEMENT_PAGE,
|
||||||
HQ_AUTOMATION_SECTION,
|
HQ_AUTOMATION_SECTION,
|
||||||
min=0,
|
min=0,
|
||||||
@ -490,7 +490,7 @@ class Settings:
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
frontline_reserves_factor: int = bounded_int_option(
|
frontline_reserves_factor: int = bounded_int_option(
|
||||||
"AI ground unit front-line reserves factor (%)",
|
"AI ground unit front-line reserves factor (%) for BLUE",
|
||||||
CAMPAIGN_MANAGEMENT_PAGE,
|
CAMPAIGN_MANAGEMENT_PAGE,
|
||||||
HQ_AUTOMATION_SECTION,
|
HQ_AUTOMATION_SECTION,
|
||||||
min=0,
|
min=0,
|
||||||
@ -502,7 +502,43 @@ class Settings:
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
reserves_procurement_target: int = bounded_int_option(
|
reserves_procurement_target: int = bounded_int_option(
|
||||||
"AI ground unit reserves procurement target",
|
"AI ground unit reserves procurement target for BLUE",
|
||||||
|
CAMPAIGN_MANAGEMENT_PAGE,
|
||||||
|
HQ_AUTOMATION_SECTION,
|
||||||
|
min=0,
|
||||||
|
max=1000,
|
||||||
|
default=10,
|
||||||
|
detail=(
|
||||||
|
"The number of units that will be bought as reserves for applicable control points"
|
||||||
|
),
|
||||||
|
)
|
||||||
|
auto_procurement_balance_red: int = bounded_int_option(
|
||||||
|
"AI ground unit procurement budget ratio (%) for RED",
|
||||||
|
CAMPAIGN_MANAGEMENT_PAGE,
|
||||||
|
HQ_AUTOMATION_SECTION,
|
||||||
|
min=0,
|
||||||
|
max=100,
|
||||||
|
default=50,
|
||||||
|
detail=(
|
||||||
|
"Ratio (larger number -> more budget for ground units) "
|
||||||
|
"that indicates how the AI procurement planner should "
|
||||||
|
"spend its budget."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
frontline_reserves_factor_red: int = bounded_int_option(
|
||||||
|
"AI ground unit front-line reserves factor (%) for RED",
|
||||||
|
CAMPAIGN_MANAGEMENT_PAGE,
|
||||||
|
HQ_AUTOMATION_SECTION,
|
||||||
|
min=0,
|
||||||
|
max=1000,
|
||||||
|
default=130,
|
||||||
|
detail=(
|
||||||
|
"Factor to be multiplied with the control point's unit count limit "
|
||||||
|
"to calculate the procurement target for reserve troops at front-lines."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
reserves_procurement_target_red: int = bounded_int_option(
|
||||||
|
"AI ground unit reserves procurement target for RED",
|
||||||
CAMPAIGN_MANAGEMENT_PAGE,
|
CAMPAIGN_MANAGEMENT_PAGE,
|
||||||
HQ_AUTOMATION_SECTION,
|
HQ_AUTOMATION_SECTION,
|
||||||
min=0,
|
min=0,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user