* Helicopter waypoint altitude configurable
Added a new option in Settings: Helicopter waypoint altitude (feet AGL).
It sets the waypoint altitude for helicopters in feet AGL. In campaigns in more mountainous areas, you might want to increase this setting to avoid the AI flying into the terrain.
* black?
* Distinguish cruise/combat altitudes for helicopters
Also includes a refactor for WaypointBuilder so it doesn't need a coalition. It can already reference the coalition from the flight.
* Update changelog.md
---------
Co-authored-by: Raffson <Raffson@users.noreply.github.com>
Use the new data from pydcs to improve the properties UI:
* Use human readable names
* Use appropriate control types
* Limit min and max values as appropriate for each property
* Show labels
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3090.
These are read unconditionally, but were only initialized when the
coalition had nodes. When a coalition had no nodes, this caused a nil
access. It's unclear if that had any symptoms, but I expect at the very
least it would break the remainder of the script (so a non-functioning
blue IADS if the red IADS had no nodes).
There's a very small chance this is the culprit behind
https://github.com/dcs-liberation/dcs_liberation/issues/3073.
* 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>
Added a new option in settings: Convert untasked OPFOR aircraft into client slots. This option will essentially convert the campaign into a sort of team vs. team engagement. There is still no way to plan the OPFOR missions, and there are no guarantees that there even will be any untasked aircraft available for players.
Split the Disable idle aircraft at airfields setting into Disable untasked BLUFOR aircraft at airfields and Disable untasked OPFOR aircraft at airfields.
Corrected the class of the WWII asset pack ship USS Samuel Chase from Logistics (ground unit class) to LandingShip, in order to prevent it being spawned as part of AAA sites.
* 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>