Commit Graph

178 Commits

Author SHA1 Message Date
Dan Albert
f11689f4cb Allow flights to self-initialize.
This makes it possible to add new packages to a running sim.

https://github.com/dcs-liberation/dcs_liberation/issues/1680
2023-10-07 21:43:28 +02:00
Raffson
ea726bbf06 Streamlining 2023-10-07 21:43:27 +02:00
Dan Albert
59673e7911 Convert TOTs to datetime.
https://github.com/dcs-liberation/dcs_liberation/issues/1680
2023-10-07 21:09:25 +02:00
Dan Albert
14d3e743d4 Remove useless TravelTime class.
This is only called for real in one spot. The other callers should have
been deferring to the one real caller.
2023-10-07 20:55:08 +02:00
Dan Albert
dcaee350cf Remove dead code. 2023-10-07 19:11:40 +02:00
Raffson
62a40db9ea Streamlining 2023-10-07 18:53:42 +02:00
Dan Albert
75498fe061 Differentiate total time and travel time.
There's an ugly special case in flight simulation to handle hold points
because we don't differentiate between the total time between two
waypoints (which can include delays from actions like holding) and
travel time. Split those up and remove the special case.
2023-10-07 18:42:59 +02:00
Raffson
03d8448def Streamlining 2023-10-07 18:13:55 +02:00
Dan Albert
a2630fc75f Add a real CAS ingress point.
Putting the ingress point directly on one end of the FLOT means that AI
flights won't start searching and engaging targets until they reach that
point. If the front line has advanced toward the flight's departure
airfield, it might overfly targets on its way to the IP.

Instead, place an IP for CAS the same way we place any other IP. The AI
will fly to that and start searching from there.

This also:

* Removes the midpoint waypoint, since it didn't serve any real purpose
* Names the FLOT boundary waypoints for what they actually are

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/2231.
2023-10-07 18:00:07 +02:00
Raffson
c50dcaaafb Streamlining 2023-10-07 18:00:07 +02:00
Raffson
ee3bdf9fd7 Streamlining 2023-10-07 17:14:01 +02:00
Dan Albert
97ee6ba19f Force dumping debug info on recreate.
We need a way to debug successful solvers that's still targeting to a
specific flight. This will do for now.
2023-10-07 17:07:57 +02:00
Dan Albert
8b04dd878d Migrate IP placement to WaypointSolver. 2023-10-07 17:07:32 +02:00
Dan Albert
0b7acbc94e Fix synchronization of loadouts on change.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3111.
2023-10-07 14:42:51 +02:00
Dan Albert
e25aac774f Handle TOT offsets for patrolling flight plans.
https://github.com/dcs-liberation/dcs_liberation/issues/3107
2023-10-07 14:33:04 +02:00
Dan Albert
51f578b9e3 Add UI for selecting weapon laser codes.
This makes it possible to have the right laser code set for hot start
aircraft that (typically) do not allow changing laser codes when the
engine is on.
2023-10-07 14:13:51 +02:00
Raffson
1ce8d9c2b7 Cleanup after cherry-pick 2023-10-07 14:08:53 +02:00
Dan Albert
177f357492 Pre-allocate laser codes for FLOTs and flights. 2023-10-07 14:06:12 +02:00
MetalStormGhost
54777a9045 Helicopter waypoint altitude configurable (#207)
* 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>
2023-10-02 18:54:21 +02:00
Raffson
d4eefd0b55 Streamlining 2023-10-01 21:56:30 +02:00
Dan Albert
485229b92f Allow per pilot loadouts and properties.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3092.
2023-10-01 20:10:16 +02:00
Dan Albert
f89ac52bf3 Clean up remaining Flight.from_cp users.
The preferred API for this has been `Flight.departure` for a while.
2023-10-01 19:26:20 +02:00
Raffson
3024bd6479 Fix Hercules AirAssault exception 2023-09-30 19:37:16 +02:00
Raffson
ea74471307 Avoid refuel waypoint if air wing can't plan refuel flight 2023-09-23 17:25:12 +02:00
Raffson
66d741d0b3 Allow user to add navigation waypoints where possible 2023-08-27 21:11:10 +02:00
Raffson
9b9905c5a3 Tweaking helicopter stuff 2023-08-19 21:10:26 +02:00
Raffson
8a6b7b172c Fix #199
Adjust 'should_halt_sim' conditions for taxi & takeoff flight-states, fixing an infinite loop that would occur if the FF-interrupt setting would not match with the start-type of the flight
2023-08-19 15:14:23 +02:00
Raffson
789806637c Improve escort logic for helicopters
Babysteps #88
2023-08-15 21:50:20 +02:00
Raffson
270301958a Fix helicopters oscillating due to over-speeding 2023-08-14 20:25:35 +02:00
MetalStormGhost
c51fa5c1df CAS engagement range
New option in Settings: CAS engagement range (nmi)
2023-08-02 19:22:15 +02:00
Raffson
9d63bcbf69 Improve STRIKE where possible
- 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
2023-07-16 18:22:29 +02:00
Raffson
d6e7451f8a Add F-15I support
Co-Authored-By: M Chimiste <37678080+M-Chimiste@users.noreply.github.com>
2023-07-09 19:32:15 +02:00
Raffson
e86fc60b41 Spawn idle aircraft at helipads
Applicable for helicopters at airbases & both helicopters and LHA-capable aircraft at FOBs
2023-07-09 15:14:46 +02:00
Raffson
2ec187bc9c Fixing OCA-bug against FOBs
OCA Aircraft should be properly allowed against FOBs given Ghosti's roadbases
2023-07-05 23:29:48 +02:00
MetalStormGhost
be31a97c71 Added new option in settings: SEAD Sweep engagement range (nmi).
Renamed SEAD Sweep threat buffer distance (nmi) to SEAD Escort/Sweep threat buffer distance (nmi) since it also applies to SEAD Escort flights.
2023-07-04 23:19:47 +02:00
MetalStormGhost
aecb171b8f SEAD Sweep threat buffer distance
Added a new option in settings: SEAD Sweep threat buffer distance (nmi).
2023-07-04 23:19:47 +02:00
Raffson
6c210c9d15 Fine-tuning stuff for 'SEAD Sweep' 2023-07-03 00:38:50 +02:00
Raffson
db038ecdea Add SEAD Sweep flight plan
Reintroduce legacy SEAD Escort flight plan, but under a separate type because it didn't really escort the primary flight...
2023-07-02 16:53:55 +02:00
MetalStormGhost
6e37cadb84 Settings doctrine page + streamlining (#156)
* 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.
2023-07-01 23:54:27 +02:00
Raffson
5818367f2e Fine-tune SEAD search point 2023-06-17 21:28:33 +02:00
Raffson
c559d6e2be Follow-up on flight TOT offset 2023-06-04 01:50:46 +02:00
Dan Albert
7a57bd3ee0 Save the TOT offset in the flight plan.
Prep work for exposing this to the UI.
2023-06-04 00:31:38 +02:00
Raffson
bbf8e69659 Split Anti-Ship from BAI 2023-06-03 19:04:37 +02:00
Raffson
198ff7d8a3 Allow deletion of certain types of waypoints
Resolves #60
NAV/REFUEL/DIVERT waypoints should have no effect on the timings.
2023-05-29 00:11:27 +02:00
Raffson
7582040d41 Allow harriers to operate from FOBs/FARPs
Resolve #109
2023-05-28 21:05:17 +02:00
Raffson
785beffee0 Cleanup after cherry-picking... 2023-05-14 21:37:24 +02:00
Dan Albert
0608089eb0 Use the actual Country type instead of the name.
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.
2023-05-14 21:04:09 +02:00
Dan Albert
0b6575ca97 Use task priorities from aircraft yamls.
Preferred aircraft per task are now determined by a ranking of weights
stored in the aircraft yaml files. To aid in visualizing the priorities
across aircraft, Liberation can be run with the argument
dump-task-priorities to dump a yaml file in Saved
Games/DCS/Liberation/Debug/priorities.yaml, which will show each task
along with priority sorted aircraft and their weights.

The current weights in the data were exported from the existing lists,
where each position from the bottom of the list was worth 10 (to allow
some games for less shuffling later).

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/2809.
2023-05-14 14:50:30 +02:00
Pande4360
179850cdb6 Support for SW v2.6 mod (#120)
* Removed AI varients

* Removed AI varients Logo/Banners

* Removed AI varients Logo/Banners

* Removed AI varients ai flgith planner

* Removed AI varients SWPack Fix

* Removed AI varients SWPack - SWWeapon fix
2023-05-11 21:48:19 +02:00
zhexu14
f965c9ffa7 Handle edge case where aircraft have built in TPGs 2023-05-07 21:43:41 +02:00