diff --git a/worlds/lingo/__init__.py b/worlds/lingo/__init__.py index da8a246e..a8dac862 100644 --- a/worlds/lingo/__init__.py +++ b/worlds/lingo/__init__.py @@ -1,6 +1,8 @@ """ Archipelago init file for Lingo """ +from logging import warning + from BaseClasses import Item, ItemClassification, Tutorial from worlds.AutoWorld import WebWorld, World from .items import ALL_ITEM_TABLE, LingoItem @@ -49,6 +51,14 @@ class LingoWorld(World): player_logic: LingoPlayerLogic def generate_early(self): + if not (self.options.shuffle_doors or self.options.shuffle_colors): + if self.multiworld.players == 1: + warning(f"{self.multiworld.get_player_name(self.player)}'s Lingo world doesn't have any progression" + f" items. Please turn on Door Shuffle or Color Shuffle if that doesn't seem right.") + else: + raise Exception(f"{self.multiworld.get_player_name(self.player)}'s Lingo world doesn't have any" + f" progression items. Please turn on Door Shuffle or Color Shuffle.") + self.player_logic = LingoPlayerLogic(self) def create_regions(self): diff --git a/worlds/lingo/options.py b/worlds/lingo/options.py index fc9ddee0..c0020862 100644 --- a/worlds/lingo/options.py +++ b/worlds/lingo/options.py @@ -32,7 +32,7 @@ class LocationChecks(Choice): option_insanity = 2 -class ShuffleColors(Toggle): +class ShuffleColors(DefaultOnToggle): """If on, an item is added to the pool for every puzzle color (besides White). You will need to unlock the requisite colors in order to be able to solve puzzles of that color.""" display_name = "Shuffle Colors" diff --git a/worlds/lingo/test/TestDoors.py b/worlds/lingo/test/TestDoors.py index 5dc989af..f496c5f5 100644 --- a/worlds/lingo/test/TestDoors.py +++ b/worlds/lingo/test/TestDoors.py @@ -3,7 +3,8 @@ from . import LingoTestBase class TestRequiredRoomLogic(LingoTestBase): options = { - "shuffle_doors": "complex" + "shuffle_doors": "complex", + "shuffle_colors": "false", } def test_pilgrim_first(self) -> None: @@ -49,7 +50,8 @@ class TestRequiredRoomLogic(LingoTestBase): class TestRequiredDoorLogic(LingoTestBase): options = { - "shuffle_doors": "complex" + "shuffle_doors": "complex", + "shuffle_colors": "false", } def test_through_rhyme(self) -> None: @@ -76,7 +78,8 @@ class TestRequiredDoorLogic(LingoTestBase): class TestSimpleDoors(LingoTestBase): options = { - "shuffle_doors": "simple" + "shuffle_doors": "simple", + "shuffle_colors": "false", } def test_requirement(self): diff --git a/worlds/lingo/test/TestProgressive.py b/worlds/lingo/test/TestProgressive.py index 026971c4..917c6e7e 100644 --- a/worlds/lingo/test/TestProgressive.py +++ b/worlds/lingo/test/TestProgressive.py @@ -81,7 +81,8 @@ class TestSimpleHallwayRoom(LingoTestBase): class TestProgressiveArtGallery(LingoTestBase): options = { - "shuffle_doors": "complex" + "shuffle_doors": "complex", + "shuffle_colors": "false", } def test_item(self):