4862 Commits

Author SHA1 Message Date
Raffson
22900407dd
Format time for WPTs on map 2023-10-15 12:55:55 +02:00
Raffson
84c9098dba
Add missing colon in departure time 2023-10-15 12:27:42 +02:00
Raffson
63e2c30e44
Fix SEAD Sweep not available at campaign start 2023-10-15 12:23:18 +02:00
Raffson
02ae5d9ad7
Remove faulty beacon in migrator 2023-10-14 20:11:08 +02:00
Raffson
91fb0cea58
pydcs update 2023-10-14 19:27:24 +02:00
Raffson
3c921198af
PySide6 steamlining 2023-10-14 18:42:48 +02:00
Raffson
7a3c9a707f
Fix external views not allowing F5 view 2023-10-14 16:02:39 +02:00
Raffson
3b319ca481
Update contributors list 2023-10-14 15:52:04 +02:00
Raffson
7adbe71475
Fix payload saver 2023-10-14 15:40:29 +02:00
Raffson
06f51573e1
Fix kneeboard notes bug 2023-10-14 15:17:52 +02:00
tmz42
b2c38f454f
Correct Squadron sizes for Fuzzle's campaigns + new campaign 'Scenic Merge' (#212)
* Corrected Squadron sizes for Fuzzle's campaigns + Scenic Merge

* Scenic Merge - Set performance to an accurate 3

---------

Co-authored-by: Thomas MONZIE <thomas.monnzie@gmail.com>
Co-authored-by: tmz42 <tmz42@users.noreply.github.com>
2023-10-12 18:05:58 +00:00
Raffson
c9ed0352b7
Fix kneeboard bug preventing mission generation 2023-10-08 14:23:12 +02:00
Raffson
b8ef4fc726
Pipeline? 2023-10-08 01:43:25 +02:00
Raffson
394627e8d5
Pipeline! 2023-10-08 01:40:03 +02:00
Raffson
f513e27dc6
Pipeline 2023-10-08 01:34:54 +02:00
dependabot[bot]
fe6ff6a1ae Bump electron from 21.4.1 to 22.3.25 in /client
Bumps [electron](https://github.com/electron/electron) from 21.4.1 to 22.3.25.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v21.4.1...v22.3.25)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-08 01:14:45 +02:00
Raffson
88a5179653
Streamlining 2023-10-08 01:12:45 +02:00
Raffson
a357097c49
Update dependencies 2023-10-08 00:53:52 +02:00
Raffson
c4be00d11b
Migrate to PySide6 2023-10-08 00:53:51 +02:00
Raffson
93b83f2bc8
Streamlining 2023-10-08 00:37:39 +02:00
Dan Albert
a2e98f485c
Remove bingo estimates from FlightPlan.
This doesn't need to be a part of FlightPlan, and it's easier to test if
it isn't. Move it out and add the tests.

It's pretty misleading to allow this in the core of the flight plan code
anything. This is an extremely unreliable estimate for most aircraft so
it should be more clearly just for briefing purposes.
2023-10-07 23:08:25 +02:00
Raffson
e04f23bf15
Streamlining 2023-10-07 22:46:16 +02:00
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
Starfire13
625c4f2dfb
New version of Exercise Bright Star with carrier 2023-10-07 20:55:09 +02:00
Dan Albert
6a47e84699
Increase max distance for waypoint solver.
1000km isn't large enough in the case where there's an off-map spawn
that's a long way from the target, but still in range for aircraft like
the B-1. Double it, which for now is enough to fix the one pathological
case we know.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3156.
2023-10-07 20:55:09 +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
Dan Albert
d205e66fe4
Don't flag negative starts for active flights.
If the flight has already passed its start up time, this isn't a
negative start.
2023-10-07 19:01:11 +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
Dan Albert
5ca344e87b
Show the real front line bounds on the map.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1067.
2023-10-07 18:35:17 +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
Dan Albert
3499ba5ffa
Mark the AI-only F-15E more clearly. 2023-10-07 17:24:40 +02:00
Dan Albert
f5f11ff3ac
Add display name property for unit types.
Unlike the variant ID, this can be changed without breaking save compat.
2023-10-07 17:24:17 +02:00
Dan Albert
0ec375ad89
Fix unit variants to actually allow variance.
This was always the intent, but apparently it wasn't implemented
correctly. All properties of the unit type can now be overridden per
variant.
2023-10-07 17:23:34 +02:00
Raffson
ee3bdf9fd7
Streamlining 2023-10-07 17:14:01 +02:00
Dan Albert
1760532168
Rename UnitType.name what it is: the variant ID.
This property affects safe compat because the ID is what gets preserved
in the save, but it's unfortunately also used as the display name, which
means changing the display name breaks save compat. It also prevents us
from changing display names without breaking faction definitions.

This is the first step in fixing that. The next is adding a separate
display_name property that can be updated without breaking either of
those.
2023-10-07 17:08:33 +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
d96f7a267c
Add test cases found by fuzzer. 2023-10-07 17:07:33 +02:00
Dan Albert
98f92f9ab2
Add fuzz testing for waypoint solvers.
This fuzz test generates random inputs for waypoint solvers to check if
they can find a solution. If they can't, the debug info for the solver
is dumped to the testcases directory. Another test loads those test
cases, creates a solver from them, and checks that a solution is found.
Obviously it won't be immediately, but it's a starting point for fixing
the bug and serves as a regression test afterward.
2023-10-07 17:07:33 +02:00
Dan Albert
8b04dd878d
Migrate IP placement to WaypointSolver. 2023-10-07 17:07:32 +02:00
Dan Albert
643dafd2c8
Build common interface for waypoint geometry constraints.
This is a replacement for the existing "zone geometry" classes that are
currently used for choosing locations for IP, hold, and join points.
The older approach required the author to define the methods for
choosing locations at a rather low level using shapely APIs to merge or
mask geometries. Debug UIs had to be defined manually which was a great
deal of work. Worse, those debug UIs were only useable for *successful*
waypoint placement. If there was a bug in the solver (which was pretty
much unavoidable during development or tuning), it wasn't possible to
use the debug UI.

This new system adds a (very simple) geometric constraint solver to
allow the author to describe the requirements for a waypoint at a high
level. Each waypoint type will define a waypoint solver that defines one
or more waypoint strategies which will be tried in order. For example,
the IP solver might have the following strategies:

1. Safe IP
2. Threat tolerant IP
3. Unsafe IP
4. Safe backtracking IP
5. Unsafe backtracking IP

We prefer those in the order defined, but the preferred strategies won't
always have a valid solution. When that happens, the next one is tried.

The strategies define the constraints for the waypoint location. For
example, the safe IP strategy could be defined as (in pseudo code):

* At least 5 NM away from the departure airfield
* Not farther from the departure airfield than the target is
* Within 10 NM and 45 NM of the target (doctrine dependent)
* Safe
* Within the permissible region, select the point nearest the departure
  airfield

When a solver fails to find a solution using any strategy, debug
information is automatically written in a GeoJSON format which can be
viewed on geojson.io.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3085.
2023-10-07 17:07:21 +02:00
Dan Albert
bf879a6141
Add __str__ for Distance. 2023-10-07 15:55:05 +02:00
Dan Albert
fa1caa86d6
Add name to Doctrine. 2023-10-07 15:55:04 +02:00
Dan Albert
181ac27299
Note the ARA Veinticinco de Mayo in the changelog. 2023-10-07 15:52:15 +02:00
Nosajthedevil
313d8f5065
Add support for ARA Veinticinco de Mayo.
Includes an Argentina 1982 faction for testing purposes, although it's
sparse because of a lack of assets in DCS.

Note that the carrier is mispelled as the Vienticinco in the game.

Includes prerequisite pydcs update.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3123.

yaml to json
2023-10-07 15:52:14 +02:00