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 __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from random import randint
|
||||||
|
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
@ -29,6 +30,6 @@ class PlanAirAssault(PackagePlanningTask[ControlPoint]):
|
|||||||
state.air_assault_targets.remove(self.target)
|
state.air_assault_targets.remove(self.target)
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
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?
|
# TODO Validate this.. / is Heli escort possible?
|
||||||
self.propose_flight(FlightType.TARCAP, 2)
|
self.propose_flight(FlightType.TARCAP, 2)
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from random import randint
|
||||||
|
|
||||||
from game.commander.missionproposals import EscortType
|
from game.commander.missionproposals import EscortType
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
@ -22,5 +23,5 @@ class PlanAntiShip(PackagePlanningTask[NavalGroundObject]):
|
|||||||
state.eliminate_ship(self.target)
|
state.eliminate_ship(self.target)
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
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)
|
self.propose_flight(FlightType.ESCORT, 2, EscortType.AirToAir)
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from random import randint
|
||||||
|
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
@ -21,5 +22,5 @@ class PlanAntiShipping(PackagePlanningTask[CargoShip]):
|
|||||||
state.enemy_shipping.remove(self.target)
|
state.enemy_shipping.remove(self.target)
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
def propose_flights(self) -> None:
|
||||||
self.propose_flight(FlightType.ANTISHIP, 2)
|
self.propose_flight(FlightType.ANTISHIP, randint(2, 4))
|
||||||
self.propose_common_escorts()
|
self.propose_common_escorts()
|
||||||
|
|||||||
@ -21,5 +21,6 @@ class PlanBai(PackagePlanningTask[VehicleGroupGroundObject]):
|
|||||||
state.eliminate_battle_position(self.target)
|
state.eliminate_battle_position(self.target)
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
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()
|
self.propose_common_escorts()
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from random import randint
|
||||||
|
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
@ -21,7 +22,7 @@ class PlanBarcap(PackagePlanningTask[ControlPoint]):
|
|||||||
state.barcaps_needed[self.target] -= 1
|
state.barcaps_needed[self.target] -= 1
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
def propose_flights(self) -> None:
|
||||||
self.propose_flight(FlightType.BARCAP, 2)
|
self.propose_flight(FlightType.BARCAP, randint(2, 4))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def purchase_multiplier(self) -> int:
|
def purchase_multiplier(self) -> int:
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from random import randint
|
||||||
|
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
@ -29,5 +30,5 @@ class PlanCas(PackagePlanningTask[FrontLine]):
|
|||||||
state.vulnerable_front_lines.remove(self.target)
|
state.vulnerable_front_lines.remove(self.target)
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
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)
|
self.propose_flight(FlightType.TARCAP, 2)
|
||||||
|
|||||||
@ -25,7 +25,8 @@ class PlanDead(PackagePlanningTask[IadsGroundObject]):
|
|||||||
state.eliminate_air_defense(self.target)
|
state.eliminate_air_defense(self.target)
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
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
|
# 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
|
# 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 __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from random import randint
|
||||||
|
|
||||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||||
from game.commander.theaterstate import TheaterState
|
from game.commander.theaterstate import TheaterState
|
||||||
@ -23,7 +24,7 @@ class PlanOcaStrike(PackagePlanningTask[ControlPoint]):
|
|||||||
state.oca_targets.remove(self.target)
|
state.oca_targets.remove(self.target)
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
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:
|
if self.aircraft_cold_start:
|
||||||
self.propose_flight(FlightType.OCA_AIRCRAFT, 2)
|
self.propose_flight(FlightType.OCA_AIRCRAFT, 2)
|
||||||
self.propose_common_escorts()
|
self.propose_common_escorts()
|
||||||
|
|||||||
@ -22,5 +22,6 @@ class PlanStrike(PackagePlanningTask[TheaterGroundObject]):
|
|||||||
state.strike_targets.remove(self.target)
|
state.strike_targets.remove(self.target)
|
||||||
|
|
||||||
def propose_flights(self) -> None:
|
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()
|
self.propose_common_escorts()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user