This exports all the old AIRFIELD_DATA to yaml files. It's easier for
users to send fixes if it's defined this way, and they can also fix it
in their install without having to wait for a new release.
This also switches the indexes from the unstable DCS airfield names to
airfield IDs, so this fixes another case of DCS updates occasionally
breaking Liberation.
I also ended up finding quite a few typos in airfield names, and
incorrect theater names in the process. Those have been fixed.
* Use TACAN channels more selectively
* Increase tacan range to 126
* Use pytest and add workflow
* Skip faction tests due to outdated test data
* Run mypy on tests directory also
* Use iterators for bands AND usages, add tests
Fixes https://github.com/Khopa/dcs_liberation/issues/473. Air defenses
for bases, strike locations, and fixed IADS will now all downgrade to
lower tier systems as needed. Strike locations will still be spawned as
an equally weighted random generator from either the medium or long
range groups, but will use a short range system if none are available to
the faction.
I've made the change in a way that leaves factions compatible, but will
follow up to clean up our built-in factions.
`pytest tests` works now. I can't explain why `pytest` alone does not,
but it could have something to do with us not being a real Python
package.
With just `pytest` I get:
E ModuleNotFoundError: No module named 'tests.test_factions'
But `python -c "import tests.test_factions"` works fine.