https://github.com/pydcs/dcs/issues/175 causes setting the AI comm
frequency to raise an exception for aircraft without preset channel
support.
(cherry picked from commit 5d8f6552439100d99b340a91de43f4e053d8c0f9)
* Fixes ruler module integrity issues by bringing module into source
* Changing ruler stylesheet to vaguely match DCS theme in Liberation
* Changelog
(cherry picked from commit 119d4b9514fdd395adf2dc19b5919930a59b56ac)
* adds more detailed logging for frontline movement
* Fixing attribute name
* Fixing if, adding else
(cherry picked from commit 58c96e132934fcd1f742c1819f450e7605e6d098)
when a cp capture happens and the next cp has pending unit deliveries then they will be redeployed to the newly captured cp. The redeploy was drecreasing the num of pending unit deliveries for the old cp but was not removing them completly from the dict when all were removed
(cherry picked from commit 67fa4a891077af74bc9fe99d27c662c0c32da83a)
They didn't get this until a few years later. This was a stand-in for
the SA-5 that DCS doesn't have, but the SA-10 is so much more capable
that it's not a good replacement.
(cherry picked from commit 80bf3c97b22e4912943b0d28083a30427f43264d)
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)
The loadout case actually could (and previously did) hide bugs from the
type checker, since mypy was smart enough to see that we were removing
None from the input it assumed that the member was non-optional, but
later modifications could cause null values, and since those came from
the UI mypy couldn't reason about this. This meant that mypy assumed the
type could not be optional and wouldn't check that case.
(cherry picked from commit 299ed88f09d506df1a10e5454b237263e5cbeeab)
We're missing a lot of checking right now. Most of it requires
additional cleanup. For now I've enabled what I could and will follow up
to clean up and enable more checking.
(cherry picked from commit 29753a6aa9e38a2a2a9a0741ff9bda31b33498c2)
* 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)
Aircraft that have no loadouts at all (such as the IL-78M) will have no
loadouts and thus no values in the dropdown menu. If the player toggles
the custom layout box we reset the flight's loadout to the selected
loadout, and with no loadouts in the combo box that is None, and
`Flight.loadout` isn't supposed to be optional.
Check for that case in the loadout selector and replace with an empty
loadout if that happens.
Fixes https://github.com/dcs-liberation/dcs_liberation/issues/1402
(cherry picked from commit 727facfb90dac06c3eb74b90e0296a097fae79a3)
The prices are only estimations due to randomization. the real price will be only known when the generator was used and the final units are known
(cherry picked from commit b2db27f9aa06ddbeb6c9e87686abb04cd2f2bb16)
prices will now be calculated for the whole group by the generator by
looking up the price using the GroundUnitType wrapper
fixes#1163
(cherry picked from commit 96be6c0efe4b6b0f3af38bf5c43a9818e1eed4e6)