Support mobile CPs in the new map.

https://github.com/dcs-liberation/dcs_liberation/issues/2039
This commit is contained in:
Dan Albert
2022-03-05 15:41:58 -08:00
parent 2c6e8c414c
commit 995e28cb32
4 changed files with 336 additions and 13 deletions

View File

@@ -41,7 +41,7 @@ from game.sidc import (
Status,
SymbolSet,
)
from game.utils import Heading
from game.utils import Distance, Heading, meters
from .base import Base
from .frontline import FrontLine
from .missiontarget import MissionTarget
@@ -540,7 +540,15 @@ class ControlPoint(MissionTarget, SidcDescribable, ABC):
"""
:return: Whether this control point can be moved around
"""
return False
return self.max_move_distance > meters(0)
@property
def max_move_distance(self) -> Distance:
return meters(0)
def destination_in_range(self, destination: Point) -> bool:
distance = meters(destination.distance_to_point(self.position))
return distance <= self.max_move_distance
@property
@abstractmethod
@@ -1117,8 +1125,8 @@ class NavalControlPoint(ControlPoint, ABC):
return False
@property
def moveable(self) -> bool:
return True
def max_move_distance(self) -> Distance:
return nautical_miles(80)
@property
def can_deploy_ground_units(self) -> bool: