Include isolated points in objectivefinder

This commit is contained in:
Raffson 2024-09-15 20:37:03 +02:00
parent 8f8ee8c48e
commit f63939ce3c
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
2 changed files with 5 additions and 2 deletions

View File

@ -254,17 +254,20 @@ class ObjectiveFinder:
if not c.is_friendly(self.is_player) if not c.is_friendly(self.is_player)
) )
def prioritized_unisolated_points(self) -> list[ControlPoint]: def prioritized_points(self) -> list[ControlPoint]:
prioritized = [] prioritized = []
capturable_later = [] capturable_later = []
isolated = []
for cp in self.game.theater.control_points_for(not self.is_player): for cp in self.game.theater.control_points_for(not self.is_player):
if cp.is_isolated: if cp.is_isolated:
isolated.append(cp)
continue continue
if cp.has_active_frontline: if cp.has_active_frontline:
prioritized.append(cp) prioritized.append(cp)
else: else:
capturable_later.append(cp) capturable_later.append(cp)
prioritized.extend(self._targets_by_range(capturable_later)) prioritized.extend(self._targets_by_range(capturable_later))
prioritized.extend(self._targets_by_range(isolated))
return prioritized return prioritized
@staticmethod @staticmethod

View File

@ -145,7 +145,7 @@ class TheaterState(WorldState["TheaterState"]):
) -> TheaterState: ) -> TheaterState:
coalition = game.coalition_for(player) coalition = game.coalition_for(player)
finder = ObjectiveFinder(game, player) finder = ObjectiveFinder(game, player)
ordered_capturable_points = finder.prioritized_unisolated_points() ordered_capturable_points = finder.prioritized_points()
context = PersistentContext( context = PersistentContext(
game.db, game.db,