mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Fixed ai_flight_planner for maps lacking frontlines (such as battle of britain on The Channel map)
This commit is contained in:
@@ -456,15 +456,25 @@ class ObjectiveFinder:
|
||||
BUT! prefer Cvs. Everybody likes CVs!
|
||||
"""
|
||||
from_frontline = 0
|
||||
cp = None
|
||||
first_friendly_cp = None
|
||||
|
||||
for c in self.game.theater.controlpoints:
|
||||
if c.is_carrier and c.is_friendly(self.is_player):
|
||||
return c
|
||||
if c.is_friendly(self.is_player) and c.has_frontline:
|
||||
if c.distance_to(self.front_lines().__next__()) > from_frontline:
|
||||
from_frontline = c.distance_to(self.front_lines().__next__())
|
||||
cp = c
|
||||
return cp
|
||||
if c.is_friendly(self.is_player):
|
||||
if first_friendly_cp is None:
|
||||
first_friendly_cp = c
|
||||
if c.is_carrier:
|
||||
return c
|
||||
if c.has_active_frontline:
|
||||
if c.distance_to(self.front_lines().__next__()) > from_frontline:
|
||||
from_frontline = c.distance_to(self.front_lines().__next__())
|
||||
cp = c
|
||||
|
||||
# If no frontlines on the map, return the first friendly cp
|
||||
if cp is None:
|
||||
return first_friendly_cp
|
||||
else:
|
||||
return cp
|
||||
|
||||
def enemy_control_points(self) -> Iterator[ControlPoint]:
|
||||
"""Iterates over all enemy control points."""
|
||||
|
||||
Reference in New Issue
Block a user