diff --git a/changelog.md b/changelog.md index 093156bf..d02d761f 100644 --- a/changelog.md +++ b/changelog.md @@ -11,9 +11,11 @@ * **[Units/Factions/Mods]** Added faction "Insurgent modded" with Insurgent units from frenchpack v3.5 mod (Toyota truck) * **[Units/Factions/Mods]** Added factions Canada 2005, Australia 2005, Japan 2005, USA Aggressors * **[New Game Wizard]** Added the list of required mods for modded factions. +* **[New Game Wizard]** No more RED vs BLUE opposing faction restrictions. +* **[New Game Wizard]** New campaign generation settings added : No aircraft carrier, no lha, no navy, invert map starting positions. * **[Mission Generator]** Artillery units will start firing mission after a random delay. It should reduces lag spikes induced by artillery strikes by spreading them out. * **[Mission Generator]** The briefing will now contain the carrier ATC frequency -* **[Mission Generator]** The briefing contains a small section about the war on the ground. +* **[Mission Generator]** The briefing contains a small situation update. * **[Mission Generator]** Previously destroyed units are visible in the mission. (And added a performance settings to disable this behaviour) ## Fixed issues : @@ -27,12 +29,13 @@ * **[Mission Generator]** Base defense units were not controllable with Combined Arms * **[Mission Generator]** Tanker speed was too low * **[Mission Generator]** Tanker TACAN settings were wrong +* **[Mission Generator]** Fixed all flights starting "In flight" after playing a few missions (parking slot reset issue) * **[Mission Script/Performance]** Mission lua script will not listen to weapons fired event anymore and register every fired weapons. This should improve performance especially in WW2 scenarios or when rocket artillery is firing. * **[Campaign Generator]** Carrier name will now not appear for faction who do not have carriers -* **[Campaign Generator]** Fixed SA-10 did not have tracking radar +* **[Campaign Generator]** SA-10 sites will now have a tracking radar. * **[Units/Factions]** Remove JF-17 from USA 2005 faction * **[Units/Factions]** Remove AJS-37 from Russia 2010 -* **[Units/Factions]** Removed Oliver Hazard Perry from cold war factions (too powerful sam system) +* **[Units/Factions]** Removed Oliver Hazard Perry from cold war factions (too powerful sam system for the era) * **[Bug]** On the persian gulf full map campaign, the two carriers were sharing the same id, this was causing a lot of bugs * **[Performance]** Tuned the culling setting so that you cannot run into situation where no friendly or enemy AI flights are generated * **[Other]** Application doesn't gracefully exit. diff --git a/gen/aircraft.py b/gen/aircraft.py index 695e5fa4..1b8d3d2e 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -6,6 +6,7 @@ from dcs.triggers import TriggerOnce, Event from game.data.cap_capabilities_db import GUNFIGHTERS from game.settings import Settings +from game.utils import nm_to_meter from gen.flights.ai_flight_planner import FlightPlanner from gen.flights.flight import Flight, FlightType, FlightWaypointType from .conflictgen import * @@ -121,7 +122,7 @@ class AircraftConflictGenerator: country=side, name=name, aircraft_type=unit_type, - airport=self.m.terrain.airport_by_id(airport.id), + airport=airport, maintask=None, start_type=start_type, group_size=count, @@ -249,6 +250,11 @@ class AircraftConflictGenerator: def generate_flights(self, cp, country, flight_planner:FlightPlanner): + # Clear pydcs parking slots + if cp.airport is not None: + for ps in cp.airport.parking_slots: + ps.unit_id = None + for flight in flight_planner.flights: if flight.client_count == 0 and self.game.position_culled(flight.from_cp.position): @@ -348,7 +354,7 @@ class AircraftConflictGenerator: unit_type=flight.unit_type, count=flight.count, client_count=0, - airport=self.m.terrain.airport_by_id(cp.at.id), + airport=cp.airport, start_type=st) except Exception: # Generated when there is no place on Runway or on Parking Slots @@ -378,8 +384,8 @@ class AircraftConflictGenerator: group.task = CAP.name self._setup_group(group, CAP, flight) # group.points[0].tasks.clear() - # group.tasks.clear() - # group.tasks.append(EngageTargets(max_distance=40, targets=[Targets.All.Air])) + group.points[0].tasks.clear() + group.points[0].tasks.append(EngageTargets(max_distance=nm_to_meter(50), targets=[Targets.All.Air])) # group.tasks.append(EngageTargets(max_distance=nm_to_meter(120), targets=[Targets.All.Air])) if flight.unit_type not in GUNFIGHTERS: group.points[0].tasks.append(OptRTBOnOutOfAmmo(OptRTBOnOutOfAmmo.Values.AAM)) @@ -390,9 +396,13 @@ class AircraftConflictGenerator: group.task = CAS.name self._setup_group(group, CAS, flight) group.points[0].tasks.clear() - group.points[0].tasks.append(CASTaskAction()) + group.points[0].tasks.append(EngageTargets(max_distance=nm_to_meter(10), targets=[Targets.All.GroundUnits.GroundVehicles])) group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) group.points[0].tasks.append(OptROE(OptROE.Values.OpenFireWeaponFree)) + group.points[0].tasks.append(OptRTBOnOutOfAmmo(OptRTBOnOutOfAmmo.Values.ASM)) + group.points[0].tasks.append(OptRTBOnOutOfAmmo(OptRTBOnOutOfAmmo.Values.Rockets)) + group.points[0].tasks.append(OptRTBOnOutOfAmmo(OptRTBOnOutOfAmmo.Values.Bombs)) + group.points[0].tasks.append(OptRTBOnOutOfAmmo(OptRTBOnOutOfAmmo.Values.GuidedBombs)) elif flight_type in [FlightType.SEAD, FlightType.DEAD]: group.task = SEAD.name self._setup_group(group, SEAD, flight) @@ -401,7 +411,7 @@ class AircraftConflictGenerator: group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) group.points[0].tasks.append(OptROE(OptROE.Values.OpenFire)) group.points[0].tasks.append(OptRestrictJettison(True)) - group.points[0].tasks.append(OptRTBOnOutOfAmmo(OptRTBOnOutOfAmmo.Values.ARM)) + group.points[0].tasks.append(OptRTBOnOutOfAmmo(OptRTBOnOutOfAmmo.Values.ASM)) elif flight_type in [FlightType.STRIKE]: group.task = PinpointStrike.name self._setup_group(group, GroundAttack, flight)