mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Vary number of aircraft for main task
The following tasks plan according to the number of targets left: - BAI - ANTISHIP - DEAD - STRIKE Other tasks use a random value between 2 and 4.
This commit is contained in:
parent
a14bf6d1ba
commit
1f4cca329e
@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from random import randint
|
||||
|
||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||
from game.commander.theaterstate import TheaterState
|
||||
@ -29,6 +30,6 @@ class PlanAirAssault(PackagePlanningTask[ControlPoint]):
|
||||
state.air_assault_targets.remove(self.target)
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.AIR_ASSAULT, 2)
|
||||
self.propose_flight(FlightType.AIR_ASSAULT, randint(2, 4))
|
||||
# TODO Validate this.. / is Heli escort possible?
|
||||
self.propose_flight(FlightType.TARCAP, 2)
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from random import randint
|
||||
|
||||
from game.commander.missionproposals import EscortType
|
||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||
@ -22,5 +23,5 @@ class PlanAntiShip(PackagePlanningTask[NavalGroundObject]):
|
||||
state.eliminate_ship(self.target)
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.ANTISHIP, 2)
|
||||
self.propose_flight(FlightType.ANTISHIP, randint(2, 4))
|
||||
self.propose_flight(FlightType.ESCORT, 2, EscortType.AirToAir)
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from random import randint
|
||||
|
||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||
from game.commander.theaterstate import TheaterState
|
||||
@ -21,5 +22,5 @@ class PlanAntiShipping(PackagePlanningTask[CargoShip]):
|
||||
state.enemy_shipping.remove(self.target)
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.ANTISHIP, 2)
|
||||
self.propose_flight(FlightType.ANTISHIP, randint(2, 4))
|
||||
self.propose_common_escorts()
|
||||
|
||||
@ -21,5 +21,6 @@ class PlanBai(PackagePlanningTask[VehicleGroupGroundObject]):
|
||||
state.eliminate_battle_position(self.target)
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.BAI, 2)
|
||||
tgt_count = self.target.alive_unit_count
|
||||
self.propose_flight(FlightType.BAI, min(4, (tgt_count // 4) + 1))
|
||||
self.propose_common_escorts()
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from random import randint
|
||||
|
||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||
from game.commander.theaterstate import TheaterState
|
||||
@ -21,7 +22,7 @@ class PlanBarcap(PackagePlanningTask[ControlPoint]):
|
||||
state.barcaps_needed[self.target] -= 1
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.BARCAP, 2)
|
||||
self.propose_flight(FlightType.BARCAP, randint(2, 4))
|
||||
|
||||
@property
|
||||
def purchase_multiplier(self) -> int:
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from random import randint
|
||||
|
||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||
from game.commander.theaterstate import TheaterState
|
||||
@ -29,5 +30,5 @@ class PlanCas(PackagePlanningTask[FrontLine]):
|
||||
state.vulnerable_front_lines.remove(self.target)
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.CAS, 2)
|
||||
self.propose_flight(FlightType.CAS, randint(2, 4))
|
||||
self.propose_flight(FlightType.TARCAP, 2)
|
||||
|
||||
@ -25,7 +25,8 @@ class PlanDead(PackagePlanningTask[IadsGroundObject]):
|
||||
state.eliminate_air_defense(self.target)
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.DEAD, 2)
|
||||
tgt_count = self.target.alive_unit_count
|
||||
self.propose_flight(FlightType.DEAD, min(4, (tgt_count // 2) + 1))
|
||||
|
||||
# Only include SEAD against SAMs that still have emitters. No need to
|
||||
# suppress an EWR, and SEAD isn't useful against a SAM that no longer has a
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from random import randint
|
||||
|
||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||
from game.commander.theaterstate import TheaterState
|
||||
@ -23,7 +24,7 @@ class PlanOcaStrike(PackagePlanningTask[ControlPoint]):
|
||||
state.oca_targets.remove(self.target)
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.OCA_RUNWAY, 2)
|
||||
self.propose_flight(FlightType.OCA_RUNWAY, randint(2, 4))
|
||||
if self.aircraft_cold_start:
|
||||
self.propose_flight(FlightType.OCA_AIRCRAFT, 2)
|
||||
self.propose_common_escorts()
|
||||
|
||||
@ -22,5 +22,6 @@ class PlanStrike(PackagePlanningTask[TheaterGroundObject]):
|
||||
state.strike_targets.remove(self.target)
|
||||
|
||||
def propose_flights(self) -> None:
|
||||
self.propose_flight(FlightType.STRIKE, 2)
|
||||
tgt_count = self.target.alive_unit_count
|
||||
self.propose_flight(FlightType.STRIKE, min(4, (tgt_count // 2) + 1))
|
||||
self.propose_common_escorts()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user