mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
This improves the AI behavior by choosing the stances non-randomly: * Breakthrough will be used if the base is expected to be capturable and the coalition outnumbers the enemy by 20%. * Elimination will be used if the coalition has at least as many units as the enemy. * Defensive will be used if the coalition has at least half as many units as the enemy. * Retreat will be used if the coalition is significantly outnumbers. This also exposes the option to the player.
15 lines
425 B
Python
15 lines
425 B
Python
from __future__ import annotations
|
|
|
|
from game.commander.tasks.frontlinestancetask import FrontLineStanceTask
|
|
from gen.ground_forces.combat_stance import CombatStance
|
|
|
|
|
|
class DefensiveStance(FrontLineStanceTask):
|
|
@property
|
|
def stance(self) -> CombatStance:
|
|
return CombatStance.DEFENSIVE
|
|
|
|
@property
|
|
def have_sufficient_front_line_advantage(self) -> bool:
|
|
return self.ground_force_balance >= 0.5
|