Move the start type requirement into ControlPoint.

This commit is contained in:
Dan Albert 2021-08-31 22:09:39 -07:00
parent 18eb661e84
commit e0047b1bbc
3 changed files with 15 additions and 4 deletions

View File

@ -43,9 +43,8 @@ class PackageBuilder:
if assignment is None:
return False
airfield, squadron = assignment
if isinstance(airfield, OffMapSpawn):
start_type = "In Flight"
else:
start_type = airfield.required_aircraft_start_type
if start_type is None:
start_type = self.start_type
flight = Flight(

View File

@ -670,6 +670,10 @@ class ControlPoint(MissionTarget, ABC):
self._coalition = new_coalition
self.base.set_strength_to_minimum()
@property
def required_aircraft_start_type(self) -> Optional[str]:
return None
@abstractmethod
def can_operate(self, aircraft: AircraftType) -> bool:
...
@ -1106,6 +1110,10 @@ class OffMapSpawn(ControlPoint):
def can_operate(self, aircraft: AircraftType) -> bool:
return True
@property
def required_aircraft_start_type(self) -> Optional[str]:
return "In Flight"
@property
def heading(self) -> Heading:
return Heading.from_degrees(0)

View File

@ -349,13 +349,17 @@ class AirliftPlanner:
else:
transfer = self.transfer
start_type = squadron.location.required_aircraft_start_type
if start_type is None:
start_type = self.game.settings.default_start_type
flight = Flight(
self.package,
self.game.country_for(squadron.player),
squadron,
flight_size,
FlightType.TRANSPORT,
self.game.settings.default_start_type,
start_type,
departure=squadron.location,
arrival=squadron.location,
divert=None,