Building IDs changed again. Ack the change in my two campaigns which
don't use these target types.
(cherry picked from commit edbd3de4a4f8d62adeb98880f97e012d2bab75a8)
Used to decorate functions or methods that have save compat code for a
given major version.
```
@has_save_compat_for(5)
def foo() -> None:
...
```
This function will raise an error at startup if it is decorated as
having save compat for a version other than the current major version of
the game. A new major version is the definition of a save compat break,
so keeping around the old compat code serves no purpose other than
hiding initialization bugs. The compat code and the decorator should be
removed in the branch raising the error.
(cherry picked from commit cd558daf5a601f64e98ad4ae2e7f6351be702632)
This includes the basics that we need to get type checking for pydcs
calls.
Type checking has been disabled in a few monkey-patching cases. Patches
ought to be sent upstream (or in the case of dead unit tracking,
replaced with a better model).
(cherry picked from commit 9de08dc83ff1ed30b15f5c7acc21da316fce9b6b)
This is as much as we can do until pydcs actually adds the py.typed
file. Once that's added there are a few ugly monkey patching corners
that will just need `# type: ignore` for now, but we can't pre-add those
since we have mypy warning us about superfluous ignore comments.
(cherry picked from commit 96c7b87ac7ef9382ffad9c3b5846fd8c0df8b0a2)
By default mypy doesn't type check the code within an untyped function.
This enables that and fixes typing errors to accomodate it.
This did uncover a very old bug:
https://github.com/dcs-liberation/dcs_liberation/issues/1417
(cherry picked from commit fc32b983413dd741a23d33db6da89ddcba7bed64)
* Implements #1399
* Reverting accidental change in generate_landmap.py
* Changelog update
* Import beacon data for Marianas.
Co-authored-by: Dan Albert <dan@gingerhq.net>
(cherry picked from commit aa328d3ef715bd86180b29d8784ae9040d51aec6)
- added information about the role of the aa site
- moved handling of ground name from tgo to the sam generator to make the tgo cleaner
- adjusted the skynet-config lua to the changes
(cherry picked from commit de443fa3f0ac7ab2d450ec097cf7ac94f17f3506)
This doesn't currently interact very well with the auto purchase since
the procurer might by aircraft that don't have pilots available. That
should be fixed, but for the short term we should just default to not
enabling this new feature.
(cherry picked from commit 3ddfc47d3a0cbf9688c0fecbdbdf70bab6adeb9e)
* Hopefully getting rid of empty convoys for good
* changing Dict to dict for type checks
(cherry picked from commit 3274f3ec35263f461238dc53cc60e4b54aae682a)
* Fixes#1310 by only refunding GUs if no faction CP has an attached factory. Previously it would refund all units at the CP, including aircraft.
Also changes the CP CAPTURE cheat to work at any CP regardless of adjacency to frontline or BLUEFOR/OPFOR state.
* Fixing typing issues, changint all Dict[] types to dict[]
* Updating changelog
(cherry picked from commit c3b8c48ca25df1cd5f77a353775410450952e2a6)
We'd only load unit data if a name lookup was done and missed it on a
type lookup. Ideally we wouldn't need to do a type lookup here until the
ground unit templates are reworked we still do.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1299
(cherry picked from commit d3d655da0716f37dcfd8bbcc9f901417dcb540e6)
If these orders can't be fulfilled for the faction it will prevent the
faction from ordering any non-reserve aircraft since transports are
given priority after reserve missions, and they'll never be fulfillable.
As such, no non-reserve aircraft will ever be purchased for factions
without transport aircraft.
Factions without transport aircraft are screwed in other ways, but this
will fix their air planning for campaigns that aren't dependent on
airlift.
(cherry picked from commit e96210f48cd88fcdd9e33e077430653b56fd0941)
Mod selection is now done via checkbox in the new game wizard.
The MB-339 is being turned into a paid module, and the free mod no longer works, so it's been removed.
Squadron.aircraft is of type AircraftType, while TRANSPORT_CAPABLE is
a list of pydcs DcsUnitTypes. As a result, the intersection was always
empty causing the function to always return 0.
This also adds max group sizes for aircraft that need it but don't
according to DCS. Only the first tanker or AEW&C unit in a group can be
contacted by radio.