Commit Graph

1407 Commits

Author SHA1 Message Date
MetalStormGhost
04a5497f3b F-4B Phantom II mod support (#4) 2022-10-15 23:07:06 +02:00
MetalStormGhost
139e42dbed Support for the F-105 Thunderchief mod
v2.7.12.23x
2022-10-15 12:57:43 +02:00
MetalStormGhost
8c905f95e3 Implemented support for the F-100 Super Sabre mod versions v2.7.18.01 & 2.7.18.30765 and patches 30.09.22 & 09.10.22. 2022-10-15 10:55:26 +02:00
Raffson
c4f20b67fe Support for C-47 2022-10-09 22:17:46 +02:00
Raffson
bcac6c4287 Skip & Log properties with 'None' as default value 2022-10-09 15:28:36 +02:00
Raffson
2be3257e3c Fix mypy error after update 2022-10-09 15:22:03 +02:00
Dan Albert
1606534862 Fix errors in log with 204 response endpoints.
FastAPI uses JsonResponse by default, which will convert the empty
response None to null. We need to forcibly use Response instead to
prevent that for No Content responses.

This didn't cause any observable issues but was polluting the log.
2022-10-09 12:46:06 +02:00
Dan Albert
920c9b15ff Revert "Add support for the AI-only F-14A."
AI behavior with the Heatblur F-14 has been fixed, so not needed any
more.

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

This reverts commit 7387c2ed8f.
2022-10-02 19:56:49 +02:00
Dan Albert
7e8f734309 Load map icons directly from DCS.
If the user's DCS directory is not configured correctly this will
degrade by not showing an icon. Otherwise (and typically) we get nicer
looking icons for each theater, and we don't have to make these for each
new map.
2022-10-02 19:56:49 +02:00
Dan Albert
868c38b782 Remove unused data.
We get TACAN, ILS, and ATC data from pydcs now. The rest of this
manually curated data is unused.
2022-10-02 19:56:48 +02:00
Dan Albert
7c7d9f7066 Get TACAN and ILS data from pydcs. 2022-10-02 19:56:48 +02:00
Dan Albert
e5074b57b8 Fix TACAN beacon type import.
The dataclass contructor will not automatically convert the int in the
JSON file to the enum type, so our enum equivalence check was not
actually working, and could result in us re-allocating a TACAN channel
that was used by the map.

Fixing this problem surfaces a latent bug, where we can't actually treat
duplicate map TACAN channels as a bug because some channels are used by
multiple airports in PG.
2022-10-02 19:56:48 +02:00
Dan Albert
ed855d26a7 Number beacon types explicitly.
auto() starts at 1 for IntEnum, so this has always been wrong.
2022-10-02 19:56:47 +02:00
Dan Albert
631ee96bbe Move beacons module.
This isn't related to the missiongenerator, and importing this file from
some places (such as runway data) will cause a circular reference when
importing the rest of the missiongenerator package.
2022-10-02 19:56:47 +02:00
Dan Albert
2c53f7952f Alter the beacon format to be keyed by ID.
ID based lookup will be used for finding ILS and TACAN beacons from the
pydcs data.
2022-10-02 19:56:47 +02:00
Dan Albert
c7705fd545 Update pydcs.
This update includes expanded runway data that lets us clean up some
code. It also include beacon IDs for runways and airfields that will let
us get ILS and TACAN info from pydcs, but that's a bigger change that
I'll land separately.
2022-10-02 19:56:46 +02:00
Raffson
d8509ef736 New performance option: front-line troops prefer roads
Co-Authored-By: MetalStormGhost <89945461+MetalStormGhost@users.noreply.github.com>
2022-10-02 19:56:45 +02:00
Raffson
a81b4ffd05 New performance option: disable convoys
Co-Authored-By: MetalStormGhost <89945461+MetalStormGhost@users.noreply.github.com>
2022-10-02 19:56:45 +02:00
Raffson
04bce081e9 Saved games folder for Retribution 2022-10-02 19:56:43 +02:00
Raffson
ee9cdd647a Improve check for 'valid white zones'
Instead of comparing to some deduced radius in case of a quad-point trigger,
use pydcs' Polygon.point_in_poly to determine if a position is located inside the zone.
2022-10-02 19:56:42 +02:00
MetalStormGhost
d14b964f1d Add fidelity for SIDC status of TGOs.
The new behavior is as follows for SAMs:

No damaged units: fully capable (green)
Damaged but still operational: present (no bar)
Not fully destroyed but inoperable: damaged (yellow)
Fully destroyed: destroyed (red)

And for all other TGOs:

Fully destroyed: destroyed (red)
Any missing units: damaged (yellow)
No missing units: present (no bar)

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/2438.
2022-09-25 14:53:42 +02:00
Dan Albert
d6bd5184b6 Speed up computation of front line positions.
Needs to be properly measured, but this has made a multi-second speedup
in turn times.
2022-09-25 14:53:41 +02:00
Dan Albert
ac49772584 Remove error handling for impossible case. 2022-09-25 14:53:41 +02:00
Dan Albert
459c8d02f9 Remove unused behavior from frontline positioning. 2022-09-25 14:53:41 +02:00
Dan Albert
197b9795f8 Make FrontLineBounds actually a bounds container. 2022-09-25 14:53:41 +02:00
Dan Albert
aeed7fd42a Clean up one frontline bounds user. 2022-09-25 14:53:29 +02:00
Raffson
9703e2452d Set version to 1.0.0 2022-09-18 15:52:42 +02:00
Dan Albert
9eb2b6e006 Remove junk from FrontLineConflictDescription. 2022-09-17 14:47:15 +02:00
Dan Albert
16fdb889a7 Split air and ground conflict descriptions. 2022-09-17 14:42:19 +02:00
Dan Albert
480dccb817 Re-disable sending landmap data for Falklands.
Still too slow.
2022-09-17 14:42:19 +02:00
Dan Albert
a9f6e3a0c3 Rename frontline vector to bounds, add a class.
This isn't actually the data that callers usually want. Most of the
callers just want the bounds. The heading and length are trivially
computed from that. Add a class to contain the result so it's easier to
refactor.
2022-09-17 14:42:19 +02:00
Dan Albert
46ddd884a2 Rename confusing front line methods/members. 2022-09-17 14:35:14 +02:00
Dan Albert
900948f7c2 Use simplified Falklands exclusion zones.
This is significantly faster on my machine. Checking it in (and
re-enabling the UI layer) to see how it affects slower machines.
2022-09-17 14:35:13 +02:00
Dan Albert
e4d780cb61 Avoid sending landmap data for Falklands.
This is too damn slow. A possible solution is explained in the comment,
but we shouldn't tackle that until we're sure the rest of the game runs
okay.
2022-09-17 14:35:13 +02:00
Dan Albert
0cb61ea778 Log planning times per-task. 2022-09-17 14:35:13 +02:00
Dan Albert
daf565f11c Add additional information to multi-event tracing.
Show the number of times the event was logged as well as an average run-
time.
2022-09-17 14:35:12 +02:00
Dan Albert
e503a8034c Bump the campaign version for the Falklands.
Support isn't done yet, but the things that would affect campaign design
are done.

https://github.com/dcs-liberation/dcs_liberation/issues/2242
2022-09-17 14:35:12 +02:00
Dan Albert
5de94843ea Fix mistake in join point placement.
This looks like it was just a typo. We want to join as late as possible
to allow flights coming from other airfields to take the best route to
the target that is safe, rather than joining as early as possible, which
isn't useful since pre-join and post-split are supposed to be safe areas
anyway.
2022-09-17 14:35:11 +02:00
Dan Albert
4d9179d378 Add a GIS shapefile to landmap importer. 2022-09-17 14:35:08 +02:00
Dan Albert
38e2bf187f Fix DaytimeMap error with disabled night missions.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/2429
2022-09-17 14:35:08 +02:00
Dan Albert
b01895e2dd Use ATC radio info from pydcs. 2022-09-17 14:35:07 +02:00
Dan Albert
cc9174cba4 Add a data linter with Markdown output.
Wildly incomplete, but it's a start.
2022-09-17 14:35:06 +02:00
Dan Albert
46a3aa9540 Load airfield data when called for airport.
The for_theater method is always called before for_airport is during
normal gameplay, but I'm writing a linter to show missing airfield data
that calls for_airport first.
2022-09-17 14:35:06 +02:00
Dan Albert
a3d58daa3c Be tolerant of theaters with no airfield data.
This shouldn't be the case for anything shipped, but is typical when new
theaters are still being developed.

We could potentially add an `in_progress` flag to the theater definition
to make this only optionally tolerant, but since that code path would
rarely be exercised it's just likely to bitrot. This data isn't critical
to mission generation anyway, so this is fine. What we should do is add
some linters that document all the data that is missing though (and
ideally publish that to our docs).
2022-09-17 14:35:05 +02:00
Dan Albert
87375eb4b1 Clean up ConflictTheater constructor.
Now that all theaters are defined in YAML, we can lose some of the mess
in this class.
2022-09-17 14:35:05 +02:00
Dan Albert
c43d84bdae Migrate Falklands to YAML.
All theaters are now moddable.
2022-09-17 14:35:04 +02:00
Dan Albert
ac0f24f94f Migrate The Channel to YAML. 2022-09-17 14:35:04 +02:00
Dan Albert
1c66f18e3f Migrate Normandy to YAML. 2022-09-17 14:35:03 +02:00
Dan Albert
ede1a8c567 Migrate Nevada to YAML. 2022-09-17 14:35:03 +02:00
Dan Albert
f08955ae53 Migrate Marianas to YAML. 2022-09-17 14:35:03 +02:00