mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Let the TheaterCommander manage front line stance.
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.
This commit is contained in:
@@ -3,7 +3,7 @@ from __future__ import annotations
|
||||
from collections import Iterator
|
||||
from dataclasses import dataclass
|
||||
|
||||
from game.theater import ConflictTheater
|
||||
from game.theater import ConflictTheater, ControlPoint
|
||||
from game.theater.theatergroundobject import VehicleGroupGroundObject
|
||||
from game.utils import meters, nautical_miles
|
||||
|
||||
@@ -53,9 +53,7 @@ class Garrisons:
|
||||
continue
|
||||
|
||||
for garrison in garrisons:
|
||||
# Not sure what distance DCS uses, but assuming it's about 2NM since
|
||||
# that's roughly the distance of the circle on the map.
|
||||
if meters(garrison.distance_to(cp)) < nautical_miles(2):
|
||||
if meters(garrison.distance_to(cp)) < ControlPoint.CAPTURE_DISTANCE:
|
||||
blocking.append(garrison)
|
||||
else:
|
||||
defending.append(garrison)
|
||||
|
||||
Reference in New Issue
Block a user