* Initial support of Germany Cold War terrain
* Updated with latest beacon import
* Updated changelog and ran black
* Fixed the GermanyCW landmap and naming scheme
* Temporarily changed the requirements for pydcs to my branch (will switch back when merged)
* Updated landmap for germanycw with even fewer exclusions
* Removed unnecessary changes
* Updated requirements to lastest pydcs
* Fixed naming issues for Germany
* Update pydcs to latest commit for GCW support
* Add landmap to game.theater.__init__
* Update requirements.txt
* Resolve PyCharm type-waring
* Updated pydcs and exclusion of germany
* Updated land and sea shapefiles for Germany Cold War with new map limits
---------
Co-authored-by: Raffson <Raffson@users.noreply.github.com>
This PR adds utility functions that import/export landmap files to .miz
polygons. In addition to the unit test, this PR has been tested by
writing the Caucuses & Syria landmaps to a .miz file, loading the
generated .miz file back in and checking that the loaded landmap object
is identical to the original files.
Holes in the inclusion zone are defined by exclusion zones, not by holes
in the inclusion zone. Add a cached property for the inclusion zone that
is not also sea or exclusion zone and use that boundary instead.
Converts the landmap to use MultiPolygon instead of a collection of
polygons, since Shapely has explicit support for this.
Because we've done that, we can use a single projection from a line
instead of brute forcing the extent of the front line.
This makes turn processing ~66% faster (3 seconds to 1.8).
There are probably other places this should be used.