Fix naval aircraft not always returning to carrier

This commit is contained in:
Raffson
2024-01-21 13:36:38 +01:00
parent d6026681ee
commit bc26eb3f5e
4 changed files with 14 additions and 1 deletions

View File

@@ -1,5 +1,6 @@
from dcs.point import MovingPoint, PointAction
from game.theater import NavalControlPoint
from .pydcswaypointbuilder import PydcsWaypointBuilder
@@ -9,5 +10,9 @@ class LandingPointBuilder(PydcsWaypointBuilder):
waypoint.type = "Land"
waypoint.action = PointAction.Landing
if (control_point := self.waypoint.control_point) is not None:
waypoint.airdrome_id = control_point.airdrome_id_for_landing
if isinstance(control_point, NavalControlPoint):
waypoint.helipad_id = control_point.airdrome_id_for_landing
waypoint.link_unit = control_point.airdrome_id_for_landing
else:
waypoint.airdrome_id = control_point.airdrome_id_for_landing
return waypoint

View File

@@ -590,6 +590,7 @@ class GenericCarrierGenerator(GroundObjectGenerator):
f"Error generating carrier group for {self.control_point.name}"
)
ship_group.units[0].type = carrier_type.id
self.control_point.carrier_id = ship_group.units[0].id
if self.control_point.tacan is None:
tacan = self.tacan_registry.alloc_for_band(
TacanBand.X, TacanUsage.TransmitReceive

View File

@@ -1336,6 +1336,8 @@ class Airfield(ControlPoint, CTLD):
class NavalControlPoint(
ControlPoint, ABC, Link4Container, TacanContainer, ICLSContainer
):
carrier_id: Optional[int] = None
@property
def is_fleet(self) -> bool:
return True
@@ -1427,6 +1429,10 @@ class NavalControlPoint(
return ControlPointStatus.Damaged
return ControlPointStatus.Functional
@property
def airdrome_id_for_landing(self) -> Optional[int]:
return self.carrier_id
class Carrier(NavalControlPoint):
def __init__(