2023-07-15 17:55:55 +02:00

42 lines
1.4 KiB
Python

import logging
from dcs.point import MovingPoint
from dcs.task import AttackGroup, OptFormation, WeaponType
from game.theater import NavalControlPoint, TheaterGroundObject
from .pydcswaypointbuilder import PydcsWaypointBuilder
class AntiShipIngressBuilder(PydcsWaypointBuilder):
def add_tasks(self, waypoint: MovingPoint) -> None:
group_names = []
waypoint.tasks.append(OptFormation.finger_four_open())
target = self.package.target
if isinstance(target, NavalControlPoint):
carrier_name = target.get_carrier_group_name()
if carrier_name:
group_names.append(carrier_name)
elif isinstance(target, TheaterGroundObject):
for group in target.groups:
group_names.append(group.group_name)
else:
logging.error(
"Unexpected target type for Anti-Ship mission: %s",
target.__class__.__name__,
)
return
for group_name in group_names:
miz_group = self.mission.find_group(group_name)
if miz_group is None:
logging.error(
"Could not find group for Anti-Ship mission %s", group_name
)
continue
task = AttackGroup(
miz_group.id, group_attack=True, weapon_type=WeaponType.Auto
)
waypoint.tasks.append(task)