From b9c62bc44af820cefbccef16bc2436e371dd06a8 Mon Sep 17 00:00:00 2001 From: Raffson Date: Fri, 2 Dec 2022 15:04:21 +0100 Subject: [PATCH] primary flight dead => escort RTB Make sure trigger isn't activated when split flag was already set to true --- game/missiongenerator/aircraft/aircraftgenerator.py | 10 ++++++++-- game/missiongenerator/aircraft/waypoints/splitpoint.py | 1 - 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/game/missiongenerator/aircraft/aircraftgenerator.py b/game/missiongenerator/aircraft/aircraftgenerator.py index be36944c..c1a93744 100644 --- a/game/missiongenerator/aircraft/aircraftgenerator.py +++ b/game/missiongenerator/aircraft/aircraftgenerator.py @@ -6,7 +6,7 @@ from functools import cached_property from typing import Any, Dict, List, TYPE_CHECKING from dcs.action import AITaskPush -from dcs.condition import FlagIsTrue +from dcs.condition import FlagIsTrue, GroupDead, Or, FlagIsFalse from dcs.country import Country from dcs.mission import Mission from dcs.terrain.terrain import NoParkingSlotError @@ -114,9 +114,15 @@ class AircraftGenerator: flight, country, dynamic_runways ) self.unit_map.add_aircraft(group, flight) - if package.primary_task == FlightType.STRIKE: + if ( + package.primary_task == FlightType.STRIKE + and package.primary_flight is not None + ): splittrigger = TriggerOnce(Event.NoEvent, f"Split-{id(package)}") splittrigger.add_condition(FlagIsTrue(flag=f"split-{id(package)}")) + splittrigger.add_condition(Or()) + splittrigger.add_condition(FlagIsFalse(flag=f"split-{id(package)}")) + splittrigger.add_condition(GroupDead(package.primary_flight.group_id)) for flight in package.flights: if flight is not package.primary_flight: splittrigger.add_action(AITaskPush(flight.group_id, 1)) diff --git a/game/missiongenerator/aircraft/waypoints/splitpoint.py b/game/missiongenerator/aircraft/waypoints/splitpoint.py index f2234679..9bf99578 100644 --- a/game/missiongenerator/aircraft/waypoints/splitpoint.py +++ b/game/missiongenerator/aircraft/waypoints/splitpoint.py @@ -1,7 +1,6 @@ from dcs.point import MovingPoint from dcs.task import OptECMUsing, OptFormation, RunScript -from game.utils import mach, Distance from .pydcswaypointbuilder import PydcsWaypointBuilder