From de1ec4a18ffde2f12b2e0b7a8fe991a1518b5c1a Mon Sep 17 00:00:00 2001 From: Daivuk Date: Tue, 25 Jul 2023 15:02:59 -0400 Subject: [PATCH] DOOM 1993: Include only regions/rules for selected episodes --- worlds/doom_1993/Options.py | 2 +- worlds/doom_1993/Regions.py | 111 +++++++++++++++++++++++++++++++++++ worlds/doom_1993/Rules.py | 24 ++++++-- worlds/doom_1993/__init__.py | 5 +- 4 files changed, 136 insertions(+), 6 deletions(-) diff --git a/worlds/doom_1993/Options.py b/worlds/doom_1993/Options.py index 550190e3..72bb7c3a 100644 --- a/worlds/doom_1993/Options.py +++ b/worlds/doom_1993/Options.py @@ -80,7 +80,7 @@ class Episode3(DefaultOnToggle): display_name = "Episode 3" -class Episode4(DefaultOnToggle): +class Episode4(Toggle): """Thy Flesh Consumed. If none of the episodes are chosen, Episode 1 will be chosen by default.""" display_name = "Episode 4" diff --git a/worlds/doom_1993/Regions.py b/worlds/doom_1993/Regions.py index 3f5123ec..cce777fe 100644 --- a/worlds/doom_1993/Regions.py +++ b/worlds/doom_1993/Regions.py @@ -6,6 +6,7 @@ from BaseClasses import TypedDict class RegionDict(TypedDict, total=False): name: str connects_to_hub: bool + episode: int connections: List[str] @@ -13,59 +14,72 @@ regions:List[RegionDict] = [ # Hangar (E1M1) {"name":"Hangar (E1M1) Main", "connects_to_hub":True, + "episode":1, "connections":[]}, # Nuclear Plant (E1M2) {"name":"Nuclear Plant (E1M2) Main", "connects_to_hub":True, + "episode":1, "connections":["Nuclear Plant (E1M2) Red"]}, {"name":"Nuclear Plant (E1M2) Red", "connects_to_hub":False, + "episode":1, "connections":["Nuclear Plant (E1M2) Main"]}, # Toxin Refinery (E1M3) {"name":"Toxin Refinery (E1M3) Main", "connects_to_hub":True, + "episode":1, "connections":["Toxin Refinery (E1M3) Blue"]}, {"name":"Toxin Refinery (E1M3) Blue", "connects_to_hub":False, + "episode":1, "connections":[ "Toxin Refinery (E1M3) Yellow", "Toxin Refinery (E1M3) Main"]}, {"name":"Toxin Refinery (E1M3) Yellow", "connects_to_hub":False, + "episode":1, "connections":["Toxin Refinery (E1M3) Blue"]}, # Command Control (E1M4) {"name":"Command Control (E1M4) Main", "connects_to_hub":True, + "episode":1, "connections":[ "Command Control (E1M4) Blue", "Command Control (E1M4) Yellow"]}, {"name":"Command Control (E1M4) Blue", "connects_to_hub":False, + "episode":1, "connections":["Command Control (E1M4) Main"]}, {"name":"Command Control (E1M4) Yellow", "connects_to_hub":False, + "episode":1, "connections":["Command Control (E1M4) Main"]}, # Phobos Lab (E1M5) {"name":"Phobos Lab (E1M5) Main", "connects_to_hub":True, + "episode":1, "connections":["Phobos Lab (E1M5) Yellow"]}, {"name":"Phobos Lab (E1M5) Yellow", "connects_to_hub":False, + "episode":1, "connections":[ "Phobos Lab (E1M5) Main", "Phobos Lab (E1M5) Blue", "Phobos Lab (E1M5) Green"]}, {"name":"Phobos Lab (E1M5) Blue", "connects_to_hub":False, + "episode":1, "connections":[ "Phobos Lab (E1M5) Green", "Phobos Lab (E1M5) Yellow"]}, {"name":"Phobos Lab (E1M5) Green", "connects_to_hub":False, + "episode":1, "connections":[ "Phobos Lab (E1M5) Main", "Phobos Lab (E1M5) Blue"]}, @@ -73,6 +87,7 @@ regions:List[RegionDict] = [ # Central Processing (E1M6) {"name":"Central Processing (E1M6) Main", "connects_to_hub":True, + "episode":1, "connections":[ "Central Processing (E1M6) Yellow", "Central Processing (E1M6) Red", @@ -80,140 +95,173 @@ regions:List[RegionDict] = [ "Central Processing (E1M6) Nukage"]}, {"name":"Central Processing (E1M6) Red", "connects_to_hub":False, + "episode":1, "connections":["Central Processing (E1M6) Main"]}, {"name":"Central Processing (E1M6) Blue", "connects_to_hub":False, + "episode":1, "connections":["Central Processing (E1M6) Main"]}, {"name":"Central Processing (E1M6) Yellow", "connects_to_hub":False, + "episode":1, "connections":["Central Processing (E1M6) Main"]}, {"name":"Central Processing (E1M6) Nukage", "connects_to_hub":False, + "episode":1, "connections":["Central Processing (E1M6) Yellow"]}, # Computer Station (E1M7) {"name":"Computer Station (E1M7) Main", "connects_to_hub":True, + "episode":1, "connections":[ "Computer Station (E1M7) Red", "Computer Station (E1M7) Yellow"]}, {"name":"Computer Station (E1M7) Blue", "connects_to_hub":False, + "episode":1, "connections":["Computer Station (E1M7) Yellow"]}, {"name":"Computer Station (E1M7) Red", "connects_to_hub":False, + "episode":1, "connections":["Computer Station (E1M7) Main"]}, {"name":"Computer Station (E1M7) Yellow", "connects_to_hub":False, + "episode":1, "connections":[ "Computer Station (E1M7) Blue", "Computer Station (E1M7) Courtyard", "Computer Station (E1M7) Main"]}, {"name":"Computer Station (E1M7) Courtyard", "connects_to_hub":False, + "episode":1, "connections":["Computer Station (E1M7) Yellow"]}, # Phobos Anomaly (E1M8) {"name":"Phobos Anomaly (E1M8) Main", "connects_to_hub":False, + "episode":1, "connections":[]}, {"name":"Phobos Anomaly (E1M8) Start", "connects_to_hub":True, + "episode":1, "connections":["Phobos Anomaly (E1M8) Main"]}, # Military Base (E1M9) {"name":"Military Base (E1M9) Main", "connects_to_hub":True, + "episode":1, "connections":[ "Military Base (E1M9) Blue", "Military Base (E1M9) Yellow", "Military Base (E1M9) Red"]}, {"name":"Military Base (E1M9) Blue", "connects_to_hub":False, + "episode":1, "connections":["Military Base (E1M9) Main"]}, {"name":"Military Base (E1M9) Red", "connects_to_hub":False, + "episode":1, "connections":["Military Base (E1M9) Main"]}, {"name":"Military Base (E1M9) Yellow", "connects_to_hub":False, + "episode":1, "connections":["Military Base (E1M9) Main"]}, # Deimos Anomaly (E2M1) {"name":"Deimos Anomaly (E2M1) Main", "connects_to_hub":True, + "episode":2, "connections":[ "Deimos Anomaly (E2M1) Red", "Deimos Anomaly (E2M1) Blue"]}, {"name":"Deimos Anomaly (E2M1) Blue", "connects_to_hub":False, + "episode":2, "connections":["Deimos Anomaly (E2M1) Main"]}, {"name":"Deimos Anomaly (E2M1) Red", "connects_to_hub":False, + "episode":2, "connections":["Deimos Anomaly (E2M1) Main"]}, # Containment Area (E2M2) {"name":"Containment Area (E2M2) Main", "connects_to_hub":True, + "episode":2, "connections":[ "Containment Area (E2M2) Yellow", "Containment Area (E2M2) Blue", "Containment Area (E2M2) Red"]}, {"name":"Containment Area (E2M2) Blue", "connects_to_hub":False, + "episode":2, "connections":["Containment Area (E2M2) Main"]}, {"name":"Containment Area (E2M2) Red", "connects_to_hub":False, + "episode":2, "connections":["Containment Area (E2M2) Main"]}, {"name":"Containment Area (E2M2) Yellow", "connects_to_hub":False, + "episode":2, "connections":["Containment Area (E2M2) Main"]}, # Refinery (E2M3) {"name":"Refinery (E2M3) Main", "connects_to_hub":True, + "episode":2, "connections":["Refinery (E2M3) Blue"]}, {"name":"Refinery (E2M3) Blue", "connects_to_hub":False, + "episode":2, "connections":["Refinery (E2M3) Main"]}, # Deimos Lab (E2M4) {"name":"Deimos Lab (E2M4) Main", "connects_to_hub":True, + "episode":2, "connections":["Deimos Lab (E2M4) Blue"]}, {"name":"Deimos Lab (E2M4) Blue", "connects_to_hub":False, + "episode":2, "connections":[ "Deimos Lab (E2M4) Main", "Deimos Lab (E2M4) Yellow"]}, {"name":"Deimos Lab (E2M4) Yellow", "connects_to_hub":False, + "episode":2, "connections":["Deimos Lab (E2M4) Blue"]}, # Command Center (E2M5) {"name":"Command Center (E2M5) Main", "connects_to_hub":True, + "episode":2, "connections":[]}, # Halls of the Damned (E2M6) {"name":"Halls of the Damned (E2M6) Main", "connects_to_hub":True, + "episode":2, "connections":[ "Halls of the Damned (E2M6) Blue Yellow Red", "Halls of the Damned (E2M6) Yellow", "Halls of the Damned (E2M6) One way Yellow"]}, {"name":"Halls of the Damned (E2M6) Yellow", "connects_to_hub":False, + "episode":2, "connections":["Halls of the Damned (E2M6) Main"]}, {"name":"Halls of the Damned (E2M6) Blue Yellow Red", "connects_to_hub":False, + "episode":2, "connections":["Halls of the Damned (E2M6) Main"]}, {"name":"Halls of the Damned (E2M6) One way Yellow", "connects_to_hub":False, + "episode":2, "connections":["Halls of the Damned (E2M6) Main"]}, # Spawning Vats (E2M7) {"name":"Spawning Vats (E2M7) Main", "connects_to_hub":True, + "episode":2, "connections":[ "Spawning Vats (E2M7) Blue", "Spawning Vats (E2M7) Entrance Secret", @@ -221,207 +269,256 @@ regions:List[RegionDict] = [ "Spawning Vats (E2M7) Yellow"]}, {"name":"Spawning Vats (E2M7) Blue", "connects_to_hub":False, + "episode":2, "connections":["Spawning Vats (E2M7) Main"]}, {"name":"Spawning Vats (E2M7) Yellow", "connects_to_hub":False, + "episode":2, "connections":["Spawning Vats (E2M7) Main"]}, {"name":"Spawning Vats (E2M7) Red", "connects_to_hub":False, + "episode":2, "connections":["Spawning Vats (E2M7) Main"]}, {"name":"Spawning Vats (E2M7) Entrance Secret", "connects_to_hub":False, + "episode":2, "connections":["Spawning Vats (E2M7) Main"]}, # Tower of Babel (E2M8) {"name":"Tower of Babel (E2M8) Main", "connects_to_hub":True, + "episode":2, "connections":[]}, # Fortress of Mystery (E2M9) {"name":"Fortress of Mystery (E2M9) Main", "connects_to_hub":True, + "episode":2, "connections":[ "Fortress of Mystery (E2M9) Blue", "Fortress of Mystery (E2M9) Red", "Fortress of Mystery (E2M9) Yellow"]}, {"name":"Fortress of Mystery (E2M9) Blue", "connects_to_hub":False, + "episode":2, "connections":["Fortress of Mystery (E2M9) Main"]}, {"name":"Fortress of Mystery (E2M9) Red", "connects_to_hub":False, + "episode":2, "connections":["Fortress of Mystery (E2M9) Main"]}, {"name":"Fortress of Mystery (E2M9) Yellow", "connects_to_hub":False, + "episode":2, "connections":["Fortress of Mystery (E2M9) Main"]}, # Hell Keep (E3M1) {"name":"Hell Keep (E3M1) Main", "connects_to_hub":True, + "episode":3, "connections":["Hell Keep (E3M1) Narrow"]}, {"name":"Hell Keep (E3M1) Narrow", "connects_to_hub":False, + "episode":3, "connections":["Hell Keep (E3M1) Main"]}, # Slough of Despair (E3M2) {"name":"Slough of Despair (E3M2) Main", "connects_to_hub":True, + "episode":3, "connections":["Slough of Despair (E3M2) Blue"]}, {"name":"Slough of Despair (E3M2) Blue", "connects_to_hub":False, + "episode":3, "connections":["Slough of Despair (E3M2) Main"]}, # Pandemonium (E3M3) {"name":"Pandemonium (E3M3) Main", "connects_to_hub":True, + "episode":3, "connections":["Pandemonium (E3M3) Blue"]}, {"name":"Pandemonium (E3M3) Blue", "connects_to_hub":False, + "episode":3, "connections":["Pandemonium (E3M3) Main"]}, # House of Pain (E3M4) {"name":"House of Pain (E3M4) Main", "connects_to_hub":True, + "episode":3, "connections":["House of Pain (E3M4) Blue"]}, {"name":"House of Pain (E3M4) Blue", "connects_to_hub":False, + "episode":3, "connections":[ "House of Pain (E3M4) Main", "House of Pain (E3M4) Yellow", "House of Pain (E3M4) Red"]}, {"name":"House of Pain (E3M4) Red", "connects_to_hub":False, + "episode":3, "connections":["House of Pain (E3M4) Blue"]}, {"name":"House of Pain (E3M4) Yellow", "connects_to_hub":False, + "episode":3, "connections":["House of Pain (E3M4) Blue"]}, # Unholy Cathedral (E3M5) {"name":"Unholy Cathedral (E3M5) Main", "connects_to_hub":True, + "episode":3, "connections":[ "Unholy Cathedral (E3M5) Yellow", "Unholy Cathedral (E3M5) Blue"]}, {"name":"Unholy Cathedral (E3M5) Blue", "connects_to_hub":False, + "episode":3, "connections":["Unholy Cathedral (E3M5) Main"]}, {"name":"Unholy Cathedral (E3M5) Yellow", "connects_to_hub":False, + "episode":3, "connections":["Unholy Cathedral (E3M5) Main"]}, # Mt. Erebus (E3M6) {"name":"Mt. Erebus (E3M6) Main", "connects_to_hub":True, + "episode":3, "connections":["Mt. Erebus (E3M6) Blue"]}, {"name":"Mt. Erebus (E3M6) Blue", "connects_to_hub":False, + "episode":3, "connections":["Mt. Erebus (E3M6) Main"]}, # Limbo (E3M7) {"name":"Limbo (E3M7) Main", "connects_to_hub":True, + "episode":3, "connections":[ "Limbo (E3M7) Red", "Limbo (E3M7) Blue"]}, {"name":"Limbo (E3M7) Blue", "connects_to_hub":False, + "episode":3, "connections":["Limbo (E3M7) Main"]}, {"name":"Limbo (E3M7) Red", "connects_to_hub":False, + "episode":3, "connections":[ "Limbo (E3M7) Main", "Limbo (E3M7) Yellow"]}, {"name":"Limbo (E3M7) Yellow", "connects_to_hub":False, + "episode":3, "connections":["Limbo (E3M7) Red"]}, # Dis (E3M8) {"name":"Dis (E3M8) Main", "connects_to_hub":True, + "episode":3, "connections":[]}, # Warrens (E3M9) {"name":"Warrens (E3M9) Main", "connects_to_hub":True, + "episode":3, "connections":[ "Warrens (E3M9) Red", "Warrens (E3M9) Blue", "Warrens (E3M9) Blue trigger"]}, {"name":"Warrens (E3M9) Red", "connects_to_hub":False, + "episode":3, "connections":["Warrens (E3M9) Main"]}, {"name":"Warrens (E3M9) Blue", "connects_to_hub":False, + "episode":3, "connections":["Warrens (E3M9) Main"]}, {"name":"Warrens (E3M9) Blue trigger", "connects_to_hub":False, + "episode":3, "connections":[]}, # Hell Beneath (E4M1) {"name":"Hell Beneath (E4M1) Main", "connects_to_hub":True, + "episode":4, "connections":[ "Hell Beneath (E4M1) Red", "Hell Beneath (E4M1) Blue"]}, {"name":"Hell Beneath (E4M1) Red", "connects_to_hub":False, + "episode":4, "connections":["Hell Beneath (E4M1) Main"]}, {"name":"Hell Beneath (E4M1) Blue", "connects_to_hub":False, + "episode":4, "connections":["Hell Beneath (E4M1) Main"]}, # Perfect Hatred (E4M2) {"name":"Perfect Hatred (E4M2) Main", "connects_to_hub":True, + "episode":4, "connections":[ "Perfect Hatred (E4M2) Blue", "Perfect Hatred (E4M2) Yellow"]}, {"name":"Perfect Hatred (E4M2) Blue", "connects_to_hub":False, + "episode":4, "connections":[ "Perfect Hatred (E4M2) Main", "Perfect Hatred (E4M2) Cave"]}, {"name":"Perfect Hatred (E4M2) Yellow", "connects_to_hub":False, + "episode":4, "connections":[ "Perfect Hatred (E4M2) Main", "Perfect Hatred (E4M2) Cave"]}, {"name":"Perfect Hatred (E4M2) Cave", "connects_to_hub":False, + "episode":4, "connections":[]}, # Sever the Wicked (E4M3) {"name":"Sever the Wicked (E4M3) Main", "connects_to_hub":True, + "episode":4, "connections":["Sever the Wicked (E4M3) Red"]}, {"name":"Sever the Wicked (E4M3) Red", "connects_to_hub":False, + "episode":4, "connections":[ "Sever the Wicked (E4M3) Blue", "Sever the Wicked (E4M3) Main"]}, {"name":"Sever the Wicked (E4M3) Blue", "connects_to_hub":False, + "episode":4, "connections":["Sever the Wicked (E4M3) Red"]}, # Unruly Evil (E4M4) {"name":"Unruly Evil (E4M4) Main", "connects_to_hub":True, + "episode":4, "connections":["Unruly Evil (E4M4) Red"]}, {"name":"Unruly Evil (E4M4) Red", "connects_to_hub":False, + "episode":4, "connections":["Unruly Evil (E4M4) Main"]}, # They Will Repent (E4M5) {"name":"They Will Repent (E4M5) Main", "connects_to_hub":True, + "episode":4, "connections":["They Will Repent (E4M5) Red"]}, {"name":"They Will Repent (E4M5) Yellow", "connects_to_hub":False, + "episode":4, "connections":["They Will Repent (E4M5) Red"]}, {"name":"They Will Repent (E4M5) Blue", "connects_to_hub":False, + "episode":4, "connections":["They Will Repent (E4M5) Red"]}, {"name":"They Will Repent (E4M5) Red", "connects_to_hub":False, + "episode":4, "connections":[ "They Will Repent (E4M5) Main", "They Will Repent (E4M5) Yellow", @@ -430,59 +527,73 @@ regions:List[RegionDict] = [ # Against Thee Wickedly (E4M6) {"name":"Against Thee Wickedly (E4M6) Main", "connects_to_hub":True, + "episode":4, "connections":[ "Against Thee Wickedly (E4M6) Blue", "Against Thee Wickedly (E4M6) Yellow", "Against Thee Wickedly (E4M6) Red"]}, {"name":"Against Thee Wickedly (E4M6) Red", "connects_to_hub":False, + "episode":4, "connections":["Against Thee Wickedly (E4M6) Main"]}, {"name":"Against Thee Wickedly (E4M6) Blue", "connects_to_hub":False, + "episode":4, "connections":["Against Thee Wickedly (E4M6) Main"]}, {"name":"Against Thee Wickedly (E4M6) Yellow", "connects_to_hub":False, + "episode":4, "connections":["Against Thee Wickedly (E4M6) Main"]}, # And Hell Followed (E4M7) {"name":"And Hell Followed (E4M7) Main", "connects_to_hub":True, + "episode":4, "connections":[ "And Hell Followed (E4M7) Blue", "And Hell Followed (E4M7) Red", "And Hell Followed (E4M7) Yellow"]}, {"name":"And Hell Followed (E4M7) Red", "connects_to_hub":False, + "episode":4, "connections":["And Hell Followed (E4M7) Main"]}, {"name":"And Hell Followed (E4M7) Blue", "connects_to_hub":False, + "episode":4, "connections":["And Hell Followed (E4M7) Main"]}, {"name":"And Hell Followed (E4M7) Yellow", "connects_to_hub":False, + "episode":4, "connections":["And Hell Followed (E4M7) Main"]}, # Unto the Cruel (E4M8) {"name":"Unto the Cruel (E4M8) Main", "connects_to_hub":True, + "episode":4, "connections":[ "Unto the Cruel (E4M8) Red", "Unto the Cruel (E4M8) Yellow", "Unto the Cruel (E4M8) Orange"]}, {"name":"Unto the Cruel (E4M8) Yellow", "connects_to_hub":False, + "episode":4, "connections":["Unto the Cruel (E4M8) Main"]}, {"name":"Unto the Cruel (E4M8) Red", "connects_to_hub":False, + "episode":4, "connections":["Unto the Cruel (E4M8) Main"]}, {"name":"Unto the Cruel (E4M8) Orange", "connects_to_hub":False, + "episode":4, "connections":["Unto the Cruel (E4M8) Main"]}, # Fear (E4M9) {"name":"Fear (E4M9) Main", "connects_to_hub":True, + "episode":4, "connections":["Fear (E4M9) Yellow"]}, {"name":"Fear (E4M9) Yellow", "connects_to_hub":False, + "episode":4, "connections":["Fear (E4M9) Main"]}, ] diff --git a/worlds/doom_1993/Rules.py b/worlds/doom_1993/Rules.py index 75505ebe..57a26682 100644 --- a/worlds/doom_1993/Rules.py +++ b/worlds/doom_1993/Rules.py @@ -7,10 +7,7 @@ if TYPE_CHECKING: from . import DOOM1993World -def set_rules(doom_1993_world: "DOOM1993World"): - player = doom_1993_world.player - world = doom_1993_world.multiworld - +def set_episode1_rules(player, world): # Hangar (E1M1) set_rule(world.get_entrance("Hub -> Hangar (E1M1) Main", player), lambda state: state.has("Hangar (E1M1)", player, 1)) @@ -135,6 +132,8 @@ def set_rules(doom_1993_world: "DOOM1993World"): set_rule(world.get_entrance("Military Base (E1M9) Yellow -> Military Base (E1M9) Main", player), lambda state: state.has("Military Base (E1M9) - Yellow keycard", player, 1)) + +def set_episode2_rules(player, world): # Deimos Anomaly (E2M1) set_rule(world.get_entrance("Hub -> Deimos Anomaly (E2M1) Main", player), lambda state: state.has("Deimos Anomaly (E2M1)", player, 1)) @@ -263,6 +262,8 @@ def set_rules(doom_1993_world: "DOOM1993World"): set_rule(world.get_entrance("Fortress of Mystery (E2M9) Yellow -> Fortress of Mystery (E2M9) Main", player), lambda state: state.has("Fortress of Mystery (E2M9) - Yellow skull key", player, 1)) + +def set_episode3_rules(player, world): # Hell Keep (E3M1) set_rule(world.get_entrance("Hub -> Hell Keep (E3M1) Main", player), lambda state: state.has("Hell Keep (E3M1)", player, 1)) @@ -384,6 +385,8 @@ def set_rules(doom_1993_world: "DOOM1993World"): set_rule(world.get_entrance("Warrens (E3M9) Blue -> Warrens (E3M9) Main", player), lambda state: state.has("Warrens (E3M9) - Blue skull key", player, 1)) + +def set_episode4_rules(player, world): # Hell Beneath (E4M1) set_rule(world.get_entrance("Hub -> Hell Beneath (E4M1) Main", player), lambda state: state.has("Hell Beneath (E4M1)", player, 1)) @@ -519,3 +522,16 @@ def set_rules(doom_1993_world: "DOOM1993World"): set_rule(world.get_entrance("Fear (E4M9) Yellow -> Fear (E4M9) Main", player), lambda state: state.has("Fear (E4M9) - Yellow skull key", player, 1)) + +def set_rules(doom_1993_world: "DOOM1993World", included_episodes): + player = doom_1993_world.player + world = doom_1993_world.multiworld + + if included_episodes[0]: + set_episode1_rules(player, world) + if included_episodes[1]: + set_episode2_rules(player, world) + if included_episodes[2]: + set_episode3_rules(player, world) + if included_episodes[3]: + set_episode4_rules(player, world) diff --git a/worlds/doom_1993/__init__.py b/worlds/doom_1993/__init__.py index 43bac85b..83a8652a 100644 --- a/worlds/doom_1993/__init__.py +++ b/worlds/doom_1993/__init__.py @@ -100,6 +100,9 @@ class DOOM1993World(World): main_regions = [] connections = [] for region_dict in Regions.regions: + if not self.included_episodes[region_dict["episode"] - 1]: + continue + region_name = region_dict["name"] if region_dict["connects_to_hub"]: main_regions.append(region_name) @@ -148,7 +151,7 @@ class DOOM1993World(World): return True def set_rules(self): - Rules.set_rules(self) + Rules.set_rules(self, self.included_episodes) self.multiworld.completion_condition[self.player] = lambda state: self.completion_rule(state) # Forbid progression items to locations that can be missed and can't be picked up. (e.g. One-time timed