* fix conflict
* squash bugs and reuse patrol layout
* fix tanker tacan and formatting
* fix unlimited fuel option
* update pretense for tanker changes
* reuse refueling flight plan and bugfix for sunken carrier
changelog
* remove unitmap dependency
* formatting and more unit map removal
* more formatting
* typing and black
* keep tanker out of clouds
* fix if there are no clouds
* better cloud handling
* groundwork for recovery task
* remove changes to game/commander
* Finishing up recovery tankers
---------
Co-authored-by: Raffson <Raffson@users.noreply.github.com>
Seems like the EscortType would cause the flight to be pruned if no IADS threats surround the CAS zone, but we'd like to plan it regardless to tackle air defenses along the front-line
* Implemented a new option in settings: Default start type for Player flights.
* Updated changelog.
* Removed unnecessary country parameter.
* Restore missing parameter
* on_pilot_changed should emit pilots_changed in its finally block, otherwise the start-type isn't updated if you have a single client pilot which you switch to a non-client pilot.
Also implemented other changes suggested by @Raffson, such as a more streamlined start_type QComboBox handling and moving the pilots_changed Signal to FlightRosterEditor.
* Decouple Signal from QFlighStartType
---------
Co-authored-by: Raffson <Raffson@users.noreply.github.com>
The check for whether or not the escort is actually needed happens later, and thus the mission can still be scrubbed if it's too dangerous. However, missions should not be scrubbed when a particular escort type is unplannable, yet not needed. Only if the primary flight type is not plannable should the mission immediately be scrubbed
* Auto-ato AWACS & Tankers settings
Split off the **Automatic AWACS package planning** and **Automatic Theater tanker package planning** settings from **Automatic package planning behavior** so players can choose to have AWACS and theater tankers auto-planned, while managing everything else themselves.
* Drop logic to child-classes
* Enable AWACS auto-planning by default
* Switch order of preconditions
---------
Co-authored-by: Raffson <Raffson@users.noreply.github.com>
- Plan number of aircraft more accurately
- Fine-tuning ingress waypoint tasks
- Add lineup waypoint for STRIKE flights, 10NM in front of ingress on the same heading as the target
* Added a separate Doctrine page in settings with the following new options:
- Minimum number of aircraft for autoplanner to plan OCA packages against
- Airbase threat range (nmi)
- TARCAP threat buffer distance (nmi)
- AEW&C threat buffer distance (nmi)
- Theater tanker threat buffer distance (nmi)
Implemented handling for the OPFOR autoplanner aggressiveness in objectivefinder.py vulnerable_control_points().
* * Added three new options in Settings:
- Autoplanner plans refueling flights for Strike packages
- Autoplanner plans refueling flights for OCA packages
- Autoplanner plans refueling flights for DEAD packages
Fixed a bug in faction.py where F-16Ds were not correctly removed from the faction when the F-16I/F-16D mod was not selected.
* Renamed Maximum frontline length -> Maximum frontline width.
* Roadbase and ground spawn support
Implemented support for roadbases and ground spawn slots at airfields and FOBs. The ground spawn slots can be inserted in campaigns by placing either an A-10A or an AJS37 at a runway or ramp. This will cause an invisible FARP, an ammo dump and a fuel dump to be placed (behind the slot in case of A-10A, to the side in case of AJS37) in the generated campaigns. The ground spawn slot can be used by human controlled aircraft in generated missions. Also allowed the use of the four-slot FARP and the single helipad in campaigns, in addition to the invisible FARP. The first waypoint of the placed aircraft will be the center of a Remove Statics trigger zone (which might or might not work in multiplayer due to a DCS limitation).
Also implemented three new options in settings:
- AI fixed-wing aircraft can use roadbases / bases with only ground spawns
- This setting will allow the AI to use the roadbases for flights and transfers. AI flights will air-start from these bases, since the AI in DCS is not currently able to take off from ground spawns.
- Spawn trucks at ground spawns in airbases instead of FARP statics
- Spawn trucks at ground spawns in roadbases instead of FARP statics
- These settings will replace the FARP statics with refueler and ammo trucks at roadbases. Enabling them might have a negative performance impact.
* Modified calculate_parking_slots() so it now takes into account also helicopter slots on FARPs and also ground start slots (but only if the aircraft is flyable or the "AI fixed-wing aircraft can use roadbases / bases with only ground spawns" option is enabled in settings).
* Improved the way parking slots are communicated on the basemenu window.
* Refactored helipad and ground spawn appends to static methods _add_helipad and _add_ground_spawn in mizcampaignloader.py
Added missing changelog entries.
Fixed tgogenerator.py imports.
Cleaned up ParkingType() construction.
* Added test_control_point_parking for testing that the correct number of parking slots are returned for control point in test_controlpoint.py
* Added test_parking_type_from_squadron to test the correct ParkingType object is returned for a squadron of Viggens in test_controlpoint.py
* Added test_parking_type_from_aircraft to test the correct ParkingType object is returned for Viggen aircraft type in test_controlpoint.py
---------
Co-authored-by: Raffson <Raffson@users.noreply.github.com>
We want other pieces of country information (in particular the short
names). This cleans up a lot of code anyway.
As an added bonus, this now catches squadrons that used invalid names
which would previously be passed through to pydcs and... then I don't
know what would happen.
Cleanup and reword refuel waypoints
- rename Stopover back to CargoStop
- precise some waypoint naming
Cleanup and refine airlift and airassault waypoints
- Drop Off and Pickup now correctly worded
- Helo waypoints now represent LandingZones for pickup and dropoff
Forbid planes from air assault.
Make air assault drop-off non-optional.
There is always a drop-off location for troops.
Add docs explaining what the assault area is.
Add error handling for cargo drop waypoints.
Document some airlift waypoint behavior.
Remove unnecessary refuel waypoint in airlifts.
Remove CTLD logic from Airlift flightplan for AI
Add Ingress Point to AirAssault FlightPlan
Add simulation halt at AirAssault ingress
Remove AirAssault completly from AutoPlanner
Remove unneeded LandRefuel from Airlift
Clarify cargo waypoints for AirLift and AirAssault
Squashing 8 commits by DanAlbert:
- Track theater in ControlPoint.
Simplifies finding the owning theater of a control point. Not used yet.
- Clean some cruft out of FlightPlanBuilder.
- Clean up silly some exception handling.
- Move FlightPlan instantiation into the builder.
I'm working on moving the builder to be owned by the Flight, which will simplify callers that need to create (or recreate) flight plans for a flight.
- Simplify IBuilder constructor.
We have access to the theater via the flight's departure airbase now.
- Move FlightPlan creation into Flight.
For now this is just a callsite cleanup. Later, this will make it easier
to separate unscheduled and scheduled flights into different classes without complicating the layout/scheduling.
- Remove superfluous constructors.
- Remove unused Package field.