Avoid appending triggers without actions

Resolves #67

The problem turned out to be split-triggers with no actions, which occurs when a STRIKE flight has no escorts in its package. Added a guard for this so the trigger isn't pushed to the mission in such a case.
This commit is contained in:
Raffson 2023-01-05 18:37:09 +01:00
parent bd63e4484d
commit 989562b90f
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
2 changed files with 9 additions and 2 deletions

View File

@ -17,6 +17,9 @@
* **[Mission Generation]** Avoid aircraft from being assigned to helicopter parking spots, resulting into air starts that usually crash.
* **[Mission Generation]** Use stacking algorithm to create vertical separation between flights spawning mid-mission over their departure, usually resulting into mid-air collisions.
# Retribution 1.0.1 (hotfix)
* **[Mission Generation]** Fix serialization issue when STRIKE flight has no escorts
# Retribution 1.0.0
## Features/Improvements

View File

@ -124,8 +124,12 @@ class AircraftGenerator:
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:
if flight.flight_type in [
FlightType.ESCORT,
FlightType.SEAD_ESCORT,
]:
splittrigger.add_action(AITaskPush(flight.group_id, 1))
if len(splittrigger.actions) > 0:
self.mission.triggerrules.triggers.append(splittrigger)
def spawn_unused_aircraft(