DOOM 1993: Update to use new Options + logic fixes + Doc fix (#3138)
This commit is contained in:
parent
2704015eef
commit
ffff63e6f3
|
@ -1,6 +1,5 @@
|
|||
import typing
|
||||
|
||||
from Options import AssembleOptions, Choice, Toggle, DeathLink, DefaultOnToggle, StartInventoryPool
|
||||
from Options import PerGameCommonOptions, Choice, Toggle, DeathLink, DefaultOnToggle, StartInventoryPool
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
class Goal(Choice):
|
||||
|
@ -140,21 +139,22 @@ class Episode4(Toggle):
|
|||
display_name = "Episode 4"
|
||||
|
||||
|
||||
options: typing.Dict[str, AssembleOptions] = {
|
||||
"start_inventory_from_pool": StartInventoryPool,
|
||||
"goal": Goal,
|
||||
"difficulty": Difficulty,
|
||||
"random_monsters": RandomMonsters,
|
||||
"random_pickups": RandomPickups,
|
||||
"random_music": RandomMusic,
|
||||
"flip_levels": FlipLevels,
|
||||
"allow_death_logic": AllowDeathLogic,
|
||||
"pro": Pro,
|
||||
"start_with_computer_area_maps": StartWithComputerAreaMaps,
|
||||
"death_link": DeathLink,
|
||||
"reset_level_on_death": ResetLevelOnDeath,
|
||||
"episode1": Episode1,
|
||||
"episode2": Episode2,
|
||||
"episode3": Episode3,
|
||||
"episode4": Episode4
|
||||
}
|
||||
@dataclass
|
||||
class DOOM1993Options(PerGameCommonOptions):
|
||||
start_inventory_from_pool: StartInventoryPool
|
||||
goal: Goal
|
||||
difficulty: Difficulty
|
||||
random_monsters: RandomMonsters
|
||||
random_pickups: RandomPickups
|
||||
random_music: RandomMusic
|
||||
flip_levels: FlipLevels
|
||||
allow_death_logic: AllowDeathLogic
|
||||
pro: Pro
|
||||
start_with_computer_area_maps: StartWithComputerAreaMaps
|
||||
death_link: DeathLink
|
||||
reset_level_on_death: ResetLevelOnDeath
|
||||
episode1: Episode1
|
||||
episode2: Episode2
|
||||
episode3: Episode3
|
||||
episode4: Episode4
|
||||
|
||||
|
|
|
@ -7,105 +7,105 @@ if TYPE_CHECKING:
|
|||
from . import DOOM1993World
|
||||
|
||||
|
||||
def set_episode1_rules(player, world, pro):
|
||||
def set_episode1_rules(player, multiworld, pro):
|
||||
# Hangar (E1M1)
|
||||
set_rule(world.get_entrance("Hub -> Hangar (E1M1) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Hangar (E1M1) Main", player), lambda state:
|
||||
state.has("Hangar (E1M1)", player, 1))
|
||||
|
||||
# Nuclear Plant (E1M2)
|
||||
set_rule(world.get_entrance("Hub -> Nuclear Plant (E1M2) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Nuclear Plant (E1M2) Main", player), lambda state:
|
||||
(state.has("Nuclear Plant (E1M2)", player, 1)) and
|
||||
(state.has("Shotgun", player, 1) or
|
||||
state.has("Chaingun", player, 1)))
|
||||
set_rule(world.get_entrance("Nuclear Plant (E1M2) Main -> Nuclear Plant (E1M2) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Nuclear Plant (E1M2) Main -> Nuclear Plant (E1M2) Red", player), lambda state:
|
||||
state.has("Nuclear Plant (E1M2) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Nuclear Plant (E1M2) Red -> Nuclear Plant (E1M2) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Nuclear Plant (E1M2) Red -> Nuclear Plant (E1M2) Main", player), lambda state:
|
||||
state.has("Nuclear Plant (E1M2) - Red keycard", player, 1))
|
||||
|
||||
# Toxin Refinery (E1M3)
|
||||
set_rule(world.get_entrance("Hub -> Toxin Refinery (E1M3) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Toxin Refinery (E1M3) Main", player), lambda state:
|
||||
(state.has("Toxin Refinery (E1M3)", player, 1)) and
|
||||
(state.has("Shotgun", player, 1) or
|
||||
state.has("Chaingun", player, 1)))
|
||||
set_rule(world.get_entrance("Toxin Refinery (E1M3) Main -> Toxin Refinery (E1M3) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Toxin Refinery (E1M3) Main -> Toxin Refinery (E1M3) Blue", player), lambda state:
|
||||
state.has("Toxin Refinery (E1M3) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Toxin Refinery (E1M3) Blue -> Toxin Refinery (E1M3) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Toxin Refinery (E1M3) Blue -> Toxin Refinery (E1M3) Yellow", player), lambda state:
|
||||
state.has("Toxin Refinery (E1M3) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Toxin Refinery (E1M3) Blue -> Toxin Refinery (E1M3) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Toxin Refinery (E1M3) Blue -> Toxin Refinery (E1M3) Main", player), lambda state:
|
||||
state.has("Toxin Refinery (E1M3) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Toxin Refinery (E1M3) Yellow -> Toxin Refinery (E1M3) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Toxin Refinery (E1M3) Yellow -> Toxin Refinery (E1M3) Blue", player), lambda state:
|
||||
state.has("Toxin Refinery (E1M3) - Yellow keycard", player, 1))
|
||||
|
||||
# Command Control (E1M4)
|
||||
set_rule(world.get_entrance("Hub -> Command Control (E1M4) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Command Control (E1M4) Main", player), lambda state:
|
||||
state.has("Command Control (E1M4)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1))
|
||||
set_rule(world.get_entrance("Command Control (E1M4) Main -> Command Control (E1M4) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Command Control (E1M4) Main -> Command Control (E1M4) Blue", player), lambda state:
|
||||
state.has("Command Control (E1M4) - Blue keycard", player, 1) or
|
||||
state.has("Command Control (E1M4) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Command Control (E1M4) Main -> Command Control (E1M4) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Command Control (E1M4) Main -> Command Control (E1M4) Yellow", player), lambda state:
|
||||
state.has("Command Control (E1M4) - Blue keycard", player, 1) or
|
||||
state.has("Command Control (E1M4) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Command Control (E1M4) Blue -> Command Control (E1M4) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Command Control (E1M4) Blue -> Command Control (E1M4) Main", player), lambda state:
|
||||
state.has("Command Control (E1M4) - Yellow keycard", player, 1) or
|
||||
state.has("Command Control (E1M4) - Blue keycard", player, 1))
|
||||
|
||||
# Phobos Lab (E1M5)
|
||||
set_rule(world.get_entrance("Hub -> Phobos Lab (E1M5) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Phobos Lab (E1M5) Main", player), lambda state:
|
||||
state.has("Phobos Lab (E1M5)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1))
|
||||
set_rule(world.get_entrance("Phobos Lab (E1M5) Main -> Phobos Lab (E1M5) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Phobos Lab (E1M5) Main -> Phobos Lab (E1M5) Yellow", player), lambda state:
|
||||
state.has("Phobos Lab (E1M5) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Phobos Lab (E1M5) Yellow -> Phobos Lab (E1M5) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Phobos Lab (E1M5) Yellow -> Phobos Lab (E1M5) Blue", player), lambda state:
|
||||
state.has("Phobos Lab (E1M5) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Phobos Lab (E1M5) Blue -> Phobos Lab (E1M5) Green", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Phobos Lab (E1M5) Blue -> Phobos Lab (E1M5) Green", player), lambda state:
|
||||
state.has("Phobos Lab (E1M5) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Phobos Lab (E1M5) Green -> Phobos Lab (E1M5) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Phobos Lab (E1M5) Green -> Phobos Lab (E1M5) Blue", player), lambda state:
|
||||
state.has("Phobos Lab (E1M5) - Blue keycard", player, 1))
|
||||
|
||||
# Central Processing (E1M6)
|
||||
set_rule(world.get_entrance("Hub -> Central Processing (E1M6) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Central Processing (E1M6) Main", player), lambda state:
|
||||
state.has("Central Processing (E1M6)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Rocket launcher", player, 1))
|
||||
set_rule(world.get_entrance("Central Processing (E1M6) Main -> Central Processing (E1M6) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Central Processing (E1M6) Main -> Central Processing (E1M6) Yellow", player), lambda state:
|
||||
state.has("Central Processing (E1M6) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Central Processing (E1M6) Main -> Central Processing (E1M6) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Central Processing (E1M6) Main -> Central Processing (E1M6) Red", player), lambda state:
|
||||
state.has("Central Processing (E1M6) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Central Processing (E1M6) Main -> Central Processing (E1M6) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Central Processing (E1M6) Main -> Central Processing (E1M6) Blue", player), lambda state:
|
||||
state.has("Central Processing (E1M6) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Central Processing (E1M6) Main -> Central Processing (E1M6) Nukage", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Central Processing (E1M6) Main -> Central Processing (E1M6) Nukage", player), lambda state:
|
||||
state.has("Central Processing (E1M6) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Central Processing (E1M6) Yellow -> Central Processing (E1M6) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Central Processing (E1M6) Yellow -> Central Processing (E1M6) Main", player), lambda state:
|
||||
state.has("Central Processing (E1M6) - Yellow keycard", player, 1))
|
||||
|
||||
# Computer Station (E1M7)
|
||||
set_rule(world.get_entrance("Hub -> Computer Station (E1M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Computer Station (E1M7) Main", player), lambda state:
|
||||
state.has("Computer Station (E1M7)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Rocket launcher", player, 1))
|
||||
set_rule(world.get_entrance("Computer Station (E1M7) Main -> Computer Station (E1M7) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Computer Station (E1M7) Main -> Computer Station (E1M7) Red", player), lambda state:
|
||||
state.has("Computer Station (E1M7) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Computer Station (E1M7) Main -> Computer Station (E1M7) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Computer Station (E1M7) Main -> Computer Station (E1M7) Yellow", player), lambda state:
|
||||
state.has("Computer Station (E1M7) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Computer Station (E1M7) Blue -> Computer Station (E1M7) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Computer Station (E1M7) Blue -> Computer Station (E1M7) Yellow", player), lambda state:
|
||||
state.has("Computer Station (E1M7) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Computer Station (E1M7) Red -> Computer Station (E1M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Computer Station (E1M7) Red -> Computer Station (E1M7) Main", player), lambda state:
|
||||
state.has("Computer Station (E1M7) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Computer Station (E1M7) Yellow -> Computer Station (E1M7) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Computer Station (E1M7) Yellow -> Computer Station (E1M7) Blue", player), lambda state:
|
||||
state.has("Computer Station (E1M7) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Computer Station (E1M7) Yellow -> Computer Station (E1M7) Courtyard", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Computer Station (E1M7) Yellow -> Computer Station (E1M7) Courtyard", player), lambda state:
|
||||
state.has("Computer Station (E1M7) - Yellow keycard", player, 1) and
|
||||
state.has("Computer Station (E1M7) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Computer Station (E1M7) Courtyard -> Computer Station (E1M7) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Computer Station (E1M7) Courtyard -> Computer Station (E1M7) Yellow", player), lambda state:
|
||||
state.has("Computer Station (E1M7) - Yellow keycard", player, 1))
|
||||
|
||||
# Phobos Anomaly (E1M8)
|
||||
set_rule(world.get_entrance("Hub -> Phobos Anomaly (E1M8) Start", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Phobos Anomaly (E1M8) Start", player), lambda state:
|
||||
(state.has("Phobos Anomaly (E1M8)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
|
@ -114,255 +114,260 @@ def set_episode1_rules(player, world, pro):
|
|||
state.has("BFG9000", player, 1)))
|
||||
|
||||
# Military Base (E1M9)
|
||||
set_rule(world.get_entrance("Hub -> Military Base (E1M9) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Military Base (E1M9) Main", player), lambda state:
|
||||
state.has("Military Base (E1M9)", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Shotgun", player, 1))
|
||||
set_rule(world.get_entrance("Military Base (E1M9) Main -> Military Base (E1M9) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Military Base (E1M9) Main -> Military Base (E1M9) Blue", player), lambda state:
|
||||
state.has("Military Base (E1M9) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Military Base (E1M9) Main -> Military Base (E1M9) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Military Base (E1M9) Main -> Military Base (E1M9) Yellow", player), lambda state:
|
||||
state.has("Military Base (E1M9) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Military Base (E1M9) Main -> Military Base (E1M9) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Military Base (E1M9) Main -> Military Base (E1M9) Red", player), lambda state:
|
||||
state.has("Military Base (E1M9) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Military Base (E1M9) Blue -> Military Base (E1M9) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Military Base (E1M9) Blue -> Military Base (E1M9) Main", player), lambda state:
|
||||
state.has("Military Base (E1M9) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Military Base (E1M9) Yellow -> Military Base (E1M9) Main", player), lambda state:
|
||||
set_rule(multiworld.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, pro):
|
||||
def set_episode2_rules(player, multiworld, pro):
|
||||
# Deimos Anomaly (E2M1)
|
||||
set_rule(world.get_entrance("Hub -> Deimos Anomaly (E2M1) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Deimos Anomaly (E2M1) Main", player), lambda state:
|
||||
state.has("Deimos Anomaly (E2M1)", player, 1))
|
||||
set_rule(world.get_entrance("Deimos Anomaly (E2M1) Main -> Deimos Anomaly (E2M1) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Deimos Anomaly (E2M1) Main -> Deimos Anomaly (E2M1) Red", player), lambda state:
|
||||
state.has("Deimos Anomaly (E2M1) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Deimos Anomaly (E2M1) Main -> Deimos Anomaly (E2M1) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Deimos Anomaly (E2M1) Main -> Deimos Anomaly (E2M1) Blue", player), lambda state:
|
||||
state.has("Deimos Anomaly (E2M1) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Deimos Anomaly (E2M1) Blue -> Deimos Anomaly (E2M1) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Deimos Anomaly (E2M1) Blue -> Deimos Anomaly (E2M1) Main", player), lambda state:
|
||||
state.has("Deimos Anomaly (E2M1) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Deimos Anomaly (E2M1) Red -> Deimos Anomaly (E2M1) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Deimos Anomaly (E2M1) Red -> Deimos Anomaly (E2M1) Main", player), lambda state:
|
||||
state.has("Deimos Anomaly (E2M1) - Red keycard", player, 1))
|
||||
|
||||
# Containment Area (E2M2)
|
||||
set_rule(world.get_entrance("Hub -> Containment Area (E2M2) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Containment Area (E2M2) Main", player), lambda state:
|
||||
(state.has("Containment Area (E2M2)", player, 1) and
|
||||
state.has("Shotgun", player, 1)) and
|
||||
(state.has("Chaingun", player, 1) or
|
||||
state.has("Plasma gun", player, 1)))
|
||||
set_rule(world.get_entrance("Containment Area (E2M2) Main -> Containment Area (E2M2) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Containment Area (E2M2) Main -> Containment Area (E2M2) Yellow", player), lambda state:
|
||||
state.has("Containment Area (E2M2) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Containment Area (E2M2) Main -> Containment Area (E2M2) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Containment Area (E2M2) Main -> Containment Area (E2M2) Blue", player), lambda state:
|
||||
state.has("Containment Area (E2M2) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Containment Area (E2M2) Main -> Containment Area (E2M2) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Containment Area (E2M2) Main -> Containment Area (E2M2) Red", player), lambda state:
|
||||
state.has("Containment Area (E2M2) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Containment Area (E2M2) Blue -> Containment Area (E2M2) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Containment Area (E2M2) Blue -> Containment Area (E2M2) Main", player), lambda state:
|
||||
state.has("Containment Area (E2M2) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Containment Area (E2M2) Red -> Containment Area (E2M2) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Containment Area (E2M2) Red -> Containment Area (E2M2) Main", player), lambda state:
|
||||
state.has("Containment Area (E2M2) - Red keycard", player, 1))
|
||||
|
||||
# Refinery (E2M3)
|
||||
set_rule(world.get_entrance("Hub -> Refinery (E2M3) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Refinery (E2M3) Main", player), lambda state:
|
||||
(state.has("Refinery (E2M3)", player, 1) and
|
||||
state.has("Shotgun", player, 1)) and
|
||||
(state.has("Chaingun", player, 1) or
|
||||
state.has("Plasma gun", player, 1)))
|
||||
set_rule(world.get_entrance("Refinery (E2M3) Main -> Refinery (E2M3) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Refinery (E2M3) Main -> Refinery (E2M3) Blue", player), lambda state:
|
||||
state.has("Refinery (E2M3) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Refinery (E2M3) Blue -> Refinery (E2M3) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Refinery (E2M3) Blue -> Refinery (E2M3) Main", player), lambda state:
|
||||
state.has("Refinery (E2M3) - Blue keycard", player, 1))
|
||||
|
||||
# Deimos Lab (E2M4)
|
||||
set_rule(world.get_entrance("Hub -> Deimos Lab (E2M4) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Deimos Lab (E2M4) Main", player), lambda state:
|
||||
state.has("Deimos Lab (E2M4)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Plasma gun", player, 1))
|
||||
set_rule(world.get_entrance("Deimos Lab (E2M4) Main -> Deimos Lab (E2M4) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Deimos Lab (E2M4) Main -> Deimos Lab (E2M4) Blue", player), lambda state:
|
||||
state.has("Deimos Lab (E2M4) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Deimos Lab (E2M4) Blue -> Deimos Lab (E2M4) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Deimos Lab (E2M4) Blue -> Deimos Lab (E2M4) Yellow", player), lambda state:
|
||||
state.has("Deimos Lab (E2M4) - Yellow keycard", player, 1))
|
||||
|
||||
# Command Center (E2M5)
|
||||
set_rule(world.get_entrance("Hub -> Command Center (E2M5) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Command Center (E2M5) Main", player), lambda state:
|
||||
state.has("Command Center (E2M5)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Plasma gun", player, 1))
|
||||
|
||||
# Halls of the Damned (E2M6)
|
||||
set_rule(world.get_entrance("Hub -> Halls of the Damned (E2M6) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Halls of the Damned (E2M6) Main", player), lambda state:
|
||||
state.has("Halls of the Damned (E2M6)", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Plasma gun", player, 1))
|
||||
set_rule(world.get_entrance("Halls of the Damned (E2M6) Main -> Halls of the Damned (E2M6) Blue Yellow Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Halls of the Damned (E2M6) Main -> Halls of the Damned (E2M6) Blue Yellow Red", player), lambda state:
|
||||
state.has("Halls of the Damned (E2M6) - Blue skull key", player, 1) and
|
||||
state.has("Halls of the Damned (E2M6) - Yellow skull key", player, 1) and
|
||||
state.has("Halls of the Damned (E2M6) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("Halls of the Damned (E2M6) Main -> Halls of the Damned (E2M6) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Halls of the Damned (E2M6) Main -> Halls of the Damned (E2M6) Yellow", player), lambda state:
|
||||
state.has("Halls of the Damned (E2M6) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("Halls of the Damned (E2M6) Main -> Halls of the Damned (E2M6) One way Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Halls of the Damned (E2M6) Main -> Halls of the Damned (E2M6) One way Yellow", player), lambda state:
|
||||
state.has("Halls of the Damned (E2M6) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("Halls of the Damned (E2M6) Blue Yellow Red -> Halls of the Damned (E2M6) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Halls of the Damned (E2M6) Blue Yellow Red -> Halls of the Damned (E2M6) Main", player), lambda state:
|
||||
state.has("Halls of the Damned (E2M6) - Blue skull key", player, 1) and
|
||||
state.has("Halls of the Damned (E2M6) - Yellow skull key", player, 1) and
|
||||
state.has("Halls of the Damned (E2M6) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("Halls of the Damned (E2M6) One way Yellow -> Halls of the Damned (E2M6) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Halls of the Damned (E2M6) One way Yellow -> Halls of the Damned (E2M6) Main", player), lambda state:
|
||||
state.has("Halls of the Damned (E2M6) - Yellow skull key", player, 1))
|
||||
|
||||
# Spawning Vats (E2M7)
|
||||
set_rule(world.get_entrance("Hub -> Spawning Vats (E2M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Spawning Vats (E2M7) Main", player), lambda state:
|
||||
state.has("Spawning Vats (E2M7)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Plasma gun", player, 1) and
|
||||
state.has("Rocket launcher", player, 1))
|
||||
set_rule(world.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Blue", player), lambda state:
|
||||
state.has("Spawning Vats (E2M7) - Blue keycard", player, 1))
|
||||
set_rule(world.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Entrance Secret", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Entrance Secret", player), lambda state:
|
||||
state.has("Spawning Vats (E2M7) - Blue keycard", player, 1) and
|
||||
state.has("Spawning Vats (E2M7) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Red", player), lambda state:
|
||||
state.has("Spawning Vats (E2M7) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Yellow", player), lambda state:
|
||||
state.has("Spawning Vats (E2M7) - Yellow keycard", player, 1))
|
||||
if pro:
|
||||
set_rule(world.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Red Exit", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Spawning Vats (E2M7) Main -> Spawning Vats (E2M7) Red Exit", player), lambda state:
|
||||
state.has("Rocket launcher", player, 1))
|
||||
set_rule(world.get_entrance("Spawning Vats (E2M7) Yellow -> Spawning Vats (E2M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Spawning Vats (E2M7) Yellow -> Spawning Vats (E2M7) Main", player), lambda state:
|
||||
state.has("Spawning Vats (E2M7) - Yellow keycard", player, 1))
|
||||
set_rule(world.get_entrance("Spawning Vats (E2M7) Red -> Spawning Vats (E2M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Spawning Vats (E2M7) Red -> Spawning Vats (E2M7) Main", player), lambda state:
|
||||
state.has("Spawning Vats (E2M7) - Red keycard", player, 1))
|
||||
set_rule(world.get_entrance("Spawning Vats (E2M7) Entrance Secret -> Spawning Vats (E2M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Spawning Vats (E2M7) Entrance Secret -> Spawning Vats (E2M7) Main", player), lambda state:
|
||||
state.has("Spawning Vats (E2M7) - Blue keycard", player, 1) and
|
||||
state.has("Spawning Vats (E2M7) - Red keycard", player, 1))
|
||||
|
||||
# Tower of Babel (E2M8)
|
||||
set_rule(world.get_entrance("Hub -> Tower of Babel (E2M8) Main", player), lambda state:
|
||||
state.has("Tower of Babel (E2M8)", player, 1))
|
||||
set_rule(multiworld.get_entrance("Hub -> Tower of Babel (E2M8) Main", player), lambda state:
|
||||
(state.has("Tower of Babel (E2M8)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
|
||||
# Fortress of Mystery (E2M9)
|
||||
set_rule(world.get_entrance("Hub -> Fortress of Mystery (E2M9) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Fortress of Mystery (E2M9) Main", player), lambda state:
|
||||
(state.has("Fortress of Mystery (E2M9)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Fortress of Mystery (E2M9) Main -> Fortress of Mystery (E2M9) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Fortress of Mystery (E2M9) Main -> Fortress of Mystery (E2M9) Blue", player), lambda state:
|
||||
state.has("Fortress of Mystery (E2M9) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Fortress of Mystery (E2M9) Main -> Fortress of Mystery (E2M9) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Fortress of Mystery (E2M9) Main -> Fortress of Mystery (E2M9) Red", player), lambda state:
|
||||
state.has("Fortress of Mystery (E2M9) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("Fortress of Mystery (E2M9) Main -> Fortress of Mystery (E2M9) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Fortress of Mystery (E2M9) Main -> Fortress of Mystery (E2M9) Yellow", player), lambda state:
|
||||
state.has("Fortress of Mystery (E2M9) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("Fortress of Mystery (E2M9) Blue -> Fortress of Mystery (E2M9) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Fortress of Mystery (E2M9) Blue -> Fortress of Mystery (E2M9) Main", player), lambda state:
|
||||
state.has("Fortress of Mystery (E2M9) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Fortress of Mystery (E2M9) Red -> Fortress of Mystery (E2M9) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Fortress of Mystery (E2M9) Red -> Fortress of Mystery (E2M9) Main", player), lambda state:
|
||||
state.has("Fortress of Mystery (E2M9) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("Fortress of Mystery (E2M9) Yellow -> Fortress of Mystery (E2M9) Main", player), lambda state:
|
||||
set_rule(multiworld.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, pro):
|
||||
def set_episode3_rules(player, multiworld, pro):
|
||||
# Hell Keep (E3M1)
|
||||
set_rule(world.get_entrance("Hub -> Hell Keep (E3M1) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Hell Keep (E3M1) Main", player), lambda state:
|
||||
state.has("Hell Keep (E3M1)", player, 1))
|
||||
set_rule(world.get_entrance("Hell Keep (E3M1) Main -> Hell Keep (E3M1) Narrow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hell Keep (E3M1) Main -> Hell Keep (E3M1) Narrow", player), lambda state:
|
||||
state.has("Chaingun", player, 1) or
|
||||
state.has("Shotgun", player, 1))
|
||||
|
||||
# Slough of Despair (E3M2)
|
||||
set_rule(world.get_entrance("Hub -> Slough of Despair (E3M2) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Slough of Despair (E3M2) Main", player), lambda state:
|
||||
(state.has("Slough of Despair (E3M2)", player, 1)) and
|
||||
(state.has("Shotgun", player, 1) or
|
||||
state.has("Chaingun", player, 1)))
|
||||
set_rule(world.get_entrance("Slough of Despair (E3M2) Main -> Slough of Despair (E3M2) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Slough of Despair (E3M2) Main -> Slough of Despair (E3M2) Blue", player), lambda state:
|
||||
state.has("Slough of Despair (E3M2) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Slough of Despair (E3M2) Blue -> Slough of Despair (E3M2) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Slough of Despair (E3M2) Blue -> Slough of Despair (E3M2) Main", player), lambda state:
|
||||
state.has("Slough of Despair (E3M2) - Blue skull key", player, 1))
|
||||
|
||||
# Pandemonium (E3M3)
|
||||
set_rule(world.get_entrance("Hub -> Pandemonium (E3M3) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Pandemonium (E3M3) Main", player), lambda state:
|
||||
(state.has("Pandemonium (E3M3)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Pandemonium (E3M3) Main -> Pandemonium (E3M3) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Pandemonium (E3M3) Main -> Pandemonium (E3M3) Blue", player), lambda state:
|
||||
state.has("Pandemonium (E3M3) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Pandemonium (E3M3) Blue -> Pandemonium (E3M3) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Pandemonium (E3M3) Blue -> Pandemonium (E3M3) Main", player), lambda state:
|
||||
state.has("Pandemonium (E3M3) - Blue skull key", player, 1))
|
||||
|
||||
# House of Pain (E3M4)
|
||||
set_rule(world.get_entrance("Hub -> House of Pain (E3M4) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> House of Pain (E3M4) Main", player), lambda state:
|
||||
(state.has("House of Pain (E3M4)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("House of Pain (E3M4) Main -> House of Pain (E3M4) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("House of Pain (E3M4) Main -> House of Pain (E3M4) Blue", player), lambda state:
|
||||
state.has("House of Pain (E3M4) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("House of Pain (E3M4) Blue -> House of Pain (E3M4) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("House of Pain (E3M4) Blue -> House of Pain (E3M4) Main", player), lambda state:
|
||||
state.has("House of Pain (E3M4) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("House of Pain (E3M4) Blue -> House of Pain (E3M4) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("House of Pain (E3M4) Blue -> House of Pain (E3M4) Yellow", player), lambda state:
|
||||
state.has("House of Pain (E3M4) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("House of Pain (E3M4) Blue -> House of Pain (E3M4) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("House of Pain (E3M4) Blue -> House of Pain (E3M4) Red", player), lambda state:
|
||||
state.has("House of Pain (E3M4) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("House of Pain (E3M4) Red -> House of Pain (E3M4) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("House of Pain (E3M4) Red -> House of Pain (E3M4) Blue", player), lambda state:
|
||||
state.has("House of Pain (E3M4) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("House of Pain (E3M4) Yellow -> House of Pain (E3M4) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("House of Pain (E3M4) Yellow -> House of Pain (E3M4) Blue", player), lambda state:
|
||||
state.has("House of Pain (E3M4) - Yellow skull key", player, 1))
|
||||
|
||||
# Unholy Cathedral (E3M5)
|
||||
set_rule(world.get_entrance("Hub -> Unholy Cathedral (E3M5) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Unholy Cathedral (E3M5) Main", player), lambda state:
|
||||
(state.has("Unholy Cathedral (E3M5)", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Shotgun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Unholy Cathedral (E3M5) Main -> Unholy Cathedral (E3M5) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Unholy Cathedral (E3M5) Main -> Unholy Cathedral (E3M5) Yellow", player), lambda state:
|
||||
state.has("Unholy Cathedral (E3M5) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("Unholy Cathedral (E3M5) Main -> Unholy Cathedral (E3M5) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Unholy Cathedral (E3M5) Main -> Unholy Cathedral (E3M5) Blue", player), lambda state:
|
||||
state.has("Unholy Cathedral (E3M5) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Unholy Cathedral (E3M5) Blue -> Unholy Cathedral (E3M5) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Unholy Cathedral (E3M5) Blue -> Unholy Cathedral (E3M5) Main", player), lambda state:
|
||||
state.has("Unholy Cathedral (E3M5) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Unholy Cathedral (E3M5) Yellow -> Unholy Cathedral (E3M5) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Unholy Cathedral (E3M5) Yellow -> Unholy Cathedral (E3M5) Main", player), lambda state:
|
||||
state.has("Unholy Cathedral (E3M5) - Yellow skull key", player, 1))
|
||||
|
||||
# Mt. Erebus (E3M6)
|
||||
set_rule(world.get_entrance("Hub -> Mt. Erebus (E3M6) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Mt. Erebus (E3M6) Main", player), lambda state:
|
||||
state.has("Mt. Erebus (E3M6)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1))
|
||||
set_rule(world.get_entrance("Mt. Erebus (E3M6) Main -> Mt. Erebus (E3M6) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Mt. Erebus (E3M6) Main -> Mt. Erebus (E3M6) Blue", player), lambda state:
|
||||
state.has("Mt. Erebus (E3M6) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Mt. Erebus (E3M6) Blue -> Mt. Erebus (E3M6) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Mt. Erebus (E3M6) Blue -> Mt. Erebus (E3M6) Main", player), lambda state:
|
||||
state.has("Mt. Erebus (E3M6) - Blue skull key", player, 1))
|
||||
|
||||
# Limbo (E3M7)
|
||||
set_rule(world.get_entrance("Hub -> Limbo (E3M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Limbo (E3M7) Main", player), lambda state:
|
||||
(state.has("Limbo (E3M7)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Limbo (E3M7) Main -> Limbo (E3M7) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Limbo (E3M7) Main -> Limbo (E3M7) Red", player), lambda state:
|
||||
state.has("Limbo (E3M7) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("Limbo (E3M7) Main -> Limbo (E3M7) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Limbo (E3M7) Main -> Limbo (E3M7) Blue", player), lambda state:
|
||||
state.has("Limbo (E3M7) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Limbo (E3M7) Main -> Limbo (E3M7) Pink", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Limbo (E3M7) Main -> Limbo (E3M7) Pink", player), lambda state:
|
||||
state.has("Limbo (E3M7) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Limbo (E3M7) Red -> Limbo (E3M7) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Limbo (E3M7) Red -> Limbo (E3M7) Yellow", player), lambda state:
|
||||
state.has("Limbo (E3M7) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("Limbo (E3M7) Pink -> Limbo (E3M7) Green", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Limbo (E3M7) Pink -> Limbo (E3M7) Green", player), lambda state:
|
||||
state.has("Limbo (E3M7) - Red skull key", player, 1))
|
||||
|
||||
# Dis (E3M8)
|
||||
set_rule(world.get_entrance("Hub -> Dis (E3M8) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Dis (E3M8) Main", player), lambda state:
|
||||
(state.has("Dis (E3M8)", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Shotgun", player, 1)) and
|
||||
|
@ -371,129 +376,129 @@ def set_episode3_rules(player, world, pro):
|
|||
state.has("Rocket launcher", player, 1)))
|
||||
|
||||
# Warrens (E3M9)
|
||||
set_rule(world.get_entrance("Hub -> Warrens (E3M9) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Warrens (E3M9) Main", player), lambda state:
|
||||
(state.has("Warrens (E3M9)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Plasma gun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Warrens (E3M9) Main -> Warrens (E3M9) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Warrens (E3M9) Main -> Warrens (E3M9) Blue", player), lambda state:
|
||||
state.has("Warrens (E3M9) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Warrens (E3M9) Main -> Warrens (E3M9) Blue trigger", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Warrens (E3M9) Main -> Warrens (E3M9) Blue trigger", player), lambda state:
|
||||
state.has("Warrens (E3M9) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Warrens (E3M9) Blue -> Warrens (E3M9) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Warrens (E3M9) Blue -> Warrens (E3M9) Main", player), lambda state:
|
||||
state.has("Warrens (E3M9) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Warrens (E3M9) Blue -> Warrens (E3M9) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Warrens (E3M9) Blue -> Warrens (E3M9) Red", player), lambda state:
|
||||
state.has("Warrens (E3M9) - Red skull key", player, 1))
|
||||
|
||||
|
||||
def set_episode4_rules(player, world, pro):
|
||||
def set_episode4_rules(player, multiworld, pro):
|
||||
# Hell Beneath (E4M1)
|
||||
set_rule(world.get_entrance("Hub -> Hell Beneath (E4M1) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Hell Beneath (E4M1) Main", player), lambda state:
|
||||
state.has("Hell Beneath (E4M1)", player, 1))
|
||||
set_rule(world.get_entrance("Hell Beneath (E4M1) Main -> Hell Beneath (E4M1) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hell Beneath (E4M1) Main -> Hell Beneath (E4M1) Red", player), lambda state:
|
||||
(state.has("Hell Beneath (E4M1) - Red skull key", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and (state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Hell Beneath (E4M1) Main -> Hell Beneath (E4M1) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hell Beneath (E4M1) Main -> Hell Beneath (E4M1) Blue", player), lambda state:
|
||||
state.has("Shotgun", player, 1) or
|
||||
state.has("Chaingun", player, 1) or
|
||||
state.has("Hell Beneath (E4M1) - Blue skull key", player, 1))
|
||||
|
||||
# Perfect Hatred (E4M2)
|
||||
set_rule(world.get_entrance("Hub -> Perfect Hatred (E4M2) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Perfect Hatred (E4M2) Main", player), lambda state:
|
||||
(state.has("Perfect Hatred (E4M2)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Perfect Hatred (E4M2) Main -> Perfect Hatred (E4M2) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Perfect Hatred (E4M2) Main -> Perfect Hatred (E4M2) Blue", player), lambda state:
|
||||
state.has("Perfect Hatred (E4M2) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Perfect Hatred (E4M2) Main -> Perfect Hatred (E4M2) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Perfect Hatred (E4M2) Main -> Perfect Hatred (E4M2) Yellow", player), lambda state:
|
||||
state.has("Perfect Hatred (E4M2) - Yellow skull key", player, 1))
|
||||
|
||||
# Sever the Wicked (E4M3)
|
||||
set_rule(world.get_entrance("Hub -> Sever the Wicked (E4M3) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Sever the Wicked (E4M3) Main", player), lambda state:
|
||||
(state.has("Sever the Wicked (E4M3)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Sever the Wicked (E4M3) Main -> Sever the Wicked (E4M3) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Sever the Wicked (E4M3) Main -> Sever the Wicked (E4M3) Red", player), lambda state:
|
||||
state.has("Sever the Wicked (E4M3) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("Sever the Wicked (E4M3) Red -> Sever the Wicked (E4M3) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Sever the Wicked (E4M3) Red -> Sever the Wicked (E4M3) Blue", player), lambda state:
|
||||
state.has("Sever the Wicked (E4M3) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Sever the Wicked (E4M3) Red -> Sever the Wicked (E4M3) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Sever the Wicked (E4M3) Red -> Sever the Wicked (E4M3) Main", player), lambda state:
|
||||
state.has("Sever the Wicked (E4M3) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("Sever the Wicked (E4M3) Blue -> Sever the Wicked (E4M3) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Sever the Wicked (E4M3) Blue -> Sever the Wicked (E4M3) Red", player), lambda state:
|
||||
state.has("Sever the Wicked (E4M3) - Blue skull key", player, 1))
|
||||
|
||||
# Unruly Evil (E4M4)
|
||||
set_rule(world.get_entrance("Hub -> Unruly Evil (E4M4) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Unruly Evil (E4M4) Main", player), lambda state:
|
||||
(state.has("Unruly Evil (E4M4)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Unruly Evil (E4M4) Main -> Unruly Evil (E4M4) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Unruly Evil (E4M4) Main -> Unruly Evil (E4M4) Red", player), lambda state:
|
||||
state.has("Unruly Evil (E4M4) - Red skull key", player, 1))
|
||||
|
||||
# They Will Repent (E4M5)
|
||||
set_rule(world.get_entrance("Hub -> They Will Repent (E4M5) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> They Will Repent (E4M5) Main", player), lambda state:
|
||||
(state.has("They Will Repent (E4M5)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("They Will Repent (E4M5) Main -> They Will Repent (E4M5) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("They Will Repent (E4M5) Main -> They Will Repent (E4M5) Red", player), lambda state:
|
||||
state.has("They Will Repent (E4M5) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("They Will Repent (E4M5) Red -> They Will Repent (E4M5) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("They Will Repent (E4M5) Red -> They Will Repent (E4M5) Main", player), lambda state:
|
||||
state.has("They Will Repent (E4M5) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("They Will Repent (E4M5) Red -> They Will Repent (E4M5) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("They Will Repent (E4M5) Red -> They Will Repent (E4M5) Yellow", player), lambda state:
|
||||
state.has("They Will Repent (E4M5) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("They Will Repent (E4M5) Red -> They Will Repent (E4M5) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("They Will Repent (E4M5) Red -> They Will Repent (E4M5) Blue", player), lambda state:
|
||||
state.has("They Will Repent (E4M5) - Blue skull key", player, 1))
|
||||
|
||||
# Against Thee Wickedly (E4M6)
|
||||
set_rule(world.get_entrance("Hub -> Against Thee Wickedly (E4M6) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Against Thee Wickedly (E4M6) Main", player), lambda state:
|
||||
(state.has("Against Thee Wickedly (E4M6)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("Against Thee Wickedly (E4M6) Main -> Against Thee Wickedly (E4M6) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Against Thee Wickedly (E4M6) Main -> Against Thee Wickedly (E4M6) Blue", player), lambda state:
|
||||
state.has("Against Thee Wickedly (E4M6) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("Against Thee Wickedly (E4M6) Blue -> Against Thee Wickedly (E4M6) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Against Thee Wickedly (E4M6) Blue -> Against Thee Wickedly (E4M6) Yellow", player), lambda state:
|
||||
state.has("Against Thee Wickedly (E4M6) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("Against Thee Wickedly (E4M6) Blue -> Against Thee Wickedly (E4M6) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Against Thee Wickedly (E4M6) Blue -> Against Thee Wickedly (E4M6) Red", player), lambda state:
|
||||
state.has("Against Thee Wickedly (E4M6) - Red skull key", player, 1))
|
||||
|
||||
# And Hell Followed (E4M7)
|
||||
set_rule(world.get_entrance("Hub -> And Hell Followed (E4M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> And Hell Followed (E4M7) Main", player), lambda state:
|
||||
(state.has("And Hell Followed (E4M7)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1)) and
|
||||
(state.has("Rocket launcher", player, 1) or
|
||||
state.has("Plasma gun", player, 1) or
|
||||
state.has("BFG9000", player, 1)))
|
||||
set_rule(world.get_entrance("And Hell Followed (E4M7) Main -> And Hell Followed (E4M7) Blue", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("And Hell Followed (E4M7) Main -> And Hell Followed (E4M7) Blue", player), lambda state:
|
||||
state.has("And Hell Followed (E4M7) - Blue skull key", player, 1))
|
||||
set_rule(world.get_entrance("And Hell Followed (E4M7) Main -> And Hell Followed (E4M7) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("And Hell Followed (E4M7) Main -> And Hell Followed (E4M7) Red", player), lambda state:
|
||||
state.has("And Hell Followed (E4M7) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("And Hell Followed (E4M7) Main -> And Hell Followed (E4M7) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("And Hell Followed (E4M7) Main -> And Hell Followed (E4M7) Yellow", player), lambda state:
|
||||
state.has("And Hell Followed (E4M7) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("And Hell Followed (E4M7) Red -> And Hell Followed (E4M7) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("And Hell Followed (E4M7) Red -> And Hell Followed (E4M7) Main", player), lambda state:
|
||||
state.has("And Hell Followed (E4M7) - Red skull key", player, 1))
|
||||
|
||||
# Unto the Cruel (E4M8)
|
||||
set_rule(world.get_entrance("Hub -> Unto the Cruel (E4M8) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Unto the Cruel (E4M8) Main", player), lambda state:
|
||||
(state.has("Unto the Cruel (E4M8)", player, 1) and
|
||||
state.has("Chainsaw", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
|
@ -501,37 +506,37 @@ def set_episode4_rules(player, world, pro):
|
|||
state.has("Rocket launcher", player, 1)) and
|
||||
(state.has("BFG9000", player, 1) or
|
||||
state.has("Plasma gun", player, 1)))
|
||||
set_rule(world.get_entrance("Unto the Cruel (E4M8) Main -> Unto the Cruel (E4M8) Red", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Unto the Cruel (E4M8) Main -> Unto the Cruel (E4M8) Red", player), lambda state:
|
||||
state.has("Unto the Cruel (E4M8) - Red skull key", player, 1))
|
||||
set_rule(world.get_entrance("Unto the Cruel (E4M8) Main -> Unto the Cruel (E4M8) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Unto the Cruel (E4M8) Main -> Unto the Cruel (E4M8) Yellow", player), lambda state:
|
||||
state.has("Unto the Cruel (E4M8) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("Unto the Cruel (E4M8) Main -> Unto the Cruel (E4M8) Orange", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Unto the Cruel (E4M8) Main -> Unto the Cruel (E4M8) Orange", player), lambda state:
|
||||
state.has("Unto the Cruel (E4M8) - Yellow skull key", player, 1) and
|
||||
state.has("Unto the Cruel (E4M8) - Red skull key", player, 1))
|
||||
|
||||
# Fear (E4M9)
|
||||
set_rule(world.get_entrance("Hub -> Fear (E4M9) Main", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Hub -> Fear (E4M9) Main", player), lambda state:
|
||||
state.has("Fear (E4M9)", player, 1) and
|
||||
state.has("Shotgun", player, 1) and
|
||||
state.has("Chaingun", player, 1) and
|
||||
state.has("Rocket launcher", player, 1) and
|
||||
state.has("Plasma gun", player, 1) and
|
||||
state.has("BFG9000", player, 1))
|
||||
set_rule(world.get_entrance("Fear (E4M9) Main -> Fear (E4M9) Yellow", player), lambda state:
|
||||
set_rule(multiworld.get_entrance("Fear (E4M9) Main -> Fear (E4M9) Yellow", player), lambda state:
|
||||
state.has("Fear (E4M9) - Yellow skull key", player, 1))
|
||||
set_rule(world.get_entrance("Fear (E4M9) Yellow -> Fear (E4M9) Main", player), lambda state:
|
||||
set_rule(multiworld.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, pro):
|
||||
player = doom_1993_world.player
|
||||
world = doom_1993_world.multiworld
|
||||
multiworld = doom_1993_world.multiworld
|
||||
|
||||
if included_episodes[0]:
|
||||
set_episode1_rules(player, world, pro)
|
||||
set_episode1_rules(player, multiworld, pro)
|
||||
if included_episodes[1]:
|
||||
set_episode2_rules(player, world, pro)
|
||||
set_episode2_rules(player, multiworld, pro)
|
||||
if included_episodes[2]:
|
||||
set_episode3_rules(player, world, pro)
|
||||
set_episode3_rules(player, multiworld, pro)
|
||||
if included_episodes[3]:
|
||||
set_episode4_rules(player, world, pro)
|
||||
set_episode4_rules(player, multiworld, pro)
|
||||
|
|
|
@ -2,9 +2,10 @@ import functools
|
|||
import logging
|
||||
from typing import Any, Dict, List
|
||||
|
||||
from BaseClasses import Entrance, CollectionState, Item, ItemClassification, Location, MultiWorld, Region, Tutorial
|
||||
from BaseClasses import Entrance, CollectionState, Item, Location, MultiWorld, Region, Tutorial
|
||||
from worlds.AutoWorld import WebWorld, World
|
||||
from . import Items, Locations, Maps, Options, Regions, Rules
|
||||
from . import Items, Locations, Maps, Regions, Rules
|
||||
from .Options import DOOM1993Options
|
||||
|
||||
logger = logging.getLogger("DOOM 1993")
|
||||
|
||||
|
@ -37,7 +38,8 @@ class DOOM1993World(World):
|
|||
Developed by id Software, and originally released in 1993, DOOM pioneered and popularized the first-person shooter,
|
||||
setting a standard for all FPS games.
|
||||
"""
|
||||
option_definitions = Options.options
|
||||
options_dataclass = DOOM1993Options
|
||||
options: DOOM1993Options
|
||||
game = "DOOM 1993"
|
||||
web = DOOM1993Web()
|
||||
data_version = 3
|
||||
|
@ -78,26 +80,28 @@ class DOOM1993World(World):
|
|||
"Energy cell pack": 10
|
||||
}
|
||||
|
||||
def __init__(self, world: MultiWorld, player: int):
|
||||
def __init__(self, multiworld: MultiWorld, player: int):
|
||||
self.included_episodes = [1, 1, 1, 0]
|
||||
self.location_count = 0
|
||||
|
||||
super().__init__(world, player)
|
||||
super().__init__(multiworld, player)
|
||||
|
||||
def get_episode_count(self):
|
||||
return functools.reduce(lambda count, episode: count + episode, self.included_episodes)
|
||||
|
||||
def generate_early(self):
|
||||
# Cache which episodes are included
|
||||
for i in range(4):
|
||||
self.included_episodes[i] = getattr(self.multiworld, f"episode{i + 1}")[self.player].value
|
||||
self.included_episodes[0] = self.options.episode1.value
|
||||
self.included_episodes[1] = self.options.episode2.value
|
||||
self.included_episodes[2] = self.options.episode3.value
|
||||
self.included_episodes[3] = self.options.episode4.value
|
||||
|
||||
# If no episodes selected, select Episode 1
|
||||
if self.get_episode_count() == 0:
|
||||
self.included_episodes[0] = 1
|
||||
|
||||
def create_regions(self):
|
||||
pro = getattr(self.multiworld, "pro")[self.player].value
|
||||
pro = self.options.pro.value
|
||||
|
||||
# Main regions
|
||||
menu_region = Region("Menu", self.player, self.multiworld)
|
||||
|
@ -148,7 +152,7 @@ class DOOM1993World(World):
|
|||
|
||||
def completion_rule(self, state: CollectionState):
|
||||
goal_levels = Maps.map_names
|
||||
if getattr(self.multiworld, "goal")[self.player].value:
|
||||
if self.options.goal.value:
|
||||
goal_levels = self.boss_level_for_espidoes
|
||||
|
||||
for map_name in goal_levels:
|
||||
|
@ -167,8 +171,8 @@ class DOOM1993World(World):
|
|||
return True
|
||||
|
||||
def set_rules(self):
|
||||
pro = getattr(self.multiworld, "pro")[self.player].value
|
||||
allow_death_logic = getattr(self.multiworld, "allow_death_logic")[self.player].value
|
||||
pro = self.options.pro.value
|
||||
allow_death_logic = self.options.allow_death_logic.value
|
||||
|
||||
Rules.set_rules(self, self.included_episodes, pro)
|
||||
self.multiworld.completion_condition[self.player] = lambda state: self.completion_rule(state)
|
||||
|
@ -185,7 +189,7 @@ class DOOM1993World(World):
|
|||
|
||||
def create_items(self):
|
||||
itempool: List[DOOM1993Item] = []
|
||||
start_with_computer_area_maps: bool = getattr(self.multiworld, "start_with_computer_area_maps")[self.player].value
|
||||
start_with_computer_area_maps: bool = self.options.start_with_computer_area_maps.value
|
||||
|
||||
# Items
|
||||
for item_id, item in Items.item_table.items():
|
||||
|
@ -225,7 +229,7 @@ class DOOM1993World(World):
|
|||
self.multiworld.push_precollected(self.create_item(self.starting_level_for_episode[i]))
|
||||
|
||||
# Give Computer area maps if option selected
|
||||
if getattr(self.multiworld, "start_with_computer_area_maps")[self.player].value:
|
||||
if self.options.start_with_computer_area_maps.value:
|
||||
for item_id, item_dict in Items.item_table.items():
|
||||
item_episode = item_dict["episode"]
|
||||
if item_episode > 0:
|
||||
|
@ -269,7 +273,7 @@ class DOOM1993World(World):
|
|||
itempool.append(self.create_item(item_name))
|
||||
|
||||
def fill_slot_data(self) -> Dict[str, Any]:
|
||||
slot_data = {name: getattr(self.multiworld, name)[self.player].value for name in self.option_definitions}
|
||||
slot_data = self.options.as_dict("goal", "difficulty", "random_monsters", "random_pickups", "random_music", "flip_levels", "allow_death_logic", "pro", "start_with_computer_area_maps", "death_link", "reset_level_on_death", "episode1", "episode2", "episode3", "episode4")
|
||||
|
||||
# E2M6 and E3M9 each have one way keydoor. You can enter, but required the keycard to get out.
|
||||
# We used to force place the keycard behind those doors. Limiting the randomness for those items. A change
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
1. Download [APDOOM.zip](https://github.com/Daivuk/apdoom/releases) and extract it.
|
||||
2. Copy `DOOM.WAD` from your game's installation directory into the newly extracted folder.
|
||||
You can find the folder in steam by finding the game in your library,
|
||||
right-clicking it and choosing **Manage -> Browse Local Files**.
|
||||
right-clicking it and choosing **Manage -> Browse Local Files**. The WAD file is in the `/base/` folder.
|
||||
|
||||
## Joining a MultiWorld Game
|
||||
|
||||
|
|
Loading…
Reference in New Issue