Migrates SC2 WoL world to the new mod with new items and locations. The new mod has a different architecture making it more future proof (with planned adding of other campaigns). Also gets rid of several old bugs
Adds new short game formats intended for sync games (Tiny Grid, Mini Gauntlet). The final mission isn't decided by campaign length anymore but it's configurable instead. Allow excluding missions for Vanilla Shuffled, corrected some documentation.
NOTE: This is a squashed commit with Salz' HotS excluded (not ready for the release and I plan multi-campaign instead)
---------
Co-authored-by: Matthew <matthew.marinets@gmail.com>
* SC2: Fixed nondeterminism resulting from early unit placement
* SC2: Renamed "world" arguments to "multiworld"
* SC2: Fixed All-In Ground including anti-air in defense score, fixed error in beats_protoss_deathball
* SC2: Fixed No Logic using logic on Beat events
* SC2: Fixed /unfinished command failing when All-In available
* Switched mission item group to a list comprehension to fix missile shuffle errors
* Logic for reducing mission and item counts
* SC2: Piercing the Shroud/Maw of the Void requirements now DRY
* SC2: Logic for All-In, may need further refinement
* SC2: Additional mission orders and starting locations
* SC2: New Mission Order options for shorter campaigns and smaller item pools
* Using location table for hardcoded starter unit
* SC2: Options to curate random item pool and control early unit placement
* SC2: Proper All-In logic
* SC2: Grid, Mini Grid and Blitz mission orders
* SC2: Required Tactics and Unit Upgrade options, better connected item handling
* SC2: Client compatibility with Grid settings
* SC2: Mission rando now uses world random
* SC2: Alternate final missions, new logic, fixes
* SC2: Handling alternate final missions, identifying final mission on client
* SC2: Minor changes to handle edge-case generation failures
* SC2: Removed invalid type hints for Python 3.8
* Revert "SC2: Removed invalid type hints for Python 3.8"
This reverts commit 7851b9f7a39396c8ee1d85d4e4e46e61e8dc80f6.
* SC2: Removed invalid type hints for Python 3.8
* SC2: Removed invalid type hints for Python 3.8
* SC2: Removed invalid type hints for Python 3.8
* SC2: Removed invalid type hints for Python 3.8
* SC2: Changed location loop to enumerate
* SC2: Passing category names through slot data
* SC2: Cleaned up unnecessary _create_items method
* SC2: Removed vestigial extra_locations field from MissionInfo
* SC2: Client backwards compatibility
* SC2: Fixed item generation issue where item is present in both locked and unlocked inventories
* SC2: Removed Missile Turret from defense rating on maps without air
* SC2: No logic locations point to same access rule
Co-authored-by: michaelasantiago <michael.alec.santiago@gmail.com>
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
People seem to be on the mission long enough to get attacked by Mutalisks, so Victory should require anti air.
Optional Objectives are doable quite comfortably before Mutalisks show up, allowing the anti-air to be on them for later in the mission.