1549 Commits

Author SHA1 Message Date
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
Dan Albert
06652cd063
Migrate Syria to yaml. 2022-09-17 14:35:02 +02:00
Dan Albert
f3f067830f
Port Persian Gulf to yaml. 2022-09-17 14:35:02 +02:00
Dan Albert
401a0ae557
Make theater properties moddable.
Only the Caucasus has been migrated so far. Will follow up with the
others, and also will be adding beacon/airport data to this.
2022-09-17 14:35:01 +02:00
Dan Albert
c4fe3a31a7
Add a Falklands theater.
Not at all done yet, but loads.

https://github.com/dcs-liberation/dcs_liberation/issues/2242
2022-09-17 14:35:01 +02:00
Dan Albert
2dba0f07ad
Support polygons with holes in the API.
We don't have any of these yet because our landmaps suck, but we'll need
holes in the sea zones to mask islands correctly.
2022-09-17 14:35:00 +02:00
Raffson
15ed0e733a
Don't generate CP triggers for carriers 2022-09-17 14:33:02 +02:00
MetalStormGhost
da04abf53a
Fix zombie carrier
Fixed (zombie) carrier killed in state.json but always respawning in-game, issue #2405. GenericCarrierGenerator.generate() will now generate the ship group with an array that only contains alive ship units, just like GroundObjectGenerator.generate() has previously done.

Carrier groups will now also show up as destroyed/damaged on the map when the carrier is sunk.
2022-09-17 14:33:01 +02:00
MetalStormGhost
d08adc2842
Add new performance option: Maximum frontline unit supply per CP 2022-09-04 14:06:07 +02:00