Files
Grinch-AP/worlds/sc2/test/test_regions.py
Ziktofel 5f1835c546 SC2: Content update (#5312)
Feature highlights:
- Adds many content to the SC2 game
- Allows custom mission order
- Adds race-swapped missions for build missions (except Epilogue and NCO)
- Allows War Council Nerfs (Protoss units can get pre - War Council State, alternative units get another custom nerf to match the power level of base units)
- Revamps Predator's upgrade tree (never was considered strategically important)
- Adds some units and upgrades
- Locked and excluded items can specify quantity
- Key mode (if opt-in, missions require keys to be unlocked on top of their regular regular requirements
- Victory caches - Victory locations can grant multiple items to the multiworld instead of one 
- The generator is more resilient for generator failures as it validates logic for item excludes
- Fixes the following issues:
  - https://github.com/ArchipelagoMW/Archipelago/issues/3531 
  - https://github.com/ArchipelagoMW/Archipelago/issues/3548
2025-09-02 17:40:58 +02:00

41 lines
2.0 KiB
Python

import unittest
from .test_base import Sc2TestBase
from .. import mission_tables, SC2Campaign
from .. import options
from ..mission_order.layout_types import Grid
class TestGridsizes(unittest.TestCase):
def test_grid_sizes_meet_specs(self):
self.assertTupleEqual((1, 2, 0), Grid.get_grid_dimensions(2))
self.assertTupleEqual((1, 3, 0), Grid.get_grid_dimensions(3))
self.assertTupleEqual((2, 2, 0), Grid.get_grid_dimensions(4))
self.assertTupleEqual((2, 3, 1), Grid.get_grid_dimensions(5))
self.assertTupleEqual((2, 4, 1), Grid.get_grid_dimensions(7))
self.assertTupleEqual((2, 4, 0), Grid.get_grid_dimensions(8))
self.assertTupleEqual((3, 3, 0), Grid.get_grid_dimensions(9))
self.assertTupleEqual((2, 5, 0), Grid.get_grid_dimensions(10))
self.assertTupleEqual((3, 4, 1), Grid.get_grid_dimensions(11))
self.assertTupleEqual((3, 4, 0), Grid.get_grid_dimensions(12))
self.assertTupleEqual((3, 5, 0), Grid.get_grid_dimensions(15))
self.assertTupleEqual((4, 4, 0), Grid.get_grid_dimensions(16))
self.assertTupleEqual((4, 6, 0), Grid.get_grid_dimensions(24))
self.assertTupleEqual((5, 5, 0), Grid.get_grid_dimensions(25))
self.assertTupleEqual((5, 6, 1), Grid.get_grid_dimensions(29))
self.assertTupleEqual((5, 7, 2), Grid.get_grid_dimensions(33))
class TestGridGeneration(Sc2TestBase):
options = {
"mission_order": options.MissionOrder.option_grid,
"excluded_missions": [mission_tables.SC2Mission.ZERO_HOUR.mission_name,],
"enabled_campaigns": {
SC2Campaign.WOL.campaign_name,
SC2Campaign.PROPHECY.campaign_name,
}
}
def test_size_matches_exclusions(self):
self.assertNotIn(mission_tables.SC2Mission.ZERO_HOUR.mission_name, self.multiworld.regions)
# WoL has 29 missions. -1 for Zero Hour being excluded, +1 for the automatically-added menu location
self.assertEqual(len(self.multiworld.regions), 29)