From 01be6c284c5bd96573850eeb5c6d63a86402f736 Mon Sep 17 00:00:00 2001 From: Fly Sniper Date: Sun, 1 Sep 2024 22:31:29 -0400 Subject: [PATCH 001/212] Wargroove 2: Options for Multiple Locations per Check --- worlds/wargroove2/Levels.py | 24 ++- worlds/wargroove2/Locations.py | 337 +++++++++++++++++++++++++++++++++ worlds/wargroove2/Options.py | 18 ++ worlds/wargroove2/Presets.py | 4 + worlds/wargroove2/__init__.py | 16 +- worlds/wargroove2/client.py | 22 ++- 6 files changed, 414 insertions(+), 7 deletions(-) diff --git a/worlds/wargroove2/Levels.py b/worlds/wargroove2/Levels.py index 0e1e25c5ae1e..74be78c89412 100644 --- a/worlds/wargroove2/Levels.py +++ b/worlds/wargroove2/Levels.py @@ -59,6 +59,15 @@ def define_access_rules(self, multiworld: MultiWorld, additional_rule=lambda sta for location_name, rule in self.location_rules.items(): set_rule(multiworld.get_location(location_name, self.player), lambda state, rule=rule: state.can_reach(self.region, 'Region', self.player) and rule(state) and additional_rule(state)) + loc_id = location_table.get(location_name, 0) + extras = 1 + if loc_id is not None and location_name.endswith("Victory"): + extras = multiworld.worlds[self.player].options.victory_locations.value + elif loc_id is not None: + extras = multiworld.worlds[self.player].options.objective_locations.value + for i in range(1, extras): + set_rule(multiworld.get_location(location_name + f" Extra {i}", self.player), lambda state, rule=rule: + state.can_reach(self.region, 'Region', self.player) and rule(state) and additional_rule(state)) set_region_exit_rules(self.region, multiworld, self.player, self.victory_locations, operator='and') def define_region(self, name: str, multiworld: MultiWorld, exits=None) -> Region: @@ -66,8 +75,19 @@ def define_region(self, name: str, multiworld: MultiWorld, exits=None) -> Region if self.location_rules.keys(): for location in self.location_rules.keys(): loc_id = location_table.get(location, 0) - location = Wargroove2Location(self.player, location, loc_id, self.region) - self.region.locations.append(location) + wg2_location = Wargroove2Location(self.player, location, loc_id, self.region) + self.region.locations.append(wg2_location) + extras = 1 + if loc_id is not None and location.endswith("Victory"): + extras = multiworld.worlds[self.player].options.victory_locations.value + elif loc_id is not None: + extras = multiworld.worlds[self.player].options.objective_locations.value + for i in range(1, extras): + extra_location = location + f" Extra {i}" + loc_id = location_table.get(extra_location, 0) + wg2_location = Wargroove2Location(self.player, extra_location, loc_id, self.region) + self.region.locations.append(wg2_location) + if exits: for exit in exits: self.region.exits.append(Entrance(self.player, f"{name} exits to {exit}", self.region)) diff --git a/worlds/wargroove2/Locations.py b/worlds/wargroove2/Locations.py index 2ed1ec4a156d..2b2e566361fa 100644 --- a/worlds/wargroove2/Locations.py +++ b/worlds/wargroove2/Locations.py @@ -103,6 +103,343 @@ "Split Valley: Longshot": 253371, "Split Valley: Ranged Trinity": 253372, ######################################################### + "Humble Beginnings Rebirth: Talk to Nadia Extra 1": 260000, + "Humble Beginnings Rebirth: Talk to Nadia Extra 2": 260001, + "Humble Beginnings Rebirth: Talk to Nadia Extra 3": 260002, + "Humble Beginnings Rebirth: Talk to Nadia Extra 4": 260003, + "Humble Beginnings Rebirth: Victory Extra 1": 260004, + "Humble Beginnings Rebirth: Victory Extra 2": 260005, + "Humble Beginnings Rebirth: Victory Extra 3": 260006, + "Humble Beginnings Rebirth: Victory Extra 4": 260007, + "Humble Beginnings Rebirth: Good Dog Extra 1": 260008, + "Humble Beginnings Rebirth: Good Dog Extra 2": 260009, + "Humble Beginnings Rebirth: Good Dog Extra 3": 260010, + "Humble Beginnings Rebirth: Good Dog Extra 4": 260011, + "Nuru's Vengeance: Victory Extra 1": 260012, + "Nuru's Vengeance: Victory Extra 2": 260013, + "Nuru's Vengeance: Victory Extra 3": 260014, + "Nuru's Vengeance: Victory Extra 4": 260015, + "Nuru's Vengeance: Spearman Destroys the Gate Extra 1": 260016, + "Nuru's Vengeance: Spearman Destroys the Gate Extra 2": 260017, + "Nuru's Vengeance: Spearman Destroys the Gate Extra 3": 260018, + "Nuru's Vengeance: Spearman Destroys the Gate Extra 4": 260019, + "Nuru's Vengeance: Defeat all Dogs Extra 1": 260020, + "Nuru's Vengeance: Defeat all Dogs Extra 2": 260021, + "Nuru's Vengeance: Defeat all Dogs Extra 3": 260022, + "Nuru's Vengeance: Defeat all Dogs Extra 4": 260023, + "Cherrystone Landing: Smacked a Trebuchet Extra 1": 260024, + "Cherrystone Landing: Smacked a Trebuchet Extra 2": 260025, + "Cherrystone Landing: Smacked a Trebuchet Extra 3": 260026, + "Cherrystone Landing: Smacked a Trebuchet Extra 4": 260027, + "Cherrystone Landing: Smacked a Fortified Village Extra 1": 260028, + "Cherrystone Landing: Smacked a Fortified Village Extra 2": 260029, + "Cherrystone Landing: Smacked a Fortified Village Extra 3": 260030, + "Cherrystone Landing: Smacked a Fortified Village Extra 4": 260031, + "Cherrystone Landing: Victory Extra 1": 260032, + "Cherrystone Landing: Victory Extra 2": 260033, + "Cherrystone Landing: Victory Extra 3": 260034, + "Cherrystone Landing: Victory Extra 4": 260035, + "Den-Two-Away: Victory Extra 1": 260036, + "Den-Two-Away: Victory Extra 2": 260037, + "Den-Two-Away: Victory Extra 3": 260038, + "Den-Two-Away: Victory Extra 4": 260039, + "Den-Two-Away: Commander Captures the Lumbermill Extra 1": 260040, + "Den-Two-Away: Commander Captures the Lumbermill Extra 2": 260041, + "Den-Two-Away: Commander Captures the Lumbermill Extra 3": 260042, + "Den-Two-Away: Commander Captures the Lumbermill Extra 4": 260043, + "Skydiving: Victory Extra 1": 260044, + "Skydiving: Victory Extra 2": 260045, + "Skydiving: Victory Extra 3": 260046, + "Skydiving: Victory Extra 4": 260047, + "Skydiving: Dragon Defeats Stronghold Extra 1": 260048, + "Skydiving: Dragon Defeats Stronghold Extra 2": 260049, + "Skydiving: Dragon Defeats Stronghold Extra 3": 260050, + "Skydiving: Dragon Defeats Stronghold Extra 4": 260051, + "Terrible Tributaries: Victory Extra 1": 260052, + "Terrible Tributaries: Victory Extra 2": 260053, + "Terrible Tributaries: Victory Extra 3": 260054, + "Terrible Tributaries: Victory Extra 4": 260055, + "Terrible Tributaries: Swimming Knights Extra 1": 260056, + "Terrible Tributaries: Swimming Knights Extra 2": 260057, + "Terrible Tributaries: Swimming Knights Extra 3": 260058, + "Terrible Tributaries: Swimming Knights Extra 4": 260059, + "Terrible Tributaries: Steal Code Names Extra 1": 260060, + "Terrible Tributaries: Steal Code Names Extra 2": 260061, + "Terrible Tributaries: Steal Code Names Extra 3": 260062, + "Terrible Tributaries: Steal Code Names Extra 4": 260063, + "Beached: Victory Extra 1": 260064, + "Beached: Victory Extra 2": 260065, + "Beached: Victory Extra 3": 260066, + "Beached: Victory Extra 4": 260067, + "Beached: Turtle Power Extra 1": 260068, + "Beached: Turtle Power Extra 2": 260069, + "Beached: Turtle Power Extra 3": 260070, + "Beached: Turtle Power Extra 4": 260071, + "Beached: Happy Turtle Extra 1": 260072, + "Beached: Happy Turtle Extra 2": 260073, + "Beached: Happy Turtle Extra 3": 260074, + "Beached: Happy Turtle Extra 4": 260075, + "Riflemen Blockade: Victory Extra 1": 260076, + "Riflemen Blockade: Victory Extra 2": 260077, + "Riflemen Blockade: Victory Extra 3": 260078, + "Riflemen Blockade: Victory Extra 4": 260079, + "Riflemen Blockade: From the Mountains Extra 1": 260080, + "Riflemen Blockade: From the Mountains Extra 2": 260081, + "Riflemen Blockade: From the Mountains Extra 3": 260082, + "Riflemen Blockade: From the Mountains Extra 4": 260083, + "Riflemen Blockade: To the Road Extra 1": 260084, + "Riflemen Blockade: To the Road Extra 2": 260085, + "Riflemen Blockade: To the Road Extra 3": 260086, + "Riflemen Blockade: To the Road Extra 4": 260087, + "Wagon Freeway: Victory Extra 1": 260088, + "Wagon Freeway: Victory Extra 2": 260089, + "Wagon Freeway: Victory Extra 3": 260090, + "Wagon Freeway: Victory Extra 4": 260091, + "Wagon Freeway: All Mine Now Extra 1": 260092, + "Wagon Freeway: All Mine Now Extra 2": 260093, + "Wagon Freeway: All Mine Now Extra 3": 260094, + "Wagon Freeway: All Mine Now Extra 4": 260095, + "Wagon Freeway: Pigeon Carrier Extra 1": 260096, + "Wagon Freeway: Pigeon Carrier Extra 2": 260097, + "Wagon Freeway: Pigeon Carrier Extra 3": 260098, + "Wagon Freeway: Pigeon Carrier Extra 4": 260099, + "Kraken Strait: Victory Extra 1": 260100, + "Kraken Strait: Victory Extra 2": 260101, + "Kraken Strait: Victory Extra 3": 260102, + "Kraken Strait: Victory Extra 4": 260103, + "Kraken Strait: Well Defended Extra 1": 260104, + "Kraken Strait: Well Defended Extra 2": 260105, + "Kraken Strait: Well Defended Extra 3": 260106, + "Kraken Strait: Well Defended Extra 4": 260107, + "Kraken Strait: Clipped Wings Extra 1": 260108, + "Kraken Strait: Clipped Wings Extra 2": 260109, + "Kraken Strait: Clipped Wings Extra 3": 260110, + "Kraken Strait: Clipped Wings Extra 4": 260111, + "A Ribbitting Time: Victory Extra 1": 260112, + "A Ribbitting Time: Victory Extra 2": 260113, + "A Ribbitting Time: Victory Extra 3": 260114, + "A Ribbitting Time: Victory Extra 4": 260115, + "A Ribbitting Time: Leap Frog Extra 1": 260116, + "A Ribbitting Time: Leap Frog Extra 2": 260117, + "A Ribbitting Time: Leap Frog Extra 3": 260118, + "A Ribbitting Time: Leap Frog Extra 4": 260119, + "A Ribbitting Time: Frogway Robbery Extra 1": 260120, + "A Ribbitting Time: Frogway Robbery Extra 2": 260121, + "A Ribbitting Time: Frogway Robbery Extra 3": 260122, + "A Ribbitting Time: Frogway Robbery Extra 4": 260123, + "Precarious Cliffs: Victory Extra 1": 260124, + "Precarious Cliffs: Victory Extra 2": 260125, + "Precarious Cliffs: Victory Extra 3": 260126, + "Precarious Cliffs: Victory Extra 4": 260127, + "Precarious Cliffs: No Crit for You Extra 1": 260128, + "Precarious Cliffs: No Crit for You Extra 2": 260129, + "Precarious Cliffs: No Crit for You Extra 3": 260130, + "Precarious Cliffs: No Crit for You Extra 4": 260131, + "Precarious Cliffs: Out Ranged Extra 1": 260132, + "Precarious Cliffs: Out Ranged Extra 2": 260133, + "Precarious Cliffs: Out Ranged Extra 3": 260134, + "Precarious Cliffs: Out Ranged Extra 4": 260135, + "Grand Theft Village: Victory Extra 1": 260136, + "Grand Theft Village: Victory Extra 2": 260137, + "Grand Theft Village: Victory Extra 3": 260138, + "Grand Theft Village: Victory Extra 4": 260139, + "Grand Theft Village: Stand Tall Extra 1": 260140, + "Grand Theft Village: Stand Tall Extra 2": 260141, + "Grand Theft Village: Stand Tall Extra 3": 260142, + "Grand Theft Village: Stand Tall Extra 4": 260143, + "Grand Theft Village: Pillager Extra 1": 260144, + "Grand Theft Village: Pillager Extra 2": 260145, + "Grand Theft Village: Pillager Extra 3": 260146, + "Grand Theft Village: Pillager Extra 4": 260147, + "Bridge Brigade: Victory Extra 1": 260148, + "Bridge Brigade: Victory Extra 2": 260149, + "Bridge Brigade: Victory Extra 3": 260150, + "Bridge Brigade: Victory Extra 4": 260151, + "Bridge Brigade: From the Depths Extra 1": 260152, + "Bridge Brigade: From the Depths Extra 2": 260153, + "Bridge Brigade: From the Depths Extra 3": 260154, + "Bridge Brigade: From the Depths Extra 4": 260155, + "Bridge Brigade: Back to the Depths Extra 1": 260156, + "Bridge Brigade: Back to the Depths Extra 2": 260157, + "Bridge Brigade: Back to the Depths Extra 3": 260158, + "Bridge Brigade: Back to the Depths Extra 4": 260159, + "Slippery Bridge: Victory Extra 1": 260160, + "Slippery Bridge: Victory Extra 2": 260161, + "Slippery Bridge: Victory Extra 3": 260162, + "Slippery Bridge: Victory Extra 4": 260163, + "Slippery Bridge: Control all Sea Villages Extra 1": 260164, + "Slippery Bridge: Control all Sea Villages Extra 2": 260165, + "Slippery Bridge: Control all Sea Villages Extra 3": 260166, + "Slippery Bridge: Control all Sea Villages Extra 4": 260167, + "Spire Fire: Victory Extra 1": 260168, + "Spire Fire: Victory Extra 2": 260169, + "Spire Fire: Victory Extra 3": 260170, + "Spire Fire: Victory Extra 4": 260171, + "Spire Fire: Kill Enemy Sky Rider Extra 1": 260172, + "Spire Fire: Kill Enemy Sky Rider Extra 2": 260173, + "Spire Fire: Kill Enemy Sky Rider Extra 3": 260174, + "Spire Fire: Kill Enemy Sky Rider Extra 4": 260175, + "Spire Fire: Win without losing your Dragon Extra 1": 260176, + "Spire Fire: Win without losing your Dragon Extra 2": 260177, + "Spire Fire: Win without losing your Dragon Extra 3": 260178, + "Spire Fire: Win without losing your Dragon Extra 4": 260179, + "Sunken Forest: Victory Extra 1": 260180, + "Sunken Forest: Victory Extra 2": 260181, + "Sunken Forest: Victory Extra 3": 260182, + "Sunken Forest: Victory Extra 4": 260183, + "Sunken Forest: High Ground Extra 1": 260184, + "Sunken Forest: High Ground Extra 2": 260185, + "Sunken Forest: High Ground Extra 3": 260186, + "Sunken Forest: High Ground Extra 4": 260187, + "Sunken Forest: Coastal Siege Extra 1": 260188, + "Sunken Forest: Coastal Siege Extra 2": 260189, + "Sunken Forest: Coastal Siege Extra 3": 260190, + "Sunken Forest: Coastal Siege Extra 4": 260191, + "Tenri's Mistake: Victory Extra 1": 260192, + "Tenri's Mistake: Victory Extra 2": 260193, + "Tenri's Mistake: Victory Extra 3": 260194, + "Tenri's Mistake: Victory Extra 4": 260195, + "Tenri's Mistake: Mighty Barracks Extra 1": 260196, + "Tenri's Mistake: Mighty Barracks Extra 2": 260197, + "Tenri's Mistake: Mighty Barracks Extra 3": 260198, + "Tenri's Mistake: Mighty Barracks Extra 4": 260199, + "Tenri's Mistake: Commander Arrives Extra 1": 260200, + "Tenri's Mistake: Commander Arrives Extra 2": 260201, + "Tenri's Mistake: Commander Arrives Extra 3": 260202, + "Tenri's Mistake: Commander Arrives Extra 4": 260203, + "Enmity Cliffs: Victory Extra 1": 260204, + "Enmity Cliffs: Victory Extra 2": 260205, + "Enmity Cliffs: Victory Extra 3": 260206, + "Enmity Cliffs: Victory Extra 4": 260207, + "Enmity Cliffs: Spear Flood Extra 1": 260208, + "Enmity Cliffs: Spear Flood Extra 2": 260209, + "Enmity Cliffs: Spear Flood Extra 3": 260210, + "Enmity Cliffs: Spear Flood Extra 4": 260211, + "Enmity Cliffs: Across the Gap Extra 1": 260212, + "Enmity Cliffs: Across the Gap Extra 2": 260213, + "Enmity Cliffs: Across the Gap Extra 3": 260214, + "Enmity Cliffs: Across the Gap Extra 4": 260215, + "Portal Peril: Victory Extra 1": 260216, + "Portal Peril: Victory Extra 2": 260217, + "Portal Peril: Victory Extra 3": 260218, + "Portal Peril: Victory Extra 4": 260219, + "Portal Peril: Unleash the Hounds Extra 1": 260220, + "Portal Peril: Unleash the Hounds Extra 2": 260221, + "Portal Peril: Unleash the Hounds Extra 3": 260222, + "Portal Peril: Unleash the Hounds Extra 4": 260223, + "Portal Peril: Overcharged Extra 1": 260224, + "Portal Peril: Overcharged Extra 2": 260225, + "Portal Peril: Overcharged Extra 3": 260226, + "Portal Peril: Overcharged Extra 4": 260227, + "Towers of the Abyss: Victory Extra 1": 260228, + "Towers of the Abyss: Victory Extra 2": 260229, + "Towers of the Abyss: Victory Extra 3": 260230, + "Towers of the Abyss: Victory Extra 4": 260231, + "Towers of the Abyss: Siege Master Extra 1": 260232, + "Towers of the Abyss: Siege Master Extra 2": 260233, + "Towers of the Abyss: Siege Master Extra 3": 260234, + "Towers of the Abyss: Siege Master Extra 4": 260235, + "Towers of the Abyss: Perfect Defense Extra 1": 260236, + "Towers of the Abyss: Perfect Defense Extra 2": 260237, + "Towers of the Abyss: Perfect Defense Extra 3": 260238, + "Towers of the Abyss: Perfect Defense Extra 4": 260239, + "Gnarled Mountaintop: Victory Extra 1": 260240, + "Gnarled Mountaintop: Victory Extra 2": 260241, + "Gnarled Mountaintop: Victory Extra 3": 260242, + "Gnarled Mountaintop: Victory Extra 4": 260243, + "Gnarled Mountaintop: Watch the Watchtower Extra 1": 260244, + "Gnarled Mountaintop: Watch the Watchtower Extra 2": 260245, + "Gnarled Mountaintop: Watch the Watchtower Extra 3": 260246, + "Gnarled Mountaintop: Watch the Watchtower Extra 4": 260247, + "Gnarled Mountaintop: Vine Skip Extra 1": 260248, + "Gnarled Mountaintop: Vine Skip Extra 2": 260249, + "Gnarled Mountaintop: Vine Skip Extra 3": 260250, + "Gnarled Mountaintop: Vine Skip Extra 4": 260251, + "Gold Rush: Victory Extra 1": 260252, + "Gold Rush: Victory Extra 2": 260253, + "Gold Rush: Victory Extra 3": 260254, + "Gold Rush: Victory Extra 4": 260255, + "Gold Rush: Lumber Island Extra 1": 260256, + "Gold Rush: Lumber Island Extra 2": 260257, + "Gold Rush: Lumber Island Extra 3": 260258, + "Gold Rush: Lumber Island Extra 4": 260259, + "Gold Rush: Starglass Rush Extra 1": 260260, + "Gold Rush: Starglass Rush Extra 2": 260261, + "Gold Rush: Starglass Rush Extra 3": 260262, + "Gold Rush: Starglass Rush Extra 4": 260263, + "Finishing Blow: Victory Extra 1": 260264, + "Finishing Blow: Victory Extra 2": 260265, + "Finishing Blow: Victory Extra 3": 260266, + "Finishing Blow: Victory Extra 4": 260267, + "Finishing Blow: Mass Destruction Extra 1": 260268, + "Finishing Blow: Mass Destruction Extra 2": 260269, + "Finishing Blow: Mass Destruction Extra 3": 260270, + "Finishing Blow: Mass Destruction Extra 4": 260271, + "Finishing Blow: Defortification Extra 1": 260272, + "Finishing Blow: Defortification Extra 2": 260273, + "Finishing Blow: Defortification Extra 3": 260274, + "Finishing Blow: Defortification Extra 4": 260275, + "Frantic Inlet: Victory Extra 1": 260276, + "Frantic Inlet: Victory Extra 2": 260277, + "Frantic Inlet: Victory Extra 3": 260278, + "Frantic Inlet: Victory Extra 4": 260279, + "Frantic Inlet: Plug the Gap Extra 1": 260280, + "Frantic Inlet: Plug the Gap Extra 2": 260281, + "Frantic Inlet: Plug the Gap Extra 3": 260282, + "Frantic Inlet: Plug the Gap Extra 4": 260283, + "Frantic Inlet: Portal Detour Extra 1": 260284, + "Frantic Inlet: Portal Detour Extra 2": 260285, + "Frantic Inlet: Portal Detour Extra 3": 260286, + "Frantic Inlet: Portal Detour Extra 4": 260287, + "Operation Seagull: Victory Extra 1": 260288, + "Operation Seagull: Victory Extra 2": 260289, + "Operation Seagull: Victory Extra 3": 260290, + "Operation Seagull: Victory Extra 4": 260291, + "Operation Seagull: Crack the Crystal Extra 1": 260292, + "Operation Seagull: Crack the Crystal Extra 2": 260293, + "Operation Seagull: Crack the Crystal Extra 3": 260294, + "Operation Seagull: Crack the Crystal Extra 4": 260295, + "Operation Seagull: Counter Break Extra 1": 260296, + "Operation Seagull: Counter Break Extra 2": 260297, + "Operation Seagull: Counter Break Extra 3": 260298, + "Operation Seagull: Counter Break Extra 4": 260299, + "Air Support: Victory Extra 1": 260300, + "Air Support: Victory Extra 2": 260301, + "Air Support: Victory Extra 3": 260302, + "Air Support: Victory Extra 4": 260303, + "Air Support: Roadkill Extra 1": 260304, + "Air Support: Roadkill Extra 2": 260305, + "Air Support: Roadkill Extra 3": 260306, + "Air Support: Roadkill Extra 4": 260307, + "Air Support: Flight Economy Extra 1": 260308, + "Air Support: Flight Economy Extra 2": 260309, + "Air Support: Flight Economy Extra 3": 260310, + "Air Support: Flight Economy Extra 4": 260311, + "Fortification: Victory Extra 1": 260312, + "Fortification: Victory Extra 2": 260313, + "Fortification: Victory Extra 3": 260314, + "Fortification: Victory Extra 4": 260315, + "Fortification: Hyper Repair Extra 1": 260316, + "Fortification: Hyper Repair Extra 2": 260317, + "Fortification: Hyper Repair Extra 3": 260318, + "Fortification: Hyper Repair Extra 4": 260319, + "Fortification: Defensive Artillery Extra 1": 260320, + "Fortification: Defensive Artillery Extra 2": 260321, + "Fortification: Defensive Artillery Extra 3": 260322, + "Fortification: Defensive Artillery Extra 4": 260323, + "Split Valley: Victory Extra 1": 260324, + "Split Valley: Victory Extra 2": 260325, + "Split Valley: Victory Extra 3": 260326, + "Split Valley: Victory Extra 4": 260327, + "Split Valley: Longshot Extra 1": 260328, + "Split Valley: Longshot Extra 2": 260329, + "Split Valley: Longshot Extra 3": 260330, + "Split Valley: Longshot Extra 4": 260331, + "Split Valley: Ranged Trinity Extra 1": 260332, + "Split Valley: Ranged Trinity Extra 2": 260333, + "Split Valley: Ranged Trinity Extra 3": 260334, + "Split Valley: Ranged Trinity Extra 4": 260335, + ######################################################### "Disastrous Crossing: Victory": None, "Dark Mirror: Victory": None, "Doomed Metropolis: Victory": None, diff --git a/worlds/wargroove2/Options.py b/worlds/wargroove2/Options.py index f17ab2fbbecf..bc1543255d57 100644 --- a/worlds/wargroove2/Options.py +++ b/worlds/wargroove2/Options.py @@ -4,6 +4,22 @@ from Options import Choice, Range, DeathLink, PerGameCommonOptions, StartInventoryPool +class VictoryLocations(Range): + """How many checks are sent per level completed.""" + display_name = "Victory Locations" + range_start = 1 + range_end = 5 + default = 2 + + +class ObjectiveLocations(Range): + """How many checks are sent per level completed.""" + display_name = "Objective Locations" + range_start = 1 + range_end = 5 + default = 1 + + class IncomeBoost(Range): """How much extra income the player gets per turn per boost received.""" display_name = "Income Boost" @@ -58,6 +74,8 @@ class FinalLevels(Range): @dataclass class Wargroove2Options(PerGameCommonOptions): + victory_locations: VictoryLocations + objective_locations: ObjectiveLocations income_boost: IncomeBoost commander_defense_boost: CommanderDefenseBoost groove_boost: GrooveBoost diff --git a/worlds/wargroove2/Presets.py b/worlds/wargroove2/Presets.py index bbff1bb60700..42fad1bd8944 100644 --- a/worlds/wargroove2/Presets.py +++ b/worlds/wargroove2/Presets.py @@ -4,6 +4,8 @@ wargroove2_option_presets: Dict[str, Dict[str, Any]] = { "Easy": { + "victory_locations": 3, + "objective_locations": 2, "income_boost": 50, "commander_defense_boost": 5, "groove_boost": 10, @@ -13,6 +15,8 @@ }, "Hard": { + "victory_locations": 2, + "objective_locations": 1, "income_boost": 0, "commander_defense_boost": 0, "groove_boost": 0, diff --git a/worlds/wargroove2/__init__.py b/worlds/wargroove2/__init__.py index ec1704bb4288..3d2bdc0af42f 100644 --- a/worlds/wargroove2/__init__.py +++ b/worlds/wargroove2/__init__.py @@ -71,6 +71,8 @@ def _get_slot_data(self) -> typing.Dict[str, typing.Any]: return { 'seed': "".join( self.random.choice(string.ascii_letters) for _ in range(16)), + 'victory_locations': self.options.victory_locations.value, + 'objective_locations': self.options.objective_locations.value, 'income_boost': self.options.income_boost.value, 'commander_defense_boost': self.options.commander_defense_boost.value, 'starting_groove_multiplier': self.options.groove_boost.value, @@ -133,9 +135,10 @@ def create_items(self) -> None: pool.append(Wargroove2Item("Income Boost", self.player)) # Matching number of unfilled locations with filler items - total_locations = len(self.first_level.location_rules.keys()) + total_locations = 0 + total_locations += self.get_total_locations_in_level(self.first_level) for level in self.level_list[0:LEVEL_COUNT]: - total_locations += len(level.location_rules.keys()) + total_locations += self.get_total_locations_in_level(level) locations_remaining = total_locations - len(pool) while locations_remaining > 0: # Filling the pool equally with the groove boost @@ -192,3 +195,12 @@ def fill_slot_data(self) -> typing.Dict[str, typing.Any]: def get_filler_item_name(self) -> str: return "Groove Boost" + + def get_total_locations_in_level(self, level: Wargroove2Level): + total_locations = 0 + for location_name in level.location_rules.keys(): + if location_name.endswith("Victory"): + total_locations += self.options.victory_locations + else: + total_locations += self.options.objective_locations + return total_locations diff --git a/worlds/wargroove2/client.py b/worlds/wargroove2/client.py index fb4cc4befe45..514957af192e 100644 --- a/worlds/wargroove2/client.py +++ b/worlds/wargroove2/client.py @@ -16,7 +16,7 @@ import ModuleUpdate from worlds.wargroove2.Levels import LEVEL_COUNT, FINAL_LEVEL_COUNT, region_names, get_level_table, FINAL_LEVEL_1, \ FINAL_LEVEL_2, FINAL_LEVEL_3, FINAL_LEVEL_4, get_final_levels -from worlds.wargroove2.Locations import location_table +from worlds.wargroove2.Locations import location_table, location_id_name from worlds.wargroove2.RegionFilter import Wargroove2LogicFilter ModuleUpdate.update() @@ -65,6 +65,9 @@ class Wargroove2Context(CommonContext): commander_defense_boost_multiplier: int = 0 income_boost_multiplier: int = 0 starting_groove_multiplier: int = 0 + victory_locations: int = 1 + objective_locations: int = 1 + has_death_link: bool = False has_death_link: bool = False final_levels: int = 1 level_shuffle_seed: int = 0 @@ -181,6 +184,9 @@ def remove_communication_files(self): def on_package(self, cmd: str, args: dict): if cmd in {"Connected"}: self.slot_data = args["slot_data"] + self.victory_locations = self.slot_data["victory_locations"] + self.objective_locations = self.slot_data["objective_locations"] + self.has_death_link = self.slot_data["death_link"] self.has_death_link = self.slot_data["death_link"] self.final_levels = self.slot_data["final_levels"] self.level_shuffle_seed = self.slot_data["level_shuffle_seed"] @@ -661,8 +667,18 @@ async def game_watcher(ctx: Wargroove2Context): for root, dirs, files in os.walk(ctx.game_communication_path): for file in files: if file.find("send") > -1: - st = file.split("send", -1)[1] - sending = sending + [(int(st))] + st = int(file.split("send", -1)[1]) + loc_name = location_id_name[st] + extras = 1 + if loc_name is not None and loc_name.endswith("Victory"): + extras = ctx.victory_locations + elif loc_name is not None and \ + st < location_table["Humble Beginnings Rebirth: Talk to Nadia Extra 1"]: + extras = ctx.objective_locations + for i in range(1, extras): + sending = sending + [location_table[loc_name + f" Extra {i}"]] + sending = sending + [st] + os.remove(os.path.join(ctx.game_communication_path, file)) if file == "deathLinkSend" and ctx.has_death_link: with open(os.path.join(ctx.game_communication_path, file), 'r') as f: From 618e39e6245ddc5fe470a436ffe29a4df8278d29 Mon Sep 17 00:00:00 2001 From: Fly Sniper Date: Thu, 5 Sep 2024 11:52:29 -0400 Subject: [PATCH 002/212] Wargroove 2: 1.1 working with the new PR changes. --- worlds/wargroove2/Levels.py | 10 +++++----- worlds/wargroove2/__init__.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/worlds/wargroove2/Levels.py b/worlds/wargroove2/Levels.py index 596d5ac484b6..f0ad6acbb375 100644 --- a/worlds/wargroove2/Levels.py +++ b/worlds/wargroove2/Levels.py @@ -63,14 +63,14 @@ def define_access_rules(self, world: "Wargroove2World", player: int, additional_ loc_id = location_table.get(location_name, 0) extras = 1 if loc_id is not None and location_name.endswith("Victory"): - extras = world.worlds[player].options.victory_locations.value + extras = world.options.victory_locations.value elif loc_id is not None: - extras = world.worlds[player].options.objective_locations.value + extras = world.options.objective_locations.value for i in range(1, extras): - set_rule(world.get_location(location_name + f" Extra {i}", player), lambda state, rule=rule: - state.can_reach_region(self.region_name, player) and rule(state)() and additional_rule(state)) + set_rule(world.get_location(location_name + f" Extra {i}"), lambda state, rule=rule: + state.can_reach_region(self.region_name, player) and rule(state, player)() and additional_rule(state)) region = world.get_region(self.region_name) - set_region_exit_rules(region, world, player, self.victory_locations, operator='and') + set_region_exit_rules(region, world, self.victory_locations, operator='and') def define_region(self, name: str, multiworld: MultiWorld, player: int, exits=None) -> Region: self.region_name = name diff --git a/worlds/wargroove2/__init__.py b/worlds/wargroove2/__init__.py index 18d615885305..5bd8911713d6 100644 --- a/worlds/wargroove2/__init__.py +++ b/worlds/wargroove2/__init__.py @@ -114,7 +114,7 @@ def create_items(self) -> None: # Matching number of unfilled locations with filler items total_locations = 0 - total_locations += self.get_total_locations_in_level(self.first_level) + total_locations += self.get_total_locations_in_level(first_level) for level in self.level_list[0:LEVEL_COUNT]: total_locations += self.get_total_locations_in_level(level) From 456bc481a35a37bc47a15366d1ae9a4f025fe95e Mon Sep 17 00:00:00 2001 From: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Date: Thu, 5 Sep 2024 21:16:44 +0200 Subject: [PATCH 003/212] Docs: Specify process for adding a world maintainer to an existing world (#3884) * Docs: Specify process for adding a world maintainer to an existing world * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Update world maintainer.md * Rewrite by BadMagic * Update docs/world maintainer.md Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- docs/world maintainer.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/world maintainer.md b/docs/world maintainer.md index 15fa46a1efcd..624bfa4055d4 100644 --- a/docs/world maintainer.md +++ b/docs/world maintainer.md @@ -26,8 +26,17 @@ Unless these are shared between multiple people, we expect the following from ea ### Adding a World When we merge your world into the core Archipelago repository, you automatically become world maintainer unless you -nominate someone else (i.e. there are multiple devs). You can define who is allowed to approve changes to your world -in the [CODEOWNERS](/docs/CODEOWNERS) document. +nominate someone else (i.e. there are multiple devs). + +### Being added as a maintainer to an existing implementation + +At any point, a world maintainer can approve the addition of another maintainer to their world. +In order to do this, either an existing maintainer or the new maintainer must open a PR updating the +[CODEOWNERS](/docs/CODEOWNERS) file. +This change must be approved by all existing maintainers of the affected world, the new maintainer candidate, and +one core maintainer. +To help the core team review the change, information about the new maintainer and their contributions should be +included in the PR description. ### Getting Voted From 7e03a876085c8a2e3f76192634bc2bafcb632406 Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Thu, 5 Sep 2024 15:18:58 -0400 Subject: [PATCH 004/212] DOCS: Option Visibility and removing SpecialRange (#3889) * Update options api.md * Update options api.md * Update docs/options api.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> --------- Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> --- docs/options api.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/options api.md b/docs/options api.md index 7e479809ee6a..d48a56d6c76d 100644 --- a/docs/options api.md +++ b/docs/options api.md @@ -24,7 +24,7 @@ display as `Value1` on the webhost. files, and both will resolve as `value1`. This should be used when changing options around, i.e. changing a Toggle to a Choice, and defining `alias_true = option_full`. - All options with a fixed set of possible values (i.e. those which inherit from `Toggle`, `(Text)Choice` or -`(Named/Special)Range`) support `random` as a generic option. `random` chooses from any of the available values for that +`(Named)Range`) support `random` as a generic option. `random` chooses from any of the available values for that option, and is reserved by AP. You can set this as your default value, but you cannot define your own `option_random`. However, you can override `from_text` and handle `text == "random"` to customize its behavior or implement it for additional option types. @@ -129,6 +129,23 @@ class Difficulty(Choice): default = 1 ``` +### Option Visibility +Every option has a Visibility IntFlag, defaulting to `all` (`0b1111`). This lets you choose where the option will be +displayed. This only impacts where options are displayed, not how they can be used. Hidden options are still valid +options in a yaml. The flags are as follows: +* `none` (`0b0000`): This option is not shown anywhere +* `template` (`0b0001`): This option shows up in template yamls +* `simple_ui` (`0b0010`): This option shows up on the options page +* `complex_ui` (`0b0100`): This option shows up on the advanced/weighted options page +* `spoiler` (`0b1000`): This option shows up in spoiler logs + +```python +from Options import Choice, Visibility + +class HiddenChoiceOption(Choice): + visibility = Visibility.none +``` + ### Option Groups Options may be categorized into groups for display on the WebHost. Option groups are displayed in the order specified by your world on the player-options and weighted-options pages. In the generated template files, there will be a comment From e984583e5e22725e33cc962494ad86f95304de39 Mon Sep 17 00:00:00 2001 From: qwint Date: Thu, 5 Sep 2024 14:19:37 -0500 Subject: [PATCH 005/212] HK: speed up collect (a bit) (#3886) * speed up collect, will be obsolete after #3786 * vi's a meanie --- worlds/hk/__init__.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index cbb909606127..860243ee952e 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -601,11 +601,11 @@ def collect(self, state, item: HKItem) -> bool: if change: for effect_name, effect_value in item_effects.get(item.name, {}).items(): state.prog_items[item.player][effect_name] += effect_value - if item.name in {"Left_Mothwing_Cloak", "Right_Mothwing_Cloak"}: - if state.prog_items[item.player].get('RIGHTDASH', 0) and \ - state.prog_items[item.player].get('LEFTDASH', 0): - (state.prog_items[item.player]["RIGHTDASH"], state.prog_items[item.player]["LEFTDASH"]) = \ - ([max(state.prog_items[item.player]["RIGHTDASH"], state.prog_items[item.player]["LEFTDASH"])] * 2) + if item.name in {"Left_Mothwing_Cloak", "Right_Mothwing_Cloak"}: + if state.prog_items[item.player].get('RIGHTDASH', 0) and \ + state.prog_items[item.player].get('LEFTDASH', 0): + (state.prog_items[item.player]["RIGHTDASH"], state.prog_items[item.player]["LEFTDASH"]) = \ + ([max(state.prog_items[item.player]["RIGHTDASH"], state.prog_items[item.player]["LEFTDASH"])] * 2) return change def remove(self, state, item: HKItem) -> bool: From f9fc6944d3a77c8c8c79d20ec16e9385b70cfa8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dana=C3=ABl=20V=2E?= <104455676+ReverM@users.noreply.github.com> Date: Thu, 5 Sep 2024 16:55:19 -0400 Subject: [PATCH 006/212] Docs: Removing #archipelago-dev from places (#3876) * Cleaning up (#4) Cleanup * Changed channel name * Changed channel name * Update docs/world maintainer.md * Update docs/world maintainer.md --- WebHostLib/static/assets/faq/faq_en.md | 2 +- docs/running from source.md | 2 +- docs/world maintainer.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/WebHostLib/static/assets/faq/faq_en.md b/WebHostLib/static/assets/faq/faq_en.md index fb1ccd2d6f4a..e64535b42d03 100644 --- a/WebHostLib/static/assets/faq/faq_en.md +++ b/WebHostLib/static/assets/faq/faq_en.md @@ -77,4 +77,4 @@ There, you will find examples of games in the `worlds` folder: You may also find developer documentation in the `docs` folder: [/docs Folder in Archipelago Code](https://github.com/ArchipelagoMW/Archipelago/tree/main/docs). -If you have more questions, feel free to ask in the **#archipelago-dev** channel on our Discord. +If you have more questions, feel free to ask in the **#ap-world-dev** channel on our Discord. diff --git a/docs/running from source.md b/docs/running from source.md index 4bd335648d66..a161265fcb74 100644 --- a/docs/running from source.md +++ b/docs/running from source.md @@ -38,7 +38,7 @@ Recommended steps * Refer to [Windows Compilers on the python wiki](https://wiki.python.org/moin/WindowsCompilers) for details. Generally, selecting the box for "Desktop Development with C++" will provide what you need. * Build tools are not required if all modules are installed pre-compiled. Pre-compiled modules are pinned on - [Discord in #archipelago-dev](https://discord.com/channels/731205301247803413/731214280439103580/905154456377757808) + [Discord in #ap-core-dev](https://discord.com/channels/731205301247803413/731214280439103580/905154456377757808) * It is recommended to use [PyCharm IDE](https://www.jetbrains.com/pycharm/) * Run Generate.py which will prompt installation of missing modules, press enter to confirm diff --git a/docs/world maintainer.md b/docs/world maintainer.md index 624bfa4055d4..17aacdf8c269 100644 --- a/docs/world maintainer.md +++ b/docs/world maintainer.md @@ -44,7 +44,7 @@ When a world is unmaintained, the [core maintainers](https://github.com/orgs/Arc can vote for a new maintainer if there is a candidate. For a vote to pass, the majority of participating core maintainers must vote in the affirmative. The time limit is 1 week, but can end early if the majority is reached earlier. -Voting shall be conducted on Discord in #archipelago-dev. +Voting shall be conducted on Discord in #ap-core-dev. ## Dropping out @@ -60,7 +60,7 @@ for example when they become unreachable. For a vote to pass, the majority of participating core maintainers must vote in the affirmative. The time limit is 2 weeks, but can end early if the majority is reached earlier AND the world maintainer was pinged and made their case or was pinged and has been unreachable for more than 2 weeks already. -Voting shall be conducted on Discord in #archipelago-dev. Commits that are a direct result of the voting shall include +Voting shall be conducted on Discord in #ap-core-dev. Commits that are a direct result of the voting shall include date, voting members and final result in the commit message. ## Handling of Unmaintained Worlds From 691ce6a248915a7bb1b22006dddc20addd87489b Mon Sep 17 00:00:00 2001 From: Mysteryem Date: Fri, 6 Sep 2024 18:23:16 +0100 Subject: [PATCH 007/212] The Witness: Fix nondeterministic entity hunt (#3892) In `_get_next_random_batch()`, the `remaining_entities` and `remaining_entity_weights` lists were being constructed by iterating sets. This patch changes the function to iterate a sorted copy of each set instead. --- worlds/witness/entity_hunt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/witness/entity_hunt.py b/worlds/witness/entity_hunt.py index 34cf7d3d7f88..86881930c3e1 100644 --- a/worlds/witness/entity_hunt.py +++ b/worlds/witness/entity_hunt.py @@ -145,7 +145,7 @@ def _get_next_random_batch(self, amount: int, same_area_discouragement: float) - remaining_entities, remaining_entity_weights = [], [] for area, eligible_entities in self.ELIGIBLE_ENTITIES_PER_AREA.items(): - for panel in eligible_entities - self.HUNT_ENTITIES: + for panel in sorted(eligible_entities - self.HUNT_ENTITIES): remaining_entities.append(panel) remaining_entity_weights.append(allowance_per_area[area]) From cbdb4d7ce350b30c33bacb42e0e4b1374c476fa5 Mon Sep 17 00:00:00 2001 From: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Date: Fri, 6 Sep 2024 19:38:18 +0200 Subject: [PATCH 008/212] CODEOWNERS: Move OoT to "unmaintained" (#3894) https://discord.com/channels/731205301247803413/1214608557077700720/1253206955879694336 Espeon might come back, but still, this world acts as unmaintained right now, so we should make this change, and then change it back if/when he's back. @espeon65536 Just so you're aware of this change as well --- docs/CODEOWNERS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/CODEOWNERS b/docs/CODEOWNERS index cd1e859af951..28dcc6736283 100644 --- a/docs/CODEOWNERS +++ b/docs/CODEOWNERS @@ -118,9 +118,6 @@ # Noita /worlds/noita/ @ScipioWright @heinermann -# Ocarina of Time -/worlds/oot/ @espeon65536 - # Old School Runescape /worlds/osrs @digiholic @@ -230,6 +227,9 @@ # Links Awakening DX # /worlds/ladx/ +# Ocarina of Time +# /worlds/oot/ + ## Disabled Unmaintained Worlds # The following worlds in this repo are currently unmaintained and disabled as they do not work in core. If you are From d802f9652a4bc544a891748f40ad493adfd9b501 Mon Sep 17 00:00:00 2001 From: Draexzhan Date: Fri, 6 Sep 2024 14:40:21 -0400 Subject: [PATCH 009/212] Webhost: Fixed typo in userContent.html #3896 Changed "no" to "not" --- WebHostLib/templates/userContent.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebHostLib/templates/userContent.html b/WebHostLib/templates/userContent.html index 3603d4112d20..71a0f6747bc3 100644 --- a/WebHostLib/templates/userContent.html +++ b/WebHostLib/templates/userContent.html @@ -69,7 +69,7 @@

Your Seeds

{% else %} - You have no generated any seeds yet! + You have not generated any seeds yet! {% endif %} From a40744e6db904d6445f7c39c4117fb2e2096edcb Mon Sep 17 00:00:00 2001 From: Spineraks Date: Fri, 6 Sep 2024 22:50:57 +0200 Subject: [PATCH 010/212] Yacht Dice: logic fix and several other fixes (#3878) * Add the yacht dice (from other git) world to the yacht dice fork * Update .gitignore * Removed zillion because it doesn't work * Update .gitignore * added zillion again... * Now you can have 0 extra fragments * Added alt categories, also options * Added item categories * Extra categories are now working! :dog: * changed options and added exceptions * Testing if I change the generate.py * Revert "Testing if I change the generate.py" This reverts commit 7c2b3df6170dcf8d8f36a1de9fcbc9dccdec81f8. * ignore gitignore * Delete .gitignore * Update .gitignore * Update .gitignore * Update logic, added multiplicative categories * Changed difficulties * Update offline mode so that it works again * Adjusted difficulty * New version of the apworld, with 1000 as final score, always Will still need to check difficulty and weights of adding items. Website is not ready yet, so this version is not usable yet :) * Changed yaml and small bug fixes Fix when goal and max are same Options: changed chance to weight * no changes, just whitespaces * changed how logic works Now you put an array of mults and the cpu gets a couple of tries * Changed logic, tweaked a bit too * Preparation for 2.0 * logic tweak * Logic for alt categories properly now * Update setup_en.md * Update en_YachtDice.md * Improve performance of add_distributions * Formatting style * restore gitignore to APMW * Tweaked generation parameters and methods * Version 2.0.3 manual input option max score in logic always 2.0.3 faster gen * Comments and editing * Renamed setup guide * Improved create_items code * init of locations: remove self.event line * Moved setting early items to generate_early * Add my name to CODEOWNERS * Added Yacht Dice to the readme in list of games * Improve performance of Yacht Dice * newline * Improve typing * This is actually just slower lol * Update worlds/yachtdice/Items.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update Options.py * Styling * finished text whichstory option * removed roll and rollfragments; not used * import; worlds not world :) * Option groups! * ruff styling, fix * ruff format styling! * styling and capitalization of options * small comment * Cleaned up the "state_is_a_list" a little bit * RUFF :dog: * Changed filling the itempool for efficiency Now, we start with 17 extra items in the item pool, it's quite likely you need at least 17 items (~80%?). And then afterwards, we delete items if we overshoot the target of 1000, and add items if we haven't reached an achievable score of 1000 yet. Also, no need to recompute the entire logic when adding points. * :dog: * Removed plando "fix" * Changed indent of score multiplier * faster location function * Comments to docstrings * fixed making location closest to goal_score be goal_score * options format * iterate keys and values of a dict together * small optimization ListState * faster collection of categories * return arguments instead of making a list (will :dog: later) * Instead of turning it into a tuple, you can just make a tuple literal * remove .keys() * change .random and used enumerate * some readability improvements * Remove location "0", we don't use that one * Remove lookup_id_to_name entirely I for sure don't use it, and as far as I know it's not one of the mandatory functions for AP, these are item_name_to_id and location_name_to_id. * .append instead of += for single items, percentile function changed Also an extra comment for location ids. * remove ) too many * Removed sorted from category list * Hash categories (which makes it slower :( ) Maybe I messed up or misunderstood... I'll revert this right away since it is 2x slower, probably because of sorted instead of sort? * Revert "Hash categories (which makes it slower :( )" This reverts commit 34f2c1aed8c8813b2d9c58896650b82a810d3578. * temporary push: 40% faster generation test Small changes in logic make the generation 40% faster. I'll have to think about how big the changes are. I suspect they are rather limited. If this is the way to go, I'll remove the temp file and redo the YachtWeights file, I'll remove the functions there and just put the new weights here. * Add Points item category * Reverse changes of bad idea :) * ruff :dog: * Use numpy and pmf function to speed up gen Numpy has a built-in way to sum probability mass functions (pmf). This shaves of 60% of the generation time :D * Revert "Use numpy and pmf function to speed up gen" This reverts commit 9290191cb323ae92321d6c2cfcfe8c27370f439b. * Step inbetween to change the weights * Changed the weights to make it faster 135 -> 81 seconds on 100 random yamls * Adjusted max_dist, split dice_simulation function * Removed nonlocal and pass arguments instead * Change "weight-lists" to Dict[str, float] * Removed the return from ini_locations. Also added explanations to cat_weights * Choice options; dont'use .value (will ruff later) * Only put important options in slotdata * :dog: * Add Dict import * Split the cache per player, limit size to 400. * :dog: * added , because of style * Update apworld version to 2.0.6 2.0.5 is the apworld I released on github to be tested I never separately released 2.0.4. * Multiple smaller code improvements - changed names in YachtWeights so we don't need to translate them in Rules anymore - we now remember which categories are present in the game, and also put this in slotdata. This we do because only one of two categories is present in a game. If for some reason both are present (plando/getitem/startinventory), we now know which category to ignore - * :dog: ruff * Mostly minimize_extra_items improvements - Change logic, generation is now even faster (0.6s per default yaml). - Made the option 'minimize_extra_items' do a lot more, hopefully this makes the impact of Yacht Dice a little bit less, if you want that. Here's what is also does now: - you start with 2 dice and 2 rolls - there will be less locations/items at the start of you game * ruff :dog: * Removed printing options * Reworded some option descriptions * Yacht Dice: setup: change release-link to latest On the installation page, link to the latest release, instead of the page with all releases * Several fixes and changes -change apworld version -Removed the extra roll (this was not intended) -change extra_points_added to a mutable list to that it actually does something -removed variables multipliers_added and items_added -Rules, don't order by quantity, just by mean_score -Changed the weights in general to make it faster * :dog: * Revert setup to what it was (latest, without S) * remove temp weights file, shouldn't be here * Made sure that there is not too many step score multipliers. Too many step score multipliers lead to gen fails too, probably because you need many categories for them to actually help a lot. So it's hard to use them at the start of the game. --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- worlds/yachtdice/Rules.py | 2 +- worlds/yachtdice/YachtWeights.py | 3040 +++++++++--------------------- worlds/yachtdice/__init__.py | 40 +- 3 files changed, 938 insertions(+), 2144 deletions(-) diff --git a/worlds/yachtdice/Rules.py b/worlds/yachtdice/Rules.py index 1db5cebccdef..d99f5b147493 100644 --- a/worlds/yachtdice/Rules.py +++ b/worlds/yachtdice/Rules.py @@ -29,7 +29,7 @@ def mean_score(self, num_dice, num_rolls): mean_score = 0 for key, value in yacht_weights[self.name, min(8, num_dice), min(8, num_rolls)].items(): mean_score += key * value / 100000 - return mean_score * self.quantity + return mean_score class ListState: diff --git a/worlds/yachtdice/YachtWeights.py b/worlds/yachtdice/YachtWeights.py index ee387fdf212d..5f647f3420ba 100644 --- a/worlds/yachtdice/YachtWeights.py +++ b/worlds/yachtdice/YachtWeights.py @@ -17,77 +17,77 @@ ("Category Ones", 0, 7): {0: 100000}, ("Category Ones", 0, 8): {0: 100000}, ("Category Ones", 1, 0): {0: 100000}, - ("Category Ones", 1, 1): {0: 83416, 1: 16584}, - ("Category Ones", 1, 2): {0: 69346, 1: 30654}, - ("Category Ones", 1, 3): {0: 57756, 1: 42244}, - ("Category Ones", 1, 4): {0: 48709, 1: 51291}, - ("Category Ones", 1, 5): {0: 40214, 1: 59786}, + ("Category Ones", 1, 1): {0: 100000}, + ("Category Ones", 1, 2): {0: 100000}, + ("Category Ones", 1, 3): {0: 100000}, + ("Category Ones", 1, 4): {0: 100000}, + ("Category Ones", 1, 5): {0: 100000}, ("Category Ones", 1, 6): {0: 33491, 1: 66509}, ("Category Ones", 1, 7): {0: 27838, 1: 72162}, ("Category Ones", 1, 8): {0: 23094, 1: 76906}, ("Category Ones", 2, 0): {0: 100000}, - ("Category Ones", 2, 1): {0: 69715, 1: 30285}, - ("Category Ones", 2, 2): {0: 48066, 1: 51934}, - ("Category Ones", 2, 3): {0: 33544, 1: 48585, 2: 17871}, - ("Category Ones", 2, 4): {0: 23342, 1: 50092, 2: 26566}, - ("Category Ones", 2, 5): {0: 16036, 1: 48250, 2: 35714}, - ("Category Ones", 2, 6): {0: 11355, 1: 44545, 2: 44100}, - ("Category Ones", 2, 7): {0: 7812, 1: 40248, 2: 51940}, - ("Category Ones", 2, 8): {0: 5395, 1: 35484, 2: 59121}, + ("Category Ones", 2, 1): {0: 100000}, + ("Category Ones", 2, 2): {0: 100000}, + ("Category Ones", 2, 3): {0: 33544, 1: 66456}, + ("Category Ones", 2, 4): {0: 23342, 1: 76658}, + ("Category Ones", 2, 5): {0: 16036, 2: 83964}, + ("Category Ones", 2, 6): {0: 11355, 2: 88645}, + ("Category Ones", 2, 7): {0: 7812, 2: 92188}, + ("Category Ones", 2, 8): {0: 5395, 2: 94605}, ("Category Ones", 3, 0): {0: 100000}, - ("Category Ones", 3, 1): {0: 57462, 1: 42538}, - ("Category Ones", 3, 2): {0: 33327, 1: 44253, 2: 22420}, - ("Category Ones", 3, 3): {0: 19432, 1: 42237, 2: 38331}, - ("Category Ones", 3, 4): {0: 11191, 1: 36208, 2: 38606, 3: 13995}, - ("Category Ones", 3, 5): {0: 6536, 1: 28891, 2: 43130, 3: 21443}, - ("Category Ones", 3, 6): {0: 3697, 1: 22501, 2: 44196, 3: 29606}, - ("Category Ones", 3, 7): {0: 2134, 2: 60499, 3: 37367}, - ("Category Ones", 3, 8): {0: 1280, 2: 53518, 3: 45202}, + ("Category Ones", 3, 1): {0: 100000}, + ("Category Ones", 3, 2): {0: 33327, 1: 66673}, + ("Category Ones", 3, 3): {0: 19432, 2: 80568}, + ("Category Ones", 3, 4): {0: 11191, 2: 88809}, + ("Category Ones", 3, 5): {0: 35427, 2: 64573}, + ("Category Ones", 3, 6): {0: 26198, 2: 73802}, + ("Category Ones", 3, 7): {0: 18851, 3: 81149}, + ("Category Ones", 3, 8): {0: 13847, 3: 86153}, ("Category Ones", 4, 0): {0: 100000}, - ("Category Ones", 4, 1): {0: 48178, 1: 38635, 2: 13187}, - ("Category Ones", 4, 2): {0: 23349, 1: 40775, 2: 35876}, - ("Category Ones", 4, 3): {0: 11366, 1: 32547, 2: 35556, 3: 20531}, - ("Category Ones", 4, 4): {0: 5331, 1: 23241, 2: 37271, 3: 34157}, - ("Category Ones", 4, 5): {0: 2640, 2: 49872, 3: 47488}, - ("Category Ones", 4, 6): {0: 1253, 2: 39816, 3: 39298, 4: 19633}, - ("Category Ones", 4, 7): {0: 6915, 2: 24313, 3: 41680, 4: 27092}, - ("Category Ones", 4, 8): {0: 4228, 3: 61312, 4: 34460}, + ("Category Ones", 4, 1): {0: 100000}, + ("Category Ones", 4, 2): {0: 23349, 2: 76651}, + ("Category Ones", 4, 3): {0: 11366, 2: 88634}, + ("Category Ones", 4, 4): {0: 28572, 3: 71428}, + ("Category Ones", 4, 5): {0: 17976, 3: 82024}, + ("Category Ones", 4, 6): {0: 1253, 3: 98747}, + ("Category Ones", 4, 7): {0: 31228, 3: 68772}, + ("Category Ones", 4, 8): {0: 23273, 4: 76727}, ("Category Ones", 5, 0): {0: 100000}, - ("Category Ones", 5, 1): {0: 40042, 1: 40202, 2: 19756}, - ("Category Ones", 5, 2): {0: 16212, 1: 35432, 2: 31231, 3: 17125}, - ("Category Ones", 5, 3): {0: 6556, 1: 23548, 2: 34509, 3: 35387}, - ("Category Ones", 5, 4): {0: 2552, 2: 44333, 3: 32048, 4: 21067}, - ("Category Ones", 5, 5): {0: 8783, 2: 23245, 3: 34614, 4: 33358}, - ("Category Ones", 5, 6): {0: 4513, 3: 49603, 4: 32816, 5: 13068}, - ("Category Ones", 5, 7): {0: 2295, 3: 40470, 4: 37869, 5: 19366}, - ("Category Ones", 5, 8): {0: 73, 3: 33115, 4: 40166, 5: 26646}, + ("Category Ones", 5, 1): {0: 100000}, + ("Category Ones", 5, 2): {0: 16212, 2: 83788}, + ("Category Ones", 5, 3): {0: 30104, 3: 69896}, + ("Category Ones", 5, 4): {0: 2552, 3: 97448}, + ("Category Ones", 5, 5): {0: 32028, 4: 67972}, + ("Category Ones", 5, 6): {0: 21215, 4: 78785}, + ("Category Ones", 5, 7): {0: 2295, 4: 97705}, + ("Category Ones", 5, 8): {0: 1167, 4: 98833}, ("Category Ones", 6, 0): {0: 100000}, - ("Category Ones", 6, 1): {0: 33501, 1: 40042, 2: 26457}, - ("Category Ones", 6, 2): {0: 11326, 1: 29379, 2: 32368, 3: 26927}, - ("Category Ones", 6, 3): {0: 3764, 2: 46660, 3: 28928, 4: 20648}, - ("Category Ones", 6, 4): {0: 1231, 2: 29883, 3: 31038, 4: 37848}, - ("Category Ones", 6, 5): {0: 4208, 3: 41897, 4: 30878, 5: 23017}, - ("Category Ones", 6, 6): {0: 1850, 3: 30396, 4: 33022, 5: 34732}, - ("Category Ones", 6, 7): {0: 5503, 4: 48099, 5: 32432, 6: 13966}, - ("Category Ones", 6, 8): {0: 2896, 4: 39616, 5: 37005, 6: 20483}, + ("Category Ones", 6, 1): {0: 33501, 1: 66499}, + ("Category Ones", 6, 2): {0: 40705, 2: 59295}, + ("Category Ones", 6, 3): {0: 3764, 3: 96236}, + ("Category Ones", 6, 4): {0: 9324, 4: 90676}, + ("Category Ones", 6, 5): {0: 4208, 4: 95792}, + ("Category Ones", 6, 6): {0: 158, 5: 99842}, + ("Category Ones", 6, 7): {0: 5503, 5: 94497}, + ("Category Ones", 6, 8): {0: 2896, 5: 97104}, ("Category Ones", 7, 0): {0: 100000}, - ("Category Ones", 7, 1): {0: 27838, 1: 39224, 2: 32938}, - ("Category Ones", 7, 2): {0: 7796, 1: 23850, 2: 31678, 3: 23224, 4: 13452}, - ("Category Ones", 7, 3): {0: 2247, 2: 35459, 3: 29131, 4: 33163}, - ("Category Ones", 7, 4): {0: 5252, 3: 41207, 4: 28065, 5: 25476}, - ("Category Ones", 7, 5): {0: 174, 3: 29347, 4: 28867, 5: 26190, 6: 15422}, - ("Category Ones", 7, 6): {0: 4625, 4: 38568, 5: 30596, 6: 26211}, - ("Category Ones", 7, 7): {0: 230, 4: 30109, 5: 32077, 6: 37584}, - ("Category Ones", 7, 8): {0: 5519, 5: 45718, 6: 33357, 7: 15406}, + ("Category Ones", 7, 1): {0: 27838, 2: 72162}, + ("Category Ones", 7, 2): {0: 7796, 3: 92204}, + ("Category Ones", 7, 3): {0: 13389, 4: 86611}, + ("Category Ones", 7, 4): {0: 5252, 4: 94748}, + ("Category Ones", 7, 5): {0: 9854, 5: 90146}, + ("Category Ones", 7, 6): {0: 4625, 5: 95375}, + ("Category Ones", 7, 7): {0: 30339, 6: 69661}, + ("Category Ones", 7, 8): {0: 5519, 6: 94481}, ("Category Ones", 8, 0): {0: 100000}, - ("Category Ones", 8, 1): {0: 23156, 1: 37295, 2: 26136, 3: 13413}, - ("Category Ones", 8, 2): {0: 5472, 2: 48372, 3: 25847, 4: 20309}, - ("Category Ones", 8, 3): {0: 8661, 3: 45896, 4: 24664, 5: 20779}, - ("Category Ones", 8, 4): {0: 2807, 3: 29707, 4: 27157, 5: 23430, 6: 16899}, - ("Category Ones", 8, 5): {0: 5173, 4: 36033, 5: 27792, 6: 31002}, - ("Category Ones", 8, 6): {0: 255, 4: 25642, 5: 27508, 6: 27112, 7: 19483}, - ("Category Ones", 8, 7): {0: 4236, 5: 35323, 6: 30438, 7: 30003}, - ("Category Ones", 8, 8): {0: 310, 5: 27692, 6: 30830, 7: 41168}, + ("Category Ones", 8, 1): {0: 23156, 2: 76844}, + ("Category Ones", 8, 2): {0: 5472, 3: 94528}, + ("Category Ones", 8, 3): {0: 8661, 4: 91339}, + ("Category Ones", 8, 4): {0: 12125, 5: 87875}, + ("Category Ones", 8, 5): {0: 5173, 5: 94827}, + ("Category Ones", 8, 6): {0: 8872, 6: 91128}, + ("Category Ones", 8, 7): {0: 4236, 6: 95764}, + ("Category Ones", 8, 8): {0: 9107, 7: 90893}, ("Category Twos", 0, 0): {0: 100000}, ("Category Twos", 0, 1): {0: 100000}, ("Category Twos", 0, 2): {0: 100000}, @@ -98,8 +98,8 @@ ("Category Twos", 0, 7): {0: 100000}, ("Category Twos", 0, 8): {0: 100000}, ("Category Twos", 1, 0): {0: 100000}, - ("Category Twos", 1, 1): {0: 83475, 2: 16525}, - ("Category Twos", 1, 2): {0: 69690, 2: 30310}, + ("Category Twos", 1, 1): {0: 100000}, + ("Category Twos", 1, 2): {0: 100000}, ("Category Twos", 1, 3): {0: 57818, 2: 42182}, ("Category Twos", 1, 4): {0: 48418, 2: 51582}, ("Category Twos", 1, 5): {0: 40301, 2: 59699}, @@ -107,68 +107,68 @@ ("Category Twos", 1, 7): {0: 28182, 2: 71818}, ("Category Twos", 1, 8): {0: 23406, 2: 76594}, ("Category Twos", 2, 0): {0: 100000}, - ("Category Twos", 2, 1): {0: 69724, 2: 30276}, - ("Category Twos", 2, 2): {0: 48238, 2: 42479, 4: 9283}, - ("Category Twos", 2, 3): {0: 33290, 2: 48819, 4: 17891}, - ("Category Twos", 2, 4): {0: 23136, 2: 49957, 4: 26907}, - ("Category Twos", 2, 5): {0: 16146, 2: 48200, 4: 35654}, - ("Category Twos", 2, 6): {0: 11083, 2: 44497, 4: 44420}, - ("Category Twos", 2, 7): {0: 7662, 2: 40343, 4: 51995}, - ("Category Twos", 2, 8): {0: 5354, 2: 35526, 4: 59120}, + ("Category Twos", 2, 1): {0: 100000}, + ("Category Twos", 2, 2): {0: 48238, 2: 51762}, + ("Category Twos", 2, 3): {0: 33290, 4: 66710}, + ("Category Twos", 2, 4): {0: 23136, 4: 76864}, + ("Category Twos", 2, 5): {0: 16146, 4: 83854}, + ("Category Twos", 2, 6): {0: 11083, 4: 88917}, + ("Category Twos", 2, 7): {0: 7662, 4: 92338}, + ("Category Twos", 2, 8): {0: 5354, 4: 94646}, ("Category Twos", 3, 0): {0: 100000}, - ("Category Twos", 3, 1): {0: 58021, 2: 34522, 4: 7457}, - ("Category Twos", 3, 2): {0: 33548, 2: 44261, 4: 22191}, - ("Category Twos", 3, 3): {0: 19375, 2: 42372, 4: 30748, 6: 7505}, - ("Category Twos", 3, 4): {0: 10998, 2: 36435, 4: 38569, 6: 13998}, - ("Category Twos", 3, 5): {0: 6519, 2: 28838, 4: 43283, 6: 21360}, - ("Category Twos", 3, 6): {0: 3619, 2: 22498, 4: 44233, 6: 29650}, - ("Category Twos", 3, 7): {0: 2195, 2: 16979, 4: 43684, 6: 37142}, - ("Category Twos", 3, 8): {0: 1255, 2: 12420, 4: 40920, 6: 45405}, + ("Category Twos", 3, 1): {0: 58021, 2: 41979}, + ("Category Twos", 3, 2): {0: 33548, 4: 66452}, + ("Category Twos", 3, 3): {0: 19375, 4: 80625}, + ("Category Twos", 3, 4): {0: 10998, 4: 89002}, + ("Category Twos", 3, 5): {0: 6519, 6: 93481}, + ("Category Twos", 3, 6): {0: 3619, 6: 96381}, + ("Category Twos", 3, 7): {0: 2195, 6: 97805}, + ("Category Twos", 3, 8): {0: 13675, 6: 86325}, ("Category Twos", 4, 0): {0: 100000}, - ("Category Twos", 4, 1): {0: 48235, 2: 38602, 4: 13163}, - ("Category Twos", 4, 2): {0: 23289, 2: 40678, 4: 27102, 6: 8931}, - ("Category Twos", 4, 3): {0: 11177, 2: 32677, 4: 35702, 6: 20444}, - ("Category Twos", 4, 4): {0: 5499, 2: 23225, 4: 37240, 6: 26867, 8: 7169}, - ("Category Twos", 4, 5): {0: 2574, 2: 15782, 4: 34605, 6: 34268, 8: 12771}, - ("Category Twos", 4, 6): {0: 1259, 4: 39616, 6: 39523, 8: 19602}, - ("Category Twos", 4, 7): {0: 622, 4: 30426, 6: 41894, 8: 27058}, - ("Category Twos", 4, 8): {0: 4091, 4: 18855, 6: 42309, 8: 34745}, + ("Category Twos", 4, 1): {0: 48235, 2: 51765}, + ("Category Twos", 4, 2): {0: 23289, 4: 76711}, + ("Category Twos", 4, 3): {0: 11177, 6: 88823}, + ("Category Twos", 4, 4): {0: 5499, 6: 94501}, + ("Category Twos", 4, 5): {0: 18356, 6: 81644}, + ("Category Twos", 4, 6): {0: 11169, 8: 88831}, + ("Category Twos", 4, 7): {0: 6945, 8: 93055}, + ("Category Twos", 4, 8): {0: 4091, 8: 95909}, ("Category Twos", 5, 0): {0: 100000}, - ("Category Twos", 5, 1): {0: 40028, 2: 40241, 4: 19731}, - ("Category Twos", 5, 2): {0: 16009, 2: 35901, 4: 31024, 6: 17066}, - ("Category Twos", 5, 3): {0: 6489, 2: 23477, 4: 34349, 6: 25270, 8: 10415}, - ("Category Twos", 5, 4): {0: 2658, 2: 14032, 4: 30199, 6: 32214, 8: 20897}, - ("Category Twos", 5, 5): {0: 1032, 4: 31627, 6: 33993, 8: 25853, 10: 7495}, - ("Category Twos", 5, 6): {0: 450, 4: 20693, 6: 32774, 8: 32900, 10: 13183}, - ("Category Twos", 5, 7): {0: 2396, 4: 11231, 6: 29481, 8: 37636, 10: 19256}, - ("Category Twos", 5, 8): {0: 1171, 6: 31564, 8: 40798, 10: 26467}, + ("Category Twos", 5, 1): {0: 40028, 4: 59972}, + ("Category Twos", 5, 2): {0: 16009, 6: 83991}, + ("Category Twos", 5, 3): {0: 6489, 6: 93511}, + ("Category Twos", 5, 4): {0: 16690, 8: 83310}, + ("Category Twos", 5, 5): {0: 9016, 8: 90984}, + ("Category Twos", 5, 6): {0: 4602, 8: 95398}, + ("Category Twos", 5, 7): {0: 13627, 10: 86373}, + ("Category Twos", 5, 8): {0: 8742, 10: 91258}, ("Category Twos", 6, 0): {0: 100000}, - ("Category Twos", 6, 1): {0: 33502, 2: 40413, 4: 26085}, - ("Category Twos", 6, 2): {0: 11210, 2: 29638, 4: 32701, 6: 18988, 8: 7463}, - ("Category Twos", 6, 3): {0: 3673, 2: 16459, 4: 29795, 6: 29102, 8: 20971}, - ("Category Twos", 6, 4): {0: 1243, 4: 30025, 6: 31053, 8: 25066, 10: 12613}, - ("Category Twos", 6, 5): {0: 4194, 4: 13949, 6: 28142, 8: 30723, 10: 22992}, - ("Category Twos", 6, 6): {0: 1800, 6: 30677, 8: 32692, 10: 26213, 12: 8618}, - ("Category Twos", 6, 7): {0: 775, 6: 21013, 8: 31410, 10: 32532, 12: 14270}, - ("Category Twos", 6, 8): {0: 2855, 6: 11432, 8: 27864, 10: 37237, 12: 20612}, + ("Category Twos", 6, 1): {0: 33502, 4: 66498}, + ("Category Twos", 6, 2): {0: 11210, 6: 88790}, + ("Category Twos", 6, 3): {0: 3673, 6: 96327}, + ("Category Twos", 6, 4): {0: 9291, 8: 90709}, + ("Category Twos", 6, 5): {0: 441, 8: 99559}, + ("Category Twos", 6, 6): {0: 10255, 10: 89745}, + ("Category Twos", 6, 7): {0: 5646, 10: 94354}, + ("Category Twos", 6, 8): {0: 14287, 12: 85713}, ("Category Twos", 7, 0): {0: 100000}, - ("Category Twos", 7, 1): {0: 27683, 2: 39060, 4: 23574, 6: 9683}, - ("Category Twos", 7, 2): {0: 7824, 2: 24031, 4: 31764, 6: 23095, 8: 13286}, - ("Category Twos", 7, 3): {0: 2148, 2: 11019, 4: 24197, 6: 29599, 8: 21250, 10: 11787}, - ("Category Twos", 7, 4): {0: 564, 4: 19036, 6: 26395, 8: 28409, 10: 18080, 12: 7516}, - ("Category Twos", 7, 5): {0: 1913, 6: 27198, 8: 29039, 10: 26129, 12: 15721}, - ("Category Twos", 7, 6): {0: 54, 6: 17506, 8: 25752, 10: 30413, 12: 26275}, - ("Category Twos", 7, 7): {0: 2179, 8: 28341, 10: 32054, 12: 27347, 14: 10079}, - ("Category Twos", 7, 8): {0: 942, 8: 19835, 10: 30248, 12: 33276, 14: 15699}, + ("Category Twos", 7, 1): {0: 27683, 4: 72317}, + ("Category Twos", 7, 2): {0: 7824, 6: 92176}, + ("Category Twos", 7, 3): {0: 13167, 8: 86833}, + ("Category Twos", 7, 4): {0: 564, 10: 99436}, + ("Category Twos", 7, 5): {0: 9824, 10: 90176}, + ("Category Twos", 7, 6): {0: 702, 12: 99298}, + ("Category Twos", 7, 7): {0: 10186, 12: 89814}, + ("Category Twos", 7, 8): {0: 942, 12: 99058}, ("Category Twos", 8, 0): {0: 100000}, - ("Category Twos", 8, 1): {0: 23378, 2: 37157, 4: 26082, 6: 13383}, - ("Category Twos", 8, 2): {0: 5420, 2: 19164, 4: 29216, 6: 25677, 8: 20523}, - ("Category Twos", 8, 3): {0: 1271, 4: 26082, 6: 27054, 8: 24712, 10: 20881}, - ("Category Twos", 8, 4): {0: 2889, 6: 29552, 8: 27389, 10: 23232, 12: 16938}, - ("Category Twos", 8, 5): {0: 879, 6: 16853, 8: 23322, 10: 27882, 12: 20768, 14: 10296}, - ("Category Twos", 8, 6): {0: 2041, 8: 24140, 10: 27398, 12: 27048, 14: 19373}, - ("Category Twos", 8, 7): {0: 74, 8: 15693, 10: 23675, 12: 30829, 14: 22454, 16: 7275}, - ("Category Twos", 8, 8): {2: 2053, 10: 25677, 12: 31310, 14: 28983, 16: 11977}, + ("Category Twos", 8, 1): {0: 23378, 4: 76622}, + ("Category Twos", 8, 2): {0: 5420, 8: 94580}, + ("Category Twos", 8, 3): {0: 8560, 10: 91440}, + ("Category Twos", 8, 4): {0: 12199, 12: 87801}, + ("Category Twos", 8, 5): {0: 879, 12: 99121}, + ("Category Twos", 8, 6): {0: 9033, 14: 90967}, + ("Category Twos", 8, 7): {0: 15767, 14: 84233}, + ("Category Twos", 8, 8): {2: 9033, 14: 90967}, ("Category Threes", 0, 0): {0: 100000}, ("Category Threes", 0, 1): {0: 100000}, ("Category Threes", 0, 2): {0: 100000}, @@ -179,7 +179,7 @@ ("Category Threes", 0, 7): {0: 100000}, ("Category Threes", 0, 8): {0: 100000}, ("Category Threes", 1, 0): {0: 100000}, - ("Category Threes", 1, 1): {0: 83343, 3: 16657}, + ("Category Threes", 1, 1): {0: 100000}, ("Category Threes", 1, 2): {0: 69569, 3: 30431}, ("Category Threes", 1, 3): {0: 57872, 3: 42128}, ("Category Threes", 1, 4): {0: 48081, 3: 51919}, @@ -189,67 +189,67 @@ ("Category Threes", 1, 8): {0: 23240, 3: 76760}, ("Category Threes", 2, 0): {0: 100000}, ("Category Threes", 2, 1): {0: 69419, 3: 30581}, - ("Category Threes", 2, 2): {0: 48202, 3: 42590, 6: 9208}, - ("Category Threes", 2, 3): {0: 33376, 3: 48849, 6: 17775}, - ("Category Threes", 2, 4): {0: 23276, 3: 49810, 6: 26914}, - ("Category Threes", 2, 5): {0: 16092, 3: 47718, 6: 36190}, - ("Category Threes", 2, 6): {0: 11232, 3: 44515, 6: 44253}, - ("Category Threes", 2, 7): {0: 7589, 3: 40459, 6: 51952}, - ("Category Threes", 2, 8): {0: 5447, 3: 35804, 6: 58749}, + ("Category Threes", 2, 2): {0: 48202, 3: 51798}, + ("Category Threes", 2, 3): {0: 33376, 6: 66624}, + ("Category Threes", 2, 4): {0: 23276, 6: 76724}, + ("Category Threes", 2, 5): {0: 16092, 6: 83908}, + ("Category Threes", 2, 6): {0: 11232, 6: 88768}, + ("Category Threes", 2, 7): {0: 7589, 6: 92411}, + ("Category Threes", 2, 8): {0: 5447, 6: 94553}, ("Category Threes", 3, 0): {0: 100000}, - ("Category Threes", 3, 1): {0: 57964, 3: 34701, 6: 7335}, - ("Category Threes", 3, 2): {0: 33637, 3: 44263, 6: 22100}, - ("Category Threes", 3, 3): {0: 19520, 3: 42382, 6: 30676, 9: 7422}, - ("Category Threes", 3, 4): {0: 11265, 3: 35772, 6: 39042, 9: 13921}, - ("Category Threes", 3, 5): {0: 6419, 3: 28916, 6: 43261, 9: 21404}, - ("Category Threes", 3, 6): {0: 3810, 3: 22496, 6: 44388, 9: 29306}, - ("Category Threes", 3, 7): {0: 2174, 3: 16875, 6: 43720, 9: 37231}, - ("Category Threes", 3, 8): {0: 1237, 3: 12471, 6: 41222, 9: 45070}, + ("Category Threes", 3, 1): {0: 57964, 3: 42036}, + ("Category Threes", 3, 2): {0: 33637, 6: 66363}, + ("Category Threes", 3, 3): {0: 19520, 6: 80480}, + ("Category Threes", 3, 4): {0: 11265, 6: 88735}, + ("Category Threes", 3, 5): {0: 6419, 6: 72177, 9: 21404}, + ("Category Threes", 3, 6): {0: 3810, 6: 66884, 9: 29306}, + ("Category Threes", 3, 7): {0: 2174, 6: 60595, 9: 37231}, + ("Category Threes", 3, 8): {0: 1237, 6: 53693, 9: 45070}, ("Category Threes", 4, 0): {0: 100000}, - ("Category Threes", 4, 1): {0: 48121, 3: 38786, 6: 13093}, - ("Category Threes", 4, 2): {0: 23296, 3: 40989, 6: 26998, 9: 8717}, - ("Category Threes", 4, 3): {0: 11233, 3: 32653, 6: 35710, 9: 20404}, - ("Category Threes", 4, 4): {0: 5463, 3: 23270, 6: 37468, 9: 26734, 12: 7065}, - ("Category Threes", 4, 5): {0: 2691, 3: 15496, 6: 34539, 9: 34635, 12: 12639}, - ("Category Threes", 4, 6): {0: 1221, 3: 10046, 6: 29811, 9: 39190, 12: 19732}, - ("Category Threes", 4, 7): {0: 599, 6: 30742, 9: 41614, 12: 27045}, - ("Category Threes", 4, 8): {0: 309, 6: 22719, 9: 42236, 12: 34736}, + ("Category Threes", 4, 1): {0: 48121, 6: 51879}, + ("Category Threes", 4, 2): {0: 23296, 6: 76704}, + ("Category Threes", 4, 3): {0: 11233, 6: 68363, 9: 20404}, + ("Category Threes", 4, 4): {0: 5463, 6: 60738, 9: 33799}, + ("Category Threes", 4, 5): {0: 2691, 6: 50035, 12: 47274}, + ("Category Threes", 4, 6): {0: 11267, 9: 88733}, + ("Category Threes", 4, 7): {0: 6921, 9: 66034, 12: 27045}, + ("Category Threes", 4, 8): {0: 4185, 9: 61079, 12: 34736}, ("Category Threes", 5, 0): {0: 100000}, - ("Category Threes", 5, 1): {0: 40183, 3: 40377, 6: 19440}, - ("Category Threes", 5, 2): {0: 16197, 3: 35494, 6: 30937, 9: 17372}, - ("Category Threes", 5, 3): {0: 6583, 3: 23394, 6: 34432, 9: 25239, 12: 10352}, - ("Category Threes", 5, 4): {0: 2636, 3: 14072, 6: 30134, 9: 32371, 12: 20787}, - ("Category Threes", 5, 5): {0: 1075, 3: 7804, 6: 23010, 9: 34811, 12: 25702, 15: 7598}, - ("Category Threes", 5, 6): {0: 418, 6: 20888, 9: 32809, 12: 32892, 15: 12993}, - ("Category Threes", 5, 7): {0: 2365, 6: 11416, 9: 29072, 12: 37604, 15: 19543}, - ("Category Threes", 5, 8): {0: 1246, 6: 7425, 9: 24603, 12: 40262, 15: 26464}, + ("Category Threes", 5, 1): {0: 40183, 6: 59817}, + ("Category Threes", 5, 2): {0: 16197, 6: 83803}, + ("Category Threes", 5, 3): {0: 6583, 6: 57826, 9: 35591}, + ("Category Threes", 5, 4): {0: 2636, 9: 76577, 12: 20787}, + ("Category Threes", 5, 5): {0: 8879, 9: 57821, 12: 33300}, + ("Category Threes", 5, 6): {0: 4652, 12: 95348}, + ("Category Threes", 5, 7): {0: 2365, 12: 97635}, + ("Category Threes", 5, 8): {0: 8671, 12: 64865, 15: 26464}, ("Category Threes", 6, 0): {0: 100000}, - ("Category Threes", 6, 1): {0: 33473, 3: 40175, 6: 20151, 9: 6201}, - ("Category Threes", 6, 2): {0: 11147, 3: 29592, 6: 32630, 9: 19287, 12: 7344}, - ("Category Threes", 6, 3): {0: 3628, 3: 16528, 6: 29814, 9: 29006, 12: 15888, 15: 5136}, - ("Category Threes", 6, 4): {0: 1262, 3: 8236, 6: 21987, 9: 30953, 12: 24833, 15: 12729}, - ("Category Threes", 6, 5): {0: 416, 6: 17769, 9: 27798, 12: 31197, 15: 18256, 18: 4564}, - ("Category Threes", 6, 6): {0: 1796, 6: 8372, 9: 22175, 12: 32897, 15: 26264, 18: 8496}, - ("Category Threes", 6, 7): {0: 791, 9: 21074, 12: 31385, 15: 32666, 18: 14084}, - ("Category Threes", 6, 8): {0: 20, 9: 14150, 12: 28320, 15: 36982, 18: 20528}, + ("Category Threes", 6, 1): {0: 33473, 6: 66527}, + ("Category Threes", 6, 2): {0: 11147, 6: 62222, 9: 26631}, + ("Category Threes", 6, 3): {0: 3628, 9: 75348, 12: 21024}, + ("Category Threes", 6, 4): {0: 9498, 9: 52940, 15: 37562}, + ("Category Threes", 6, 5): {0: 4236, 12: 72944, 15: 22820}, + ("Category Threes", 6, 6): {0: 10168, 12: 55072, 15: 34760}, + ("Category Threes", 6, 7): {0: 5519, 15: 94481}, + ("Category Threes", 6, 8): {0: 2968, 15: 76504, 18: 20528}, ("Category Threes", 7, 0): {0: 100000}, - ("Category Threes", 7, 1): {0: 27933, 3: 39105, 6: 23338, 9: 9624}, - ("Category Threes", 7, 2): {0: 7794, 3: 23896, 6: 31832, 9: 23110, 12: 13368}, - ("Category Threes", 7, 3): {0: 2138, 3: 11098, 6: 24140, 9: 29316, 12: 21386, 15: 11922}, - ("Category Threes", 7, 4): {0: 590, 6: 19385, 9: 26233, 12: 28244, 15: 18118, 18: 7430}, - ("Category Threes", 7, 5): {0: 1941, 6: 7953, 9: 19439, 12: 28977, 15: 26078, 18: 15612}, - ("Category Threes", 7, 6): {0: 718, 9: 16963, 12: 25793, 15: 30535, 18: 20208, 21: 5783}, - ("Category Threes", 7, 7): {0: 2064, 9: 7941, 12: 20571, 15: 31859, 18: 27374, 21: 10191}, - ("Category Threes", 7, 8): {0: 963, 12: 19864, 15: 30313, 18: 33133, 21: 15727}, + ("Category Threes", 7, 1): {0: 27933, 6: 72067}, + ("Category Threes", 7, 2): {0: 7794, 6: 55728, 12: 36478}, + ("Category Threes", 7, 3): {0: 2138, 9: 64554, 15: 33308}, + ("Category Threes", 7, 4): {0: 5238, 12: 69214, 15: 25548}, + ("Category Threes", 7, 5): {0: 9894, 15: 90106}, + ("Category Threes", 7, 6): {0: 4656, 15: 69353, 18: 25991}, + ("Category Threes", 7, 7): {0: 10005, 15: 52430, 18: 37565}, + ("Category Threes", 7, 8): {0: 5710, 18: 94290}, ("Category Threes", 8, 0): {0: 100000}, - ("Category Threes", 8, 1): {0: 23337, 3: 37232, 6: 25968, 9: 13463}, - ("Category Threes", 8, 2): {0: 5310, 3: 18930, 6: 29232, 9: 26016, 12: 14399, 15: 6113}, - ("Category Threes", 8, 3): {0: 1328, 3: 7328, 6: 18754, 9: 27141, 12: 24703, 15: 14251, 18: 6495}, - ("Category Threes", 8, 4): {0: 2719, 6: 9554, 9: 20607, 12: 26898, 15: 23402, 18: 12452, 21: 4368}, - ("Category Threes", 8, 5): {0: 905, 9: 16848, 12: 23248, 15: 27931, 18: 20616, 21: 10452}, - ("Category Threes", 8, 6): {0: 1914, 9: 6890, 12: 17302, 15: 27235, 18: 27276, 21: 19383}, - ("Category Threes", 8, 7): {0: 800, 12: 15127, 15: 23682, 18: 30401, 21: 22546, 24: 7444}, - ("Category Threes", 8, 8): {0: 2041, 12: 7211, 15: 18980, 18: 30657, 21: 29074, 24: 12037}, + ("Category Threes", 8, 1): {0: 23337, 6: 76663}, + ("Category Threes", 8, 2): {0: 5310, 9: 74178, 12: 20512}, + ("Category Threes", 8, 3): {0: 8656, 12: 70598, 15: 20746}, + ("Category Threes", 8, 4): {0: 291, 12: 59487, 18: 40222}, + ("Category Threes", 8, 5): {0: 5145, 15: 63787, 18: 31068}, + ("Category Threes", 8, 6): {0: 8804, 18: 91196}, + ("Category Threes", 8, 7): {0: 4347, 18: 65663, 21: 29990}, + ("Category Threes", 8, 8): {0: 9252, 21: 90748}, ("Category Fours", 0, 0): {0: 100000}, ("Category Fours", 0, 1): {0: 100000}, ("Category Fours", 0, 2): {0: 100000}, @@ -270,67 +270,67 @@ ("Category Fours", 1, 8): {0: 23431, 4: 76569}, ("Category Fours", 2, 0): {0: 100000}, ("Category Fours", 2, 1): {0: 69379, 4: 30621}, - ("Category Fours", 2, 2): {0: 48538, 4: 42240, 8: 9222}, + ("Category Fours", 2, 2): {0: 48538, 4: 51462}, ("Category Fours", 2, 3): {0: 33756, 4: 48555, 8: 17689}, ("Category Fours", 2, 4): {0: 23070, 4: 49916, 8: 27014}, ("Category Fours", 2, 5): {0: 16222, 4: 48009, 8: 35769}, ("Category Fours", 2, 6): {0: 11125, 4: 44400, 8: 44475}, ("Category Fours", 2, 7): {0: 7919, 4: 40216, 8: 51865}, - ("Category Fours", 2, 8): {0: 5348, 4: 35757, 8: 58895}, + ("Category Fours", 2, 8): {0: 5348, 8: 94652}, ("Category Fours", 3, 0): {0: 100000}, - ("Category Fours", 3, 1): {0: 57914, 4: 34622, 8: 7464}, + ("Category Fours", 3, 1): {0: 57914, 4: 42086}, ("Category Fours", 3, 2): {0: 33621, 4: 44110, 8: 22269}, - ("Category Fours", 3, 3): {0: 19153, 4: 42425, 8: 30898, 12: 7524}, - ("Category Fours", 3, 4): {0: 11125, 4: 36011, 8: 39024, 12: 13840}, - ("Category Fours", 3, 5): {0: 6367, 4: 29116, 8: 43192, 12: 21325}, - ("Category Fours", 3, 6): {0: 3643, 4: 22457, 8: 44477, 12: 29423}, - ("Category Fours", 3, 7): {0: 2178, 4: 16802, 8: 43275, 12: 37745}, - ("Category Fours", 3, 8): {0: 1255, 4: 12301, 8: 41132, 12: 45312}, + ("Category Fours", 3, 3): {0: 19153, 4: 42425, 8: 38422}, + ("Category Fours", 3, 4): {0: 11125, 8: 88875}, + ("Category Fours", 3, 5): {0: 6367, 8: 72308, 12: 21325}, + ("Category Fours", 3, 6): {0: 3643, 8: 66934, 12: 29423}, + ("Category Fours", 3, 7): {0: 2178, 8: 60077, 12: 37745}, + ("Category Fours", 3, 8): {0: 1255, 8: 53433, 12: 45312}, ("Category Fours", 4, 0): {0: 100000}, - ("Category Fours", 4, 1): {0: 48465, 4: 38398, 8: 13137}, - ("Category Fours", 4, 2): {0: 23296, 4: 40911, 8: 27073, 12: 8720}, - ("Category Fours", 4, 3): {0: 11200, 4: 33191, 8: 35337, 12: 20272}, - ("Category Fours", 4, 4): {0: 5447, 4: 23066, 8: 37441, 12: 26861, 16: 7185}, - ("Category Fours", 4, 5): {0: 2533, 4: 15668, 8: 34781, 12: 34222, 16: 12796}, - ("Category Fours", 4, 6): {0: 1314, 4: 10001, 8: 29850, 12: 39425, 16: 19410}, - ("Category Fours", 4, 7): {0: 592, 4: 6231, 8: 24250, 12: 41917, 16: 27010}, - ("Category Fours", 4, 8): {0: 302, 8: 23055, 12: 41866, 16: 34777}, + ("Category Fours", 4, 1): {0: 48465, 4: 51535}, + ("Category Fours", 4, 2): {0: 23296, 4: 40911, 12: 35793}, + ("Category Fours", 4, 3): {0: 11200, 8: 68528, 12: 20272}, + ("Category Fours", 4, 4): {0: 5447, 8: 60507, 12: 34046}, + ("Category Fours", 4, 5): {0: 2533, 8: 50449, 16: 47018}, + ("Category Fours", 4, 6): {0: 1314, 8: 39851, 12: 39425, 16: 19410}, + ("Category Fours", 4, 7): {0: 6823, 12: 66167, 16: 27010}, + ("Category Fours", 4, 8): {0: 4189, 12: 61034, 16: 34777}, ("Category Fours", 5, 0): {0: 100000}, - ("Category Fours", 5, 1): {0: 40215, 4: 40127, 8: 16028, 12: 3630}, - ("Category Fours", 5, 2): {0: 15946, 4: 35579, 8: 31158, 12: 13998, 16: 3319}, - ("Category Fours", 5, 3): {0: 6479, 4: 23705, 8: 34575, 12: 24783, 16: 10458}, - ("Category Fours", 5, 4): {0: 2635, 4: 13889, 8: 30079, 12: 32428, 16: 17263, 20: 3706}, - ("Category Fours", 5, 5): {0: 1160, 4: 7756, 8: 23332, 12: 34254, 16: 25803, 20: 7695}, - ("Category Fours", 5, 6): {0: 434, 8: 20773, 12: 32910, 16: 32752, 20: 13131}, - ("Category Fours", 5, 7): {0: 169, 8: 13536, 12: 29123, 16: 37701, 20: 19471}, - ("Category Fours", 5, 8): {0: 1267, 8: 7340, 12: 24807, 16: 40144, 20: 26442}, + ("Category Fours", 5, 1): {0: 40215, 4: 40127, 8: 19658}, + ("Category Fours", 5, 2): {0: 15946, 8: 66737, 12: 17317}, + ("Category Fours", 5, 3): {0: 6479, 8: 58280, 16: 35241}, + ("Category Fours", 5, 4): {0: 2635, 8: 43968, 16: 53397}, + ("Category Fours", 5, 5): {0: 8916, 12: 57586, 16: 33498}, + ("Category Fours", 5, 6): {0: 4682, 12: 49435, 20: 45883}, + ("Category Fours", 5, 7): {0: 2291, 12: 40537, 16: 37701, 20: 19471}, + ("Category Fours", 5, 8): {0: 75, 16: 73483, 20: 26442}, ("Category Fours", 6, 0): {0: 100000}, - ("Category Fours", 6, 1): {0: 33632, 4: 39856, 8: 20225, 12: 6287}, - ("Category Fours", 6, 2): {0: 11175, 4: 29824, 8: 32381, 12: 19179, 16: 7441}, - ("Category Fours", 6, 3): {0: 3698, 4: 16329, 8: 29939, 12: 29071, 16: 15808, 20: 5155}, - ("Category Fours", 6, 4): {0: 1284, 4: 7889, 8: 21748, 12: 31107, 16: 25281, 20: 12691}, - ("Category Fours", 6, 5): {0: 462, 8: 17601, 12: 27817, 16: 31233, 20: 18386, 24: 4501}, - ("Category Fours", 6, 6): {0: 1783, 8: 8344, 12: 22156, 16: 32690, 20: 26192, 24: 8835}, - ("Category Fours", 6, 7): {0: 767, 12: 20974, 16: 31490, 20: 32639, 24: 14130}, - ("Category Fours", 6, 8): {0: 357, 12: 13912, 16: 27841, 20: 37380, 24: 20510}, + ("Category Fours", 6, 1): {0: 33632, 4: 39856, 8: 26512}, + ("Category Fours", 6, 2): {0: 11175, 8: 62205, 12: 26620}, + ("Category Fours", 6, 3): {0: 3698, 8: 46268, 16: 50034}, + ("Category Fours", 6, 4): {0: 9173, 12: 52855, 20: 37972}, + ("Category Fours", 6, 5): {0: 4254, 12: 41626, 20: 54120}, + ("Category Fours", 6, 6): {0: 1783, 16: 63190, 24: 35027}, + ("Category Fours", 6, 7): {0: 5456, 16: 47775, 24: 46769}, + ("Category Fours", 6, 8): {0: 2881, 16: 39229, 24: 57890}, ("Category Fours", 7, 0): {0: 100000}, - ("Category Fours", 7, 1): {0: 27821, 4: 39289, 8: 23327, 12: 9563}, - ("Category Fours", 7, 2): {0: 7950, 4: 24026, 8: 31633, 12: 23169, 16: 13222}, - ("Category Fours", 7, 3): {0: 2194, 4: 11153, 8: 24107, 12: 29411, 16: 21390, 20: 11745}, - ("Category Fours", 7, 4): {0: 560, 8: 19291, 12: 26330, 16: 28118, 20: 18174, 24: 7527}, - ("Category Fours", 7, 5): {0: 1858, 8: 7862, 12: 19425, 16: 29003, 20: 26113, 24: 15739}, - ("Category Fours", 7, 6): {0: 679, 12: 16759, 16: 25831, 20: 30724, 24: 20147, 28: 5860}, - ("Category Fours", 7, 7): {0: 13, 12: 10063, 16: 20524, 20: 31843, 24: 27368, 28: 10189}, - ("Category Fours", 7, 8): {4: 864, 16: 19910, 20: 30153, 24: 33428, 28: 15645}, + ("Category Fours", 7, 1): {0: 27821, 4: 39289, 12: 32890}, + ("Category Fours", 7, 2): {0: 7950, 8: 55659, 16: 36391}, + ("Category Fours", 7, 3): {0: 2194, 12: 64671, 20: 33135}, + ("Category Fours", 7, 4): {0: 5063, 12: 41118, 20: 53819}, + ("Category Fours", 7, 5): {0: 171, 16: 57977, 24: 41852}, + ("Category Fours", 7, 6): {0: 4575, 16: 38694, 24: 56731}, + ("Category Fours", 7, 7): {0: 252, 20: 62191, 28: 37557}, + ("Category Fours", 7, 8): {4: 5576, 20: 45351, 28: 49073}, ("Category Fours", 8, 0): {0: 100000}, - ("Category Fours", 8, 1): {0: 23275, 4: 37161, 8: 25964, 12: 13600}, - ("Category Fours", 8, 2): {0: 5421, 4: 19014, 8: 29259, 12: 25812, 16: 14387, 20: 6107}, - ("Category Fours", 8, 3): {0: 1277, 4: 7349, 8: 18330, 12: 27186, 16: 25138, 20: 14371, 24: 6349}, - ("Category Fours", 8, 4): {0: 289, 8: 11929, 12: 20282, 16: 26960, 20: 23292, 24: 12927, 28: 4321}, - ("Category Fours", 8, 5): {0: 835, 12: 16706, 16: 23588, 20: 27754, 24: 20767, 28: 10350}, - ("Category Fours", 8, 6): {0: 21, 12: 8911, 16: 17296, 20: 27398, 24: 27074, 28: 15457, 32: 3843}, - ("Category Fours", 8, 7): {0: 745, 16: 15069, 20: 23737, 24: 30628, 28: 22590, 32: 7231}, - ("Category Fours", 8, 8): {0: 1949, 16: 7021, 20: 18630, 24: 31109, 28: 29548, 32: 11743}, + ("Category Fours", 8, 1): {0: 23275, 8: 76725}, + ("Category Fours", 8, 2): {0: 5421, 8: 48273, 16: 46306}, + ("Category Fours", 8, 3): {0: 8626, 12: 45516, 20: 45858}, + ("Category Fours", 8, 4): {0: 2852, 16: 56608, 24: 40540}, + ("Category Fours", 8, 5): {0: 5049, 20: 63834, 28: 31117}, + ("Category Fours", 8, 6): {0: 269, 20: 53357, 28: 46374}, + ("Category Fours", 8, 7): {0: 4394, 24: 65785, 28: 29821}, + ("Category Fours", 8, 8): {0: 266, 24: 58443, 32: 41291}, ("Category Fives", 0, 0): {0: 100000}, ("Category Fives", 0, 1): {0: 100000}, ("Category Fives", 0, 2): {0: 100000}, @@ -350,8 +350,8 @@ ("Category Fives", 1, 7): {0: 27730, 5: 72270}, ("Category Fives", 1, 8): {0: 23210, 5: 76790}, ("Category Fives", 2, 0): {0: 100000}, - ("Category Fives", 2, 1): {0: 69299, 5: 27864, 10: 2837}, - ("Category Fives", 2, 2): {0: 48156, 5: 42526, 10: 9318}, + ("Category Fives", 2, 1): {0: 69299, 5: 30701}, + ("Category Fives", 2, 2): {0: 48156, 5: 51844}, ("Category Fives", 2, 3): {0: 33225, 5: 49153, 10: 17622}, ("Category Fives", 2, 4): {0: 23218, 5: 50075, 10: 26707}, ("Category Fives", 2, 5): {0: 15939, 5: 48313, 10: 35748}, @@ -359,59 +359,59 @@ ("Category Fives", 2, 7): {0: 7822, 5: 40388, 10: 51790}, ("Category Fives", 2, 8): {0: 5386, 5: 35636, 10: 58978}, ("Category Fives", 3, 0): {0: 100000}, - ("Category Fives", 3, 1): {0: 58034, 5: 34541, 10: 7425}, - ("Category Fives", 3, 2): {0: 33466, 5: 44227, 10: 19403, 15: 2904}, - ("Category Fives", 3, 3): {0: 19231, 5: 42483, 10: 30794, 15: 7492}, + ("Category Fives", 3, 1): {0: 58034, 5: 41966}, + ("Category Fives", 3, 2): {0: 33466, 5: 44227, 10: 22307}, + ("Category Fives", 3, 3): {0: 19231, 5: 42483, 10: 38286}, ("Category Fives", 3, 4): {0: 11196, 5: 36192, 10: 38673, 15: 13939}, - ("Category Fives", 3, 5): {0: 6561, 5: 29163, 10: 43014, 15: 21262}, - ("Category Fives", 3, 6): {0: 3719, 5: 22181, 10: 44611, 15: 29489}, - ("Category Fives", 3, 7): {0: 2099, 5: 16817, 10: 43466, 15: 37618}, - ("Category Fives", 3, 8): {0: 1281, 5: 12473, 10: 40936, 15: 45310}, + ("Category Fives", 3, 5): {0: 6561, 10: 72177, 15: 21262}, + ("Category Fives", 3, 6): {0: 3719, 10: 66792, 15: 29489}, + ("Category Fives", 3, 7): {0: 2099, 10: 60283, 15: 37618}, + ("Category Fives", 3, 8): {0: 1281, 10: 53409, 15: 45310}, ("Category Fives", 4, 0): {0: 100000}, ("Category Fives", 4, 1): {0: 48377, 5: 38345, 10: 13278}, - ("Category Fives", 4, 2): {0: 23126, 5: 40940, 10: 27041, 15: 8893}, - ("Category Fives", 4, 3): {0: 11192, 5: 32597, 10: 35753, 15: 17250, 20: 3208}, - ("Category Fives", 4, 4): {0: 5362, 5: 23073, 10: 37379, 15: 26968, 20: 7218}, - ("Category Fives", 4, 5): {0: 2655, 5: 15662, 10: 34602, 15: 34186, 20: 12895}, - ("Category Fives", 4, 6): {0: 1291, 5: 9959, 10: 29833, 15: 39417, 20: 19500}, - ("Category Fives", 4, 7): {0: 623, 5: 6231, 10: 24360, 15: 41779, 20: 27007}, - ("Category Fives", 4, 8): {0: 313, 10: 23001, 15: 41957, 20: 34729}, + ("Category Fives", 4, 2): {0: 23126, 5: 40940, 15: 35934}, + ("Category Fives", 4, 3): {0: 11192, 5: 32597, 10: 35753, 15: 20458}, + ("Category Fives", 4, 4): {0: 5362, 10: 60452, 20: 34186}, + ("Category Fives", 4, 5): {0: 2655, 10: 50264, 15: 34186, 20: 12895}, + ("Category Fives", 4, 6): {0: 1291, 10: 39792, 15: 39417, 20: 19500}, + ("Category Fives", 4, 7): {0: 6854, 15: 66139, 20: 27007}, + ("Category Fives", 4, 8): {0: 4150, 15: 61121, 20: 34729}, ("Category Fives", 5, 0): {0: 100000}, - ("Category Fives", 5, 1): {0: 39911, 5: 40561, 10: 16029, 15: 3499}, - ("Category Fives", 5, 2): {0: 16178, 5: 35517, 10: 31246, 15: 13793, 20: 3266}, - ("Category Fives", 5, 3): {0: 6526, 5: 23716, 10: 34430, 15: 25017, 20: 10311}, - ("Category Fives", 5, 4): {0: 2615, 5: 13975, 10: 30133, 15: 32247, 20: 17219, 25: 3811}, - ("Category Fives", 5, 5): {0: 1063, 5: 7876, 10: 23203, 15: 34489, 20: 25757, 25: 7612}, - ("Category Fives", 5, 6): {0: 429, 5: 4091, 10: 16696, 15: 32855, 20: 32891, 25: 13038}, - ("Category Fives", 5, 7): {0: 159, 10: 13509, 15: 29416, 20: 37778, 25: 19138}, - ("Category Fives", 5, 8): {0: 1179, 10: 7453, 15: 24456, 20: 40615, 25: 26297}, + ("Category Fives", 5, 1): {0: 39911, 5: 40561, 10: 19528}, + ("Category Fives", 5, 2): {0: 16178, 5: 35517, 10: 31246, 15: 17059}, + ("Category Fives", 5, 3): {0: 6526, 10: 58146, 20: 35328}, + ("Category Fives", 5, 4): {0: 2615, 10: 44108, 15: 32247, 20: 21030}, + ("Category Fives", 5, 5): {0: 1063, 10: 31079, 15: 34489, 25: 33369}, + ("Category Fives", 5, 6): {0: 4520, 15: 49551, 20: 32891, 25: 13038}, + ("Category Fives", 5, 7): {0: 2370, 15: 40714, 20: 37778, 25: 19138}, + ("Category Fives", 5, 8): {0: 1179, 15: 31909, 20: 40615, 25: 26297}, ("Category Fives", 6, 0): {0: 100000}, - ("Category Fives", 6, 1): {0: 33476, 5: 40167, 10: 20181, 15: 6176}, - ("Category Fives", 6, 2): {0: 11322, 5: 29613, 10: 32664, 15: 19004, 20: 7397}, - ("Category Fives", 6, 3): {0: 3765, 5: 16288, 10: 29770, 15: 29233, 20: 15759, 25: 5185}, - ("Category Fives", 6, 4): {0: 1201, 5: 8226, 10: 21518, 15: 31229, 20: 25160, 25: 12666}, - ("Category Fives", 6, 5): {0: 433, 10: 17879, 15: 27961, 20: 30800, 25: 18442, 30: 4485}, - ("Category Fives", 6, 6): {0: 141, 10: 10040, 15: 22226, 20: 32744, 25: 26341, 30: 8508}, - ("Category Fives", 6, 7): {0: 772, 10: 4724, 15: 16206, 20: 31363, 25: 32784, 30: 14151}, - ("Category Fives", 6, 8): {0: 297, 15: 13902, 20: 28004, 25: 37178, 30: 20619}, + ("Category Fives", 6, 1): {0: 33476, 5: 40167, 10: 26357}, + ("Category Fives", 6, 2): {0: 11322, 10: 62277, 20: 26401}, + ("Category Fives", 6, 3): {0: 3765, 10: 46058, 20: 50177}, + ("Category Fives", 6, 4): {0: 1201, 15: 60973, 25: 37826}, + ("Category Fives", 6, 5): {0: 4307, 15: 41966, 20: 30800, 25: 22927}, + ("Category Fives", 6, 6): {0: 1827, 15: 30580, 20: 32744, 30: 34849}, + ("Category Fives", 6, 7): {0: 5496, 20: 47569, 25: 32784, 30: 14151}, + ("Category Fives", 6, 8): {0: 2920, 20: 39283, 25: 37178, 30: 20619}, ("Category Fives", 7, 0): {0: 100000}, - ("Category Fives", 7, 1): {0: 27826, 5: 39154, 10: 23567, 15: 9453}, - ("Category Fives", 7, 2): {0: 7609, 5: 24193, 10: 31722, 15: 23214, 20: 10140, 25: 3122}, - ("Category Fives", 7, 3): {0: 2262, 5: 11013, 10: 24443, 15: 29307, 20: 21387, 25: 11588}, - ("Category Fives", 7, 4): {0: 618, 5: 4583, 10: 14761, 15: 26159, 20: 28335, 25: 18050, 30: 7494}, - ("Category Fives", 7, 5): {0: 183, 10: 9616, 15: 19685, 20: 28915, 25: 26000, 30: 12883, 35: 2718}, - ("Category Fives", 7, 6): {0: 670, 15: 16878, 20: 25572, 25: 30456, 30: 20695, 35: 5729}, - ("Category Fives", 7, 7): {0: 255, 15: 9718, 20: 20696, 25: 31883, 30: 27333, 35: 10115}, - ("Category Fives", 7, 8): {0: 927, 15: 4700, 20: 15292, 25: 30298, 30: 33015, 35: 15768}, + ("Category Fives", 7, 1): {0: 27826, 5: 39154, 15: 33020}, + ("Category Fives", 7, 2): {0: 7609, 10: 55915, 20: 36476}, + ("Category Fives", 7, 3): {0: 2262, 10: 35456, 20: 62282}, + ("Category Fives", 7, 4): {0: 5201, 15: 40920, 25: 53879}, + ("Category Fives", 7, 5): {0: 1890, 20: 56509, 30: 41601}, + ("Category Fives", 7, 6): {0: 4506, 20: 38614, 25: 30456, 30: 26424}, + ("Category Fives", 7, 7): {0: 2107, 25: 60445, 35: 37448}, + ("Category Fives", 7, 8): {0: 5627, 25: 45590, 30: 33015, 35: 15768}, ("Category Fives", 8, 0): {0: 100000}, - ("Category Fives", 8, 1): {0: 23333, 5: 37259, 10: 25947, 15: 10392, 20: 3069}, - ("Category Fives", 8, 2): {0: 5425, 5: 18915, 10: 29380, 15: 25994, 20: 14056, 25: 6230}, - ("Category Fives", 8, 3): {0: 1258, 5: 7317, 10: 18783, 15: 27375, 20: 24542, 25: 14322, 30: 6403}, - ("Category Fives", 8, 4): {0: 271, 10: 11864, 15: 20267, 20: 27158, 25: 23589, 30: 12529, 35: 4322}, - ("Category Fives", 8, 5): {0: 943, 10: 4260, 15: 12456, 20: 23115, 25: 27968, 30: 20704, 35: 10554}, - ("Category Fives", 8, 6): {0: 281, 15: 8625, 20: 17201, 25: 27484, 30: 27178, 35: 15414, 40: 3817}, - ("Category Fives", 8, 7): {0: 746, 20: 14964, 25: 23717, 30: 30426, 35: 22677, 40: 7470}, - ("Category Fives", 8, 8): {0: 261, 20: 8927, 25: 18714, 30: 31084, 35: 29126, 40: 11888}, + ("Category Fives", 8, 1): {0: 23333, 5: 37259, 15: 39408}, + ("Category Fives", 8, 2): {0: 5425, 10: 48295, 20: 46280}, + ("Category Fives", 8, 3): {0: 1258, 15: 53475, 25: 45267}, + ("Category Fives", 8, 4): {0: 2752, 20: 56808, 30: 40440}, + ("Category Fives", 8, 5): {0: 5203, 20: 35571, 30: 59226}, + ("Category Fives", 8, 6): {0: 1970, 25: 51621, 35: 46409}, + ("Category Fives", 8, 7): {0: 4281, 25: 35146, 30: 30426, 40: 30147}, + ("Category Fives", 8, 8): {0: 2040, 30: 56946, 40: 41014}, ("Category Sixes", 0, 0): {0: 100000}, ("Category Sixes", 0, 1): {0: 100000}, ("Category Sixes", 0, 2): {0: 100000}, @@ -431,8 +431,8 @@ ("Category Sixes", 1, 7): {0: 28251, 6: 71749}, ("Category Sixes", 1, 8): {0: 23206, 6: 76794}, ("Category Sixes", 2, 0): {0: 100000}, - ("Category Sixes", 2, 1): {0: 69463, 6: 27651, 12: 2886}, - ("Category Sixes", 2, 2): {0: 47896, 6: 42794, 12: 9310}, + ("Category Sixes", 2, 1): {0: 69463, 6: 30537}, + ("Category Sixes", 2, 2): {0: 47896, 6: 52104}, ("Category Sixes", 2, 3): {0: 33394, 6: 48757, 12: 17849}, ("Category Sixes", 2, 4): {0: 23552, 6: 49554, 12: 26894}, ("Category Sixes", 2, 5): {0: 16090, 6: 48098, 12: 35812}, @@ -440,59 +440,59 @@ ("Category Sixes", 2, 7): {0: 7737, 6: 40480, 12: 51783}, ("Category Sixes", 2, 8): {0: 5379, 6: 35672, 12: 58949}, ("Category Sixes", 3, 0): {0: 100000}, - ("Category Sixes", 3, 1): {0: 57718, 6: 34818, 12: 7464}, - ("Category Sixes", 3, 2): {0: 33610, 6: 44328, 12: 19159, 18: 2903}, - ("Category Sixes", 3, 3): {0: 19366, 6: 42246, 12: 30952, 18: 7436}, + ("Category Sixes", 3, 1): {0: 57718, 6: 42282}, + ("Category Sixes", 3, 2): {0: 33610, 6: 44328, 12: 22062}, + ("Category Sixes", 3, 3): {0: 19366, 6: 42246, 12: 38388}, ("Category Sixes", 3, 4): {0: 11144, 6: 36281, 12: 38817, 18: 13758}, ("Category Sixes", 3, 5): {0: 6414, 6: 28891, 12: 43114, 18: 21581}, - ("Category Sixes", 3, 6): {0: 3870, 6: 22394, 12: 44318, 18: 29418}, - ("Category Sixes", 3, 7): {0: 2188, 6: 16803, 12: 43487, 18: 37522}, - ("Category Sixes", 3, 8): {0: 1289, 6: 12421, 12: 41082, 18: 45208}, + ("Category Sixes", 3, 6): {0: 3870, 12: 66712, 18: 29418}, + ("Category Sixes", 3, 7): {0: 2188, 12: 60290, 18: 37522}, + ("Category Sixes", 3, 8): {0: 1289, 12: 53503, 18: 45208}, ("Category Sixes", 4, 0): {0: 100000}, ("Category Sixes", 4, 1): {0: 48197, 6: 38521, 12: 13282}, - ("Category Sixes", 4, 2): {0: 23155, 6: 41179, 12: 26935, 18: 8731}, - ("Category Sixes", 4, 3): {0: 11256, 6: 32609, 12: 35588, 18: 17390, 24: 3157}, - ("Category Sixes", 4, 4): {0: 5324, 6: 23265, 12: 37209, 18: 26929, 24: 7273}, - ("Category Sixes", 4, 5): {0: 2658, 6: 15488, 12: 34685, 18: 34476, 24: 12693}, - ("Category Sixes", 4, 6): {0: 1282, 6: 9997, 12: 29855, 18: 39379, 24: 19487}, - ("Category Sixes", 4, 7): {0: 588, 6: 6202, 12: 24396, 18: 41935, 24: 26879}, - ("Category Sixes", 4, 8): {0: 317, 6: 3863, 12: 19042, 18: 42180, 24: 34598}, + ("Category Sixes", 4, 2): {0: 23155, 6: 41179, 12: 35666}, + ("Category Sixes", 4, 3): {0: 11256, 6: 32609, 12: 35588, 18: 20547}, + ("Category Sixes", 4, 4): {0: 5324, 12: 60474, 18: 34202}, + ("Category Sixes", 4, 5): {0: 2658, 12: 50173, 18: 34476, 24: 12693}, + ("Category Sixes", 4, 6): {0: 1282, 12: 39852, 18: 39379, 24: 19487}, + ("Category Sixes", 4, 7): {0: 588, 12: 30598, 18: 41935, 24: 26879}, + ("Category Sixes", 4, 8): {0: 4180, 18: 61222, 24: 34598}, ("Category Sixes", 5, 0): {0: 100000}, - ("Category Sixes", 5, 1): {0: 40393, 6: 39904, 12: 16206, 18: 3497}, - ("Category Sixes", 5, 2): {0: 16202, 6: 35664, 12: 31241, 18: 13612, 24: 3281}, - ("Category Sixes", 5, 3): {0: 6456, 6: 23539, 12: 34585, 18: 25020, 24: 10400}, - ("Category Sixes", 5, 4): {0: 2581, 6: 13980, 12: 30355, 18: 32198, 24: 17115, 30: 3771}, - ("Category Sixes", 5, 5): {0: 1119, 6: 7775, 12: 23063, 18: 34716, 24: 25568, 30: 7759}, - ("Category Sixes", 5, 6): {0: 392, 6: 4171, 12: 16724, 18: 32792, 24: 32829, 30: 13092}, - ("Category Sixes", 5, 7): {0: 197, 12: 13627, 18: 29190, 24: 37560, 30: 19426}, - ("Category Sixes", 5, 8): {0: 1246, 12: 7404, 18: 24560, 24: 40134, 30: 26656}, + ("Category Sixes", 5, 1): {0: 40393, 6: 39904, 12: 19703}, + ("Category Sixes", 5, 2): {0: 16202, 6: 35664, 12: 31241, 18: 16893}, + ("Category Sixes", 5, 3): {0: 6456, 12: 58124, 18: 25020, 24: 10400}, + ("Category Sixes", 5, 4): {0: 2581, 12: 44335, 18: 32198, 24: 20886}, + ("Category Sixes", 5, 5): {0: 1119, 12: 30838, 18: 34716, 24: 33327}, + ("Category Sixes", 5, 6): {0: 4563, 18: 49516, 24: 32829, 30: 13092}, + ("Category Sixes", 5, 7): {0: 2315, 18: 40699, 24: 37560, 30: 19426}, + ("Category Sixes", 5, 8): {0: 1246, 18: 31964, 24: 40134, 30: 26656}, ("Category Sixes", 6, 0): {0: 100000}, - ("Category Sixes", 6, 1): {0: 33316, 6: 40218, 12: 20198, 18: 6268}, - ("Category Sixes", 6, 2): {0: 11256, 6: 29444, 12: 32590, 18: 19196, 24: 7514}, - ("Category Sixes", 6, 3): {0: 3787, 6: 16266, 12: 29873, 18: 29107, 24: 15863, 30: 5104}, - ("Category Sixes", 6, 4): {0: 1286, 6: 8066, 12: 21653, 18: 31264, 24: 25039, 30: 12692}, - ("Category Sixes", 6, 5): {0: 413, 6: 3777, 12: 13962, 18: 27705, 24: 30919, 30: 18670, 36: 4554}, - ("Category Sixes", 6, 6): {0: 146, 12: 10040, 18: 22320, 24: 32923, 30: 26086, 36: 8485}, - ("Category Sixes", 6, 7): {0: 814, 12: 4698, 18: 16286, 24: 31577, 30: 32487, 36: 14138}, - ("Category Sixes", 6, 8): {0: 328, 18: 14004, 24: 28064, 30: 37212, 36: 20392}, + ("Category Sixes", 6, 1): {0: 33316, 6: 40218, 18: 26466}, + ("Category Sixes", 6, 2): {0: 11256, 6: 29444, 12: 32590, 24: 26710}, + ("Category Sixes", 6, 3): {0: 3787, 12: 46139, 18: 29107, 24: 20967}, + ("Category Sixes", 6, 4): {0: 1286, 12: 29719, 18: 31264, 24: 25039, 30: 12692}, + ("Category Sixes", 6, 5): {0: 4190, 18: 41667, 24: 30919, 30: 23224}, + ("Category Sixes", 6, 6): {0: 1804, 18: 30702, 24: 32923, 30: 34571}, + ("Category Sixes", 6, 7): {0: 51, 24: 53324, 30: 32487, 36: 14138}, + ("Category Sixes", 6, 8): {0: 2886, 24: 39510, 30: 37212, 36: 20392}, ("Category Sixes", 7, 0): {0: 100000}, - ("Category Sixes", 7, 1): {0: 27852, 6: 38984, 12: 23499, 18: 9665}, - ("Category Sixes", 7, 2): {0: 7883, 6: 23846, 12: 31558, 18: 23295, 24: 10316, 30: 3102}, - ("Category Sixes", 7, 3): {0: 2186, 6: 10928, 12: 24321, 18: 29650, 24: 21177, 30: 9209, 36: 2529}, - ("Category Sixes", 7, 4): {0: 603, 6: 4459, 12: 14673, 18: 26303, 24: 28335, 30: 18228, 36: 7399}, - ("Category Sixes", 7, 5): {0: 172, 12: 9654, 18: 19381, 24: 29254, 30: 25790, 36: 12992, 42: 2757}, - ("Category Sixes", 7, 6): {0: 704, 12: 3864, 18: 13039, 24: 25760, 30: 30698, 36: 20143, 42: 5792}, - ("Category Sixes", 7, 7): {0: 257, 18: 9857, 24: 20557, 30: 31709, 36: 27546, 42: 10074}, - ("Category Sixes", 7, 8): {0: 872, 18: 4658, 24: 15419, 30: 30259, 36: 33183, 42: 15609}, + ("Category Sixes", 7, 1): {0: 27852, 6: 38984, 18: 33164}, + ("Category Sixes", 7, 2): {0: 7883, 12: 55404, 24: 36713}, + ("Category Sixes", 7, 3): {0: 2186, 12: 35249, 18: 29650, 30: 32915}, + ("Category Sixes", 7, 4): {0: 5062, 18: 40976, 24: 28335, 36: 25627}, + ("Category Sixes", 7, 5): {0: 1947, 18: 27260, 24: 29254, 30: 25790, 36: 15749}, + ("Category Sixes", 7, 6): {0: 4568, 24: 38799, 30: 30698, 42: 25935}, + ("Category Sixes", 7, 7): {0: 2081, 24: 28590, 30: 31709, 36: 37620}, + ("Category Sixes", 7, 8): {0: 73, 30: 51135, 36: 33183, 42: 15609}, ("Category Sixes", 8, 0): {0: 100000}, - ("Category Sixes", 8, 1): {0: 23220, 6: 37213, 12: 25961, 18: 10483, 24: 3123}, - ("Category Sixes", 8, 2): {0: 5280, 6: 18943, 12: 29664, 18: 25777, 24: 14170, 30: 6166}, - ("Category Sixes", 8, 3): {0: 1246, 6: 7112, 12: 18757, 18: 27277, 24: 24802, 30: 14351, 36: 6455}, - ("Category Sixes", 8, 4): {0: 301, 12: 12044, 18: 20247, 24: 27146, 30: 23403, 36: 12524, 42: 4335}, - ("Category Sixes", 8, 5): {0: 859, 12: 4241, 18: 12477, 24: 23471, 30: 27655, 36: 20803, 42: 10494}, - ("Category Sixes", 8, 6): {0: 277, 18: 8656, 24: 17373, 30: 27347, 36: 27024, 42: 15394, 48: 3929}, - ("Category Sixes", 8, 7): {0: 766, 18: 3503, 24: 11451, 30: 23581, 36: 30772, 42: 22654, 48: 7273}, - ("Category Sixes", 8, 8): {6: 262, 24: 8866, 30: 18755, 36: 31116, 42: 28870, 48: 12131}, + ("Category Sixes", 8, 1): {0: 23220, 6: 37213, 12: 25961, 18: 13606}, + ("Category Sixes", 8, 2): {0: 5280, 12: 48607, 18: 25777, 30: 20336}, + ("Category Sixes", 8, 3): {0: 1246, 12: 25869, 18: 27277, 30: 45608}, + ("Category Sixes", 8, 4): {0: 2761, 18: 29831, 24: 27146, 36: 40262}, + ("Category Sixes", 8, 5): {0: 5100, 24: 35948, 30: 27655, 42: 31297}, + ("Category Sixes", 8, 6): {0: 2067, 30: 51586, 36: 27024, 42: 19323}, + ("Category Sixes", 8, 7): {0: 4269, 30: 35032, 36: 30772, 48: 29927}, + ("Category Sixes", 8, 8): {6: 2012, 30: 25871, 36: 31116, 42: 28870, 48: 12131}, ("Category Choice", 0, 0): {0: 100000}, ("Category Choice", 0, 1): {0: 100000}, ("Category Choice", 0, 2): {0: 100000}, @@ -503,77 +503,77 @@ ("Category Choice", 0, 7): {0: 100000}, ("Category Choice", 0, 8): {0: 100000}, ("Category Choice", 1, 0): {0: 100000}, - ("Category Choice", 1, 1): {1: 16642, 3: 33501, 5: 33218, 6: 16639}, - ("Category Choice", 1, 2): {1: 10921, 3: 22060, 5: 39231, 6: 27788}, - ("Category Choice", 1, 3): {1: 9416, 4: 27917, 5: 22740, 6: 39927}, - ("Category Choice", 1, 4): {1: 15490, 3: 15489, 6: 69021}, - ("Category Choice", 1, 5): {1: 12817, 3: 12757, 6: 74426}, - ("Category Choice", 1, 6): {1: 10513, 3: 10719, 6: 78768}, - ("Category Choice", 1, 7): {1: 8893, 6: 91107}, - ("Category Choice", 1, 8): {1: 14698, 6: 85302}, + ("Category Choice", 1, 1): {1: 33315, 5: 66685}, + ("Category Choice", 1, 2): {1: 10921, 5: 89079}, + ("Category Choice", 1, 3): {1: 27995, 6: 72005}, + ("Category Choice", 1, 4): {1: 15490, 6: 84510}, + ("Category Choice", 1, 5): {1: 6390, 6: 93610}, + ("Category Choice", 1, 6): {1: 34656, 6: 65344}, + ("Category Choice", 1, 7): {1: 28829, 6: 71171}, + ("Category Choice", 1, 8): {1: 23996, 6: 76004}, ("Category Choice", 2, 0): {0: 100000}, - ("Category Choice", 2, 1): {2: 8504, 6: 32987, 8: 30493, 11: 28016}, - ("Category Choice", 2, 2): {2: 3714, 7: 33270, 9: 25859, 11: 37157}, - ("Category Choice", 2, 3): {2: 5113, 5: 10402, 8: 25783, 10: 24173, 12: 34529}, - ("Category Choice", 2, 4): {2: 1783, 4: 8908, 8: 23189, 10: 22115, 12: 44005}, - ("Category Choice", 2, 5): {2: 7575, 8: 20444, 11: 38062, 12: 33919}, - ("Category Choice", 2, 6): {2: 5153, 9: 26383, 11: 25950, 12: 42514}, - ("Category Choice", 2, 7): {2: 3638, 7: 15197, 9: 14988, 12: 66177}, - ("Category Choice", 2, 8): {2: 2448, 7: 13306, 9: 12754, 12: 71492}, + ("Category Choice", 2, 1): {2: 16796, 8: 83204}, + ("Category Choice", 2, 2): {2: 22212, 10: 77788}, + ("Category Choice", 2, 3): {2: 29002, 11: 70998}, + ("Category Choice", 2, 4): {2: 22485, 11: 77515}, + ("Category Choice", 2, 5): {2: 28019, 12: 71981}, + ("Category Choice", 2, 6): {2: 23193, 12: 76807}, + ("Category Choice", 2, 7): {2: 11255, 8: 38369, 12: 50376}, + ("Category Choice", 2, 8): {2: 9297, 12: 90703}, ("Category Choice", 3, 0): {0: 100000}, - ("Category Choice", 3, 1): {3: 4589, 6: 11560, 9: 21469, 11: 25007, 13: 28332, 15: 9043}, - ("Category Choice", 3, 2): {3: 1380, 6: 8622, 9: 14417, 12: 23457, 14: 24807, 17: 27317}, - ("Category Choice", 3, 3): {3: 1605, 7: 9370, 10: 13491, 13: 24408, 15: 23065, 17: 28061}, - ("Category Choice", 3, 4): {3: 7212, 13: 32000, 15: 22707, 17: 38081}, - ("Category Choice", 3, 5): {3: 7989, 11: 10756, 14: 23811, 16: 21668, 18: 35776}, - ("Category Choice", 3, 6): {3: 3251, 10: 10272, 14: 21653, 17: 37049, 18: 27775}, - ("Category Choice", 3, 7): {3: 1018, 9: 8591, 15: 28080, 17: 26469, 18: 35842}, - ("Category Choice", 3, 8): {3: 6842, 15: 25118, 17: 24534, 18: 43506}, + ("Category Choice", 3, 1): {3: 25983, 12: 74017}, + ("Category Choice", 3, 2): {3: 24419, 14: 75581}, + ("Category Choice", 3, 3): {3: 24466, 15: 75534}, + ("Category Choice", 3, 4): {3: 25866, 16: 74134}, + ("Category Choice", 3, 5): {3: 30994, 17: 69006}, + ("Category Choice", 3, 6): {3: 13523, 13: 41606, 17: 44871}, + ("Category Choice", 3, 7): {3: 28667, 18: 71333}, + ("Category Choice", 3, 8): {3: 23852, 18: 76148}, ("Category Choice", 4, 0): {0: 100000}, - ("Category Choice", 4, 1): {4: 5386, 9: 10561, 13: 28501, 15: 21902, 17: 23999, 19: 9651}, - ("Category Choice", 4, 2): {4: 7510, 12: 10646, 16: 28145, 18: 22596, 19: 17705, 21: 13398}, - ("Category Choice", 4, 3): {4: 2392, 11: 8547, 14: 13300, 18: 29887, 20: 21680, 21: 15876, 23: 8318}, - ("Category Choice", 4, 4): {4: 2258, 12: 8230, 15: 12216, 19: 31486, 21: 20698, 23: 25112}, - ("Category Choice", 4, 5): {4: 2209, 13: 8484, 16: 11343, 19: 21913, 21: 21675, 23: 34376}, - ("Category Choice", 4, 6): {4: 2179, 14: 8704, 17: 12056, 20: 23300, 22: 20656, 24: 33105}, - ("Category Choice", 4, 7): {5: 7652, 19: 20489, 21: 20365, 23: 26176, 24: 25318}, - ("Category Choice", 4, 8): {5: 3231, 16: 8958, 21: 28789, 23: 25837, 24: 33185}, + ("Category Choice", 4, 1): {4: 1125, 7: 32443, 16: 66432}, + ("Category Choice", 4, 2): {4: 18156, 14: 39494, 18: 42350}, + ("Category Choice", 4, 3): {4: 538, 9: 32084, 20: 67378}, + ("Category Choice", 4, 4): {4: 30873, 21: 69127}, + ("Category Choice", 4, 5): {4: 31056, 22: 68944}, + ("Category Choice", 4, 6): {4: 22939, 19: 43956, 23: 33105}, + ("Category Choice", 4, 7): {5: 16935, 19: 41836, 23: 41229}, + ("Category Choice", 4, 8): {5: 31948, 24: 68052}, ("Category Choice", 5, 0): {0: 100000}, - ("Category Choice", 5, 1): {5: 1575, 10: 8293, 13: 12130, 17: 28045, 20: 40099, 23: 9858}, - ("Category Choice", 5, 2): {5: 3298, 14: 10211, 17: 13118, 21: 28204, 24: 34078, 26: 11091}, - ("Category Choice", 5, 3): {6: 2633, 15: 8316, 18: 11302, 22: 26605, 24: 20431, 26: 22253, 28: 8460}, - ("Category Choice", 5, 4): {5: 4084, 17: 9592, 20: 13422, 24: 28620, 26: 20353, 27: 14979, 29: 8950}, - ("Category Choice", 5, 5): {6: 348, 14: 8075, 20: 10195, 22: 14679, 25: 22335, 28: 28253, 29: 16115}, - ("Category Choice", 5, 6): {7: 3204, 19: 9258, 22: 11859, 25: 21412, 27: 20895, 29: 33372}, - ("Category Choice", 5, 7): {8: 2983, 20: 9564, 23: 12501, 26: 22628, 29: 34285, 30: 18039}, - ("Category Choice", 5, 8): {9: 323, 17: 8259, 25: 20762, 27: 20118, 29: 25318, 30: 25220}, + ("Category Choice", 5, 1): {5: 21998, 15: 38001, 19: 40001}, + ("Category Choice", 5, 2): {5: 26627, 19: 38217, 23: 35156}, + ("Category Choice", 5, 3): {6: 22251, 24: 77749}, + ("Category Choice", 5, 4): {5: 27098, 22: 39632, 26: 33270}, + ("Category Choice", 5, 5): {6: 1166, 16: 32131, 27: 66703}, + ("Category Choice", 5, 6): {7: 1177, 17: 32221, 28: 66602}, + ("Category Choice", 5, 7): {8: 25048, 25: 42590, 29: 32362}, + ("Category Choice", 5, 8): {9: 18270, 25: 41089, 29: 40641}, ("Category Choice", 6, 0): {0: 100000}, - ("Category Choice", 6, 1): {6: 6102, 17: 21746, 21: 26524, 23: 25004, 25: 11086, 27: 9538}, - ("Category Choice", 6, 2): {8: 1504, 16: 8676, 20: 10032, 22: 14673, 26: 27312, 27: 16609, 29: 12133, 31: 9061}, - ("Category Choice", 6, 3): {6: 1896, 18: 8914, 22: 10226, 24: 14822, 28: 27213, 31: 28868, 33: 8061}, - ("Category Choice", 6, 4): {9: 441, 17: 8018, 25: 22453, 29: 26803, 32: 32275, 34: 10010}, - ("Category Choice", 6, 5): {10: 1788, 21: 8763, 25: 10319, 27: 14763, 31: 30144, 33: 23879, 35: 10344}, - ("Category Choice", 6, 6): {13: 876, 21: 8303, 28: 24086, 31: 21314, 34: 28149, 35: 17272}, - ("Category Choice", 6, 7): {12: 3570, 25: 9625, 28: 11348, 31: 20423, 33: 20469, 35: 34565}, - ("Category Choice", 6, 8): {12: 3450, 26: 9544, 29: 12230, 32: 22130, 35: 33671, 36: 18975}, + ("Category Choice", 6, 1): {6: 27848, 23: 72152}, + ("Category Choice", 6, 2): {8: 27078, 27: 72922}, + ("Category Choice", 6, 3): {6: 27876, 29: 72124}, + ("Category Choice", 6, 4): {9: 30912, 31: 69088}, + ("Category Choice", 6, 5): {10: 27761, 28: 38016, 32: 34223}, + ("Category Choice", 6, 6): {13: 25547, 29: 39452, 33: 35001}, + ("Category Choice", 6, 7): {12: 767, 22: 32355, 34: 66878}, + ("Category Choice", 6, 8): {12: 25224, 31: 41692, 35: 33084}, ("Category Choice", 7, 0): {0: 100000}, - ("Category Choice", 7, 1): {7: 1237, 15: 8100, 21: 23947, 25: 25361, 27: 22186, 31: 19169}, - ("Category Choice", 7, 2): {10: 2086, 20: 8960, 26: 23657, 30: 25264, 31: 15759, 33: 12356, 35: 11918}, - ("Category Choice", 7, 3): {10: 4980, 24: 9637, 27: 11247, 29: 15046, 33: 33492, 35: 13130, 37: 12468}, - ("Category Choice", 7, 4): {13: 2260, 24: 8651, 30: 23022, 34: 25656, 37: 29910, 39: 10501}, - ("Category Choice", 7, 5): {12: 3879, 27: 8154, 30: 10292, 32: 14692, 36: 27425, 38: 23596, 40: 11962}, - ("Category Choice", 7, 6): {14: 1957, 27: 8230, 33: 23945, 37: 29286, 39: 24519, 41: 12063}, - ("Category Choice", 7, 7): {16: 599, 26: 8344, 34: 22981, 37: 20883, 40: 28045, 42: 19148}, - ("Category Choice", 7, 8): {14: 3639, 31: 8907, 34: 10904, 37: 20148, 39: 20219, 41: 21627, 42: 14556}, + ("Category Choice", 7, 1): {7: 1237, 15: 32047, 27: 66716}, + ("Category Choice", 7, 2): {10: 27324, 31: 72676}, + ("Category Choice", 7, 3): {10: 759, 20: 32233, 34: 67008}, + ("Category Choice", 7, 4): {13: 26663, 35: 73337}, + ("Category Choice", 7, 5): {12: 29276, 37: 70724}, + ("Category Choice", 7, 6): {14: 26539, 38: 73461}, + ("Category Choice", 7, 7): {16: 24675, 35: 38365, 39: 36960}, + ("Category Choice", 7, 8): {14: 2, 19: 31688, 40: 68310}, ("Category Choice", 8, 0): {0: 100000}, - ("Category Choice", 8, 1): {10: 752, 17: 8385, 24: 21460, 26: 15361, 29: 23513, 31: 12710, 35: 17819}, - ("Category Choice", 8, 2): {11: 5900, 26: 10331, 29: 11435, 31: 14533, 34: 23939, 36: 13855, 38: 10165, 40: 9842}, - ("Category Choice", 8, 3): {12: 2241, 26: 8099, 32: 20474, 34: 14786, 38: 31140, 40: 11751, 42: 11509}, - ("Category Choice", 8, 4): {16: 1327, 27: 8361, 34: 19865, 36: 15078, 40: 32325, 42: 12218, 44: 10826}, - ("Category Choice", 8, 5): {16: 4986, 32: 9031, 35: 10214, 37: 14528, 41: 25608, 42: 16131, 44: 11245, 46: 8257}, - ("Category Choice", 8, 6): {16: 2392, 32: 8742, 38: 23237, 42: 26333, 45: 30725, 47: 8571}, - ("Category Choice", 8, 7): {20: 1130, 32: 8231, 39: 22137, 43: 28783, 45: 25221, 47: 14498}, - ("Category Choice", 8, 8): {20: 73, 28: 8033, 40: 21670, 43: 20615, 46: 28105, 48: 21504}, + ("Category Choice", 8, 1): {10: 23768, 25: 38280, 30: 37952}, + ("Category Choice", 8, 2): {11: 27666, 31: 38472, 36: 33862}, + ("Category Choice", 8, 3): {12: 24387, 33: 37477, 38: 38136}, + ("Category Choice", 8, 4): {16: 23316, 35: 38117, 40: 38567}, + ("Category Choice", 8, 5): {16: 30949, 42: 69051}, + ("Category Choice", 8, 6): {16: 26968, 43: 73032}, + ("Category Choice", 8, 7): {20: 24559, 44: 75441}, + ("Category Choice", 8, 8): {20: 1, 23: 22731, 41: 37835, 45: 39433}, ("Category Inverse Choice", 0, 0): {0: 100000}, ("Category Inverse Choice", 0, 1): {0: 100000}, ("Category Inverse Choice", 0, 2): {0: 100000}, @@ -584,104 +584,77 @@ ("Category Inverse Choice", 0, 7): {0: 100000}, ("Category Inverse Choice", 0, 8): {0: 100000}, ("Category Inverse Choice", 1, 0): {0: 100000}, - ("Category Inverse Choice", 1, 1): {1: 16642, 3: 33501, 5: 33218, 6: 16639}, - ("Category Inverse Choice", 1, 2): {1: 10921, 3: 22060, 5: 39231, 6: 27788}, - ("Category Inverse Choice", 1, 3): {1: 9416, 4: 27917, 5: 22740, 6: 39927}, - ("Category Inverse Choice", 1, 4): {1: 15490, 3: 15489, 6: 69021}, - ("Category Inverse Choice", 1, 5): {1: 12817, 3: 12757, 6: 74426}, - ("Category Inverse Choice", 1, 6): {1: 10513, 3: 10719, 6: 78768}, - ("Category Inverse Choice", 1, 7): {1: 8893, 6: 91107}, - ("Category Inverse Choice", 1, 8): {1: 14698, 6: 85302}, + ("Category Inverse Choice", 1, 1): {1: 33315, 5: 66685}, + ("Category Inverse Choice", 1, 2): {1: 10921, 5: 89079}, + ("Category Inverse Choice", 1, 3): {1: 27995, 6: 72005}, + ("Category Inverse Choice", 1, 4): {1: 15490, 6: 84510}, + ("Category Inverse Choice", 1, 5): {1: 6390, 6: 93610}, + ("Category Inverse Choice", 1, 6): {1: 34656, 6: 65344}, + ("Category Inverse Choice", 1, 7): {1: 28829, 6: 71171}, + ("Category Inverse Choice", 1, 8): {1: 23996, 6: 76004}, ("Category Inverse Choice", 2, 0): {0: 100000}, - ("Category Inverse Choice", 2, 1): {2: 8504, 6: 32987, 8: 30493, 11: 28016}, - ("Category Inverse Choice", 2, 2): {2: 3714, 7: 33270, 9: 25859, 11: 37157}, - ("Category Inverse Choice", 2, 3): {2: 5113, 5: 10402, 8: 25783, 10: 24173, 12: 34529}, - ("Category Inverse Choice", 2, 4): {2: 1783, 4: 8908, 8: 23189, 10: 22115, 12: 44005}, - ("Category Inverse Choice", 2, 5): {2: 7575, 8: 20444, 11: 38062, 12: 33919}, - ("Category Inverse Choice", 2, 6): {2: 5153, 9: 26383, 11: 25950, 12: 42514}, - ("Category Inverse Choice", 2, 7): {2: 3638, 7: 15197, 9: 14988, 12: 66177}, - ("Category Inverse Choice", 2, 8): {2: 2448, 7: 13306, 9: 12754, 12: 71492}, + ("Category Inverse Choice", 2, 1): {2: 16796, 8: 83204}, + ("Category Inverse Choice", 2, 2): {2: 22212, 10: 77788}, + ("Category Inverse Choice", 2, 3): {2: 29002, 11: 70998}, + ("Category Inverse Choice", 2, 4): {2: 22485, 11: 77515}, + ("Category Inverse Choice", 2, 5): {2: 28019, 12: 71981}, + ("Category Inverse Choice", 2, 6): {2: 23193, 12: 76807}, + ("Category Inverse Choice", 2, 7): {2: 11255, 8: 38369, 12: 50376}, + ("Category Inverse Choice", 2, 8): {2: 9297, 12: 90703}, ("Category Inverse Choice", 3, 0): {0: 100000}, - ("Category Inverse Choice", 3, 1): {3: 4589, 6: 11560, 9: 21469, 11: 25007, 13: 28332, 15: 9043}, - ("Category Inverse Choice", 3, 2): {3: 1380, 6: 8622, 9: 14417, 12: 23457, 14: 24807, 17: 27317}, - ("Category Inverse Choice", 3, 3): {3: 1605, 7: 9370, 10: 13491, 13: 24408, 15: 23065, 17: 28061}, - ("Category Inverse Choice", 3, 4): {3: 7212, 13: 32000, 15: 22707, 17: 38081}, - ("Category Inverse Choice", 3, 5): {3: 7989, 11: 10756, 14: 23811, 16: 21668, 18: 35776}, - ("Category Inverse Choice", 3, 6): {3: 3251, 10: 10272, 14: 21653, 17: 37049, 18: 27775}, - ("Category Inverse Choice", 3, 7): {3: 1018, 9: 8591, 15: 28080, 17: 26469, 18: 35842}, - ("Category Inverse Choice", 3, 8): {3: 6842, 15: 25118, 17: 24534, 18: 43506}, + ("Category Inverse Choice", 3, 1): {3: 25983, 12: 74017}, + ("Category Inverse Choice", 3, 2): {3: 24419, 14: 75581}, + ("Category Inverse Choice", 3, 3): {3: 24466, 15: 75534}, + ("Category Inverse Choice", 3, 4): {3: 25866, 16: 74134}, + ("Category Inverse Choice", 3, 5): {3: 30994, 17: 69006}, + ("Category Inverse Choice", 3, 6): {3: 13523, 13: 41606, 17: 44871}, + ("Category Inverse Choice", 3, 7): {3: 28667, 18: 71333}, + ("Category Inverse Choice", 3, 8): {3: 23852, 18: 76148}, ("Category Inverse Choice", 4, 0): {0: 100000}, - ("Category Inverse Choice", 4, 1): {4: 5386, 9: 10561, 13: 28501, 15: 21902, 17: 23999, 19: 9651}, - ("Category Inverse Choice", 4, 2): {4: 7510, 12: 10646, 16: 28145, 18: 22596, 19: 17705, 21: 13398}, - ("Category Inverse Choice", 4, 3): {4: 2392, 11: 8547, 14: 13300, 18: 29887, 20: 21680, 21: 15876, 23: 8318}, - ("Category Inverse Choice", 4, 4): {4: 2258, 12: 8230, 15: 12216, 19: 31486, 21: 20698, 23: 25112}, - ("Category Inverse Choice", 4, 5): {4: 2209, 13: 8484, 16: 11343, 19: 21913, 21: 21675, 23: 34376}, - ("Category Inverse Choice", 4, 6): {4: 2179, 14: 8704, 17: 12056, 20: 23300, 22: 20656, 24: 33105}, - ("Category Inverse Choice", 4, 7): {5: 7652, 19: 20489, 21: 20365, 23: 26176, 24: 25318}, - ("Category Inverse Choice", 4, 8): {5: 3231, 16: 8958, 21: 28789, 23: 25837, 24: 33185}, + ("Category Inverse Choice", 4, 1): {4: 1125, 7: 32443, 16: 66432}, + ("Category Inverse Choice", 4, 2): {4: 18156, 14: 39494, 18: 42350}, + ("Category Inverse Choice", 4, 3): {4: 538, 9: 32084, 20: 67378}, + ("Category Inverse Choice", 4, 4): {4: 30873, 21: 69127}, + ("Category Inverse Choice", 4, 5): {4: 31056, 22: 68944}, + ("Category Inverse Choice", 4, 6): {4: 22939, 19: 43956, 23: 33105}, + ("Category Inverse Choice", 4, 7): {5: 16935, 19: 41836, 23: 41229}, + ("Category Inverse Choice", 4, 8): {5: 31948, 24: 68052}, ("Category Inverse Choice", 5, 0): {0: 100000}, - ("Category Inverse Choice", 5, 1): {5: 1575, 10: 8293, 13: 12130, 17: 28045, 20: 40099, 23: 9858}, - ("Category Inverse Choice", 5, 2): {5: 3298, 14: 10211, 17: 13118, 21: 28204, 24: 34078, 26: 11091}, - ("Category Inverse Choice", 5, 3): {6: 2633, 15: 8316, 18: 11302, 22: 26605, 24: 20431, 26: 22253, 28: 8460}, - ("Category Inverse Choice", 5, 4): {5: 4084, 17: 9592, 20: 13422, 24: 28620, 26: 20353, 27: 14979, 29: 8950}, - ("Category Inverse Choice", 5, 5): {6: 348, 14: 8075, 20: 10195, 22: 14679, 25: 22335, 28: 28253, 29: 16115}, - ("Category Inverse Choice", 5, 6): {7: 3204, 19: 9258, 22: 11859, 25: 21412, 27: 20895, 29: 33372}, - ("Category Inverse Choice", 5, 7): {8: 2983, 20: 9564, 23: 12501, 26: 22628, 29: 34285, 30: 18039}, - ("Category Inverse Choice", 5, 8): {9: 323, 17: 8259, 25: 20762, 27: 20118, 29: 25318, 30: 25220}, + ("Category Inverse Choice", 5, 1): {5: 21998, 15: 38001, 19: 40001}, + ("Category Inverse Choice", 5, 2): {5: 26627, 19: 38217, 23: 35156}, + ("Category Inverse Choice", 5, 3): {6: 22251, 24: 77749}, + ("Category Inverse Choice", 5, 4): {5: 27098, 22: 39632, 26: 33270}, + ("Category Inverse Choice", 5, 5): {6: 1166, 16: 32131, 27: 66703}, + ("Category Inverse Choice", 5, 6): {7: 1177, 17: 32221, 28: 66602}, + ("Category Inverse Choice", 5, 7): {8: 25048, 25: 42590, 29: 32362}, + ("Category Inverse Choice", 5, 8): {9: 18270, 25: 41089, 29: 40641}, ("Category Inverse Choice", 6, 0): {0: 100000}, - ("Category Inverse Choice", 6, 1): {6: 6102, 17: 21746, 21: 26524, 23: 25004, 25: 11086, 27: 9538}, - ("Category Inverse Choice", 6, 2): { - 8: 1504, - 16: 8676, - 20: 10032, - 22: 14673, - 26: 27312, - 27: 16609, - 29: 12133, - 31: 9061, - }, - ("Category Inverse Choice", 6, 3): {6: 1896, 18: 8914, 22: 10226, 24: 14822, 28: 27213, 31: 28868, 33: 8061}, - ("Category Inverse Choice", 6, 4): {9: 441, 17: 8018, 25: 22453, 29: 26803, 32: 32275, 34: 10010}, - ("Category Inverse Choice", 6, 5): {10: 1788, 21: 8763, 25: 10319, 27: 14763, 31: 30144, 33: 23879, 35: 10344}, - ("Category Inverse Choice", 6, 6): {13: 876, 21: 8303, 28: 24086, 31: 21314, 34: 28149, 35: 17272}, - ("Category Inverse Choice", 6, 7): {12: 3570, 25: 9625, 28: 11348, 31: 20423, 33: 20469, 35: 34565}, - ("Category Inverse Choice", 6, 8): {12: 3450, 26: 9544, 29: 12230, 32: 22130, 35: 33671, 36: 18975}, + ("Category Inverse Choice", 6, 1): {6: 27848, 23: 72152}, + ("Category Inverse Choice", 6, 2): {8: 27078, 27: 72922}, + ("Category Inverse Choice", 6, 3): {6: 27876, 29: 72124}, + ("Category Inverse Choice", 6, 4): {9: 30912, 31: 69088}, + ("Category Inverse Choice", 6, 5): {10: 27761, 28: 38016, 32: 34223}, + ("Category Inverse Choice", 6, 6): {13: 25547, 29: 39452, 33: 35001}, + ("Category Inverse Choice", 6, 7): {12: 767, 22: 32355, 34: 66878}, + ("Category Inverse Choice", 6, 8): {12: 25224, 31: 41692, 35: 33084}, ("Category Inverse Choice", 7, 0): {0: 100000}, - ("Category Inverse Choice", 7, 1): {7: 1237, 15: 8100, 21: 23947, 25: 25361, 27: 22186, 31: 19169}, - ("Category Inverse Choice", 7, 2): {10: 2086, 20: 8960, 26: 23657, 30: 25264, 31: 15759, 33: 12356, 35: 11918}, - ("Category Inverse Choice", 7, 3): {10: 4980, 24: 9637, 27: 11247, 29: 15046, 33: 33492, 35: 13130, 37: 12468}, - ("Category Inverse Choice", 7, 4): {13: 2260, 24: 8651, 30: 23022, 34: 25656, 37: 29910, 39: 10501}, - ("Category Inverse Choice", 7, 5): {12: 3879, 27: 8154, 30: 10292, 32: 14692, 36: 27425, 38: 23596, 40: 11962}, - ("Category Inverse Choice", 7, 6): {14: 1957, 27: 8230, 33: 23945, 37: 29286, 39: 24519, 41: 12063}, - ("Category Inverse Choice", 7, 7): {16: 599, 26: 8344, 34: 22981, 37: 20883, 40: 28045, 42: 19148}, - ("Category Inverse Choice", 7, 8): {14: 3639, 31: 8907, 34: 10904, 37: 20148, 39: 20219, 41: 21627, 42: 14556}, + ("Category Inverse Choice", 7, 1): {7: 1237, 15: 32047, 27: 66716}, + ("Category Inverse Choice", 7, 2): {10: 27324, 31: 72676}, + ("Category Inverse Choice", 7, 3): {10: 759, 20: 32233, 34: 67008}, + ("Category Inverse Choice", 7, 4): {13: 26663, 35: 73337}, + ("Category Inverse Choice", 7, 5): {12: 29276, 37: 70724}, + ("Category Inverse Choice", 7, 6): {14: 26539, 38: 73461}, + ("Category Inverse Choice", 7, 7): {16: 24675, 35: 38365, 39: 36960}, + ("Category Inverse Choice", 7, 8): {14: 2, 19: 31688, 40: 68310}, ("Category Inverse Choice", 8, 0): {0: 100000}, - ("Category Inverse Choice", 8, 1): {10: 752, 17: 8385, 24: 21460, 26: 15361, 29: 23513, 31: 12710, 35: 17819}, - ("Category Inverse Choice", 8, 2): { - 11: 5900, - 26: 10331, - 29: 11435, - 31: 14533, - 34: 23939, - 36: 13855, - 38: 10165, - 40: 9842, - }, - ("Category Inverse Choice", 8, 3): {12: 2241, 26: 8099, 32: 20474, 34: 14786, 38: 31140, 40: 11751, 42: 11509}, - ("Category Inverse Choice", 8, 4): {16: 1327, 27: 8361, 34: 19865, 36: 15078, 40: 32325, 42: 12218, 44: 10826}, - ("Category Inverse Choice", 8, 5): { - 16: 4986, - 32: 9031, - 35: 10214, - 37: 14528, - 41: 25608, - 42: 16131, - 44: 11245, - 46: 8257, - }, - ("Category Inverse Choice", 8, 6): {16: 2392, 32: 8742, 38: 23237, 42: 26333, 45: 30725, 47: 8571}, - ("Category Inverse Choice", 8, 7): {20: 1130, 32: 8231, 39: 22137, 43: 28783, 45: 25221, 47: 14498}, - ("Category Inverse Choice", 8, 8): {20: 73, 28: 8033, 40: 21670, 43: 20615, 46: 28105, 48: 21504}, + ("Category Inverse Choice", 8, 1): {10: 23768, 25: 38280, 30: 37952}, + ("Category Inverse Choice", 8, 2): {11: 27666, 31: 38472, 36: 33862}, + ("Category Inverse Choice", 8, 3): {12: 24387, 33: 37477, 38: 38136}, + ("Category Inverse Choice", 8, 4): {16: 23316, 35: 38117, 40: 38567}, + ("Category Inverse Choice", 8, 5): {16: 30949, 42: 69051}, + ("Category Inverse Choice", 8, 6): {16: 26968, 43: 73032}, + ("Category Inverse Choice", 8, 7): {20: 24559, 44: 75441}, + ("Category Inverse Choice", 8, 8): {20: 1, 23: 22731, 41: 37835, 45: 39433}, ("Category Pair", 0, 0): {0: 100000}, ("Category Pair", 0, 1): {0: 100000}, ("Category Pair", 0, 2): {0: 100000}, @@ -791,7 +764,7 @@ ("Category Three of a Kind", 2, 7): {0: 100000}, ("Category Three of a Kind", 2, 8): {0: 100000}, ("Category Three of a Kind", 3, 0): {0: 100000}, - ("Category Three of a Kind", 3, 1): {0: 97222, 20: 2778}, + ("Category Three of a Kind", 3, 1): {0: 100000}, ("Category Three of a Kind", 3, 2): {0: 88880, 20: 11120}, ("Category Three of a Kind", 3, 3): {0: 78187, 20: 21813}, ("Category Three of a Kind", 3, 4): {0: 67476, 20: 32524}, @@ -881,7 +854,7 @@ ("Category Four of a Kind", 3, 7): {0: 100000}, ("Category Four of a Kind", 3, 8): {0: 100000}, ("Category Four of a Kind", 4, 0): {0: 100000}, - ("Category Four of a Kind", 4, 1): {0: 99516, 30: 484}, + ("Category Four of a Kind", 4, 1): {0: 100000}, ("Category Four of a Kind", 4, 2): {0: 96122, 30: 3878}, ("Category Four of a Kind", 4, 3): {0: 89867, 30: 10133}, ("Category Four of a Kind", 4, 4): {0: 81771, 30: 18229}, @@ -1304,7 +1277,7 @@ ("Category Yacht", 5, 7): {0: 67007, 50: 32993}, ("Category Yacht", 5, 8): {0: 58618, 50: 41382}, ("Category Yacht", 6, 0): {0: 100000}, - ("Category Yacht", 6, 1): {0: 99571, 50: 429}, + ("Category Yacht", 6, 1): {0: 100000}, ("Category Yacht", 6, 2): {0: 94726, 50: 5274}, ("Category Yacht", 6, 3): {0: 84366, 50: 15634}, ("Category Yacht", 6, 4): {0: 70782, 50: 29218}, @@ -1313,7 +1286,7 @@ ("Category Yacht", 6, 7): {0: 33578, 50: 66422}, ("Category Yacht", 6, 8): {0: 25079, 50: 74921}, ("Category Yacht", 7, 0): {0: 100000}, - ("Category Yacht", 7, 1): {0: 98833, 50: 1167}, + ("Category Yacht", 7, 1): {0: 100000}, ("Category Yacht", 7, 2): {0: 87511, 50: 12489}, ("Category Yacht", 7, 3): {0: 68252, 50: 31748}, ("Category Yacht", 7, 4): {0: 49065, 50: 50935}, @@ -1346,51 +1319,51 @@ ("Category Distincts", 2, 6): {1: 1, 2: 99999}, ("Category Distincts", 2, 7): {2: 100000}, ("Category Distincts", 2, 8): {2: 100000}, - ("Category Distincts", 3, 1): {1: 2760, 2: 41714, 3: 55526}, - ("Category Distincts", 3, 2): {1: 78, 3: 99922}, + ("Category Distincts", 3, 1): {1: 2760, 3: 97240}, + ("Category Distincts", 3, 2): {1: 15014, 3: 84986}, ("Category Distincts", 3, 3): {1: 4866, 3: 95134}, ("Category Distincts", 3, 4): {2: 1659, 3: 98341}, ("Category Distincts", 3, 5): {2: 575, 3: 99425}, ("Category Distincts", 3, 6): {2: 200, 3: 99800}, ("Category Distincts", 3, 7): {2: 69, 3: 99931}, ("Category Distincts", 3, 8): {2: 22, 3: 99978}, - ("Category Distincts", 4, 1): {1: 494, 3: 71611, 4: 27895}, - ("Category Distincts", 4, 2): {1: 1893, 3: 36922, 4: 61185}, - ("Category Distincts", 4, 3): {2: 230, 4: 99770}, - ("Category Distincts", 4, 4): {2: 21, 4: 99979}, + ("Category Distincts", 4, 1): {1: 16634, 3: 83366}, + ("Category Distincts", 4, 2): {1: 1893, 4: 98107}, + ("Category Distincts", 4, 3): {2: 19861, 4: 80139}, + ("Category Distincts", 4, 4): {2: 9879, 4: 90121}, ("Category Distincts", 4, 5): {2: 4906, 4: 95094}, ("Category Distincts", 4, 6): {3: 2494, 4: 97506}, ("Category Distincts", 4, 7): {3: 1297, 4: 98703}, ("Category Distincts", 4, 8): {3: 611, 4: 99389}, - ("Category Distincts", 5, 1): {1: 5798, 3: 38538, 4: 55664}, - ("Category Distincts", 5, 2): {2: 196, 4: 68119, 5: 31685}, - ("Category Distincts", 5, 3): {2: 3022, 4: 44724, 5: 52254}, - ("Category Distincts", 5, 4): {3: 722, 4: 31632, 5: 67646}, - ("Category Distincts", 5, 5): {3: 215, 4: 21391, 5: 78394}, - ("Category Distincts", 5, 6): {3: 55, 5: 99945}, - ("Category Distincts", 5, 7): {3: 15, 5: 99985}, + ("Category Distincts", 5, 1): {1: 5798, 4: 94202}, + ("Category Distincts", 5, 2): {2: 11843, 4: 88157}, + ("Category Distincts", 5, 3): {2: 3022, 5: 96978}, + ("Category Distincts", 5, 4): {3: 32354, 5: 67646}, + ("Category Distincts", 5, 5): {3: 21606, 5: 78394}, + ("Category Distincts", 5, 6): {3: 14525, 5: 85475}, + ("Category Distincts", 5, 7): {3: 9660, 5: 90340}, ("Category Distincts", 5, 8): {3: 6463, 5: 93537}, - ("Category Distincts", 6, 1): {1: 2027, 3: 22985, 4: 50464, 5: 24524}, - ("Category Distincts", 6, 2): {2: 3299, 4: 35174, 5: 61527}, - ("Category Distincts", 6, 3): {3: 417, 5: 79954, 6: 19629}, - ("Category Distincts", 6, 4): {3: 7831, 5: 61029, 6: 31140}, - ("Category Distincts", 6, 5): {3: 3699, 5: 54997, 6: 41304}, - ("Category Distincts", 6, 6): {4: 1557, 5: 47225, 6: 51218}, - ("Category Distincts", 6, 7): {4: 728, 5: 40465, 6: 58807}, - ("Category Distincts", 6, 8): {4: 321, 5: 33851, 6: 65828}, - ("Category Distincts", 7, 1): {1: 665, 4: 57970, 5: 41365}, - ("Category Distincts", 7, 2): {2: 839, 5: 75578, 6: 23583}, - ("Category Distincts", 7, 3): {3: 6051, 5: 50312, 6: 43637}, - ("Category Distincts", 7, 4): {3: 1796, 5: 38393, 6: 59811}, - ("Category Distincts", 7, 5): {4: 529, 5: 27728, 6: 71743}, - ("Category Distincts", 7, 6): {4: 164, 6: 99836}, - ("Category Distincts", 7, 7): {4: 53, 6: 99947}, - ("Category Distincts", 7, 8): {4: 14, 6: 99986}, - ("Category Distincts", 8, 1): {1: 7137, 4: 36582, 5: 56281}, - ("Category Distincts", 8, 2): {2: 233, 5: 59964, 6: 39803}, - ("Category Distincts", 8, 3): {3: 1976, 5: 34748, 6: 63276}, - ("Category Distincts", 8, 4): {4: 389, 5: 21008, 6: 78603}, - ("Category Distincts", 8, 5): {4: 78, 6: 99922}, + ("Category Distincts", 6, 1): {1: 25012, 4: 74988}, + ("Category Distincts", 6, 2): {2: 3299, 5: 96701}, + ("Category Distincts", 6, 3): {3: 17793, 5: 82207}, + ("Category Distincts", 6, 4): {3: 7831, 5: 92169}, + ("Category Distincts", 6, 5): {3: 3699, 6: 96301}, + ("Category Distincts", 6, 6): {4: 1557, 6: 98443}, + ("Category Distincts", 6, 7): {4: 728, 6: 99272}, + ("Category Distincts", 6, 8): {4: 321, 6: 99679}, + ("Category Distincts", 7, 1): {1: 13671, 5: 86329}, + ("Category Distincts", 7, 2): {2: 19686, 5: 80314}, + ("Category Distincts", 7, 3): {3: 6051, 6: 93949}, + ("Category Distincts", 7, 4): {3: 1796, 6: 98204}, + ("Category Distincts", 7, 5): {4: 28257, 6: 71743}, + ("Category Distincts", 7, 6): {4: 19581, 6: 80419}, + ("Category Distincts", 7, 7): {4: 13618, 6: 86382}, + ("Category Distincts", 7, 8): {4: 9545, 6: 90455}, + ("Category Distincts", 8, 1): {1: 7137, 5: 92863}, + ("Category Distincts", 8, 2): {2: 9414, 6: 90586}, + ("Category Distincts", 8, 3): {3: 1976, 6: 98024}, + ("Category Distincts", 8, 4): {4: 21397, 6: 78603}, + ("Category Distincts", 8, 5): {4: 12592, 6: 87408}, ("Category Distincts", 8, 6): {4: 7177, 6: 92823}, ("Category Distincts", 8, 7): {4: 4179, 6: 95821}, ("Category Distincts", 8, 8): {5: 2440, 6: 97560}, @@ -1404,8 +1377,8 @@ ("Category Two times Ones", 0, 7): {0: 100000}, ("Category Two times Ones", 0, 8): {0: 100000}, ("Category Two times Ones", 1, 0): {0: 100000}, - ("Category Two times Ones", 1, 1): {0: 83475, 2: 16525}, - ("Category Two times Ones", 1, 2): {0: 69690, 2: 30310}, + ("Category Two times Ones", 1, 1): {0: 100000}, + ("Category Two times Ones", 1, 2): {0: 100000}, ("Category Two times Ones", 1, 3): {0: 57818, 2: 42182}, ("Category Two times Ones", 1, 4): {0: 48418, 2: 51582}, ("Category Two times Ones", 1, 5): {0: 40301, 2: 59699}, @@ -1413,68 +1386,68 @@ ("Category Two times Ones", 1, 7): {0: 28182, 2: 71818}, ("Category Two times Ones", 1, 8): {0: 23406, 2: 76594}, ("Category Two times Ones", 2, 0): {0: 100000}, - ("Category Two times Ones", 2, 1): {0: 69724, 2: 30276}, - ("Category Two times Ones", 2, 2): {0: 48238, 2: 42479, 4: 9283}, - ("Category Two times Ones", 2, 3): {0: 33290, 2: 48819, 4: 17891}, - ("Category Two times Ones", 2, 4): {0: 23136, 2: 49957, 4: 26907}, - ("Category Two times Ones", 2, 5): {0: 16146, 2: 48200, 4: 35654}, - ("Category Two times Ones", 2, 6): {0: 11083, 2: 44497, 4: 44420}, - ("Category Two times Ones", 2, 7): {0: 7662, 2: 40343, 4: 51995}, - ("Category Two times Ones", 2, 8): {0: 5354, 2: 35526, 4: 59120}, + ("Category Two times Ones", 2, 1): {0: 100000}, + ("Category Two times Ones", 2, 2): {0: 48238, 2: 51762}, + ("Category Two times Ones", 2, 3): {0: 33290, 4: 66710}, + ("Category Two times Ones", 2, 4): {0: 23136, 4: 76864}, + ("Category Two times Ones", 2, 5): {0: 16146, 4: 83854}, + ("Category Two times Ones", 2, 6): {0: 11083, 4: 88917}, + ("Category Two times Ones", 2, 7): {0: 7662, 4: 92338}, + ("Category Two times Ones", 2, 8): {0: 5354, 4: 94646}, ("Category Two times Ones", 3, 0): {0: 100000}, - ("Category Two times Ones", 3, 1): {0: 58021, 2: 34522, 4: 7457}, - ("Category Two times Ones", 3, 2): {0: 33548, 2: 44261, 4: 22191}, - ("Category Two times Ones", 3, 3): {0: 19375, 2: 42372, 4: 30748, 6: 7505}, - ("Category Two times Ones", 3, 4): {0: 10998, 2: 36435, 4: 38569, 6: 13998}, - ("Category Two times Ones", 3, 5): {0: 6519, 2: 28838, 4: 43283, 6: 21360}, - ("Category Two times Ones", 3, 6): {0: 3619, 2: 22498, 4: 44233, 6: 29650}, - ("Category Two times Ones", 3, 7): {0: 2195, 2: 16979, 4: 43684, 6: 37142}, - ("Category Two times Ones", 3, 8): {0: 1255, 2: 12420, 4: 40920, 6: 45405}, + ("Category Two times Ones", 3, 1): {0: 58021, 2: 41979}, + ("Category Two times Ones", 3, 2): {0: 33548, 4: 66452}, + ("Category Two times Ones", 3, 3): {0: 19375, 4: 80625}, + ("Category Two times Ones", 3, 4): {0: 10998, 4: 89002}, + ("Category Two times Ones", 3, 5): {0: 6519, 6: 93481}, + ("Category Two times Ones", 3, 6): {0: 3619, 6: 96381}, + ("Category Two times Ones", 3, 7): {0: 2195, 6: 97805}, + ("Category Two times Ones", 3, 8): {0: 13675, 6: 86325}, ("Category Two times Ones", 4, 0): {0: 100000}, - ("Category Two times Ones", 4, 1): {0: 48235, 2: 38602, 4: 13163}, - ("Category Two times Ones", 4, 2): {0: 23289, 2: 40678, 4: 27102, 6: 8931}, - ("Category Two times Ones", 4, 3): {0: 11177, 2: 32677, 4: 35702, 6: 20444}, - ("Category Two times Ones", 4, 4): {0: 5499, 2: 23225, 4: 37240, 6: 26867, 8: 7169}, - ("Category Two times Ones", 4, 5): {0: 2574, 2: 15782, 4: 34605, 6: 34268, 8: 12771}, - ("Category Two times Ones", 4, 6): {0: 1259, 4: 39616, 6: 39523, 8: 19602}, - ("Category Two times Ones", 4, 7): {0: 622, 4: 30426, 6: 41894, 8: 27058}, - ("Category Two times Ones", 4, 8): {0: 4091, 4: 18855, 6: 42309, 8: 34745}, + ("Category Two times Ones", 4, 1): {0: 48235, 2: 51765}, + ("Category Two times Ones", 4, 2): {0: 23289, 4: 76711}, + ("Category Two times Ones", 4, 3): {0: 11177, 6: 88823}, + ("Category Two times Ones", 4, 4): {0: 5499, 6: 94501}, + ("Category Two times Ones", 4, 5): {0: 18356, 6: 81644}, + ("Category Two times Ones", 4, 6): {0: 11169, 8: 88831}, + ("Category Two times Ones", 4, 7): {0: 6945, 8: 93055}, + ("Category Two times Ones", 4, 8): {0: 4091, 8: 95909}, ("Category Two times Ones", 5, 0): {0: 100000}, - ("Category Two times Ones", 5, 1): {0: 40028, 2: 40241, 4: 19731}, - ("Category Two times Ones", 5, 2): {0: 16009, 2: 35901, 4: 31024, 6: 17066}, - ("Category Two times Ones", 5, 3): {0: 6489, 2: 23477, 4: 34349, 6: 25270, 8: 10415}, - ("Category Two times Ones", 5, 4): {0: 2658, 2: 14032, 4: 30199, 6: 32214, 8: 20897}, - ("Category Two times Ones", 5, 5): {0: 1032, 4: 31627, 6: 33993, 8: 25853, 10: 7495}, - ("Category Two times Ones", 5, 6): {0: 450, 4: 20693, 6: 32774, 8: 32900, 10: 13183}, - ("Category Two times Ones", 5, 7): {0: 2396, 4: 11231, 6: 29481, 8: 37636, 10: 19256}, - ("Category Two times Ones", 5, 8): {0: 1171, 6: 31564, 8: 40798, 10: 26467}, + ("Category Two times Ones", 5, 1): {0: 40028, 4: 59972}, + ("Category Two times Ones", 5, 2): {0: 16009, 6: 83991}, + ("Category Two times Ones", 5, 3): {0: 6489, 6: 93511}, + ("Category Two times Ones", 5, 4): {0: 16690, 8: 83310}, + ("Category Two times Ones", 5, 5): {0: 9016, 8: 90984}, + ("Category Two times Ones", 5, 6): {0: 4602, 8: 95398}, + ("Category Two times Ones", 5, 7): {0: 13627, 10: 86373}, + ("Category Two times Ones", 5, 8): {0: 8742, 10: 91258}, ("Category Two times Ones", 6, 0): {0: 100000}, - ("Category Two times Ones", 6, 1): {0: 33502, 2: 40413, 4: 26085}, - ("Category Two times Ones", 6, 2): {0: 11210, 2: 29638, 4: 32701, 6: 18988, 8: 7463}, - ("Category Two times Ones", 6, 3): {0: 3673, 2: 16459, 4: 29795, 6: 29102, 8: 20971}, - ("Category Two times Ones", 6, 4): {0: 1243, 4: 30025, 6: 31053, 8: 25066, 10: 12613}, - ("Category Two times Ones", 6, 5): {0: 4194, 4: 13949, 6: 28142, 8: 30723, 10: 22992}, - ("Category Two times Ones", 6, 6): {0: 1800, 6: 30677, 8: 32692, 10: 26213, 12: 8618}, - ("Category Two times Ones", 6, 7): {0: 775, 6: 21013, 8: 31410, 10: 32532, 12: 14270}, - ("Category Two times Ones", 6, 8): {0: 2855, 6: 11432, 8: 27864, 10: 37237, 12: 20612}, + ("Category Two times Ones", 6, 1): {0: 33502, 4: 66498}, + ("Category Two times Ones", 6, 2): {0: 11210, 6: 88790}, + ("Category Two times Ones", 6, 3): {0: 3673, 6: 96327}, + ("Category Two times Ones", 6, 4): {0: 9291, 8: 90709}, + ("Category Two times Ones", 6, 5): {0: 441, 8: 99559}, + ("Category Two times Ones", 6, 6): {0: 10255, 10: 89745}, + ("Category Two times Ones", 6, 7): {0: 5646, 10: 94354}, + ("Category Two times Ones", 6, 8): {0: 14287, 12: 85713}, ("Category Two times Ones", 7, 0): {0: 100000}, - ("Category Two times Ones", 7, 1): {0: 27683, 2: 39060, 4: 23574, 6: 9683}, - ("Category Two times Ones", 7, 2): {0: 7824, 2: 24031, 4: 31764, 6: 23095, 8: 13286}, - ("Category Two times Ones", 7, 3): {0: 2148, 2: 11019, 4: 24197, 6: 29599, 8: 21250, 10: 11787}, - ("Category Two times Ones", 7, 4): {0: 564, 4: 19036, 6: 26395, 8: 28409, 10: 18080, 12: 7516}, - ("Category Two times Ones", 7, 5): {0: 1913, 6: 27198, 8: 29039, 10: 26129, 12: 15721}, - ("Category Two times Ones", 7, 6): {0: 54, 6: 17506, 8: 25752, 10: 30413, 12: 26275}, - ("Category Two times Ones", 7, 7): {0: 2179, 8: 28341, 10: 32054, 12: 27347, 14: 10079}, - ("Category Two times Ones", 7, 8): {0: 942, 8: 19835, 10: 30248, 12: 33276, 14: 15699}, + ("Category Two times Ones", 7, 1): {0: 27683, 4: 72317}, + ("Category Two times Ones", 7, 2): {0: 7824, 6: 92176}, + ("Category Two times Ones", 7, 3): {0: 13167, 8: 86833}, + ("Category Two times Ones", 7, 4): {0: 564, 10: 99436}, + ("Category Two times Ones", 7, 5): {0: 9824, 10: 90176}, + ("Category Two times Ones", 7, 6): {0: 702, 12: 99298}, + ("Category Two times Ones", 7, 7): {0: 10186, 12: 89814}, + ("Category Two times Ones", 7, 8): {0: 942, 12: 99058}, ("Category Two times Ones", 8, 0): {0: 100000}, - ("Category Two times Ones", 8, 1): {0: 23378, 2: 37157, 4: 26082, 6: 13383}, - ("Category Two times Ones", 8, 2): {0: 5420, 2: 19164, 4: 29216, 6: 25677, 8: 20523}, - ("Category Two times Ones", 8, 3): {0: 1271, 4: 26082, 6: 27054, 8: 24712, 10: 20881}, - ("Category Two times Ones", 8, 4): {0: 2889, 6: 29552, 8: 27389, 10: 23232, 12: 16938}, - ("Category Two times Ones", 8, 5): {0: 879, 6: 16853, 8: 23322, 10: 27882, 12: 20768, 14: 10296}, - ("Category Two times Ones", 8, 6): {0: 2041, 8: 24140, 10: 27398, 12: 27048, 14: 19373}, - ("Category Two times Ones", 8, 7): {0: 74, 8: 15693, 10: 23675, 12: 30829, 14: 22454, 16: 7275}, - ("Category Two times Ones", 8, 8): {2: 2053, 10: 25677, 12: 31310, 14: 28983, 16: 11977}, + ("Category Two times Ones", 8, 1): {0: 23378, 4: 76622}, + ("Category Two times Ones", 8, 2): {0: 5420, 8: 94580}, + ("Category Two times Ones", 8, 3): {0: 8560, 10: 91440}, + ("Category Two times Ones", 8, 4): {0: 12199, 12: 87801}, + ("Category Two times Ones", 8, 5): {0: 879, 12: 99121}, + ("Category Two times Ones", 8, 6): {0: 9033, 14: 90967}, + ("Category Two times Ones", 8, 7): {0: 15767, 14: 84233}, + ("Category Two times Ones", 8, 8): {2: 9033, 14: 90967}, ("Category Half of Sixes", 0, 0): {0: 100000}, ("Category Half of Sixes", 0, 1): {0: 100000}, ("Category Half of Sixes", 0, 2): {0: 100000}, @@ -1485,7 +1458,7 @@ ("Category Half of Sixes", 0, 7): {0: 100000}, ("Category Half of Sixes", 0, 8): {0: 100000}, ("Category Half of Sixes", 1, 0): {0: 100000}, - ("Category Half of Sixes", 1, 1): {0: 83343, 3: 16657}, + ("Category Half of Sixes", 1, 1): {0: 100000}, ("Category Half of Sixes", 1, 2): {0: 69569, 3: 30431}, ("Category Half of Sixes", 1, 3): {0: 57872, 3: 42128}, ("Category Half of Sixes", 1, 4): {0: 48081, 3: 51919}, @@ -1495,1558 +1468,387 @@ ("Category Half of Sixes", 1, 8): {0: 23240, 3: 76760}, ("Category Half of Sixes", 2, 0): {0: 100000}, ("Category Half of Sixes", 2, 1): {0: 69419, 3: 30581}, - ("Category Half of Sixes", 2, 2): {0: 48202, 3: 42590, 6: 9208}, - ("Category Half of Sixes", 2, 3): {0: 33376, 3: 48849, 6: 17775}, - ("Category Half of Sixes", 2, 4): {0: 23276, 3: 49810, 6: 26914}, - ("Category Half of Sixes", 2, 5): {0: 16092, 3: 47718, 6: 36190}, - ("Category Half of Sixes", 2, 6): {0: 11232, 3: 44515, 6: 44253}, - ("Category Half of Sixes", 2, 7): {0: 7589, 3: 40459, 6: 51952}, - ("Category Half of Sixes", 2, 8): {0: 5447, 3: 35804, 6: 58749}, + ("Category Half of Sixes", 2, 2): {0: 48202, 3: 51798}, + ("Category Half of Sixes", 2, 3): {0: 33376, 6: 66624}, + ("Category Half of Sixes", 2, 4): {0: 23276, 6: 76724}, + ("Category Half of Sixes", 2, 5): {0: 16092, 6: 83908}, + ("Category Half of Sixes", 2, 6): {0: 11232, 6: 88768}, + ("Category Half of Sixes", 2, 7): {0: 7589, 6: 92411}, + ("Category Half of Sixes", 2, 8): {0: 5447, 6: 94553}, ("Category Half of Sixes", 3, 0): {0: 100000}, - ("Category Half of Sixes", 3, 1): {0: 57964, 3: 34701, 6: 7335}, - ("Category Half of Sixes", 3, 2): {0: 33637, 3: 44263, 6: 22100}, - ("Category Half of Sixes", 3, 3): {0: 19520, 3: 42382, 6: 30676, 9: 7422}, - ("Category Half of Sixes", 3, 4): {0: 11265, 3: 35772, 6: 39042, 9: 13921}, - ("Category Half of Sixes", 3, 5): {0: 6419, 3: 28916, 6: 43261, 9: 21404}, - ("Category Half of Sixes", 3, 6): {0: 3810, 3: 22496, 6: 44388, 9: 29306}, - ("Category Half of Sixes", 3, 7): {0: 2174, 3: 16875, 6: 43720, 9: 37231}, - ("Category Half of Sixes", 3, 8): {0: 1237, 3: 12471, 6: 41222, 9: 45070}, + ("Category Half of Sixes", 3, 1): {0: 57964, 3: 42036}, + ("Category Half of Sixes", 3, 2): {0: 33637, 6: 66363}, + ("Category Half of Sixes", 3, 3): {0: 19520, 6: 80480}, + ("Category Half of Sixes", 3, 4): {0: 11265, 6: 88735}, + ("Category Half of Sixes", 3, 5): {0: 6419, 6: 72177, 9: 21404}, + ("Category Half of Sixes", 3, 6): {0: 3810, 6: 66884, 9: 29306}, + ("Category Half of Sixes", 3, 7): {0: 2174, 6: 60595, 9: 37231}, + ("Category Half of Sixes", 3, 8): {0: 1237, 6: 53693, 9: 45070}, ("Category Half of Sixes", 4, 0): {0: 100000}, - ("Category Half of Sixes", 4, 1): {0: 48121, 3: 38786, 6: 13093}, - ("Category Half of Sixes", 4, 2): {0: 23296, 3: 40989, 6: 26998, 9: 8717}, - ("Category Half of Sixes", 4, 3): {0: 11233, 3: 32653, 6: 35710, 9: 20404}, - ("Category Half of Sixes", 4, 4): {0: 5463, 3: 23270, 6: 37468, 9: 26734, 12: 7065}, - ("Category Half of Sixes", 4, 5): {0: 2691, 3: 15496, 6: 34539, 9: 34635, 12: 12639}, - ("Category Half of Sixes", 4, 6): {0: 1221, 3: 10046, 6: 29811, 9: 39190, 12: 19732}, - ("Category Half of Sixes", 4, 7): {0: 599, 6: 30742, 9: 41614, 12: 27045}, - ("Category Half of Sixes", 4, 8): {0: 309, 6: 22719, 9: 42236, 12: 34736}, + ("Category Half of Sixes", 4, 1): {0: 48121, 6: 51879}, + ("Category Half of Sixes", 4, 2): {0: 23296, 6: 76704}, + ("Category Half of Sixes", 4, 3): {0: 11233, 6: 68363, 9: 20404}, + ("Category Half of Sixes", 4, 4): {0: 5463, 6: 60738, 9: 33799}, + ("Category Half of Sixes", 4, 5): {0: 2691, 6: 50035, 12: 47274}, + ("Category Half of Sixes", 4, 6): {0: 11267, 9: 88733}, + ("Category Half of Sixes", 4, 7): {0: 6921, 9: 66034, 12: 27045}, + ("Category Half of Sixes", 4, 8): {0: 4185, 9: 61079, 12: 34736}, ("Category Half of Sixes", 5, 0): {0: 100000}, - ("Category Half of Sixes", 5, 1): {0: 40183, 3: 40377, 6: 19440}, - ("Category Half of Sixes", 5, 2): {0: 16197, 3: 35494, 6: 30937, 9: 17372}, - ("Category Half of Sixes", 5, 3): {0: 6583, 3: 23394, 6: 34432, 9: 25239, 12: 10352}, - ("Category Half of Sixes", 5, 4): {0: 2636, 3: 14072, 6: 30134, 9: 32371, 12: 20787}, - ("Category Half of Sixes", 5, 5): {0: 1075, 3: 7804, 6: 23010, 9: 34811, 12: 25702, 15: 7598}, - ("Category Half of Sixes", 5, 6): {0: 418, 6: 20888, 9: 32809, 12: 32892, 15: 12993}, - ("Category Half of Sixes", 5, 7): {0: 2365, 6: 11416, 9: 29072, 12: 37604, 15: 19543}, - ("Category Half of Sixes", 5, 8): {0: 1246, 6: 7425, 9: 24603, 12: 40262, 15: 26464}, + ("Category Half of Sixes", 5, 1): {0: 40183, 6: 59817}, + ("Category Half of Sixes", 5, 2): {0: 16197, 6: 83803}, + ("Category Half of Sixes", 5, 3): {0: 6583, 6: 57826, 9: 35591}, + ("Category Half of Sixes", 5, 4): {0: 2636, 9: 76577, 12: 20787}, + ("Category Half of Sixes", 5, 5): {0: 8879, 9: 57821, 12: 33300}, + ("Category Half of Sixes", 5, 6): {0: 4652, 12: 95348}, + ("Category Half of Sixes", 5, 7): {0: 2365, 12: 97635}, + ("Category Half of Sixes", 5, 8): {0: 8671, 12: 64865, 15: 26464}, ("Category Half of Sixes", 6, 0): {0: 100000}, - ("Category Half of Sixes", 6, 1): {0: 33473, 3: 40175, 6: 20151, 9: 6201}, - ("Category Half of Sixes", 6, 2): {0: 11147, 3: 29592, 6: 32630, 9: 19287, 12: 7344}, - ("Category Half of Sixes", 6, 3): {0: 3628, 3: 16528, 6: 29814, 9: 29006, 12: 15888, 15: 5136}, - ("Category Half of Sixes", 6, 4): {0: 1262, 3: 8236, 6: 21987, 9: 30953, 12: 24833, 15: 12729}, - ("Category Half of Sixes", 6, 5): {0: 416, 6: 17769, 9: 27798, 12: 31197, 15: 18256, 18: 4564}, - ("Category Half of Sixes", 6, 6): {0: 1796, 6: 8372, 9: 22175, 12: 32897, 15: 26264, 18: 8496}, - ("Category Half of Sixes", 6, 7): {0: 791, 9: 21074, 12: 31385, 15: 32666, 18: 14084}, - ("Category Half of Sixes", 6, 8): {0: 20, 9: 14150, 12: 28320, 15: 36982, 18: 20528}, + ("Category Half of Sixes", 6, 1): {0: 33473, 6: 66527}, + ("Category Half of Sixes", 6, 2): {0: 11147, 6: 62222, 9: 26631}, + ("Category Half of Sixes", 6, 3): {0: 3628, 9: 75348, 12: 21024}, + ("Category Half of Sixes", 6, 4): {0: 9498, 9: 52940, 15: 37562}, + ("Category Half of Sixes", 6, 5): {0: 4236, 12: 72944, 15: 22820}, + ("Category Half of Sixes", 6, 6): {0: 10168, 12: 55072, 15: 34760}, + ("Category Half of Sixes", 6, 7): {0: 5519, 15: 94481}, + ("Category Half of Sixes", 6, 8): {0: 2968, 15: 76504, 18: 20528}, ("Category Half of Sixes", 7, 0): {0: 100000}, - ("Category Half of Sixes", 7, 1): {0: 27933, 3: 39105, 6: 23338, 9: 9624}, - ("Category Half of Sixes", 7, 2): {0: 7794, 3: 23896, 6: 31832, 9: 23110, 12: 13368}, - ("Category Half of Sixes", 7, 3): {0: 2138, 3: 11098, 6: 24140, 9: 29316, 12: 21386, 15: 11922}, - ("Category Half of Sixes", 7, 4): {0: 590, 6: 19385, 9: 26233, 12: 28244, 15: 18118, 18: 7430}, - ("Category Half of Sixes", 7, 5): {0: 1941, 6: 7953, 9: 19439, 12: 28977, 15: 26078, 18: 15612}, - ("Category Half of Sixes", 7, 6): {0: 718, 9: 16963, 12: 25793, 15: 30535, 18: 20208, 21: 5783}, - ("Category Half of Sixes", 7, 7): {0: 2064, 9: 7941, 12: 20571, 15: 31859, 18: 27374, 21: 10191}, - ("Category Half of Sixes", 7, 8): {0: 963, 12: 19864, 15: 30313, 18: 33133, 21: 15727}, + ("Category Half of Sixes", 7, 1): {0: 27933, 6: 72067}, + ("Category Half of Sixes", 7, 2): {0: 7794, 6: 55728, 12: 36478}, + ("Category Half of Sixes", 7, 3): {0: 2138, 9: 64554, 15: 33308}, + ("Category Half of Sixes", 7, 4): {0: 5238, 12: 69214, 15: 25548}, + ("Category Half of Sixes", 7, 5): {0: 9894, 15: 90106}, + ("Category Half of Sixes", 7, 6): {0: 4656, 15: 69353, 18: 25991}, + ("Category Half of Sixes", 7, 7): {0: 10005, 15: 52430, 18: 37565}, + ("Category Half of Sixes", 7, 8): {0: 5710, 18: 94290}, ("Category Half of Sixes", 8, 0): {0: 100000}, - ("Category Half of Sixes", 8, 1): {0: 23337, 3: 37232, 6: 25968, 9: 13463}, - ("Category Half of Sixes", 8, 2): {0: 5310, 3: 18930, 6: 29232, 9: 26016, 12: 14399, 15: 6113}, - ("Category Half of Sixes", 8, 3): {0: 1328, 3: 7328, 6: 18754, 9: 27141, 12: 24703, 15: 14251, 18: 6495}, - ("Category Half of Sixes", 8, 4): {0: 2719, 6: 9554, 9: 20607, 12: 26898, 15: 23402, 18: 12452, 21: 4368}, - ("Category Half of Sixes", 8, 5): {0: 905, 9: 16848, 12: 23248, 15: 27931, 18: 20616, 21: 10452}, - ("Category Half of Sixes", 8, 6): {0: 1914, 9: 6890, 12: 17302, 15: 27235, 18: 27276, 21: 19383}, - ("Category Half of Sixes", 8, 7): {0: 800, 12: 15127, 15: 23682, 18: 30401, 21: 22546, 24: 7444}, - ("Category Half of Sixes", 8, 8): {0: 2041, 12: 7211, 15: 18980, 18: 30657, 21: 29074, 24: 12037}, - ("Category Twos and Threes", 1, 1): {0: 66466, 3: 33534}, - ("Category Twos and Threes", 1, 2): {0: 55640, 3: 44360}, - ("Category Twos and Threes", 1, 3): {0: 46223, 3: 53777}, - ("Category Twos and Threes", 1, 4): {0: 38552, 3: 61448}, - ("Category Twos and Threes", 1, 5): {0: 32320, 3: 67680}, - ("Category Twos and Threes", 1, 6): {0: 26733, 3: 73267}, - ("Category Twos and Threes", 1, 7): {0: 22289, 3: 77711}, - ("Category Twos and Threes", 1, 8): {0: 18676, 3: 81324}, - ("Category Twos and Threes", 2, 1): {0: 44565, 2: 21965, 3: 25172, 5: 8298}, - ("Category Twos and Threes", 2, 2): {0: 30855, 3: 51429, 6: 17716}, - ("Category Twos and Threes", 2, 3): {0: 21509, 3: 51178, 6: 27313}, - ("Category Twos and Threes", 2, 4): {0: 14935, 3: 48581, 6: 36484}, - ("Category Twos and Threes", 2, 5): {0: 10492, 3: 44256, 6: 45252}, - ("Category Twos and Threes", 2, 6): {0: 10775, 3: 35936, 6: 53289}, - ("Category Twos and Threes", 2, 7): {0: 7375, 3: 32469, 6: 60156}, - ("Category Twos and Threes", 2, 8): {0: 5212, 3: 35730, 6: 59058}, - ("Category Twos and Threes", 3, 1): {0: 29892, 2: 22136, 3: 27781, 6: 20191}, - ("Category Twos and Threes", 3, 2): {0: 17285, 3: 44257, 6: 38458}, - ("Category Twos and Threes", 3, 3): {0: 9889, 3: 36505, 6: 40112, 8: 13494}, - ("Category Twos and Threes", 3, 4): {0: 5717, 3: 28317, 6: 43044, 9: 22922}, - ("Category Twos and Threes", 3, 5): {0: 5795, 3: 19123, 6: 45004, 9: 30078}, - ("Category Twos and Threes", 3, 6): {0: 3273, 3: 21888, 6: 36387, 9: 38452}, - ("Category Twos and Threes", 3, 7): {0: 1917, 3: 16239, 6: 35604, 9: 46240}, - ("Category Twos and Threes", 3, 8): {0: 1124, 3: 12222, 6: 33537, 9: 53117}, - ("Category Twos and Threes", 4, 1): {0: 19619, 3: 46881, 6: 33500}, - ("Category Twos and Threes", 4, 2): {0: 9395, 3: 33926, 6: 37832, 9: 18847}, - ("Category Twos and Threes", 4, 3): {0: 4538, 3: 22968, 6: 38891, 9: 33603}, - ("Category Twos and Threes", 4, 4): {0: 4402, 3: 12654, 6: 35565, 9: 34784, 11: 12595}, - ("Category Twos and Threes", 4, 5): {0: 2065, 3: 14351, 6: 23592, 9: 38862, 12: 21130}, - ("Category Twos and Threes", 4, 6): {0: 1044, 3: 9056, 6: 20013, 9: 41255, 12: 28632}, - ("Category Twos and Threes", 4, 7): {0: 6310, 7: 24021, 9: 34297, 12: 35372}, - ("Category Twos and Threes", 4, 8): {0: 3694, 6: 18611, 9: 34441, 12: 43254}, - ("Category Twos and Threes", 5, 1): {0: 13070, 3: 33021, 5: 24568, 6: 16417, 8: 12924}, - ("Category Twos and Threes", 5, 2): {0: 5213, 3: 24275, 6: 37166, 9: 24746, 11: 8600}, - ("Category Twos and Threes", 5, 3): {0: 4707, 3: 10959, 6: 31388, 9: 33265, 12: 19681}, - ("Category Twos and Threes", 5, 4): {0: 1934, 3: 12081, 6: 17567, 9: 35282, 12: 33136}, - ("Category Twos and Threes", 5, 5): {0: 380, 2: 7025, 6: 13268, 9: 33274, 12: 33255, 14: 12798}, - ("Category Twos and Threes", 5, 6): {0: 3745, 6: 15675, 9: 22902, 12: 44665, 15: 13013}, - ("Category Twos and Threes", 5, 7): {0: 1969, 6: 10700, 9: 19759, 12: 39522, 15: 28050}, - ("Category Twos and Threes", 5, 8): {0: 13, 2: 7713, 10: 23957, 12: 32501, 15: 35816}, - ("Category Twos and Threes", 6, 1): {0: 8955, 3: 26347, 5: 24850, 8: 39848}, - ("Category Twos and Threes", 6, 2): {0: 2944, 3: 16894, 6: 32156, 9: 37468, 12: 10538}, - ("Category Twos and Threes", 6, 3): {0: 2484, 3: 13120, 6: 15999, 9: 32271, 12: 24898, 14: 11228}, - ("Category Twos and Threes", 6, 4): {0: 320, 2: 6913, 6: 10814, 9: 28622, 12: 31337, 15: 21994}, - ("Category Twos and Threes", 6, 5): {0: 3135, 6: 12202, 9: 16495, 12: 33605, 15: 26330, 17: 8233}, - ("Category Twos and Threes", 6, 6): {0: 98, 3: 8409, 9: 12670, 12: 31959, 15: 38296, 18: 8568}, - ("Category Twos and Threes", 6, 7): {0: 4645, 9: 15210, 12: 21906, 15: 44121, 18: 14118}, - ("Category Twos and Threes", 6, 8): {0: 2367, 9: 10679, 12: 18916, 15: 38806, 18: 29232}, - ("Category Twos and Threes", 7, 1): {0: 5802, 3: 28169, 6: 26411, 9: 31169, 11: 8449}, - ("Category Twos and Threes", 7, 2): {0: 4415, 6: 34992, 9: 31238, 12: 20373, 14: 8982}, - ("Category Twos and Threes", 7, 3): {0: 471, 2: 8571, 6: 10929, 9: 28058, 12: 28900, 14: 14953, 16: 8118}, - ("Category Twos and Threes", 7, 4): {0: 3487, 6: 12139, 9: 14001, 12: 30314, 15: 23096, 18: 16963}, - ("Category Twos and Threes", 7, 5): {0: 40, 2: 7460, 12: 36006, 15: 31388, 18: 25106}, - ("Category Twos and Threes", 7, 6): {0: 3554, 9: 11611, 12: 15116, 15: 32501, 18: 27524, 20: 9694}, - ("Category Twos and Threes", 7, 7): {0: 157, 6: 8396, 13: 19880, 15: 22333, 18: 39121, 21: 10113}, - ("Category Twos and Threes", 7, 8): {0: 31, 5: 4682, 12: 14446, 15: 20934, 18: 44127, 21: 15780}, - ("Category Twos and Threes", 8, 1): {0: 3799, 3: 22551, 6: 23754, 8: 29290, 10: 11990, 12: 8616}, - ("Category Twos and Threes", 8, 2): {0: 902, 4: 14360, 6: 13750, 9: 29893, 13: 30770, 15: 10325}, - ("Category Twos and Threes", 8, 3): {0: 2221, 4: 8122, 9: 23734, 12: 28527, 16: 28942, 18: 8454}, - ("Category Twos and Threes", 8, 4): {0: 140, 3: 8344, 12: 33635, 15: 28711, 18: 20093, 20: 9077}, - ("Category Twos and Threes", 8, 5): {0: 3601, 9: 10269, 12: 12458, 15: 28017, 18: 24815, 21: 20840}, - ("Category Twos and Threes", 8, 6): {0: 4104, 11: 10100, 15: 25259, 18: 30949, 21: 29588}, - ("Category Twos and Threes", 8, 7): {0: 3336, 12: 10227, 15: 14149, 18: 31155, 21: 29325, 23: 11808}, - ("Category Twos and Threes", 8, 8): {3: 7, 5: 7726, 16: 17997, 18: 21517, 21: 40641, 24: 12112}, - ("Category Sum of Odds", 1, 1): {0: 50084, 1: 16488, 3: 16584, 5: 16844}, - ("Category Sum of Odds", 1, 2): {0: 44489, 3: 27886, 5: 27625}, - ("Category Sum of Odds", 1, 3): {0: 27892, 3: 32299, 5: 39809}, - ("Category Sum of Odds", 1, 4): {0: 30917, 3: 19299, 5: 49784}, - ("Category Sum of Odds", 1, 5): {0: 25892, 3: 15941, 5: 58167}, - ("Category Sum of Odds", 1, 6): {0: 21678, 3: 13224, 5: 65098}, - ("Category Sum of Odds", 1, 7): {0: 17840, 3: 11191, 5: 70969}, - ("Category Sum of Odds", 1, 8): {0: 14690, 5: 85310}, - ("Category Sum of Odds", 2, 1): {0: 24611, 1: 19615, 3: 22234, 6: 25168, 8: 8372}, - ("Category Sum of Odds", 2, 2): {0: 11216, 3: 33181, 6: 32416, 8: 15414, 10: 7773}, - ("Category Sum of Odds", 2, 3): {0: 13730, 3: 17055, 5: 34933, 8: 18363, 10: 15919}, - ("Category Sum of Odds", 2, 4): {0: 9599, 3: 11842, 5: 34490, 8: 19129, 10: 24940}, - ("Category Sum of Odds", 2, 5): {0: 6652, 5: 40845, 8: 18712, 10: 33791}, - ("Category Sum of Odds", 2, 6): {0: 10404, 5: 20970, 8: 26124, 10: 42502}, - ("Category Sum of Odds", 2, 7): {0: 7262, 5: 26824, 8: 15860, 10: 50054}, - ("Category Sum of Odds", 2, 8): {0: 4950, 5: 23253, 8: 14179, 10: 57618}, - ("Category Sum of Odds", 3, 1): {0: 12467, 1: 16736, 4: 20970, 6: 29252, 8: 11660, 10: 8915}, - ("Category Sum of Odds", 3, 2): {0: 8635, 3: 15579, 6: 27649, 9: 30585, 13: 17552}, - ("Category Sum of Odds", 3, 3): {0: 5022, 6: 32067, 8: 21631, 11: 24032, 13: 17248}, - ("Category Sum of Odds", 3, 4): {0: 8260, 6: 17955, 8: 18530, 11: 28631, 13: 14216, 15: 12408}, - ("Category Sum of Odds", 3, 5): {0: 4685, 5: 13863, 8: 14915, 11: 30363, 13: 16370, 15: 19804}, - ("Category Sum of Odds", 3, 6): {0: 2766, 5: 10213, 8: 11372, 10: 30968, 13: 17133, 15: 27548}, - ("Category Sum of Odds", 3, 7): {0: 543, 3: 8448, 10: 28784, 13: 26258, 15: 35967}, - ("Category Sum of Odds", 3, 8): {0: 3760, 6: 8911, 11: 27672, 13: 16221, 15: 43436}, - ("Category Sum of Odds", 4, 1): {0: 18870, 5: 28873, 6: 18550, 9: 20881, 11: 12826}, - ("Category Sum of Odds", 4, 2): {0: 7974, 6: 23957, 9: 27982, 11: 15953, 13: 13643, 15: 10491}, - ("Category Sum of Odds", 4, 3): {0: 1778, 3: 8154, 8: 25036, 11: 24307, 13: 18030, 15: 14481, 18: 8214}, - ("Category Sum of Odds", 4, 4): {0: 1862, 4: 8889, 8: 11182, 11: 21997, 13: 19483, 16: 20879, 20: 15708}, - ("Category Sum of Odds", 4, 5): {0: 5687, 7: 8212, 11: 18674, 13: 17578, 16: 25572, 18: 12704, 20: 11573}, - ("Category Sum of Odds", 4, 6): {0: 6549, 11: 17161, 13: 15290, 16: 28355, 18: 14865, 20: 17780}, - ("Category Sum of Odds", 4, 7): {0: 5048, 10: 11824, 13: 12343, 16: 29544, 18: 15947, 20: 25294}, - ("Category Sum of Odds", 4, 8): {0: 3060, 10: 8747, 15: 29415, 18: 25762, 20: 33016}, - ("Category Sum of Odds", 5, 1): {0: 3061, 3: 22078, 6: 26935, 9: 23674, 11: 15144, 14: 9108}, - ("Category Sum of Odds", 5, 2): {0: 5813, 7: 19297, 9: 14666, 11: 17165, 14: 21681, 16: 10586, 18: 10792}, - ("Category Sum of Odds", 5, 3): {0: 3881, 6: 9272, 9: 10300, 11: 13443, 14: 24313, 16: 13969, 19: 16420, 21: 8402}, - ("Category Sum of Odds", 5, 4): {0: 4213, 8: 9656, 13: 24199, 16: 22188, 18: 16440, 20: 14313, 23: 8991}, - ("Category Sum of Odds", 5, 5): {0: 4997, 10: 9128, 13: 11376, 16: 20859, 18: 17548, 21: 20120, 25: 15972}, - ("Category Sum of Odds", 5, 6): { - 0: 4581, - 11: 8516, - 14: 11335, - 16: 10647, - 18: 16866, - 21: 24256, - 23: 11945, - 25: 11854, - }, - ("Category Sum of Odds", 5, 7): {0: 176, 6: 8052, 16: 17535, 18: 14878, 21: 27189, 23: 14100, 25: 18070}, - ("Category Sum of Odds", 5, 8): {0: 2, 2: 6622, 15: 12097, 18: 12454, 21: 28398, 23: 15254, 25: 25173}, - ("Category Sum of Odds", 6, 1): {0: 11634, 4: 12188, 6: 16257, 9: 23909, 11: 13671, 13: 13125, 16: 9216}, - ("Category Sum of Odds", 6, 2): {0: 1403, 4: 8241, 10: 22151, 12: 14245, 14: 15279, 17: 19690, 21: 18991}, - ("Category Sum of Odds", 6, 3): { - 0: 6079, - 9: 10832, - 12: 10094, - 14: 13221, - 17: 22538, - 19: 12673, - 21: 15363, - 24: 9200, - }, - ("Category Sum of Odds", 6, 4): {0: 5771, 11: 9419, 16: 22239, 19: 22715, 21: 12847, 23: 12798, 25: 9237, 28: 4974}, - ("Category Sum of Odds", 6, 5): { - 0: 2564, - 11: 8518, - 17: 20753, - 19: 14121, - 21: 13179, - 23: 15752, - 25: 14841, - 28: 10272, - }, - ("Category Sum of Odds", 6, 6): {0: 4310, 14: 8668, 19: 20891, 21: 12052, 23: 16882, 26: 19954, 30: 17243}, - ("Category Sum of Odds", 6, 7): { - 0: 5233, - 16: 8503, - 19: 11127, - 21: 10285, - 23: 16141, - 26: 23993, - 28: 12043, - 30: 12675, - }, - ("Category Sum of Odds", 6, 8): {0: 510, 12: 8107, 21: 17013, 23: 14396, 26: 26771, 28: 13964, 30: 19239}, - ("Category Sum of Odds", 7, 1): { - 0: 2591, - 2: 8436, - 5: 11759, - 7: 13733, - 9: 15656, - 11: 14851, - 13: 12301, - 15: 11871, - 18: 8802, - }, - ("Category Sum of Odds", 7, 2): { - 0: 4730, - 8: 8998, - 11: 10573, - 13: 13099, - 15: 13819, - 17: 13594, - 19: 12561, - 21: 12881, - 24: 9745, - }, - ("Category Sum of Odds", 7, 3): { - 0: 2549, - 9: 8523, - 15: 19566, - 17: 12251, - 19: 13562, - 21: 13473, - 23: 11918, - 27: 18158, - }, - ("Category Sum of Odds", 7, 4): {0: 6776, 14: 9986, 19: 20914, 22: 21006, 24: 12685, 26: 10835, 30: 17798}, - ("Category Sum of Odds", 7, 5): { - 0: 2943, - 14: 8009, - 20: 20248, - 22: 11896, - 24: 14166, - 26: 12505, - 28: 13136, - 30: 10486, - 33: 6611, - }, - ("Category Sum of Odds", 7, 6): { - 2: 1990, - 15: 8986, - 22: 19198, - 24: 13388, - 26: 12513, - 28: 15893, - 30: 15831, - 35: 12201, - }, - ("Category Sum of Odds", 7, 7): { - 4: 559, - 14: 8153, - 21: 11671, - 24: 12064, - 26: 11473, - 28: 16014, - 31: 20785, - 33: 10174, - 35: 9107, - }, - ("Category Sum of Odds", 7, 8): {0: 3, 8: 5190, 21: 8049, 24: 10585, 28: 25255, 31: 24333, 33: 12445, 35: 14140}, - ("Category Sum of Odds", 8, 1): {0: 7169, 7: 19762, 9: 14044, 11: 14858, 13: 13399, 15: 10801, 17: 11147, 20: 8820}, - ("Category Sum of Odds", 8, 2): { - 0: 7745, - 11: 10927, - 14: 10849, - 16: 13103, - 18: 13484, - 20: 12487, - 22: 10815, - 24: 11552, - 27: 9038, - }, - ("Category Sum of Odds", 8, 3): { - 0: 3867, - 12: 9356, - 18: 19408, - 20: 12379, - 22: 12519, - 24: 12260, - 26: 11008, - 28: 10726, - 31: 8477, - }, - ("Category Sum of Odds", 8, 4): { - 1: 3971, - 15: 9176, - 21: 18732, - 23: 12900, - 25: 13405, - 27: 11603, - 29: 10400, - 33: 19813, - }, - ("Category Sum of Odds", 8, 5): { - 1: 490, - 12: 8049, - 20: 9682, - 23: 10177, - 25: 12856, - 27: 12369, - 29: 12781, - 32: 18029, - 34: 11315, - 38: 4252, - }, - ("Category Sum of Odds", 8, 6): { - 4: 86, - 11: 8038, - 22: 9157, - 25: 10729, - 27: 11053, - 29: 13606, - 31: 12383, - 33: 14068, - 35: 12408, - 38: 8472, - }, - ("Category Sum of Odds", 8, 7): { - 6: 1852, - 20: 8020, - 27: 17455, - 29: 12898, - 31: 12181, - 33: 15650, - 35: 17577, - 40: 14367, - }, - ("Category Sum of Odds", 8, 8): { - 4: 8, - 11: 8008, - 26: 10314, - 29: 11446, - 31: 10714, - 33: 16060, - 36: 21765, - 38: 10622, - 40: 11063, - }, - ("Category Sum of Evens", 1, 1): {0: 49585, 2: 16733, 4: 16854, 6: 16828}, - ("Category Sum of Evens", 1, 2): {0: 33244, 2: 11087, 4: 28025, 6: 27644}, - ("Category Sum of Evens", 1, 3): {0: 22259, 4: 42357, 6: 35384}, - ("Category Sum of Evens", 1, 4): {0: 18511, 4: 35651, 6: 45838}, - ("Category Sum of Evens", 1, 5): {0: 15428, 4: 29656, 6: 54916}, - ("Category Sum of Evens", 1, 6): {0: 12927, 4: 24370, 6: 62703}, - ("Category Sum of Evens", 1, 7): {0: 14152, 4: 17087, 6: 68761}, - ("Category Sum of Evens", 1, 8): {0: 11920, 4: 14227, 6: 73853}, - ("Category Sum of Evens", 2, 1): {0: 25229, 2: 16545, 4: 19538, 6: 21987, 10: 16701}, - ("Category Sum of Evens", 2, 2): {0: 11179, 4: 27164, 6: 24451, 8: 13966, 10: 15400, 12: 7840}, - ("Category Sum of Evens", 2, 3): {0: 8099, 4: 16354, 6: 20647, 8: 17887, 10: 24736, 12: 12277}, - ("Category Sum of Evens", 2, 4): {0: 5687, 4: 11219, 6: 20711, 8: 14290, 10: 26976, 12: 21117}, - ("Category Sum of Evens", 2, 5): {0: 3991, 6: 27157, 8: 11641, 10: 26842, 12: 30369}, - ("Category Sum of Evens", 2, 6): {0: 2741, 6: 23123, 10: 35050, 12: 39086}, - ("Category Sum of Evens", 2, 7): {0: 1122, 6: 20538, 10: 30952, 12: 47388}, - ("Category Sum of Evens", 2, 8): {0: 3950, 6: 14006, 10: 27341, 12: 54703}, - ("Category Sum of Evens", 3, 1): {0: 12538, 2: 12516, 4: 16530, 6: 21270, 8: 13745, 10: 11209, 14: 12192}, - ("Category Sum of Evens", 3, 2): {0: 7404, 4: 10459, 6: 15644, 8: 15032, 10: 18955, 12: 15021, 16: 17485}, - ("Category Sum of Evens", 3, 3): {0: 2176, 6: 14148, 8: 12295, 10: 20247, 12: 18001, 14: 15953, 16: 17180}, - ("Category Sum of Evens", 3, 4): {0: 4556, 8: 15062, 10: 17232, 12: 18975, 14: 15832, 16: 18749, 18: 9594}, - ("Category Sum of Evens", 3, 5): {0: 2575, 8: 10825, 10: 13927, 12: 19533, 14: 14402, 16: 21954, 18: 16784}, - ("Category Sum of Evens", 3, 6): {0: 1475, 6: 7528, 10: 10614, 12: 19070, 14: 12940, 16: 23882, 18: 24491}, - ("Category Sum of Evens", 3, 7): {0: 862, 6: 5321, 12: 26291, 14: 10985, 16: 24254, 18: 32287}, - ("Category Sum of Evens", 3, 8): {0: 138, 4: 4086, 12: 22703, 16: 32516, 18: 40557}, - ("Category Sum of Evens", 4, 1): {0: 6214, 4: 20921, 6: 17434, 8: 15427, 10: 14158, 12: 11354, 16: 14492}, - ("Category Sum of Evens", 4, 2): { - 0: 2868, - 6: 13362, - 8: 10702, - 10: 15154, - 12: 15715, - 14: 14104, - 16: 12485, - 20: 15610, - }, - ("Category Sum of Evens", 4, 3): { - 0: 573, - 8: 10496, - 10: 10269, - 12: 12879, - 14: 16224, - 16: 17484, - 18: 13847, - 20: 10518, - 22: 7710, - }, - ("Category Sum of Evens", 4, 4): { - 0: 1119, - 6: 5124, - 12: 17394, - 14: 12763, - 16: 17947, - 18: 16566, - 20: 13338, - 22: 15749, - }, - ("Category Sum of Evens", 4, 5): {0: 3477, 12: 12738, 16: 26184, 18: 18045, 20: 14172, 22: 16111, 24: 9273}, - ("Category Sum of Evens", 4, 6): {0: 991, 12: 10136, 16: 21089, 18: 18805, 20: 13848, 22: 20013, 24: 15118}, - ("Category Sum of Evens", 4, 7): {0: 2931, 16: 21174, 18: 18952, 20: 12601, 22: 21947, 24: 22395}, - ("Category Sum of Evens", 4, 8): {0: 1798, 12: 6781, 18: 27146, 20: 11505, 22: 23056, 24: 29714}, - ("Category Sum of Evens", 5, 1): { - 0: 3192, - 4: 13829, - 6: 13373, - 8: 13964, - 10: 14656, - 12: 13468, - 14: 10245, - 18: 17273, - }, - ("Category Sum of Evens", 5, 2): { - 0: 3217, - 8: 10390, - 12: 22094, - 14: 13824, - 16: 14674, - 18: 12124, - 22: 16619, - 24: 7058, - }, - ("Category Sum of Evens", 5, 3): { - 0: 3904, - 12: 11004, - 14: 10339, - 16: 13128, - 18: 14686, - 20: 15282, - 22: 13294, - 26: 18363, - }, - ("Category Sum of Evens", 5, 4): { - 0: 43, - 4: 4025, - 14: 10648, - 16: 10437, - 18: 12724, - 20: 14710, - 22: 16005, - 24: 12896, - 28: 18512, - }, - ("Category Sum of Evens", 5, 5): { - 0: 350, - 8: 4392, - 16: 11641, - 18: 10297, - 20: 12344, - 22: 16826, - 24: 15490, - 26: 12235, - 28: 16425, - }, - ("Category Sum of Evens", 5, 6): { - 0: 374, - 10: 4670, - 18: 13498, - 22: 25729, - 24: 17286, - 26: 13565, - 28: 15274, - 30: 9604, - }, - ("Category Sum of Evens", 5, 7): {0: 1473, 18: 11310, 22: 21341, 24: 18114, 26: 13349, 28: 19048, 30: 15365}, - ("Category Sum of Evens", 5, 8): {0: 1, 4: 3753, 20: 10318, 22: 11699, 24: 18376, 26: 12500, 28: 21211, 30: 22142}, - ("Category Sum of Evens", 6, 1): { - 0: 4767, - 6: 15250, - 8: 11527, - 10: 13220, - 12: 13855, - 14: 12217, - 16: 10036, - 20: 19128, - }, - ("Category Sum of Evens", 6, 2): { - 0: 1380, - 6: 5285, - 12: 13888, - 14: 10495, - 16: 12112, - 18: 12962, - 20: 12458, - 22: 10842, - 26: 14076, - 28: 6502, - }, - ("Category Sum of Evens", 6, 3): { - 0: 1230, - 16: 17521, - 18: 10098, - 20: 12628, - 22: 13809, - 24: 13594, - 26: 11930, - 30: 19190, - }, - ("Category Sum of Evens", 6, 4): {0: 1235, 18: 15534, 22: 22081, 24: 13471, 26: 13991, 28: 12906, 32: 20782}, - ("Category Sum of Evens", 6, 5): {0: 1241, 20: 15114, 24: 21726, 26: 13874, 28: 15232, 30: 12927, 34: 19886}, - ("Category Sum of Evens", 6, 6): {0: 1224, 22: 15886, 26: 21708, 28: 15982, 30: 15534, 32: 12014, 34: 17652}, - ("Category Sum of Evens", 6, 7): {4: 1437, 24: 17624, 28: 24727, 30: 17083, 32: 13001, 34: 15604, 36: 10524}, - ("Category Sum of Evens", 6, 8): {4: 1707, 24: 11310, 28: 20871, 30: 18101, 32: 12842, 34: 18840, 36: 16329}, - ("Category Sum of Evens", 7, 1): { - 0: 6237, - 8: 15390, - 10: 11183, - 12: 12690, - 14: 12463, - 16: 11578, - 20: 17339, - 22: 8870, - 26: 4250, - }, - ("Category Sum of Evens", 7, 2): { - 0: 1433, - 14: 16705, - 18: 19797, - 20: 11747, - 22: 12101, - 24: 10947, - 28: 16547, - 32: 10723, - }, - ("Category Sum of Evens", 7, 3): { - 0: 2135, - 14: 5836, - 20: 13766, - 22: 10305, - 24: 12043, - 26: 13153, - 28: 12644, - 30: 10884, - 34: 19234, - }, - ("Category Sum of Evens", 7, 4): { - 0: 1762, - 22: 16471, - 26: 20839, - 28: 12907, - 30: 13018, - 32: 11907, - 34: 10022, - 38: 13074, - }, - ("Category Sum of Evens", 7, 5): { - 4: 1630, - 24: 14719, - 28: 20377, - 30: 12713, - 32: 13273, - 34: 13412, - 36: 10366, - 40: 13510, - }, - ("Category Sum of Evens", 7, 6): { - 4: 1436, - 26: 14275, - 30: 20680, - 32: 12798, - 34: 15385, - 36: 13346, - 38: 10011, - 40: 12069, - }, - ("Category Sum of Evens", 7, 7): { - 6: 2815, - 24: 6584, - 30: 16532, - 32: 11106, - 34: 15613, - 36: 15702, - 38: 12021, - 40: 12478, - 42: 7149, - }, - ("Category Sum of Evens", 7, 8): {10: 1490, 30: 16831, 34: 23888, 36: 16970, 38: 12599, 40: 16137, 42: 12085}, - ("Category Sum of Evens", 8, 1): { - 0: 3709, - 8: 10876, - 12: 19246, - 14: 11696, - 16: 11862, - 18: 11145, - 22: 16877, - 24: 9272, - 28: 5317, - }, - ("Category Sum of Evens", 8, 2): { - 0: 1361, - 16: 14530, - 20: 17637, - 22: 10922, - 24: 11148, - 26: 10879, - 30: 17754, - 34: 15769, - }, - ("Category Sum of Evens", 8, 3): { - 2: 1601, - 22: 14895, - 26: 18464, - 28: 11561, - 30: 12249, - 32: 11747, - 34: 10070, - 38: 19413, - }, - ("Category Sum of Evens", 8, 4): { - 0: 2339, - 20: 5286, - 26: 11746, - 30: 19858, - 32: 12344, - 34: 12243, - 36: 11307, - 40: 16632, - 42: 8245, - }, - ("Category Sum of Evens", 8, 5): { - 4: 1798, - 28: 14824, - 32: 18663, - 34: 12180, - 36: 12458, - 38: 12260, - 40: 10958, - 44: 16859, - }, - ("Category Sum of Evens", 8, 6): { - 6: 2908, - 26: 6292, - 32: 13573, - 34: 10367, - 36: 12064, - 38: 12862, - 40: 13920, - 42: 11359, - 46: 16655, - }, - ("Category Sum of Evens", 8, 7): { - 8: 2652, - 28: 6168, - 34: 13922, - 36: 10651, - 38: 12089, - 40: 14999, - 42: 13899, - 44: 10574, - 46: 15046, - }, - ("Category Sum of Evens", 8, 8): { - 10: 2547, - 30: 6023, - 36: 15354, - 38: 10354, - 40: 14996, - 42: 16214, - 44: 11803, - 46: 13670, - 48: 9039, - }, - ("Category Double Threes and Fours", 1, 1): {0: 66749, 6: 16591, 8: 16660}, - ("Category Double Threes and Fours", 1, 2): {0: 44675, 6: 27694, 8: 27631}, - ("Category Double Threes and Fours", 1, 3): {0: 29592, 6: 35261, 8: 35147}, - ("Category Double Threes and Fours", 1, 4): {0: 24601, 6: 29406, 8: 45993}, - ("Category Double Threes and Fours", 1, 5): {0: 20499, 6: 24420, 8: 55081}, - ("Category Double Threes and Fours", 1, 6): {0: 17116, 6: 20227, 8: 62657}, - ("Category Double Threes and Fours", 1, 7): {0: 14193, 6: 17060, 8: 68747}, - ("Category Double Threes and Fours", 1, 8): {0: 11977, 6: 13924, 8: 74099}, - ("Category Double Threes and Fours", 2, 1): {0: 44382, 6: 22191, 8: 22251, 14: 11176}, - ("Category Double Threes and Fours", 2, 2): {0: 19720, 6: 24652, 8: 24891, 14: 23096, 16: 7641}, - ("Category Double Threes and Fours", 2, 3): {0: 8765, 6: 21008, 8: 20929, 12: 12201, 14: 24721, 16: 12376}, - ("Category Double Threes and Fours", 2, 4): {0: 6164, 6: 14466, 8: 22828, 14: 35406, 16: 21136}, - ("Category Double Threes and Fours", 2, 5): {0: 4307, 6: 10005, 8: 22620, 14: 32879, 16: 30189}, - ("Category Double Threes and Fours", 2, 6): {0: 2879, 8: 28513, 14: 29530, 16: 39078}, - ("Category Double Threes and Fours", 2, 7): {0: 2042, 8: 24335, 14: 26250, 16: 47373}, - ("Category Double Threes and Fours", 2, 8): {0: 1385, 8: 23166, 14: 20907, 16: 54542}, - ("Category Double Threes and Fours", 3, 1): {0: 29378, 6: 22335, 8: 22138, 14: 16783, 16: 9366}, - ("Category Double Threes and Fours", 3, 2): { - 0: 8894, - 6: 16518, - 8: 16277, - 12: 10334, - 14: 20757, - 16: 12265, - 22: 14955, - }, - ("Category Double Threes and Fours", 3, 3): { - 0: 2643, - 8: 18522, - 12: 11066, - 14: 21922, - 16: 11045, - 20: 17235, - 22: 17567, - }, - ("Category Double Threes and Fours", 3, 4): { - 0: 1523, - 8: 13773, - 14: 26533, - 16: 18276, - 20: 11695, - 22: 18521, - 24: 9679, - }, - ("Category Double Threes and Fours", 3, 5): {0: 845, 8: 10218, 14: 20245, 16: 20293, 22: 31908, 24: 16491}, - ("Category Double Threes and Fours", 3, 6): {0: 499, 8: 7230, 14: 15028, 16: 20914, 22: 31835, 24: 24494}, - ("Category Double Threes and Fours", 3, 7): {0: 1298, 8: 5434, 16: 30595, 22: 29980, 24: 32693}, - ("Category Double Threes and Fours", 3, 8): {0: 178, 6: 4363, 16: 27419, 22: 27614, 24: 40426}, - ("Category Double Threes and Fours", 4, 1): {0: 19809, 6: 19538, 8: 19765, 14: 22348, 18: 12403, 22: 6137}, - ("Category Double Threes and Fours", 4, 2): { - 0: 3972, - 8: 19440, - 14: 27646, - 16: 12978, - 20: 11442, - 22: 11245, - 24: 6728, - 28: 6549, - }, - ("Category Double Threes and Fours", 4, 3): { - 0: 745, - 6: 7209, - 14: 19403, - 18: 11744, - 20: 15371, - 22: 15441, - 26: 13062, - 30: 17025, - }, - ("Category Double Threes and Fours", 4, 4): { - 0: 371, - 6: 4491, - 14: 13120, - 16: 10176, - 20: 11583, - 22: 18508, - 24: 10280, - 28: 15624, - 30: 15847, - }, - ("Category Double Threes and Fours", 4, 5): { - 0: 163, - 6: 4251, - 16: 15796, - 22: 26145, - 24: 17306, - 28: 10930, - 30: 16244, - 32: 9165, - }, - ("Category Double Threes and Fours", 4, 6): {0: 79, 16: 14439, 22: 21763, 24: 18861, 30: 29518, 32: 15340}, - ("Category Double Threes and Fours", 4, 7): {0: 1042, 16: 12543, 22: 13634, 24: 20162, 30: 30259, 32: 22360}, - ("Category Double Threes and Fours", 4, 8): {0: 20, 6: 2490, 16: 6901, 22: 10960, 24: 20269, 30: 29442, 32: 29918}, - ("Category Double Threes and Fours", 5, 1): { - 0: 13122, - 6: 16411, - 8: 16451, - 14: 24768, - 16: 10392, - 22: 14528, - 26: 4328, - }, - ("Category Double Threes and Fours", 5, 2): { - 0: 1676, - 8: 10787, - 14: 20218, - 18: 11102, - 20: 12668, - 22: 12832, - 26: 10994, - 30: 15390, - 34: 4333, - }, - ("Category Double Threes and Fours", 5, 3): { - 0: 223, - 14: 12365, - 16: 7165, - 20: 11385, - 22: 11613, - 26: 15182, - 28: 13665, - 32: 14400, - 36: 14002, - }, - ("Category Double Threes and Fours", 5, 4): { - 0: 95, - 6: 2712, - 16: 8862, - 22: 18696, - 26: 12373, - 28: 13488, - 30: 14319, - 34: 12414, - 38: 17041, - }, - ("Category Double Threes and Fours", 5, 5): { - 0: 1333, - 14: 5458, - 22: 13613, - 24: 10772, - 28: 11201, - 30: 16810, - 32: 10248, - 36: 14426, - 38: 16139, - }, - ("Category Double Threes and Fours", 5, 6): { - 0: 16, - 16: 6354, - 24: 16213, - 30: 25369, - 32: 16845, - 36: 10243, - 38: 15569, - 40: 9391, - }, - ("Category Double Threes and Fours", 5, 7): { - 0: 161, - 12: 3457, - 24: 12437, - 30: 21495, - 32: 18636, - 38: 28581, - 40: 15233, - }, - ("Category Double Threes and Fours", 5, 8): { - 0: 478, - 16: 4861, - 26: 10119, - 30: 13694, - 32: 19681, - 38: 29177, - 40: 21990, - }, - ("Category Double Threes and Fours", 6, 1): { - 0: 8738, - 6: 13463, - 8: 12988, - 14: 24653, - 16: 11068, - 22: 19621, - 26: 5157, - 30: 4312, - }, - ("Category Double Threes and Fours", 6, 2): { - 0: 784, - 6: 5735, - 14: 13407, - 16: 8170, - 20: 11349, - 22: 11356, - 26: 12465, - 28: 10790, - 30: 11527, - 38: 14417, - }, - ("Category Double Threes and Fours", 6, 3): { - 0: 72, - 14: 8986, - 22: 13700, - 26: 12357, - 28: 12114, - 32: 15882, - 36: 19286, - 40: 13540, - 44: 4063, - }, - ("Category Double Threes and Fours", 6, 4): { - 0: 439, - 18: 7427, - 22: 9284, - 28: 14203, - 30: 10836, - 34: 14646, - 36: 12511, - 38: 10194, - 42: 10202, - 46: 10258, - }, - ("Category Double Threes and Fours", 6, 5): { - 0: 166, - 20: 7618, - 24: 5198, - 30: 17479, - 34: 12496, - 36: 12190, - 38: 14163, - 42: 12571, - 46: 18119, - }, - ("Category Double Threes and Fours", 6, 6): { - 0: 1843, - 22: 5905, - 30: 12997, - 32: 10631, - 36: 10342, - 38: 16439, - 40: 10795, - 44: 13485, - 46: 17563, - }, - ("Category Double Threes and Fours", 6, 7): { - 0: 31, - 12: 2221, - 24: 5004, - 32: 15743, - 38: 24402, - 40: 17005, - 46: 25241, - 48: 10353, - }, - ("Category Double Threes and Fours", 6, 8): { - 8: 79, - 16: 4037, - 32: 12559, - 38: 20863, - 40: 18347, - 46: 27683, - 48: 16432, - }, - ("Category Double Threes and Fours", 7, 1): { - 0: 5803, - 6: 10242, - 8: 10404, - 14: 22886, - 16: 10934, - 22: 19133, - 24: 7193, - 28: 8167, - 32: 5238, - }, - ("Category Double Threes and Fours", 7, 2): { - 0: 357, - 14: 17082, - 22: 17524, - 26: 11974, - 28: 11132, - 32: 13186, - 36: 13959, - 40: 10028, - 44: 4758, - }, - ("Category Double Threes and Fours", 7, 3): { - 0: 361, - 18: 7136, - 22: 5983, - 28: 13899, - 32: 12974, - 34: 10088, - 36: 10081, - 40: 14481, - 44: 14127, - 46: 6547, - 50: 4323, - }, - ("Category Double Threes and Fours", 7, 4): { - 0: 1182, - 18: 4299, - 30: 16331, - 34: 11316, - 36: 10741, - 40: 16028, - 44: 18815, - 48: 15225, - 52: 6063, - }, - ("Category Double Threes and Fours", 7, 5): { - 0: 45, - 12: 3763, - 32: 17140, - 38: 19112, - 42: 13655, - 44: 11990, - 46: 11137, - 50: 10646, - 54: 12512, - }, - ("Category Double Threes and Fours", 7, 6): { - 8: 2400, - 28: 5277, - 32: 5084, - 38: 16047, - 42: 12133, - 44: 11451, - 46: 14027, - 50: 13198, - 54: 20383, - }, - ("Category Double Threes and Fours", 7, 7): { - 6: 1968, - 30: 5585, - 38: 12210, - 40: 10376, - 46: 25548, - 48: 15392, - 54: 21666, - 56: 7255, - }, - ("Category Double Threes and Fours", 7, 8): { - 8: 42, - 20: 2293, - 32: 4653, - 40: 15068, - 46: 23170, - 48: 17057, - 54: 25601, - 56: 12116, - }, - ("Category Double Threes and Fours", 8, 1): { - 0: 3982, - 8: 15658, - 14: 20388, - 16: 10234, - 20: 10167, - 22: 10162, - 28: 15330, - 32: 8758, - 36: 5321, - }, - ("Category Double Threes and Fours", 8, 2): { - 0: 161, - 6: 3169, - 14: 7106, - 22: 16559, - 28: 16400, - 32: 12950, - 36: 16399, - 40: 10090, - 44: 11474, - 48: 5692, - }, - ("Category Double Threes and Fours", 8, 3): { - 0: 856, - 16: 4092, - 30: 13686, - 34: 12838, - 38: 15010, - 42: 17085, - 46: 14067, - 50: 11844, - 52: 6500, - 56: 4022, - }, - ("Category Double Threes and Fours", 8, 4): { - 0: 36, - 12: 2795, - 30: 9742, - 36: 11726, - 40: 12404, - 44: 18791, - 48: 14662, - 52: 15518, - 54: 8066, - 58: 6260, - }, - ("Category Double Threes and Fours", 8, 5): { - 6: 8, - 12: 2948, - 30: 5791, - 38: 10658, - 42: 10175, - 46: 19359, - 50: 14449, - 52: 10531, - 56: 13257, - 60: 12824, - }, - ("Category Double Threes and Fours", 8, 6): { - 0: 2, - 12: 2528, - 32: 4832, - 40: 11436, - 46: 17832, - 50: 13016, - 52: 11631, - 54: 12058, - 58: 11458, - 62: 15207, - }, - ("Category Double Threes and Fours", 8, 7): { - 6: 2, - 12: 2204, - 40: 9320, - 46: 14688, - 50: 11494, - 52: 10602, - 54: 14541, - 58: 13849, - 62: 23300, - }, - ("Category Double Threes and Fours", 8, 8): { - 8: 1, - 16: 1773, - 42: 8766, - 48: 17452, - 54: 24338, - 56: 15722, - 62: 22745, - 64: 9203, - }, - ("Category Quadruple Ones and Twos", 1, 1): {0: 66567, 4: 16803, 8: 16630}, - ("Category Quadruple Ones and Twos", 1, 2): {0: 44809, 4: 27448, 8: 27743}, - ("Category Quadruple Ones and Twos", 1, 3): {0: 37100, 4: 23184, 8: 39716}, - ("Category Quadruple Ones and Twos", 1, 4): {0: 30963, 4: 19221, 8: 49816}, - ("Category Quadruple Ones and Twos", 1, 5): {0: 25316, 4: 16079, 8: 58605}, - ("Category Quadruple Ones and Twos", 1, 6): {0: 21505, 4: 13237, 8: 65258}, - ("Category Quadruple Ones and Twos", 1, 7): {0: 17676, 4: 11100, 8: 71224}, - ("Category Quadruple Ones and Twos", 1, 8): {0: 14971, 4: 9323, 8: 75706}, - ("Category Quadruple Ones and Twos", 2, 1): {0: 44566, 4: 22273, 8: 24842, 12: 8319}, - ("Category Quadruple Ones and Twos", 2, 2): {0: 19963, 4: 24890, 8: 32262, 12: 15172, 16: 7713}, - ("Category Quadruple Ones and Twos", 2, 3): {0: 13766, 4: 17158, 8: 34907, 12: 18539, 16: 15630}, - ("Category Quadruple Ones and Twos", 2, 4): {0: 9543, 4: 11981, 8: 34465, 12: 19108, 16: 24903}, - ("Category Quadruple Ones and Twos", 2, 5): {0: 6472, 4: 8302, 8: 32470, 12: 18612, 16: 34144}, - ("Category Quadruple Ones and Twos", 2, 6): {0: 4569, 4: 5737, 8: 29716, 12: 17216, 16: 42762}, - ("Category Quadruple Ones and Twos", 2, 7): {0: 3146, 8: 30463, 12: 15756, 16: 50635}, - ("Category Quadruple Ones and Twos", 2, 8): {0: 2265, 8: 26302, 12: 14167, 16: 57266}, - ("Category Quadruple Ones and Twos", 3, 1): {0: 29440, 4: 22574, 8: 27747, 12: 11557, 16: 8682}, - ("Category Quadruple Ones and Twos", 3, 2): {0: 8857, 4: 16295, 8: 26434, 12: 22986, 16: 16799, 20: 8629}, - ("Category Quadruple Ones and Twos", 3, 3): {0: 5063, 4: 9447, 8: 22255, 12: 21685, 16: 24084, 20: 11167, 24: 6299}, - ("Category Quadruple Ones and Twos", 3, 4): { - 0: 2864, - 4: 5531, - 8: 17681, - 12: 18400, - 16: 28524, - 20: 14552, - 24: 12448, - }, - ("Category Quadruple Ones and Twos", 3, 5): {0: 1676, 8: 16697, 12: 14755, 16: 30427, 20: 16602, 24: 19843}, - ("Category Quadruple Ones and Twos", 3, 6): {0: 2681, 8: 10259, 12: 11326, 16: 31125, 20: 16984, 24: 27625}, - ("Category Quadruple Ones and Twos", 3, 7): {0: 1688, 8: 7543, 12: 8769, 16: 29367, 20: 17085, 24: 35548}, - ("Category Quadruple Ones and Twos", 3, 8): {0: 941, 8: 5277, 12: 6388, 16: 27741, 20: 16170, 24: 43483}, - ("Category Quadruple Ones and Twos", 4, 1): {0: 19691, 4: 19657, 8: 27288, 12: 16126, 16: 11167, 24: 6071}, - ("Category Quadruple Ones and Twos", 4, 2): { - 0: 4023, - 4: 9776, - 8: 19015, - 12: 22094, - 16: 20986, - 20: 13805, - 24: 10301, - }, - ("Category Quadruple Ones and Twos", 4, 3): { - 0: 1848, - 8: 17116, - 12: 16853, - 16: 22831, - 20: 18400, - 24: 14480, - 28: 8472, - }, - ("Category Quadruple Ones and Twos", 4, 4): { - 0: 930, - 8: 10375, - 12: 12063, - 16: 21220, - 20: 19266, - 24: 20615, - 28: 9443, - 32: 6088, - }, - ("Category Quadruple Ones and Twos", 4, 5): { - 0: 1561, - 12: 12612, - 16: 18209, - 20: 17910, - 24: 25474, - 28: 12864, - 32: 11370, - }, - ("Category Quadruple Ones and Twos", 4, 6): { - 0: 722, - 12: 7979, - 16: 14796, - 20: 15416, - 24: 28256, - 28: 14675, - 32: 18156, - }, - ("Category Quadruple Ones and Twos", 4, 7): { - 0: 115, - 12: 5304, - 16: 11547, - 20: 12289, - 24: 29181, - 28: 16052, - 32: 25512, - }, - ("Category Quadruple Ones and Twos", 4, 8): {0: 164, 8: 2971, 16: 8888, 20: 9679, 24: 28785, 28: 16180, 32: 33333}, - ("Category Quadruple Ones and Twos", 5, 1): { - 0: 13112, - 4: 16534, - 8: 24718, - 12: 18558, - 16: 14547, - 20: 7055, - 24: 5476, - }, - ("Category Quadruple Ones and Twos", 5, 2): { - 0: 1764, - 4: 5529, - 8: 12216, - 12: 17687, - 16: 20808, - 20: 18149, - 24: 12849, - 28: 6991, - 32: 4007, - }, - ("Category Quadruple Ones and Twos", 5, 3): { - 0: 719, - 8: 8523, - 12: 11074, - 16: 17322, - 20: 19002, - 24: 18643, - 28: 12827, - 32: 7960, - 36: 3930, - }, - ("Category Quadruple Ones and Twos", 5, 4): { - 0: 1152, - 12: 9790, - 16: 12913, - 20: 15867, - 24: 20749, - 28: 16398, - 32: 14218, - 36: 8913, - }, - ("Category Quadruple Ones and Twos", 5, 5): { - 0: 98, - 12: 5549, - 16: 8863, - 20: 12037, - 24: 20010, - 28: 17568, - 32: 19789, - 36: 9319, - 40: 6767, - }, - ("Category Quadruple Ones and Twos", 5, 6): { - 0: 194, - 8: 2663, - 16: 5734, - 20: 8436, - 24: 17830, - 28: 16864, - 32: 24246, - 36: 12115, - 40: 11918, - }, - ("Category Quadruple Ones and Twos", 5, 7): { - 0: 1449, - 20: 9396, - 24: 14936, - 28: 14969, - 32: 27238, - 36: 14094, - 40: 17918, - }, - ("Category Quadruple Ones and Twos", 5, 8): { - 0: 747, - 20: 6034, - 24: 11929, - 28: 12517, - 32: 28388, - 36: 15339, - 40: 25046, - }, - ("Category Quadruple Ones and Twos", 6, 1): { - 0: 8646, - 4: 13011, - 8: 21357, - 12: 19385, - 16: 17008, - 20: 10409, - 24: 6249, - 28: 3935, - }, - ("Category Quadruple Ones and Twos", 6, 2): { - 0: 844, - 8: 10311, - 12: 12792, - 16: 17480, - 20: 18814, - 24: 16492, - 28: 11889, - 32: 6893, - 36: 4485, - }, - ("Category Quadruple Ones and Twos", 6, 3): { - 0: 1241, - 12: 9634, - 16: 11685, - 20: 15584, - 24: 17967, - 28: 16506, - 32: 13314, - 36: 8034, - 40: 6035, - }, - ("Category Quadruple Ones and Twos", 6, 4): { - 0: 1745, - 16: 9804, - 20: 10562, - 24: 15746, - 28: 17174, - 32: 17787, - 36: 12820, - 40: 9289, - 44: 5073, - }, - ("Category Quadruple Ones and Twos", 6, 5): { - 0: 2076, - 20: 10247, - 24: 12264, - 28: 14810, - 32: 19588, - 36: 16002, - 40: 14682, - 44: 6410, - 48: 3921, - }, - ("Category Quadruple Ones and Twos", 6, 6): { - 0: 884, - 20: 5943, - 24: 8774, - 28: 11481, - 32: 19145, - 36: 16864, - 40: 19906, - 44: 9386, - 48: 7617, - }, - ("Category Quadruple Ones and Twos", 6, 7): { - 0: 1386, - 24: 8138, - 28: 8372, - 32: 17207, - 36: 16148, - 40: 24051, - 44: 11862, - 48: 12836, - }, - ("Category Quadruple Ones and Twos", 6, 8): { - 0: 1841, - 28: 9606, - 32: 14489, - 36: 14585, - 40: 26779, - 44: 13821, - 48: 18879, - }, - ("Category Quadruple Ones and Twos", 7, 1): { - 0: 5780, - 4: 10185, - 8: 17905, - 12: 18364, - 16: 18160, - 20: 13115, - 24: 8617, - 32: 7874, - }, - ("Category Quadruple Ones and Twos", 7, 2): { - 0: 1795, - 12: 12828, - 16: 13204, - 20: 16895, - 24: 17562, - 28: 15061, - 32: 11122, - 36: 6507, - 40: 5026, - }, - ("Category Quadruple Ones and Twos", 7, 3): { - 0: 2065, - 16: 10495, - 20: 11008, - 24: 14839, - 28: 16393, - 32: 16118, - 36: 12681, - 40: 8773, - 48: 7628, - }, - ("Category Quadruple Ones and Twos", 7, 4): { - 0: 1950, - 20: 9612, - 24: 10535, - 28: 13596, - 32: 16527, - 36: 15938, - 40: 14071, - 44: 9192, - 48: 8579, - }, - ("Category Quadruple Ones and Twos", 7, 5): { - 0: 223, - 20: 5144, - 24: 6337, - 28: 9400, - 32: 14443, - 36: 15955, - 40: 17820, - 44: 13369, - 48: 10702, - 56: 6607, - }, - ("Category Quadruple Ones and Twos", 7, 6): { - 0: 271, - 24: 5976, - 28: 5988, - 32: 11398, - 36: 13738, - 40: 19063, - 44: 15587, - 48: 15867, - 52: 7202, - 56: 4910, - }, - ("Category Quadruple Ones and Twos", 7, 7): { - 0: 1032, - 28: 5724, - 32: 8275, - 36: 10801, - 40: 18184, - 44: 16470, - 48: 20467, - 52: 9969, - 56: 9078, - }, - ("Category Quadruple Ones and Twos", 7, 8): { - 0: 1508, - 32: 7832, - 36: 7770, - 40: 16197, - 44: 15477, - 48: 24388, - 52: 12403, - 56: 14425, - }, - ("Category Quadruple Ones and Twos", 8, 1): { - 0: 3811, - 4: 7682, - 8: 14638, - 12: 17214, - 16: 18191, - 20: 14651, - 24: 10976, - 28: 6591, - 36: 6246, - }, - ("Category Quadruple Ones and Twos", 8, 2): { - 0: 906, - 12: 7768, - 16: 9421, - 20: 13623, - 24: 16213, - 28: 16246, - 32: 14131, - 36: 10076, - 40: 6198, - 48: 5418, - }, - ("Category Quadruple Ones and Twos", 8, 3): { - 0: 224, - 8: 2520, - 20: 11222, - 24: 10733, - 28: 13934, - 32: 15751, - 36: 14882, - 40: 12409, - 44: 8920, - 48: 5462, - 52: 3943, - }, - ("Category Quadruple Ones and Twos", 8, 4): { - 0: 233, - 20: 5163, - 24: 6057, - 28: 9073, - 32: 12990, - 36: 14756, - 40: 15851, - 44: 13795, - 48: 10706, - 52: 6310, - 56: 5066, - }, - ("Category Quadruple Ones and Twos", 8, 5): { - 0: 76, - 12: 2105, - 28: 8316, - 32: 8993, - 36: 12039, - 40: 15561, - 44: 15382, - 48: 15278, - 52: 10629, - 56: 7377, - 60: 4244, - }, - ("Category Quadruple Ones and Twos", 8, 6): { - 4: 262, - 32: 10321, - 36: 8463, - 40: 13177, - 44: 14818, - 48: 17731, - 52: 14024, - 56: 12425, - 60: 5446, - 64: 3333, - }, - ("Category Quadruple Ones and Twos", 8, 7): { - 8: 300, - 32: 5443, - 36: 5454, - 40: 10276, - 44: 12582, - 48: 18487, - 52: 15549, - 56: 17187, - 60: 8149, - 64: 6573, - }, - ("Category Quadruple Ones and Twos", 8, 8): { - 8: 354, - 36: 5678, - 40: 7484, - 44: 9727, - 48: 17080, - 52: 15898, - 56: 21877, - 60: 10773, - 64: 11129, - }, + ("Category Half of Sixes", 8, 1): {0: 23337, 6: 76663}, + ("Category Half of Sixes", 8, 2): {0: 5310, 9: 74178, 12: 20512}, + ("Category Half of Sixes", 8, 3): {0: 8656, 12: 70598, 15: 20746}, + ("Category Half of Sixes", 8, 4): {0: 291, 12: 59487, 18: 40222}, + ("Category Half of Sixes", 8, 5): {0: 5145, 15: 63787, 18: 31068}, + ("Category Half of Sixes", 8, 6): {0: 8804, 18: 91196}, + ("Category Half of Sixes", 8, 7): {0: 4347, 18: 65663, 21: 29990}, + ("Category Half of Sixes", 8, 8): {0: 9252, 21: 90748}, + ("Category Twos and Threes", 1, 1): {0: 66466, 2: 33534}, + ("Category Twos and Threes", 1, 2): {0: 55640, 2: 44360}, + ("Category Twos and Threes", 1, 3): {0: 57822, 3: 42178}, + ("Category Twos and Threes", 1, 4): {0: 48170, 3: 51830}, + ("Category Twos and Threes", 1, 5): {0: 40294, 3: 59706}, + ("Category Twos and Threes", 1, 6): {0: 33417, 3: 66583}, + ("Category Twos and Threes", 1, 7): {0: 27852, 3: 72148}, + ("Category Twos and Threes", 1, 8): {0: 23364, 3: 76636}, + ("Category Twos and Threes", 2, 1): {0: 44565, 3: 55435}, + ("Category Twos and Threes", 2, 2): {0: 46335, 3: 53665}, + ("Category Twos and Threes", 2, 3): {0: 32347, 3: 67653}, + ("Category Twos and Threes", 2, 4): {0: 22424, 5: 77576}, + ("Category Twos and Threes", 2, 5): {0: 15661, 6: 84339}, + ("Category Twos and Threes", 2, 6): {0: 10775, 6: 89225}, + ("Category Twos and Threes", 2, 7): {0: 7375, 6: 92625}, + ("Category Twos and Threes", 2, 8): {0: 5212, 6: 94788}, + ("Category Twos and Threes", 3, 1): {0: 29892, 3: 70108}, + ("Category Twos and Threes", 3, 2): {0: 17285, 5: 82715}, + ("Category Twos and Threes", 3, 3): {0: 17436, 6: 82564}, + ("Category Twos and Threes", 3, 4): {0: 9962, 6: 90038}, + ("Category Twos and Threes", 3, 5): {0: 3347, 6: 96653}, + ("Category Twos and Threes", 3, 6): {0: 1821, 8: 98179}, + ("Category Twos and Threes", 3, 7): {0: 1082, 6: 61417, 9: 37501}, + ("Category Twos and Threes", 3, 8): {0: 13346, 9: 86654}, + ("Category Twos and Threes", 4, 1): {0: 19619, 5: 80381}, + ("Category Twos and Threes", 4, 2): {0: 18914, 6: 81086}, + ("Category Twos and Threes", 4, 3): {0: 4538, 5: 61859, 8: 33603}, + ("Category Twos and Threes", 4, 4): {0: 2183, 6: 62279, 9: 35538}, + ("Category Twos and Threes", 4, 5): {0: 16416, 9: 83584}, + ("Category Twos and Threes", 4, 6): {0: 6285, 9: 93715}, + ("Category Twos and Threes", 4, 7): {0: 30331, 11: 69669}, + ("Category Twos and Threes", 4, 8): {0: 22305, 12: 77695}, + ("Category Twos and Threes", 5, 1): {0: 13070, 5: 86930}, + ("Category Twos and Threes", 5, 2): {0: 5213, 5: 61441, 8: 33346}, + ("Category Twos and Threes", 5, 3): {0: 2126, 6: 58142, 9: 39732}, + ("Category Twos and Threes", 5, 4): {0: 848, 2: 30734, 11: 68418}, + ("Category Twos and Threes", 5, 5): {0: 29502, 12: 70498}, + ("Category Twos and Threes", 5, 6): {0: 123, 9: 52792, 12: 47085}, + ("Category Twos and Threes", 5, 7): {0: 8241, 12: 91759}, + ("Category Twos and Threes", 5, 8): {0: 13, 2: 31670, 14: 68317}, + ("Category Twos and Threes", 6, 1): {0: 22090, 6: 77910}, + ("Category Twos and Threes", 6, 2): {0: 2944, 6: 62394, 9: 34662}, + ("Category Twos and Threes", 6, 3): {0: 977, 2: 30626, 11: 68397}, + ("Category Twos and Threes", 6, 4): {0: 320, 8: 58370, 12: 41310}, + ("Category Twos and Threes", 6, 5): {0: 114, 2: 31718, 14: 68168}, + ("Category Twos and Threes", 6, 6): {0: 29669, 15: 70331}, + ("Category Twos and Threes", 6, 7): {0: 19855, 15: 80145}, + ("Category Twos and Threes", 6, 8): {0: 8524, 15: 91476}, + ("Category Twos and Threes", 7, 1): {0: 5802, 4: 54580, 7: 39618}, + ("Category Twos and Threes", 7, 2): {0: 1605, 6: 62574, 10: 35821}, + ("Category Twos and Threes", 7, 3): {0: 471, 8: 59691, 12: 39838}, + ("Category Twos and Threes", 7, 4): {0: 26620, 14: 73380}, + ("Category Twos and Threes", 7, 5): {0: 17308, 11: 37515, 15: 45177}, + ("Category Twos and Threes", 7, 6): {0: 30281, 17: 69719}, + ("Category Twos and Threes", 7, 7): {0: 28433, 18: 71567}, + ("Category Twos and Threes", 7, 8): {0: 13274, 18: 86726}, + ("Category Twos and Threes", 8, 1): {0: 3799, 5: 56614, 8: 39587}, + ("Category Twos and Threes", 8, 2): {0: 902, 7: 58003, 11: 41095}, + ("Category Twos and Threes", 8, 3): {0: 29391, 14: 70609}, + ("Category Twos and Threes", 8, 4): {0: 26041, 12: 40535, 16: 33424}, + ("Category Twos and Threes", 8, 5): {0: 26328, 14: 38760, 18: 34912}, + ("Category Twos and Threes", 8, 6): {0: 22646, 15: 45218, 19: 32136}, + ("Category Twos and Threes", 8, 7): {0: 25908, 20: 74092}, + ("Category Twos and Threes", 8, 8): {3: 18441, 17: 38826, 21: 42733}, + ("Category Sum of Odds", 1, 1): {0: 66572, 5: 33428}, + ("Category Sum of Odds", 1, 2): {0: 44489, 5: 55511}, + ("Category Sum of Odds", 1, 3): {0: 37185, 5: 62815}, + ("Category Sum of Odds", 1, 4): {0: 30917, 5: 69083}, + ("Category Sum of Odds", 1, 5): {0: 41833, 5: 58167}, + ("Category Sum of Odds", 1, 6): {0: 34902, 5: 65098}, + ("Category Sum of Odds", 1, 7): {0: 29031, 5: 70969}, + ("Category Sum of Odds", 1, 8): {0: 24051, 5: 75949}, + ("Category Sum of Odds", 2, 1): {0: 66460, 5: 33540}, + ("Category Sum of Odds", 2, 2): {0: 11216, 5: 65597, 8: 23187}, + ("Category Sum of Odds", 2, 3): {0: 30785, 8: 69215}, + ("Category Sum of Odds", 2, 4): {0: 21441, 10: 78559}, + ("Category Sum of Odds", 2, 5): {0: 14948, 10: 85052}, + ("Category Sum of Odds", 2, 6): {0: 4657, 3: 35569, 10: 59774}, + ("Category Sum of Odds", 2, 7): {0: 7262, 5: 42684, 10: 50054}, + ("Category Sum of Odds", 2, 8): {0: 4950, 5: 37432, 10: 57618}, + ("Category Sum of Odds", 3, 1): {0: 29203, 6: 70797}, + ("Category Sum of Odds", 3, 2): {0: 34454, 9: 65546}, + ("Category Sum of Odds", 3, 3): {0: 5022, 3: 32067, 8: 45663, 13: 17248}, + ("Category Sum of Odds", 3, 4): {0: 6138, 4: 33396, 13: 60466}, + ("Category Sum of Odds", 3, 5): {0: 29405, 15: 70595}, + ("Category Sum of Odds", 3, 6): {0: 21390, 15: 78610}, + ("Category Sum of Odds", 3, 7): {0: 8991, 8: 38279, 15: 52730}, + ("Category Sum of Odds", 3, 8): {0: 6340, 8: 34003, 15: 59657}, + ("Category Sum of Odds", 4, 1): {0: 28095, 4: 38198, 8: 33707}, + ("Category Sum of Odds", 4, 2): {0: 27003, 11: 72997}, + ("Category Sum of Odds", 4, 3): {0: 18712, 8: 40563, 13: 40725}, + ("Category Sum of Odds", 4, 4): {0: 30691, 15: 69309}, + ("Category Sum of Odds", 4, 5): {0: 433, 3: 32140, 13: 43150, 18: 24277}, + ("Category Sum of Odds", 4, 6): {0: 6549, 9: 32451, 15: 43220, 20: 17780}, + ("Category Sum of Odds", 4, 7): {0: 29215, 15: 45491, 20: 25294}, + ("Category Sum of Odds", 4, 8): {0: 11807, 13: 38927, 20: 49266}, + ("Category Sum of Odds", 5, 1): {0: 25139, 9: 74861}, + ("Category Sum of Odds", 5, 2): {0: 25110, 9: 40175, 14: 34715}, + ("Category Sum of Odds", 5, 3): {0: 23453, 11: 37756, 16: 38791}, + ("Category Sum of Odds", 5, 4): {0: 22993, 13: 37263, 18: 39744}, + ("Category Sum of Odds", 5, 5): {0: 25501, 15: 38407, 20: 36092}, + ("Category Sum of Odds", 5, 6): {0: 2542, 10: 32537, 18: 41122, 23: 23799}, + ("Category Sum of Odds", 5, 7): {0: 8228, 14: 32413, 20: 41289, 25: 18070}, + ("Category Sum of Odds", 5, 8): {0: 2, 2: 31173, 20: 43652, 25: 25173}, + ("Category Sum of Odds", 6, 1): {0: 23822, 6: 40166, 11: 36012}, + ("Category Sum of Odds", 6, 2): {0: 24182, 11: 37137, 16: 38681}, + ("Category Sum of Odds", 6, 3): {0: 27005, 14: 35759, 19: 37236}, + ("Category Sum of Odds", 6, 4): {0: 25133, 16: 35011, 21: 39856}, + ("Category Sum of Odds", 6, 5): {0: 24201, 18: 34934, 23: 40865}, + ("Category Sum of Odds", 6, 6): {0: 12978, 17: 32943, 23: 36836, 28: 17243}, + ("Category Sum of Odds", 6, 7): {0: 2314, 14: 32834, 23: 40134, 28: 24718}, + ("Category Sum of Odds", 6, 8): {0: 5464, 18: 34562, 25: 40735, 30: 19239}, + ("Category Sum of Odds", 7, 1): {0: 29329, 8: 37697, 13: 32974}, + ("Category Sum of Odds", 7, 2): {0: 29935, 14: 34878, 19: 35187}, + ("Category Sum of Odds", 7, 3): {0: 30638, 17: 33733, 22: 35629}, + ("Category Sum of Odds", 7, 4): {0: 163, 6: 32024, 20: 33870, 25: 33943}, + ("Category Sum of Odds", 7, 5): {0: 31200, 22: 35565, 27: 33235}, + ("Category Sum of Odds", 7, 6): {2: 30174, 24: 36670, 29: 33156}, + ("Category Sum of Odds", 7, 7): {4: 8712, 21: 35208, 28: 36799, 33: 19281}, + ("Category Sum of Odds", 7, 8): {0: 1447, 18: 32027, 28: 39941, 33: 26585}, + ("Category Sum of Odds", 8, 1): {0: 26931, 9: 35423, 14: 37646}, + ("Category Sum of Odds", 8, 2): {0: 29521, 16: 32919, 21: 37560}, + ("Category Sum of Odds", 8, 3): {0: 412, 7: 32219, 20: 32055, 25: 35314}, + ("Category Sum of Odds", 8, 4): {1: 27021, 22: 36376, 28: 36603}, + ("Category Sum of Odds", 8, 5): {1: 1069, 14: 32451, 26: 32884, 31: 33596}, + ("Category Sum of Odds", 8, 6): {4: 31598, 28: 33454, 33: 34948}, + ("Category Sum of Odds", 8, 7): {6: 27327, 29: 35647, 34: 37026}, + ("Category Sum of Odds", 8, 8): {4: 1, 26: 40489, 33: 37825, 38: 21685}, + ("Category Sum of Evens", 1, 1): {0: 49585, 6: 50415}, + ("Category Sum of Evens", 1, 2): {0: 44331, 6: 55669}, + ("Category Sum of Evens", 1, 3): {0: 29576, 6: 70424}, + ("Category Sum of Evens", 1, 4): {0: 24744, 6: 75256}, + ("Category Sum of Evens", 1, 5): {0: 20574, 6: 79426}, + ("Category Sum of Evens", 1, 6): {0: 17182, 6: 82818}, + ("Category Sum of Evens", 1, 7): {0: 14152, 6: 85848}, + ("Category Sum of Evens", 1, 8): {0: 8911, 6: 91089}, + ("Category Sum of Evens", 2, 1): {0: 25229, 8: 74771}, + ("Category Sum of Evens", 2, 2): {0: 18682, 6: 58078, 10: 23240}, + ("Category Sum of Evens", 2, 3): {0: 8099, 10: 91901}, + ("Category Sum of Evens", 2, 4): {0: 16906, 12: 83094}, + ("Category Sum of Evens", 2, 5): {0: 11901, 12: 88099}, + ("Category Sum of Evens", 2, 6): {0: 8054, 12: 91946}, + ("Category Sum of Evens", 2, 7): {0: 5695, 12: 94305}, + ("Category Sum of Evens", 2, 8): {0: 3950, 12: 96050}, + ("Category Sum of Evens", 3, 1): {0: 25054, 6: 51545, 10: 23401}, + ("Category Sum of Evens", 3, 2): {0: 17863, 10: 64652, 14: 17485}, + ("Category Sum of Evens", 3, 3): {0: 7748, 12: 75072, 16: 17180}, + ("Category Sum of Evens", 3, 4): {0: 1318, 12: 70339, 16: 28343}, + ("Category Sum of Evens", 3, 5): {0: 7680, 12: 53582, 18: 38738}, + ("Category Sum of Evens", 3, 6): {0: 1475, 12: 50152, 18: 48373}, + ("Category Sum of Evens", 3, 7): {0: 14328, 18: 85672}, + ("Category Sum of Evens", 3, 8): {0: 10001, 18: 89999}, + ("Category Sum of Evens", 4, 1): {0: 6214, 8: 67940, 12: 25846}, + ("Category Sum of Evens", 4, 2): {0: 16230, 12: 55675, 16: 28095}, + ("Category Sum of Evens", 4, 3): {0: 11069, 16: 70703, 20: 18228}, + ("Category Sum of Evens", 4, 4): {0: 13339, 20: 86661}, + ("Category Sum of Evens", 4, 5): {0: 8193, 18: 66423, 22: 25384}, + ("Category Sum of Evens", 4, 6): {0: 11127, 18: 53742, 22: 35131}, + ("Category Sum of Evens", 4, 7): {0: 7585, 18: 48073, 24: 44342}, + ("Category Sum of Evens", 4, 8): {0: 642, 18: 46588, 24: 52770}, + ("Category Sum of Evens", 5, 1): {0: 8373, 8: 50641, 16: 40986}, + ("Category Sum of Evens", 5, 2): {0: 7271, 12: 42254, 20: 50475}, + ("Category Sum of Evens", 5, 3): {0: 8350, 16: 44711, 24: 46939}, + ("Category Sum of Evens", 5, 4): {0: 8161, 18: 44426, 26: 47413}, + ("Category Sum of Evens", 5, 5): {0: 350, 8: 16033, 24: 67192, 28: 16425}, + ("Category Sum of Evens", 5, 6): {0: 10318, 24: 64804, 28: 24878}, + ("Category Sum of Evens", 5, 7): {0: 12783, 24: 52804, 28: 34413}, + ("Category Sum of Evens", 5, 8): {0: 1, 24: 56646, 30: 43353}, + ("Category Sum of Evens", 6, 1): {0: 10482, 10: 48137, 18: 41381}, + ("Category Sum of Evens", 6, 2): {0: 12446, 16: 43676, 24: 43878}, + ("Category Sum of Evens", 6, 3): {0: 11037, 20: 44249, 28: 44714}, + ("Category Sum of Evens", 6, 4): {0: 10005, 22: 42316, 30: 47679}, + ("Category Sum of Evens", 6, 5): {0: 9751, 24: 42204, 32: 48045}, + ("Category Sum of Evens", 6, 6): {0: 9692, 26: 45108, 34: 45200}, + ("Category Sum of Evens", 6, 7): {4: 1437, 26: 42351, 34: 56212}, + ("Category Sum of Evens", 6, 8): {4: 13017, 30: 51814, 36: 35169}, + ("Category Sum of Evens", 7, 1): {0: 12688, 12: 45275, 20: 42037}, + ("Category Sum of Evens", 7, 2): {0: 1433, 20: 60350, 28: 38217}, + ("Category Sum of Evens", 7, 3): {0: 13724, 24: 43514, 32: 42762}, + ("Category Sum of Evens", 7, 4): {0: 11285, 26: 40694, 34: 48021}, + ("Category Sum of Evens", 7, 5): {4: 5699, 28: 43740, 36: 50561}, + ("Category Sum of Evens", 7, 6): {4: 5478, 30: 43711, 38: 50811}, + ("Category Sum of Evens", 7, 7): {6: 9399, 32: 43251, 40: 47350}, + ("Category Sum of Evens", 7, 8): {10: 1490, 32: 40719, 40: 57791}, + ("Category Sum of Evens", 8, 1): {0: 14585, 14: 42804, 22: 42611}, + ("Category Sum of Evens", 8, 2): {0: 15891, 22: 39707, 30: 44402}, + ("Category Sum of Evens", 8, 3): {2: 297, 12: 16199, 28: 42274, 36: 41230}, + ("Category Sum of Evens", 8, 4): {0: 7625, 30: 43948, 38: 48427}, + ("Category Sum of Evens", 8, 5): {4: 413, 18: 16209, 34: 43301, 42: 40077}, + ("Category Sum of Evens", 8, 6): {6: 14927, 36: 43139, 44: 41934}, + ("Category Sum of Evens", 8, 7): {8: 5042, 36: 40440, 44: 54518}, + ("Category Sum of Evens", 8, 8): {10: 5005, 38: 44269, 46: 50726}, + ("Category Double Threes and Fours", 1, 1): {0: 66749, 8: 33251}, + ("Category Double Threes and Fours", 1, 2): {0: 44675, 8: 55325}, + ("Category Double Threes and Fours", 1, 3): {0: 29592, 8: 70408}, + ("Category Double Threes and Fours", 1, 4): {0: 24601, 8: 75399}, + ("Category Double Threes and Fours", 1, 5): {0: 20499, 8: 79501}, + ("Category Double Threes and Fours", 1, 6): {0: 17116, 8: 82884}, + ("Category Double Threes and Fours", 1, 7): {0: 14193, 8: 85807}, + ("Category Double Threes and Fours", 1, 8): {0: 11977, 8: 88023}, + ("Category Double Threes and Fours", 2, 1): {0: 44382, 8: 55618}, + ("Category Double Threes and Fours", 2, 2): {0: 19720, 8: 57236, 14: 23044}, + ("Category Double Threes and Fours", 2, 3): {0: 8765, 8: 41937, 14: 49298}, + ("Category Double Threes and Fours", 2, 4): {0: 6164, 16: 93836}, + ("Category Double Threes and Fours", 2, 5): {0: 4307, 8: 38682, 16: 57011}, + ("Category Double Threes and Fours", 2, 6): {0: 2879, 8: 32717, 16: 64404}, + ("Category Double Threes and Fours", 2, 7): {0: 6679, 16: 93321}, + ("Category Double Threes and Fours", 2, 8): {0: 4758, 16: 95242}, + ("Category Double Threes and Fours", 3, 1): {0: 29378, 8: 50024, 14: 20598}, + ("Category Double Threes and Fours", 3, 2): {0: 8894, 14: 74049, 18: 17057}, + ("Category Double Threes and Fours", 3, 3): {0: 2643, 14: 62555, 22: 34802}, + ("Category Double Threes and Fours", 3, 4): {0: 1523, 6: 19996, 16: 50281, 22: 28200}, + ("Category Double Threes and Fours", 3, 5): {0: 845, 16: 60496, 24: 38659}, + ("Category Double Threes and Fours", 3, 6): {0: 499, 16: 51131, 24: 48370}, + ("Category Double Threes and Fours", 3, 7): {0: 5542, 16: 37755, 24: 56703}, + ("Category Double Threes and Fours", 3, 8): {0: 3805, 16: 32611, 24: 63584}, + ("Category Double Threes and Fours", 4, 1): {0: 19809, 8: 39303, 16: 40888}, + ("Category Double Threes and Fours", 4, 2): {0: 3972, 16: 71506, 22: 24522}, + ("Category Double Threes and Fours", 4, 3): {0: 745, 18: 53727, 22: 28503, 28: 17025}, + ("Category Double Threes and Fours", 4, 4): {0: 4862, 16: 34879, 22: 33529, 28: 26730}, + ("Category Double Threes and Fours", 4, 5): {0: 2891, 16: 25367, 24: 46333, 30: 25409}, + ("Category Double Threes and Fours", 4, 6): {0: 2525, 24: 62353, 30: 35122}, + ("Category Double Threes and Fours", 4, 7): {0: 1042, 24: 54543, 32: 44415}, + ("Category Double Threes and Fours", 4, 8): {0: 2510, 24: 44681, 32: 52809}, + ("Category Double Threes and Fours", 5, 1): {0: 13122, 14: 68022, 20: 18856}, + ("Category Double Threes and Fours", 5, 2): {0: 1676, 14: 37791, 22: 40810, 28: 19723}, + ("Category Double Threes and Fours", 5, 3): {0: 2945, 16: 28193, 22: 26795, 32: 42067}, + ("Category Double Threes and Fours", 5, 4): {0: 2807, 26: 53419, 30: 26733, 36: 17041}, + ("Category Double Threes and Fours", 5, 5): {0: 3651, 24: 38726, 32: 41484, 38: 16139}, + ("Category Double Threes and Fours", 5, 6): {0: 362, 12: 13070, 32: 61608, 38: 24960}, + ("Category Double Threes and Fours", 5, 7): {0: 161, 12: 15894, 32: 49464, 38: 34481}, + ("Category Double Threes and Fours", 5, 8): {0: 82, 12: 11438, 32: 45426, 40: 43054}, + ("Category Double Threes and Fours", 6, 1): {0: 8738, 6: 26451, 16: 43879, 22: 20932}, + ("Category Double Threes and Fours", 6, 2): {0: 784, 16: 38661, 28: 42164, 32: 18391}, + ("Category Double Threes and Fours", 6, 3): {0: 1062, 22: 34053, 28: 27996, 38: 36889}, + ("Category Double Threes and Fours", 6, 4): {0: 439, 12: 13100, 30: 43296, 40: 43165}, + ("Category Double Threes and Fours", 6, 5): {0: 3957, 34: 51190, 38: 26734, 44: 18119}, + ("Category Double Threes and Fours", 6, 6): {0: 4226, 32: 37492, 40: 40719, 46: 17563}, + ("Category Double Threes and Fours", 6, 7): {0: 31, 12: 13933, 40: 60102, 46: 25934}, + ("Category Double Threes and Fours", 6, 8): {8: 388, 22: 16287, 40: 48255, 48: 35070}, + ("Category Double Threes and Fours", 7, 1): {0: 5803, 8: 28280, 14: 26186, 26: 39731}, + ("Category Double Threes and Fours", 7, 2): {0: 3319, 20: 36331, 30: 38564, 36: 21786}, + ("Category Double Threes and Fours", 7, 3): {0: 2666, 18: 16444, 34: 41412, 44: 39478}, + ("Category Double Threes and Fours", 7, 4): {0: 99, 12: 9496, 38: 50302, 46: 40103}, + ("Category Double Threes and Fours", 7, 5): {0: 45, 12: 13200, 42: 52460, 50: 34295}, + ("Category Double Threes and Fours", 7, 6): {8: 2400, 28: 16653, 46: 60564, 52: 20383}, + ("Category Double Threes and Fours", 7, 7): {6: 7, 12: 11561, 44: 44119, 54: 44313}, + ("Category Double Threes and Fours", 7, 8): {8: 4625, 44: 40601, 48: 26475, 54: 28299}, + ("Category Double Threes and Fours", 8, 1): {0: 3982, 16: 56447, 28: 39571}, + ("Category Double Threes and Fours", 8, 2): {0: 1645, 20: 25350, 30: 37385, 42: 35620}, + ("Category Double Threes and Fours", 8, 3): {0: 6, 26: 23380, 40: 40181, 50: 36433}, + ("Category Double Threes and Fours", 8, 4): {0: 541, 20: 16547, 42: 38406, 52: 44506}, + ("Category Double Threes and Fours", 8, 5): {6: 2956, 30: 16449, 46: 43983, 56: 36612}, + ("Category Double Threes and Fours", 8, 6): {0: 2, 12: 7360, 38: 19332, 54: 53627, 58: 19679}, + ("Category Double Threes and Fours", 8, 7): {6: 9699, 48: 38611, 54: 28390, 60: 23300}, + ("Category Double Threes and Fours", 8, 8): {8: 5, 20: 10535, 52: 41790, 62: 47670}, + ("Category Quadruple Ones and Twos", 1, 1): {0: 66567, 8: 33433}, + ("Category Quadruple Ones and Twos", 1, 2): {0: 44809, 8: 55191}, + ("Category Quadruple Ones and Twos", 1, 3): {0: 37100, 8: 62900}, + ("Category Quadruple Ones and Twos", 1, 4): {0: 30963, 8: 69037}, + ("Category Quadruple Ones and Twos", 1, 5): {0: 25316, 8: 74684}, + ("Category Quadruple Ones and Twos", 1, 6): {0: 21505, 8: 78495}, + ("Category Quadruple Ones and Twos", 1, 7): {0: 17676, 8: 82324}, + ("Category Quadruple Ones and Twos", 1, 8): {0: 14971, 8: 85029}, + ("Category Quadruple Ones and Twos", 2, 1): {0: 44566, 8: 55434}, + ("Category Quadruple Ones and Twos", 2, 2): {0: 19963, 8: 57152, 12: 22885}, + ("Category Quadruple Ones and Twos", 2, 3): {0: 13766, 8: 52065, 16: 34169}, + ("Category Quadruple Ones and Twos", 2, 4): {0: 9543, 8: 46446, 16: 44011}, + ("Category Quadruple Ones and Twos", 2, 5): {0: 6472, 8: 40772, 16: 52756}, + ("Category Quadruple Ones and Twos", 2, 6): {0: 10306, 12: 46932, 16: 42762}, + ("Category Quadruple Ones and Twos", 2, 7): {0: 7120, 12: 42245, 16: 50635}, + ("Category Quadruple Ones and Twos", 2, 8): {0: 4989, 12: 37745, 16: 57266}, + ("Category Quadruple Ones and Twos", 3, 1): {0: 29440, 8: 50321, 16: 20239}, + ("Category Quadruple Ones and Twos", 3, 2): {0: 8857, 8: 42729, 16: 48414}, + ("Category Quadruple Ones and Twos", 3, 3): {0: 5063, 12: 53387, 20: 41550}, + ("Category Quadruple Ones and Twos", 3, 4): {0: 8395, 16: 64605, 24: 27000}, + ("Category Quadruple Ones and Twos", 3, 5): {0: 4895, 16: 58660, 24: 36445}, + ("Category Quadruple Ones and Twos", 3, 6): {0: 2681, 16: 52710, 24: 44609}, + ("Category Quadruple Ones and Twos", 3, 7): {0: 586, 16: 46781, 24: 52633}, + ("Category Quadruple Ones and Twos", 3, 8): {0: 941, 16: 39406, 24: 59653}, + ("Category Quadruple Ones and Twos", 4, 1): {0: 19691, 8: 46945, 16: 33364}, + ("Category Quadruple Ones and Twos", 4, 2): {0: 4023, 12: 50885, 24: 45092}, + ("Category Quadruple Ones and Twos", 4, 3): {0: 6553, 16: 52095, 28: 41352}, + ("Category Quadruple Ones and Twos", 4, 4): {0: 3221, 16: 41367, 24: 39881, 28: 15531}, + ("Category Quadruple Ones and Twos", 4, 5): {0: 1561, 20: 48731, 28: 49708}, + ("Category Quadruple Ones and Twos", 4, 6): {0: 190, 20: 38723, 28: 42931, 32: 18156}, + ("Category Quadruple Ones and Twos", 4, 7): {0: 5419, 24: 53017, 32: 41564}, + ("Category Quadruple Ones and Twos", 4, 8): {0: 3135, 24: 47352, 32: 49513}, + ("Category Quadruple Ones and Twos", 5, 1): {0: 13112, 8: 41252, 20: 45636}, + ("Category Quadruple Ones and Twos", 5, 2): {0: 7293, 16: 50711, 28: 41996}, + ("Category Quadruple Ones and Twos", 5, 3): {0: 719, 20: 55921, 32: 43360}, + ("Category Quadruple Ones and Twos", 5, 4): {0: 1152, 20: 38570, 32: 60278}, + ("Category Quadruple Ones and Twos", 5, 5): {0: 5647, 24: 40910, 36: 53443}, + ("Category Quadruple Ones and Twos", 5, 6): {0: 194, 28: 51527, 40: 48279}, + ("Category Quadruple Ones and Twos", 5, 7): {0: 1449, 28: 39301, 36: 41332, 40: 17918}, + ("Category Quadruple Ones and Twos", 5, 8): {0: 6781, 32: 52834, 40: 40385}, + ("Category Quadruple Ones and Twos", 6, 1): {0: 8646, 12: 53753, 24: 37601}, + ("Category Quadruple Ones and Twos", 6, 2): {0: 844, 16: 40583, 28: 58573}, + ("Category Quadruple Ones and Twos", 6, 3): {0: 1241, 24: 54870, 36: 43889}, + ("Category Quadruple Ones and Twos", 6, 4): {0: 1745, 28: 53286, 40: 44969}, + ("Category Quadruple Ones and Twos", 6, 5): {0: 2076, 32: 56909, 44: 41015}, + ("Category Quadruple Ones and Twos", 6, 6): {0: 6827, 32: 39400, 44: 53773}, + ("Category Quadruple Ones and Twos", 6, 7): {0: 1386, 36: 49865, 48: 48749}, + ("Category Quadruple Ones and Twos", 6, 8): {0: 1841, 36: 38680, 44: 40600, 48: 18879}, + ("Category Quadruple Ones and Twos", 7, 1): {0: 5780, 12: 46454, 24: 47766}, + ("Category Quadruple Ones and Twos", 7, 2): {0: 6122, 20: 38600, 32: 55278}, + ("Category Quadruple Ones and Twos", 7, 3): {0: 2065, 28: 52735, 40: 45200}, + ("Category Quadruple Ones and Twos", 7, 4): {0: 1950, 32: 50270, 44: 47780}, + ("Category Quadruple Ones and Twos", 7, 5): {0: 2267, 36: 49235, 48: 48498}, + ("Category Quadruple Ones and Twos", 7, 6): {0: 2500, 40: 53934, 52: 43566}, + ("Category Quadruple Ones and Twos", 7, 7): {0: 6756, 44: 53730, 56: 39514}, + ("Category Quadruple Ones and Twos", 7, 8): {0: 3625, 44: 45159, 56: 51216}, + ("Category Quadruple Ones and Twos", 8, 1): {0: 11493, 16: 50043, 28: 38464}, + ("Category Quadruple Ones and Twos", 8, 2): {0: 136, 24: 47795, 36: 52069}, + ("Category Quadruple Ones and Twos", 8, 3): {0: 2744, 32: 51640, 48: 45616}, + ("Category Quadruple Ones and Twos", 8, 4): {0: 2293, 36: 45979, 48: 51728}, + ("Category Quadruple Ones and Twos", 8, 5): {0: 2181, 40: 44909, 52: 52910}, + ("Category Quadruple Ones and Twos", 8, 6): {4: 2266, 44: 44775, 56: 52959}, + ("Category Quadruple Ones and Twos", 8, 7): {8: 2344, 48: 50198, 60: 47458}, + ("Category Quadruple Ones and Twos", 8, 8): {8: 2808, 48: 37515, 56: 37775, 64: 21902}, ("Category Micro Straight", 1, 1): {0: 100000}, ("Category Micro Straight", 1, 2): {0: 100000}, ("Category Micro Straight", 1, 3): {0: 100000}, @@ -3527,7 +2329,7 @@ ("Category 4&5 Full House", 4, 6): {0: 100000}, ("Category 4&5 Full House", 4, 7): {0: 100000}, ("Category 4&5 Full House", 4, 8): {0: 100000}, - ("Category 4&5 Full House", 5, 1): {0: 99724, 50: 276}, + ("Category 4&5 Full House", 5, 1): {0: 100000}, ("Category 4&5 Full House", 5, 2): {0: 96607, 50: 3393}, ("Category 4&5 Full House", 5, 3): {0: 88788, 50: 11212}, ("Category 4&5 Full House", 5, 4): {0: 77799, 50: 22201}, @@ -3535,7 +2337,7 @@ ("Category 4&5 Full House", 5, 6): {0: 54548, 50: 45452}, ("Category 4&5 Full House", 5, 7): {0: 44898, 50: 55102}, ("Category 4&5 Full House", 5, 8): {0: 36881, 50: 63119}, - ("Category 4&5 Full House", 6, 1): {0: 98841, 50: 1159}, + ("Category 4&5 Full House", 6, 1): {0: 100000}, ("Category 4&5 Full House", 6, 2): {0: 88680, 50: 11320}, ("Category 4&5 Full House", 6, 3): {0: 70215, 50: 29785}, ("Category 4&5 Full House", 6, 4): {0: 50801, 50: 49199}, diff --git a/worlds/yachtdice/__init__.py b/worlds/yachtdice/__init__.py index c36c59544f15..3a79eff04046 100644 --- a/worlds/yachtdice/__init__.py +++ b/worlds/yachtdice/__init__.py @@ -56,7 +56,7 @@ class YachtDiceWorld(World): item_name_groups = item_groups - ap_world_version = "2.1.1" + ap_world_version = "2.1.2" def _get_yachtdice_data(self): return { @@ -190,7 +190,6 @@ def generate_early(self): if self.frags_per_roll == 1: self.itempool += ["Roll"] * num_of_rolls_to_add # minus one because one is in start inventory else: - self.itempool.append("Roll") # always add a full roll to make generation easier (will be early) self.itempool += ["Roll Fragment"] * (self.frags_per_roll * num_of_rolls_to_add) already_items = len(self.itempool) @@ -231,13 +230,10 @@ def generate_early(self): weights["Dice"] = weights["Dice"] / 5 * self.frags_per_dice weights["Roll"] = weights["Roll"] / 5 * self.frags_per_roll - extra_points_added = 0 - multipliers_added = 0 - items_added = 0 - - def get_item_to_add(weights, extra_points_added, multipliers_added, items_added): - items_added += 1 + extra_points_added = [0] # make it a mutible type so we can change the value in the function + step_score_multipliers_added = [0] + def get_item_to_add(weights, extra_points_added, step_score_multipliers_added): all_items = self.itempool + self.precollected dice_fragments_in_pool = all_items.count("Dice") * self.frags_per_dice + all_items.count("Dice Fragment") if dice_fragments_in_pool + 1 >= 9 * self.frags_per_dice: @@ -246,21 +242,18 @@ def get_item_to_add(weights, extra_points_added, multipliers_added, items_added) if roll_fragments_in_pool + 1 >= 6 * self.frags_per_roll: weights["Roll"] = 0 # don't allow >= 6 rolls - # Don't allow too many multipliers - if multipliers_added > 50: - weights["Fixed Score Multiplier"] = 0 - weights["Step Score Multiplier"] = 0 - # Don't allow too many extra points - if extra_points_added > 300: + if extra_points_added[0] > 400: weights["Points"] = 0 + if step_score_multipliers_added[0] > 10: + weights["Step Score Multiplier"] = 0 + # if all weights are zero, allow to add fixed score multiplier, double category, points. if sum(weights.values()) == 0: - if multipliers_added <= 50: - weights["Fixed Score Multiplier"] = 1 + weights["Fixed Score Multiplier"] = 1 weights["Double category"] = 1 - if extra_points_added <= 300: + if extra_points_added[0] <= 400: weights["Points"] = 1 # Next, add the appropriate item. We'll slightly alter weights to avoid too many of the same item @@ -274,11 +267,10 @@ def get_item_to_add(weights, extra_points_added, multipliers_added, items_added) return "Roll" if self.frags_per_roll == 1 else "Roll Fragment" elif which_item_to_add == "Fixed Score Multiplier": weights["Fixed Score Multiplier"] /= 1.05 - multipliers_added += 1 return "Fixed Score Multiplier" elif which_item_to_add == "Step Score Multiplier": weights["Step Score Multiplier"] /= 1.1 - multipliers_added += 1 + step_score_multipliers_added[0] += 1 return "Step Score Multiplier" elif which_item_to_add == "Double category": # Below entries are the weights to add each category. @@ -303,15 +295,15 @@ def get_item_to_add(weights, extra_points_added, multipliers_added, items_added) choice = self.random.choices(list(probs.keys()), weights=list(probs.values()))[0] if choice == "1 Point": weights["Points"] /= 1.01 - extra_points_added += 1 + extra_points_added[0] += 1 return "1 Point" elif choice == "10 Points": weights["Points"] /= 1.1 - extra_points_added += 10 + extra_points_added[0] += 10 return "10 Points" elif choice == "100 Points": weights["Points"] /= 2 - extra_points_added += 100 + extra_points_added[0] += 100 return "100 Points" else: raise Exception("Unknown point value (Yacht Dice)") @@ -320,7 +312,7 @@ def get_item_to_add(weights, extra_points_added, multipliers_added, items_added) # adding 17 items as a start seems like the smartest way to get close to 1000 points for _ in range(17): - self.itempool.append(get_item_to_add(weights, extra_points_added, multipliers_added, items_added)) + self.itempool.append(get_item_to_add(weights, extra_points_added, step_score_multipliers_added)) score_in_logic = dice_simulation_fill_pool( self.itempool + self.precollected, @@ -348,7 +340,7 @@ def get_item_to_add(weights, extra_points_added, multipliers_added, items_added) else: # Keep adding items until a score of 1000 is in logic while score_in_logic < 1000: - item_to_add = get_item_to_add(weights, extra_points_added, multipliers_added, items_added) + item_to_add = get_item_to_add(weights, extra_points_added, step_score_multipliers_added) self.itempool.append(item_to_add) if item_to_add == "1 Point": score_in_logic += 1 From 430b71a092b9bff8aa8f6a61dd4266a14cd056ec Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Sat, 7 Sep 2024 17:03:04 -0500 Subject: [PATCH 011/212] Core: have webhost slot name links go through the launcher (#2779) * Core: have webhost slot name links go through the launcher so that components can use them * fix query handling, remove debug prints, and change mousover text for new behavior * remove a missed debug and unused function * filter room id to suuid since that's what everything else uses * pass args to common client correctly * add GUI to select which client to open * remove args parsing and "require" components to parse it themselves * support for messenger since it was basically already done * use "proper" args argparsing and clean up uri handling * use a timer and auto launch text client if no component is found * change the timer to be a bit more appealing. also found a bug lmao * don't hold 5 hostage and capitalize URI ig --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- CommonClient.py | 4 +- Launcher.py | 98 +++++++++++++++++++++++++++++--- WebHostLib/templates/macros.html | 2 +- inno_setup.iss | 4 +- worlds/LauncherComponents.py | 15 +++-- worlds/messenger/__init__.py | 2 +- worlds/messenger/client_setup.py | 15 +++-- 7 files changed, 115 insertions(+), 25 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index 750bee80bd70..fe9df38dbdeb 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -994,7 +994,7 @@ def get_base_parser(description: typing.Optional[str] = None): return parser -def run_as_textclient(): +def run_as_textclient(*args): class TextContext(CommonContext): # Text Mode to use !hint and such with games that have no text entry tags = CommonContext.tags | {"TextOnly"} @@ -1033,7 +1033,7 @@ async def main(args): parser = get_base_parser(description="Gameless Archipelago Client, for text interfacing.") parser.add_argument('--name', default=None, help="Slot Name to connect as.") parser.add_argument("url", nargs="?", help="Archipelago connection url") - args = parser.parse_args() + args = parser.parse_args(args if args else None) # this is necessary as long as CommonClient itself is launchable if args.url: url = urllib.parse.urlparse(args.url) diff --git a/Launcher.py b/Launcher.py index 6b66b2a3a671..97903e2ad103 100644 --- a/Launcher.py +++ b/Launcher.py @@ -16,10 +16,11 @@ import shlex import subprocess import sys +import urllib.parse import webbrowser from os.path import isfile from shutil import which -from typing import Callable, Sequence, Union, Optional +from typing import Callable, Optional, Sequence, Tuple, Union import Utils import settings @@ -107,7 +108,81 @@ def update_settings(): ]) -def identify(path: Union[None, str]): +def handle_uri(path: str, launch_args: Tuple[str, ...]) -> None: + url = urllib.parse.urlparse(path) + queries = urllib.parse.parse_qs(url.query) + launch_args = (path, *launch_args) + client_component = None + text_client_component = None + if "game" in queries: + game = queries["game"][0] + else: # TODO around 0.6.0 - this is for pre this change webhost uri's + game = "Archipelago" + for component in components: + if component.supports_uri and component.game_name == game: + client_component = component + elif component.display_name == "Text Client": + text_client_component = component + + from kvui import App, Button, BoxLayout, Label, Clock, Window + + class Popup(App): + timer_label: Label + remaining_time: Optional[int] + + def __init__(self): + self.title = "Connect to Multiworld" + self.icon = r"data/icon.png" + super().__init__() + + def build(self): + layout = BoxLayout(orientation="vertical") + + if client_component is None: + self.remaining_time = 7 + label_text = (f"A game client able to parse URIs was not detected for {game}.\n" + f"Launching Text Client in 7 seconds...") + self.timer_label = Label(text=label_text) + layout.add_widget(self.timer_label) + Clock.schedule_interval(self.update_label, 1) + else: + layout.add_widget(Label(text="Select client to open and connect with.")) + button_row = BoxLayout(orientation="horizontal", size_hint=(1, 0.4)) + + text_client_button = Button( + text=text_client_component.display_name, + on_release=lambda *args: run_component(text_client_component, *launch_args) + ) + button_row.add_widget(text_client_button) + + game_client_button = Button( + text=client_component.display_name, + on_release=lambda *args: run_component(client_component, *launch_args) + ) + button_row.add_widget(game_client_button) + + layout.add_widget(button_row) + + return layout + + def update_label(self, dt): + if self.remaining_time > 1: + # countdown the timer and string replace the number + self.remaining_time -= 1 + self.timer_label.text = self.timer_label.text.replace( + str(self.remaining_time + 1), str(self.remaining_time) + ) + else: + # our timer is finished so launch text client and close down + run_component(text_client_component, *launch_args) + Clock.unschedule(self.update_label) + App.get_running_app().stop() + Window.close() + + Popup().run() + + +def identify(path: Union[None, str]) -> Tuple[Union[None, str], Union[None, Component]]: if path is None: return None, None for component in components: @@ -299,20 +374,24 @@ def main(args: Optional[Union[argparse.Namespace, dict]] = None): elif not args: args = {} - if args.get("Patch|Game|Component", None) is not None: - file, component = identify(args["Patch|Game|Component"]) + path = args.get("Patch|Game|Component|url", None) + if path is not None: + if path.startswith("archipelago://"): + handle_uri(path, args.get("args", ())) + return + file, component = identify(path) if file: args['file'] = file if component: args['component'] = component if not component: - logging.warning(f"Could not identify Component responsible for {args['Patch|Game|Component']}") + logging.warning(f"Could not identify Component responsible for {path}") if args["update_settings"]: update_settings() - if 'file' in args: + if "file" in args: run_component(args["component"], args["file"], *args["args"]) - elif 'component' in args: + elif "component" in args: run_component(args["component"], *args["args"]) elif not args["update_settings"]: run_gui() @@ -326,8 +405,9 @@ def main(args: Optional[Union[argparse.Namespace, dict]] = None): run_group = parser.add_argument_group("Run") run_group.add_argument("--update_settings", action="store_true", help="Update host.yaml and exit.") - run_group.add_argument("Patch|Game|Component", type=str, nargs="?", - help="Pass either a patch file, a generated game or the name of a component to run.") + run_group.add_argument("Patch|Game|Component|url", type=str, nargs="?", + help="Pass either a patch file, a generated game, the component name to run, or a url to " + "connect with.") run_group.add_argument("args", nargs="*", help="Arguments to pass to component.") main(parser.parse_args()) diff --git a/WebHostLib/templates/macros.html b/WebHostLib/templates/macros.html index 7bbb894de090..6b2a4b0ed784 100644 --- a/WebHostLib/templates/macros.html +++ b/WebHostLib/templates/macros.html @@ -22,7 +22,7 @@ {% for patch in room.seed.slots|list|sort(attribute="player_id") %} {{ patch.player_id }} - {{ patch.player_name }} + {{ patch.player_name }} {{ patch.game }} {% if patch.data %} diff --git a/inno_setup.iss b/inno_setup.iss index 3bb76fc40abe..38e655d917c1 100644 --- a/inno_setup.iss +++ b/inno_setup.iss @@ -228,8 +228,8 @@ Root: HKCR; Subkey: "{#MyAppName}worlddata\shell\open\command"; ValueData: """{a Root: HKCR; Subkey: "archipelago"; ValueType: "string"; ValueData: "Archipegalo Protocol"; Flags: uninsdeletekey; Root: HKCR; Subkey: "archipelago"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""; -Root: HKCR; Subkey: "archipelago\DefaultIcon"; ValueType: "string"; ValueData: "{app}\ArchipelagoTextClient.exe,0"; -Root: HKCR; Subkey: "archipelago\shell\open\command"; ValueType: "string"; ValueData: """{app}\ArchipelagoTextClient.exe"" ""%1"""; +Root: HKCR; Subkey: "archipelago\DefaultIcon"; ValueType: "string"; ValueData: "{app}\ArchipelagoLauncher.exe,0"; +Root: HKCR; Subkey: "archipelago\shell\open\command"; ValueType: "string"; ValueData: """{app}\ArchipelagoLauncher.exe"" ""%1"""; [Code] // See: https://stackoverflow.com/a/51614652/2287576 diff --git a/worlds/LauncherComponents.py b/worlds/LauncherComponents.py index d127bbea36ed..4c64642abacb 100644 --- a/worlds/LauncherComponents.py +++ b/worlds/LauncherComponents.py @@ -26,10 +26,13 @@ class Component: cli: bool func: Optional[Callable] file_identifier: Optional[Callable[[str], bool]] + game_name: Optional[str] + supports_uri: Optional[bool] def __init__(self, display_name: str, script_name: Optional[str] = None, frozen_name: Optional[str] = None, cli: bool = False, icon: str = 'icon', component_type: Optional[Type] = None, - func: Optional[Callable] = None, file_identifier: Optional[Callable[[str], bool]] = None): + func: Optional[Callable] = None, file_identifier: Optional[Callable[[str], bool]] = None, + game_name: Optional[str] = None, supports_uri: Optional[bool] = False): self.display_name = display_name self.script_name = script_name self.frozen_name = frozen_name or f'Archipelago{script_name}' if script_name else None @@ -45,6 +48,8 @@ def __init__(self, display_name: str, script_name: Optional[str] = None, frozen_ Type.ADJUSTER if "Adjuster" in display_name else Type.MISC) self.func = func self.file_identifier = file_identifier + self.game_name = game_name + self.supports_uri = supports_uri def handles_file(self, path: str): return self.file_identifier(path) if self.file_identifier else False @@ -56,10 +61,10 @@ def __repr__(self): processes = weakref.WeakSet() -def launch_subprocess(func: Callable, name: str = None): +def launch_subprocess(func: Callable, name: str = None, args: Tuple[str, ...] = ()): global processes import multiprocessing - process = multiprocessing.Process(target=func, name=name) + process = multiprocessing.Process(target=func, name=name, args=args) process.start() processes.add(process) @@ -78,9 +83,9 @@ def __call__(self, path: str) -> bool: return False -def launch_textclient(): +def launch_textclient(*args): import CommonClient - launch_subprocess(CommonClient.run_as_textclient, name="TextClient") + launch_subprocess(CommonClient.run_as_textclient, "TextClient", args) def _install_apworld(apworld_src: str = "") -> Optional[Tuple[pathlib.Path, pathlib.Path]]: diff --git a/worlds/messenger/__init__.py b/worlds/messenger/__init__.py index a03c33c2f7b6..1bca3a37ad71 100644 --- a/worlds/messenger/__init__.py +++ b/worlds/messenger/__init__.py @@ -19,7 +19,7 @@ from .subclasses import MessengerEntrance, MessengerItem, MessengerRegion, MessengerShopLocation components.append( - Component("The Messenger", component_type=Type.CLIENT, func=launch_game)#, game_name="The Messenger", supports_uri=True) + Component("The Messenger", component_type=Type.CLIENT, func=launch_game, game_name="The Messenger", supports_uri=True) ) diff --git a/worlds/messenger/client_setup.py b/worlds/messenger/client_setup.py index 9fd08e52d899..6bff78df364d 100644 --- a/worlds/messenger/client_setup.py +++ b/worlds/messenger/client_setup.py @@ -1,3 +1,4 @@ +import argparse import io import logging import os.path @@ -17,7 +18,7 @@ MOD_URL = "https://api.github.com/repos/alwaysintreble/TheMessengerRandomizerModAP/releases/latest" -def launch_game(url: Optional[str] = None) -> None: +def launch_game(*args) -> None: """Check the game installation, then launch it""" def courier_installed() -> bool: """Check if Courier is installed""" @@ -150,15 +151,19 @@ def available_mod_update(latest_version: str) -> bool: install_mod() elif should_update is None: return + + parser = argparse.ArgumentParser(description="Messenger Client Launcher") + parser.add_argument("url", type=str, nargs="?", help="Archipelago Webhost uri to auto connect to.") + args = parser.parse_args(args) if not is_windows: - if url: - open_file(f"steam://rungameid/764790//{url}/") + if args.url: + open_file(f"steam://rungameid/764790//{args.url}/") else: open_file("steam://rungameid/764790") else: os.chdir(game_folder) - if url: - subprocess.Popen([MessengerWorld.settings.game_path, str(url)]) + if args.url: + subprocess.Popen([MessengerWorld.settings.game_path, str(args.url)]) else: subprocess.Popen(MessengerWorld.settings.game_path) os.chdir(working_directory) From b8c2e14e8b0b1f7837b7cefc1aaeb94ce87bf93f Mon Sep 17 00:00:00 2001 From: qwint Date: Sun, 8 Sep 2024 07:17:20 -0500 Subject: [PATCH 012/212] CommonClient: allow worlds to change title of run_gui without rewriting it (#3297) * moves the title name in CommonContext.run_gui into a parameter defaulted to the normal default so others using it don't have to rewrite everything * Change to using a GameManager attribute instead of a default param * Update CommonClient.py treble suggestion 1 Co-authored-by: Aaron Wagener * Update CommonClient.py treble suggestion 2 Co-authored-by: Aaron Wagener * Update CommonClient.py treble suggestion 3 Co-authored-by: Doug Hoskisson * Use make_gui() instead of a property to push kivy importing back to lazy loading regardless of gui_enabled status * cleanup * almost forgot to type it * change make_gui to be a class so clients can subclass it * clean up code readability --------- Co-authored-by: Aaron Wagener Co-authored-by: Doug Hoskisson Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- CommonClient.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index fe9df38dbdeb..7f91172acf6c 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -662,17 +662,19 @@ def handle_connection_loss(self, msg: str) -> None: logger.exception(msg, exc_info=exc_info, extra={'compact_gui': True}) self._messagebox_connection_loss = self.gui_error(msg, exc_info[1]) - def run_gui(self): - """Import kivy UI system and start running it as self.ui_task.""" + def make_gui(self) -> type: + """To return the Kivy App class needed for run_gui so it can be overridden before being built""" from kvui import GameManager class TextManager(GameManager): - logging_pairs = [ - ("Client", "Archipelago") - ] base_title = "Archipelago Text Client" - self.ui = TextManager(self) + return TextManager + + def run_gui(self): + """Import kivy UI system from make_gui() and start running it as self.ui_task.""" + ui_class = self.make_gui() + self.ui = ui_class(self) self.ui_task = asyncio.create_task(self.ui.async_run(), name="UI") def run_cli(self): From 5348f693fe9edd4756b91969a0ac66f5877fc4be Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Sun, 8 Sep 2024 05:19:37 -0700 Subject: [PATCH 013/212] Pokemon Emerald: Use some new state functions, improve rule reuse (#3383) * Pokemon Emerald: Use some new state functions, improve rule reuse * Pokemon Emerald: Remove a couple more extra lambdas * Pokemon Emerald: Swap some rules to use exclusive groups/lists * Pokemon Emerald: Linting We're not gonna keep both me and the linter happy here, but this at least gets things more consistent * Pokemon Emerald: Update _exclusive to _unique --- worlds/pokemon_emerald/rules.py | 159 ++++++++++++++++---------------- 1 file changed, 80 insertions(+), 79 deletions(-) diff --git a/worlds/pokemon_emerald/rules.py b/worlds/pokemon_emerald/rules.py index 5b2aaa1ffcd0..5f83686ebeec 100644 --- a/worlds/pokemon_emerald/rules.py +++ b/worlds/pokemon_emerald/rules.py @@ -19,20 +19,20 @@ def set_rules(world: "PokemonEmeraldWorld") -> None: hm_rules: Dict[str, Callable[[CollectionState], bool]] = {} for hm, badges in world.hm_requirements.items(): if isinstance(badges, list): - hm_rules[hm] = lambda state, hm=hm, badges=badges: state.has(hm, world.player) \ - and state.has_all(badges, world.player) + hm_rules[hm] = lambda state, hm=hm, badges=badges: \ + state.has(hm, world.player) and state.has_all(badges, world.player) else: - hm_rules[hm] = lambda state, hm=hm, badges=badges: state.has(hm, world.player) \ - and state.has_group("Badges", world.player, badges) + hm_rules[hm] = lambda state, hm=hm, badges=badges: \ + state.has(hm, world.player) and state.has_group_unique("Badges", world.player, badges) def has_acro_bike(state: CollectionState): return state.has("Acro Bike", world.player) def has_mach_bike(state: CollectionState): return state.has("Mach Bike", world.player) - + def defeated_n_gym_leaders(state: CollectionState, n: int) -> bool: - return sum([state.has(event, world.player) for event in [ + return state.has_from_list_unique([ "EVENT_DEFEAT_ROXANNE", "EVENT_DEFEAT_BRAWLY", "EVENT_DEFEAT_WATTSON", @@ -41,7 +41,7 @@ def defeated_n_gym_leaders(state: CollectionState, n: int) -> bool: "EVENT_DEFEAT_WINONA", "EVENT_DEFEAT_TATE_AND_LIZA", "EVENT_DEFEAT_JUAN", - ]]) >= n + ], world.player, n) huntable_legendary_events = [ f"EVENT_ENCOUNTER_{key}" @@ -61,8 +61,9 @@ def defeated_n_gym_leaders(state: CollectionState, n: int) -> bool: }.items() if name in world.options.allowed_legendary_hunt_encounters.value ] + def encountered_n_legendaries(state: CollectionState, n: int) -> bool: - return sum(int(state.has(event, world.player)) for event in huntable_legendary_events) >= n + return state.has_from_list_unique(huntable_legendary_events, world.player, n) def get_entrance(entrance: str): return world.multiworld.get_entrance(entrance, world.player) @@ -235,11 +236,11 @@ def get_location(location: str): if world.options.norman_requirement == NormanRequirement.option_badges: set_rule( get_entrance("MAP_PETALBURG_CITY_GYM:2/MAP_PETALBURG_CITY_GYM:3"), - lambda state: state.has_group("Badges", world.player, world.options.norman_count.value) + lambda state: state.has_group_unique("Badges", world.player, world.options.norman_count.value) ) set_rule( get_entrance("MAP_PETALBURG_CITY_GYM:5/MAP_PETALBURG_CITY_GYM:6"), - lambda state: state.has_group("Badges", world.player, world.options.norman_count.value) + lambda state: state.has_group_unique("Badges", world.player, world.options.norman_count.value) ) else: set_rule( @@ -299,15 +300,15 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_ROUTE116/EAST -> REGION_TERRA_CAVE_ENTRANCE/MAIN"), - lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("TERRA_CAVE_ROUTE_116_1", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("TERRA_CAVE_ROUTE_116_1", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("REGION_ROUTE116/WEST -> REGION_TERRA_CAVE_ENTRANCE/MAIN"), - lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("TERRA_CAVE_ROUTE_116_2", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("TERRA_CAVE_ROUTE_116_2", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) # Rusturf Tunnel @@ -347,19 +348,19 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_ROUTE115/NORTH_BELOW_SLOPE -> REGION_ROUTE115/NORTH_ABOVE_SLOPE"), - lambda state: has_mach_bike(state) + has_mach_bike ) set_rule( get_entrance("REGION_ROUTE115/NORTH_BELOW_SLOPE -> REGION_TERRA_CAVE_ENTRANCE/MAIN"), - lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("TERRA_CAVE_ROUTE_115_1", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("TERRA_CAVE_ROUTE_115_1", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("REGION_ROUTE115/NORTH_ABOVE_SLOPE -> REGION_TERRA_CAVE_ENTRANCE/MAIN"), - lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("TERRA_CAVE_ROUTE_115_2", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("TERRA_CAVE_ROUTE_115_2", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) if world.options.extra_boulders: @@ -375,7 +376,7 @@ def get_location(location: str): if world.options.extra_bumpy_slope: set_rule( get_entrance("REGION_ROUTE115/SOUTH_BELOW_LEDGE -> REGION_ROUTE115/SOUTH_ABOVE_LEDGE"), - lambda state: has_acro_bike(state) + has_acro_bike ) else: set_rule( @@ -386,17 +387,17 @@ def get_location(location: str): # Route 105 set_rule( get_entrance("REGION_UNDERWATER_ROUTE105/MARINE_CAVE_ENTRANCE_1 -> REGION_UNDERWATER_MARINE_CAVE/MAIN"), - lambda state: hm_rules["HM08 Dive"](state) and \ - state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("MARINE_CAVE_ROUTE_105_1", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: hm_rules["HM08 Dive"](state) + and state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("MARINE_CAVE_ROUTE_105_1", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("REGION_UNDERWATER_ROUTE105/MARINE_CAVE_ENTRANCE_2 -> REGION_UNDERWATER_MARINE_CAVE/MAIN"), - lambda state: hm_rules["HM08 Dive"](state) and \ - state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("MARINE_CAVE_ROUTE_105_2", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: hm_rules["HM08 Dive"](state) + and state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("MARINE_CAVE_ROUTE_105_2", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("MAP_ROUTE105:0/MAP_ISLAND_CAVE:0"), @@ -439,7 +440,7 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_GRANITE_CAVE_B1F/LOWER -> REGION_GRANITE_CAVE_B1F/UPPER"), - lambda state: has_mach_bike(state) + has_mach_bike ) # Route 107 @@ -643,15 +644,15 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_ROUTE114/ABOVE_WATERFALL -> REGION_TERRA_CAVE_ENTRANCE/MAIN"), - lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("TERRA_CAVE_ROUTE_114_1", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("TERRA_CAVE_ROUTE_114_1", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("REGION_ROUTE114/MAIN -> REGION_TERRA_CAVE_ENTRANCE/MAIN"), - lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("TERRA_CAVE_ROUTE_114_2", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("TERRA_CAVE_ROUTE_114_2", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) # Meteor Falls @@ -699,11 +700,11 @@ def get_location(location: str): # Jagged Pass set_rule( get_entrance("REGION_JAGGED_PASS/BOTTOM -> REGION_JAGGED_PASS/MIDDLE"), - lambda state: has_acro_bike(state) + has_acro_bike ) set_rule( get_entrance("REGION_JAGGED_PASS/MIDDLE -> REGION_JAGGED_PASS/TOP"), - lambda state: has_acro_bike(state) + has_acro_bike ) set_rule( get_entrance("MAP_JAGGED_PASS:4/MAP_MAGMA_HIDEOUT_1F:0"), @@ -719,11 +720,11 @@ def get_location(location: str): # Mirage Tower set_rule( get_entrance("REGION_MIRAGE_TOWER_2F/TOP -> REGION_MIRAGE_TOWER_2F/BOTTOM"), - lambda state: has_mach_bike(state) + has_mach_bike ) set_rule( get_entrance("REGION_MIRAGE_TOWER_2F/BOTTOM -> REGION_MIRAGE_TOWER_2F/TOP"), - lambda state: has_mach_bike(state) + has_mach_bike ) set_rule( get_entrance("REGION_MIRAGE_TOWER_3F/TOP -> REGION_MIRAGE_TOWER_3F/BOTTOM"), @@ -812,15 +813,15 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_ROUTE118/EAST -> REGION_TERRA_CAVE_ENTRANCE/MAIN"), - lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("TERRA_CAVE_ROUTE_118_1", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("TERRA_CAVE_ROUTE_118_1", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("REGION_ROUTE118/WEST -> REGION_TERRA_CAVE_ENTRANCE/MAIN"), - lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("TERRA_CAVE_ROUTE_118_2", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("TERRA_CAVE_ROUTE_118_2", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) # Route 119 @@ -830,11 +831,11 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_ROUTE119/LOWER -> REGION_ROUTE119/LOWER_ACROSS_RAILS"), - lambda state: has_acro_bike(state) + has_acro_bike ) set_rule( get_entrance("REGION_ROUTE119/LOWER_ACROSS_RAILS -> REGION_ROUTE119/LOWER"), - lambda state: has_acro_bike(state) + has_acro_bike ) set_rule( get_entrance("REGION_ROUTE119/UPPER -> REGION_ROUTE119/MIDDLE_RIVER"), @@ -850,7 +851,7 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_ROUTE119/ABOVE_WATERFALL -> REGION_ROUTE119/ABOVE_WATERFALL_ACROSS_RAILS"), - lambda state: has_acro_bike(state) + has_acro_bike ) if "Route 119 Aqua Grunts" not in world.options.remove_roadblocks.value: set_rule( @@ -927,11 +928,11 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_SAFARI_ZONE_SOUTH/MAIN -> REGION_SAFARI_ZONE_NORTH/MAIN"), - lambda state: has_acro_bike(state) + has_acro_bike ) set_rule( get_entrance("REGION_SAFARI_ZONE_SOUTHWEST/MAIN -> REGION_SAFARI_ZONE_NORTHWEST/MAIN"), - lambda state: has_mach_bike(state) + has_mach_bike ) set_rule( get_entrance("REGION_SAFARI_ZONE_SOUTHWEST/MAIN -> REGION_SAFARI_ZONE_SOUTHWEST/POND"), @@ -1115,17 +1116,17 @@ def get_location(location: str): # Route 125 set_rule( get_entrance("REGION_UNDERWATER_ROUTE125/MARINE_CAVE_ENTRANCE_1 -> REGION_UNDERWATER_MARINE_CAVE/MAIN"), - lambda state: hm_rules["HM08 Dive"](state) and \ - state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("MARINE_CAVE_ROUTE_125_1", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: hm_rules["HM08 Dive"](state) + and state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("MARINE_CAVE_ROUTE_125_1", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("REGION_UNDERWATER_ROUTE125/MARINE_CAVE_ENTRANCE_2 -> REGION_UNDERWATER_MARINE_CAVE/MAIN"), - lambda state: hm_rules["HM08 Dive"](state) and \ - state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("MARINE_CAVE_ROUTE_125_2", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: hm_rules["HM08 Dive"](state) + and state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("MARINE_CAVE_ROUTE_125_2", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) # Shoal Cave @@ -1257,17 +1258,17 @@ def get_location(location: str): ) set_rule( get_entrance("REGION_UNDERWATER_ROUTE127/MARINE_CAVE_ENTRANCE_1 -> REGION_UNDERWATER_MARINE_CAVE/MAIN"), - lambda state: hm_rules["HM08 Dive"](state) and \ - state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("MARINE_CAVE_ROUTE_127_1", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: hm_rules["HM08 Dive"](state) + and state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("MARINE_CAVE_ROUTE_127_1", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("REGION_UNDERWATER_ROUTE127/MARINE_CAVE_ENTRANCE_2 -> REGION_UNDERWATER_MARINE_CAVE/MAIN"), - lambda state: hm_rules["HM08 Dive"](state) and \ - state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("MARINE_CAVE_ROUTE_127_2", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: hm_rules["HM08 Dive"](state) + and state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("MARINE_CAVE_ROUTE_127_2", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) # Route 128 @@ -1374,17 +1375,17 @@ def get_location(location: str): # Route 129 set_rule( get_entrance("REGION_UNDERWATER_ROUTE129/MARINE_CAVE_ENTRANCE_1 -> REGION_UNDERWATER_MARINE_CAVE/MAIN"), - lambda state: hm_rules["HM08 Dive"](state) and \ - state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("MARINE_CAVE_ROUTE_129_1", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: hm_rules["HM08 Dive"](state) + and state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("MARINE_CAVE_ROUTE_129_1", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) set_rule( get_entrance("REGION_UNDERWATER_ROUTE129/MARINE_CAVE_ENTRANCE_2 -> REGION_UNDERWATER_MARINE_CAVE/MAIN"), - lambda state: hm_rules["HM08 Dive"](state) and \ - state.has("EVENT_DEFEAT_CHAMPION", world.player) and \ - state.has("MARINE_CAVE_ROUTE_129_2", world.player) and \ - state.has("EVENT_DEFEAT_SHELLY", world.player) + lambda state: hm_rules["HM08 Dive"](state) + and state.has("EVENT_DEFEAT_CHAMPION", world.player) + and state.has("MARINE_CAVE_ROUTE_129_2", world.player) + and state.has("EVENT_DEFEAT_SHELLY", world.player) ) # Pacifidlog Town @@ -1505,7 +1506,7 @@ def get_location(location: str): if world.options.elite_four_requirement == EliteFourRequirement.option_badges: set_rule( get_entrance("REGION_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F/MAIN -> REGION_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F/BEHIND_BADGE_CHECKERS"), - lambda state: state.has_group("Badges", world.player, world.options.elite_four_count.value) + lambda state: state.has_group_unique("Badges", world.player, world.options.elite_four_count.value) ) else: set_rule( From a6521084723c2b9702961d7cee97dcef96165918 Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Sun, 8 Sep 2024 08:21:26 -0400 Subject: [PATCH 014/212] Docs: Update Trap classification comment #3485 --- BaseClasses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseClasses.py b/BaseClasses.py index 715732589b67..b40b872f0c8c 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -1207,7 +1207,7 @@ class ItemClassification(IntFlag): filler = 0b0000 # aka trash, as in filler items like ammo, currency etc, progression = 0b0001 # Item that is logically relevant useful = 0b0010 # Item that is generally quite useful, but not required for anything logical - trap = 0b0100 # detrimental or entirely useless (nothing) item + trap = 0b0100 # detrimental item skip_balancing = 0b1000 # should technically never occur on its own # Item that is logically relevant, but progression balancing should not touch. # Typically currency or other counted items. From dad228cd4a760d2d49706d4026791bc3d0e4f377 Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Sun, 8 Sep 2024 08:42:59 -0400 Subject: [PATCH 015/212] TUNIC: Logic Rules Redux (#3544) * Clean these functions up, get the hell out of here 5 parameter function * Clean up a bunch of rules that no longer need to be multi-lined since the functions are shorter * Clean up some range functions * Update to use world instead of player like Vi recommended * Fix merge conflict * Create new options * Slightly revise ls rule * Update options.py * Update options.py * Add tedious option for ls * Update laurels zips description * Create new options * Slightly revise ls rule * Update options.py * Update options.py * Add tedious option for ls * Update laurels zips description * Creating structures to redo ladder storage rules * Put together overworld ladder groups, remove tedious * Write up the rules for the regular rules * Update slot data and UT stuff * Put new ice grapple stuff in er rules * Ice grapple hard to get to fountain cross room * More ladder data * Wrote majority of overworld ladder rules * Finish the ladder storage rules * Update notes * Add note * Add well rail to the rules * More rules * Comment out logically irrelevant entrances * Update with laurels_zip helper * Add parameter to has_ice_grapple_logic for difficulty * Add new parameter to has_ice_grapple_logic * Move ice grapple chest to lower forest in ER/ladders * Fix rule * Finishing out hooking the new rules into the code * Fix bugs * Add more hard ice grapples * Fix more bugs * Shops my beloved * Change victory condition back * Remove debug stuff * Update plando connections description * Fix extremely rare bug * Add well front -> back hard ladder storages * Note in ls rules about knocking yourself down with bombs being out of logic * Add atoll fuse with wand + hard ls * Add some nonsense that boils down to activating the fuse in overworld * Further update LS description * Fix missing logic on bridge switch chest in upper zig * Revise upper zig rule change to account for ER * Fix merge conflict * Fix formatting, fix rule for heir access after merge * Add the shop sword logic stuff in * Remove todo that was already done * Fill out a to-do with some cursed nonsense * Fix event in wrong region * Fix missing cathedral -> elevator connection * Fix missing cathedral -> elevator connection * Add ER exception to cathedral -> elevator * Fix secret gathering place issue * Fix incorrect ls rule * Move 3 locations to Quarry Back since they're easily accessible from the back * Also update non-er region * Remove redundant parentheses * Add new test for a weird edge case in ER * Slight option description updates * Use has_ladder in spots where it wasn't used for some reason, add a comment * Fix unit test for ER * Update per exempt's suggestion * Add back LogicRules as an invisible option, to not break old yamls * Remove unused elevation from portal class * Update ladder storage without items description * Remove shop_scene stuff since it's no longer relevant in the mod by the time this version comes out * Remove shop scene stuff from game info since it's no longer relevant in the mod by the time this comes out * Update portal list to match main * god I love github merging things * Remove note * Add ice grapple hard path from upper overworld to temple rafters entrance * Actually that should be medium * Remove outdated note * Add ice grapple hard for swamp mid to the ledge * Add missing laurels zip in swamp * Some fixes to the ladder storage data while reviewing it * Add unit test for weird edge case * Backport outlet region system to fix ls bug * Fix incorrect ls, add todo * Add missing swamp ladder storage connections * Add swamp zip to er data * Add swamp zip to er rules * Add hard ice grapple for forest grave path main to upper * Add ice grapple logic for all bomb walls except the east quarry one * Add ice grapple logic for frog stairs eye to mouth without the ladder * Add hard ice grapple for overworld to the stairs to west garden * Add the ice grapple boss quick kills to medium ice grappling * Add the reverse connection for the ice grapple kill on Garden Knight * Add atoll house ice grapple push, and add west garden ice grapple entry to the regular rules --- worlds/tunic/__init__.py | 55 +- worlds/tunic/docs/en_TUNIC.md | 2 - worlds/tunic/er_data.py | 337 +++++++----- worlds/tunic/er_rules.py | 759 ++++++++++++---------------- worlds/tunic/er_scripts.py | 114 +++-- worlds/tunic/items.py | 2 + worlds/tunic/ladder_storage_data.py | 186 +++++++ worlds/tunic/locations.py | 6 +- worlds/tunic/options.py | 124 +++-- worlds/tunic/regions.py | 3 +- worlds/tunic/rules.py | 114 +++-- worlds/tunic/test/test_access.py | 54 ++ 12 files changed, 1050 insertions(+), 706 deletions(-) create mode 100644 worlds/tunic/ladder_storage_data.py diff --git a/worlds/tunic/__init__.py b/worlds/tunic/__init__.py index bbffd9c1440e..cdd968acce44 100644 --- a/worlds/tunic/__init__.py +++ b/worlds/tunic/__init__.py @@ -7,8 +7,9 @@ from .er_rules import set_er_location_rules from .regions import tunic_regions from .er_scripts import create_er_regions -from .er_data import portal_mapping -from .options import TunicOptions, EntranceRando, tunic_option_groups, tunic_option_presets, TunicPlandoConnections +from .er_data import portal_mapping, RegionInfo, tunic_er_regions +from .options import (TunicOptions, EntranceRando, tunic_option_groups, tunic_option_presets, TunicPlandoConnections, + LaurelsLocation, LogicRules, LaurelsZips, IceGrappling, LadderStorage) from worlds.AutoWorld import WebWorld, World from Options import PlandoConnection from decimal import Decimal, ROUND_HALF_UP @@ -48,10 +49,12 @@ class TunicLocation(Location): class SeedGroup(TypedDict): - logic_rules: int # logic rules value + laurels_zips: bool # laurels_zips value + ice_grappling: int # ice_grappling value + ladder_storage: int # ls value laurels_at_10_fairies: bool # laurels location value fixed_shop: bool # fixed shop value - plando: TunicPlandoConnections # consolidated of plando connections for the seed group + plando: TunicPlandoConnections # consolidated plando connections for the seed group class TunicWorld(World): @@ -77,8 +80,17 @@ class TunicWorld(World): tunic_portal_pairs: Dict[str, str] er_portal_hints: Dict[int, str] seed_groups: Dict[str, SeedGroup] = {} + shop_num: int = 1 # need to make it so that you can walk out of shops, but also that they aren't all connected + er_regions: Dict[str, RegionInfo] # absolutely needed so outlet regions work def generate_early(self) -> None: + if self.options.logic_rules >= LogicRules.option_no_major_glitches: + self.options.laurels_zips.value = LaurelsZips.option_true + self.options.ice_grappling.value = IceGrappling.option_medium + if self.options.logic_rules.value == LogicRules.option_unrestricted: + self.options.ladder_storage.value = LadderStorage.option_medium + + self.er_regions = tunic_er_regions.copy() if self.options.plando_connections: for index, cxn in enumerate(self.options.plando_connections): # making shops second to simplify other things later @@ -99,7 +111,10 @@ def generate_early(self) -> None: self.options.keys_behind_bosses.value = passthrough["keys_behind_bosses"] self.options.sword_progression.value = passthrough["sword_progression"] self.options.ability_shuffling.value = passthrough["ability_shuffling"] - self.options.logic_rules.value = passthrough["logic_rules"] + self.options.laurels_zips.value = passthrough["laurels_zips"] + self.options.ice_grappling.value = passthrough["ice_grappling"] + self.options.ladder_storage.value = passthrough["ladder_storage"] + self.options.ladder_storage_without_items = passthrough["ladder_storage_without_items"] self.options.lanternless.value = passthrough["lanternless"] self.options.maskless.value = passthrough["maskless"] self.options.hexagon_quest.value = passthrough["hexagon_quest"] @@ -118,19 +133,28 @@ def stage_generate_early(cls, multiworld: MultiWorld) -> None: group = tunic.options.entrance_rando.value # if this is the first world in the group, set the rules equal to its rules if group not in cls.seed_groups: - cls.seed_groups[group] = SeedGroup(logic_rules=tunic.options.logic_rules.value, - laurels_at_10_fairies=tunic.options.laurels_location == 3, - fixed_shop=bool(tunic.options.fixed_shop), - plando=tunic.options.plando_connections) + cls.seed_groups[group] = \ + SeedGroup(laurels_zips=bool(tunic.options.laurels_zips), + ice_grappling=tunic.options.ice_grappling.value, + ladder_storage=tunic.options.ladder_storage.value, + laurels_at_10_fairies=tunic.options.laurels_location == LaurelsLocation.option_10_fairies, + fixed_shop=bool(tunic.options.fixed_shop), + plando=tunic.options.plando_connections) continue - + + # off is more restrictive + if not tunic.options.laurels_zips: + cls.seed_groups[group]["laurels_zips"] = False + # lower value is more restrictive + if tunic.options.ice_grappling < cls.seed_groups[group]["ice_grappling"]: + cls.seed_groups[group]["ice_grappling"] = tunic.options.ice_grappling.value # lower value is more restrictive - if tunic.options.logic_rules.value < cls.seed_groups[group]["logic_rules"]: - cls.seed_groups[group]["logic_rules"] = tunic.options.logic_rules.value + if tunic.options.ladder_storage.value < cls.seed_groups[group]["ladder_storage"]: + cls.seed_groups[group]["ladder_storage"] = tunic.options.ladder_storage.value # laurels at 10 fairies changes logic for secret gathering place placement if tunic.options.laurels_location == 3: cls.seed_groups[group]["laurels_at_10_fairies"] = True - # fewer shops, one at windmill + # more restrictive, overrides the option for others in the same group, which is better than failing imo if tunic.options.fixed_shop: cls.seed_groups[group]["fixed_shop"] = True @@ -366,7 +390,10 @@ def fill_slot_data(self) -> Dict[str, Any]: "ability_shuffling": self.options.ability_shuffling.value, "hexagon_quest": self.options.hexagon_quest.value, "fool_traps": self.options.fool_traps.value, - "logic_rules": self.options.logic_rules.value, + "laurels_zips": self.options.laurels_zips.value, + "ice_grappling": self.options.ice_grappling.value, + "ladder_storage": self.options.ladder_storage.value, + "ladder_storage_without_items": self.options.ladder_storage_without_items.value, "lanternless": self.options.lanternless.value, "maskless": self.options.maskless.value, "entrance_rando": int(bool(self.options.entrance_rando.value)), diff --git a/worlds/tunic/docs/en_TUNIC.md b/worlds/tunic/docs/en_TUNIC.md index 27df4ce38be4..b2e1a71897c0 100644 --- a/worlds/tunic/docs/en_TUNIC.md +++ b/worlds/tunic/docs/en_TUNIC.md @@ -83,8 +83,6 @@ Notes: - The `direction` field is not supported. Connections are always coupled. - For a list of entrance names, check `er_data.py` in the TUNIC world folder or generate a game with the Entrance Randomizer option enabled and check the spoiler log. - There is no limit to the number of Shops you can plando. -- If you have more than one shop in a scene, you may be wrong warped when exiting a shop. -- If you have a shop in every scene, and you have an odd number of shops, it will error out. See the [Archipelago Plando Guide](../../../tutorial/Archipelago/plando/en) for more information on Plando and Connection Plando. diff --git a/worlds/tunic/er_data.py b/worlds/tunic/er_data.py index 6316292e564e..343bf3055378 100644 --- a/worlds/tunic/er_data.py +++ b/worlds/tunic/er_data.py @@ -1,6 +1,9 @@ -from typing import Dict, NamedTuple, List +from typing import Dict, NamedTuple, List, TYPE_CHECKING, Optional from enum import IntEnum +if TYPE_CHECKING: + from . import TunicWorld + class Portal(NamedTuple): name: str # human-readable name @@ -9,6 +12,8 @@ class Portal(NamedTuple): tag: str # vanilla tag def scene(self) -> str: # the actual scene name in Tunic + if self.region.startswith("Shop"): + return tunic_er_regions["Shop"].game_scene return tunic_er_regions[self.region].game_scene def scene_destination(self) -> str: # full, nonchanging name to interpret by the mod @@ -458,7 +463,7 @@ def destination_scene(self) -> str: # the vanilla connection Portal(name="Cathedral Main Exit", region="Cathedral", destination="Swamp Redux 2", tag="_main"), - Portal(name="Cathedral Elevator", region="Cathedral", + Portal(name="Cathedral Elevator", region="Cathedral to Gauntlet", destination="Cathedral Arena", tag="_"), Portal(name="Cathedral Secret Legend Room Exit", region="Cathedral Secret Legend Room", destination="Swamp Redux 2", tag="_secret"), @@ -517,6 +522,13 @@ def destination_scene(self) -> str: # the vanilla connection class RegionInfo(NamedTuple): game_scene: str # the name of the scene in the actual game dead_end: int = 0 # if a region has only one exit + outlet_region: Optional[str] = None + is_fake_region: bool = False + + +# gets the outlet region name if it exists, the region if it doesn't +def get_portal_outlet_region(portal: Portal, world: "TunicWorld") -> str: + return world.er_regions[portal.region].outlet_region or portal.region class DeadEnd(IntEnum): @@ -558,11 +570,11 @@ class DeadEnd(IntEnum): "Overworld Ruined Passage Door": RegionInfo("Overworld Redux"), # the small space betweeen the door and the portal "Overworld Old House Door": RegionInfo("Overworld Redux"), # the too-small space between the door and the portal "Overworld Southeast Cross Door": RegionInfo("Overworld Redux"), # the small space betweeen the door and the portal - "Overworld Fountain Cross Door": RegionInfo("Overworld Redux"), # the small space between the door and the portal + "Overworld Fountain Cross Door": RegionInfo("Overworld Redux", outlet_region="Overworld"), "Overworld Temple Door": RegionInfo("Overworld Redux"), # the small space betweeen the door and the portal - "Overworld Town Portal": RegionInfo("Overworld Redux"), # being able to go to or come from the portal - "Overworld Spawn Portal": RegionInfo("Overworld Redux"), # being able to go to or come from the portal - "Cube Cave Entrance Region": RegionInfo("Overworld Redux"), # other side of the bomb wall + "Overworld Town Portal": RegionInfo("Overworld Redux", outlet_region="Overworld"), + "Overworld Spawn Portal": RegionInfo("Overworld Redux", outlet_region="Overworld"), + "Cube Cave Entrance Region": RegionInfo("Overworld Redux", outlet_region="Overworld"), # other side of the bomb wall "Stick House": RegionInfo("Sword Cave", dead_end=DeadEnd.all_cats), "Windmill": RegionInfo("Windmill"), "Old House Back": RegionInfo("Overworld Interiors"), # part with the hc door @@ -591,7 +603,7 @@ class DeadEnd(IntEnum): "Forest Belltower Lower": RegionInfo("Forest Belltower"), "East Forest": RegionInfo("East Forest Redux"), "East Forest Dance Fox Spot": RegionInfo("East Forest Redux"), - "East Forest Portal": RegionInfo("East Forest Redux"), + "East Forest Portal": RegionInfo("East Forest Redux", outlet_region="East Forest"), "Lower Forest": RegionInfo("East Forest Redux"), # bottom of the forest "Guard House 1 East": RegionInfo("East Forest Redux Laddercave"), "Guard House 1 West": RegionInfo("East Forest Redux Laddercave"), @@ -601,7 +613,7 @@ class DeadEnd(IntEnum): "Forest Grave Path Main": RegionInfo("Sword Access"), "Forest Grave Path Upper": RegionInfo("Sword Access"), "Forest Grave Path by Grave": RegionInfo("Sword Access"), - "Forest Hero's Grave": RegionInfo("Sword Access"), + "Forest Hero's Grave": RegionInfo("Sword Access", outlet_region="Forest Grave Path by Grave"), "Dark Tomb Entry Point": RegionInfo("Crypt Redux"), # both upper exits "Dark Tomb Upper": RegionInfo("Crypt Redux"), # the part with the casket and the top of the ladder "Dark Tomb Main": RegionInfo("Crypt Redux"), @@ -614,18 +626,19 @@ class DeadEnd(IntEnum): "Beneath the Well Back": RegionInfo("Sewer"), # the back two portals, and all 4 upper chests "West Garden": RegionInfo("Archipelagos Redux"), "Magic Dagger House": RegionInfo("archipelagos_house", dead_end=DeadEnd.all_cats), - "West Garden Portal": RegionInfo("Archipelagos Redux", dead_end=DeadEnd.restricted), + "West Garden Portal": RegionInfo("Archipelagos Redux", dead_end=DeadEnd.restricted, outlet_region="West Garden by Portal"), + "West Garden by Portal": RegionInfo("Archipelagos Redux", dead_end=DeadEnd.restricted), "West Garden Portal Item": RegionInfo("Archipelagos Redux", dead_end=DeadEnd.restricted), "West Garden Laurels Exit Region": RegionInfo("Archipelagos Redux"), "West Garden after Boss": RegionInfo("Archipelagos Redux"), - "West Garden Hero's Grave Region": RegionInfo("Archipelagos Redux"), + "West Garden Hero's Grave Region": RegionInfo("Archipelagos Redux", outlet_region="West Garden"), "Ruined Atoll": RegionInfo("Atoll Redux"), "Ruined Atoll Lower Entry Area": RegionInfo("Atoll Redux"), "Ruined Atoll Ladder Tops": RegionInfo("Atoll Redux"), # at the top of the 5 ladders in south Atoll "Ruined Atoll Frog Mouth": RegionInfo("Atoll Redux"), "Ruined Atoll Frog Eye": RegionInfo("Atoll Redux"), - "Ruined Atoll Portal": RegionInfo("Atoll Redux"), - "Ruined Atoll Statue": RegionInfo("Atoll Redux"), + "Ruined Atoll Portal": RegionInfo("Atoll Redux", outlet_region="Ruined Atoll"), + "Ruined Atoll Statue": RegionInfo("Atoll Redux", outlet_region="Ruined Atoll"), "Frog Stairs Eye Exit": RegionInfo("Frog Stairs"), "Frog Stairs Upper": RegionInfo("Frog Stairs"), "Frog Stairs Lower": RegionInfo("Frog Stairs"), @@ -633,18 +646,20 @@ class DeadEnd(IntEnum): "Frog's Domain Entry": RegionInfo("frog cave main"), "Frog's Domain": RegionInfo("frog cave main"), "Frog's Domain Back": RegionInfo("frog cave main"), - "Library Exterior Tree Region": RegionInfo("Library Exterior"), + "Library Exterior Tree Region": RegionInfo("Library Exterior", outlet_region="Library Exterior by Tree"), + "Library Exterior by Tree": RegionInfo("Library Exterior"), "Library Exterior Ladder Region": RegionInfo("Library Exterior"), "Library Hall Bookshelf": RegionInfo("Library Hall"), "Library Hall": RegionInfo("Library Hall"), - "Library Hero's Grave Region": RegionInfo("Library Hall"), + "Library Hero's Grave Region": RegionInfo("Library Hall", outlet_region="Library Hall"), "Library Hall to Rotunda": RegionInfo("Library Hall"), "Library Rotunda to Hall": RegionInfo("Library Rotunda"), "Library Rotunda": RegionInfo("Library Rotunda"), "Library Rotunda to Lab": RegionInfo("Library Rotunda"), "Library Lab": RegionInfo("Library Lab"), "Library Lab Lower": RegionInfo("Library Lab"), - "Library Portal": RegionInfo("Library Lab"), + "Library Portal": RegionInfo("Library Lab", outlet_region="Library Lab on Portal Pad"), + "Library Lab on Portal Pad": RegionInfo("Library Lab"), "Library Lab to Librarian": RegionInfo("Library Lab"), "Library Arena": RegionInfo("Library Arena", dead_end=DeadEnd.all_cats), "Fortress Exterior from East Forest": RegionInfo("Fortress Courtyard"), @@ -663,22 +678,22 @@ class DeadEnd(IntEnum): "Fortress Grave Path": RegionInfo("Fortress Reliquary"), "Fortress Grave Path Upper": RegionInfo("Fortress Reliquary", dead_end=DeadEnd.restricted), "Fortress Grave Path Dusty Entrance Region": RegionInfo("Fortress Reliquary"), - "Fortress Hero's Grave Region": RegionInfo("Fortress Reliquary"), + "Fortress Hero's Grave Region": RegionInfo("Fortress Reliquary", outlet_region="Fortress Grave Path"), "Fortress Leaf Piles": RegionInfo("Dusty", dead_end=DeadEnd.all_cats), "Fortress Arena": RegionInfo("Fortress Arena"), - "Fortress Arena Portal": RegionInfo("Fortress Arena"), + "Fortress Arena Portal": RegionInfo("Fortress Arena", outlet_region="Fortress Arena"), "Lower Mountain": RegionInfo("Mountain"), "Lower Mountain Stairs": RegionInfo("Mountain"), "Top of the Mountain": RegionInfo("Mountaintop", dead_end=DeadEnd.all_cats), "Quarry Connector": RegionInfo("Darkwoods Tunnel"), "Quarry Entry": RegionInfo("Quarry Redux"), "Quarry": RegionInfo("Quarry Redux"), - "Quarry Portal": RegionInfo("Quarry Redux"), + "Quarry Portal": RegionInfo("Quarry Redux", outlet_region="Quarry Entry"), "Quarry Back": RegionInfo("Quarry Redux"), "Quarry Monastery Entry": RegionInfo("Quarry Redux"), "Monastery Front": RegionInfo("Monastery"), "Monastery Back": RegionInfo("Monastery"), - "Monastery Hero's Grave Region": RegionInfo("Monastery"), + "Monastery Hero's Grave Region": RegionInfo("Monastery", outlet_region="Monastery Back"), "Monastery Rope": RegionInfo("Quarry Redux"), "Lower Quarry": RegionInfo("Quarry Redux"), "Even Lower Quarry": RegionInfo("Quarry Redux"), @@ -691,19 +706,21 @@ class DeadEnd(IntEnum): "Rooted Ziggurat Middle Bottom": RegionInfo("ziggurat2020_2"), "Rooted Ziggurat Lower Front": RegionInfo("ziggurat2020_3"), # the vanilla entry point side "Rooted Ziggurat Lower Back": RegionInfo("ziggurat2020_3"), # the boss side - "Zig Skip Exit": RegionInfo("ziggurat2020_3", dead_end=DeadEnd.special), # the exit from zig skip, for use with fixed shop on - "Rooted Ziggurat Portal Room Entrance": RegionInfo("ziggurat2020_3"), # the door itself on the zig 3 side - "Rooted Ziggurat Portal": RegionInfo("ziggurat2020_FTRoom"), + "Zig Skip Exit": RegionInfo("ziggurat2020_3", dead_end=DeadEnd.special, outlet_region="Rooted Ziggurat Lower Front"), # the exit from zig skip, for use with fixed shop on + "Rooted Ziggurat Portal Room Entrance": RegionInfo("ziggurat2020_3", outlet_region="Rooted Ziggurat Lower Back"), # the door itself on the zig 3 side + "Rooted Ziggurat Portal": RegionInfo("ziggurat2020_FTRoom", outlet_region="Rooted Ziggurat Portal Room"), + "Rooted Ziggurat Portal Room": RegionInfo("ziggurat2020_FTRoom"), "Rooted Ziggurat Portal Room Exit": RegionInfo("ziggurat2020_FTRoom"), "Swamp Front": RegionInfo("Swamp Redux 2"), # from the main entry to the top of the ladder after south "Swamp Mid": RegionInfo("Swamp Redux 2"), # from the bottom of the ladder to the cathedral door "Swamp Ledge under Cathedral Door": RegionInfo("Swamp Redux 2"), # the ledge with the chest and secret door - "Swamp to Cathedral Treasure Room": RegionInfo("Swamp Redux 2"), # just the door + "Swamp to Cathedral Treasure Room": RegionInfo("Swamp Redux 2", outlet_region="Swamp Ledge under Cathedral Door"), # just the door "Swamp to Cathedral Main Entrance Region": RegionInfo("Swamp Redux 2"), # just the door "Back of Swamp": RegionInfo("Swamp Redux 2"), # the area with hero grave and gauntlet entrance - "Swamp Hero's Grave Region": RegionInfo("Swamp Redux 2"), + "Swamp Hero's Grave Region": RegionInfo("Swamp Redux 2", outlet_region="Back of Swamp"), "Back of Swamp Laurels Area": RegionInfo("Swamp Redux 2"), # the spots you need laurels to traverse "Cathedral": RegionInfo("Cathedral Redux"), + "Cathedral to Gauntlet": RegionInfo("Cathedral Redux"), # the elevator "Cathedral Secret Legend Room": RegionInfo("Cathedral Redux", dead_end=DeadEnd.all_cats), "Cathedral Gauntlet Checkpoint": RegionInfo("Cathedral Arena"), "Cathedral Gauntlet": RegionInfo("Cathedral Arena"), @@ -711,10 +728,10 @@ class DeadEnd(IntEnum): "Far Shore": RegionInfo("Transit"), "Far Shore to Spawn Region": RegionInfo("Transit"), "Far Shore to East Forest Region": RegionInfo("Transit"), - "Far Shore to Quarry Region": RegionInfo("Transit"), - "Far Shore to Fortress Region": RegionInfo("Transit"), - "Far Shore to Library Region": RegionInfo("Transit"), - "Far Shore to West Garden Region": RegionInfo("Transit"), + "Far Shore to Quarry Region": RegionInfo("Transit", outlet_region="Far Shore"), + "Far Shore to Fortress Region": RegionInfo("Transit", outlet_region="Far Shore"), + "Far Shore to Library Region": RegionInfo("Transit", outlet_region="Far Shore"), + "Far Shore to West Garden Region": RegionInfo("Transit", outlet_region="Far Shore"), "Hero Relic - Fortress": RegionInfo("RelicVoid", dead_end=DeadEnd.all_cats), "Hero Relic - Quarry": RegionInfo("RelicVoid", dead_end=DeadEnd.all_cats), "Hero Relic - West Garden": RegionInfo("RelicVoid", dead_end=DeadEnd.all_cats), @@ -728,6 +745,16 @@ class DeadEnd(IntEnum): } +# this is essentially a pared down version of the region connections in rules.py, with some minor differences +# the main purpose of this is to make it so that you can access every region +# most items are excluded from the rules here, since we can assume Archipelago will properly place them +# laurels (hyperdash) can be locked at 10 fairies, requiring access to secret gathering place +# so until secret gathering place has been paired, you do not have hyperdash, so you cannot use hyperdash entrances +# Zip means you need the laurels zips option enabled +# IG# refers to ice grappling difficulties +# LS# refers to ladder storage difficulties +# LS rules are used for region connections here regardless of whether you have being knocked out of the air in logic +# this is because it just means you can reach the entrances in that region via ladder storage traversal_requirements: Dict[str, Dict[str, List[List[str]]]] = { "Overworld": { "Overworld Beach": @@ -735,13 +762,13 @@ class DeadEnd(IntEnum): "Overworld to Atoll Upper": [["Hyperdash"]], "Overworld Belltower": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS1"]], "Overworld Swamp Upper Entry": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS1"]], "Overworld Swamp Lower Entry": [], "Overworld Special Shop Entry": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS1"]], "Overworld Well Ladder": [], "Overworld Ruined Passage Door": @@ -759,11 +786,11 @@ class DeadEnd(IntEnum): "Overworld after Envoy": [], "Overworld Quarry Entry": - [["NMG"]], + [["IG2"], ["LS1"]], "Overworld Tunnel Turret": - [["NMG"], ["Hyperdash"]], + [["IG1"], ["LS1"], ["Hyperdash"]], "Overworld Temple Door": - [["NMG"], ["Forest Belltower Upper", "Overworld Belltower"]], + [["IG2"], ["LS3"], ["Forest Belltower Upper", "Overworld Belltower"]], "Overworld Southeast Cross Door": [], "Overworld Fountain Cross Door": @@ -773,25 +800,28 @@ class DeadEnd(IntEnum): "Overworld Spawn Portal": [], "Overworld Well to Furnace Rail": - [["UR"]], + [["LS2"]], "Overworld Old House Door": [], "Cube Cave Entrance Region": [], + # drop a rudeling, icebolt or ice bomb + "Overworld to West Garden from Furnace": + [["IG3"]], }, "East Overworld": { "Above Ruined Passage": [], "After Ruined Passage": - [["NMG"]], - "Overworld": - [], + [["IG1"], ["LS1"]], + # "Overworld": + # [], "Overworld at Patrol Cave": [], "Overworld above Patrol Cave": [], "Overworld Special Shop Entry": - [["Hyperdash"], ["UR"]] + [["Hyperdash"], ["LS1"]] }, "Overworld Special Shop Entry": { "East Overworld": @@ -800,8 +830,8 @@ class DeadEnd(IntEnum): "Overworld Belltower": { "Overworld Belltower at Bell": [], - "Overworld": - [], + # "Overworld": + # [], "Overworld to West Garden Upper": [], }, @@ -809,19 +839,19 @@ class DeadEnd(IntEnum): "Overworld Belltower": [], }, - "Overworld Swamp Upper Entry": { - "Overworld": - [], - }, - "Overworld Swamp Lower Entry": { - "Overworld": - [], - }, + # "Overworld Swamp Upper Entry": { + # "Overworld": + # [], + # }, + # "Overworld Swamp Lower Entry": { + # "Overworld": + # [], + # }, "Overworld Beach": { - "Overworld": - [], + # "Overworld": + # [], "Overworld West Garden Laurels Entry": - [["Hyperdash"]], + [["Hyperdash"], ["LS1"]], "Overworld to Atoll Upper": [], "Overworld Tunnel Turret": @@ -832,38 +862,37 @@ class DeadEnd(IntEnum): [["Hyperdash"]], }, "Overworld to Atoll Upper": { - "Overworld": - [], + # "Overworld": + # [], "Overworld Beach": [], }, "Overworld Tunnel Turret": { - "Overworld": - [], + # "Overworld": + # [], "Overworld Beach": [], }, "Overworld Well Ladder": { - "Overworld": - [], + # "Overworld": + # [], }, "Overworld at Patrol Cave": { "East Overworld": - [["Hyperdash"]], + [["Hyperdash"], ["LS1"], ["IG1"]], "Overworld above Patrol Cave": [], }, "Overworld above Patrol Cave": { - "Overworld": - [], + # "Overworld": + # [], "East Overworld": [], "Upper Overworld": [], "Overworld at Patrol Cave": [], - "Overworld Belltower at Bell": - [["NMG"]], + # readd long dong if we ever do a misc tricks option }, "Upper Overworld": { "Overworld above Patrol Cave": @@ -878,51 +907,49 @@ class DeadEnd(IntEnum): [], }, "Overworld above Quarry Entrance": { - "Overworld": - [], + # "Overworld": + # [], "Upper Overworld": [], }, "Overworld Quarry Entry": { "Overworld after Envoy": [], - "Overworld": - [["NMG"]], + # "Overworld": + # [["IG1"]], }, "Overworld after Envoy": { - "Overworld": - [], + # "Overworld": + # [], "Overworld Quarry Entry": [], }, "After Ruined Passage": { - "Overworld": - [], + # "Overworld": + # [], "Above Ruined Passage": [], - "East Overworld": - [["NMG"]], }, "Above Ruined Passage": { - "Overworld": - [], + # "Overworld": + # [], "After Ruined Passage": [], "East Overworld": [], }, - "Overworld Ruined Passage Door": { - "Overworld": - [["Hyperdash", "NMG"]], - }, - "Overworld Town Portal": { - "Overworld": - [], - }, - "Overworld Spawn Portal": { - "Overworld": - [], - }, + # "Overworld Ruined Passage Door": { + # "Overworld": + # [["Hyperdash", "Zip"]], + # }, + # "Overworld Town Portal": { + # "Overworld": + # [], + # }, + # "Overworld Spawn Portal": { + # "Overworld": + # [], + # }, "Cube Cave Entrance Region": { "Overworld": [], @@ -933,7 +960,7 @@ class DeadEnd(IntEnum): }, "Old House Back": { "Old House Front": - [["Hyperdash", "NMG"]], + [["Hyperdash", "Zip"]], }, "Furnace Fuse": { "Furnace Ladder Area": @@ -941,9 +968,9 @@ class DeadEnd(IntEnum): }, "Furnace Ladder Area": { "Furnace Fuse": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS1"]], "Furnace Walking Path": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS1"]], }, "Furnace Walking Path": { "Furnace Ladder Area": @@ -971,7 +998,7 @@ class DeadEnd(IntEnum): }, "East Forest": { "East Forest Dance Fox Spot": - [["Hyperdash"], ["NMG"]], + [["Hyperdash"], ["IG1"], ["LS1"]], "East Forest Portal": [], "Lower Forest": @@ -979,7 +1006,7 @@ class DeadEnd(IntEnum): }, "East Forest Dance Fox Spot": { "East Forest": - [["Hyperdash"], ["NMG"]], + [["Hyperdash"], ["IG1"]], }, "East Forest Portal": { "East Forest": @@ -995,7 +1022,7 @@ class DeadEnd(IntEnum): }, "Guard House 1 West": { "Guard House 1 East": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS1"]], }, "Guard House 2 Upper": { "Guard House 2 Lower": @@ -1007,19 +1034,19 @@ class DeadEnd(IntEnum): }, "Forest Grave Path Main": { "Forest Grave Path Upper": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS2"], ["IG3"]], "Forest Grave Path by Grave": [], }, "Forest Grave Path Upper": { "Forest Grave Path Main": - [["Hyperdash"], ["NMG"]], + [["Hyperdash"], ["IG1"]], }, "Forest Grave Path by Grave": { "Forest Hero's Grave": [], "Forest Grave Path Main": - [["NMG"]], + [["IG1"]], }, "Forest Hero's Grave": { "Forest Grave Path by Grave": @@ -1051,7 +1078,7 @@ class DeadEnd(IntEnum): }, "Dark Tomb Checkpoint": { "Well Boss": - [["Hyperdash", "NMG"]], + [["Hyperdash", "Zip"]], }, "Dark Tomb Entry Point": { "Dark Tomb Upper": @@ -1075,13 +1102,13 @@ class DeadEnd(IntEnum): }, "West Garden": { "West Garden Laurels Exit Region": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS1"]], "West Garden after Boss": [], "West Garden Hero's Grave Region": [], "West Garden Portal Item": - [["NMG"]], + [["IG2"]], }, "West Garden Laurels Exit Region": { "West Garden": @@ -1093,13 +1120,19 @@ class DeadEnd(IntEnum): }, "West Garden Portal Item": { "West Garden": - [["NMG"]], - "West Garden Portal": - [["Hyperdash", "West Garden"]], + [["IG1"]], + "West Garden by Portal": + [["Hyperdash"]], }, - "West Garden Portal": { + "West Garden by Portal": { "West Garden Portal Item": [["Hyperdash"]], + "West Garden Portal": + [["West Garden"]], + }, + "West Garden Portal": { + "West Garden by Portal": + [], }, "West Garden Hero's Grave Region": { "West Garden": @@ -1107,7 +1140,7 @@ class DeadEnd(IntEnum): }, "Ruined Atoll": { "Ruined Atoll Lower Entry Area": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS1"]], "Ruined Atoll Ladder Tops": [], "Ruined Atoll Frog Mouth": @@ -1174,11 +1207,17 @@ class DeadEnd(IntEnum): [], }, "Library Exterior Ladder Region": { + "Library Exterior by Tree": + [], + }, + "Library Exterior by Tree": { "Library Exterior Tree Region": [], + "Library Exterior Ladder Region": + [], }, "Library Exterior Tree Region": { - "Library Exterior Ladder Region": + "Library Exterior by Tree": [], }, "Library Hall Bookshelf": { @@ -1223,15 +1262,21 @@ class DeadEnd(IntEnum): "Library Lab": { "Library Lab Lower": [["Hyperdash"]], - "Library Portal": + "Library Lab on Portal Pad": [], "Library Lab to Librarian": [], }, - "Library Portal": { + "Library Lab on Portal Pad": { + "Library Portal": + [], "Library Lab": [], }, + "Library Portal": { + "Library Lab on Portal Pad": + [], + }, "Library Lab to Librarian": { "Library Lab": [], @@ -1240,11 +1285,9 @@ class DeadEnd(IntEnum): "Fortress Exterior from Overworld": [], "Fortress Courtyard Upper": - [["UR"]], - "Fortress Exterior near cave": - [["UR"]], + [["LS2"]], "Fortress Courtyard": - [["UR"]], + [["LS1"]], }, "Fortress Exterior from Overworld": { "Fortress Exterior from East Forest": @@ -1252,15 +1295,15 @@ class DeadEnd(IntEnum): "Fortress Exterior near cave": [], "Fortress Courtyard": - [["Hyperdash"], ["NMG"]], + [["Hyperdash"], ["IG1"], ["LS1"]], }, "Fortress Exterior near cave": { "Fortress Exterior from Overworld": - [["Hyperdash"], ["UR"]], - "Fortress Courtyard": - [["UR"]], + [["Hyperdash"], ["LS1"]], + "Fortress Courtyard": # ice grapple hard: shoot far fire pot, it aggros one of the enemies over to you + [["IG3"], ["LS1"]], "Fortress Courtyard Upper": - [["UR"]], + [["LS2"]], "Beneath the Vault Entry": [], }, @@ -1270,7 +1313,7 @@ class DeadEnd(IntEnum): }, "Fortress Courtyard": { "Fortress Courtyard Upper": - [["NMG"]], + [["IG1"]], "Fortress Exterior from Overworld": [["Hyperdash"]], }, @@ -1296,7 +1339,7 @@ class DeadEnd(IntEnum): }, "Fortress East Shortcut Lower": { "Fortress East Shortcut Upper": - [["NMG"]], + [["IG1"]], }, "Fortress East Shortcut Upper": { "Fortress East Shortcut Lower": @@ -1304,11 +1347,11 @@ class DeadEnd(IntEnum): }, "Eastern Vault Fortress": { "Eastern Vault Fortress Gold Door": - [["NMG"], ["Fortress Exterior from Overworld", "Beneath the Vault Back", "Fortress Courtyard Upper"]], + [["IG2"], ["Fortress Exterior from Overworld", "Beneath the Vault Back", "Fortress Courtyard Upper"]], }, "Eastern Vault Fortress Gold Door": { "Eastern Vault Fortress": - [["NMG"]], + [["IG1"]], }, "Fortress Grave Path": { "Fortress Hero's Grave Region": @@ -1318,7 +1361,7 @@ class DeadEnd(IntEnum): }, "Fortress Grave Path Upper": { "Fortress Grave Path": - [["NMG"]], + [["IG1"]], }, "Fortress Grave Path Dusty Entrance Region": { "Fortress Grave Path": @@ -1346,7 +1389,7 @@ class DeadEnd(IntEnum): }, "Monastery Back": { "Monastery Front": - [["Hyperdash", "NMG"]], + [["Hyperdash", "Zip"]], "Monastery Hero's Grave Region": [], }, @@ -1363,6 +1406,8 @@ class DeadEnd(IntEnum): [["Quarry Connector"]], "Quarry": [], + "Monastery Rope": + [["LS2"]], }, "Quarry Portal": { "Quarry Entry": @@ -1374,7 +1419,7 @@ class DeadEnd(IntEnum): "Quarry Back": [["Hyperdash"]], "Monastery Rope": - [["UR"]], + [["LS2"]], }, "Quarry Back": { "Quarry": @@ -1392,7 +1437,7 @@ class DeadEnd(IntEnum): "Quarry Monastery Entry": [], "Lower Quarry Zig Door": - [["NMG"]], + [["IG3"]], }, "Lower Quarry": { "Even Lower Quarry": @@ -1402,7 +1447,7 @@ class DeadEnd(IntEnum): "Lower Quarry": [], "Lower Quarry Zig Door": - [["Quarry", "Quarry Connector"], ["NMG"]], + [["Quarry", "Quarry Connector"], ["IG3"]], }, "Monastery Rope": { "Quarry Back": @@ -1430,7 +1475,7 @@ class DeadEnd(IntEnum): }, "Rooted Ziggurat Lower Back": { "Rooted Ziggurat Lower Front": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS2"], ["IG1"]], "Rooted Ziggurat Portal Room Entrance": [], }, @@ -1443,26 +1488,35 @@ class DeadEnd(IntEnum): [], }, "Rooted Ziggurat Portal Room Exit": { - "Rooted Ziggurat Portal": + "Rooted Ziggurat Portal Room": [], }, - "Rooted Ziggurat Portal": { + "Rooted Ziggurat Portal Room": { + "Rooted Ziggurat Portal": + [], "Rooted Ziggurat Portal Room Exit": [["Rooted Ziggurat Lower Back"]], }, + "Rooted Ziggurat Portal": { + "Rooted Ziggurat Portal Room": + [], + }, "Swamp Front": { "Swamp Mid": [], + # get one pillar from the gate, then dash onto the gate, very tricky + "Back of Swamp Laurels Area": + [["Hyperdash", "Zip"]], }, "Swamp Mid": { "Swamp Front": [], "Swamp to Cathedral Main Entrance Region": - [["Hyperdash"], ["NMG"]], + [["Hyperdash"], ["IG2"], ["LS3"]], "Swamp Ledge under Cathedral Door": [], "Back of Swamp": - [["UR"]], + [["LS1"]], # ig3 later? }, "Swamp Ledge under Cathedral Door": { "Swamp Mid": @@ -1476,24 +1530,41 @@ class DeadEnd(IntEnum): }, "Swamp to Cathedral Main Entrance Region": { "Swamp Mid": - [["NMG"]], + [["IG1"]], }, "Back of Swamp": { "Back of Swamp Laurels Area": - [["Hyperdash"], ["UR"]], + [["Hyperdash"], ["LS2"]], "Swamp Hero's Grave Region": [], + "Swamp Mid": + [["LS2"]], + "Swamp Front": + [["LS1"]], + "Swamp to Cathedral Main Entrance Region": + [["LS3"]], + "Swamp to Cathedral Treasure Room": + [["LS3"]] }, "Back of Swamp Laurels Area": { "Back of Swamp": [["Hyperdash"]], + # get one pillar from the gate, then dash onto the gate, very tricky "Swamp Mid": - [["NMG", "Hyperdash"]], + [["IG1", "Hyperdash"], ["Hyperdash", "Zip"]], }, "Swamp Hero's Grave Region": { "Back of Swamp": [], }, + "Cathedral": { + "Cathedral to Gauntlet": + [], + }, + "Cathedral to Gauntlet": { + "Cathedral": + [], + }, "Cathedral Gauntlet Checkpoint": { "Cathedral Gauntlet": [], diff --git a/worlds/tunic/er_rules.py b/worlds/tunic/er_rules.py index 3d1973beb375..65175e41ca14 100644 --- a/worlds/tunic/er_rules.py +++ b/worlds/tunic/er_rules.py @@ -1,8 +1,10 @@ -from typing import Dict, Set, List, Tuple, TYPE_CHECKING +from typing import Dict, FrozenSet, Tuple, TYPE_CHECKING from worlds.generic.Rules import set_rule, forbid_item +from .options import IceGrappling, LadderStorage from .rules import (has_ability, has_sword, has_stick, has_ice_grapple_logic, has_lantern, has_mask, can_ladder_storage, - bomb_walls) -from .er_data import Portal + laurels_zip, bomb_walls) +from .er_data import Portal, get_portal_outlet_region +from .ladder_storage_data import ow_ladder_groups, region_ladders, easy_ls, medium_ls, hard_ls from BaseClasses import Region, CollectionState if TYPE_CHECKING: @@ -82,13 +84,16 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Overworld"].connect( connecting_region=regions["Overworld Belltower"], - rule=lambda state: state.has(laurels, player)) + rule=lambda state: state.has(laurels, player) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) regions["Overworld Belltower"].connect( connecting_region=regions["Overworld"]) + # ice grapple rudeling across rubble, drop bridge, ice grapple rudeling down regions["Overworld Belltower"].connect( connecting_region=regions["Overworld to West Garden Upper"], - rule=lambda state: has_ladder("Ladders to West Bell", state, world)) + rule=lambda state: has_ladder("Ladders to West Bell", state, world) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) regions["Overworld to West Garden Upper"].connect( connecting_region=regions["Overworld Belltower"], rule=lambda state: has_ladder("Ladders to West Bell", state, world)) @@ -97,32 +102,35 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["Overworld Belltower at Bell"], rule=lambda state: has_ladder("Ladders to West Bell", state, world)) - # long dong, do not make a reverse connection here or to belltower - regions["Overworld above Patrol Cave"].connect( - connecting_region=regions["Overworld Belltower at Bell"], - rule=lambda state: options.logic_rules and state.has(fire_wand, player)) + # long dong, do not make a reverse connection here or to belltower, maybe readd later + # regions["Overworld above Patrol Cave"].connect( + # connecting_region=regions["Overworld Belltower at Bell"], + # rule=lambda state: options.logic_rules and state.has(fire_wand, player)) - # nmg: can laurels through the ruined passage door + # can laurels through the ruined passage door at either corner regions["Overworld"].connect( connecting_region=regions["Overworld Ruined Passage Door"], rule=lambda state: state.has(key, player, 2) - or (state.has(laurels, player) and options.logic_rules)) + or laurels_zip(state, world)) regions["Overworld Ruined Passage Door"].connect( connecting_region=regions["Overworld"], - rule=lambda state: state.has(laurels, player) and options.logic_rules) + rule=lambda state: laurels_zip(state, world)) regions["Overworld"].connect( connecting_region=regions["After Ruined Passage"], rule=lambda state: has_ladder("Ladders near Weathervane", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["After Ruined Passage"].connect( connecting_region=regions["Overworld"], rule=lambda state: has_ladder("Ladders near Weathervane", state, world)) + # for the hard ice grapple, get to the chest after the bomb wall, grab a slime, and grapple push down + # you can ice grapple through the bomb wall, so no need for shop logic checking regions["Overworld"].connect( connecting_region=regions["Above Ruined Passage"], rule=lambda state: has_ladder("Ladders near Weathervane", state, world) - or state.has(laurels, player)) + or state.has(laurels, player) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) regions["Above Ruined Passage"].connect( connecting_region=regions["Overworld"], rule=lambda state: has_ladder("Ladders near Weathervane", state, world) @@ -138,7 +146,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Above Ruined Passage"].connect( connecting_region=regions["East Overworld"], rule=lambda state: has_ladder("Ladders near Weathervane", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["East Overworld"].connect( connecting_region=regions["Above Ruined Passage"], rule=lambda state: has_ladder("Ladders near Weathervane", state, world) @@ -147,15 +155,15 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ # nmg: ice grapple the slimes, works both ways consistently regions["East Overworld"].connect( connecting_region=regions["After Ruined Passage"], - rule=lambda state: has_ice_grapple_logic(True, state, world)) + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["After Ruined Passage"].connect( connecting_region=regions["East Overworld"], - rule=lambda state: has_ice_grapple_logic(True, state, world)) + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Overworld"].connect( connecting_region=regions["East Overworld"], rule=lambda state: has_ladder("Ladders near Overworld Checkpoint", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["East Overworld"].connect( connecting_region=regions["Overworld"], rule=lambda state: has_ladder("Ladders near Overworld Checkpoint", state, world)) @@ -169,7 +177,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Overworld at Patrol Cave"].connect( connecting_region=regions["Overworld above Patrol Cave"], rule=lambda state: has_ladder("Ladders near Patrol Cave", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Overworld above Patrol Cave"].connect( connecting_region=regions["Overworld at Patrol Cave"], rule=lambda state: has_ladder("Ladders near Patrol Cave", state, world)) @@ -185,7 +193,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["East Overworld"].connect( connecting_region=regions["Overworld above Patrol Cave"], rule=lambda state: has_ladder("Ladders near Overworld Checkpoint", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Overworld above Patrol Cave"].connect( connecting_region=regions["East Overworld"], rule=lambda state: has_ladder("Ladders near Overworld Checkpoint", state, world)) @@ -193,7 +201,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Overworld above Patrol Cave"].connect( connecting_region=regions["Upper Overworld"], rule=lambda state: has_ladder("Ladders near Patrol Cave", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Upper Overworld"].connect( connecting_region=regions["Overworld above Patrol Cave"], rule=lambda state: has_ladder("Ladders near Patrol Cave", state, world) @@ -206,13 +214,15 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["Upper Overworld"], rule=lambda state: state.has_any({grapple, laurels}, player)) + # ice grapple push guard captain down the ledge regions["Upper Overworld"].connect( connecting_region=regions["Overworld after Temple Rafters"], - rule=lambda state: has_ladder("Ladder near Temple Rafters", state, world)) + rule=lambda state: has_ladder("Ladder near Temple Rafters", state, world) + or has_ice_grapple_logic(True, IceGrappling.option_medium, state, world)) regions["Overworld after Temple Rafters"].connect( connecting_region=regions["Upper Overworld"], rule=lambda state: has_ladder("Ladder near Temple Rafters", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Overworld above Quarry Entrance"].connect( connecting_region=regions["Overworld"], @@ -224,13 +234,11 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Overworld"].connect( connecting_region=regions["Overworld after Envoy"], rule=lambda state: state.has_any({laurels, grapple, gun}, player) - or state.has("Sword Upgrade", player, 4) - or options.logic_rules) + or state.has("Sword Upgrade", player, 4)) regions["Overworld after Envoy"].connect( connecting_region=regions["Overworld"], rule=lambda state: state.has_any({laurels, grapple, gun}, player) - or state.has("Sword Upgrade", player, 4) - or options.logic_rules) + or state.has("Sword Upgrade", player, 4)) regions["Overworld after Envoy"].connect( connecting_region=regions["Overworld Quarry Entry"], @@ -242,10 +250,10 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ # ice grapple through the gate regions["Overworld"].connect( connecting_region=regions["Overworld Quarry Entry"], - rule=lambda state: has_ice_grapple_logic(False, state, world)) + rule=lambda state: has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) regions["Overworld Quarry Entry"].connect( connecting_region=regions["Overworld"], - rule=lambda state: has_ice_grapple_logic(False, state, world)) + rule=lambda state: has_ice_grapple_logic(False, IceGrappling.option_easy, state, world)) regions["Overworld"].connect( connecting_region=regions["Overworld Swamp Upper Entry"], @@ -256,7 +264,8 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Overworld"].connect( connecting_region=regions["Overworld Swamp Lower Entry"], - rule=lambda state: has_ladder("Ladder to Swamp", state, world)) + rule=lambda state: has_ladder("Ladder to Swamp", state, world) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) regions["Overworld Swamp Lower Entry"].connect( connecting_region=regions["Overworld"], rule=lambda state: has_ladder("Ladder to Swamp", state, world)) @@ -279,20 +288,21 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Overworld"].connect( connecting_region=regions["Overworld Old House Door"], rule=lambda state: state.has(house_key, player) - or has_ice_grapple_logic(False, state, world)) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) - # not including ice grapple through this because it's very tedious to get an enemy here + # lure enemy over and ice grapple through regions["Overworld"].connect( connecting_region=regions["Overworld Southeast Cross Door"], - rule=lambda state: has_ability(holy_cross, state, world)) + rule=lambda state: has_ability(holy_cross, state, world) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) regions["Overworld Southeast Cross Door"].connect( connecting_region=regions["Overworld"], rule=lambda state: has_ability(holy_cross, state, world)) - # not including ice grapple through this because we're not including it on the other door regions["Overworld"].connect( connecting_region=regions["Overworld Fountain Cross Door"], - rule=lambda state: has_ability(holy_cross, state, world)) + rule=lambda state: has_ability(holy_cross, state, world) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) regions["Overworld Fountain Cross Door"].connect( connecting_region=regions["Overworld"]) @@ -312,7 +322,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Overworld"].connect( connecting_region=regions["Overworld Temple Door"], rule=lambda state: state.has_all({"Ring Eastern Bell", "Ring Western Bell"}, player) - or has_ice_grapple_logic(False, state, world)) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) regions["Overworld Temple Door"].connect( connecting_region=regions["Overworld above Patrol Cave"], @@ -325,12 +335,11 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Overworld Beach"].connect( connecting_region=regions["Overworld Tunnel Turret"], rule=lambda state: has_ladder("Ladders in Overworld Town", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Overworld"].connect( connecting_region=regions["Overworld Tunnel Turret"], - rule=lambda state: state.has(laurels, player) - or has_ice_grapple_logic(True, state, world)) + rule=lambda state: state.has(laurels, player)) regions["Overworld Tunnel Turret"].connect( connecting_region=regions["Overworld"], rule=lambda state: state.has_any({grapple, laurels}, player)) @@ -341,13 +350,18 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Cube Cave Entrance Region"].connect( connecting_region=regions["Overworld"]) + # drop a rudeling down, icebolt or ice bomb + regions["Overworld"].connect( + connecting_region=regions["Overworld to West Garden from Furnace"], + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_hard, state, world)) + # Overworld side areas regions["Old House Front"].connect( connecting_region=regions["Old House Back"]) - # nmg: laurels through the gate + # laurels through the gate, use left wall to space yourself regions["Old House Back"].connect( connecting_region=regions["Old House Front"], - rule=lambda state: state.has(laurels, player) and options.logic_rules) + rule=lambda state: laurels_zip(state, world)) regions["Sealed Temple"].connect( connecting_region=regions["Sealed Temple Rafters"]) @@ -388,15 +402,15 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["Forest Belltower Lower"], rule=lambda state: has_ladder("Ladder to East Forest", state, world)) - # nmg: ice grapple up to dance fox spot, and vice versa + # ice grapple up to dance fox spot, and vice versa regions["East Forest"].connect( connecting_region=regions["East Forest Dance Fox Spot"], rule=lambda state: state.has(laurels, player) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["East Forest Dance Fox Spot"].connect( connecting_region=regions["East Forest"], rule=lambda state: state.has(laurels, player) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["East Forest"].connect( connecting_region=regions["East Forest Portal"], @@ -407,7 +421,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["East Forest"].connect( connecting_region=regions["Lower Forest"], rule=lambda state: has_ladder("Ladders to Lower Forest", state, world) - or (state.has_all({grapple, fire_wand, ice_dagger}, player) and has_ability(icebolt, state, world))) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Lower Forest"].connect( connecting_region=regions["East Forest"], rule=lambda state: has_ladder("Ladders to Lower Forest", state, world)) @@ -425,22 +439,24 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["Guard House 2 Upper"], rule=lambda state: has_ladder("Ladders to Lower Forest", state, world)) - # nmg: ice grapple from upper grave path exit to the rest of it + # ice grapple from upper grave path exit to the rest of it regions["Forest Grave Path Upper"].connect( connecting_region=regions["Forest Grave Path Main"], rule=lambda state: state.has(laurels, player) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) + # for the ice grapple, lure a rudeling up top, then grapple push it across regions["Forest Grave Path Main"].connect( connecting_region=regions["Forest Grave Path Upper"], - rule=lambda state: state.has(laurels, player)) + rule=lambda state: state.has(laurels, player) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) regions["Forest Grave Path Main"].connect( connecting_region=regions["Forest Grave Path by Grave"]) - # nmg: ice grapple or laurels through the gate + # ice grapple or laurels through the gate regions["Forest Grave Path by Grave"].connect( connecting_region=regions["Forest Grave Path Main"], - rule=lambda state: has_ice_grapple_logic(False, state, world) - or (state.has(laurels, player) and options.logic_rules)) + rule=lambda state: has_ice_grapple_logic(False, IceGrappling.option_easy, state, world) + or laurels_zip(state, world)) regions["Forest Grave Path by Grave"].connect( connecting_region=regions["Forest Hero's Grave"], @@ -473,10 +489,10 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Well Boss"].connect( connecting_region=regions["Dark Tomb Checkpoint"]) - # nmg: can laurels through the gate + # can laurels through the gate, no setup needed regions["Dark Tomb Checkpoint"].connect( connecting_region=regions["Well Boss"], - rule=lambda state: state.has(laurels, player) and options.logic_rules) + rule=lambda state: laurels_zip(state, world)) regions["Dark Tomb Entry Point"].connect( connecting_region=regions["Dark Tomb Upper"], @@ -505,12 +521,16 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["West Garden Laurels Exit Region"], rule=lambda state: state.has(laurels, player)) + # you can grapple Garden Knight to aggro it, then ledge it regions["West Garden after Boss"].connect( connecting_region=regions["West Garden"], - rule=lambda state: state.has(laurels, player)) + rule=lambda state: state.has(laurels, player) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) + # ice grapple push Garden Knight off the side regions["West Garden"].connect( connecting_region=regions["West Garden after Boss"], - rule=lambda state: state.has(laurels, player) or has_sword(state, player)) + rule=lambda state: state.has(laurels, player) or has_sword(state, player) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) regions["West Garden"].connect( connecting_region=regions["West Garden Hero's Grave Region"], @@ -519,26 +539,32 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["West Garden"]) regions["West Garden Portal"].connect( + connecting_region=regions["West Garden by Portal"]) + regions["West Garden by Portal"].connect( + connecting_region=regions["West Garden Portal"], + rule=lambda state: has_ability(prayer, state, world) and state.has("Activate West Garden Fuse", player)) + + regions["West Garden by Portal"].connect( connecting_region=regions["West Garden Portal Item"], rule=lambda state: state.has(laurels, player)) regions["West Garden Portal Item"].connect( - connecting_region=regions["West Garden Portal"], - rule=lambda state: state.has(laurels, player) and has_ability(prayer, state, world)) + connecting_region=regions["West Garden by Portal"], + rule=lambda state: state.has(laurels, player)) - # nmg: can ice grapple to and from the item behind the magic dagger house + # can ice grapple to and from the item behind the magic dagger house regions["West Garden Portal Item"].connect( connecting_region=regions["West Garden"], - rule=lambda state: has_ice_grapple_logic(True, state, world)) + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["West Garden"].connect( connecting_region=regions["West Garden Portal Item"], - rule=lambda state: has_ice_grapple_logic(True, state, world)) + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_medium, state, world)) # Atoll and Frog's Domain - # nmg: ice grapple the bird below the portal + # ice grapple the bird below the portal regions["Ruined Atoll"].connect( connecting_region=regions["Ruined Atoll Lower Entry Area"], rule=lambda state: state.has(laurels, player) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Ruined Atoll Lower Entry Area"].connect( connecting_region=regions["Ruined Atoll"], rule=lambda state: state.has(laurels, player) or state.has(grapple, player)) @@ -570,13 +596,17 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Ruined Atoll"].connect( connecting_region=regions["Ruined Atoll Statue"], rule=lambda state: has_ability(prayer, state, world) - and has_ladder("Ladders in South Atoll", state, world)) + and (has_ladder("Ladders in South Atoll", state, world) + # shoot fuse and have the shot hit you mid-LS + or (can_ladder_storage(state, world) and state.has(fire_wand, player) + and options.ladder_storage >= LadderStorage.option_hard))) regions["Ruined Atoll Statue"].connect( connecting_region=regions["Ruined Atoll"]) regions["Frog Stairs Eye Exit"].connect( connecting_region=regions["Frog Stairs Upper"], - rule=lambda state: has_ladder("Ladders to Frog's Domain", state, world)) + rule=lambda state: has_ladder("Ladders to Frog's Domain", state, world) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Frog Stairs Upper"].connect( connecting_region=regions["Frog Stairs Eye Exit"], rule=lambda state: has_ladder("Ladders to Frog's Domain", state, world)) @@ -605,14 +635,19 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ # Library regions["Library Exterior Tree Region"].connect( + connecting_region=regions["Library Exterior by Tree"]) + regions["Library Exterior by Tree"].connect( + connecting_region=regions["Library Exterior Tree Region"], + rule=lambda state: has_ability(prayer, state, world)) + + regions["Library Exterior by Tree"].connect( connecting_region=regions["Library Exterior Ladder Region"], rule=lambda state: state.has_any({grapple, laurels}, player) and has_ladder("Ladders in Library", state, world)) regions["Library Exterior Ladder Region"].connect( - connecting_region=regions["Library Exterior Tree Region"], - rule=lambda state: has_ability(prayer, state, world) - and ((state.has(laurels, player) and has_ladder("Ladders in Library", state, world)) - or state.has(grapple, player))) + connecting_region=regions["Library Exterior by Tree"], + rule=lambda state: state.has(grapple, player) + or (state.has(laurels, player) and has_ladder("Ladders in Library", state, world))) regions["Library Hall Bookshelf"].connect( connecting_region=regions["Library Hall"], @@ -658,14 +693,19 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ and has_ladder("Ladders in Library", state, world)) regions["Library Lab"].connect( - connecting_region=regions["Library Portal"], - rule=lambda state: has_ability(prayer, state, world) - and has_ladder("Ladders in Library", state, world)) - regions["Library Portal"].connect( + connecting_region=regions["Library Lab on Portal Pad"], + rule=lambda state: has_ladder("Ladders in Library", state, world)) + regions["Library Lab on Portal Pad"].connect( connecting_region=regions["Library Lab"], rule=lambda state: has_ladder("Ladders in Library", state, world) or state.has(laurels, player)) + regions["Library Lab on Portal Pad"].connect( + connecting_region=regions["Library Portal"], + rule=lambda state: has_ability(prayer, state, world)) + regions["Library Portal"].connect( + connecting_region=regions["Library Lab on Portal Pad"]) + regions["Library Lab"].connect( connecting_region=regions["Library Lab to Librarian"], rule=lambda state: has_ladder("Ladders in Library", state, world)) @@ -688,6 +728,11 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["Fortress Exterior near cave"], rule=lambda state: state.has(laurels, player) or has_ability(prayer, state, world)) + # shoot far fire pot, enemy gets aggro'd + regions["Fortress Exterior near cave"].connect( + connecting_region=regions["Fortress Courtyard"], + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_hard, state, world)) + regions["Fortress Exterior near cave"].connect( connecting_region=regions["Beneath the Vault Entry"], rule=lambda state: has_ladder("Ladder to Beneath the Vault", state, world)) @@ -702,14 +747,14 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Fortress Exterior from Overworld"].connect( connecting_region=regions["Fortress Courtyard"], rule=lambda state: state.has(laurels, player) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Fortress Courtyard Upper"].connect( connecting_region=regions["Fortress Courtyard"]) # nmg: can ice grapple to the upper ledge regions["Fortress Courtyard"].connect( connecting_region=regions["Fortress Courtyard Upper"], - rule=lambda state: has_ice_grapple_logic(True, state, world)) + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Fortress Courtyard Upper"].connect( connecting_region=regions["Fortress Exterior from Overworld"]) @@ -733,17 +778,17 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ # nmg: can ice grapple upwards regions["Fortress East Shortcut Lower"].connect( connecting_region=regions["Fortress East Shortcut Upper"], - rule=lambda state: has_ice_grapple_logic(True, state, world)) + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) # nmg: ice grapple through the big gold door, can do it both ways regions["Eastern Vault Fortress"].connect( connecting_region=regions["Eastern Vault Fortress Gold Door"], rule=lambda state: state.has_all({"Activate Eastern Vault West Fuses", "Activate Eastern Vault East Fuse"}, player) - or has_ice_grapple_logic(False, state, world)) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) regions["Eastern Vault Fortress Gold Door"].connect( connecting_region=regions["Eastern Vault Fortress"], - rule=lambda state: has_ice_grapple_logic(True, state, world)) + rule=lambda state: has_ice_grapple_logic(False, IceGrappling.option_easy, state, world)) regions["Fortress Grave Path"].connect( connecting_region=regions["Fortress Grave Path Dusty Entrance Region"], @@ -761,7 +806,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ # nmg: ice grapple from upper grave path to lower regions["Fortress Grave Path Upper"].connect( connecting_region=regions["Fortress Grave Path"], - rule=lambda state: has_ice_grapple_logic(True, state, world)) + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Fortress Arena"].connect( connecting_region=regions["Fortress Arena Portal"], @@ -819,25 +864,25 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Lower Quarry"].connect( connecting_region=regions["Even Lower Quarry"], rule=lambda state: has_ladder("Ladders in Lower Quarry", state, world) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) # nmg: bring a scav over, then ice grapple through the door, only with ER on to avoid soft lock regions["Even Lower Quarry"].connect( connecting_region=regions["Lower Quarry Zig Door"], rule=lambda state: state.has("Activate Quarry Fuse", player) - or (has_ice_grapple_logic(False, state, world) and options.entrance_rando)) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) # nmg: use ice grapple to get from the beginning of Quarry to the door without really needing mask only with ER on regions["Quarry"].connect( connecting_region=regions["Lower Quarry Zig Door"], - rule=lambda state: has_ice_grapple_logic(True, state, world) and options.entrance_rando) + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_hard, state, world)) regions["Monastery Front"].connect( connecting_region=regions["Monastery Back"]) - # nmg: can laurels through the gate + # laurels through the gate, no setup needed regions["Monastery Back"].connect( connecting_region=regions["Monastery Front"], - rule=lambda state: state.has(laurels, player) and options.logic_rules) + rule=lambda state: laurels_zip(state, world)) regions["Monastery Back"].connect( connecting_region=regions["Monastery Hero's Grave Region"], @@ -863,14 +908,13 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["Rooted Ziggurat Lower Back"], rule=lambda state: state.has(laurels, player) or (has_sword(state, player) and has_ability(prayer, state, world))) - # unrestricted: use ladder storage to get to the front, get hit by one of the many enemies # nmg: can ice grapple on the voidlings to the double admin fight, still need to pray at the fuse regions["Rooted Ziggurat Lower Back"].connect( connecting_region=regions["Rooted Ziggurat Lower Front"], - rule=lambda state: ((state.has(laurels, player) or has_ice_grapple_logic(True, state, world)) - and has_ability(prayer, state, world) - and has_sword(state, player)) - or can_ladder_storage(state, world)) + rule=lambda state: (state.has(laurels, player) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) + and has_ability(prayer, state, world) + and has_sword(state, player)) regions["Rooted Ziggurat Lower Back"].connect( connecting_region=regions["Rooted Ziggurat Portal Room Entrance"], @@ -882,40 +926,62 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["Rooted Ziggurat Lower Front"]) regions["Rooted Ziggurat Portal"].connect( + connecting_region=regions["Rooted Ziggurat Portal Room"]) + regions["Rooted Ziggurat Portal Room"].connect( + connecting_region=regions["Rooted Ziggurat Portal"], + rule=lambda state: has_ability(prayer, state, world)) + + regions["Rooted Ziggurat Portal Room"].connect( connecting_region=regions["Rooted Ziggurat Portal Room Exit"], rule=lambda state: state.has("Activate Ziggurat Fuse", player)) regions["Rooted Ziggurat Portal Room Exit"].connect( - connecting_region=regions["Rooted Ziggurat Portal"], - rule=lambda state: has_ability(prayer, state, world)) + connecting_region=regions["Rooted Ziggurat Portal Room"]) # Swamp and Cathedral regions["Swamp Front"].connect( connecting_region=regions["Swamp Mid"], rule=lambda state: has_ladder("Ladders in Swamp", state, world) or state.has(laurels, player) - or has_ice_grapple_logic(False, state, world)) # nmg: ice grapple through gate + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) regions["Swamp Mid"].connect( connecting_region=regions["Swamp Front"], rule=lambda state: has_ladder("Ladders in Swamp", state, world) or state.has(laurels, player) - or has_ice_grapple_logic(False, state, world)) # nmg: ice grapple through gate + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) - # nmg: ice grapple through cathedral door, can do it both ways - regions["Swamp Mid"].connect( + # a whole lot of stuff to basically say "you need to pray at the overworld fuse" + swamp_mid_to_cath = regions["Swamp Mid"].connect( connecting_region=regions["Swamp to Cathedral Main Entrance Region"], - rule=lambda state: (has_ability(prayer, state, world) and state.has(laurels, player)) - or has_ice_grapple_logic(False, state, world)) + rule=lambda state: (has_ability(prayer, state, world) + and (state.has(laurels, player) + # blam yourself in the face with a wand shot off the fuse + or (can_ladder_storage(state, world) and state.has(fire_wand, player) + and options.ladder_storage >= LadderStorage.option_hard + and (not options.shuffle_ladders + or state.has_any({"Ladders in Overworld Town", + "Ladder to Swamp", + "Ladders near Weathervane"}, player) + or (state.has("Ladder to Ruined Atoll", player) + and state.can_reach_region("Overworld Beach", player)))))) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) + + if options.ladder_storage >= LadderStorage.option_hard and options.shuffle_ladders: + world.multiworld.register_indirect_condition(regions["Overworld Beach"], swamp_mid_to_cath) + regions["Swamp to Cathedral Main Entrance Region"].connect( connecting_region=regions["Swamp Mid"], - rule=lambda state: has_ice_grapple_logic(False, state, world)) + rule=lambda state: has_ice_grapple_logic(False, IceGrappling.option_easy, state, world)) + # grapple push the enemy by the door down, then grapple to it. Really jank regions["Swamp Mid"].connect( connecting_region=regions["Swamp Ledge under Cathedral Door"], - rule=lambda state: has_ladder("Ladders in Swamp", state, world)) + rule=lambda state: has_ladder("Ladders in Swamp", state, world) + or has_ice_grapple_logic(True, IceGrappling.option_hard, state, world)) + # ice grapple enemy standing at the door regions["Swamp Ledge under Cathedral Door"].connect( connecting_region=regions["Swamp Mid"], rule=lambda state: has_ladder("Ladders in Swamp", state, world) - or has_ice_grapple_logic(True, state, world)) # nmg: ice grapple the enemy at door + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) regions["Swamp Ledge under Cathedral Door"].connect( connecting_region=regions["Swamp to Cathedral Treasure Room"], @@ -930,11 +996,17 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ connecting_region=regions["Back of Swamp"], rule=lambda state: state.has(laurels, player)) - # nmg: can ice grapple down while you're on the pillars + # ice grapple down from the pillar, or do that really annoying laurels zip + # the zip goes to front or mid, just doing mid since mid -> front can be done with laurels alone regions["Back of Swamp Laurels Area"].connect( connecting_region=regions["Swamp Mid"], - rule=lambda state: state.has(laurels, player) - and has_ice_grapple_logic(True, state, world)) + rule=lambda state: laurels_zip(state, world) + or (state.has(laurels, player) + and has_ice_grapple_logic(True, IceGrappling.option_easy, state, world))) + # get one pillar from the gate, then dash onto the gate, very tricky + regions["Swamp Front"].connect( + connecting_region=regions["Back of Swamp Laurels Area"], + rule=lambda state: laurels_zip(state, world)) regions["Back of Swamp"].connect( connecting_region=regions["Swamp Hero's Grave Region"], @@ -942,6 +1014,14 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Swamp Hero's Grave Region"].connect( connecting_region=regions["Back of Swamp"]) + regions["Cathedral"].connect( + connecting_region=regions["Cathedral to Gauntlet"], + rule=lambda state: (has_ability(prayer, state, world) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) + or options.entrance_rando) # elevator is always there in ER + regions["Cathedral to Gauntlet"].connect( + connecting_region=regions["Cathedral"]) + regions["Cathedral Gauntlet Checkpoint"].connect( connecting_region=regions["Cathedral Gauntlet"]) @@ -1000,337 +1080,141 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ and state.has_group_unique("Hero Relics", player, 6) and has_sword(state, player)))) - # connecting the regions portals are in to other portals you can access via ladder storage - # using has_stick instead of can_ladder_storage since it's already checking the logic rules - if options.logic_rules == "unrestricted": + if options.ladder_storage: def get_portal_info(portal_sd: str) -> Tuple[str, str]: for portal1, portal2 in portal_pairs.items(): if portal1.scene_destination() == portal_sd: - return portal1.name, portal2.region + return portal1.name, get_portal_outlet_region(portal2, world) if portal2.scene_destination() == portal_sd: - return portal2.name, portal1.region + return portal2.name, get_portal_outlet_region(portal1, world) raise Exception("no matches found in get_paired_region") - ladder_storages: List[Tuple[str, str, Set[str]]] = [ - # LS from Overworld main - # The upper Swamp entrance - ("Overworld", "Overworld Redux, Swamp Redux 2_wall", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town"}), - # Upper atoll entrance - ("Overworld", "Overworld Redux, Atoll Redux_upper", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town"}), - # Furnace entrance, next to the sign that leads to West Garden - ("Overworld", "Overworld Redux, Furnace_gyro_west", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town"}), - # Upper West Garden entry, by the belltower - ("Overworld", "Overworld Redux, Archipelagos Redux_upper", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town"}), - # Ruined Passage - ("Overworld", "Overworld Redux, Ruins Passage_east", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town"}), - # Well rail, west side. Can ls in town, get extra height by going over the portal pad - ("Overworld", "Overworld Redux, Sewer_west_aqueduct", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town", "Ladder to Quarry"}), - # Well rail, east side. Need some height from the temple stairs - ("Overworld", "Overworld Redux, Furnace_gyro_upper_north", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town", "Ladder to Quarry"}), - # Quarry entry - ("Overworld", "Overworld Redux, Darkwoods Tunnel_", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town", "Ladders in Well"}), - # East Forest entry - ("Overworld", "Overworld Redux, Forest Belltower_", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town", "Ladders in Well", - "Ladders near Patrol Cave", "Ladder to Quarry", "Ladders near Dark Tomb"}), - # Fortress entry - ("Overworld", "Overworld Redux, Fortress Courtyard_", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town", "Ladders in Well", - "Ladders near Patrol Cave", "Ladder to Quarry", "Ladders near Dark Tomb"}), - # Patrol Cave entry - ("Overworld", "Overworld Redux, PatrolCave_", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town", "Ladders in Well", - "Ladders near Overworld Checkpoint", "Ladder to Quarry", "Ladders near Dark Tomb"}), - # Special Shop entry, excluded in non-ER due to soft lock potential - ("Overworld", "Overworld Redux, ShopSpecial_", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town", "Ladders in Well", - "Ladders near Overworld Checkpoint", "Ladders near Patrol Cave", "Ladder to Quarry", - "Ladders near Dark Tomb"}), - # Temple Rafters, excluded in non-ER + ladder rando due to soft lock potential - ("Overworld", "Overworld Redux, Temple_rafters", - {"Ladders near Weathervane", "Ladder to Swamp", "Ladders in Overworld Town", "Ladders in Well", - "Ladders near Overworld Checkpoint", "Ladders near Patrol Cave", "Ladder to Quarry", - "Ladders near Dark Tomb"}), - # Spot above the Quarry entrance, - # only gets you to the mountain stairs - ("Overworld above Quarry Entrance", "Overworld Redux, Mountain_", - {"Ladders near Dark Tomb"}), - - # LS from the Overworld Beach - # West Garden entry by the Furnace - ("Overworld Beach", "Overworld Redux, Archipelagos Redux_lower", - {"Ladders in Overworld Town", "Ladder to Ruined Atoll"}), - # West Garden laurels entry - ("Overworld Beach", "Overworld Redux, Archipelagos Redux_lowest", - {"Ladders in Overworld Town", "Ladder to Ruined Atoll"}), - # Swamp lower entrance - ("Overworld Beach", "Overworld Redux, Swamp Redux 2_conduit", - {"Ladders in Overworld Town", "Ladder to Ruined Atoll"}), - # Rotating Lights entrance - ("Overworld Beach", "Overworld Redux, Overworld Cave_", - {"Ladders in Overworld Town", "Ladder to Ruined Atoll"}), - # Swamp upper entrance - ("Overworld Beach", "Overworld Redux, Swamp Redux 2_wall", - {"Ladder to Ruined Atoll"}), - # Furnace entrance, next to the sign that leads to West Garden - ("Overworld Beach", "Overworld Redux, Furnace_gyro_west", - {"Ladder to Ruined Atoll"}), - # Upper West Garden entry, by the belltower - ("Overworld Beach", "Overworld Redux, Archipelagos Redux_upper", - {"Ladder to Ruined Atoll"}), - # Ruined Passage - ("Overworld Beach", "Overworld Redux, Ruins Passage_east", - {"Ladder to Ruined Atoll"}), - # Well rail, west side. Can ls in town, get extra height by going over the portal pad - ("Overworld Beach", "Overworld Redux, Sewer_west_aqueduct", - {"Ladder to Ruined Atoll"}), - # Well rail, east side. Need some height from the temple stairs - ("Overworld Beach", "Overworld Redux, Furnace_gyro_upper_north", - {"Ladder to Ruined Atoll"}), - # Quarry entry - ("Overworld Beach", "Overworld Redux, Darkwoods Tunnel_", - {"Ladder to Ruined Atoll"}), - - # LS from that low spot where you normally walk to swamp - # Only has low ones you can't get to from main Overworld - # West Garden main entry from swamp ladder - ("Overworld Swamp Lower Entry", "Overworld Redux, Archipelagos Redux_lower", - {"Ladder to Swamp"}), - # Maze Cave entry from swamp ladder - ("Overworld Swamp Lower Entry", "Overworld Redux, Maze Room_", - {"Ladder to Swamp"}), - # Hourglass Cave entry from swamp ladder - ("Overworld Swamp Lower Entry", "Overworld Redux, Town Basement_beach", - {"Ladder to Swamp"}), - # Lower Atoll entry from swamp ladder - ("Overworld Swamp Lower Entry", "Overworld Redux, Atoll Redux_lower", - {"Ladder to Swamp"}), - # Lowest West Garden entry from swamp ladder - ("Overworld Swamp Lower Entry", "Overworld Redux, Archipelagos Redux_lowest", - {"Ladder to Swamp"}), - - # from the ladders by the belltower - # Ruined Passage - ("Overworld to West Garden Upper", "Overworld Redux, Ruins Passage_east", - {"Ladders to West Bell"}), - # Well rail, west side. Can ls in town, get extra height by going over the portal pad - ("Overworld to West Garden Upper", "Overworld Redux, Sewer_west_aqueduct", - {"Ladders to West Bell"}), - # Well rail, east side. Need some height from the temple stairs - ("Overworld to West Garden Upper", "Overworld Redux, Furnace_gyro_upper_north", - {"Ladders to West Bell"}), - # Quarry entry - ("Overworld to West Garden Upper", "Overworld Redux, Darkwoods Tunnel_", - {"Ladders to West Bell"}), - # East Forest entry - ("Overworld to West Garden Upper", "Overworld Redux, Forest Belltower_", - {"Ladders to West Bell"}), - # Fortress entry - ("Overworld to West Garden Upper", "Overworld Redux, Fortress Courtyard_", - {"Ladders to West Bell"}), - # Patrol Cave entry - ("Overworld to West Garden Upper", "Overworld Redux, PatrolCave_", - {"Ladders to West Bell"}), - # Special Shop entry, excluded in non-ER due to soft lock potential - ("Overworld to West Garden Upper", "Overworld Redux, ShopSpecial_", - {"Ladders to West Bell"}), - # Temple Rafters, excluded in non-ER and ladder rando due to soft lock potential - ("Overworld to West Garden Upper", "Overworld Redux, Temple_rafters", - {"Ladders to West Bell"}), - - # In the furnace - # Furnace ladder to the fuse entrance - ("Furnace Ladder Area", "Furnace, Overworld Redux_gyro_upper_north", set()), - # Furnace ladder to Dark Tomb - ("Furnace Ladder Area", "Furnace, Crypt Redux_", set()), - # Furnace ladder to the West Garden connector - ("Furnace Ladder Area", "Furnace, Overworld Redux_gyro_west", set()), - - # West Garden - # exit after Garden Knight - ("West Garden", "Archipelagos Redux, Overworld Redux_upper", set()), - # West Garden laurels exit - ("West Garden", "Archipelagos Redux, Overworld Redux_lowest", set()), - - # Atoll, use the little ladder you fix at the beginning - ("Ruined Atoll", "Atoll Redux, Overworld Redux_lower", set()), - ("Ruined Atoll", "Atoll Redux, Frog Stairs_mouth", set()), - ("Ruined Atoll", "Atoll Redux, Frog Stairs_eye", set()), - - # East Forest - # Entrance by the dancing fox holy cross spot - ("East Forest", "East Forest Redux, East Forest Redux Laddercave_upper", set()), - - # From the west side of Guard House 1 to the east side - ("Guard House 1 West", "East Forest Redux Laddercave, East Forest Redux_gate", set()), - ("Guard House 1 West", "East Forest Redux Laddercave, Forest Boss Room_", set()), - - # Upper exit from the Forest Grave Path, use LS at the ladder by the gate switch - ("Forest Grave Path Main", "Sword Access, East Forest Redux_upper", set()), - - # Fortress Exterior - # shop, ls at the ladder by the telescope - ("Fortress Exterior from Overworld", "Fortress Courtyard, Shop_", set()), - # Fortress main entry and grave path lower entry, ls at the ladder by the telescope - ("Fortress Exterior from Overworld", "Fortress Courtyard, Fortress Main_Big Door", set()), - ("Fortress Exterior from Overworld", "Fortress Courtyard, Fortress Reliquary_Lower", set()), - # Upper exits from the courtyard. Use the ramp in the courtyard, then the blocks north of the first fuse - ("Fortress Exterior from Overworld", "Fortress Courtyard, Fortress Reliquary_Upper", set()), - ("Fortress Exterior from Overworld", "Fortress Courtyard, Fortress East_", set()), - - # same as above, except from the east side of the area - ("Fortress Exterior from East Forest", "Fortress Courtyard, Overworld Redux_", set()), - ("Fortress Exterior from East Forest", "Fortress Courtyard, Shop_", set()), - ("Fortress Exterior from East Forest", "Fortress Courtyard, Fortress Main_Big Door", set()), - ("Fortress Exterior from East Forest", "Fortress Courtyard, Fortress Reliquary_Lower", set()), - ("Fortress Exterior from East Forest", "Fortress Courtyard, Fortress Reliquary_Upper", set()), - ("Fortress Exterior from East Forest", "Fortress Courtyard, Fortress East_", set()), - - # same as above, except from the Beneath the Vault entrance ladder - ("Fortress Exterior near cave", "Fortress Courtyard, Overworld Redux_", - {"Ladder to Beneath the Vault"}), - ("Fortress Exterior near cave", "Fortress Courtyard, Fortress Main_Big Door", - {"Ladder to Beneath the Vault"}), - ("Fortress Exterior near cave", "Fortress Courtyard, Fortress Reliquary_Lower", - {"Ladder to Beneath the Vault"}), - ("Fortress Exterior near cave", "Fortress Courtyard, Fortress Reliquary_Upper", - {"Ladder to Beneath the Vault"}), - ("Fortress Exterior near cave", "Fortress Courtyard, Fortress East_", - {"Ladder to Beneath the Vault"}), - - # ls at the ladder, need to gain a little height to get up the stairs - # excluded in non-ER due to soft lock potential - ("Lower Mountain", "Mountain, Mountaintop_", set()), - - # Where the rope is behind Monastery. Connecting here since, if you have this region, you don't need a sword - ("Quarry Monastery Entry", "Quarry Redux, Monastery_back", set()), - - # Swamp to Gauntlet - ("Swamp Mid", "Swamp Redux 2, Cathedral Arena_", - {"Ladders in Swamp"}), - # Swamp to Overworld upper - ("Swamp Mid", "Swamp Redux 2, Overworld Redux_wall", - {"Ladders in Swamp"}), - # Ladder by the hero grave - ("Back of Swamp", "Swamp Redux 2, Overworld Redux_conduit", set()), - ("Back of Swamp", "Swamp Redux 2, Shop_", set()), - # Need to put the cathedral HC code mid-flight - ("Back of Swamp", "Swamp Redux 2, Cathedral Redux_secret", set()), - ] - - for region_name, scene_dest, ladders in ladder_storages: - portal_name, paired_region = get_portal_info(scene_dest) - # this is the only exception, requiring holy cross as well - if portal_name == "Swamp to Cathedral Secret Legend Room Entrance" and region_name == "Back of Swamp": - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) - and has_ability(holy_cross, state, world) - and (has_ladder("Ladders in Swamp", state, world) - or has_ice_grapple_logic(True, state, world) - or not options.entrance_rando)) - # soft locked without this ladder - elif portal_name == "West Garden Exit after Boss" and not options.entrance_rando: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) - and (state.has("Ladders to West Bell", player))) - # soft locked unless you have either ladder. if you have laurels, you use the other Entrance - elif portal_name in {"Furnace Exit towards West Garden", "Furnace Exit to Dark Tomb"} \ - and not options.entrance_rando: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) - and state.has_any({"Ladder in Dark Tomb", "Ladders to West Bell"}, player)) - # soft locked for the same reasons as above - elif portal_name in {"Entrance to Furnace near West Garden", "West Garden Entrance from Furnace"} \ - and not options.entrance_rando: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) and state.has_any(ladders, player) - and state.has_any({"Ladder in Dark Tomb", "Ladders to West Bell"}, player)) - # soft locked if you can't get past garden knight backwards or up the belltower ladders - elif portal_name == "West Garden Entrance near Belltower" and not options.entrance_rando: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) and state.has_any(ladders, player) - and state.has_any({"Ladders to West Bell", laurels}, player)) - # soft locked if you can't get back out - elif portal_name == "Fortress Courtyard to Beneath the Vault" and not options.entrance_rando: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) and state.has("Ladder to Beneath the Vault", player) - and has_lantern(state, world)) - elif portal_name == "Atoll Lower Entrance" and not options.entrance_rando: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) and state.has_any(ladders, player) - and (state.has_any({"Ladders in Overworld Town", grapple}, player) - or has_ice_grapple_logic(True, state, world))) - elif portal_name == "Atoll Upper Entrance" and not options.entrance_rando: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) and state.has_any(ladders, player) - and state.has(grapple, player) or has_ability(prayer, state, world)) - # soft lock potential - elif portal_name in {"Special Shop Entrance", "Stairs to Top of the Mountain", "Swamp Upper Entrance", - "Swamp Lower Entrance", "Caustic Light Cave Entrance"} and not options.entrance_rando: + # connect ls elevation regions to their destinations + def ls_connect(origin_name: str, portal_sdt: str) -> None: + p_name, paired_region_name = get_portal_info(portal_sdt) + ladder_regions[origin_name].connect( + regions[paired_region_name], + name=p_name + " (LS) " + origin_name) + + # get what non-overworld ladder storage connections we want together + non_ow_ls_list = [] + non_ow_ls_list.extend(easy_ls) + if options.ladder_storage >= LadderStorage.option_medium: + non_ow_ls_list.extend(medium_ls) + if options.ladder_storage >= LadderStorage.option_hard: + non_ow_ls_list.extend(hard_ls) + + # create the ls elevation regions + ladder_regions: Dict[str, Region] = {} + for name in ow_ladder_groups.keys(): + ladder_regions[name] = Region(name, player, world.multiworld) + + # connect the ls elevations to each other where applicable + if options.ladder_storage >= LadderStorage.option_medium: + for i in range(len(ow_ladder_groups) - 1): + ladder_regions[f"LS Elev {i}"].connect(ladder_regions[f"LS Elev {i + 1}"]) + + # connect the applicable overworld regions to the ls elevation regions + for origin_region, ladders in region_ladders.items(): + for ladder_region, region_info in ow_ladder_groups.items(): + # checking if that region has a ladder or ladders for that elevation + common_ladders: FrozenSet[str] = frozenset(ladders.intersection(region_info.ladders)) + if common_ladders: + if options.shuffle_ladders: + regions[origin_region].connect( + connecting_region=ladder_regions[ladder_region], + rule=lambda state, lads=common_ladders: state.has_any(lads, player) + and can_ladder_storage(state, world)) + else: + regions[origin_region].connect( + connecting_region=ladder_regions[ladder_region], + rule=lambda state: can_ladder_storage(state, world)) + + # connect ls elevation regions to the region on the other side of the portals + for ladder_region, region_info in ow_ladder_groups.items(): + for portal_dest in region_info.portals: + ls_connect(ladder_region, "Overworld Redux, " + portal_dest) + + # connect ls elevation regions to regions where you can get an enemy to knock you down, also well rail + if options.ladder_storage >= LadderStorage.option_medium: + for ladder_region, region_info in ow_ladder_groups.items(): + for dest_region in region_info.regions: + ladder_regions[ladder_region].connect( + connecting_region=regions[dest_region], + name=ladder_region + " (LS) " + dest_region) + # well rail, need height off portal pad for one side, and a tiny extra from stairs on the other + ls_connect("LS Elev 3", "Overworld Redux, Sewer_west_aqueduct") + ls_connect("LS Elev 3", "Overworld Redux, Furnace_gyro_upper_north") + + # connect ls elevation regions to portals where you need to get behind the map to enter it + if options.ladder_storage >= LadderStorage.option_hard: + ls_connect("LS Elev 1", "Overworld Redux, EastFiligreeCache_") + ls_connect("LS Elev 2", "Overworld Redux, Town_FiligreeRoom_") + ls_connect("LS Elev 3", "Overworld Redux, Overworld Interiors_house") + ls_connect("LS Elev 5", "Overworld Redux, Temple_main") + + # connect the non-overworld ones + for ls_info in non_ow_ls_list: + # for places where the destination is a region (so you have to get knocked down) + if ls_info.dest_is_region: + # none of the non-ow ones have multiple ladders that can be used, so don't need has_any + if options.shuffle_ladders and ls_info.ladders_req: + regions[ls_info.origin].connect( + connecting_region=regions[ls_info.destination], + name=ls_info.destination + " (LS) " + ls_info.origin, + rule=lambda state, lad=ls_info.ladders_req: can_ladder_storage(state, world) + and state.has(lad, player)) + else: + regions[ls_info.origin].connect( + connecting_region=regions[ls_info.destination], + name=ls_info.destination + " (LS) " + ls_info.origin, + rule=lambda state: can_ladder_storage(state, world)) continue - # soft lock if you don't have the ladder, I regret writing unrestricted logic - elif portal_name == "Temple Rafters Entrance" and not options.entrance_rando: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) - and state.has_any(ladders, player) - and (state.has("Ladder near Temple Rafters", player) - or (state.has_all({laurels, grapple}, player) - and ((state.has("Ladders near Patrol Cave", player) - and (state.has("Ladders near Dark Tomb", player) - or state.has("Ladder to Quarry", player) - and (state.has(fire_wand, player) or has_sword(state, player)))) - or state.has("Ladders near Overworld Checkpoint", player) - or has_ice_grapple_logic(True, state, world))))) - # if no ladder items are required, just do the basic stick only lambda - elif not ladders or not options.shuffle_ladders: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player)) - # one ladder required - elif len(ladders) == 1: - ladder = ladders.pop() - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) and state.has(ladder, player)) - # if multiple ladders can be used + + portal_name, dest_region = get_portal_info(ls_info.destination) + # these two are special cases + if ls_info.destination == "Atoll Redux, Frog Stairs_mouth": + regions[ls_info.origin].connect( + connecting_region=regions[dest_region], + name=portal_name + " (LS) " + ls_info.origin, + rule=lambda state: can_ladder_storage(state, world) + and (has_ladder("Ladders in South Atoll", state, world) + or state.has(key, player, 2) # can do it from the rope + # ice grapple push a crab into the door + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world) + or options.ladder_storage >= LadderStorage.option_medium)) # use the little ladder + # holy cross mid-ls to get in here + elif ls_info.destination == "Swamp Redux 2, Cathedral Redux_secret": + if ls_info.origin == "Swamp Mid": + regions[ls_info.origin].connect( + connecting_region=regions[dest_region], + name=portal_name + " (LS) " + ls_info.origin, + rule=lambda state: can_ladder_storage(state, world) and has_ability(holy_cross, state, world) + and has_ladder("Ladders in Swamp", state, world)) + else: + regions[ls_info.origin].connect( + connecting_region=regions[dest_region], + name=portal_name + " (LS) " + ls_info.origin, + rule=lambda state: can_ladder_storage(state, world) and has_ability(holy_cross, state, world)) + + elif options.shuffle_ladders and ls_info.ladders_req: + regions[ls_info.origin].connect( + connecting_region=regions[dest_region], + name=portal_name + " (LS) " + ls_info.origin, + rule=lambda state, lad=ls_info.ladders_req: can_ladder_storage(state, world) + and state.has(lad, player)) else: - regions[region_name].connect( - regions[paired_region], - name=portal_name + " (LS) " + region_name, - rule=lambda state: has_stick(state, player) and state.has_any(ladders, player)) + regions[ls_info.origin].connect( + connecting_region=regions[dest_region], + name=portal_name + " (LS) " + ls_info.origin, + rule=lambda state: can_ladder_storage(state, world)) + + for region in ladder_regions.values(): + world.multiworld.regions.append(region) def set_er_location_rules(world: "TunicWorld") -> None: player = world.player - options = world.options forbid_item(world.get_location("Secret Gathering Place - 20 Fairy Reward"), fairies, player) @@ -1439,10 +1323,13 @@ def set_er_location_rules(world: "TunicWorld") -> None: # Ruined Atoll set_rule(world.get_location("Ruined Atoll - [West] Near Kevin Block"), lambda state: state.has(laurels, player)) + # ice grapple push a crab through the door set_rule(world.get_location("Ruined Atoll - [East] Locked Room Lower Chest"), - lambda state: state.has(laurels, player) or state.has(key, player, 2)) + lambda state: state.has(laurels, player) or state.has(key, player, 2) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) set_rule(world.get_location("Ruined Atoll - [East] Locked Room Upper Chest"), - lambda state: state.has(laurels, player) or state.has(key, player, 2)) + lambda state: state.has(laurels, player) or state.has(key, player, 2) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) # Frog's Domain set_rule(world.get_location("Frog's Domain - Side Room Grapple Secret"), @@ -1465,23 +1352,25 @@ def set_er_location_rules(world: "TunicWorld") -> None: lambda state: state.has(laurels, player)) # Ziggurat - # if ER is off, you still need to get past the Admin or you'll get stuck in lower zig + # if ER is off, while you can get the chest, you won't be able to actually get through zig set_rule(world.get_location("Rooted Ziggurat Upper - Near Bridge Switch"), - lambda state: has_sword(state, player) or (state.has(fire_wand, player) and (state.has(laurels, player) - or options.entrance_rando))) + lambda state: has_sword(state, player) or (state.has(fire_wand, player) + and (state.has(laurels, player) + or world.options.entrance_rando))) set_rule(world.get_location("Rooted Ziggurat Lower - After Guarded Fuse"), lambda state: has_sword(state, player) and has_ability(prayer, state, world)) # Bosses set_rule(world.get_location("Fortress Arena - Siege Engine/Vault Key Pickup"), lambda state: has_sword(state, player)) - # nmg - kill Librarian with a lure, or gun I guess set_rule(world.get_location("Librarian - Hexagon Green"), - lambda state: (has_sword(state, player) or options.logic_rules) + lambda state: has_sword(state, player) and has_ladder("Ladders in Library", state, world)) - # nmg - kill boss scav with orb + firecracker, or similar + # can ice grapple boss scav off the side + # the grapple from the other side of the bridge isn't in logic 'cause we don't have a misc tricks option set_rule(world.get_location("Rooted Ziggurat Lower - Hexagon Blue"), - lambda state: has_sword(state, player) or (state.has(grapple, player) and options.logic_rules)) + lambda state: has_sword(state, player) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) # Swamp set_rule(world.get_location("Cathedral Gauntlet - Gauntlet Reward"), @@ -1490,7 +1379,7 @@ def set_er_location_rules(world: "TunicWorld") -> None: lambda state: state.has(laurels, player)) set_rule(world.get_location("Swamp - [South Graveyard] Upper Walkway Dash Chest"), lambda state: state.has(laurels, player)) - # these two swamp checks really want you to kill the big skeleton first + # really hard to do 4 skulls with a big skeleton chasing you around set_rule(world.get_location("Swamp - [South Graveyard] 4 Orange Skulls"), lambda state: has_sword(state, player)) @@ -1541,7 +1430,13 @@ def set_er_location_rules(world: "TunicWorld") -> None: # Bombable Walls for location_name in bomb_walls: - set_rule(world.get_location(location_name), lambda state: state.has(gun, player) or can_shop(state, world)) + set_rule(world.get_location(location_name), + lambda state: state.has(gun, player) + or can_shop(state, world) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) + # not enough space to ice grapple into here + set_rule(world.get_location("Quarry - [East] Bombable Wall"), + lambda state: state.has(gun, player) or can_shop(state, world)) # Shop set_rule(world.get_location("Shop - Potion 1"), diff --git a/worlds/tunic/er_scripts.py b/worlds/tunic/er_scripts.py index e7c8fd58d0c6..05f6177aa57d 100644 --- a/worlds/tunic/er_scripts.py +++ b/worlds/tunic/er_scripts.py @@ -1,7 +1,7 @@ -from typing import Dict, List, Set, TYPE_CHECKING +from typing import Dict, List, Set, Tuple, TYPE_CHECKING from BaseClasses import Region, ItemClassification, Item, Location from .locations import location_table -from .er_data import Portal, tunic_er_regions, portal_mapping, traversal_requirements, DeadEnd +from .er_data import Portal, portal_mapping, traversal_requirements, DeadEnd, RegionInfo from .er_rules import set_er_region_rules from Options import PlandoConnection from .options import EntranceRando @@ -22,17 +22,18 @@ class TunicERLocation(Location): def create_er_regions(world: "TunicWorld") -> Dict[Portal, Portal]: regions: Dict[str, Region] = {} + for region_name, region_data in world.er_regions.items(): + regions[region_name] = Region(region_name, world.player, world.multiworld) + if world.options.entrance_rando: - portal_pairs = pair_portals(world) + portal_pairs = pair_portals(world, regions) + # output the entrances to the spoiler log here for convenience sorted_portal_pairs = sort_portals(portal_pairs) for portal1, portal2 in sorted_portal_pairs.items(): world.multiworld.spoiler.set_entrance(portal1, portal2, "both", world.player) else: - portal_pairs = vanilla_portals() - - for region_name, region_data in tunic_er_regions.items(): - regions[region_name] = Region(region_name, world.player, world.multiworld) + portal_pairs = vanilla_portals(world, regions) set_er_region_rules(world, regions, portal_pairs) @@ -93,7 +94,18 @@ def place_event_items(world: "TunicWorld", regions: Dict[str, Region]) -> None: region.locations.append(location) -def vanilla_portals() -> Dict[Portal, Portal]: +# all shops are the same shop. however, you cannot get to all shops from the same shop entrance. +# so, we need a bunch of shop regions that connect to the actual shop, but the actual shop cannot connect back +def create_shop_region(world: "TunicWorld", regions: Dict[str, Region]) -> None: + new_shop_name = f"Shop {world.shop_num}" + world.er_regions[new_shop_name] = RegionInfo("Shop", dead_end=DeadEnd.all_cats) + new_shop_region = Region(new_shop_name, world.player, world.multiworld) + new_shop_region.connect(regions["Shop"]) + regions[new_shop_name] = new_shop_region + world.shop_num += 1 + + +def vanilla_portals(world: "TunicWorld", regions: Dict[str, Region]) -> Dict[Portal, Portal]: portal_pairs: Dict[Portal, Portal] = {} # we don't want the zig skip exit for vanilla portals, since it shouldn't be considered for logic here portal_map = [portal for portal in portal_mapping if portal.name != "Ziggurat Lower Falling Entrance"] @@ -105,8 +117,9 @@ def vanilla_portals() -> Dict[Portal, Portal]: portal2_sdt = portal1.destination_scene() if portal2_sdt.startswith("Shop,"): - portal2 = Portal(name="Shop", region="Shop", + portal2 = Portal(name=f"Shop Portal {world.shop_num}", region=f"Shop {world.shop_num}", destination="Previous Region", tag="_") + create_shop_region(world, regions) elif portal2_sdt == "Purgatory, Purgatory_bottom": portal2_sdt = "Purgatory, Purgatory_top" @@ -125,14 +138,15 @@ def vanilla_portals() -> Dict[Portal, Portal]: # pairing off portals, starting with dead ends -def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: - # separate the portals into dead ends and non-dead ends +def pair_portals(world: "TunicWorld", regions: Dict[str, Region]) -> Dict[Portal, Portal]: portal_pairs: Dict[Portal, Portal] = {} dead_ends: List[Portal] = [] two_plus: List[Portal] = [] player_name = world.player_name portal_map = portal_mapping.copy() - logic_rules = world.options.logic_rules.value + laurels_zips = world.options.laurels_zips.value + ice_grappling = world.options.ice_grappling.value + ladder_storage = world.options.ladder_storage.value fixed_shop = world.options.fixed_shop laurels_location = world.options.laurels_location traversal_reqs = deepcopy(traversal_requirements) @@ -142,19 +156,21 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: # if it's not one of the EntranceRando options, it's a custom seed if world.options.entrance_rando.value not in EntranceRando.options.values(): seed_group = world.seed_groups[world.options.entrance_rando.value] - logic_rules = seed_group["logic_rules"] + laurels_zips = seed_group["laurels_zips"] + ice_grappling = seed_group["ice_grappling"] + ladder_storage = seed_group["ladder_storage"] fixed_shop = seed_group["fixed_shop"] laurels_location = "10_fairies" if seed_group["laurels_at_10_fairies"] is True else False + logic_tricks: Tuple[bool, int, int] = (laurels_zips, ice_grappling, ladder_storage) + # marking that you don't immediately have laurels if laurels_location == "10_fairies" and not hasattr(world.multiworld, "re_gen_passthrough"): has_laurels = False - shop_scenes: Set[str] = set() shop_count = 6 if fixed_shop: shop_count = 0 - shop_scenes.add("Overworld Redux") else: # if fixed shop is off, remove this portal for portal in portal_map: @@ -169,13 +185,13 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: # create separate lists for dead ends and non-dead ends for portal in portal_map: - dead_end_status = tunic_er_regions[portal.region].dead_end + dead_end_status = world.er_regions[portal.region].dead_end if dead_end_status == DeadEnd.free: two_plus.append(portal) elif dead_end_status == DeadEnd.all_cats: dead_ends.append(portal) elif dead_end_status == DeadEnd.restricted: - if logic_rules: + if ice_grappling: two_plus.append(portal) else: dead_ends.append(portal) @@ -196,7 +212,7 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: # make better start region stuff when/if implementing random start start_region = "Overworld" connected_regions.add(start_region) - connected_regions = update_reachable_regions(connected_regions, traversal_reqs, has_laurels, logic_rules) + connected_regions = update_reachable_regions(connected_regions, traversal_reqs, has_laurels, logic_tricks) if world.options.entrance_rando.value in EntranceRando.options.values(): plando_connections = world.options.plando_connections.value @@ -225,12 +241,14 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: plando_connections.append(PlandoConnection(portal_name1, portal_name2, "both")) non_dead_end_regions = set() - for region_name, region_info in tunic_er_regions.items(): + for region_name, region_info in world.er_regions.items(): if not region_info.dead_end: non_dead_end_regions.add(region_name) - elif region_info.dead_end == 2 and logic_rules: + # if ice grappling to places is in logic, both places stop being dead ends + elif region_info.dead_end == DeadEnd.restricted and ice_grappling: non_dead_end_regions.add(region_name) - elif region_info.dead_end == 3: + # secret gathering place and zig skip get weird, special handling + elif region_info.dead_end == DeadEnd.special: if (region_name == "Secret Gathering Place" and laurels_location == "10_fairies") \ or (region_name == "Zig Skip Exit" and fixed_shop): non_dead_end_regions.add(region_name) @@ -239,6 +257,9 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: for connection in plando_connections: p_entrance = connection.entrance p_exit = connection.exit + # if you plando secret gathering place, need to know that during portal pairing + if "Secret Gathering Place Exit" in [p_entrance, p_exit]: + waterfall_plando = True portal1_dead_end = True portal2_dead_end = True @@ -285,16 +306,13 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: break # if it's not a dead end, it might be a shop if p_exit == "Shop Portal": - portal2 = Portal(name="Shop Portal", region="Shop", + portal2 = Portal(name=f"Shop Portal {world.shop_num}", region=f"Shop {world.shop_num}", destination="Previous Region", tag="_") + create_shop_region(world, regions) shop_count -= 1 # need to maintain an even number of portals total if shop_count < 0: shop_count += 2 - for p in portal_mapping: - if p.name == p_entrance: - shop_scenes.add(p.scene()) - break # and if it's neither shop nor dead end, it just isn't correct else: if not portal2: @@ -327,11 +345,10 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: else: raise Exception(f"{player_name} paired a dead end to a dead end in their " "plando connections.") - waterfall_plando = True portal_pairs[portal1] = portal2 # if we have plando connections, our connected regions may change somewhat - connected_regions = update_reachable_regions(connected_regions, traversal_reqs, has_laurels, logic_rules) + connected_regions = update_reachable_regions(connected_regions, traversal_reqs, has_laurels, logic_tricks) if fixed_shop and not hasattr(world.multiworld, "re_gen_passthrough"): portal1 = None @@ -343,7 +360,9 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: raise Exception(f"Failed to do Fixed Shop option. " f"Did {player_name} plando connection the Windmill Shop entrance?") - portal2 = Portal(name="Shop Portal", region="Shop", destination="Previous Region", tag="_") + portal2 = Portal(name=f"Shop Portal {world.shop_num}", region=f"Shop {world.shop_num}", + destination="Previous Region", tag="_") + create_shop_region(world, regions) portal_pairs[portal1] = portal2 two_plus.remove(portal1) @@ -393,7 +412,7 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: if waterfall_plando: cr = connected_regions.copy() cr.add(portal.region) - if "Secret Gathering Place" not in update_reachable_regions(cr, traversal_reqs, has_laurels, logic_rules): + if "Secret Gathering Place" not in update_reachable_regions(cr, traversal_reqs, has_laurels, logic_tricks): continue elif portal.region != "Secret Gathering Place": continue @@ -405,9 +424,9 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: # once we have both portals, connect them and add the new region(s) to connected_regions if check_success == 2: - connected_regions = update_reachable_regions(connected_regions, traversal_reqs, has_laurels, logic_rules) if "Secret Gathering Place" in connected_regions: has_laurels = True + connected_regions = update_reachable_regions(connected_regions, traversal_reqs, has_laurels, logic_tricks) portal_pairs[portal1] = portal2 check_success = 0 random_object.shuffle(two_plus) @@ -418,16 +437,12 @@ def pair_portals(world: "TunicWorld") -> Dict[Portal, Portal]: shop_count = 0 for i in range(shop_count): - portal1 = None - for portal in two_plus: - if portal.scene() not in shop_scenes: - shop_scenes.add(portal.scene()) - portal1 = portal - two_plus.remove(portal) - break + portal1 = two_plus.pop() if portal1 is None: - raise Exception("Too many shops in the pool, or something else went wrong.") - portal2 = Portal(name="Shop Portal", region="Shop", destination="Previous Region", tag="_") + raise Exception("TUNIC: Too many shops in the pool, or something else went wrong.") + portal2 = Portal(name=f"Shop Portal {world.shop_num}", region=f"Shop {world.shop_num}", + destination="Previous Region", tag="_") + create_shop_region(world, regions) portal_pairs[portal1] = portal2 @@ -460,13 +475,12 @@ def create_randomized_entrances(portal_pairs: Dict[Portal, Portal], regions: Dic region1 = regions[portal1.region] region2 = regions[portal2.region] region1.connect(connecting_region=region2, name=portal1.name) - # prevent the logic from thinking you can get to any shop-connected region from the shop - if portal2.name not in {"Shop", "Shop Portal"}: - region2.connect(connecting_region=region1, name=portal2.name) + region2.connect(connecting_region=region1, name=portal2.name) def update_reachable_regions(connected_regions: Set[str], traversal_reqs: Dict[str, Dict[str, List[List[str]]]], - has_laurels: bool, logic: int) -> Set[str]: + has_laurels: bool, logic: Tuple[bool, int, int]) -> Set[str]: + zips, ice_grapples, ls = logic # starting count, so we can run it again if this changes region_count = len(connected_regions) for origin, destinations in traversal_reqs.items(): @@ -485,11 +499,15 @@ def update_reachable_regions(connected_regions: Set[str], traversal_reqs: Dict[s if req == "Hyperdash": if not has_laurels: break - elif req == "NMG": - if not logic: + elif req == "Zip": + if not zips: + break + # if req is higher than logic option, then it breaks since it's not a valid connection + elif req.startswith("IG"): + if int(req[-1]) > ice_grapples: break - elif req == "UR": - if logic < 2: + elif req.startswith("LS"): + if int(req[-1]) > ls: break elif req not in connected_regions: break diff --git a/worlds/tunic/items.py b/worlds/tunic/items.py index e0ee17831a0a..55aa3468fc6b 100644 --- a/worlds/tunic/items.py +++ b/worlds/tunic/items.py @@ -166,6 +166,7 @@ class TunicItemData(NamedTuple): "Ladders in Swamp": TunicItemData(ItemClassification.progression, 0, 150, "Ladders"), } +# items to be replaced by fool traps fool_tiers: List[List[str]] = [ [], ["Money x1", "Money x10", "Money x15", "Money x16"], @@ -173,6 +174,7 @@ class TunicItemData(NamedTuple): ["Money x1", "Money x10", "Money x15", "Money x16", "Money x20", "Money x25", "Money x30"], ] +# items we'll want the location of in slot data, for generating in-game hints slot_data_item_names = [ "Stick", "Sword", diff --git a/worlds/tunic/ladder_storage_data.py b/worlds/tunic/ladder_storage_data.py new file mode 100644 index 000000000000..a29d50b4f455 --- /dev/null +++ b/worlds/tunic/ladder_storage_data.py @@ -0,0 +1,186 @@ +from typing import Dict, List, Set, NamedTuple, Optional + + +# ladders in overworld, since it is the most complex area for ladder storage +class OWLadderInfo(NamedTuple): + ladders: Set[str] # ladders where the top or bottom is at the same elevation + portals: List[str] # portals at the same elevation, only those without doors + regions: List[str] # regions where a melee enemy can hit you out of ladder storage + + +# groups for ladders at the same elevation, for use in determing whether you can ls to entrances in diff rulesets +ow_ladder_groups: Dict[str, OWLadderInfo] = { + # lowest elevation + "LS Elev 0": OWLadderInfo({"Ladders in Overworld Town", "Ladder to Ruined Atoll", "Ladder to Swamp"}, + ["Swamp Redux 2_conduit", "Overworld Cave_", "Atoll Redux_lower", "Maze Room_", + "Town Basement_beach", "Archipelagos Redux_lower", "Archipelagos Redux_lowest"], + ["Overworld Beach"]), + # also the east filigree room + "LS Elev 1": OWLadderInfo({"Ladders near Weathervane", "Ladders in Overworld Town", "Ladder to Swamp"}, + ["Furnace_gyro_lower", "Swamp Redux 2_wall"], + ["Overworld Tunnel Turret"]), + # also the fountain filigree room and ruined passage door + "LS Elev 2": OWLadderInfo({"Ladders near Weathervane", "Ladders to West Bell"}, + ["Archipelagos Redux_upper", "Ruins Passage_east"], + ["After Ruined Passage"]), + # also old house door + "LS Elev 3": OWLadderInfo({"Ladders near Weathervane", "Ladder to Quarry", "Ladders to West Bell", + "Ladders in Overworld Town"}, + [], + ["Overworld after Envoy", "East Overworld"]), + # skip top of top ladder next to weathervane level, does not provide logical access to anything + "LS Elev 4": OWLadderInfo({"Ladders near Dark Tomb", "Ladder to Quarry", "Ladders to West Bell", "Ladders in Well", + "Ladders in Overworld Town"}, + ["Darkwoods Tunnel_"], + []), + "LS Elev 5": OWLadderInfo({"Ladders near Overworld Checkpoint", "Ladders near Patrol Cave"}, + ["PatrolCave_", "Forest Belltower_", "Fortress Courtyard_", "ShopSpecial_"], + ["East Overworld"]), + # skip top of belltower, middle of dark tomb ladders, and top of checkpoint, does not grant access to anything + "LS Elev 6": OWLadderInfo({"Ladders near Patrol Cave", "Ladder near Temple Rafters"}, + ["Temple_rafters"], + ["Overworld above Patrol Cave"]), + # in-line with the chest above dark tomb, gets you up the mountain stairs + "LS Elev 7": OWLadderInfo({"Ladders near Patrol Cave", "Ladder near Temple Rafters", "Ladders near Dark Tomb"}, + ["Mountain_"], + ["Upper Overworld"]), +} + + +# ladders accessible within different regions of overworld, only those that are relevant +# other scenes will just have them hardcoded since this type of structure is not necessary there +region_ladders: Dict[str, Set[str]] = { + "Overworld": {"Ladders near Weathervane", "Ladders near Overworld Checkpoint", "Ladders near Dark Tomb", + "Ladders in Overworld Town", "Ladder to Swamp", "Ladders in Well"}, + "Overworld Beach": {"Ladder to Ruined Atoll"}, + "Overworld at Patrol Cave": {"Ladders near Patrol Cave"}, + "Overworld Quarry Entry": {"Ladder to Quarry"}, + "Overworld Belltower": {"Ladders to West Bell"}, + "Overworld after Temple Rafters": {"Ladders near Temple Rafters"}, +} + + +class LadderInfo(NamedTuple): + origin: str # origin region + destination: str # destination portal + ladders_req: Optional[str] = None # ladders required to do this + dest_is_region: bool = False # whether it is a region that you are going to + + +easy_ls: List[LadderInfo] = [ + # In the furnace + # Furnace ladder to the fuse entrance + LadderInfo("Furnace Ladder Area", "Furnace, Overworld Redux_gyro_upper_north"), + # Furnace ladder to Dark Tomb + LadderInfo("Furnace Ladder Area", "Furnace, Crypt Redux_"), + # Furnace ladder to the West Garden connector + LadderInfo("Furnace Ladder Area", "Furnace, Overworld Redux_gyro_west"), + + # West Garden + # exit after Garden Knight + LadderInfo("West Garden", "Archipelagos Redux, Overworld Redux_upper"), + # West Garden laurels exit + LadderInfo("West Garden", "Archipelagos Redux, Overworld Redux_lowest"), + + # Atoll, use the little ladder you fix at the beginning + LadderInfo("Ruined Atoll", "Atoll Redux, Overworld Redux_lower"), + LadderInfo("Ruined Atoll", "Atoll Redux, Frog Stairs_mouth"), # special case + + # East Forest + # Entrance by the dancing fox holy cross spot + LadderInfo("East Forest", "East Forest Redux, East Forest Redux Laddercave_upper"), + + # From the west side of Guard House 1 to the east side + LadderInfo("Guard House 1 West", "East Forest Redux Laddercave, East Forest Redux_gate"), + LadderInfo("Guard House 1 West", "East Forest Redux Laddercave, Forest Boss Room_"), + + # Fortress Exterior + # shop, ls at the ladder by the telescope + LadderInfo("Fortress Exterior from Overworld", "Fortress Courtyard, Shop_"), + # Fortress main entry and grave path lower entry, ls at the ladder by the telescope + LadderInfo("Fortress Exterior from Overworld", "Fortress Courtyard, Fortress Main_Big Door"), + LadderInfo("Fortress Exterior from Overworld", "Fortress Courtyard, Fortress Reliquary_Lower"), + # Use the top of the ladder by the telescope + LadderInfo("Fortress Exterior from Overworld", "Fortress Courtyard, Fortress Reliquary_Upper"), + LadderInfo("Fortress Exterior from Overworld", "Fortress Courtyard, Fortress East_"), + + # same as above, except from the east side of the area + LadderInfo("Fortress Exterior from East Forest", "Fortress Courtyard, Overworld Redux_"), + LadderInfo("Fortress Exterior from East Forest", "Fortress Courtyard, Shop_"), + LadderInfo("Fortress Exterior from East Forest", "Fortress Courtyard, Fortress Main_Big Door"), + LadderInfo("Fortress Exterior from East Forest", "Fortress Courtyard, Fortress Reliquary_Lower"), + + # same as above, except from the Beneath the Vault entrance ladder + LadderInfo("Fortress Exterior near cave", "Fortress Courtyard, Overworld Redux_", "Ladder to Beneath the Vault"), + LadderInfo("Fortress Exterior near cave", "Fortress Courtyard, Fortress Main_Big Door", + "Ladder to Beneath the Vault"), + LadderInfo("Fortress Exterior near cave", "Fortress Courtyard, Fortress Reliquary_Lower", + "Ladder to Beneath the Vault"), + + # Swamp to Gauntlet + LadderInfo("Swamp Mid", "Swamp Redux 2, Cathedral Arena_", "Ladders in Swamp"), + + # Ladder by the hero grave + LadderInfo("Back of Swamp", "Swamp Redux 2, Overworld Redux_conduit"), + LadderInfo("Back of Swamp", "Swamp Redux 2, Shop_"), +] + +# if we can gain elevation or get knocked down, add the harder ones +medium_ls: List[LadderInfo] = [ + # region-destination versions of easy ls spots + LadderInfo("East Forest", "East Forest Dance Fox Spot", dest_is_region=True), + # fortress courtyard knockdowns are never logically relevant, the fuse requires upper + LadderInfo("Back of Swamp", "Swamp Mid", dest_is_region=True), + LadderInfo("Back of Swamp", "Swamp Front", dest_is_region=True), + + # gain height off the northeast fuse ramp + LadderInfo("Ruined Atoll", "Atoll Redux, Frog Stairs_eye"), + + # Upper exit from the Forest Grave Path, use LS at the ladder by the gate switch + LadderInfo("Forest Grave Path Main", "Sword Access, East Forest Redux_upper"), + + # Upper exits from the courtyard. Use the ramp in the courtyard, then the blocks north of the first fuse + LadderInfo("Fortress Exterior from Overworld", "Fortress Courtyard Upper", dest_is_region=True), + LadderInfo("Fortress Exterior from East Forest", "Fortress Courtyard, Fortress Reliquary_Upper"), + LadderInfo("Fortress Exterior from East Forest", "Fortress Courtyard, Fortress East_"), + LadderInfo("Fortress Exterior from East Forest", "Fortress Courtyard Upper", dest_is_region=True), + LadderInfo("Fortress Exterior near cave", "Fortress Courtyard, Fortress Reliquary_Upper", + "Ladder to Beneath the Vault"), + LadderInfo("Fortress Exterior near cave", "Fortress Courtyard, Fortress East_", "Ladder to Beneath the Vault"), + LadderInfo("Fortress Exterior near cave", "Fortress Courtyard Upper", "Ladder to Beneath the Vault", + dest_is_region=True), + + # need to gain height to get up the stairs + LadderInfo("Lower Mountain", "Mountain, Mountaintop_"), + + # Where the rope is behind Monastery + LadderInfo("Quarry Entry", "Quarry Redux, Monastery_back"), + LadderInfo("Quarry Monastery Entry", "Quarry Redux, Monastery_back"), + LadderInfo("Quarry Back", "Quarry Redux, Monastery_back"), + + LadderInfo("Rooted Ziggurat Lower Back", "ziggurat2020_3, ziggurat2020_2_"), + LadderInfo("Rooted Ziggurat Lower Back", "Rooted Ziggurat Lower Front", dest_is_region=True), + + # Swamp to Overworld upper + LadderInfo("Swamp Mid", "Swamp Redux 2, Overworld Redux_wall", "Ladders in Swamp"), + LadderInfo("Back of Swamp", "Swamp Redux 2, Overworld Redux_wall"), +] + +hard_ls: List[LadderInfo] = [ + # lower ladder, go into the waterfall then above the bonfire, up a ramp, then through the right wall + LadderInfo("Beneath the Well Front", "Sewer, Sewer_Boss_", "Ladders in Well"), + LadderInfo("Beneath the Well Front", "Sewer, Overworld Redux_west_aqueduct", "Ladders in Well"), + LadderInfo("Beneath the Well Front", "Beneath the Well Back", "Ladders in Well", dest_is_region=True), + # go through the hexagon engraving above the vault door + LadderInfo("Frog's Domain", "frog cave main, Frog Stairs_Exit", "Ladders to Frog's Domain"), + # the turret at the end here is not affected by enemy rando + LadderInfo("Frog's Domain", "Frog's Domain Back", "Ladders to Frog's Domain", dest_is_region=True), + # todo: see if we can use that new laurels strat here + # LadderInfo("Rooted Ziggurat Lower Back", "ziggurat2020_3, ziggurat2020_FTRoom_"), + # go behind the cathedral to reach the door, pretty easily doable + LadderInfo("Swamp Mid", "Swamp Redux 2, Cathedral Redux_main", "Ladders in Swamp"), + LadderInfo("Back of Swamp", "Swamp Redux 2, Cathedral Redux_main"), + # need to do hc midair, probably cannot get into this without hc + LadderInfo("Swamp Mid", "Swamp Redux 2, Cathedral Redux_secret", "Ladders in Swamp"), + LadderInfo("Back of Swamp", "Swamp Redux 2, Cathedral Redux_secret"), +] diff --git a/worlds/tunic/locations.py b/worlds/tunic/locations.py index 09916228163d..442e0c01446d 100644 --- a/worlds/tunic/locations.py +++ b/worlds/tunic/locations.py @@ -47,7 +47,7 @@ class TunicLocationData(NamedTuple): "Guardhouse 1 - Upper Floor": TunicLocationData("East Forest", "Guard House 1 East"), "East Forest - Dancing Fox Spirit Holy Cross": TunicLocationData("East Forest", "East Forest Dance Fox Spot", location_group="Holy Cross"), "East Forest - Golden Obelisk Holy Cross": TunicLocationData("East Forest", "Lower Forest", location_group="Holy Cross"), - "East Forest - Ice Rod Grapple Chest": TunicLocationData("East Forest", "East Forest"), + "East Forest - Ice Rod Grapple Chest": TunicLocationData("East Forest", "Lower Forest"), "East Forest - Above Save Point": TunicLocationData("East Forest", "East Forest"), "East Forest - Above Save Point Obscured": TunicLocationData("East Forest", "East Forest"), "East Forest - From Guardhouse 1 Chest": TunicLocationData("East Forest", "East Forest Dance Fox Spot"), @@ -205,7 +205,7 @@ class TunicLocationData(NamedTuple): "Fountain Cross Door - Page Pickup": TunicLocationData("Overworld Holy Cross", "Fountain Cross Room", location_group="Holy Cross"), "Secret Gathering Place - Holy Cross Chest": TunicLocationData("Overworld Holy Cross", "Secret Gathering Place", location_group="Holy Cross"), "Top of the Mountain - Page At The Peak": TunicLocationData("Overworld Holy Cross", "Top of the Mountain", location_group="Holy Cross"), - "Monastery - Monastery Chest": TunicLocationData("Quarry", "Monastery Back"), + "Monastery - Monastery Chest": TunicLocationData("Monastery", "Monastery Back"), "Quarry - [Back Entrance] Bushes Holy Cross": TunicLocationData("Quarry Back", "Quarry Back", location_group="Holy Cross"), "Quarry - [Back Entrance] Chest": TunicLocationData("Quarry Back", "Quarry Back"), "Quarry - [Central] Near Shortcut Ladder": TunicLocationData("Quarry Back", "Quarry Back"), @@ -224,7 +224,7 @@ class TunicLocationData(NamedTuple): "Quarry - [Central] Above Ladder Dash Chest": TunicLocationData("Quarry", "Quarry Monastery Entry"), "Quarry - [West] Upper Area Bombable Wall": TunicLocationData("Quarry Back", "Quarry Back"), "Quarry - [East] Bombable Wall": TunicLocationData("Quarry", "Quarry"), - "Hero's Grave - Ash Relic": TunicLocationData("Quarry", "Hero Relic - Quarry"), + "Hero's Grave - Ash Relic": TunicLocationData("Monastery", "Hero Relic - Quarry"), "Quarry - [West] Shooting Range Secret Path": TunicLocationData("Lower Quarry", "Lower Quarry"), "Quarry - [West] Near Shooting Range": TunicLocationData("Lower Quarry", "Lower Quarry"), "Quarry - [West] Below Shooting Range": TunicLocationData("Lower Quarry", "Lower Quarry"), diff --git a/worlds/tunic/options.py b/worlds/tunic/options.py index 92cbafba233f..1683b3ca5aee 100644 --- a/worlds/tunic/options.py +++ b/worlds/tunic/options.py @@ -1,7 +1,7 @@ from dataclasses import dataclass from typing import Dict, Any from Options import (DefaultOnToggle, Toggle, StartInventoryPool, Choice, Range, TextChoice, PlandoConnections, - PerGameCommonOptions, OptionGroup) + PerGameCommonOptions, OptionGroup, Visibility) from .er_data import portal_mapping @@ -39,27 +39,6 @@ class AbilityShuffling(Toggle): display_name = "Shuffle Abilities" -class LogicRules(Choice): - """ - Set which logic rules to use for your world. - Restricted: Standard logic, no glitches. - No Major Glitches: Sneaky Laurels zips, ice grapples through doors, shooting the west bell, and boss quick kills are included in logic. - * Ice grappling through the Ziggurat door is not in logic since you will get stuck in there without Prayer. - Unrestricted: Logic in No Major Glitches, as well as ladder storage to get to certain places early. - * Torch is given to the player at the start of the game due to the high softlock potential with various tricks. Using the torch is not required in logic. - * Using Ladder Storage to get to individual chests is not in logic to avoid tedium. - * Getting knocked out of the air by enemies during Ladder Storage to reach places is not in logic, except for in Rooted Ziggurat Lower. This is so you're not punished for playing with enemy rando on. - """ - internal_name = "logic_rules" - display_name = "Logic Rules" - option_restricted = 0 - option_no_major_glitches = 1 - alias_nmg = 1 - option_unrestricted = 2 - alias_ur = 2 - default = 0 - - class Lanternless(Toggle): """ Choose whether you require the Lantern for dark areas. @@ -173,8 +152,8 @@ class ShuffleLadders(Toggle): """ internal_name = "shuffle_ladders" display_name = "Shuffle Ladders" - - + + class TunicPlandoConnections(PlandoConnections): """ Generic connection plando. Format is: @@ -189,6 +168,82 @@ class TunicPlandoConnections(PlandoConnections): duplicate_exits = True +class LaurelsZips(Toggle): + """ + Choose whether to include using the Hero's Laurels to zip through gates, doors, and tricky spots. + Notable inclusions are the Monastery gate, Ruined Passage door, Old House gate, Forest Grave Path gate, and getting from the Back of Swamp to the Middle of Swamp. + """ + internal_name = "laurels_zips" + display_name = "Laurels Zips Logic" + + +class IceGrappling(Choice): + """ + Choose whether grappling frozen enemies is in logic. + Easy includes ice grappling enemies that are in range without luring them. May include clips through terrain. + Medium includes using ice grapples to push enemies through doors or off ledges without luring them. Also includes bringing an enemy over to the Temple Door to grapple through it. + Hard includes luring or grappling enemies to get to where you want to go. + The Medium and Hard options will give the player the Torch to return to the Overworld checkpoint to avoid softlocks. Using the Torch is considered in logic. + Note: You will still be expected to ice grapple to the slime in East Forest from below with this option off. + """ + internal_name = "ice_grappling" + display_name = "Ice Grapple Logic" + option_off = 0 + option_easy = 1 + option_medium = 2 + option_hard = 3 + default = 0 + + +class LadderStorage(Choice): + """ + Choose whether Ladder Storage is in logic. + Easy includes uses of Ladder Storage to get to open doors over a long distance without too much difficulty. May include convenient elevation changes (going up Mountain stairs, stairs in front of Special Shop, etc.). + Medium includes the above as well as changing your elevation using the environment and getting knocked down by melee enemies mid-LS. + Hard includes the above as well as going behind the map to enter closed doors from behind, shooting a fuse with the magic wand to knock yourself down at close range, and getting into the Cathedral Secret Legend room mid-LS. + Enabling any of these difficulty options will give the player the Torch item to return to the Overworld checkpoint to avoid softlocks. Using the Torch is considered in logic. + Opening individual chests while doing ladder storage is excluded due to tedium. + Knocking yourself out of LS with a bomb is excluded due to the problematic nature of consumables in logic. + """ + internal_name = "ladder_storage" + display_name = "Ladder Storage Logic" + option_off = 0 + option_easy = 1 + option_medium = 2 + option_hard = 3 + default = 0 + + +class LadderStorageWithoutItems(Toggle): + """ + If disabled, you logically require Stick, Sword, or Magic Orb to perform Ladder Storage. + If enabled, you will be expected to perform Ladder Storage without progression items. + This can be done with the plushie code, a Golden Coin, Prayer, and many other options. + + This option has no effect if you do not have Ladder Storage Logic enabled. + """ + internal_name = "ladder_storage_without_items" + display_name = "Ladder Storage without Items" + + +class LogicRules(Choice): + """ + This option has been superseded by the individual trick options. + If set to nmg, it will set Ice Grappling to medium and Laurels Zips on. + If set to ur, it will do nmg as well as set Ladder Storage to medium. + It is here to avoid breaking old yamls, and will be removed at a later date. + """ + visibility = Visibility.none + internal_name = "logic_rules" + display_name = "Logic Rules" + option_restricted = 0 + option_no_major_glitches = 1 + alias_nmg = 1 + option_unrestricted = 2 + alias_ur = 2 + default = 0 + + @dataclass class TunicOptions(PerGameCommonOptions): start_inventory_from_pool: StartInventoryPool @@ -199,22 +254,30 @@ class TunicOptions(PerGameCommonOptions): shuffle_ladders: ShuffleLadders entrance_rando: EntranceRando fixed_shop: FixedShop - logic_rules: LogicRules fool_traps: FoolTraps hexagon_quest: HexagonQuest hexagon_goal: HexagonGoal extra_hexagon_percentage: ExtraHexagonPercentage + laurels_location: LaurelsLocation lanternless: Lanternless maskless: Maskless - laurels_location: LaurelsLocation + laurels_zips: LaurelsZips + ice_grappling: IceGrappling + ladder_storage: LadderStorage + ladder_storage_without_items: LadderStorageWithoutItems plando_connections: TunicPlandoConnections + + logic_rules: LogicRules tunic_option_groups = [ OptionGroup("Logic Options", [ - LogicRules, Lanternless, Maskless, + LaurelsZips, + IceGrappling, + LadderStorage, + LadderStorageWithoutItems ]) ] @@ -231,9 +294,12 @@ class TunicOptions(PerGameCommonOptions): "Glace Mode": { "accessibility": "minimal", "ability_shuffling": True, - "entrance_rando": "yes", + "entrance_rando": True, "fool_traps": "onslaught", - "logic_rules": "unrestricted", + "laurels_zips": True, + "ice_grappling": "hard", + "ladder_storage": "hard", + "ladder_storage_without_items": True, "maskless": True, "lanternless": True, }, diff --git a/worlds/tunic/regions.py b/worlds/tunic/regions.py index c30a44bb8ff6..93ec5640e0c2 100644 --- a/worlds/tunic/regions.py +++ b/worlds/tunic/regions.py @@ -16,7 +16,8 @@ "Eastern Vault Fortress": {"Beneath the Vault"}, "Beneath the Vault": {"Eastern Vault Fortress"}, "Quarry Back": {"Quarry"}, - "Quarry": {"Lower Quarry"}, + "Quarry": {"Monastery", "Lower Quarry"}, + "Monastery": set(), "Lower Quarry": {"Rooted Ziggurat"}, "Rooted Ziggurat": set(), "Swamp": {"Cathedral"}, diff --git a/worlds/tunic/rules.py b/worlds/tunic/rules.py index 68756869038d..942bbc773aa5 100644 --- a/worlds/tunic/rules.py +++ b/worlds/tunic/rules.py @@ -3,7 +3,7 @@ from worlds.generic.Rules import set_rule, forbid_item, add_rule from BaseClasses import CollectionState -from .options import TunicOptions +from .options import TunicOptions, LadderStorage, IceGrappling if TYPE_CHECKING: from . import TunicWorld @@ -27,10 +27,10 @@ blue_hexagon = "Blue Questagon" gold_hexagon = "Gold Questagon" +# "Quarry - [East] Bombable Wall" is excluded from this list since it has slightly different rules bomb_walls = ["East Forest - Bombable Wall", "Eastern Vault Fortress - [East Wing] Bombable Wall", "Overworld - [Central] Bombable Wall", "Overworld - [Southwest] Bombable Wall Near Fountain", - "Quarry - [West] Upper Area Bombable Wall", "Quarry - [East] Bombable Wall", - "Ruined Atoll - [Northwest] Bombable Wall"] + "Quarry - [West] Upper Area Bombable Wall", "Ruined Atoll - [Northwest] Bombable Wall"] def randomize_ability_unlocks(random: Random, options: TunicOptions) -> Dict[str, int]: @@ -64,32 +64,33 @@ def has_sword(state: CollectionState, player: int) -> bool: return state.has("Sword", player) or state.has("Sword Upgrade", player, 2) -def has_ice_grapple_logic(long_range: bool, state: CollectionState, world: "TunicWorld") -> bool: - player = world.player - if not world.options.logic_rules: +def laurels_zip(state: CollectionState, world: "TunicWorld") -> bool: + return world.options.laurels_zips and state.has(laurels, world.player) + + +def has_ice_grapple_logic(long_range: bool, difficulty: IceGrappling, state: CollectionState, world: "TunicWorld") -> bool: + if world.options.ice_grappling < difficulty: return False if not long_range: - return state.has_all({ice_dagger, grapple}, player) + return state.has_all({ice_dagger, grapple}, world.player) else: - return state.has_all({ice_dagger, fire_wand, grapple}, player) and has_ability(icebolt, state, world) + return state.has_all({ice_dagger, fire_wand, grapple}, world.player) and has_ability(icebolt, state, world) def can_ladder_storage(state: CollectionState, world: "TunicWorld") -> bool: - return world.options.logic_rules == "unrestricted" and has_stick(state, world.player) + if not world.options.ladder_storage: + return False + if world.options.ladder_storage_without_items: + return True + return has_stick(state, world.player) or state.has(grapple, world.player) def has_mask(state: CollectionState, world: "TunicWorld") -> bool: - if world.options.maskless: - return True - else: - return state.has(mask, world.player) + return world.options.maskless or state.has(mask, world.player) def has_lantern(state: CollectionState, world: "TunicWorld") -> bool: - if world.options.lanternless: - return True - else: - return state.has(lantern, world.player) + return world.options.lanternless or state.has(lantern, world.player) def set_region_rules(world: "TunicWorld") -> None: @@ -102,12 +103,14 @@ def set_region_rules(world: "TunicWorld") -> None: lambda state: has_stick(state, player) or state.has(fire_wand, player) world.get_entrance("Overworld -> Dark Tomb").access_rule = \ lambda state: has_lantern(state, world) + # laurels in, ladder storage in through the furnace, or ice grapple down the belltower world.get_entrance("Overworld -> West Garden").access_rule = \ - lambda state: state.has(laurels, player) \ - or can_ladder_storage(state, world) + lambda state: (state.has(laurels, player) + or can_ladder_storage(state, world) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) world.get_entrance("Overworld -> Eastern Vault Fortress").access_rule = \ lambda state: state.has(laurels, player) \ - or has_ice_grapple_logic(True, state, world) \ + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world) \ or can_ladder_storage(state, world) # using laurels or ls to get in is covered by the -> Eastern Vault Fortress rules world.get_entrance("Overworld -> Beneath the Vault").access_rule = \ @@ -124,8 +127,8 @@ def set_region_rules(world: "TunicWorld") -> None: world.get_entrance("Lower Quarry -> Rooted Ziggurat").access_rule = \ lambda state: state.has(grapple, player) and has_ability(prayer, state, world) world.get_entrance("Swamp -> Cathedral").access_rule = \ - lambda state: state.has(laurels, player) and has_ability(prayer, state, world) \ - or has_ice_grapple_logic(False, state, world) + lambda state: (state.has(laurels, player) and has_ability(prayer, state, world)) \ + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world) world.get_entrance("Overworld -> Spirit Arena").access_rule = \ lambda state: ((state.has(gold_hexagon, player, options.hexagon_goal.value) if options.hexagon_quest.value else state.has_all({red_hexagon, green_hexagon, blue_hexagon}, player) @@ -133,10 +136,18 @@ def set_region_rules(world: "TunicWorld") -> None: and has_ability(prayer, state, world) and has_sword(state, player) and state.has_any({lantern, laurels}, player)) + world.get_region("Quarry").connect(world.get_region("Rooted Ziggurat"), + rule=lambda state: has_ice_grapple_logic(True, IceGrappling.option_hard, state, world) + and has_ability(prayer, state, world)) + + if options.ladder_storage >= LadderStorage.option_medium: + # ls at any ladder in a safe spot in quarry to get to the monastery rope entrance + world.get_region("Quarry Back").connect(world.get_region("Monastery"), + rule=lambda state: can_ladder_storage(state, world)) + def set_location_rules(world: "TunicWorld") -> None: player = world.player - options = world.options forbid_item(world.get_location("Secret Gathering Place - 20 Fairy Reward"), fairies, player) @@ -147,11 +158,13 @@ def set_location_rules(world: "TunicWorld") -> None: lambda state: has_ability(prayer, state, world) or state.has(laurels, player) or can_ladder_storage(state, world) - or (has_ice_grapple_logic(True, state, world) and has_lantern(state, world))) + or (has_ice_grapple_logic(True, IceGrappling.option_easy, state, world) + and has_lantern(state, world))) set_rule(world.get_location("Fortress Courtyard - Page Near Cave"), lambda state: has_ability(prayer, state, world) or state.has(laurels, player) or can_ladder_storage(state, world) - or (has_ice_grapple_logic(True, state, world) and has_lantern(state, world))) + or (has_ice_grapple_logic(True, IceGrappling.option_easy, state, world) + and has_lantern(state, world))) set_rule(world.get_location("East Forest - Dancing Fox Spirit Holy Cross"), lambda state: has_ability(holy_cross, state, world)) set_rule(world.get_location("Forest Grave Path - Holy Cross Code by Grave"), @@ -186,17 +199,17 @@ def set_location_rules(world: "TunicWorld") -> None: lambda state: state.has(laurels, player)) set_rule(world.get_location("Old House - Normal Chest"), lambda state: state.has(house_key, player) - or has_ice_grapple_logic(False, state, world) - or (state.has(laurels, player) and options.logic_rules)) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world) + or laurels_zip(state, world)) set_rule(world.get_location("Old House - Holy Cross Chest"), lambda state: has_ability(holy_cross, state, world) and ( state.has(house_key, player) - or has_ice_grapple_logic(False, state, world) - or (state.has(laurels, player) and options.logic_rules))) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world) + or laurels_zip(state, world))) set_rule(world.get_location("Old House - Shield Pickup"), lambda state: state.has(house_key, player) - or has_ice_grapple_logic(False, state, world) - or (state.has(laurels, player) and options.logic_rules)) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world) + or laurels_zip(state, world)) set_rule(world.get_location("Overworld - [Northwest] Page on Pillar by Dark Tomb"), lambda state: state.has(laurels, player)) set_rule(world.get_location("Overworld - [Southwest] From West Garden"), @@ -206,7 +219,7 @@ def set_location_rules(world: "TunicWorld") -> None: or (has_lantern(state, world) and has_sword(state, player)) or can_ladder_storage(state, world)) set_rule(world.get_location("Overworld - [Northwest] Chest Beneath Quarry Gate"), - lambda state: state.has_any({grapple, laurels}, player) or options.logic_rules) + lambda state: state.has_any({grapple, laurels}, player)) set_rule(world.get_location("Overworld - [East] Grapple Chest"), lambda state: state.has(grapple, player)) set_rule(world.get_location("Special Shop - Secret Page Pickup"), @@ -215,11 +228,11 @@ def set_location_rules(world: "TunicWorld") -> None: lambda state: has_ability(holy_cross, state, world) and (state.has(laurels, player) or (has_lantern(state, world) and (has_sword(state, player) or state.has(fire_wand, player))) - or has_ice_grapple_logic(False, state, world))) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world))) set_rule(world.get_location("Sealed Temple - Page Pickup"), lambda state: state.has(laurels, player) or (has_lantern(state, world) and (has_sword(state, player) or state.has(fire_wand, player))) - or has_ice_grapple_logic(False, state, world)) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) set_rule(world.get_location("West Furnace - Lantern Pickup"), lambda state: has_stick(state, player) or state.has_any({fire_wand, laurels}, player)) @@ -254,7 +267,7 @@ def set_location_rules(world: "TunicWorld") -> None: lambda state: state.has(laurels, player) and has_ability(holy_cross, state, world)) set_rule(world.get_location("West Garden - [East Lowlands] Page Behind Ice Dagger House"), lambda state: (state.has(laurels, player) and has_ability(prayer, state, world)) - or has_ice_grapple_logic(True, state, world)) + or has_ice_grapple_logic(True, IceGrappling.option_easy, state, world)) set_rule(world.get_location("West Garden - [Central Lowlands] Below Left Walkway"), lambda state: state.has(laurels, player)) set_rule(world.get_location("West Garden - [Central Highlands] After Garden Knight"), @@ -265,12 +278,15 @@ def set_location_rules(world: "TunicWorld") -> None: # Ruined Atoll set_rule(world.get_location("Ruined Atoll - [West] Near Kevin Block"), lambda state: state.has(laurels, player)) + # ice grapple push a crab through the door set_rule(world.get_location("Ruined Atoll - [East] Locked Room Lower Chest"), - lambda state: state.has(laurels, player) or state.has(key, player, 2)) + lambda state: state.has(laurels, player) or state.has(key, player, 2) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) set_rule(world.get_location("Ruined Atoll - [East] Locked Room Upper Chest"), - lambda state: state.has(laurels, player) or state.has(key, player, 2)) + lambda state: state.has(laurels, player) or state.has(key, player, 2) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world)) set_rule(world.get_location("Librarian - Hexagon Green"), - lambda state: has_sword(state, player) or options.logic_rules) + lambda state: has_sword(state, player)) # Frog's Domain set_rule(world.get_location("Frog's Domain - Side Room Grapple Secret"), @@ -285,10 +301,12 @@ def set_location_rules(world: "TunicWorld") -> None: lambda state: state.has(laurels, player)) set_rule(world.get_location("Fortress Arena - Siege Engine/Vault Key Pickup"), lambda state: has_sword(state, player) - and (has_ability(prayer, state, world) or has_ice_grapple_logic(False, state, world))) + and (has_ability(prayer, state, world) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world))) set_rule(world.get_location("Fortress Arena - Hexagon Red"), lambda state: state.has(vault_key, player) - and (has_ability(prayer, state, world) or has_ice_grapple_logic(False, state, world))) + and (has_ability(prayer, state, world) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world))) # Beneath the Vault set_rule(world.get_location("Beneath the Fortress - Bridge"), @@ -301,14 +319,14 @@ def set_location_rules(world: "TunicWorld") -> None: lambda state: state.has(laurels, player)) set_rule(world.get_location("Rooted Ziggurat Upper - Near Bridge Switch"), lambda state: has_sword(state, player) or state.has_all({fire_wand, laurels}, player)) - # nmg - kill boss scav with orb + firecracker, or similar set_rule(world.get_location("Rooted Ziggurat Lower - Hexagon Blue"), - lambda state: has_sword(state, player) or (state.has(grapple, player) and options.logic_rules)) + lambda state: has_sword(state, player)) # Swamp set_rule(world.get_location("Cathedral Gauntlet - Gauntlet Reward"), lambda state: (state.has(fire_wand, player) and has_sword(state, player)) - and (state.has(laurels, player) or has_ice_grapple_logic(False, state, world))) + and (state.has(laurels, player) + or has_ice_grapple_logic(False, IceGrappling.option_medium, state, world))) set_rule(world.get_location("Swamp - [Entrance] Above Entryway"), lambda state: state.has(laurels, player)) set_rule(world.get_location("Swamp - [South Graveyard] Upper Walkway Dash Chest"), @@ -335,8 +353,16 @@ def set_location_rules(world: "TunicWorld") -> None: # Bombable Walls for location_name in bomb_walls: # has_sword is there because you can buy bombs in the shop - set_rule(world.get_location(location_name), lambda state: state.has(gun, player) or has_sword(state, player)) + set_rule(world.get_location(location_name), + lambda state: state.has(gun, player) + or has_sword(state, player) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) add_rule(world.get_location("Cube Cave - Holy Cross Chest"), + lambda state: state.has(gun, player) + or has_sword(state, player) + or has_ice_grapple_logic(False, IceGrappling.option_hard, state, world)) + # can't ice grapple to this one, not enough space + set_rule(world.get_location("Quarry - [East] Bombable Wall"), lambda state: state.has(gun, player) or has_sword(state, player)) # Shop diff --git a/worlds/tunic/test/test_access.py b/worlds/tunic/test/test_access.py index 72d4a498d1ee..bbceb7468ff3 100644 --- a/worlds/tunic/test/test_access.py +++ b/worlds/tunic/test/test_access.py @@ -68,3 +68,57 @@ def test_overworld_hc_chest(self) -> None: self.assertFalse(self.can_reach_location("Overworld - [Southwest] Flowers Holy Cross")) self.collect_by_name(["Pages 42-43 (Holy Cross)"]) self.assertTrue(self.can_reach_location("Overworld - [Southwest] Flowers Holy Cross")) + + +class TestERSpecial(TunicTestBase): + options = {options.EntranceRando.internal_name: options.EntranceRando.option_yes, + options.AbilityShuffling.internal_name: options.AbilityShuffling.option_true, + options.HexagonQuest.internal_name: options.HexagonQuest.option_false, + options.FixedShop.internal_name: options.FixedShop.option_false, + options.IceGrappling.internal_name: options.IceGrappling.option_easy, + "plando_connections": [ + { + "entrance": "Stick House Entrance", + "exit": "Ziggurat Portal Room Entrance" + }, + { + "entrance": "Ziggurat Lower to Ziggurat Tower", + "exit": "Secret Gathering Place Exit" + } + ]} + # with these plando connections, you need to ice grapple from the back of lower zig to the front to get laurels + + +# ensure that ladder storage connections connect to the outlet region, not the portal's region +class TestLadderStorage(TunicTestBase): + options = {options.EntranceRando.internal_name: options.EntranceRando.option_yes, + options.AbilityShuffling.internal_name: options.AbilityShuffling.option_true, + options.HexagonQuest.internal_name: options.HexagonQuest.option_false, + options.FixedShop.internal_name: options.FixedShop.option_false, + options.LadderStorage.internal_name: options.LadderStorage.option_hard, + options.LadderStorageWithoutItems.internal_name: options.LadderStorageWithoutItems.option_false, + "plando_connections": [ + { + "entrance": "Fortress Courtyard Shop", + # "exit": "Ziggurat Portal Room Exit" + "exit": "Spawn to Far Shore" + }, + { + "entrance": "Fortress Courtyard to Beneath the Vault", + "exit": "Stick House Exit" + }, + { + "entrance": "Stick House Entrance", + "exit": "Fortress Courtyard to Overworld" + }, + { + "entrance": "Old House Waterfall Entrance", + "exit": "Ziggurat Portal Room Entrance" + }, + ]} + + def test_ls_to_shop_entrance(self) -> None: + self.collect_by_name(["Magic Orb"]) + self.assertFalse(self.can_reach_location("Fortress Courtyard - Page Near Cave")) + self.collect_by_name(["Pages 24-25 (Prayer)"]) + self.assertTrue(self.can_reach_location("Fortress Courtyard - Page Near Cave")) From d90cf0db656830d2f900884b36c2e1e6476a1fc1 Mon Sep 17 00:00:00 2001 From: neocerber <140952826+neocerber@users.noreply.github.com> Date: Sun, 8 Sep 2024 08:46:34 -0400 Subject: [PATCH 016/212] SC2 EN/FR documentation update (#3440) * Draft of SC2 EN documentation update: added hotkey, known issues; enhanced goal and prog balancing description. Added place holder for changes to apply in the French documentation. * Enforced StarCraft over Starcraft, added information on locations in the FR documentation * Removed a mention to a no longer available third link in the required software (since download_data deprecated the need to do it by hand) * First version of FR campaign restriction for sc2; rewriting (FR/EN) of randomizer goal description * Finished description for sc2 AP goal , minor formating * Added, both en/fr, indications that logic is locations wise and not mission wise (i.e. you might need to dip) * Enforced the 120 carac limit to last commit * Removed mention of needing to use the weighted option page to exlcude unit/upgrades since it is not longer the case in AP v0.5.0 * Added mention of /received being different in SC2 client (both language). Added Known issues in the FR version. * Simplified the text a bit and corrected some errors * Enforced, again, Star-C-raft; setting -> option; applied sugg for readability enhancement --- worlds/sc2/docs/en_Starcraft 2.md | 85 +++++++++++++++++------ worlds/sc2/docs/fr_Starcraft 2.md | 34 +++++++++- worlds/sc2/docs/setup_en.md | 109 ++++++++++++++++++++++-------- worlds/sc2/docs/setup_fr.md | 20 +++--- 4 files changed, 188 insertions(+), 60 deletions(-) diff --git a/worlds/sc2/docs/en_Starcraft 2.md b/worlds/sc2/docs/en_Starcraft 2.md index 06464e3cd2fd..813fdb5f4a2b 100644 --- a/worlds/sc2/docs/en_Starcraft 2.md +++ b/worlds/sc2/docs/en_Starcraft 2.md @@ -1,4 +1,4 @@ -# Starcraft 2 +# StarCraft 2 ## Game page in other languages: * [Français](/games/Starcraft%202/info/fr) @@ -7,9 +7,11 @@ The following unlocks are randomized as items: 1. Your ability to build any non-worker unit. -2. Unit specific upgrades including some combinations not available in the vanilla campaigns, such as both strain choices simultaneously for Zerg and every Spear of Adun upgrade simultaneously for Protoss! +2. Unit specific upgrades including some combinations not available in the vanilla campaigns, such as both strain +choices simultaneously for Zerg and every Spear of Adun upgrade simultaneously for Protoss! 3. Your ability to get the generic unit upgrades, such as attack and armour upgrades. -4. Other miscellaneous upgrades such as laboratory upgrades and mercenaries for Terran, Kerrigan levels and upgrades for Zerg, and Spear of Adun upgrades for Protoss. +4. Other miscellaneous upgrades such as laboratory upgrades and mercenaries for Terran, Kerrigan levels and upgrades +for Zerg, and Spear of Adun upgrades for Protoss. 5. Small boosts to your starting mineral, vespene gas, and supply totals on each mission. You find items by making progress in these categories: @@ -18,50 +20,91 @@ You find items by making progress in these categories: * Reaching milestones in the mission, such as completing part of a main objective * Completing challenges based on achievements in the base game, such as clearing all Zerg on Devil's Playground -Except for mission completion, these categories can be disabled in the game's settings. For instance, you can disable getting items for reaching required milestones. +In Archipelago's nomenclature, these are the locations where items can be found. +Each location, including mission completion, has a set of rules that specify the items required to access it. +These rules were designed assuming that StarCraft 2 is played on the Brutal difficulty. +Since each location has its own rule, it's possible that an item required for progression is in a mission where you +can't reach all of its locations or complete it. +However, mission completion is always required to gain access to new missions. + +Aside from mission completion, the other location categories can be disabled in the player options. +For instance, you can disable getting items for reaching required milestones. When you receive items, they will immediately become available, even during a mission, and you will be -notified via a text box in the top-right corner of the game screen. Item unlocks are also logged in the Archipelago client. +notified via a text box in the top-right corner of the game screen. +Item unlocks are also logged in the Archipelago client. -Missions are launched through the Starcraft 2 Archipelago client, through the Starcraft 2 Launcher tab. The between mission segments on the Hyperion, the Leviathan, and the Spear of Adun are not included. Additionally, metaprogression currencies such as credits and Solarite are not used. +Missions are launched through the StarCraft 2 Archipelago client, through the StarCraft 2 Launcher tab. +The between mission segments on the Hyperion, the Leviathan, and the Spear of Adun are not included. +Additionally, metaprogression currencies such as credits and Solarite are not used. ## What is the goal of this game when randomized? -The goal is to beat the final mission in the mission order. The yaml configuration file controls the mission order and how missions are shuffled. +The goal is to beat the final mission in the mission order. +The yaml configuration file controls the mission order (e.g. blitz, grid, etc.), which combination of the four +StarCraft 2 campaigns can be used to populate the mission order and how missions are shuffled. +Since the first two options determine the number of missions in a StarCraft 2 world, they can be used to customize the +expected time to complete the world. +Note that the evolution missions from Heart of the Swarm are not included in the randomizer. -## What non-randomized changes are there from vanilla Starcraft 2? +## What non-randomized changes are there from vanilla StarCraft 2? 1. Some missions have more vespene geysers available to allow a wider variety of units. -2. Many new units and upgrades have been added as items, coming from co-op, melee, later campaigns, later expansions, brood war, and original ideas. -3. Higher-tech production structures, including Factories, Starports, Robotics Facilities, and Stargates, no longer have tech requirements. +2. Many new units and upgrades have been added as items, coming from co-op, melee, later campaigns, later expansions, +brood war, and original ideas. +3. Higher-tech production structures, including Factories, Starports, Robotics Facilities, and Stargates, no longer +have tech requirements. 4. Zerg missions have been adjusted to give the player a starting Lair where they would only have Hatcheries. -5. Upgrades with a downside have had the downside removed, such as automated refineries costing more or tech reactors taking longer to build. -6. Unit collision within the vents in Enemy Within has been adjusted to allow larger units to travel through them without getting stuck in odd places. +5. Upgrades with a downside have had the downside removed, such as automated refineries costing more or tech reactors +taking longer to build. +6. Unit collision within the vents in Enemy Within has been adjusted to allow larger units to travel through them +without getting stuck in odd places. 7. Several vanilla bugs have been fixed. ## Which of my items can be in another player's world? -By default, any of StarCraft 2's items (specified above) can be in another player's world. See the -[Advanced YAML Guide](/tutorial/Archipelago/advanced_settings/en) -for more information on how to change this. +By default, any of StarCraft 2's items (specified above) can be in another player's world. +See the [Advanced YAML Guide](/tutorial/Archipelago/advanced_settings/en) for more information on how to change this. ## Unique Local Commands -The following commands are only available when using the Starcraft 2 Client to play with Archipelago. You can list them any time in the client with `/help`. +The following commands are only available when using the StarCraft 2 Client to play with Archipelago. +You can list them any time in the client with `/help`. -* `/download_data` Download the most recent release of the necessary files for playing SC2 with Archipelago. Will overwrite existing files +* `/download_data` Download the most recent release of the necessary files for playing SC2 with Archipelago. +Will overwrite existing files * `/difficulty [difficulty]` Overrides the difficulty set for the world. * Options: casual, normal, hard, brutal * `/game_speed [game_speed]` Overrides the game speed for the world * Options: default, slower, slow, normal, fast, faster * `/color [faction] [color]` Changes your color for one of your playable factions. * Faction options: raynor, kerrigan, primal, protoss, nova - * Color options: white, red, blue, teal, purple, yellow, orange, green, lightpink, violet, lightgrey, darkgreen, brown, lightgreen, darkgrey, pink, rainbow, random, default + * Color options: white, red, blue, teal, purple, yellow, orange, green, lightpink, violet, lightgrey, darkgreen, + brown, lightgreen, darkgrey, pink, rainbow, random, default * `/option [option_name] [option_value]` Sets an option normally controlled by your yaml after generation. * Run without arguments to list all options. - * Options pertain to automatic cutscene skipping, Kerrigan presence, Spear of Adun presence, starting resource amounts, controlling AI allies, etc. -* `/disable_mission_check` Disables the check to see if a mission is available to play. Meant for co-op runs where one player can play the next mission in a chain the other player is doing. -* `/play [mission_id]` Starts a Starcraft 2 mission based off of the mission_id provided + * Options pertain to automatic cutscene skipping, Kerrigan presence, Spear of Adun presence, starting resource + amounts, controlling AI allies, etc. +* `/disable_mission_check` Disables the check to see if a mission is available to play. +Meant for co-op runs where one player can play the next mission in a chain the other player is doing. +* `/play [mission_id]` Starts a StarCraft 2 mission based off of the mission_id provided * `/available` Get what missions are currently available to play * `/unfinished` Get what missions are currently available to play and have not had all locations checked * `/set_path [path]` Manually set the SC2 install directory (if the automatic detection fails) + +Note that the behavior of the command `/received` was modified in the StarCraft 2 client. +In the Common client of Archipelago, the command returns the list of items received in the reverse order they were +received. +In the StarCraft 2 client, the returned list will be divided by races (i.e., Any, Protoss, Terran, and Zerg). +Additionally, upgrades are grouped beneath their corresponding units or buildings. +A filter parameter can be provided, e.g., `/received Thor`, to limit the number of items shown. +Every item whose name, race, or group name contains the provided parameter will be shown. + +## Known issues + +- StarCraft 2 Archipelago does not support loading a saved game. +For this reason, it is recommended to play on a difficulty level lower than what you are normally comfortable with. +- StarCraft 2 Archipelago does not support the restart of a mission from the StarCraft 2 menu. +To restart a mission, use the StarCraft 2 Client. +- A crash report is often generated when a mission is closed. +This does not affect the game and can be ignored. diff --git a/worlds/sc2/docs/fr_Starcraft 2.md b/worlds/sc2/docs/fr_Starcraft 2.md index 4fcc8e689baa..092835c8e323 100644 --- a/worlds/sc2/docs/fr_Starcraft 2.md +++ b/worlds/sc2/docs/fr_Starcraft 2.md @@ -21,6 +21,14 @@ Les *items* sont trouvÊs en accomplissant du progrès dans les catÊgories suiv * RÊussir des dÊfis basÊs sur les succès du jeu de base, e.g. Êliminer tous les *Zerg* dans la mission *Devil's Playground* +Dans la nomenclature d'Archipelago, il s'agit des *locations* oÚ l'on peut trouver des *items*. +Pour chaque *location*, incluant le fait de terminer une mission, il y a des règles qui dÊfinissent les *items* +nÊcessaires pour y accÊder. +Ces règles ont ÊtÊ conçues en assumant que *StarCraft 2* est jouÊ à la difficultÊ *Brutal*. +Étant donnÊ que chaque *location* a ses propres règles, il est possible qu'un *item* nÊcessaire à la progression se +trouve dans une mission dont vous ne pouvez pas atteindre toutes les *locations* ou que vous ne pouvez pas terminer. +Cependant, il est toujours nÊcessaire de terminer une mission pour pouvoir accÊder à de nouvelles missions. + Ces catÊgories, outre la première, peuvent ÃĒtre dÊsactivÊes dans les options du jeu. Par exemple, vous pouvez dÊsactiver le fait d'obtenir des *items* lorsque des Êtapes importantes d'une mission sont accomplies. @@ -37,8 +45,13 @@ Archipelago*. ## Quel est le but de ce jeu quand il est *randomized*? -Le but est de rÊussir la mission finale dans la disposition des missions (e.g. *blitz*, *grid*, etc.). -Les choix faits dans le fichier *yaml* dÊfinissent la disposition des missions et comment elles sont mÊlangÊes. +Le but est de rÊussir la mission finale du *mission order* (e.g. *blitz*, *grid*, etc.). +Le fichier de configuration yaml permet de spÊcifier le *mission order*, lesquelles des quatre campagnes de +*StarCraft 2* peuvent ÃĒtre utilisÊes pour remplir le *mission order* et comment les missions sont distribuÊes dans le +*mission order*. +Étant donnÊ que les deux premières options dÊterminent le nombre de missions dans un monde de *StarCraft 2*, elles +peuvent ÃĒtre utilisÊes pour moduler le temps nÊcessaire pour terminer le monde. +Notez que les missions d'Êvolution de Heart of the Swarm ne sont pas incluses dans le *randomizer*. ## Quelles sont les modifications non alÊatoires comparativement à la version de base de *StarCraft 2* @@ -93,3 +106,20 @@ mission de la chaÃŽne qu'un autre joueur est en train d'entamer. l'accès à un *item* n'ont pas ÊtÊ accomplis. * `/set_path [path]` Permet de dÊfinir manuellement oÚ *StarCraft 2* est installÊ ce qui est pertinent seulement si la dÊtection automatique de cette dernière Êchoue. + +Notez que le comportement de la commande `/received` a ÊtÊ modifiÊ dans le client *StarCraft 2*. +Dans le client *Common* d'Archipelago, elle renvoie la liste des *items* reçus dans l'ordre inverse de leur rÊception. +Dans le client de *StarCraft 2*, la liste est divisÊe par races (i.e., *Any*, *Protoss*, *Terran*, et *Zerg*). +De plus, les amÊliorations sont regroupÊes sous leurs unitÊs/bÃĸtiments correspondants. +Un paramètre de filtrage peut aussi ÃĒtre fourni, e.g., `/received Thor`, pour limiter le nombre d'*items* affichÊs. +Tous les *items* dont le nom, la race ou le nom de groupe contient le paramètre fourni seront affichÊs. + +## Problèmes connus + +- *StarCraft 2 Archipelago* ne supporte pas le chargement d'une sauvegarde. +Pour cette raison, il est recommandÊ de jouer à un niveau de difficultÊ infÊrieur à celui avec lequel vous ÃĒtes +normalement à l'aise. +- *StarCraft 2 Archipelago* ne supporte pas le redÊmarrage d'une mission depuis le menu de *StarCraft 2*. +Pour redÊmarrer une mission, utilisez le client de *StarCraft 2 Archipelago*. +- Un rapport d'erreur est souvent gÊnÊrÊ lorsqu'une mission est fermÊe. +Cela n'affecte pas le jeu et peut ÃĒtre ignorÊ. diff --git a/worlds/sc2/docs/setup_en.md b/worlds/sc2/docs/setup_en.md index 991ed57e8741..5b378873f4a3 100644 --- a/worlds/sc2/docs/setup_en.md +++ b/worlds/sc2/docs/setup_en.md @@ -1,30 +1,39 @@ # StarCraft 2 Randomizer Setup Guide -This guide contains instructions on how to install and troubleshoot the StarCraft 2 Archipelago client, as well as where -to obtain a config file for StarCraft 2. +This guide contains instructions on how to install and troubleshoot the StarCraft 2 Archipelago client, as well as +where to obtain a config file for StarCraft 2. ## Required Software - [StarCraft 2](https://starcraft2.com/en-us/) + - While StarCraft 2 Archipelago supports all four campaigns, they are not mandatory to play the randomizer. + If you do not own certain campaigns, you only need to exclude them in the configuration file of your world. - [The most recent Archipelago release](https://github.com/ArchipelagoMW/Archipelago/releases) ## How do I install this randomizer? -1. Install StarCraft 2 and Archipelago using the links above. The StarCraft 2 Archipelago client is downloaded by the Archipelago installer. +1. Install StarCraft 2 and Archipelago using the links above. The StarCraft 2 Archipelago client is downloaded by the +Archipelago installer. - Linux users should also follow the instructions found at the bottom of this page (["Running in Linux"](#running-in-linux)). 2. Run ArchipelagoStarcraft2Client.exe. - - macOS users should instead follow the instructions found at ["Running in macOS"](#running-in-macos) for this step only. -3. Type the command `/download_data`. This will automatically install the Maps and Data files from the third link above. + - macOS users should instead follow the instructions found at ["Running in macOS"](#running-in-macos) for this step + only. +3. Type the command `/download_data`. +This will automatically install the Maps and Data files needed to play StarCraft 2 Archipelago. ## Where do I get a config file (aka "YAML") for this game? -Yaml files are configuration files that tell Archipelago how you'd like your game to be randomized, even if you're only using default options. +Yaml files are configuration files that tell Archipelago how you'd like your game to be randomized, even if you're only +using default options. When you're setting up a multiworld, every world needs its own yaml file. There are three basic ways to get a yaml: -* You can go to the [Player Options](/games/Starcraft%202/player-options) page, set your options in the GUI, and export the yaml. -* You can generate a template, either by downloading it from the [Player Options](/games/Starcraft%202/player-options) page or by generating it from the Launcher (ArchipelagoLauncher.exe). The template includes descriptions of each option, you just have to edit it in your text editor of choice. +* You can go to the [Player Options](/games/Starcraft%202/player-options) page, set your options in the GUI, and export +the yaml. +* You can generate a template, either by downloading it from the [Player Options](/games/Starcraft%202/player-options) +page or by generating it from the Launcher (`ArchipelagoLauncher.exe`). +The template includes descriptions of each option, you just have to edit it in your text editor of choice. * You can ask someone else to share their yaml to use it for yourself or adjust it as you wish. Remember the name you enter in the options page or in the yaml file, you'll need it to connect later! @@ -36,15 +45,31 @@ Check out [Creating a YAML](/tutorial/Archipelago/setup/en#creating-a-yaml) for The simplest way to check is to use the website [validator](/check). -You can also test it by attempting to generate a multiworld with your yaml. Save your yaml to the Players/ folder within your Archipelago installation and run ArchipelagoGenerate.exe. You should see a new .zip file within the output/ folder of your Archipelago installation if things worked correctly. It's advisable to run ArchipelagoGenerate through a terminal so that you can see the printout, which will include any errors and the precise output file name if it's successful. If you don't like terminals, you can also check the log file in the logs/ folder. +You can also test it by attempting to generate a multiworld with your yaml. Save your yaml to the `Players/` folder +within your Archipelago installation and run `ArchipelagoGenerate.exe`. +You should see a new `.zip` file within the `output/` folder of your Archipelago installation if things worked +correctly. +It's advisable to run `ArchipelagoGenerate.exe` through a terminal so that you can see the printout, which will include +any errors and the precise output file name if it's successful. +If you don't like terminals, you can also check the log file in the `logs/` folder. #### What does Progression Balancing do? -For Starcraft 2, not much. It's an Archipelago-wide option meant to shift required items earlier in the playthrough, but Starcraft 2 tends to be much more open in what items you can use. As such, this adjustment isn't very noticeable. It can also increase generation times, so we generally recommend turning it off. +For StarCraft 2, this option doesn't have much impact. +It is an Archipelago option designed to balance world progression by swapping items in spheres. +If the Progression Balancing of one world is greater than that of others, items in that world are more likely to be +obtained early, and vice versa if its value is smaller. +However, StarCraft 2 is more permissive regarding the items that can be used to progress, so this option has little +influence on progression in a StarCraft 2 world. +StarCraft 2. +Since this option increases the time required to generate a MultiWorld, we recommend deactivating it (i.e., setting it +to zero) for a StarCraft 2 world. #### How do I specify items in a list, like in excluded items? -You can look up the syntax for yaml collections in the [YAML specification](https://yaml.org/spec/1.2.2/#21-collections). For lists, every item goes on its own line, started with a hyphen: +You can look up the syntax for yaml collections in the +[YAML specification](https://yaml.org/spec/1.2.2/#21-collections). +For lists, every item goes on its own line, started with a hyphen: ```yaml excluded_items: @@ -52,11 +77,13 @@ excluded_items: - Drop-Pods (Kerrigan Tier 7) ``` -An empty list is just a matching pair of square brackets: `[]`. That's the default value in the template, which should let you know to use this syntax. +An empty list is just a matching pair of square brackets: `[]`. +That's the default value in the template, which should let you know to use this syntax. #### How do I specify items for the starting inventory? -The starting inventory is a YAML mapping rather than a list, which associates an item with the amount you start with. The syntax looks like the item name, followed by a colon, then a whitespace character, and then the value: +The starting inventory is a YAML mapping rather than a list, which associates an item with the amount you start with. +The syntax looks like the item name, followed by a colon, then a whitespace character, and then the value: ```yaml start_inventory: @@ -64,37 +91,61 @@ start_inventory: Additional Starting Vespene: 5 ``` -An empty mapping is just a matching pair of curly braces: `{}`. That's the default value in the template, which should let you know to use this syntax. +An empty mapping is just a matching pair of curly braces: `{}`. +That's the default value in the template, which should let you know to use this syntax. #### How do I know the exact names of items and locations? -The [*datapackage*](/datapackage) page of the Archipelago website provides a complete list of the items and locations for each game that it currently supports, including StarCraft 2. +The [*datapackage*](/datapackage) page of the Archipelago website provides a complete list of the items and locations +for each game that it currently supports, including StarCraft 2. -You can also look up a complete list of the item names in the [Icon Repository](https://matthewmarinets.github.io/ap_sc2_icons/) page. +You can also look up a complete list of the item names in the +[Icon Repository](https://matthewmarinets.github.io/ap_sc2_icons/) page. This page also contains supplementary information of each item. -However, the items shown in that page might differ from those shown in the datapackage page of Archipelago since the former is generated, most of the time, from beta versions of StarCraft 2 Archipelago undergoing development. +However, the items shown in that page might differ from those shown in the datapackage page of Archipelago since the +former is generated, most of the time, from beta versions of StarCraft 2 Archipelago undergoing development. -As for the locations, you can see all the locations associated to a mission in your world by placing your cursor over the mission in the 'StarCraft 2 Launcher' tab in the client. +As for the locations, you can see all the locations associated to a mission in your world by placing your cursor over +the mission in the 'StarCraft 2 Launcher' tab in the client. ## How do I join a MultiWorld game? 1. Run ArchipelagoStarcraft2Client.exe. - - macOS users should instead follow the instructions found at ["Running in macOS"](#running-in-macos) for this step only. + - macOS users should instead follow the instructions found at ["Running in macOS"](#running-in-macos) for this step + only. 2. Type `/connect [server ip]`. - If you're running through the website, the server IP should be displayed near the top of the room page. 3. Type your slot name from your YAML when prompted. 4. If the server has a password, enter that when prompted. -5. Once connected, switch to the 'StarCraft 2 Launcher' tab in the client. There, you can see all the missions in your world. Unreachable missions will have greyed-out text. Just click on an available mission to start it! +5. Once connected, switch to the 'StarCraft 2 Launcher' tab in the client. There, you can see all the missions in your +world. +Unreachable missions will have greyed-out text. Just click on an available mission to start it! ## The game isn't launching when I try to start a mission. -First, check the log file for issues (stored at `[Archipelago Directory]/logs/SC2Client.txt`). If you can't figure out -the log file, visit our [Discord's](https://discord.com/invite/8Z65BR2) tech-support channel for help. Please include a -specific description of what's going wrong and attach your log file to your message. +First, check the log file for issues (stored at `[Archipelago Directory]/logs/SC2Client.txt`). +If you can't figure out the log file, visit our [Discord's](https://discord.com/invite/8Z65BR2) tech-support channel +for help. +Please include a specific description of what's going wrong and attach your log file to your message. + +## My keyboard shortcuts profile is not available when I play *StarCraft 2 Archipelago*. + +For your keyboard shortcuts profile to work in Archipelago, you need to copy your shortcuts file from +`Documents/StarCraft II/Accounts/######/Hotkeys` to `Documents/StarCraft II/Hotkeys`. +If the folder doesn't exist, create it. + +To enable StarCraft 2 Archipelago to use your profile, follow these steps: +1. Launch StarCraft 2 via the Battle.net application. +2. Change your hotkey profile to the standard mode and accept. +3. Select your custom profile and accept. + +You will only need to do this once. ## Running in macOS -To run StarCraft 2 through Archipelago in macOS, you will need to run the client via source as seen here: [macOS Guide](/tutorial/Archipelago/mac/en). Note: to launch the client, you will need to run the command `python3 Starcraft2Client.py`. +To run StarCraft 2 through Archipelago in macOS, you will need to run the client via source as seen here: +[macOS Guide](/tutorial/Archipelago/mac/en). +Note: to launch the client, you will need to run the command `python3 Starcraft2Client.py`. ## Running in Linux @@ -102,9 +153,9 @@ To run StarCraft 2 through Archipelago in Linux, you will need to install the ga of the Archipelago client. Make sure you have StarCraft 2 installed using Wine, and that you have followed the -[installation procedures](#how-do-i-install-this-randomizer?) to add the Archipelago maps to the correct location. You will not -need to copy the .dll files. If you're having trouble installing or running StarCraft 2 on Linux, I recommend using the -Lutris installer. +[installation procedures](#how-do-i-install-this-randomizer?) to add the Archipelago maps to the correct location. +You will not need to copy the `.dll` files. +If you're having trouble installing or running StarCraft 2 on Linux, it is recommend to use the Lutris installer. Copy the following into a .sh file, replacing the values of **WINE** and **SC2PATH** variables with the relevant locations, as well as setting **PATH_TO_ARCHIPELAGO** to the directory containing the AppImage if it is not in the same @@ -139,5 +190,5 @@ below, replacing **${ID}** with the numerical ID. lutris lutris:rungameid/${ID} --output-script sc2.sh This will get all of the relevant environment variables Lutris sets to run StarCraft 2 in a script, including the path -to the Wine binary that Lutris uses. You can then remove the line that runs the Battle.Net launcher and copy the code -above into the existing script. +to the Wine binary that Lutris uses. +You can then remove the line that runs the Battle.Net launcher and copy the code above into the existing script. diff --git a/worlds/sc2/docs/setup_fr.md b/worlds/sc2/docs/setup_fr.md index bb6c35bce1c7..d9b754572a66 100644 --- a/worlds/sc2/docs/setup_fr.md +++ b/worlds/sc2/docs/setup_fr.md @@ -6,6 +6,10 @@ indications pour obtenir un fichier de configuration de *StarCraft 2 Archipelago ## Logiciels requis - [*StarCraft 2*](https://starcraft2.com/en-us/) + - Bien que *StarCraft 2 Archipelago* supporte les quatre campagnes, elles ne sont pas obligatoires pour jouer au + *randomizer*. + Si vous ne possÊdez pas certaines campagnes, il vous suffit de les exclure dans le fichier de configuration de + votre monde. - [La version la plus rÊcente d'Archipelago](https://github.com/ArchipelagoMW/Archipelago/releases) ## Comment est-ce que j'installe ce *randomizer*? @@ -41,10 +45,6 @@ prÊfÊrences. Prenez soin de vous rappeler du nom de joueur que vous avez inscrit dans la page à options ou dans le fichier *yaml* puisque vous en aurez besoin pour vous connecter à votre monde! -Notez que la page *Player options* ne permet pas de dÊfinir certaines des options avancÊes, e.g., l'exclusion de -certaines unitÊs ou de leurs amÊliorations. -Utilisez la page [*Weighted Options*](/weighted-options) pour avoir accès à ces dernières. - Si vous dÊsirez des informations et/ou instructions gÊnÊrales sur l'utilisation d'un fichier *yaml* pour Archipelago, veuillez consulter [*Creating a YAML*](/tutorial/Archipelago/setup/en#creating-a-yaml). @@ -66,15 +66,15 @@ dans le dossier `logs/`. #### À quoi sert l'option *Progression Balancing*? -Pour *Starcraft 2*, cette option ne fait pas grand-chose. +Pour *StarCraft 2*, cette option ne fait pas grand-chose. Il s'agit d'une option d'Archipelago permettant d'Êquilibrer la progression des mondes en interchangeant les *items* dans les *spheres*. Si le *Progression Balancing* d'un monde est plus grand que ceux des autres, les *items* de progression de ce monde ont plus de chance d'ÃĒtre obtenus tôt et vice-versa si sa valeur est plus petite que celle des autres mondes. -Cependant, *Starcraft 2* est beaucoup plus permissif en termes d'*items* qui permettent de progresser, ce rÊglage à +Cependant, *StarCraft 2* est beaucoup plus permissif en termes d'*items* qui permettent de progresser, ce rÊglage à donc peu d'influence sur la progression dans *StarCraft 2*. Vu qu'il augmente le temps de gÊnÊration d'un *MultiWorld*, nous recommandons de le dÊsactiver, c-à-d le dÊfinir à -zÊro, pour *Starcraft 2*. +zÊro, pour *StarCraft 2*. #### Comment est-ce que je dÊfinis une liste d'*items*, e.g. pour l'option *excluded items*? @@ -122,6 +122,10 @@ Cependant, l'information prÊsente dans cette dernière peut diffÊrer de celle puisqu'elle est gÊnÊrÊe, habituellement, à partir de la version en dÊveloppement de *StarCraft 2 Archipelago* qui n'ont peut-ÃĒtre pas encore ÊtÊ inclus dans le site web d'Archipelago. +Pour ce qui concerne les *locations*, vous pouvez consulter tous les *locations* associÊs à une mission dans votre +monde en plaçant votre curseur sur la case correspondante dans l'onglet *StarCraft 2 Launcher* du client. + + ## Comment est-ce que je peux joindre un *MultiWorld*? 1. ExÊcuter `ArchipelagoStarcraft2Client.exe`. @@ -152,7 +156,7 @@ qui se trouve dans `Documents/StarCraft II/Accounts/######/Hotkeys` vers `Docume Si le dossier n'existe pas, crÊez-le. Pour que *StarCraft 2 Archipelago* utilise votre profil, suivez les Êtapes suivantes. -Lancez *Starcraft 2* via l'application *Battle.net*. +Lancez *StarCraft 2* via l'application *Battle.net*. Changez votre profil de raccourcis clavier pour le mode standard et acceptez, puis sÊlectionnez votre profil personnalisÊ et acceptez. Vous n'aurez besoin de faire ça qu'une seule fois. From 5021997df0997f0bd1151c6e5e523c38c4eafdac Mon Sep 17 00:00:00 2001 From: qwint Date: Sun, 8 Sep 2024 11:13:01 -0500 Subject: [PATCH 017/212] Launcher: explicitly handle cli arguments to be passed to the Component (#3714) * adds handling for the `--` cli arg by having launcher capture, ignore, and pass through all of the values after it, while only processing (and validating) the values before it updates text client and its components to allow for args to be passed through, captured in run_as_textclient, and used in parse_args if present * Update worlds/LauncherComponents.py Co-authored-by: Aaron Wagener * explicitly using default args for parse_args when launched directly * revert manual arg parsing by request * Update CommonClient.py * Update LauncherComponents.py * :) --------- Co-authored-by: Aaron Wagener Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- CommonClient.py | 4 ++-- Launcher.py | 5 ++++- worlds/LauncherComponents.py | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index 7f91172acf6c..122de476feca 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -1035,7 +1035,7 @@ async def main(args): parser = get_base_parser(description="Gameless Archipelago Client, for text interfacing.") parser.add_argument('--name', default=None, help="Slot Name to connect as.") parser.add_argument("url", nargs="?", help="Archipelago connection url") - args = parser.parse_args(args if args else None) # this is necessary as long as CommonClient itself is launchable + args = parser.parse_args(args) if args.url: url = urllib.parse.urlparse(args.url) @@ -1053,4 +1053,4 @@ async def main(args): if __name__ == '__main__': logging.getLogger().setLevel(logging.INFO) # force log-level to work around log level resetting to WARNING - run_as_textclient() + run_as_textclient(*sys.argv[1:]) # default value for parse_args diff --git a/Launcher.py b/Launcher.py index 97903e2ad103..42f93547cc9d 100644 --- a/Launcher.py +++ b/Launcher.py @@ -401,7 +401,10 @@ def main(args: Optional[Union[argparse.Namespace, dict]] = None): init_logging('Launcher') Utils.freeze_support() multiprocessing.set_start_method("spawn") # if launched process uses kivy, fork won't work - parser = argparse.ArgumentParser(description='Archipelago Launcher') + parser = argparse.ArgumentParser( + description='Archipelago Launcher', + usage="[-h] [--update_settings] [Patch|Game|Component] [-- component args here]" + ) run_group = parser.add_argument_group("Run") run_group.add_argument("--update_settings", action="store_true", help="Update host.yaml and exit.") diff --git a/worlds/LauncherComponents.py b/worlds/LauncherComponents.py index 4c64642abacb..fe6e44bb308e 100644 --- a/worlds/LauncherComponents.py +++ b/worlds/LauncherComponents.py @@ -61,7 +61,7 @@ def __repr__(self): processes = weakref.WeakSet() -def launch_subprocess(func: Callable, name: str = None, args: Tuple[str, ...] = ()): +def launch_subprocess(func: Callable, name: str = None, args: Tuple[str, ...] = ()) -> None: global processes import multiprocessing process = multiprocessing.Process(target=func, name=name, args=args) @@ -85,7 +85,7 @@ def __call__(self, path: str) -> bool: def launch_textclient(*args): import CommonClient - launch_subprocess(CommonClient.run_as_textclient, "TextClient", args) + launch_subprocess(CommonClient.run_as_textclient, name="TextClient", args=args) def _install_apworld(apworld_src: str = "") -> Optional[Tuple[pathlib.Path, pathlib.Path]]: From e4a5ed1cc45b4d58ba4ebdf095e5a990581bcee3 Mon Sep 17 00:00:00 2001 From: qwint Date: Sun, 8 Sep 2024 11:40:32 -0500 Subject: [PATCH 018/212] CommonClient: Explicitly parse url arg as an archipelago:// url (#3568) * Launcher "Text Client" --connect archipelago.gg:38281 should work, it doesn't, this fixes that * more explicit handling of expected values * removing launcher updates meaning this pr cannot stand alone but will not have merge issues later * add parser failure when an invalid url is found --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- CommonClient.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index 122de476feca..911de4226dc3 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -1039,11 +1039,14 @@ async def main(args): if args.url: url = urllib.parse.urlparse(args.url) - args.connect = url.netloc - if url.username: - args.name = urllib.parse.unquote(url.username) - if url.password: - args.password = urllib.parse.unquote(url.password) + if url.scheme == "archipelago": + args.connect = url.netloc + if url.username: + args.name = urllib.parse.unquote(url.username) + if url.password: + args.password = urllib.parse.unquote(url.password) + else: + parser.error(f"bad url, found {args.url}, expected url in form of archipelago://archipelago.gg:38281") colorama.init() From cabfef669a74936000975d911105075b51a79595 Mon Sep 17 00:00:00 2001 From: Jouramie <16137441+Jouramie@users.noreply.github.com> Date: Sun, 8 Sep 2024 12:46:58 -0400 Subject: [PATCH 019/212] Stardew Valley: Fix masteries logic so it requires levels and tools (#3640) * fix and add test * add test to make sure we check xp can be earned * fix python 3.8 test my god I hope it gets removed soon * fixing some review comments * curse you monstersanity * move month rule to has_level vanilla, so next level is in logic once the previous item is received * use progressive masteries to skills in test alsanity * rename reset_collection_state * add more tests around skill and masteries rules * progressive level issue --------- Co-authored-by: agilbert1412 --- worlds/stardew_valley/logic/skill_logic.py | 72 +++++++------- worlds/stardew_valley/rules.py | 12 ++- worlds/stardew_valley/test/__init__.py | 8 +- .../stardew_valley/test/rules/TestSkills.py | 97 ++++++++++++++++--- 4 files changed, 137 insertions(+), 52 deletions(-) diff --git a/worlds/stardew_valley/logic/skill_logic.py b/worlds/stardew_valley/logic/skill_logic.py index 4d5567302afe..17fabca28d95 100644 --- a/worlds/stardew_valley/logic/skill_logic.py +++ b/worlds/stardew_valley/logic/skill_logic.py @@ -15,13 +15,13 @@ from ..data.harvest import HarvestCropSource from ..mods.logic.magic_logic import MagicLogicMixin from ..mods.logic.mod_skills_levels import get_mod_skill_levels -from ..stardew_rule import StardewRule, True_, False_, true_, And +from ..stardew_rule import StardewRule, true_, True_, False_ from ..strings.craftable_names import Fishing from ..strings.machine_names import Machine from ..strings.performance_names import Performance from ..strings.quality_names import ForageQuality from ..strings.region_names import Region -from ..strings.skill_names import Skill, all_mod_skills +from ..strings.skill_names import Skill, all_mod_skills, all_vanilla_skills from ..strings.tool_names import ToolMaterial, Tool from ..strings.wallet_item_names import Wallet @@ -43,22 +43,17 @@ def can_earn_level(self, skill: str, level: int) -> StardewRule: if level <= 0: return True_() - tool_level = (level - 1) // 2 + tool_level = min(4, (level - 1) // 2) tool_material = ToolMaterial.tiers[tool_level] - months = max(1, level - 1) - months_rule = self.logic.time.has_lived_months(months) - if self.options.skill_progression != options.SkillProgression.option_vanilla: - previous_level_rule = self.logic.skill.has_level(skill, level - 1) - else: - previous_level_rule = true_ + previous_level_rule = self.logic.skill.has_previous_level(skill, level) if skill == Skill.fishing: xp_rule = self.logic.tool.has_fishing_rod(max(tool_level, 3)) elif skill == Skill.farming: xp_rule = self.can_get_farming_xp & self.logic.tool.has_tool(Tool.hoe, tool_material) & self.logic.tool.can_water(tool_level) elif skill == Skill.foraging: - xp_rule = (self.can_get_foraging_xp & self.logic.tool.has_tool(Tool.axe, tool_material)) |\ + xp_rule = (self.can_get_foraging_xp & self.logic.tool.has_tool(Tool.axe, tool_material)) | \ self.logic.magic.can_use_clear_debris_instead_of_tool_level(tool_level) elif skill == Skill.mining: xp_rule = self.logic.tool.has_tool(Tool.pickaxe, tool_material) | \ @@ -70,22 +65,34 @@ def can_earn_level(self, skill: str, level: int) -> StardewRule: xp_rule = xp_rule & self.logic.region.can_reach(Region.mines_floor_5) elif skill in all_mod_skills: # Ideal solution would be to add a logic registry, but I'm too lazy. - return previous_level_rule & months_rule & self.logic.mod.skill.can_earn_mod_skill_level(skill, level) + return previous_level_rule & self.logic.mod.skill.can_earn_mod_skill_level(skill, level) else: raise Exception(f"Unknown skill: {skill}") - return previous_level_rule & months_rule & xp_rule + return previous_level_rule & xp_rule # Should be cached def has_level(self, skill: str, level: int) -> StardewRule: - if level <= 0: - return True_() + assert level >= 0, f"There is no level before level 0." + if level == 0: + return true_ if self.options.skill_progression == options.SkillProgression.option_vanilla: return self.logic.skill.can_earn_level(skill, level) return self.logic.received(f"{skill} Level", level) + def has_previous_level(self, skill: str, level: int) -> StardewRule: + assert level > 0, f"There is no level before level 0." + if level == 1: + return true_ + + if self.options.skill_progression == options.SkillProgression.option_vanilla: + months = max(1, level - 1) + return self.logic.time.has_lived_months(months) + + return self.logic.received(f"{skill} Level", level - 1) + @cache_self1 def has_farming_level(self, level: int) -> StardewRule: return self.logic.skill.has_level(Skill.farming, level) @@ -108,18 +115,9 @@ def has_total_level(self, level: int, allow_modded_skills: bool = False) -> Star return rule_with_fishing return self.logic.time.has_lived_months(months_with_4_skills) | rule_with_fishing - def has_all_skills_maxed(self, included_modded_skills: bool = True) -> StardewRule: - if self.options.skill_progression == options.SkillProgression.option_vanilla: - return self.has_total_level(50) - skills_items = vanilla_skill_items - if included_modded_skills: - skills_items += get_mod_skill_levels(self.options.mods) - return And(*[self.logic.received(skill, 10) for skill in skills_items]) - - def can_enter_mastery_cave(self) -> StardewRule: - if self.options.skill_progression == options.SkillProgression.option_progressive_with_masteries: - return self.logic.received(Wallet.mastery_of_the_five_ways) - return self.has_all_skills_maxed() + def has_any_skills_maxed(self, included_modded_skills: bool = True) -> StardewRule: + skills = self.content.skills.keys() if included_modded_skills else sorted(all_vanilla_skills) + return self.logic.or_(*(self.logic.skill.has_level(skill, 10) for skill in skills)) @cached_property def can_get_farming_xp(self) -> StardewRule: @@ -197,13 +195,19 @@ def can_forage_quality(self, quality: str) -> StardewRule: return self.has_level(Skill.foraging, 9) return False_() - @cached_property - def can_earn_mastery_experience(self) -> StardewRule: - if self.options.skill_progression != options.SkillProgression.option_progressive_with_masteries: - return self.has_all_skills_maxed() & self.logic.time.has_lived_max_months - return self.logic.time.has_lived_max_months + def can_earn_mastery(self, skill: str) -> StardewRule: + # Checking for level 11, so it includes having level 10 and being able to earn xp. + return self.logic.skill.can_earn_level(skill, 11) & self.logic.region.can_reach(Region.mastery_cave) def has_mastery(self, skill: str) -> StardewRule: - if self.options.skill_progression != options.SkillProgression.option_progressive_with_masteries: - return self.can_earn_mastery_experience and self.logic.region.can_reach(Region.mastery_cave) - return self.logic.received(f"{skill} Mastery") + if self.options.skill_progression == options.SkillProgression.option_progressive_with_masteries: + return self.logic.received(f"{skill} Mastery") + + return self.logic.skill.can_earn_mastery(skill) + + @cached_property + def can_enter_mastery_cave(self) -> StardewRule: + if self.options.skill_progression == options.SkillProgression.option_progressive_with_masteries: + return self.logic.received(Wallet.mastery_of_the_five_ways) + + return self.has_any_skills_maxed(included_modded_skills=False) diff --git a/worlds/stardew_valley/rules.py b/worlds/stardew_valley/rules.py index 89b1cf87c3c1..e9bdd8c25bbb 100644 --- a/worlds/stardew_valley/rules.py +++ b/worlds/stardew_valley/rules.py @@ -154,7 +154,7 @@ def set_bundle_rules(bundle_rooms: List[BundleRoom], logic: StardewLogic, multiw extra_raccoons = extra_raccoons + num bundle_rules = logic.received(CommunityUpgrade.raccoon, extra_raccoons) & bundle_rules if num > 1: - previous_bundle_name = f"Raccoon Request {num-1}" + previous_bundle_name = f"Raccoon Request {num - 1}" bundle_rules = bundle_rules & logic.region.can_reach_location(previous_bundle_name) room_rules.append(bundle_rules) MultiWorldRules.set_rule(location, bundle_rules) @@ -168,13 +168,16 @@ def set_skills_rules(logic: StardewLogic, multiworld, player, world_options: Sta mods = world_options.mods if world_options.skill_progression == SkillProgression.option_vanilla: return + for i in range(1, 11): set_vanilla_skill_rule_for_level(logic, multiworld, player, i) set_modded_skill_rule_for_level(logic, multiworld, player, mods, i) - if world_options.skill_progression != SkillProgression.option_progressive_with_masteries: + + if world_options.skill_progression == SkillProgression.option_progressive: return + for skill in [Skill.farming, Skill.fishing, Skill.foraging, Skill.mining, Skill.combat]: - MultiWorldRules.set_rule(multiworld.get_location(f"{skill} Mastery", player), logic.skill.can_earn_mastery_experience) + MultiWorldRules.set_rule(multiworld.get_location(f"{skill} Mastery", player), logic.skill.can_earn_mastery(skill)) def set_vanilla_skill_rule_for_level(logic: StardewLogic, multiworld, player, level: int): @@ -256,8 +259,7 @@ def set_entrance_rules(logic: StardewLogic, multiworld, player, world_options: S set_entrance_rule(multiworld, player, LogicEntrance.farmhouse_cooking, logic.cooking.can_cook_in_kitchen) set_entrance_rule(multiworld, player, LogicEntrance.shipping, logic.shipping.can_use_shipping_bin) set_entrance_rule(multiworld, player, LogicEntrance.watch_queen_of_sauce, logic.action.can_watch(Channel.queen_of_sauce)) - set_entrance_rule(multiworld, player, Entrance.forest_to_mastery_cave, logic.skill.can_enter_mastery_cave()) - set_entrance_rule(multiworld, player, Entrance.forest_to_mastery_cave, logic.skill.can_enter_mastery_cave()) + set_entrance_rule(multiworld, player, Entrance.forest_to_mastery_cave, logic.skill.can_enter_mastery_cave) set_entrance_rule(multiworld, player, LogicEntrance.buy_experience_books, logic.time.has_lived_months(2)) set_entrance_rule(multiworld, player, LogicEntrance.buy_year1_books, logic.time.has_year_two) set_entrance_rule(multiworld, player, LogicEntrance.buy_year3_books, logic.time.has_year_three) diff --git a/worlds/stardew_valley/test/__init__.py b/worlds/stardew_valley/test/__init__.py index 4dee0ebf6d66..e7278cba2800 100644 --- a/worlds/stardew_valley/test/__init__.py +++ b/worlds/stardew_valley/test/__init__.py @@ -85,7 +85,7 @@ def allsanity_no_mods_6_x_x(): options.QuestLocations.internal_name: 56, options.SeasonRandomization.internal_name: options.SeasonRandomization.option_randomized, options.Shipsanity.internal_name: options.Shipsanity.option_everything, - options.SkillProgression.internal_name: options.SkillProgression.option_progressive, + options.SkillProgression.internal_name: options.SkillProgression.option_progressive_with_masteries, options.SpecialOrderLocations.internal_name: options.SpecialOrderLocations.option_board_qi, options.ToolProgression.internal_name: options.ToolProgression.option_progressive, options.TrapItems.internal_name: options.TrapItems.option_nightmare, @@ -310,6 +310,12 @@ def create_item(self, item: str) -> StardewItem: self.multiworld.worlds[self.player].total_progression_items -= 1 return created_item + def remove_one_by_name(self, item: str) -> None: + self.remove(self.create_item(item)) + + def reset_collection_state(self): + self.multiworld.state = self.original_state.copy() + pre_generated_worlds = {} diff --git a/worlds/stardew_valley/test/rules/TestSkills.py b/worlds/stardew_valley/test/rules/TestSkills.py index 1c6874f31529..77adade886dc 100644 --- a/worlds/stardew_valley/test/rules/TestSkills.py +++ b/worlds/stardew_valley/test/rules/TestSkills.py @@ -1,23 +1,30 @@ -from ... import HasProgressionPercent +from ... import HasProgressionPercent, StardewLogic from ...options import ToolProgression, SkillProgression, Mods -from ...strings.skill_names import all_skills +from ...strings.skill_names import all_skills, all_vanilla_skills, Skill from ...test import SVTestBase -class TestVanillaSkillLogicSimplification(SVTestBase): +class TestSkillProgressionVanilla(SVTestBase): options = { SkillProgression.internal_name: SkillProgression.option_vanilla, ToolProgression.internal_name: ToolProgression.option_progressive, } def test_skill_logic_has_level_only_uses_one_has_progression_percent(self): - rule = self.multiworld.worlds[1].logic.skill.has_level("Farming", 8) - self.assertEqual(1, sum(1 for i in rule.current_rules if type(i) == HasProgressionPercent)) + rule = self.multiworld.worlds[1].logic.skill.has_level(Skill.farming, 8) + self.assertEqual(1, sum(1 for i in rule.current_rules if type(i) is HasProgressionPercent)) + def test_has_mastery_requires_month_equivalent_to_10_levels(self): + logic: StardewLogic = self.multiworld.worlds[1].logic + rule = logic.skill.has_mastery(Skill.farming) + time_rule = logic.time.has_lived_months(10) -class TestAllSkillsRequirePrevious(SVTestBase): + self.assertIn(time_rule, rule.current_rules) + + +class TestSkillProgressionProgressive(SVTestBase): options = { - SkillProgression.internal_name: SkillProgression.option_progressive_with_masteries, + SkillProgression.internal_name: SkillProgression.option_progressive, Mods.internal_name: frozenset(Mods.valid_keys), } @@ -25,16 +32,82 @@ def test_all_skill_levels_require_previous_level(self): for skill in all_skills: self.collect_everything() self.remove_by_name(f"{skill} Level") + for level in range(1, 11): location_name = f"Level {level} {skill}" + location = self.multiworld.get_location(location_name, self.player) + with self.subTest(location_name): - can_reach = self.can_reach_location(location_name) if level > 1: - self.assertFalse(can_reach) + self.assert_reach_location_false(location, self.multiworld.state) self.collect(f"{skill} Level") - can_reach = self.can_reach_location(location_name) - self.assertTrue(can_reach) - self.multiworld.state = self.original_state.copy() + self.assert_reach_location_true(location, self.multiworld.state) + + self.reset_collection_state() + + def test_has_level_requires_exact_amount_of_levels(self): + logic: StardewLogic = self.multiworld.worlds[1].logic + rule = logic.skill.has_level(Skill.farming, 8) + level_rule = logic.received("Farming Level", 8) + + self.assertEqual(level_rule, rule) + + def test_has_previous_level_requires_one_less_level_than_requested(self): + logic: StardewLogic = self.multiworld.worlds[1].logic + rule = logic.skill.has_previous_level(Skill.farming, 8) + level_rule = logic.received("Farming Level", 7) + + self.assertEqual(level_rule, rule) + + def test_has_mastery_requires_10_levels(self): + logic: StardewLogic = self.multiworld.worlds[1].logic + rule = logic.skill.has_mastery(Skill.farming) + level_rule = logic.received("Farming Level", 10) + + self.assertIn(level_rule, rule.current_rules) + + +class TestSkillProgressionProgressiveWithMasteryWithoutMods(SVTestBase): + options = { + SkillProgression.internal_name: SkillProgression.option_progressive_with_masteries, + ToolProgression.internal_name: ToolProgression.option_progressive, + Mods.internal_name: frozenset(), + } + + def test_has_mastery_requires_the_item(self): + logic: StardewLogic = self.multiworld.worlds[1].logic + rule = logic.skill.has_mastery(Skill.farming) + received_mastery = logic.received("Farming Mastery") + + self.assertEqual(received_mastery, rule) + + def test_given_all_levels_when_can_earn_mastery_then_can_earn_mastery(self): + self.collect_everything() + + for skill in all_vanilla_skills: + with self.subTest(skill): + location = self.multiworld.get_location(f"{skill} Mastery", self.player) + self.assert_reach_location_true(location, self.multiworld.state) + + self.reset_collection_state() + + def test_given_one_level_missing_when_can_earn_mastery_then_cannot_earn_mastery(self): + for skill in all_vanilla_skills: + with self.subTest(skill): + self.collect_everything() + self.remove_one_by_name(f"{skill} Level") + + location = self.multiworld.get_location(f"{skill} Mastery", self.player) + self.assert_reach_location_false(location, self.multiworld.state) + + self.reset_collection_state() + + def test_given_one_tool_missing_when_can_earn_mastery_then_cannot_earn_mastery(self): + self.collect_everything() + self.remove_one_by_name(f"Progressive Pickaxe") + location = self.multiworld.get_location("Mining Mastery", self.player) + self.assert_reach_location_false(location, self.multiworld.state) + self.reset_collection_state() From 05b257adf9bd9300acd4ff5584f6087f70716ad1 Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Sun, 8 Sep 2024 09:48:48 -0700 Subject: [PATCH 020/212] Pokemon Emerald: Make use of `NamedTuple._replace` (#3727) --- worlds/pokemon_emerald/data.py | 6 ++---- worlds/pokemon_emerald/opponents.py | 6 +++--- worlds/pokemon_emerald/pokemon.py | 31 +++++++++++------------------ 3 files changed, 17 insertions(+), 26 deletions(-) diff --git a/worlds/pokemon_emerald/data.py b/worlds/pokemon_emerald/data.py index d89ab5febb33..432d59387391 100644 --- a/worlds/pokemon_emerald/data.py +++ b/worlds/pokemon_emerald/data.py @@ -276,15 +276,13 @@ def _str_to_pokemon_data_type(string: str) -> TrainerPokemonDataTypeEnum: return TrainerPokemonDataTypeEnum.ITEM_CUSTOM_MOVES -@dataclass -class TrainerPokemonData: +class TrainerPokemonData(NamedTuple): species_id: int level: int moves: Optional[Tuple[int, int, int, int]] -@dataclass -class TrainerPartyData: +class TrainerPartyData(NamedTuple): pokemon: List[TrainerPokemonData] pokemon_data_type: TrainerPokemonDataTypeEnum address: int diff --git a/worlds/pokemon_emerald/opponents.py b/worlds/pokemon_emerald/opponents.py index 09e947546d7c..966d19205447 100644 --- a/worlds/pokemon_emerald/opponents.py +++ b/worlds/pokemon_emerald/opponents.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING, Dict, List, Set -from .data import NUM_REAL_SPECIES, UNEVOLVED_POKEMON, TrainerPokemonData, data +from .data import NUM_REAL_SPECIES, UNEVOLVED_POKEMON, data from .options import RandomizeTrainerParties from .pokemon import filter_species_by_nearby_bst from .util import int_to_bool_array @@ -111,6 +111,6 @@ def randomize_opponent_parties(world: "PokemonEmeraldWorld") -> None: hm_moves[3] if world.random.random() < 0.25 else level_up_moves[3] ) - new_party.append(TrainerPokemonData(new_species.species_id, pokemon.level, new_moves)) + new_party.append(pokemon._replace(species_id=new_species.species_id, moves=new_moves)) - trainer.party.pokemon = new_party + trainer.party = trainer.party._replace(pokemon=new_party) diff --git a/worlds/pokemon_emerald/pokemon.py b/worlds/pokemon_emerald/pokemon.py index c60e5e9d4f14..fec1101dab0d 100644 --- a/worlds/pokemon_emerald/pokemon.py +++ b/worlds/pokemon_emerald/pokemon.py @@ -4,8 +4,7 @@ import functools from typing import TYPE_CHECKING, Dict, List, Set, Optional, Tuple -from .data import (NUM_REAL_SPECIES, OUT_OF_LOGIC_MAPS, EncounterTableData, LearnsetMove, MiscPokemonData, - SpeciesData, data) +from .data import (NUM_REAL_SPECIES, OUT_OF_LOGIC_MAPS, EncounterTableData, LearnsetMove, SpeciesData, data) from .options import (Goal, HmCompatibility, LevelUpMoves, RandomizeAbilities, RandomizeLegendaryEncounters, RandomizeMiscPokemon, RandomizeStarters, RandomizeTypes, RandomizeWildPokemon, TmTutorCompatibility) @@ -461,7 +460,7 @@ def randomize_learnsets(world: "PokemonEmeraldWorld") -> None: type_bias, normal_bias, species.types) else: new_move = 0 - new_learnset.append(LearnsetMove(old_learnset[cursor].level, new_move)) + new_learnset.append(old_learnset[cursor]._replace(move_id=new_move)) cursor += 1 # All moves from here onward are actual moves. @@ -473,7 +472,7 @@ def randomize_learnsets(world: "PokemonEmeraldWorld") -> None: new_move = get_random_move(world.random, {move.move_id for move in new_learnset} | world.blacklisted_moves, type_bias, normal_bias, species.types) - new_learnset.append(LearnsetMove(old_learnset[cursor].level, new_move)) + new_learnset.append(old_learnset[cursor]._replace(move_id=new_move)) cursor += 1 species.learnset = new_learnset @@ -581,8 +580,10 @@ def randomize_starters(world: "PokemonEmeraldWorld") -> None: picked_evolution = world.random.choice(potential_evolutions) for trainer_name, starter_position, is_evolved in rival_teams[i]: + new_species_id = picked_evolution if is_evolved else starter.species_id trainer_data = world.modified_trainers[data.constants[trainer_name]] - trainer_data.party.pokemon[starter_position].species_id = picked_evolution if is_evolved else starter.species_id + trainer_data.party.pokemon[starter_position] = \ + trainer_data.party.pokemon[starter_position]._replace(species_id=new_species_id) def randomize_legendary_encounters(world: "PokemonEmeraldWorld") -> None: @@ -594,10 +595,7 @@ def randomize_legendary_encounters(world: "PokemonEmeraldWorld") -> None: world.random.shuffle(shuffled_species) for i, encounter in enumerate(data.legendary_encounters): - world.modified_legendary_encounters.append(MiscPokemonData( - shuffled_species[i], - encounter.address - )) + world.modified_legendary_encounters.append(encounter._replace(species_id=shuffled_species[i])) else: should_match_bst = world.options.legendary_encounters in { RandomizeLegendaryEncounters.option_match_base_stats, @@ -621,9 +619,8 @@ def randomize_legendary_encounters(world: "PokemonEmeraldWorld") -> None: if should_match_bst: candidates = filter_species_by_nearby_bst(candidates, sum(original_species.base_stats)) - world.modified_legendary_encounters.append(MiscPokemonData( - world.random.choice(candidates).species_id, - encounter.address + world.modified_legendary_encounters.append(encounter._replace( + species_id=world.random.choice(candidates).species_id )) @@ -637,10 +634,7 @@ def randomize_misc_pokemon(world: "PokemonEmeraldWorld") -> None: world.modified_misc_pokemon = [] for i, encounter in enumerate(data.misc_pokemon): - world.modified_misc_pokemon.append(MiscPokemonData( - shuffled_species[i], - encounter.address - )) + world.modified_misc_pokemon.append(encounter._replace(species_id=shuffled_species[i])) else: should_match_bst = world.options.misc_pokemon in { RandomizeMiscPokemon.option_match_base_stats, @@ -672,9 +666,8 @@ def randomize_misc_pokemon(world: "PokemonEmeraldWorld") -> None: if len(player_filtered_candidates) > 0: candidates = player_filtered_candidates - world.modified_misc_pokemon.append(MiscPokemonData( - world.random.choice(candidates).species_id, - encounter.address + world.modified_misc_pokemon.append(encounter._replace( + species_id=world.random.choice(candidates).species_id )) From 6d6d35d598dbb984b7b5cccf6567d5dc9e4ddd7d Mon Sep 17 00:00:00 2001 From: Silvris <58583688+Silvris@users.noreply.github.com> Date: Sun, 8 Sep 2024 11:50:08 -0500 Subject: [PATCH 021/212] Rogue Legacy: Update to Options API (#3755) * fix deprecation * multiworld.random -> world.random * Various small fixes --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Co-authored-by: Exempt-Medic --- worlds/rogue_legacy/Options.py | 78 ++++++++++--------- worlds/rogue_legacy/Regions.py | 31 ++++---- worlds/rogue_legacy/Rules.py | 50 ++++++------ worlds/rogue_legacy/__init__.py | 111 +++++++++++++-------------- worlds/rogue_legacy/test/__init__.py | 2 +- 5 files changed, 139 insertions(+), 133 deletions(-) diff --git a/worlds/rogue_legacy/Options.py b/worlds/rogue_legacy/Options.py index d8298c85c8fb..9210082f7317 100644 --- a/worlds/rogue_legacy/Options.py +++ b/worlds/rogue_legacy/Options.py @@ -1,6 +1,6 @@ -from typing import Dict +from Options import Choice, Range, Toggle, DeathLink, DefaultOnToggle, OptionSet, PerGameCommonOptions -from Options import Choice, Range, Option, Toggle, DeathLink, DefaultOnToggle, OptionSet +from dataclasses import dataclass class StartingGender(Choice): @@ -336,42 +336,44 @@ class AvailableClasses(OptionSet): The upgraded form of your starting class will be available regardless. """ display_name = "Available Classes" - default = {"Knight", "Mage", "Barbarian", "Knave", "Shinobi", "Miner", "Spellthief", "Lich", "Dragon", "Traitor"} + default = frozenset( + {"Knight", "Mage", "Barbarian", "Knave", "Shinobi", "Miner", "Spellthief", "Lich", "Dragon", "Traitor"} + ) valid_keys = {"Knight", "Mage", "Barbarian", "Knave", "Shinobi", "Miner", "Spellthief", "Lich", "Dragon", "Traitor"} -rl_options: Dict[str, type(Option)] = { - "starting_gender": StartingGender, - "starting_class": StartingClass, - "available_classes": AvailableClasses, - "new_game_plus": NewGamePlus, - "fairy_chests_per_zone": FairyChestsPerZone, - "chests_per_zone": ChestsPerZone, - "universal_fairy_chests": UniversalFairyChests, - "universal_chests": UniversalChests, - "vendors": Vendors, - "architect": Architect, - "architect_fee": ArchitectFee, - "disable_charon": DisableCharon, - "require_purchasing": RequirePurchasing, - "progressive_blueprints": ProgressiveBlueprints, - "gold_gain_multiplier": GoldGainMultiplier, - "number_of_children": NumberOfChildren, - "free_diary_on_generation": FreeDiaryOnGeneration, - "khidr": ChallengeBossKhidr, - "alexander": ChallengeBossAlexander, - "leon": ChallengeBossLeon, - "herodotus": ChallengeBossHerodotus, - "health_pool": HealthUpPool, - "mana_pool": ManaUpPool, - "attack_pool": AttackUpPool, - "magic_damage_pool": MagicDamageUpPool, - "armor_pool": ArmorUpPool, - "equip_pool": EquipUpPool, - "crit_chance_pool": CritChanceUpPool, - "crit_damage_pool": CritDamageUpPool, - "allow_default_names": AllowDefaultNames, - "additional_lady_names": AdditionalNames, - "additional_sir_names": AdditionalNames, - "death_link": DeathLink, -} +@dataclass +class RLOptions(PerGameCommonOptions): + starting_gender: StartingGender + starting_class: StartingClass + available_classes: AvailableClasses + new_game_plus: NewGamePlus + fairy_chests_per_zone: FairyChestsPerZone + chests_per_zone: ChestsPerZone + universal_fairy_chests: UniversalFairyChests + universal_chests: UniversalChests + vendors: Vendors + architect: Architect + architect_fee: ArchitectFee + disable_charon: DisableCharon + require_purchasing: RequirePurchasing + progressive_blueprints: ProgressiveBlueprints + gold_gain_multiplier: GoldGainMultiplier + number_of_children: NumberOfChildren + free_diary_on_generation: FreeDiaryOnGeneration + khidr: ChallengeBossKhidr + alexander: ChallengeBossAlexander + leon: ChallengeBossLeon + herodotus: ChallengeBossHerodotus + health_pool: HealthUpPool + mana_pool: ManaUpPool + attack_pool: AttackUpPool + magic_damage_pool: MagicDamageUpPool + armor_pool: ArmorUpPool + equip_pool: EquipUpPool + crit_chance_pool: CritChanceUpPool + crit_damage_pool: CritDamageUpPool + allow_default_names: AllowDefaultNames + additional_lady_names: AdditionalNames + additional_sir_names: AdditionalNames + death_link: DeathLink diff --git a/worlds/rogue_legacy/Regions.py b/worlds/rogue_legacy/Regions.py index 5d07fccbc4d4..61b0ef73ec78 100644 --- a/worlds/rogue_legacy/Regions.py +++ b/worlds/rogue_legacy/Regions.py @@ -1,15 +1,18 @@ -from typing import Dict, List, NamedTuple, Optional +from typing import Dict, List, NamedTuple, Optional, TYPE_CHECKING from BaseClasses import MultiWorld, Region, Entrance from .Locations import RLLocation, location_table, get_locations_by_category +if TYPE_CHECKING: + from . import RLWorld + class RLRegionData(NamedTuple): locations: Optional[List[str]] region_exits: Optional[List[str]] -def create_regions(multiworld: MultiWorld, player: int): +def create_regions(world: "RLWorld"): regions: Dict[str, RLRegionData] = { "Menu": RLRegionData(None, ["Castle Hamson"]), "The Manor": RLRegionData([], []), @@ -56,9 +59,9 @@ def create_regions(multiworld: MultiWorld, player: int): regions["The Fountain Room"].locations.append("Fountain Room") # Chests - chests = int(multiworld.chests_per_zone[player]) + chests = int(world.options.chests_per_zone) for i in range(0, chests): - if multiworld.universal_chests[player]: + if world.options.universal_chests: regions["Castle Hamson"].locations.append(f"Chest {i + 1}") regions["Forest Abkhazia"].locations.append(f"Chest {i + 1 + chests}") regions["The Maya"].locations.append(f"Chest {i + 1 + (chests * 2)}") @@ -70,9 +73,9 @@ def create_regions(multiworld: MultiWorld, player: int): regions["Land of Darkness"].locations.append(f"Land of Darkness - Chest {i + 1}") # Fairy Chests - chests = int(multiworld.fairy_chests_per_zone[player]) + chests = int(world.options.fairy_chests_per_zone) for i in range(0, chests): - if multiworld.universal_fairy_chests[player]: + if world.options.universal_fairy_chests: regions["Castle Hamson"].locations.append(f"Fairy Chest {i + 1}") regions["Forest Abkhazia"].locations.append(f"Fairy Chest {i + 1 + chests}") regions["The Maya"].locations.append(f"Fairy Chest {i + 1 + (chests * 2)}") @@ -85,14 +88,14 @@ def create_regions(multiworld: MultiWorld, player: int): # Set up the regions correctly. for name, data in regions.items(): - multiworld.regions.append(create_region(multiworld, player, name, data)) - - multiworld.get_entrance("Castle Hamson", player).connect(multiworld.get_region("Castle Hamson", player)) - multiworld.get_entrance("The Manor", player).connect(multiworld.get_region("The Manor", player)) - multiworld.get_entrance("Forest Abkhazia", player).connect(multiworld.get_region("Forest Abkhazia", player)) - multiworld.get_entrance("The Maya", player).connect(multiworld.get_region("The Maya", player)) - multiworld.get_entrance("Land of Darkness", player).connect(multiworld.get_region("Land of Darkness", player)) - multiworld.get_entrance("The Fountain Room", player).connect(multiworld.get_region("The Fountain Room", player)) + world.multiworld.regions.append(create_region(world.multiworld, world.player, name, data)) + + world.get_entrance("Castle Hamson").connect(world.get_region("Castle Hamson")) + world.get_entrance("The Manor").connect(world.get_region("The Manor")) + world.get_entrance("Forest Abkhazia").connect(world.get_region("Forest Abkhazia")) + world.get_entrance("The Maya").connect(world.get_region("The Maya")) + world.get_entrance("Land of Darkness").connect(world.get_region("Land of Darkness")) + world.get_entrance("The Fountain Room").connect(world.get_region("The Fountain Room")) def create_region(multiworld: MultiWorld, player: int, name: str, data: RLRegionData): diff --git a/worlds/rogue_legacy/Rules.py b/worlds/rogue_legacy/Rules.py index 2fac8d561399..505bbdd63541 100644 --- a/worlds/rogue_legacy/Rules.py +++ b/worlds/rogue_legacy/Rules.py @@ -1,9 +1,13 @@ -from BaseClasses import CollectionState, MultiWorld +from BaseClasses import CollectionState +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from . import RLWorld -def get_upgrade_total(multiworld: MultiWorld, player: int) -> int: - return int(multiworld.health_pool[player]) + int(multiworld.mana_pool[player]) + \ - int(multiworld.attack_pool[player]) + int(multiworld.magic_damage_pool[player]) + +def get_upgrade_total(world: "RLWorld") -> int: + return int(world.options.health_pool) + int(world.options.mana_pool) + \ + int(world.options.attack_pool) + int(world.options.magic_damage_pool) def get_upgrade_count(state: CollectionState, player: int) -> int: @@ -19,8 +23,8 @@ def has_upgrade_amount(state: CollectionState, player: int, amount: int) -> bool return get_upgrade_count(state, player) >= amount -def has_upgrades_percentage(state: CollectionState, player: int, percentage: float) -> bool: - return has_upgrade_amount(state, player, round(get_upgrade_total(state.multiworld, player) * (percentage / 100))) +def has_upgrades_percentage(state: CollectionState, world: "RLWorld", percentage: float) -> bool: + return has_upgrade_amount(state, world.player, round(get_upgrade_total(world) * (percentage / 100))) def has_movement_rune(state: CollectionState, player: int) -> bool: @@ -47,15 +51,15 @@ def has_defeated_dungeon(state: CollectionState, player: int) -> bool: return state.has("Defeat Herodotus", player) or state.has("Defeat Astrodotus", player) -def set_rules(multiworld: MultiWorld, player: int): +def set_rules(world: "RLWorld", player: int): # If 'vendors' are 'normal', then expect it to show up in the first half(ish) of the spheres. - if multiworld.vendors[player] == "normal": - multiworld.get_location("Forest Abkhazia Boss Reward", player).access_rule = \ + if world.options.vendors == "normal": + world.get_location("Forest Abkhazia Boss Reward").access_rule = \ lambda state: has_vendors(state, player) # Gate each manor location so everything isn't dumped into sphere 1. manor_rules = { - "Defeat Khidr" if multiworld.khidr[player] == "vanilla" else "Defeat Neo Khidr": [ + "Defeat Khidr" if world.options.khidr == "vanilla" else "Defeat Neo Khidr": [ "Manor - Left Wing Window", "Manor - Left Wing Rooftop", "Manor - Right Wing Window", @@ -66,7 +70,7 @@ def set_rules(multiworld: MultiWorld, player: int): "Manor - Left Tree 2", "Manor - Right Tree", ], - "Defeat Alexander" if multiworld.alexander[player] == "vanilla" else "Defeat Alexander IV": [ + "Defeat Alexander" if world.options.alexander == "vanilla" else "Defeat Alexander IV": [ "Manor - Left Big Upper 1", "Manor - Left Big Upper 2", "Manor - Left Big Windows", @@ -78,7 +82,7 @@ def set_rules(multiworld: MultiWorld, player: int): "Manor - Right Big Rooftop", "Manor - Right Extension", ], - "Defeat Ponce de Leon" if multiworld.leon[player] == "vanilla" else "Defeat Ponce de Freon": [ + "Defeat Ponce de Leon" if world.options.leon == "vanilla" else "Defeat Ponce de Freon": [ "Manor - Right High Base", "Manor - Right High Upper", "Manor - Right High Tower", @@ -90,24 +94,24 @@ def set_rules(multiworld: MultiWorld, player: int): # Set rules for manor locations. for event, locations in manor_rules.items(): for location in locations: - multiworld.get_location(location, player).access_rule = lambda state: state.has(event, player) + world.get_location(location).access_rule = lambda state: state.has(event, player) # Set rules for fairy chests to decrease headache of expectation to find non-movement fairy chests. - for fairy_location in [location for location in multiworld.get_locations(player) if "Fairy" in location.name]: + for fairy_location in [location for location in world.multiworld.get_locations(player) if "Fairy" in location.name]: fairy_location.access_rule = lambda state: has_fairy_progression(state, player) # Region rules. - multiworld.get_entrance("Forest Abkhazia", player).access_rule = \ - lambda state: has_upgrades_percentage(state, player, 12.5) and has_defeated_castle(state, player) + world.get_entrance("Forest Abkhazia").access_rule = \ + lambda state: has_upgrades_percentage(state, world, 12.5) and has_defeated_castle(state, player) - multiworld.get_entrance("The Maya", player).access_rule = \ - lambda state: has_upgrades_percentage(state, player, 25) and has_defeated_forest(state, player) + world.get_entrance("The Maya").access_rule = \ + lambda state: has_upgrades_percentage(state, world, 25) and has_defeated_forest(state, player) - multiworld.get_entrance("Land of Darkness", player).access_rule = \ - lambda state: has_upgrades_percentage(state, player, 37.5) and has_defeated_tower(state, player) + world.get_entrance("Land of Darkness").access_rule = \ + lambda state: has_upgrades_percentage(state, world, 37.5) and has_defeated_tower(state, player) - multiworld.get_entrance("The Fountain Room", player).access_rule = \ - lambda state: has_upgrades_percentage(state, player, 50) and has_defeated_dungeon(state, player) + world.get_entrance("The Fountain Room").access_rule = \ + lambda state: has_upgrades_percentage(state, world, 50) and has_defeated_dungeon(state, player) # Win condition. - multiworld.completion_condition[player] = lambda state: state.has("Defeat The Fountain", player) + world.multiworld.completion_condition[player] = lambda state: state.has("Defeat The Fountain", player) diff --git a/worlds/rogue_legacy/__init__.py b/worlds/rogue_legacy/__init__.py index 78e56a794c85..290f4a60ac21 100644 --- a/worlds/rogue_legacy/__init__.py +++ b/worlds/rogue_legacy/__init__.py @@ -4,7 +4,7 @@ from worlds.AutoWorld import WebWorld, World from .Items import RLItem, RLItemData, event_item_table, get_items_by_category, item_table from .Locations import RLLocation, location_table -from .Options import rl_options +from .Options import RLOptions from .Presets import rl_options_presets from .Regions import create_regions from .Rules import set_rules @@ -33,20 +33,17 @@ class RLWorld(World): But that's OK, because no one is perfect, and you don't have to be to succeed. """ game = "Rogue Legacy" - option_definitions = rl_options + options_dataclass = RLOptions + options: RLOptions topology_present = True required_client_version = (0, 3, 5) web = RLWeb() - item_name_to_id = {name: data.code for name, data in item_table.items()} - location_name_to_id = {name: data.code for name, data in location_table.items()} - - # TODO: Replace calls to this function with "options-dict", once that PR is completed and merged. - def get_setting(self, name: str): - return getattr(self.multiworld, name)[self.player] + item_name_to_id = {name: data.code for name, data in item_table.items() if data.code is not None} + location_name_to_id = {name: data.code for name, data in location_table.items() if data.code is not None} def fill_slot_data(self) -> dict: - return {option_name: self.get_setting(option_name).value for option_name in rl_options} + return self.options.as_dict(*[name for name in self.options_dataclass.type_hints.keys()]) def generate_early(self): location_ids_used_per_game = { @@ -74,18 +71,18 @@ def generate_early(self): ) # Check validation of names. - additional_lady_names = len(self.get_setting("additional_lady_names").value) - additional_sir_names = len(self.get_setting("additional_sir_names").value) - if not self.get_setting("allow_default_names"): - if additional_lady_names < int(self.get_setting("number_of_children")): + additional_lady_names = len(self.options.additional_lady_names.value) + additional_sir_names = len(self.options.additional_sir_names.value) + if not self.options.allow_default_names: + if additional_lady_names < int(self.options.number_of_children): raise Exception( f"allow_default_names is off, but not enough names are defined in additional_lady_names. " - f"Expected {int(self.get_setting('number_of_children'))}, Got {additional_lady_names}") + f"Expected {int(self.options.number_of_children)}, Got {additional_lady_names}") - if additional_sir_names < int(self.get_setting("number_of_children")): + if additional_sir_names < int(self.options.number_of_children): raise Exception( f"allow_default_names is off, but not enough names are defined in additional_sir_names. " - f"Expected {int(self.get_setting('number_of_children'))}, Got {additional_sir_names}") + f"Expected {int(self.options.number_of_children)}, Got {additional_sir_names}") def create_items(self): item_pool: List[RLItem] = [] @@ -95,110 +92,110 @@ def create_items(self): # Architect if name == "Architect": - if self.get_setting("architect") == "disabled": + if self.options.architect == "disabled": continue - if self.get_setting("architect") == "start_unlocked": + if self.options.architect == "start_unlocked": self.multiworld.push_precollected(self.create_item(name)) continue - if self.get_setting("architect") == "early": + if self.options.architect == "early": self.multiworld.local_early_items[self.player]["Architect"] = 1 # Blacksmith and Enchantress if name == "Blacksmith" or name == "Enchantress": - if self.get_setting("vendors") == "start_unlocked": + if self.options.vendors == "start_unlocked": self.multiworld.push_precollected(self.create_item(name)) continue - if self.get_setting("vendors") == "early": + if self.options.vendors == "early": self.multiworld.local_early_items[self.player]["Blacksmith"] = 1 self.multiworld.local_early_items[self.player]["Enchantress"] = 1 # Haggling - if name == "Haggling" and self.get_setting("disable_charon"): + if name == "Haggling" and self.options.disable_charon: continue # Blueprints if data.category == "Blueprints": # No progressive blueprints if progressive_blueprints are disabled. - if name == "Progressive Blueprints" and not self.get_setting("progressive_blueprints"): + if name == "Progressive Blueprints" and not self.options.progressive_blueprints: continue # No distinct blueprints if progressive_blueprints are enabled. - elif name != "Progressive Blueprints" and self.get_setting("progressive_blueprints"): + elif name != "Progressive Blueprints" and self.options.progressive_blueprints: continue # Classes if data.category == "Classes": if name == "Progressive Knights": - if "Knight" not in self.get_setting("available_classes"): + if "Knight" not in self.options.available_classes: continue - if self.get_setting("starting_class") == "knight": + if self.options.starting_class == "knight": quantity = 1 if name == "Progressive Mages": - if "Mage" not in self.get_setting("available_classes"): + if "Mage" not in self.options.available_classes: continue - if self.get_setting("starting_class") == "mage": + if self.options.starting_class == "mage": quantity = 1 if name == "Progressive Barbarians": - if "Barbarian" not in self.get_setting("available_classes"): + if "Barbarian" not in self.options.available_classes: continue - if self.get_setting("starting_class") == "barbarian": + if self.options.starting_class == "barbarian": quantity = 1 if name == "Progressive Knaves": - if "Knave" not in self.get_setting("available_classes"): + if "Knave" not in self.options.available_classes: continue - if self.get_setting("starting_class") == "knave": + if self.options.starting_class == "knave": quantity = 1 if name == "Progressive Miners": - if "Miner" not in self.get_setting("available_classes"): + if "Miner" not in self.options.available_classes: continue - if self.get_setting("starting_class") == "miner": + if self.options.starting_class == "miner": quantity = 1 if name == "Progressive Shinobis": - if "Shinobi" not in self.get_setting("available_classes"): + if "Shinobi" not in self.options.available_classes: continue - if self.get_setting("starting_class") == "shinobi": + if self.options.starting_class == "shinobi": quantity = 1 if name == "Progressive Liches": - if "Lich" not in self.get_setting("available_classes"): + if "Lich" not in self.options.available_classes: continue - if self.get_setting("starting_class") == "lich": + if self.options.starting_class == "lich": quantity = 1 if name == "Progressive Spellthieves": - if "Spellthief" not in self.get_setting("available_classes"): + if "Spellthief" not in self.options.available_classes: continue - if self.get_setting("starting_class") == "spellthief": + if self.options.starting_class == "spellthief": quantity = 1 if name == "Dragons": - if "Dragon" not in self.get_setting("available_classes"): + if "Dragon" not in self.options.available_classes: continue if name == "Traitors": - if "Traitor" not in self.get_setting("available_classes"): + if "Traitor" not in self.options.available_classes: continue # Skills if name == "Health Up": - quantity = self.get_setting("health_pool") + quantity = self.options.health_pool.value elif name == "Mana Up": - quantity = self.get_setting("mana_pool") + quantity = self.options.mana_pool.value elif name == "Attack Up": - quantity = self.get_setting("attack_pool") + quantity = self.options.attack_pool.value elif name == "Magic Damage Up": - quantity = self.get_setting("magic_damage_pool") + quantity = self.options.magic_damage_pool.value elif name == "Armor Up": - quantity = self.get_setting("armor_pool") + quantity = self.options.armor_pool.value elif name == "Equip Up": - quantity = self.get_setting("equip_pool") + quantity = self.options.equip_pool.value elif name == "Crit Chance Up": - quantity = self.get_setting("crit_chance_pool") + quantity = self.options.crit_chance_pool.value elif name == "Crit Damage Up": - quantity = self.get_setting("crit_damage_pool") + quantity = self.options.crit_damage_pool.value # Ignore filler, it will be added in a later stage. if data.category == "Filler": @@ -215,7 +212,7 @@ def create_items(self): def get_filler_item_name(self) -> str: fillers = get_items_by_category("Filler") weights = [data.weight for data in fillers.values()] - return self.multiworld.random.choices([filler for filler in fillers.keys()], weights, k=1)[0] + return self.random.choices([filler for filler in fillers.keys()], weights, k=1)[0] def create_item(self, name: str) -> RLItem: data = item_table[name] @@ -226,10 +223,10 @@ def create_event(self, name: str) -> RLItem: return RLItem(name, data.classification, data.code, self.player) def set_rules(self): - set_rules(self.multiworld, self.player) + set_rules(self, self.player) def create_regions(self): - create_regions(self.multiworld, self.player) + create_regions(self) self._place_events() def _place_events(self): @@ -238,7 +235,7 @@ def _place_events(self): self.create_event("Defeat The Fountain")) # Khidr / Neo Khidr - if self.get_setting("khidr") == "vanilla": + if self.options.khidr == "vanilla": self.multiworld.get_location("Castle Hamson Boss Room", self.player).place_locked_item( self.create_event("Defeat Khidr")) else: @@ -246,7 +243,7 @@ def _place_events(self): self.create_event("Defeat Neo Khidr")) # Alexander / Alexander IV - if self.get_setting("alexander") == "vanilla": + if self.options.alexander == "vanilla": self.multiworld.get_location("Forest Abkhazia Boss Room", self.player).place_locked_item( self.create_event("Defeat Alexander")) else: @@ -254,7 +251,7 @@ def _place_events(self): self.create_event("Defeat Alexander IV")) # Ponce de Leon / Ponce de Freon - if self.get_setting("leon") == "vanilla": + if self.options.leon == "vanilla": self.multiworld.get_location("The Maya Boss Room", self.player).place_locked_item( self.create_event("Defeat Ponce de Leon")) else: @@ -262,7 +259,7 @@ def _place_events(self): self.create_event("Defeat Ponce de Freon")) # Herodotus / Astrodotus - if self.get_setting("herodotus") == "vanilla": + if self.options.herodotus == "vanilla": self.multiworld.get_location("Land of Darkness Boss Room", self.player).place_locked_item( self.create_event("Defeat Herodotus")) else: diff --git a/worlds/rogue_legacy/test/__init__.py b/worlds/rogue_legacy/test/__init__.py index 2639e618c678..3346476ba644 100644 --- a/worlds/rogue_legacy/test/__init__.py +++ b/worlds/rogue_legacy/test/__init__.py @@ -1,4 +1,4 @@ -from test.TestBase import WorldTestBase +from test.bases import WorldTestBase class RLTestBase(WorldTestBase): From cf375cbcc4c399290b7ebc893e10992029761230 Mon Sep 17 00:00:00 2001 From: qwint Date: Sun, 8 Sep 2024 12:54:27 -0500 Subject: [PATCH 022/212] Core: Fix Generate's slot parsing to default unknown slot names to file name (#3795) * make Generate handle slots without names defined better * set name dict before loop so we don't have to check for its existence later * move setter so it's more obvious why --- Generate.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Generate.py b/Generate.py index 6220c0eb8188..4eba05cc52fe 100644 --- a/Generate.py +++ b/Generate.py @@ -155,6 +155,7 @@ def main(args=None) -> Tuple[argparse.Namespace, int]: erargs.outputpath = args.outputpath erargs.skip_prog_balancing = args.skip_prog_balancing erargs.skip_output = args.skip_output + erargs.name = {} settings_cache: Dict[str, Tuple[argparse.Namespace, ...]] = \ {fname: (tuple(roll_settings(yaml, args.plando) for yaml in yamls) if args.sameoptions else None) @@ -202,7 +203,7 @@ def main(args=None) -> Tuple[argparse.Namespace, int]: if path == args.weights_file_path: # if name came from the weights file, just use base player name erargs.name[player] = f"Player{player}" - elif not erargs.name[player]: # if name was not specified, generate it from filename + elif player not in erargs.name: # if name was not specified, generate it from filename erargs.name[player] = os.path.splitext(os.path.split(path)[-1])[0] erargs.name[player] = handle_name(erargs.name[player], player, name_counter) From 5a5162c9d3a93295eccaad74fe28226f5cc0342f Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Sun, 8 Sep 2024 12:55:17 -0500 Subject: [PATCH 023/212] The Messenger: improve automated installation (#3083) * add deck support to the messenger mod setup * Add tkinter cleanup because it's janky * prompt about launching the game instead of just doing it * add "better" file validation to courier checking * make it a bit more palatable * make it a bit more palatable * add the executable's md5 to ensure the correct file is selected * handle a bad md5 and show a message * make the utils wrapper snake_case and add a docstring * use stored archive instead of head * don't give other people the convenience method ig --- worlds/messenger/__init__.py | 1 + worlds/messenger/client_setup.py | 106 +++++++++++++++++++++++-------- 2 files changed, 80 insertions(+), 27 deletions(-) diff --git a/worlds/messenger/__init__.py b/worlds/messenger/__init__.py index 1bca3a37ad71..9a38953ffbdf 100644 --- a/worlds/messenger/__init__.py +++ b/worlds/messenger/__init__.py @@ -27,6 +27,7 @@ class MessengerSettings(Group): class GamePath(FilePath): description = "The Messenger game executable" is_exe = True + md5s = ["1b53534569060bc06179356cd968ed1d"] game_path: GamePath = GamePath("TheMessenger.exe") diff --git a/worlds/messenger/client_setup.py b/worlds/messenger/client_setup.py index 6bff78df364d..77a0f634326c 100644 --- a/worlds/messenger/client_setup.py +++ b/worlds/messenger/client_setup.py @@ -5,7 +5,6 @@ import subprocess import urllib.request from shutil import which -from tkinter.messagebox import askyesnocancel from typing import Any, Optional from zipfile import ZipFile from Utils import open_file @@ -18,11 +17,33 @@ MOD_URL = "https://api.github.com/repos/alwaysintreble/TheMessengerRandomizerModAP/releases/latest" +def ask_yes_no_cancel(title: str, text: str) -> Optional[bool]: + """ + Wrapper for tkinter.messagebox.askyesnocancel, that creates a popup dialog box with yes, no, and cancel buttons. + + :param title: Title to be displayed at the top of the message box. + :param text: Text to be displayed inside the message box. + :return: Returns True if yes, False if no, None if cancel. + """ + from tkinter import Tk, messagebox + root = Tk() + root.withdraw() + ret = messagebox.askyesnocancel(title, text) + root.update() + return ret + + + def launch_game(*args) -> None: """Check the game installation, then launch it""" def courier_installed() -> bool: """Check if Courier is installed""" - return os.path.exists(os.path.join(game_folder, "TheMessenger_Data", "Managed", "Assembly-CSharp.Courier.mm.dll")) + assembly_path = os.path.join(game_folder, "TheMessenger_Data", "Managed", "Assembly-CSharp.dll") + with open(assembly_path, "rb") as assembly: + for line in assembly: + if b"Courier" in line: + return True + return False def mod_installed() -> bool: """Check if the mod is installed""" @@ -57,27 +78,34 @@ def install_courier() -> None: if not is_windows: mono_exe = which("mono") if not mono_exe: - # steam deck support but doesn't currently work - messagebox("Failure", "Failed to install Courier", True) - raise RuntimeError("Failed to install Courier") - # # download and use mono kickstart - # # this allows steam deck support - # mono_kick_url = "https://github.com/flibitijibibo/MonoKickstart/archive/refs/heads/master.zip" - # target = os.path.join(folder, "monoKickstart") - # os.makedirs(target, exist_ok=True) - # with urllib.request.urlopen(mono_kick_url) as download: - # with ZipFile(io.BytesIO(download.read()), "r") as zf: - # for member in zf.infolist(): - # zf.extract(member, path=target) - # installer = subprocess.Popen([os.path.join(target, "precompiled"), - # os.path.join(folder, "MiniInstaller.exe")], shell=False) - # os.remove(target) + # download and use mono kickstart + # this allows steam deck support + mono_kick_url = "https://github.com/flibitijibibo/MonoKickstart/archive/716f0a2bd5d75138969090494a76328f39a6dd78.zip" + files = [] + with urllib.request.urlopen(mono_kick_url) as download: + with ZipFile(io.BytesIO(download.read()), "r") as zf: + for member in zf.infolist(): + if "precompiled/" not in member.filename or member.filename.endswith("/"): + continue + member.filename = member.filename.split("/")[-1] + if member.filename.endswith("bin.x86_64"): + member.filename = "MiniInstaller.bin.x86_64" + zf.extract(member, path=game_folder) + files.append(member.filename) + mono_installer = os.path.join(game_folder, "MiniInstaller.bin.x86_64") + os.chmod(mono_installer, 0o755) + installer = subprocess.Popen(mono_installer, shell=False) + failure = installer.wait() + for file in files: + os.remove(file) else: - installer = subprocess.Popen([mono_exe, os.path.join(game_folder, "MiniInstaller.exe")], shell=False) + installer = subprocess.Popen([mono_exe, os.path.join(game_folder, "MiniInstaller.exe")], shell=True) + failure = installer.wait() else: - installer = subprocess.Popen(os.path.join(game_folder, "MiniInstaller.exe"), shell=False) + installer = subprocess.Popen(os.path.join(game_folder, "MiniInstaller.exe"), shell=True) + failure = installer.wait() - failure = installer.wait() + print(failure) if failure: messagebox("Failure", "Failed to install Courier", True) os.chdir(working_directory) @@ -125,18 +153,35 @@ def available_mod_update(latest_version: str) -> bool: return "alpha" in latest_version or tuplize_version(latest_version) > tuplize_version(installed_version) from . import MessengerWorld - game_folder = os.path.dirname(MessengerWorld.settings.game_path) + try: + game_folder = os.path.dirname(MessengerWorld.settings.game_path) + except ValueError as e: + logging.error(e) + messagebox("Invalid File", "Selected file did not match expected hash. " + "Please try again and ensure you select The Messenger.exe.") + return working_directory = os.getcwd() + # setup ssl context + try: + import certifi + import ssl + context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH, cafile=certifi.where()) + context.set_alpn_protocols(["http/1.1"]) + https_handler = urllib.request.HTTPSHandler(context=context) + opener = urllib.request.build_opener(https_handler) + urllib.request.install_opener(opener) + except ImportError: + pass if not courier_installed(): - should_install = askyesnocancel("Install Courier", - "No Courier installation detected. Would you like to install now?") + should_install = ask_yes_no_cancel("Install Courier", + "No Courier installation detected. Would you like to install now?") if not should_install: return logging.info("Installing Courier") install_courier() if not mod_installed(): - should_install = askyesnocancel("Install Mod", - "No randomizer mod detected. Would you like to install now?") + should_install = ask_yes_no_cancel("Install Mod", + "No randomizer mod detected. Would you like to install now?") if not should_install: return logging.info("Installing Mod") @@ -144,17 +189,24 @@ def available_mod_update(latest_version: str) -> bool: else: latest = request_data(MOD_URL)["tag_name"] if available_mod_update(latest): - should_update = askyesnocancel("Update Mod", - f"New mod version detected. Would you like to update to {latest} now?") + should_update = ask_yes_no_cancel("Update Mod", + f"New mod version detected. Would you like to update to {latest} now?") if should_update: logging.info("Updating mod") install_mod() elif should_update is None: return + if not args: + should_launch = ask_yes_no_cancel("Launch Game", + "Mod installed and up to date. Would you like to launch the game now?") + if not should_launch: + return + parser = argparse.ArgumentParser(description="Messenger Client Launcher") parser.add_argument("url", type=str, nargs="?", help="Archipelago Webhost uri to auto connect to.") args = parser.parse_args(args) + if not is_windows: if args.url: open_file(f"steam://rungameid/764790//{args.url}/") From e52ce0149a0470b594ce6f675dbd5b0bb7c994c0 Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Sun, 8 Sep 2024 13:57:09 -0400 Subject: [PATCH 024/212] Rogue Legacy: Split Additional Names into two option classes #3908 --- worlds/rogue_legacy/Options.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/worlds/rogue_legacy/Options.py b/worlds/rogue_legacy/Options.py index 9210082f7317..139ff6094427 100644 --- a/worlds/rogue_legacy/Options.py +++ b/worlds/rogue_legacy/Options.py @@ -175,13 +175,21 @@ class NumberOfChildren(Range): default = 3 -class AdditionalNames(OptionSet): +class AdditionalLadyNames(OptionSet): """ Set of additional names your potential offspring can have. If Allow Default Names is disabled, this is the only list of names your children can have. The first value will also be your initial character's name depending on Starting Gender. """ - display_name = "Additional Names" + display_name = "Additional Lady Names" + +class AdditionalSirNames(OptionSet): + """ + Set of additional names your potential offspring can have. If Allow Default Names is disabled, this is the only list + of names your children can have. The first value will also be your initial character's name depending on Starting + Gender. + """ + display_name = "Additional Sir Names" class AllowDefaultNames(DefaultOnToggle): @@ -374,6 +382,6 @@ class RLOptions(PerGameCommonOptions): crit_chance_pool: CritChanceUpPool crit_damage_pool: CritDamageUpPool allow_default_names: AllowDefaultNames - additional_lady_names: AdditionalNames - additional_sir_names: AdditionalNames + additional_lady_names: AdditionalLadyNames + additional_sir_names: AdditionalSirNames death_link: DeathLink From 4aab317665d5d2d9a72d2bc5ea9446639eaf887e Mon Sep 17 00:00:00 2001 From: Silvris <58583688+Silvris@users.noreply.github.com> Date: Mon, 9 Sep 2024 08:56:15 -0500 Subject: [PATCH 025/212] ALTTP: Plando (#2904) fixes (#3834) --- Options.py | 14 ++++++++++++++ worlds/alttp/Options.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Options.py b/Options.py index ecde6275f1ea..b79714635d9e 100644 --- a/Options.py +++ b/Options.py @@ -973,7 +973,19 @@ def from_any(cls, data: PlandoTextsFromAnyType) -> Self: if random.random() < float(text.get("percentage", 100)/100): at = text.get("at", None) if at is not None: + if isinstance(at, dict): + if at: + at = random.choices(list(at.keys()), + weights=list(at.values()), k=1)[0] + else: + raise OptionError("\"at\" must be a valid string or weighted list of strings!") given_text = text.get("text", []) + if isinstance(given_text, dict): + if not given_text: + given_text = [] + else: + given_text = random.choices(list(given_text.keys()), + weights=list(given_text.values()), k=1) if isinstance(given_text, str): given_text = [given_text] texts.append(PlandoText( @@ -981,6 +993,8 @@ def from_any(cls, data: PlandoTextsFromAnyType) -> Self: given_text, text.get("percentage", 100) )) + else: + raise OptionError("\"at\" must be a valid string or weighted list of strings!") elif isinstance(text, PlandoText): if random.random() < float(text.percentage/100): texts.append(text) diff --git a/worlds/alttp/Options.py b/worlds/alttp/Options.py index 20dd18038a14..bd87cbf2c3ea 100644 --- a/worlds/alttp/Options.py +++ b/worlds/alttp/Options.py @@ -728,7 +728,7 @@ class ALttPPlandoConnections(PlandoConnections): entrances = set([connection[0] for connection in ( *default_connections, *default_dungeon_connections, *inverted_default_connections, *inverted_default_dungeon_connections)]) - exits = set([connection[1] for connection in ( + exits = set([connection[0] for connection in ( *default_connections, *default_dungeon_connections, *inverted_default_connections, *inverted_default_dungeon_connections)]) From 09c7f5f909e6ca23de5bc58f8174a1794b07f817 Mon Sep 17 00:00:00 2001 From: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:36:27 +0200 Subject: [PATCH 026/212] The Witness: Bump Required Client Version (#3891) The newest release of the Witness client connects with 0.5.1 https://github.com/NewSoupVi/The-Witness-Randomizer-for-Archipelago/releases/tag/7.0.0p10 --- worlds/witness/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/witness/__init__.py b/worlds/witness/__init__.py index cdb17a483b1e..b4b38c883e7d 100644 --- a/worlds/witness/__init__.py +++ b/worlds/witness/__init__.py @@ -61,7 +61,7 @@ class WitnessWorld(World): item_name_groups = static_witness_items.ITEM_GROUPS location_name_groups = static_witness_locations.AREA_LOCATION_GROUPS - required_client_version = (0, 4, 5) + required_client_version = (0, 5, 1) player_logic: WitnessPlayerLogic player_locations: WitnessPlayerLocations From 170aedba8fbe35765289a8628b89acf9fd1515ec Mon Sep 17 00:00:00 2001 From: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:36:47 +0200 Subject: [PATCH 027/212] The Witness: Fix hints always displaying the Witness player (#3861) * The Witness: Fix hints always displaying the Witness player Got a bit too trigger happy with changing instances of `world.multiworld.player_name` to `world.player_name` - Some of these were actually *supposed* to be other players. Alternate title: The Witness doesn't have a Silph Scope * that one i guess --- worlds/witness/hints.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worlds/witness/hints.py b/worlds/witness/hints.py index 2c5f816b2bc2..99e8eea2eb89 100644 --- a/worlds/witness/hints.py +++ b/worlds/witness/hints.py @@ -220,7 +220,7 @@ def try_getting_location_group_for_location(world: "WitnessWorld", hint_loc: Loc def word_direct_hint(world: "WitnessWorld", hint: WitnessLocationHint) -> WitnessWordedHint: location_name = hint.location.name if hint.location.player != world.player: - location_name += " (" + world.player_name + ")" + location_name += " (" + world.multiworld.get_player_name(hint.location.player) + ")" item = hint.location.item @@ -229,7 +229,7 @@ def word_direct_hint(world: "WitnessWorld", hint: WitnessLocationHint) -> Witnes item_name = item.name if item.player != world.player: - item_name += " (" + world.player_name + ")" + item_name += " (" + world.multiworld.get_player_name(item.player) + ")" hint_text = "" area: Optional[str] = None From 7ff201e32c859eeb1b3e07ee087f11da3249f833 Mon Sep 17 00:00:00 2001 From: Spineraks Date: Tue, 10 Sep 2024 17:01:36 +0200 Subject: [PATCH 028/212] Yacht Dice: add get_filler_item_name (#3916) * Add the yacht dice (from other git) world to the yacht dice fork * Update .gitignore * Removed zillion because it doesn't work * Update .gitignore * added zillion again... * Now you can have 0 extra fragments * Added alt categories, also options * Added item categories * Extra categories are now working! :dog: * changed options and added exceptions * Testing if I change the generate.py * Revert "Testing if I change the generate.py" This reverts commit 7c2b3df6170dcf8d8f36a1de9fcbc9dccdec81f8. * ignore gitignore * Delete .gitignore * Update .gitignore * Update .gitignore * Update logic, added multiplicative categories * Changed difficulties * Update offline mode so that it works again * Adjusted difficulty * New version of the apworld, with 1000 as final score, always Will still need to check difficulty and weights of adding items. Website is not ready yet, so this version is not usable yet :) * Changed yaml and small bug fixes Fix when goal and max are same Options: changed chance to weight * no changes, just whitespaces * changed how logic works Now you put an array of mults and the cpu gets a couple of tries * Changed logic, tweaked a bit too * Preparation for 2.0 * logic tweak * Logic for alt categories properly now * Update setup_en.md * Update en_YachtDice.md * Improve performance of add_distributions * Formatting style * restore gitignore to APMW * Tweaked generation parameters and methods * Version 2.0.3 manual input option max score in logic always 2.0.3 faster gen * Comments and editing * Renamed setup guide * Improved create_items code * init of locations: remove self.event line * Moved setting early items to generate_early * Add my name to CODEOWNERS * Added Yacht Dice to the readme in list of games * Improve performance of Yacht Dice * newline * Improve typing * This is actually just slower lol * Update worlds/yachtdice/Items.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update Options.py * Styling * finished text whichstory option * removed roll and rollfragments; not used * import; worlds not world :) * Option groups! * ruff styling, fix * ruff format styling! * styling and capitalization of options * small comment * Cleaned up the "state_is_a_list" a little bit * RUFF :dog: * Changed filling the itempool for efficiency Now, we start with 17 extra items in the item pool, it's quite likely you need at least 17 items (~80%?). And then afterwards, we delete items if we overshoot the target of 1000, and add items if we haven't reached an achievable score of 1000 yet. Also, no need to recompute the entire logic when adding points. * :dog: * Removed plando "fix" * Changed indent of score multiplier * faster location function * Comments to docstrings * fixed making location closest to goal_score be goal_score * options format * iterate keys and values of a dict together * small optimization ListState * faster collection of categories * return arguments instead of making a list (will :dog: later) * Instead of turning it into a tuple, you can just make a tuple literal * remove .keys() * change .random and used enumerate * some readability improvements * Remove location "0", we don't use that one * Remove lookup_id_to_name entirely I for sure don't use it, and as far as I know it's not one of the mandatory functions for AP, these are item_name_to_id and location_name_to_id. * .append instead of += for single items, percentile function changed Also an extra comment for location ids. * remove ) too many * Removed sorted from category list * Hash categories (which makes it slower :( ) Maybe I messed up or misunderstood... I'll revert this right away since it is 2x slower, probably because of sorted instead of sort? * Revert "Hash categories (which makes it slower :( )" This reverts commit 34f2c1aed8c8813b2d9c58896650b82a810d3578. * temporary push: 40% faster generation test Small changes in logic make the generation 40% faster. I'll have to think about how big the changes are. I suspect they are rather limited. If this is the way to go, I'll remove the temp file and redo the YachtWeights file, I'll remove the functions there and just put the new weights here. * Add Points item category * Reverse changes of bad idea :) * ruff :dog: * Use numpy and pmf function to speed up gen Numpy has a built-in way to sum probability mass functions (pmf). This shaves of 60% of the generation time :D * Revert "Use numpy and pmf function to speed up gen" This reverts commit 9290191cb323ae92321d6c2cfcfe8c27370f439b. * Step inbetween to change the weights * Changed the weights to make it faster 135 -> 81 seconds on 100 random yamls * Adjusted max_dist, split dice_simulation function * Removed nonlocal and pass arguments instead * Change "weight-lists" to Dict[str, float] * Removed the return from ini_locations. Also added explanations to cat_weights * Choice options; dont'use .value (will ruff later) * Only put important options in slotdata * :dog: * Add Dict import * Split the cache per player, limit size to 400. * :dog: * added , because of style * Update apworld version to 2.0.6 2.0.5 is the apworld I released on github to be tested I never separately released 2.0.4. * Multiple smaller code improvements - changed names in YachtWeights so we don't need to translate them in Rules anymore - we now remember which categories are present in the game, and also put this in slotdata. This we do because only one of two categories is present in a game. If for some reason both are present (plando/getitem/startinventory), we now know which category to ignore - * :dog: ruff * Mostly minimize_extra_items improvements - Change logic, generation is now even faster (0.6s per default yaml). - Made the option 'minimize_extra_items' do a lot more, hopefully this makes the impact of Yacht Dice a little bit less, if you want that. Here's what is also does now: - you start with 2 dice and 2 rolls - there will be less locations/items at the start of you game * ruff :dog: * Removed printing options * Reworded some option descriptions * Yacht Dice: setup: change release-link to latest On the installation page, link to the latest release, instead of the page with all releases * Several fixes and changes -change apworld version -Removed the extra roll (this was not intended) -change extra_points_added to a mutable list to that it actually does something -removed variables multipliers_added and items_added -Rules, don't order by quantity, just by mean_score -Changed the weights in general to make it faster * :dog: * Revert setup to what it was (latest, without S) * remove temp weights file, shouldn't be here * Made sure that there is not too many step score multipliers. Too many step score multipliers lead to gen fails too, probably because you need many categories for them to actually help a lot. So it's hard to use them at the start of the game. * add filler item name --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- worlds/yachtdice/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/worlds/yachtdice/__init__.py b/worlds/yachtdice/__init__.py index 3a79eff04046..d86ee3382d33 100644 --- a/worlds/yachtdice/__init__.py +++ b/worlds/yachtdice/__init__.py @@ -466,6 +466,9 @@ def create_regions(self): menu.exits.append(connection) connection.connect(board) self.multiworld.regions += [menu, board] + + def get_filler_item_name(self) -> str: + return "Good RNG" def set_rules(self): """ From 874392756b706bc07f4c1ff9429ed0b16e52abd3 Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Wed, 11 Sep 2024 04:20:07 -0700 Subject: [PATCH 029/212] Pokemon Emerald: Add normalize encounter rate option to slot data (#3917) --- worlds/pokemon_emerald/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/worlds/pokemon_emerald/__init__.py b/worlds/pokemon_emerald/__init__.py index abdee26f572f..d281dde23cb0 100644 --- a/worlds/pokemon_emerald/__init__.py +++ b/worlds/pokemon_emerald/__init__.py @@ -711,6 +711,7 @@ def fill_slot_data(self) -> Dict[str, Any]: "trainersanity", "modify_118", "death_link", + "normalize_encounter_rates", ) slot_data["free_fly_location_id"] = self.free_fly_location_id slot_data["hm_requirements"] = self.hm_requirements From c9f1a21bd2b8888e5b4dc75123c19b0a016ee261 Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Wed, 11 Sep 2024 04:22:04 -0700 Subject: [PATCH 030/212] BizHawkClient: Remove `run_gui` in favor of `make_gui` (#3910) --- CommonClient.py | 2 +- worlds/_bizhawk/context.py | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index 911de4226dc3..6bdd8fc819da 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -662,7 +662,7 @@ def handle_connection_loss(self, msg: str) -> None: logger.exception(msg, exc_info=exc_info, extra={'compact_gui': True}) self._messagebox_connection_loss = self.gui_error(msg, exc_info[1]) - def make_gui(self) -> type: + def make_gui(self) -> typing.Type["kvui.GameManager"]: """To return the Kivy App class needed for run_gui so it can be overridden before being built""" from kvui import GameManager diff --git a/worlds/_bizhawk/context.py b/worlds/_bizhawk/context.py index 234faf3b65cf..896c8fb7b504 100644 --- a/worlds/_bizhawk/context.py +++ b/worlds/_bizhawk/context.py @@ -59,14 +59,10 @@ def __init__(self, server_address: Optional[str], password: Optional[str]): self.bizhawk_ctx = BizHawkContext() self.watcher_timeout = 0.5 - def run_gui(self): - from kvui import GameManager - - class BizHawkManager(GameManager): - base_title = "Archipelago BizHawk Client" - - self.ui = BizHawkManager(self) - self.ui_task = asyncio.create_task(self.ui.async_run(), name="UI") + def make_gui(self): + ui = super().make_gui() + ui.base_title = "Archipelago BizHawk Client" + return ui def on_package(self, cmd, args): if cmd == "Connected": From 7621889b8b626e89947d6258ddd5ade65d434ddb Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Wed, 11 Sep 2024 04:22:53 -0700 Subject: [PATCH 031/212] DS3: Add nex3 as a world maintainer (#3882) I've already discussed this with @Marechal-L and gotten his approval. --- docs/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/CODEOWNERS b/docs/CODEOWNERS index 28dcc6736283..ee7fd7ed863b 100644 --- a/docs/CODEOWNERS +++ b/docs/CODEOWNERS @@ -46,7 +46,7 @@ /worlds/clique/ @ThePhar # Dark Souls III -/worlds/dark_souls_3/ @Marechal-L +/worlds/dark_souls_3/ @Marechal-L @nex3 # Donkey Kong Country 3 /worlds/dkc3/ @PoryGone From ed948e3e5b60ea67d126b7ef06a60dcccd71f4aa Mon Sep 17 00:00:00 2001 From: Mysteryem Date: Fri, 13 Sep 2024 15:02:13 +0100 Subject: [PATCH 032/212] sm64ex: Add missing indirect condition for BitFS randomized entrance (#3926) The Bowser in the Fire Sea randomized entrance has an access rule that requires being able to reach "DDD: Board Bowser's Sub", but being able to reach a location also requires being able to reach the region that location is in, so an indirect condition is required. --- worlds/sm64ex/Regions.py | 4 ++-- worlds/sm64ex/Rules.py | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/worlds/sm64ex/Regions.py b/worlds/sm64ex/Regions.py index 6fc2d74b96dc..52126bcf9ff7 100644 --- a/worlds/sm64ex/Regions.py +++ b/worlds/sm64ex/Regions.py @@ -246,10 +246,10 @@ def create_regions(world: MultiWorld, options: SM64Options, player: int): regBitS.subregions = [bits_top] -def connect_regions(world: MultiWorld, player: int, source: str, target: str, rule=None): +def connect_regions(world: MultiWorld, player: int, source: str, target: str, rule=None) -> Entrance: sourceRegion = world.get_region(source, player) targetRegion = world.get_region(target, player) - sourceRegion.connect(targetRegion, rule=rule) + return sourceRegion.connect(targetRegion, rule=rule) def create_region(name: str, player: int, world: MultiWorld) -> SM64Region: diff --git a/worlds/sm64ex/Rules.py b/worlds/sm64ex/Rules.py index 9add8d9b2932..1535f9ca1fde 100644 --- a/worlds/sm64ex/Rules.py +++ b/worlds/sm64ex/Rules.py @@ -92,9 +92,12 @@ def set_rules(world, options: SM64Options, player: int, area_connections: dict, connect_regions(world, player, "Hazy Maze Cave", randomized_entrances_s["Cavern of the Metal Cap"]) connect_regions(world, player, "Basement", randomized_entrances_s["Vanish Cap under the Moat"], rf.build_rule("GP")) - connect_regions(world, player, "Basement", randomized_entrances_s["Bowser in the Fire Sea"], - lambda state: state.has("Power Star", player, star_costs["BasementDoorCost"]) and - state.can_reach("DDD: Board Bowser's Sub", 'Location', player)) + entrance = connect_regions(world, player, "Basement", randomized_entrances_s["Bowser in the Fire Sea"], + lambda state: state.has("Power Star", player, star_costs["BasementDoorCost"]) and + state.can_reach("DDD: Board Bowser's Sub", 'Location', player)) + # Access to "DDD: Board Bowser's Sub" does not require access to other locations or regions, so the only region that + # needs to be registered is its parent region. + world.register_indirect_condition(world.get_location("DDD: Board Bowser's Sub", player).parent_region, entrance) connect_regions(world, player, "Menu", "Second Floor", lambda state: state.has("Second Floor Key", player) or state.has("Progressive Key", player, 2)) From 5530d181da643beb96abd915c259f6c22cb9dc7f Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Mon, 16 Sep 2024 06:48:13 +0200 Subject: [PATCH 033/212] Core: update version number (#3944) --- Utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utils.py b/Utils.py index f89330cf7c65..d6709431d32c 100644 --- a/Utils.py +++ b/Utils.py @@ -46,7 +46,7 @@ def as_simple_string(self) -> str: return ".".join(str(item) for item in self) -__version__ = "0.5.0" +__version__ = "0.5.1" version_tuple = tuplize_version(__version__) is_linux = sys.platform.startswith("linux") From 84805a4e541c6dc2a0d95b8c3609b1faf9c240db Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Mon, 16 Sep 2024 08:30:47 -0400 Subject: [PATCH 034/212] HK: XBox doesn't exist #3932 --- worlds/hk/docs/setup_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/hk/docs/setup_en.md b/worlds/hk/docs/setup_en.md index c046785038d8..21cdcb68b3a9 100644 --- a/worlds/hk/docs/setup_en.md +++ b/worlds/hk/docs/setup_en.md @@ -15,7 +15,7 @@ ### What to do if Lumafly fails to find your installation directory 1. Find the directory manually. * Xbox Game Pass: - 1. Enter the XBox app and move your mouse over "Hollow Knight" on the left sidebar. + 1. Enter the Xbox app and move your mouse over "Hollow Knight" on the left sidebar. 2. Click the three points then click "Manage". 3. Go to the "Files" tab and select "Browse...". 4. Click "Hollow Knight", then "Content", then click the path bar and copy it. From ee12dda3611cdf016d8e8a8633a32333a3f47a13 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 16 Sep 2024 12:06:20 -0400 Subject: [PATCH 035/212] Lingo: Added missing connection from The Tenacious -> Hub Room (#3947) --- worlds/lingo/data/LL1.yaml | 4 +++- worlds/lingo/data/generated.dat | Bin 149166 -> 149230 bytes 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/worlds/lingo/data/LL1.yaml b/worlds/lingo/data/LL1.yaml index 16a1573b1d56..bbed1464530b 100644 --- a/worlds/lingo/data/LL1.yaml +++ b/worlds/lingo/data/LL1.yaml @@ -482,7 +482,9 @@ Crossroads: door: Crossroads Entrance The Tenacious: - door: Tenacious Entrance + - door: Tenacious Entrance + - room: The Tenacious + door: Shortcut to Hub Room Near Far Area: True Hedge Maze: door: Shortcut to Hedge Maze diff --git a/worlds/lingo/data/generated.dat b/worlds/lingo/data/generated.dat index e2d3d06bec9642cf1b782cc3751ec542c322b558..789fc0856d62853f80fa5bd332b87c6fdd63ee60 100644 GIT binary patch delta 32275 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

U5jJVz{w%7y6n9Ni@HWmP7_!i>?bhpSWv&*7)( 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 delta 32247 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 UkY1CJx8$FF&puxoG}7^Z0FSwKuK)l5 From ce42e42af78676758f6bd30c1cceb576ebf1fcb6 Mon Sep 17 00:00:00 2001 From: Silvris <58583688+Silvris@users.noreply.github.com> Date: Tue, 17 Sep 2024 07:36:05 -0500 Subject: [PATCH 036/212] Core: fix single player item links (#3721) * fix single player item links * Make a variable and fix weird spacing * use advancement instead of classification --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- BaseClasses.py | 2 ++ Fill.py | 20 +++++++++----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index b40b872f0c8c..a5de1689a7fe 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -342,6 +342,8 @@ def find_common_pool(players: Set[int], shared_pool: Set[str]) -> Tuple[ region = Region("Menu", group_id, self, "ItemLink") self.regions.append(region) locations = region.locations + # ensure that progression items are linked first, then non-progression + self.itempool.sort(key=lambda item: item.advancement) for item in self.itempool: count = common_item_count.get(item.player, {}).get(item.name, 0) if count: diff --git a/Fill.py b/Fill.py index e2fcff00358e..706cca657457 100644 --- a/Fill.py +++ b/Fill.py @@ -475,28 +475,26 @@ def mark_for_locking(location: Location): nonlocal lock_later lock_later.append(location) + single_player = multiworld.players == 1 and not multiworld.groups + if prioritylocations: # "priority fill" fill_restrictive(multiworld, multiworld.state, prioritylocations, progitempool, - single_player_placement=multiworld.players == 1, swap=False, on_place=mark_for_locking, - name="Priority") + single_player_placement=single_player, swap=False, on_place=mark_for_locking, name="Priority") accessibility_corrections(multiworld, multiworld.state, prioritylocations, progitempool) defaultlocations = prioritylocations + defaultlocations if progitempool: # "advancement/progression fill" if panic_method == "swap": - fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool, - swap=True, - name="Progression", single_player_placement=multiworld.players == 1) + fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool, swap=True, + name="Progression", single_player_placement=single_player) elif panic_method == "raise": - fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool, - swap=False, - name="Progression", single_player_placement=multiworld.players == 1) + fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool, swap=False, + name="Progression", single_player_placement=single_player) elif panic_method == "start_inventory": - fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool, - swap=False, allow_partial=True, - name="Progression", single_player_placement=multiworld.players == 1) + fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool, swap=False, + allow_partial=True, name="Progression", single_player_placement=single_player) if progitempool: for item in progitempool: logging.debug(f"Moved {item} to start_inventory to prevent fill failure.") From b8d23ec5956cbf8313c328e4f3f9f9d08c9e0492 Mon Sep 17 00:00:00 2001 From: Mysteryem Date: Tue, 17 Sep 2024 13:41:56 +0100 Subject: [PATCH 037/212] MMBN3: Add missing indirect conditions (#3931) Entrances to SciLab_Cyberworld and Yoka_Cyberworld had logic for being able to reach SciLab_Overworld, but did not register this indirect condition. Entrances to Beach_Cyberworld had logic for being able to reach Yoka_Overworld, but did not register this indirect condition. Entrances to Undernet and Secret_Area had logic for having a high enough explore score, but explore score is calculated based on the accessibility of a number of regions and no indirect conditions were being registered for these regions. --- worlds/mmbn3/__init__.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/worlds/mmbn3/__init__.py b/worlds/mmbn3/__init__.py index 97725e728bae..6d28b101c377 100644 --- a/worlds/mmbn3/__init__.py +++ b/worlds/mmbn3/__init__.py @@ -97,6 +97,28 @@ def create_regions(self) -> None: add_item_rule(loc, lambda item: not item.advancement) region.locations.append(loc) self.multiworld.regions.append(region) + + # Regions which contribute to explore score when accessible. + explore_score_region_names = ( + RegionName.WWW_Island, + RegionName.SciLab_Overworld, + RegionName.SciLab_Cyberworld, + RegionName.Yoka_Overworld, + RegionName.Yoka_Cyberworld, + RegionName.Beach_Overworld, + RegionName.Beach_Cyberworld, + RegionName.Undernet, + RegionName.Deep_Undernet, + RegionName.Secret_Area, + ) + explore_score_regions = [self.get_region(region_name) for region_name in explore_score_region_names] + + # Entrances which use explore score in their logic need to register all the explore score regions as indirect + # conditions. + def register_explore_score_indirect_conditions(entrance): + for explore_score_region in explore_score_regions: + self.multiworld.register_indirect_condition(explore_score_region, entrance) + for region_info in regions: region = name_to_region[region_info.name] for connection in region_info.connections: @@ -119,6 +141,7 @@ def create_regions(self) -> None: entrance.access_rule = lambda state: \ state.has(ItemName.CSciPas, self.player) or \ state.can_reach(RegionName.SciLab_Overworld, "Region", self.player) + self.multiworld.register_indirect_condition(self.get_region(RegionName.SciLab_Overworld), entrance) if connection == RegionName.Yoka_Cyberworld: entrance.access_rule = lambda state: \ state.has(ItemName.CYokaPas, self.player) or \ @@ -126,16 +149,19 @@ def create_regions(self) -> None: state.can_reach(RegionName.SciLab_Overworld, "Region", self.player) and state.has(ItemName.Press, self.player) ) + self.multiworld.register_indirect_condition(self.get_region(RegionName.SciLab_Overworld), entrance) if connection == RegionName.Beach_Cyberworld: entrance.access_rule = lambda state: state.has(ItemName.CBeacPas, self.player) and\ state.can_reach(RegionName.Yoka_Overworld, "Region", self.player) - + self.multiworld.register_indirect_condition(self.get_region(RegionName.Yoka_Overworld), entrance) if connection == RegionName.Undernet: entrance.access_rule = lambda state: self.explore_score(state) > 8 and\ state.has(ItemName.Press, self.player) + register_explore_score_indirect_conditions(entrance) if connection == RegionName.Secret_Area: entrance.access_rule = lambda state: self.explore_score(state) > 12 and\ state.has(ItemName.Hammer, self.player) + register_explore_score_indirect_conditions(entrance) if connection == RegionName.WWW_Island: entrance.access_rule = lambda state:\ state.has(ItemName.Progressive_Undernet_Rank, self.player, 8) From 4692e6f08aa9c7cea764be0f079e506e17c695b0 Mon Sep 17 00:00:00 2001 From: Silvris <58583688+Silvris@users.noreply.github.com> Date: Tue, 17 Sep 2024 07:42:19 -0500 Subject: [PATCH 038/212] MM2: fix Air Shooter minimum damage #3922 --- worlds/mm2/rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/mm2/rules.py b/worlds/mm2/rules.py index c30688f2adbe..eddd09927445 100644 --- a/worlds/mm2/rules.py +++ b/worlds/mm2/rules.py @@ -37,7 +37,7 @@ minimum_weakness_requirement: Dict[int, int] = { 0: 1, # Mega Buster is free 1: 14, # 2 shots of Atomic Fire - 2: 1, # 14 shots of Air Shooter, although you likely hit more than one shot + 2: 2, # 14 shots of Air Shooter 3: 4, # 9 uses of Leaf Shield, 3 ends up 1 damage off 4: 1, # 56 uses of Bubble Lead 5: 1, # 224 uses of Quick Boomerang From 1c0cec0de2311f818c1a19b4f0d91219e0d9c852 Mon Sep 17 00:00:00 2001 From: digiholic Date: Tue, 17 Sep 2024 06:42:48 -0600 Subject: [PATCH 039/212] [OSRS] Adds Description to OSRS World #3921 --- worlds/osrs/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/worlds/osrs/__init__.py b/worlds/osrs/__init__.py index 1b7ca9c1e0f4..49aa1666084e 100644 --- a/worlds/osrs/__init__.py +++ b/worlds/osrs/__init__.py @@ -33,6 +33,12 @@ class OSRSWeb(WebWorld): class OSRSWorld(World): + """ + The best retro fantasy MMORPG on the planet. Old School is RuneScape butâ€Ļ older! This is the open world you know and love, but as it was in 2007. + The Randomizer takes the form of a Chunk-Restricted f2p Ironman that takes a brand new account up through defeating + the Green Dragon of Crandor and earning a spot in the fabled Champion's Guild! + """ + game = "Old School Runescape" options_dataclass = OSRSOptions options: OSRSOptions @@ -635,7 +641,7 @@ def can_gold(state): else: return lambda state: can_tan(state) or (can_silver(state) and can_smelt_silver(state)) or \ (can_gold(state) and can_smelt_gold(state)) - if skill.lower() == "Cooking": + if skill.lower() == "cooking": if self.options.brutal_grinds or level < 15: return lambda state: state.can_reach(RegionNames.Milk, "Region", self.player) or \ state.can_reach(RegionNames.Egg, "Region", self.player) or \ From f8d3c26e3c6e4972f7845c6cd10bede41d8fd7cf Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Tue, 17 Sep 2024 05:43:22 -0700 Subject: [PATCH 040/212] Pokemon Emerald: Fix unguarded wonder trade write (#3939) --- worlds/pokemon_emerald/client.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/worlds/pokemon_emerald/client.py b/worlds/pokemon_emerald/client.py index cda829def9d9..d742b8936f14 100644 --- a/worlds/pokemon_emerald/client.py +++ b/worlds/pokemon_emerald/client.py @@ -133,6 +133,7 @@ class PokemonEmeraldClient(BizHawkClient): latest_wonder_trade_reply: dict wonder_trade_cooldown: int wonder_trade_cooldown_timer: int + queued_received_trade: Optional[str] death_counter: Optional[int] previous_death_link: float @@ -153,6 +154,7 @@ def initialize_client(self): self.previous_death_link = 0 self.ignore_next_death_link = False self.current_map = None + self.queued_received_trade = None async def validate_rom(self, ctx: "BizHawkClientContext") -> bool: from CommonClient import logger @@ -548,22 +550,29 @@ async def handle_wonder_trade(self, ctx: "BizHawkClientContext", guards: Dict[st (sb1_address + 0x37CC, [1], "System Bus"), ]) elif trade_is_sent != 0 and wonder_trade_pokemon_data[19] != 2: - # Game is waiting on receiving a trade. See if there are any available trades that were not - # sent by this player, and if so, try to receive one. - if self.wonder_trade_cooldown_timer <= 0 and f"pokemon_wonder_trades_{ctx.team}" in ctx.stored_data: + # Game is waiting on receiving a trade. + if self.queued_received_trade is not None: + # Client is holding a trade, ready to write it into the game + success = await bizhawk.guarded_write(ctx.bizhawk_ctx, [ + (sb1_address + 0x377C, json_to_pokemon_data(self.queued_received_trade), "System Bus"), + ], [guards["SAVE BLOCK 1"]]) + + # Notify the player if it was written, otherwise hold it for the next loop + if success: + logger.info("Wonder trade received!") + self.queued_received_trade = None + + elif self.wonder_trade_cooldown_timer <= 0 and f"pokemon_wonder_trades_{ctx.team}" in ctx.stored_data: + # See if there are any available trades that were not sent by this player. If so, try to receive one. if any(item[0] != ctx.slot for key, item in ctx.stored_data.get(f"pokemon_wonder_trades_{ctx.team}", {}).items() if key != "_lock" and orjson.loads(item[1])["species"] <= 386): - received_trade = await self.wonder_trade_receive(ctx) - if received_trade is None: + self.queued_received_trade = await self.wonder_trade_receive(ctx) + if self.queued_received_trade is None: self.wonder_trade_cooldown_timer = self.wonder_trade_cooldown self.wonder_trade_cooldown *= 2 self.wonder_trade_cooldown += random.randrange(0, 500) else: - await bizhawk.write(ctx.bizhawk_ctx, [ - (sb1_address + 0x377C, json_to_pokemon_data(received_trade), "System Bus"), - ]) - logger.info("Wonder trade received!") self.wonder_trade_cooldown = 5000 else: From ec50b0716aa280c7bf4ce7a13691de8dc95f8b34 Mon Sep 17 00:00:00 2001 From: qwint Date: Tue, 17 Sep 2024 07:44:32 -0500 Subject: [PATCH 041/212] Core: Add color conversions for colorama/terminal output #3940 --- NetUtils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/NetUtils.py b/NetUtils.py index c451fa3f8460..4776b228db17 100644 --- a/NetUtils.py +++ b/NetUtils.py @@ -273,7 +273,8 @@ def _handle_color(self, node: JSONMessagePart): color_codes = {'reset': 0, 'bold': 1, 'underline': 4, 'black': 30, 'red': 31, 'green': 32, 'yellow': 33, 'blue': 34, 'magenta': 35, 'cyan': 36, 'white': 37, 'black_bg': 40, 'red_bg': 41, 'green_bg': 42, 'yellow_bg': 43, - 'blue_bg': 44, 'magenta_bg': 45, 'cyan_bg': 46, 'white_bg': 47} + 'blue_bg': 44, 'magenta_bg': 45, 'cyan_bg': 46, 'white_bg': 47, + 'plum': 35, 'slateblue': 34, 'salmon': 31,} # convert ui colors to terminal colors def color_code(*args): From 96542fb2d891ff26c86b8a652907980ea3686702 Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Tue, 17 Sep 2024 09:08:15 -0400 Subject: [PATCH 042/212] Blasphemous: Move pre_fill to create_items #3901 --- worlds/blasphemous/__init__.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/worlds/blasphemous/__init__.py b/worlds/blasphemous/__init__.py index b110c316da48..67031710e4eb 100644 --- a/worlds/blasphemous/__init__.py +++ b/worlds/blasphemous/__init__.py @@ -199,8 +199,6 @@ def create_items(self): self.multiworld.itempool += pool - - def pre_fill(self): self.place_items_from_dict(unrandomized_dict) if self.options.thorn_shuffle == "vanilla": @@ -335,4 +333,4 @@ class BlasphemousItem(Item): class BlasphemousLocation(Location): - game: str = "Blasphemous" \ No newline at end of file + game: str = "Blasphemous" From dae3fe188d253bfd8340a15ff5b44a8189413008 Mon Sep 17 00:00:00 2001 From: Mysteryem Date: Tue, 17 Sep 2024 14:11:35 +0100 Subject: [PATCH 043/212] OOT: Fix incorrect region accessibility after update_reachable_regions() (#3712) `CollectionState.update_reachable_regions()` un-stales the state for all players, but when checking `OOTRegion.can_reach()`, it would only update OOT's age region accessibility when the state was stale, so if the state was always un-staled by `update_reachable_regions()` immediately before `OOTRegion.can_reach()`, OOT's age region accessibility would never update. This patch fixes the issue by replacing use of CollectionState.stale with a separate stale state dictionary specific to OOT that is only un-staled by `_oot_update_age_reachable_regions()`. OOT's collect() and remove() implementations have been updated to stale the new OOT-specific state. --- worlds/oot/Regions.py | 2 +- worlds/oot/Rules.py | 13 +++++++++---- worlds/oot/__init__.py | 9 +++++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/worlds/oot/Regions.py b/worlds/oot/Regions.py index 5d5cc9b13822..4a3d7e416a15 100644 --- a/worlds/oot/Regions.py +++ b/worlds/oot/Regions.py @@ -64,7 +64,7 @@ def get_scene(self): return None def can_reach(self, state): - if state.stale[self.player]: + if state._oot_stale[self.player]: stored_age = state.age[self.player] state._oot_update_age_reachable_regions(self.player) state.age[self.player] = stored_age diff --git a/worlds/oot/Rules.py b/worlds/oot/Rules.py index 4bbf15435cfe..36563a3f9f27 100644 --- a/worlds/oot/Rules.py +++ b/worlds/oot/Rules.py @@ -8,12 +8,17 @@ from .Items import oot_is_item_of_type from .LocationList import dungeon_song_locations -from BaseClasses import CollectionState +from BaseClasses import CollectionState, MultiWorld from worlds.generic.Rules import set_rule, add_rule, add_item_rule, forbid_item from ..AutoWorld import LogicMixin class OOTLogic(LogicMixin): + def init_mixin(self, parent: MultiWorld): + # Separate stale state for OOTRegion.can_reach() to use because CollectionState.update_reachable_regions() sets + # `self.state[player] = False` for all players without updating OOT's age region accessibility. + self._oot_stale = {player: True for player, world in parent.worlds.items() + if parent.worlds[player].game == "Ocarina of Time"} def _oot_has_stones(self, count, player): return self.has_group("stones", player, count) @@ -92,9 +97,9 @@ def _oot_reach_at_time(self, regionname, tod, already_checked, player): return False # Store the age before calling this! - def _oot_update_age_reachable_regions(self, player): - self.stale[player] = False - for age in ['child', 'adult']: + def _oot_update_age_reachable_regions(self, player): + self._oot_stale[player] = False + for age in ['child', 'adult']: self.age[player] = age rrp = getattr(self, f'{age}_reachable_regions')[player] bc = getattr(self, f'{age}_blocked_connections')[player] diff --git a/worlds/oot/__init__.py b/worlds/oot/__init__.py index ee78958b2dbe..94587a41a0f2 100644 --- a/worlds/oot/__init__.py +++ b/worlds/oot/__init__.py @@ -1301,6 +1301,7 @@ def write_spoiler(self, spoiler_handle: typing.TextIO) -> None: # the appropriate number of keys in the collection state when they are # picked up. def collect(self, state: CollectionState, item: OOTItem) -> bool: + state._oot_stale[self.player] = True if item.advancement and item.special and item.special.get('alias', False): alt_item_name, count = item.special.get('alias') state.prog_items[self.player][alt_item_name] += count @@ -1313,8 +1314,12 @@ def remove(self, state: CollectionState, item: OOTItem) -> bool: state.prog_items[self.player][alt_item_name] -= count if state.prog_items[self.player][alt_item_name] < 1: del (state.prog_items[self.player][alt_item_name]) + state._oot_stale[self.player] = True return True - return super().remove(state, item) + changed = super().remove(state, item) + if changed: + state._oot_stale[self.player] = True + return changed # Helper functions @@ -1389,7 +1394,7 @@ def get_state_with_complete_itempool(self): # If free_scarecrow give Scarecrow Song if self.free_scarecrow: all_state.collect(self.create_item("Scarecrow Song"), prevent_sweep=True) - all_state.stale[self.player] = True + all_state._oot_stale[self.player] = True return all_state From 97be5f1dde63e4fbec51f8973a184a7c66dd6a37 Mon Sep 17 00:00:00 2001 From: Rensen3 <127029481+Rensen3@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:13:19 +0200 Subject: [PATCH 044/212] YGO06: slotdata fix (#3953) * YGO06: fix slot data for universal tracker * YGO06: put Extremely Low Deck Bonus after Low Deck Bonus --- worlds/yugioh06/__init__.py | 2 +- worlds/yugioh06/rules.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/worlds/yugioh06/__init__.py b/worlds/yugioh06/__init__.py index 1cf44f090fed..a39b52cd09d5 100644 --- a/worlds/yugioh06/__init__.py +++ b/worlds/yugioh06/__init__.py @@ -430,7 +430,7 @@ def fill_slot_data(self) -> Dict[str, Any]: "final_campaign_boss_campaign_opponents": self.options.final_campaign_boss_campaign_opponents.value, "fourth_tier_5_campaign_boss_campaign_opponents": - self.options.fourth_tier_5_campaign_boss_unlock_condition.value, + self.options.fourth_tier_5_campaign_boss_campaign_opponents.value, "third_tier_5_campaign_boss_campaign_opponents": self.options.third_tier_5_campaign_boss_campaign_opponents.value, "number_of_challenges": self.options.number_of_challenges.value, diff --git a/worlds/yugioh06/rules.py b/worlds/yugioh06/rules.py index a804c7e7286a..0b46e0b5d0b0 100644 --- a/worlds/yugioh06/rules.py +++ b/worlds/yugioh06/rules.py @@ -39,10 +39,10 @@ def set_rules(world): "No Trap Cards Bonus": lambda state: yugioh06_difficulty(state, player, 2), "No Damage Bonus": lambda state: state.has_group("Campaign Boss Beaten", player, 3), "Low Deck Bonus": lambda state: state.has_any(["Reasoning", "Monster Gate", "Magical Merchant"], player) and - yugioh06_difficulty(state, player, 3), + yugioh06_difficulty(state, player, 2), "Extremely Low Deck Bonus": lambda state: state.has_any(["Reasoning", "Monster Gate", "Magical Merchant"], player) and - yugioh06_difficulty(state, player, 2), + yugioh06_difficulty(state, player, 3), "Opponent's Turn Finish Bonus": lambda state: yugioh06_difficulty(state, player, 2), "Exactly 0 LP Bonus": lambda state: yugioh06_difficulty(state, player, 2), "Reversal Finish Bonus": lambda state: yugioh06_difficulty(state, player, 2), From 5aea8d4ab56fcb063ce672d44bcf1d97229d705d Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Tue, 17 Sep 2024 06:14:05 -0700 Subject: [PATCH 045/212] Pokemon Emerald: Update changelog (#3952) --- worlds/pokemon_emerald/CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/worlds/pokemon_emerald/CHANGELOG.md b/worlds/pokemon_emerald/CHANGELOG.md index 0437c0dae8ff..6a1844e79fde 100644 --- a/worlds/pokemon_emerald/CHANGELOG.md +++ b/worlds/pokemon_emerald/CHANGELOG.md @@ -1,3 +1,21 @@ +# 2.3.0 + +### Features + +- Added a Swedish translation of the setup guide. +- The client communicates map transitions to any trackers connected to the slot. +- Added the player's Normalize Encounter Rates option to slot data for trackers. + +### Fixes + +- Fixed a logic issue where the "Mauville City - Coin Case from Lady in House" location only required a Harbor Mail if +the player randomized NPC gifts. +- The Dig tutor has its compatibility percentage raised to 50% if the player's TM/tutor compatibility is set lower. +- A Team Magma Grunt in the Space Center which could become unreachable while trainersanity is active by overlapping +with another NPC was moved to an unoccupied space. +- Fixed a problem where the client would crash on certain operating systems while using certain python versions if the +player tried to wonder trade. + # 2.2.0 ### Features @@ -175,6 +193,7 @@ turn to face you when you run. species equally likely to appear, but makes rare encounters less rare. - Added `Trick House` location group. - Removed `Postgame Locations` location group. +- Added a Spanish translation of the setup guide. ### QoL From 8f7e0dc441610e292cfb1ce5688a2017fe175ae3 Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Tue, 17 Sep 2024 14:17:41 -0700 Subject: [PATCH 046/212] Core: Improve death link option description (#3951) --- Options.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Options.py b/Options.py index b79714635d9e..ac4b2b8cd8bb 100644 --- a/Options.py +++ b/Options.py @@ -1335,7 +1335,7 @@ class PriorityLocations(LocationSet): class DeathLink(Toggle): - """When you die, everyone dies. Of course the reverse is true too.""" + """When you die, everyone who enabled death link dies. Of course, the reverse is true too.""" display_name = "Death Link" rich_text_doc = True From b982e9ebb4eb3a370efb36860b8e51a80881d24a Mon Sep 17 00:00:00 2001 From: Ziktofel Date: Tue, 17 Sep 2024 23:18:43 +0200 Subject: [PATCH 047/212] SC2: Fix /received display bugs (#3949) * SC2: Fix location display in /received command * SC2: Backport broken markup fix in /received output from the dev branch * Cleanup --- worlds/sc2/Client.py | 14 +++++++------- worlds/sc2/ClientGui.py | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/worlds/sc2/Client.py b/worlds/sc2/Client.py index bb325ba1da45..813cf2884517 100644 --- a/worlds/sc2/Client.py +++ b/worlds/sc2/Client.py @@ -97,12 +97,12 @@ class ConfigurableOptionInfo(typing.NamedTuple): class ColouredMessage: - def __init__(self, text: str = '') -> None: + def __init__(self, text: str = '', *, keep_markup: bool = False) -> None: self.parts: typing.List[dict] = [] if text: - self(text) - def __call__(self, text: str) -> 'ColouredMessage': - add_json_text(self.parts, text) + self(text, keep_markup=keep_markup) + def __call__(self, text: str, *, keep_markup: bool = False) -> 'ColouredMessage': + add_json_text(self.parts, text, keep_markup=keep_markup) return self def coloured(self, text: str, colour: str) -> 'ColouredMessage': add_json_text(self.parts, text, type="color", color=colour) @@ -128,7 +128,7 @@ def formatted_print(self, text: str) -> None: # Note(mm): Bold/underline can help readability, but unfortunately the CommonClient does not filter bold tags from command-line output. # Regardless, using `on_print_json` to get formatted text in the GUI and output in the command-line and in the logs, # without having to branch code from CommonClient - self.ctx.on_print_json({"data": [{"text": text}]}) + self.ctx.on_print_json({"data": [{"text": text, "keep_markup": True}]}) def _cmd_difficulty(self, difficulty: str = "") -> bool: """Overrides the current difficulty set for the world. Takes the argument casual, normal, hard, or brutal""" @@ -257,7 +257,7 @@ def print_faction_title(): print_faction_title() has_printed_faction_title = True (ColouredMessage('* ').item(item.item, self.ctx.slot, flags=item.flags) - (" from ").location(item.location, self.ctx.slot) + (" from ").location(item.location, item.player) (" by ").player(item.player) ).send(self.ctx) @@ -278,7 +278,7 @@ def print_faction_title(): for item in received_items_of_this_type: filter_match_count += len(received_items_of_this_type) (ColouredMessage(' * ').item(item.item, self.ctx.slot, flags=item.flags) - (" from ").location(item.location, self.ctx.slot) + (" from ").location(item.location, item.player) (" by ").player(item.player) ).send(self.ctx) diff --git a/worlds/sc2/ClientGui.py b/worlds/sc2/ClientGui.py index 22e444efe7c9..fe62e6162457 100644 --- a/worlds/sc2/ClientGui.py +++ b/worlds/sc2/ClientGui.py @@ -1,7 +1,8 @@ from typing import * import asyncio -from kvui import GameManager, HoverBehavior, ServerToolTip +from NetUtils import JSONMessagePart +from kvui import GameManager, HoverBehavior, ServerToolTip, KivyJSONtoTextParser from kivy.app import App from kivy.clock import Clock from kivy.uix.tabbedpanel import TabbedPanelItem @@ -69,6 +70,18 @@ class MissionLayout(GridLayout): class MissionCategory(GridLayout): pass + +class SC2JSONtoKivyParser(KivyJSONtoTextParser): + def _handle_text(self, node: JSONMessagePart): + if node.get("keep_markup", False): + for ref in node.get("refs", []): + node["text"] = f"[ref={self.ref_count}|{ref}]{node['text']}[/ref]" + self.ref_count += 1 + return super(KivyJSONtoTextParser, self)._handle_text(node) + else: + return super()._handle_text(node) + + class SC2Manager(GameManager): logging_pairs = [ ("Client", "Archipelago"), @@ -87,6 +100,7 @@ class SC2Manager(GameManager): def __init__(self, ctx) -> None: super().__init__(ctx) + self.json_to_kivy_parser = SC2JSONtoKivyParser(ctx) def clear_tooltip(self) -> None: if self.ctx.current_tooltip: From d1a7bc66e6f217d9c024e99b8556c2e981ab208a Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Tue, 17 Sep 2024 14:49:36 -0700 Subject: [PATCH 048/212] Pokemon Emerald: Prevent client from spamming goal status update (#3900) --- worlds/pokemon_emerald/client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/worlds/pokemon_emerald/client.py b/worlds/pokemon_emerald/client.py index d742b8936f14..c91b7d3e26b0 100644 --- a/worlds/pokemon_emerald/client.py +++ b/worlds/pokemon_emerald/client.py @@ -352,6 +352,7 @@ async def game_watcher(self, ctx: "BizHawkClientContext") -> None: # Send game clear if not ctx.finished_game and game_clear: + ctx.finished_game = True await ctx.send_msgs([{ "cmd": "StatusUpdate", "status": ClientStatus.CLIENT_GOAL, From 78c5489189596d3f3851a119efebf58e94cea788 Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Tue, 17 Sep 2024 21:50:02 +0000 Subject: [PATCH 049/212] DS3: Mark the Archdeacon Set as downstream of Deacons of the Deep (#3883) This ensures that if Deacons is replaced with Yhorm, the Storm Ruler won't show up in these locations. --- worlds/dark_souls_3/Bosses.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/worlds/dark_souls_3/Bosses.py b/worlds/dark_souls_3/Bosses.py index 008a29713202..fac7d913c338 100644 --- a/worlds/dark_souls_3/Bosses.py +++ b/worlds/dark_souls_3/Bosses.py @@ -63,6 +63,9 @@ class DS3BossInfo: DS3BossInfo("Deacons of the Deep", 3500800, locations = { "CD: Soul of the Deacons of the Deep", "CD: Small Doll - boss drop", + "CD: Archdeacon White Crown - boss room after killing boss", + "CD: Archdeacon Holy Garb - boss room after killing boss", + "CD: Archdeacon Skirt - boss room after killing boss", "FS: Hawkwood's Shield - gravestone after Hawkwood leaves", }), DS3BossInfo("Abyss Watchers", 3300801, before_storm_ruler = True, locations = { From dc218b79974f5d0418b5d2e200106519256751a0 Mon Sep 17 00:00:00 2001 From: Mrks <68022469+mrkssr@users.noreply.github.com> Date: Tue, 17 Sep 2024 23:56:40 +0200 Subject: [PATCH 050/212] LADX: Adding Slot Data For Magpie Tracker (#3582) * wip: LADX slot_data * LADX: slot_data * Sending slot_data to magpie. * Moved sending slot_data from pushing to pull by Magpie request. * Adding EoF newline to tracker.py. * Update Tracker.py * Update __init__.py * Update LinksAwakeningClient.py --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- LinksAwakeningClient.py | 5 +++++ worlds/ladx/Tracker.py | 18 +++++++++++++++++- worlds/ladx/__init__.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/LinksAwakeningClient.py b/LinksAwakeningClient.py index a51645feac92..298788098d9e 100644 --- a/LinksAwakeningClient.py +++ b/LinksAwakeningClient.py @@ -467,6 +467,8 @@ class LinksAwakeningContext(CommonContext): def __init__(self, server_address: typing.Optional[str], password: typing.Optional[str], magpie: typing.Optional[bool]) -> None: self.client = LinksAwakeningClient() + self.slot_data = {} + if magpie: self.magpie_enabled = True self.magpie = MagpieBridge() @@ -564,6 +566,8 @@ async def server_auth(self, password_requested: bool = False): def on_package(self, cmd: str, args: dict): if cmd == "Connected": self.game = self.slot_info[self.slot].game + self.slot_data = args.get("slot_data", {}) + # TODO - use watcher_event if cmd == "ReceivedItems": for index, item in enumerate(args["items"], start=args["index"]): @@ -628,6 +632,7 @@ async def deathlink(): self.magpie.set_checks(self.client.tracker.all_checks) await self.magpie.set_item_tracker(self.client.item_tracker) await self.magpie.send_gps(self.client.gps_tracker) + self.magpie.slot_data = self.slot_data except Exception: # Don't let magpie errors take out the client pass diff --git a/worlds/ladx/Tracker.py b/worlds/ladx/Tracker.py index 851fca164453..5f48b64c4f5e 100644 --- a/worlds/ladx/Tracker.py +++ b/worlds/ladx/Tracker.py @@ -149,6 +149,8 @@ class MagpieBridge: item_tracker = None ws = None features = [] + slot_data = {} + async def handler(self, websocket): self.ws = websocket while True: @@ -163,6 +165,9 @@ async def handler(self, websocket): await self.send_all_inventory() if "checks" in self.features: await self.send_all_checks() + if "slot_data" in self.features: + await self.send_slot_data(self.slot_data) + # Translate renamed IDs back to LADXR IDs @staticmethod def fixup_id(the_id): @@ -222,6 +227,18 @@ async def send_gps(self, gps): return await gps.send_location(self.ws) + async def send_slot_data(self, slot_data): + if not self.ws: + return + + logger.debug("Sending slot_data to magpie.") + message = { + "type": "slot_data", + "slot_data": slot_data + } + + await self.ws.send(json.dumps(message)) + async def serve(self): async with websockets.serve(lambda w: self.handler(w), "", 17026, logger=logger): await asyncio.Future() # run forever @@ -237,4 +254,3 @@ async def set_item_tracker(self, item_tracker): await self.send_all_inventory() else: await self.send_inventory_diffs() - diff --git a/worlds/ladx/__init__.py b/worlds/ladx/__init__.py index c958ef212fe4..79f1fe470f81 100644 --- a/worlds/ladx/__init__.py +++ b/worlds/ladx/__init__.py @@ -512,3 +512,31 @@ def remove(self, state, item: Item) -> bool: if change and item.name in self.rupees: state.prog_items[self.player]["RUPEES"] -= self.rupees[item.name] return change + + def fill_slot_data(self): + slot_data = {} + + if not self.multiworld.is_race: + # all of these option are NOT used by the LADX- or Text-Client. + # they are used by Magpie tracker (https://github.com/kbranch/Magpie/wiki/Autotracker-API) + # for convenient auto-tracking of the generated settings and adjusting the tracker accordingly + + slot_options = ["instrument_count"] + + slot_options_display_name = [ + "goal", "logic", "tradequest", "rooster", + "experimental_dungeon_shuffle", "experimental_entrance_shuffle", "trendy_game", "gfxmod", + "shuffle_nightmare_keys", "shuffle_small_keys", "shuffle_maps", + "shuffle_compasses", "shuffle_stone_beaks", "shuffle_instruments", "nag_messages" + ] + + # use the default behaviour to grab options + slot_data = self.options.as_dict(*slot_options) + + # for options which should not get the internal int value but the display name use the extra handling + slot_data.update({ + option: value.current_key + for option, value in dataclasses.asdict(self.options).items() if option in slot_options_display_name + }) + + return slot_data From 4ea1dddd2f420bca6a73e13d04228931f04a3834 Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Tue, 17 Sep 2024 17:57:55 -0400 Subject: [PATCH 051/212] TUNIC: Better logic for Library Lab glass and Fortress leaf piles #3880 --- worlds/tunic/er_rules.py | 15 ++++++++++++++- worlds/tunic/rules.py | 13 ++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/worlds/tunic/er_rules.py b/worlds/tunic/er_rules.py index 65175e41ca14..ee48f60eaca4 100644 --- a/worlds/tunic/er_rules.py +++ b/worlds/tunic/er_rules.py @@ -1339,13 +1339,26 @@ def set_er_location_rules(world: "TunicWorld") -> None: set_rule(world.get_location("Frog's Domain - Escape Chest"), lambda state: state.has_any({grapple, laurels}, player)) + # Library Lab + set_rule(world.get_location("Library Lab - Page 1"), + lambda state: has_stick(state, player) or state.has_any((fire_wand, gun), player)) + set_rule(world.get_location("Library Lab - Page 2"), + lambda state: has_stick(state, player) or state.has_any((fire_wand, gun), player)) + set_rule(world.get_location("Library Lab - Page 3"), + lambda state: has_stick(state, player) or state.has_any((fire_wand, gun), player)) + # Eastern Vault Fortress set_rule(world.get_location("Fortress Arena - Hexagon Red"), lambda state: state.has(vault_key, player)) + # yes, you can clear the leaves with dagger + # gun isn't included since it can only break one leaf pile at a time, and we don't check how much mana you have + # but really, I expect the player to just throw a bomb at them if they don't have melee + set_rule(world.get_location("Fortress Leaf Piles - Secret Chest"), + lambda state: has_stick(state, player) or state.has(ice_dagger, player)) # Beneath the Vault set_rule(world.get_location("Beneath the Fortress - Bridge"), - lambda state: state.has_group("Melee Weapons", player, 1) or state.has_any({laurels, fire_wand}, player)) + lambda state: has_stick(state, player) or state.has_any({laurels, fire_wand}, player)) # Quarry set_rule(world.get_location("Quarry - [Central] Above Ladder Dash Chest"), diff --git a/worlds/tunic/rules.py b/worlds/tunic/rules.py index 942bbc773aa5..14ed84d44964 100644 --- a/worlds/tunic/rules.py +++ b/worlds/tunic/rules.py @@ -296,9 +296,20 @@ def set_location_rules(world: "TunicWorld") -> None: set_rule(world.get_location("Frog's Domain - Escape Chest"), lambda state: state.has_any({grapple, laurels}, player)) + # Library Lab + set_rule(world.get_location("Library Lab - Page 1"), + lambda state: has_stick(state, player) or state.has_any((fire_wand, gun), player)) + set_rule(world.get_location("Library Lab - Page 2"), + lambda state: has_stick(state, player) or state.has_any((fire_wand, gun), player)) + set_rule(world.get_location("Library Lab - Page 3"), + lambda state: has_stick(state, player) or state.has_any((fire_wand, gun), player)) + # Eastern Vault Fortress + # yes, you can clear the leaves with dagger + # gun isn't included since it can only break one leaf pile at a time, and we don't check how much mana you have + # but really, I expect the player to just throw a bomb at them if they don't have melee set_rule(world.get_location("Fortress Leaf Piles - Secret Chest"), - lambda state: state.has(laurels, player)) + lambda state: state.has(laurels, player) and (has_stick(state, player) or state.has(ice_dagger, player))) set_rule(world.get_location("Fortress Arena - Siege Engine/Vault Key Pickup"), lambda state: has_sword(state, player) and (has_ability(prayer, state, world) From 30a0b337a2bc79407127b6b60a86c4c1793bc5be Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Tue, 17 Sep 2024 17:58:45 -0400 Subject: [PATCH 052/212] DS3: Make Red Eye Orb always require Lift Chamber Key #3857 --- worlds/dark_souls_3/__init__.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/worlds/dark_souls_3/__init__.py b/worlds/dark_souls_3/__init__.py index 46c7ef1336c1..b51668539be2 100644 --- a/worlds/dark_souls_3/__init__.py +++ b/worlds/dark_souls_3/__init__.py @@ -612,9 +612,7 @@ def set_rules(self) -> None: self._add_entrance_rule("Painted World of Ariandel (Before Contraption)", "Basin of Vows") # Define the access rules to some specific locations - if self._is_location_available("FS: Lift Chamber Key - Leonhard"): - self._add_location_rule("HWL: Red Eye Orb - wall tower, miniboss", - "Lift Chamber Key") + self._add_location_rule("HWL: Red Eye Orb - wall tower, miniboss", "Lift Chamber Key") self._add_location_rule("ID: Bellowing Dragoncrest Ring - drop from B1 towards pit", "Jailbreaker's Key") self._add_location_rule("ID: Covetous Gold Serpent Ring - Siegward's cell", "Old Cell Key") From 4e60f3cc54063051393cdd7bd253464398a08146 Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Tue, 17 Sep 2024 17:00:26 -0500 Subject: [PATCH 053/212] The Messenger: Fix Portal Plando Issues (#3838) * add a more clear error message for a missing exit * remove portal region from the available pool * ensure plando portals are in the correct spot in the list and it gets cleared correctly --- worlds/messenger/portals.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/worlds/messenger/portals.py b/worlds/messenger/portals.py index 1da210cb23ff..17152a1a1538 100644 --- a/worlds/messenger/portals.py +++ b/worlds/messenger/portals.py @@ -215,13 +215,13 @@ def create_mapping(in_portal: str, warp: str) -> str: if "Portal" in warp: exit_string += "Portal" - world.portal_mapping.append(int(f"{REGION_ORDER.index(parent)}00")) + world.portal_mapping.insert(PORTALS.index(in_portal), int(f"{REGION_ORDER.index(parent)}00")) elif warp in SHOP_POINTS[parent]: exit_string += f"{warp} Shop" - world.portal_mapping.append(int(f"{REGION_ORDER.index(parent)}1{SHOP_POINTS[parent].index(warp)}")) + world.portal_mapping.insert(PORTALS.index(in_portal), int(f"{REGION_ORDER.index(parent)}1{SHOP_POINTS[parent].index(warp)}")) else: exit_string += f"{warp} Checkpoint" - world.portal_mapping.append(int(f"{REGION_ORDER.index(parent)}2{CHECKPOINTS[parent].index(warp)}")) + world.portal_mapping.insert(PORTALS.index(in_portal), int(f"{REGION_ORDER.index(parent)}2{CHECKPOINTS[parent].index(warp)}")) world.spoiler_portal_mapping[in_portal] = exit_string connect_portal(world, in_portal, exit_string) @@ -230,12 +230,15 @@ def create_mapping(in_portal: str, warp: str) -> str: def handle_planned_portals(plando_connections: List[PlandoConnection]) -> None: """checks the provided plando connections for portals and connects them""" + nonlocal available_portals + for connection in plando_connections: - if connection.entrance not in PORTALS: - continue # let it crash here if input is invalid - create_mapping(connection.entrance, connection.exit) + available_portals.remove(connection.exit) + parent = create_mapping(connection.entrance, connection.exit) world.plando_portals.append(connection.entrance) + if shuffle_type < ShufflePortals.option_anywhere: + available_portals = [port for port in available_portals if port not in shop_points[parent]] shuffle_type = world.options.shuffle_portals shop_points = deepcopy(SHOP_POINTS) @@ -251,8 +254,13 @@ def handle_planned_portals(plando_connections: List[PlandoConnection]) -> None: plando = world.options.portal_plando.value if not plando: plando = world.options.plando_connections.value - if plando and world.multiworld.plando_options & PlandoOptions.connections: - handle_planned_portals(plando) + if plando and world.multiworld.plando_options & PlandoOptions.connections and not world.plando_portals: + try: + handle_planned_portals(plando) + # any failure i expect will trigger on available_portals.remove + except ValueError: + raise ValueError(f"Unable to complete portal plando for Player {world.player_name}. " + f"If you attempted to plando a checkpoint, checkpoints must be shuffled.") for portal in PORTALS: if portal in world.plando_portals: @@ -276,8 +284,13 @@ def disconnect_portals(world: "MessengerWorld") -> None: entrance.connected_region = None if portal in world.spoiler_portal_mapping: del world.spoiler_portal_mapping[portal] - if len(world.portal_mapping) > len(world.spoiler_portal_mapping): - world.portal_mapping = world.portal_mapping[:len(world.spoiler_portal_mapping)] + if world.plando_portals: + indexes = [PORTALS.index(portal) for portal in world.plando_portals] + planned_portals = [] + for index, portal_coord in enumerate(world.portal_mapping): + if index in indexes: + planned_portals.append(portal_coord) + world.portal_mapping = planned_portals def validate_portals(world: "MessengerWorld") -> bool: From a7c96436d9b8f51b98533141815fc4658cbb256a Mon Sep 17 00:00:00 2001 From: agilbert1412 Date: Wed, 18 Sep 2024 01:03:33 +0300 Subject: [PATCH 054/212] Stardew valley: Add Marlon bedroom entrance rule (#3735) * - Created a test for the "Mapping Cave Systems" book * - Added missing rule to marlon's bedroom * - Can kill any monster, not just green slime * - Added a compound source structure, but I ended up deciding to not use it here. Still keeping it as it will probably be useful eventually * - Use the compound source of the monster compoundium (ironic, I know) * - Add required elevators --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- .../content/vanilla/pelican_town.py | 8 +++--- worlds/stardew_valley/data/game_item.py | 5 ++++ worlds/stardew_valley/logic/source_logic.py | 12 +++++++-- worlds/stardew_valley/rules.py | 2 ++ worlds/stardew_valley/test/__init__.py | 4 +-- worlds/stardew_valley/test/rules/TestBooks.py | 26 +++++++++++++++++++ 6 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 worlds/stardew_valley/test/rules/TestBooks.py diff --git a/worlds/stardew_valley/content/vanilla/pelican_town.py b/worlds/stardew_valley/content/vanilla/pelican_town.py index 220b46eae2a4..73cc8f119a3e 100644 --- a/worlds/stardew_valley/content/vanilla/pelican_town.py +++ b/worlds/stardew_valley/content/vanilla/pelican_town.py @@ -1,6 +1,6 @@ from ..game_content import ContentPack from ...data import villagers_data, fish_data -from ...data.game_item import GenericSource, ItemTag, Tag, CustomRuleSource +from ...data.game_item import GenericSource, ItemTag, Tag, CustomRuleSource, CompoundSource from ...data.harvest import ForagingSource, SeasonalForagingSource, ArtifactSpotSource from ...data.requirement import ToolRequirement, BookRequirement, SkillRequirement, SeasonRequirement from ...data.shop import ShopSource, MysteryBoxSource, ArtifactTroveSource, PrizeMachineSource, FishingTreasureChestSource @@ -229,8 +229,10 @@ ShopSource(money_price=20000, shop_region=LogicRegion.bookseller_3),), Book.mapping_cave_systems: ( Tag(ItemTag.BOOK, ItemTag.BOOK_POWER), - GenericSource(regions=(Region.adventurer_guild_bedroom,)), - ShopSource(money_price=20000, shop_region=LogicRegion.bookseller_3),), + CompoundSource(sources=( + GenericSource(regions=(Region.adventurer_guild_bedroom,)), + ShopSource(money_price=20000, shop_region=LogicRegion.bookseller_3), + ))), Book.monster_compendium: ( Tag(ItemTag.BOOK, ItemTag.BOOK_POWER), CustomRuleSource(create_rule=lambda logic: logic.monster.can_kill_many(Generic.any)), diff --git a/worlds/stardew_valley/data/game_item.py b/worlds/stardew_valley/data/game_item.py index 2107ca30d33a..6c8d30ed8e6f 100644 --- a/worlds/stardew_valley/data/game_item.py +++ b/worlds/stardew_valley/data/game_item.py @@ -59,6 +59,11 @@ class CustomRuleSource(ItemSource): create_rule: Callable[[Any], StardewRule] +@dataclass(frozen=True, **kw_only) +class CompoundSource(ItemSource): + sources: Tuple[ItemSource, ...] = () + + class Tag(ItemSource): """Not a real source, just a way to add tags to an item. Will be removed from the item sources during unpacking.""" tag: Tuple[ItemTag, ...] diff --git a/worlds/stardew_valley/logic/source_logic.py b/worlds/stardew_valley/logic/source_logic.py index 0e9b8e976f5b..9ef68a020eef 100644 --- a/worlds/stardew_valley/logic/source_logic.py +++ b/worlds/stardew_valley/logic/source_logic.py @@ -12,7 +12,7 @@ from .requirement_logic import RequirementLogicMixin from .tool_logic import ToolLogicMixin from ..data.artisan import MachineSource -from ..data.game_item import GenericSource, ItemSource, GameItem, CustomRuleSource +from ..data.game_item import GenericSource, ItemSource, GameItem, CustomRuleSource, CompoundSource from ..data.harvest import ForagingSource, FruitBatsSource, MushroomCaveSource, SeasonalForagingSource, \ HarvestCropSource, HarvestFruitTreeSource, ArtifactSpotSource from ..data.shop import ShopSource, MysteryBoxSource, ArtifactTroveSource, PrizeMachineSource, FishingTreasureChestSource @@ -25,7 +25,7 @@ def __init__(self, *args, **kwargs): class SourceLogic(BaseLogic[Union[SourceLogicMixin, HasLogicMixin, ReceivedLogicMixin, HarvestingLogicMixin, MoneyLogicMixin, RegionLogicMixin, -ArtisanLogicMixin, ToolLogicMixin, RequirementLogicMixin, GrindLogicMixin]]): + ArtisanLogicMixin, ToolLogicMixin, RequirementLogicMixin, GrindLogicMixin]]): def has_access_to_item(self, item: GameItem): rules = [] @@ -40,6 +40,10 @@ def has_access_to_any(self, sources: Iterable[ItemSource]): return self.logic.or_(*(self.logic.source.has_access_to(source) & self.logic.requirement.meet_all_requirements(source.other_requirements) for source in sources)) + def has_access_to_all(self, sources: Iterable[ItemSource]): + return self.logic.and_(*(self.logic.source.has_access_to(source) & self.logic.requirement.meet_all_requirements(source.other_requirements) + for source in sources)) + @functools.singledispatchmethod def has_access_to(self, source: Any): raise ValueError(f"Sources of type{type(source)} have no rule registered.") @@ -52,6 +56,10 @@ def _(self, source: GenericSource): def _(self, source: CustomRuleSource): return source.create_rule(self.logic) + @has_access_to.register + def _(self, source: CompoundSource): + return self.logic.source.has_access_to_all(source.sources) + @has_access_to.register def _(self, source: ForagingSource): return self.logic.harvesting.can_forage_from(source) diff --git a/worlds/stardew_valley/rules.py b/worlds/stardew_valley/rules.py index e9bdd8c25bbb..7f39ee1ac2d4 100644 --- a/worlds/stardew_valley/rules.py +++ b/worlds/stardew_valley/rules.py @@ -39,6 +39,7 @@ from .strings.entrance_names import dig_to_mines_floor, dig_to_skull_floor, Entrance, move_to_woods_depth, DeepWoodsEntrance, AlecEntrance, \ SVEEntrance, LaceyEntrance, BoardingHouseEntrance, LogicEntrance from .strings.forageable_names import Forageable +from .strings.generic_names import Generic from .strings.geode_names import Geode from .strings.material_names import Material from .strings.metal_names import MetalBar, Mineral @@ -263,6 +264,7 @@ def set_entrance_rules(logic: StardewLogic, multiworld, player, world_options: S set_entrance_rule(multiworld, player, LogicEntrance.buy_experience_books, logic.time.has_lived_months(2)) set_entrance_rule(multiworld, player, LogicEntrance.buy_year1_books, logic.time.has_year_two) set_entrance_rule(multiworld, player, LogicEntrance.buy_year3_books, logic.time.has_year_three) + set_entrance_rule(multiworld, player, Entrance.adventurer_guild_to_bedroom, logic.monster.can_kill_max(Generic.any)) def set_dangerous_mine_rules(logic, multiworld, player, world_options: StardewValleyOptions): diff --git a/worlds/stardew_valley/test/__init__.py b/worlds/stardew_valley/test/__init__.py index e7278cba2800..3fe05d205ce0 100644 --- a/worlds/stardew_valley/test/__init__.py +++ b/worlds/stardew_valley/test/__init__.py @@ -256,10 +256,10 @@ def run_default_tests(self) -> bool: return False return super().run_default_tests - def collect_lots_of_money(self): + def collect_lots_of_money(self, percent: float = 0.25): self.multiworld.state.collect(self.world.create_item("Shipping Bin"), prevent_sweep=False) real_total_prog_items = self.multiworld.worlds[self.player].total_progression_items - required_prog_items = int(round(real_total_prog_items * 0.25)) + required_prog_items = int(round(real_total_prog_items * percent)) for i in range(required_prog_items): self.multiworld.state.collect(self.world.create_item("Stardrop"), prevent_sweep=False) self.multiworld.worlds[self.player].total_progression_items = real_total_prog_items diff --git a/worlds/stardew_valley/test/rules/TestBooks.py b/worlds/stardew_valley/test/rules/TestBooks.py new file mode 100644 index 000000000000..6605e7e645e3 --- /dev/null +++ b/worlds/stardew_valley/test/rules/TestBooks.py @@ -0,0 +1,26 @@ +from ... import options +from ...test import SVTestBase + + +class TestBooksLogic(SVTestBase): + options = { + options.Booksanity.internal_name: options.Booksanity.option_all, + } + + def test_need_weapon_for_mapping_cave_systems(self): + self.collect_lots_of_money(0.5) + + location = self.multiworld.get_location("Read Mapping Cave Systems", self.player) + + self.assert_reach_location_false(location, self.multiworld.state) + + self.collect("Progressive Mine Elevator") + self.collect("Progressive Mine Elevator") + self.collect("Progressive Mine Elevator") + self.collect("Progressive Mine Elevator") + self.assert_reach_location_false(location, self.multiworld.state) + + self.collect("Progressive Weapon") + self.assert_reach_location_true(location, self.multiworld.state) + + From 8c5b65ff26ef7042e94ae7cf211a1e41fdbd31ee Mon Sep 17 00:00:00 2001 From: agilbert1412 Date: Wed, 18 Sep 2024 01:07:40 +0300 Subject: [PATCH 055/212] Stardew Valley: Remove Accessibility and progression balancing from presets #3833 --- worlds/stardew_valley/presets.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/worlds/stardew_valley/presets.py b/worlds/stardew_valley/presets.py index cf6f87a1501c..1861a914235c 100644 --- a/worlds/stardew_valley/presets.py +++ b/worlds/stardew_valley/presets.py @@ -57,8 +57,6 @@ } easy_settings = { - "progression_balancing": ProgressionBalancing.default, - "accessibility": Accessibility.option_full, Goal.internal_name: Goal.option_community_center, FarmType.internal_name: "random", StartingMoney.internal_name: "very rich", @@ -103,8 +101,6 @@ } medium_settings = { - "progression_balancing": 25, - "accessibility": Accessibility.option_full, Goal.internal_name: Goal.option_community_center, FarmType.internal_name: "random", StartingMoney.internal_name: "rich", @@ -149,8 +145,6 @@ } hard_settings = { - "progression_balancing": 0, - "accessibility": Accessibility.option_full, Goal.internal_name: Goal.option_grandpa_evaluation, FarmType.internal_name: "random", StartingMoney.internal_name: "extra", @@ -195,8 +189,6 @@ } nightmare_settings = { - "progression_balancing": 0, - "accessibility": Accessibility.option_full, Goal.internal_name: Goal.option_community_center, FarmType.internal_name: "random", StartingMoney.internal_name: "vanilla", @@ -241,8 +233,6 @@ } short_settings = { - "progression_balancing": ProgressionBalancing.default, - "accessibility": Accessibility.option_full, Goal.internal_name: Goal.option_bottom_of_the_mines, FarmType.internal_name: "random", StartingMoney.internal_name: "filthy rich", @@ -287,8 +277,6 @@ } minsanity_settings = { - "progression_balancing": ProgressionBalancing.default, - "accessibility": Accessibility.option_minimal, Goal.internal_name: Goal.default, FarmType.internal_name: "random", StartingMoney.internal_name: StartingMoney.default, @@ -333,8 +321,6 @@ } allsanity_settings = { - "progression_balancing": ProgressionBalancing.default, - "accessibility": Accessibility.option_full, Goal.internal_name: Goal.default, FarmType.internal_name: "random", StartingMoney.internal_name: StartingMoney.default, From debb93661803dd2b114ee1975ef4dca74d7528df Mon Sep 17 00:00:00 2001 From: sgrunt Date: Tue, 17 Sep 2024 16:08:18 -0600 Subject: [PATCH 056/212] DOOM II: Fix sector 95 assignment in DOOM II MAP17 to correctly flag the BFG9000 location as in the Yellow Key area (#3705) Co-authored-by: sgrunt --- worlds/doom_ii/Locations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/doom_ii/Locations.py b/worlds/doom_ii/Locations.py index 3ce87b8a6662..376f19446f21 100644 --- a/worlds/doom_ii/Locations.py +++ b/worlds/doom_ii/Locations.py @@ -1470,7 +1470,7 @@ class LocationDict(TypedDict, total=False): 'map': 6, 'index': 102, 'doom_type': 2006, - 'region': "Tenements (MAP17) Main"}, + 'region': "Tenements (MAP17) Yellow"}, 361243: {'name': 'Tenements (MAP17) - Plasma gun', 'episode': 2, 'map': 6, From 6fac83b84cab8909e8104c931781ffb9d18945b4 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 18 Sep 2024 00:18:17 +0200 Subject: [PATCH 057/212] Factorio: update API use (#3760) --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- worlds/factorio/Mod.py | 39 ++++----- worlds/factorio/Options.py | 90 +++++++++----------- worlds/factorio/Shapes.py | 10 +-- worlds/factorio/Technologies.py | 5 +- worlds/factorio/__init__.py | 141 ++++++++++++++++---------------- 5 files changed, 136 insertions(+), 149 deletions(-) diff --git a/worlds/factorio/Mod.py b/worlds/factorio/Mod.py index d7b3d4b1ebca..7eec71875829 100644 --- a/worlds/factorio/Mod.py +++ b/worlds/factorio/Mod.py @@ -1,5 +1,6 @@ """Outputs a Factorio Mod to facilitate integration with Archipelago""" +import dataclasses import json import os import shutil @@ -88,6 +89,8 @@ def write_contents(self, opened_zipfile: zipfile.ZipFile): def generate_mod(world: "Factorio", output_directory: str): player = world.player multiworld = world.multiworld + random = world.random + global data_final_template, locale_template, control_template, data_template, settings_template with template_load_lock: if not data_final_template: @@ -110,8 +113,6 @@ def load_template(name: str): mod_name = f"AP-{multiworld.seed_name}-P{player}-{multiworld.get_file_safe_player_name(player)}" versioned_mod_name = mod_name + "_" + Utils.__version__ - random = multiworld.per_slot_randoms[player] - def flop_random(low, high, base=None): """Guarantees 50% below base and 50% above base, uniform distribution in each direction.""" if base: @@ -129,43 +130,43 @@ def flop_random(low, high, base=None): "base_tech_table": base_tech_table, "tech_to_progressive_lookup": tech_to_progressive_lookup, "mod_name": mod_name, - "allowed_science_packs": multiworld.max_science_pack[player].get_allowed_packs(), - "custom_technologies": multiworld.worlds[player].custom_technologies, + "allowed_science_packs": world.options.max_science_pack.get_allowed_packs(), + "custom_technologies": world.custom_technologies, "tech_tree_layout_prerequisites": world.tech_tree_layout_prerequisites, - "slot_name": multiworld.player_name[player], "seed_name": multiworld.seed_name, + "slot_name": world.player_name, "seed_name": multiworld.seed_name, "slot_player": player, - "starting_items": multiworld.starting_items[player], "recipes": recipes, + "starting_items": world.options.starting_items, "recipes": recipes, "random": random, "flop_random": flop_random, - "recipe_time_scale": recipe_time_scales.get(multiworld.recipe_time[player].value, None), - "recipe_time_range": recipe_time_ranges.get(multiworld.recipe_time[player].value, None), + "recipe_time_scale": recipe_time_scales.get(world.options.recipe_time.value, None), + "recipe_time_range": recipe_time_ranges.get(world.options.recipe_time.value, None), "free_sample_blacklist": {item: 1 for item in free_sample_exclusions}, "progressive_technology_table": {tech.name: tech.progressive for tech in progressive_technology_table.values()}, "custom_recipes": world.custom_recipes, - "max_science_pack": multiworld.max_science_pack[player].value, + "max_science_pack": world.options.max_science_pack.value, "liquids": fluids, - "goal": multiworld.goal[player].value, - "energy_link": multiworld.energy_link[player].value, + "goal": world.options.goal.value, + "energy_link": world.options.energy_link.value, "useless_technologies": useless_technologies, - "chunk_shuffle": multiworld.chunk_shuffle[player].value if hasattr(multiworld, "chunk_shuffle") else 0, + "chunk_shuffle": 0, } - for factorio_option in Options.factorio_options: + for factorio_option, factorio_option_instance in dataclasses.asdict(world.options).items(): if factorio_option in ["free_sample_blacklist", "free_sample_whitelist"]: continue - template_data[factorio_option] = getattr(multiworld, factorio_option)[player].value + template_data[factorio_option] = factorio_option_instance.value - if getattr(multiworld, "silo")[player].value == Options.Silo.option_randomize_recipe: + if world.options.silo == Options.Silo.option_randomize_recipe: template_data["free_sample_blacklist"]["rocket-silo"] = 1 - if getattr(multiworld, "satellite")[player].value == Options.Satellite.option_randomize_recipe: + if world.options.satellite == Options.Satellite.option_randomize_recipe: template_data["free_sample_blacklist"]["satellite"] = 1 - template_data["free_sample_blacklist"].update({item: 1 for item in multiworld.free_sample_blacklist[player].value}) - template_data["free_sample_blacklist"].update({item: 0 for item in multiworld.free_sample_whitelist[player].value}) + template_data["free_sample_blacklist"].update({item: 1 for item in world.options.free_sample_blacklist.value}) + template_data["free_sample_blacklist"].update({item: 0 for item in world.options.free_sample_whitelist.value}) zf_path = os.path.join(output_directory, versioned_mod_name + ".zip") - mod = FactorioModFile(zf_path, player=player, player_name=multiworld.player_name[player]) + mod = FactorioModFile(zf_path, player=player, player_name=world.player_name) if world.zip_path: with zipfile.ZipFile(world.zip_path) as zf: diff --git a/worlds/factorio/Options.py b/worlds/factorio/Options.py index 3429ebbd4251..788d1f9e1d92 100644 --- a/worlds/factorio/Options.py +++ b/worlds/factorio/Options.py @@ -1,11 +1,14 @@ from __future__ import annotations -import typing + +from dataclasses import dataclass import datetime +import typing -from Options import Choice, OptionDict, OptionSet, Option, DefaultOnToggle, Range, DeathLink, Toggle, \ - StartInventoryPool from schema import Schema, Optional, And, Or +from Options import Choice, OptionDict, OptionSet, Option, DefaultOnToggle, Range, DeathLink, Toggle, \ + StartInventoryPool, PerGameCommonOptions + # schema helpers FloatRange = lambda low, high: And(Or(int, float), lambda f: low <= f <= high) LuaBool = Or(bool, And(int, lambda n: n in (0, 1))) @@ -422,50 +425,37 @@ class EnergyLink(Toggle): display_name = "EnergyLink" -factorio_options: typing.Dict[str, type(Option)] = { - "max_science_pack": MaxSciencePack, - "goal": Goal, - "tech_tree_layout": TechTreeLayout, - "min_tech_cost": MinTechCost, - "max_tech_cost": MaxTechCost, - "tech_cost_distribution": TechCostDistribution, - "tech_cost_mix": TechCostMix, - "ramping_tech_costs": RampingTechCosts, - "silo": Silo, - "satellite": Satellite, - "free_samples": FreeSamples, - "tech_tree_information": TechTreeInformation, - "starting_items": FactorioStartItems, - "free_sample_blacklist": FactorioFreeSampleBlacklist, - "free_sample_whitelist": FactorioFreeSampleWhitelist, - "recipe_time": RecipeTime, - "recipe_ingredients": RecipeIngredients, - "recipe_ingredients_offset": RecipeIngredientsOffset, - "imported_blueprints": ImportedBlueprint, - "world_gen": FactorioWorldGen, - "progressive": Progressive, - "teleport_traps": TeleportTrapCount, - "grenade_traps": GrenadeTrapCount, - "cluster_grenade_traps": ClusterGrenadeTrapCount, - "artillery_traps": ArtilleryTrapCount, - "atomic_rocket_traps": AtomicRocketTrapCount, - "attack_traps": AttackTrapCount, - "evolution_traps": EvolutionTrapCount, - "evolution_trap_increase": EvolutionTrapIncrease, - "death_link": DeathLink, - "energy_link": EnergyLink, - "start_inventory_from_pool": StartInventoryPool, -} - -# spoilers below. If you spoil it for yourself, please at least don't spoil it for anyone else. -if datetime.datetime.today().month == 4: - - class ChunkShuffle(Toggle): - """Entrance Randomizer.""" - display_name = "Chunk Shuffle" - - - if datetime.datetime.today().day > 1: - ChunkShuffle.__doc__ += """ - 2023 April Fool's option. Shuffles chunk border transitions.""" - factorio_options["chunk_shuffle"] = ChunkShuffle +@dataclass +class FactorioOptions(PerGameCommonOptions): + max_science_pack: MaxSciencePack + goal: Goal + tech_tree_layout: TechTreeLayout + min_tech_cost: MinTechCost + max_tech_cost: MaxTechCost + tech_cost_distribution: TechCostDistribution + tech_cost_mix: TechCostMix + ramping_tech_costs: RampingTechCosts + silo: Silo + satellite: Satellite + free_samples: FreeSamples + tech_tree_information: TechTreeInformation + starting_items: FactorioStartItems + free_sample_blacklist: FactorioFreeSampleBlacklist + free_sample_whitelist: FactorioFreeSampleWhitelist + recipe_time: RecipeTime + recipe_ingredients: RecipeIngredients + recipe_ingredients_offset: RecipeIngredientsOffset + imported_blueprints: ImportedBlueprint + world_gen: FactorioWorldGen + progressive: Progressive + teleport_traps: TeleportTrapCount + grenade_traps: GrenadeTrapCount + cluster_grenade_traps: ClusterGrenadeTrapCount + artillery_traps: ArtilleryTrapCount + atomic_rocket_traps: AtomicRocketTrapCount + attack_traps: AttackTrapCount + evolution_traps: EvolutionTrapCount + evolution_trap_increase: EvolutionTrapIncrease + death_link: DeathLink + energy_link: EnergyLink + start_inventory_from_pool: StartInventoryPool diff --git a/worlds/factorio/Shapes.py b/worlds/factorio/Shapes.py index d40871f7fa82..2a81cc3fb004 100644 --- a/worlds/factorio/Shapes.py +++ b/worlds/factorio/Shapes.py @@ -19,12 +19,10 @@ def _sorter(location: "FactorioScienceLocation"): return location.complexity, location.rel_cost -def get_shapes(factorio_world: "Factorio") -> Dict["FactorioScienceLocation", Set["FactorioScienceLocation"]]: - world = factorio_world.multiworld - player = factorio_world.player +def get_shapes(world: "Factorio") -> Dict["FactorioScienceLocation", Set["FactorioScienceLocation"]]: prerequisites: Dict["FactorioScienceLocation", Set["FactorioScienceLocation"]] = {} - layout = world.tech_tree_layout[player].value - locations: List["FactorioScienceLocation"] = sorted(factorio_world.science_locations, key=lambda loc: loc.name) + layout = world.options.tech_tree_layout.value + locations: List["FactorioScienceLocation"] = sorted(world.science_locations, key=lambda loc: loc.name) world.random.shuffle(locations) if layout == TechTreeLayout.option_single: @@ -247,5 +245,5 @@ def get_shapes(factorio_world: "Factorio") -> Dict["FactorioScienceLocation", Se else: raise NotImplementedError(f"Layout {layout} is not implemented.") - factorio_world.tech_tree_layout_prerequisites = prerequisites + world.tech_tree_layout_prerequisites = prerequisites return prerequisites diff --git a/worlds/factorio/Technologies.py b/worlds/factorio/Technologies.py index 096396c0e774..112cc49f0920 100644 --- a/worlds/factorio/Technologies.py +++ b/worlds/factorio/Technologies.py @@ -13,12 +13,11 @@ from . import Options factorio_tech_id = factorio_base_id = 2 ** 17 -# Factorio technologies are imported from a .json document in /data -source_folder = os.path.join(os.path.dirname(__file__), "data") pool = ThreadPoolExecutor(1) +# Factorio technologies are imported from a .json document in /data def load_json_data(data_name: str) -> Union[List[str], Dict[str, Any]]: return orjson.loads(pkgutil.get_data(__name__, "data/" + data_name + ".json")) @@ -99,7 +98,7 @@ def __init__(self, origin: Technology, world, allowed_packs: Set[str], player: i and ((ingredients & {"chemical-science-pack", "production-science-pack", "utility-science-pack"}) or origin.name == "rocket-silo") self.player = player - if origin.name not in world.worlds[player].special_nodes: + if origin.name not in world.special_nodes: if military_allowed: ingredients.add("military-science-pack") ingredients = list(ingredients) diff --git a/worlds/factorio/__init__.py b/worlds/factorio/__init__.py index 753c567286e0..925327655a24 100644 --- a/worlds/factorio/__init__.py +++ b/worlds/factorio/__init__.py @@ -11,7 +11,7 @@ from worlds.generic import Rules from .Locations import location_pools, location_table from .Mod import generate_mod -from .Options import factorio_options, MaxSciencePack, Silo, Satellite, TechTreeInformation, Goal, TechCostDistribution +from .Options import FactorioOptions, MaxSciencePack, Silo, Satellite, TechTreeInformation, Goal, TechCostDistribution from .Shapes import get_shapes from .Technologies import base_tech_table, recipe_sources, base_technology_table, \ all_ingredient_names, all_product_sources, required_technologies, get_rocket_requirements, \ @@ -89,13 +89,15 @@ class Factorio(World): advancement_technologies: typing.Set[str] web = FactorioWeb() + options_dataclass = FactorioOptions + options: FactorioOptions item_name_to_id = all_items location_name_to_id = location_table item_name_groups = { "Progressive": set(progressive_tech_table.keys()), } - required_client_version = (0, 4, 2) + required_client_version = (0, 5, 0) ordered_science_packs: typing.List[str] = MaxSciencePack.get_ordered_science_packs() tech_tree_layout_prerequisites: typing.Dict[FactorioScienceLocation, typing.Set[FactorioScienceLocation]] @@ -117,32 +119,32 @@ def __init__(self, world, player: int): def generate_early(self) -> None: # if max < min, then swap max and min - if self.multiworld.max_tech_cost[self.player] < self.multiworld.min_tech_cost[self.player]: - self.multiworld.min_tech_cost[self.player].value, self.multiworld.max_tech_cost[self.player].value = \ - self.multiworld.max_tech_cost[self.player].value, self.multiworld.min_tech_cost[self.player].value - self.tech_mix = self.multiworld.tech_cost_mix[self.player] - self.skip_silo = self.multiworld.silo[self.player].value == Silo.option_spawn + if self.options.max_tech_cost < self.options.min_tech_cost: + self.options.min_tech_cost.value, self.options.max_tech_cost.value = \ + self.options.max_tech_cost.value, self.options.min_tech_cost.value + self.tech_mix = self.options.tech_cost_mix.value + self.skip_silo = self.options.silo.value == Silo.option_spawn def create_regions(self): player = self.player - random = self.multiworld.random + random = self.random nauvis = Region("Nauvis", player, self.multiworld) location_count = len(base_tech_table) - len(useless_technologies) - self.skip_silo + \ - self.multiworld.evolution_traps[player] + \ - self.multiworld.attack_traps[player] + \ - self.multiworld.teleport_traps[player] + \ - self.multiworld.grenade_traps[player] + \ - self.multiworld.cluster_grenade_traps[player] + \ - self.multiworld.atomic_rocket_traps[player] + \ - self.multiworld.artillery_traps[player] + self.options.evolution_traps + \ + self.options.attack_traps + \ + self.options.teleport_traps + \ + self.options.grenade_traps + \ + self.options.cluster_grenade_traps + \ + self.options.atomic_rocket_traps + \ + self.options.artillery_traps location_pool = [] - for pack in sorted(self.multiworld.max_science_pack[self.player].get_allowed_packs()): + for pack in sorted(self.options.max_science_pack.get_allowed_packs()): location_pool.extend(location_pools[pack]) try: - location_names = self.multiworld.random.sample(location_pool, location_count) + location_names = random.sample(location_pool, location_count) except ValueError as e: # should be "ValueError: Sample larger than population or is negative" raise Exception("Too many traps for too few locations. Either decrease the trap count, " @@ -150,9 +152,9 @@ def create_regions(self): self.science_locations = [FactorioScienceLocation(player, loc_name, self.location_name_to_id[loc_name], nauvis) for loc_name in location_names] - distribution: TechCostDistribution = self.multiworld.tech_cost_distribution[self.player] - min_cost = self.multiworld.min_tech_cost[self.player] - max_cost = self.multiworld.max_tech_cost[self.player] + distribution: TechCostDistribution = self.options.tech_cost_distribution + min_cost = self.options.min_tech_cost.value + max_cost = self.options.max_tech_cost.value if distribution == distribution.option_even: rand_values = (random.randint(min_cost, max_cost) for _ in self.science_locations) else: @@ -161,7 +163,7 @@ def create_regions(self): distribution.option_high: max_cost}[distribution.value] rand_values = (random.triangular(min_cost, max_cost, mode) for _ in self.science_locations) rand_values = sorted(rand_values) - if self.multiworld.ramping_tech_costs[self.player]: + if self.options.ramping_tech_costs: def sorter(loc: FactorioScienceLocation): return loc.complexity, loc.rel_cost else: @@ -176,7 +178,7 @@ def sorter(loc: FactorioScienceLocation): event = FactorioItem("Victory", ItemClassification.progression, None, player) location.place_locked_item(event) - for ingredient in sorted(self.multiworld.max_science_pack[self.player].get_allowed_packs()): + for ingredient in sorted(self.options.max_science_pack.get_allowed_packs()): location = FactorioLocation(player, f"Automate {ingredient}", None, nauvis) nauvis.locations.append(location) event = FactorioItem(f"Automated {ingredient}", ItemClassification.progression, None, player) @@ -185,24 +187,23 @@ def sorter(loc: FactorioScienceLocation): self.multiworld.regions.append(nauvis) def create_items(self) -> None: - player = self.player self.custom_technologies = self.set_custom_technologies() self.set_custom_recipes() traps = ("Evolution", "Attack", "Teleport", "Grenade", "Cluster Grenade", "Artillery", "Atomic Rocket") for trap_name in traps: self.multiworld.itempool.extend(self.create_item(f"{trap_name} Trap") for _ in - range(getattr(self.multiworld, - f"{trap_name.lower().replace(' ', '_')}_traps")[player])) + range(getattr(self.options, + f"{trap_name.lower().replace(' ', '_')}_traps"))) - want_progressives = collections.defaultdict(lambda: self.multiworld.progressive[player]. - want_progressives(self.multiworld.random)) + want_progressives = collections.defaultdict(lambda: self.options.progressive. + want_progressives(self.random)) cost_sorted_locations = sorted(self.science_locations, key=lambda location: location.name) special_index = {"automation": 0, "logistics": 1, "rocket-silo": -1} loc: FactorioScienceLocation - if self.multiworld.tech_tree_information[player] == TechTreeInformation.option_full: + if self.options.tech_tree_information == TechTreeInformation.option_full: # mark all locations as pre-hinted for loc in self.science_locations: loc.revealed = True @@ -229,14 +230,13 @@ def create_items(self) -> None: loc.revealed = True def set_rules(self): - world = self.multiworld player = self.player shapes = get_shapes(self) - for ingredient in self.multiworld.max_science_pack[self.player].get_allowed_packs(): - location = world.get_location(f"Automate {ingredient}", player) + for ingredient in self.options.max_science_pack.get_allowed_packs(): + location = self.get_location(f"Automate {ingredient}") - if self.multiworld.recipe_ingredients[self.player]: + if self.options.recipe_ingredients: custom_recipe = self.custom_recipes[ingredient] location.access_rule = lambda state, ingredient=ingredient, custom_recipe=custom_recipe: \ @@ -257,30 +257,30 @@ def set_rules(self): prerequisites: all(state.can_reach(loc) for loc in locations)) silo_recipe = None - if self.multiworld.silo[self.player] == Silo.option_spawn: + if self.options.silo == Silo.option_spawn: silo_recipe = self.custom_recipes["rocket-silo"] if "rocket-silo" in self.custom_recipes \ else next(iter(all_product_sources.get("rocket-silo"))) part_recipe = self.custom_recipes["rocket-part"] satellite_recipe = None - if self.multiworld.goal[self.player] == Goal.option_satellite: + if self.options.goal == Goal.option_satellite: satellite_recipe = self.custom_recipes["satellite"] if "satellite" in self.custom_recipes \ else next(iter(all_product_sources.get("satellite"))) victory_tech_names = get_rocket_requirements(silo_recipe, part_recipe, satellite_recipe) - if self.multiworld.silo[self.player] != Silo.option_spawn: + if self.options.silo != Silo.option_spawn: victory_tech_names.add("rocket-silo") - world.get_location("Rocket Launch", player).access_rule = lambda state: all(state.has(technology, player) - for technology in - victory_tech_names) + self.get_location("Rocket Launch").access_rule = lambda state: all(state.has(technology, player) + for technology in + victory_tech_names) - world.completion_condition[player] = lambda state: state.has('Victory', player) + self.multiworld.completion_condition[player] = lambda state: state.has('Victory', player) def generate_basic(self): - map_basic_settings = self.multiworld.world_gen[self.player].value["basic"] + map_basic_settings = self.options.world_gen.value["basic"] if map_basic_settings.get("seed", None) is None: # allow seed 0 # 32 bit uint - map_basic_settings["seed"] = self.multiworld.per_slot_randoms[self.player].randint(0, 2 ** 32 - 1) + map_basic_settings["seed"] = self.random.randint(0, 2 ** 32 - 1) - start_location_hints: typing.Set[str] = self.multiworld.start_location_hints[self.player].value + start_location_hints: typing.Set[str] = self.options.start_location_hints.value for loc in self.science_locations: # show start_location_hints ingame @@ -304,8 +304,6 @@ def collect_item(self, state, item, remove=False): return super(Factorio, self).collect_item(state, item, remove) - option_definitions = factorio_options - @classmethod def stage_write_spoiler(cls, world, spoiler_handle): factorio_players = world.get_game_players(cls.game) @@ -345,7 +343,7 @@ def make_balanced_recipe(self, original: Recipe, pool: typing.Set[str], factor: # have to first sort for determinism, while filtering out non-stacking items pool: typing.List[str] = sorted(pool & valid_ingredients) # then sort with random data to shuffle - self.multiworld.random.shuffle(pool) + self.random.shuffle(pool) target_raw = int(sum((count for ingredient, count in original.base_cost.items())) * factor) target_energy = original.total_energy * factor target_num_ingredients = len(original.ingredients) + ingredients_offset @@ -389,7 +387,7 @@ def make_balanced_recipe(self, original: Recipe, pool: typing.Set[str], factor: if min_num > max_num: fallback_pool.append(ingredient) continue # can't use that ingredient - num = self.multiworld.random.randint(min_num, max_num) + num = self.random.randint(min_num, max_num) new_ingredients[ingredient] = num remaining_raw -= num * ingredient_raw remaining_energy -= num * ingredient_energy @@ -433,66 +431,66 @@ def make_balanced_recipe(self, original: Recipe, pool: typing.Set[str], factor: def set_custom_technologies(self): custom_technologies = {} - allowed_packs = self.multiworld.max_science_pack[self.player].get_allowed_packs() + allowed_packs = self.options.max_science_pack.get_allowed_packs() for technology_name, technology in base_technology_table.items(): - custom_technologies[technology_name] = technology.get_custom(self.multiworld, allowed_packs, self.player) + custom_technologies[technology_name] = technology.get_custom(self, allowed_packs, self.player) return custom_technologies def set_custom_recipes(self): - ingredients_offset = self.multiworld.recipe_ingredients_offset[self.player] + ingredients_offset = self.options.recipe_ingredients_offset original_rocket_part = recipes["rocket-part"] science_pack_pools = get_science_pack_pools() - valid_pool = sorted(science_pack_pools[self.multiworld.max_science_pack[self.player].get_max_pack()] & valid_ingredients) - self.multiworld.random.shuffle(valid_pool) + valid_pool = sorted(science_pack_pools[self.options.max_science_pack.get_max_pack()] & valid_ingredients) + self.random.shuffle(valid_pool) self.custom_recipes = {"rocket-part": Recipe("rocket-part", original_rocket_part.category, {valid_pool[x]: 10 for x in range(3 + ingredients_offset)}, original_rocket_part.products, original_rocket_part.energy)} - if self.multiworld.recipe_ingredients[self.player]: + if self.options.recipe_ingredients: valid_pool = [] - for pack in self.multiworld.max_science_pack[self.player].get_ordered_science_packs(): + for pack in self.options.max_science_pack.get_ordered_science_packs(): valid_pool += sorted(science_pack_pools[pack]) - self.multiworld.random.shuffle(valid_pool) + self.random.shuffle(valid_pool) if pack in recipes: # skips over space science pack new_recipe = self.make_quick_recipe(recipes[pack], valid_pool, ingredients_offset= - ingredients_offset) + ingredients_offset.value) self.custom_recipes[pack] = new_recipe - if self.multiworld.silo[self.player].value == Silo.option_randomize_recipe \ - or self.multiworld.satellite[self.player].value == Satellite.option_randomize_recipe: + if self.options.silo.value == Silo.option_randomize_recipe \ + or self.options.satellite.value == Satellite.option_randomize_recipe: valid_pool = set() - for pack in sorted(self.multiworld.max_science_pack[self.player].get_allowed_packs()): + for pack in sorted(self.options.max_science_pack.get_allowed_packs()): valid_pool |= science_pack_pools[pack] - if self.multiworld.silo[self.player].value == Silo.option_randomize_recipe: + if self.options.silo.value == Silo.option_randomize_recipe: new_recipe = self.make_balanced_recipe( recipes["rocket-silo"], valid_pool, - factor=(self.multiworld.max_science_pack[self.player].value + 1) / 7, - ingredients_offset=ingredients_offset) + factor=(self.options.max_science_pack.value + 1) / 7, + ingredients_offset=ingredients_offset.value) self.custom_recipes["rocket-silo"] = new_recipe - if self.multiworld.satellite[self.player].value == Satellite.option_randomize_recipe: + if self.options.satellite.value == Satellite.option_randomize_recipe: new_recipe = self.make_balanced_recipe( recipes["satellite"], valid_pool, - factor=(self.multiworld.max_science_pack[self.player].value + 1) / 7, - ingredients_offset=ingredients_offset) + factor=(self.options.max_science_pack.value + 1) / 7, + ingredients_offset=ingredients_offset.value) self.custom_recipes["satellite"] = new_recipe bridge = "ap-energy-bridge" new_recipe = self.make_quick_recipe( Recipe(bridge, "crafting", {"replace_1": 1, "replace_2": 1, "replace_3": 1, "replace_4": 1, "replace_5": 1, "replace_6": 1}, {bridge: 1}, 10), - sorted(science_pack_pools[self.multiworld.max_science_pack[self.player].get_ordered_science_packs()[0]]), - ingredients_offset=ingredients_offset) + sorted(science_pack_pools[self.options.max_science_pack.get_ordered_science_packs()[0]]), + ingredients_offset=ingredients_offset.value) for ingredient_name in new_recipe.ingredients: - new_recipe.ingredients[ingredient_name] = self.multiworld.random.randint(50, 500) + new_recipe.ingredients[ingredient_name] = self.random.randint(50, 500) self.custom_recipes[bridge] = new_recipe - needed_recipes = self.multiworld.max_science_pack[self.player].get_allowed_packs() | {"rocket-part"} - if self.multiworld.silo[self.player] != Silo.option_spawn: + needed_recipes = self.options.max_science_pack.get_allowed_packs() | {"rocket-part"} + if self.options.silo != Silo.option_spawn: needed_recipes |= {"rocket-silo"} - if self.multiworld.goal[self.player].value == Goal.option_satellite: + if self.options.goal.value == Goal.option_satellite: needed_recipes |= {"satellite"} for recipe in needed_recipes: @@ -542,7 +540,8 @@ def __init__(self, player: int, name: str, address: int, parent: Region): self.ingredients = {Factorio.ordered_science_packs[self.complexity]: 1} for complexity in range(self.complexity): - if parent.multiworld.tech_cost_mix[self.player] > parent.multiworld.random.randint(0, 99): + if (parent.multiworld.worlds[self.player].options.tech_cost_mix > + parent.multiworld.worlds[self.player].random.randint(0, 99)): self.ingredients[Factorio.ordered_science_packs[complexity]] = 1 @property From f73c0d9894e3ecbc9baec9c9a465a5f1cdd4fd18 Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Wed, 18 Sep 2024 00:47:26 +0200 Subject: [PATCH 058/212] WebHost: Better host room v2 (#3948) * WebHost: add spinner to room command and show error message if fetch fails due to NetworkError * WebHost: don't update room log while tab is inactive * WebHost: don't include log for automated requests * WebHost: refresh room also for re-spinups and do that from javascript * Test, WebHost: send fake user-agent where required * WebHost: remove wrong comment in host room --- WebHostLib/misc.py | 35 ++++-- WebHostLib/static/styles/hostRoom.css | 25 +++++ WebHostLib/templates/hostRoom.html | 151 +++++++++++++++++--------- test/webhost/test_host_room.py | 3 +- 4 files changed, 154 insertions(+), 60 deletions(-) diff --git a/WebHostLib/misc.py b/WebHostLib/misc.py index 01c1ad84a707..4784fcd9da63 100644 --- a/WebHostLib/misc.py +++ b/WebHostLib/misc.py @@ -132,26 +132,41 @@ def display_log(room: UUID) -> Union[str, Response, Tuple[str, int]]: return "Access Denied", 403 -@app.route('/room/', methods=['GET', 'POST']) +@app.post("/room/") +def host_room_command(room: UUID): + room: Room = Room.get(id=room) + if room is None: + return abort(404) + + if room.owner == session["_id"]: + cmd = request.form["cmd"] + if cmd: + Command(room=room, commandtext=cmd) + commit() + return redirect(url_for("host_room", room=room.id)) + + +@app.get("/room/") def host_room(room: UUID): room: Room = Room.get(id=room) if room is None: return abort(404) - if request.method == "POST": - if room.owner == session["_id"]: - cmd = request.form["cmd"] - if cmd: - Command(room=room, commandtext=cmd) - commit() - return redirect(url_for("host_room", room=room.id)) now = datetime.datetime.utcnow() # indicate that the page should reload to get the assigned port - should_refresh = not room.last_port and now - room.creation_time < datetime.timedelta(seconds=3) + should_refresh = ((not room.last_port and now - room.creation_time < datetime.timedelta(seconds=3)) + or room.last_activity < now - datetime.timedelta(seconds=room.timeout)) with db_session: room.last_activity = now # will trigger a spinup, if it's not already running - def get_log(max_size: int = 1024000) -> str: + browser_tokens = "Mozilla", "Chrome", "Safari" + automated = ("update" in request.args + or "Discordbot" in request.user_agent.string + or not any(browser_token in request.user_agent.string for browser_token in browser_tokens)) + + def get_log(max_size: int = 0 if automated else 1024000) -> str: + if max_size == 0: + return "â€Ļ" try: with open(os.path.join("logs", str(room.id) + ".txt"), "rb") as log: raw_size = 0 diff --git a/WebHostLib/static/styles/hostRoom.css b/WebHostLib/static/styles/hostRoom.css index 827f74c04df7..625b78cc5d3f 100644 --- a/WebHostLib/static/styles/hostRoom.css +++ b/WebHostLib/static/styles/hostRoom.css @@ -58,3 +58,28 @@ overflow-y: auto; max-height: 400px; } + +.loader{ + display: inline-block; + visibility: hidden; + margin-left: 5px; + width: 40px; + aspect-ratio: 4; + --_g: no-repeat radial-gradient(circle closest-side,#fff 90%,#fff0); + background: + var(--_g) 0 50%, + var(--_g) 50% 50%, + var(--_g) 100% 50%; + background-size: calc(100%/3) 100%; + animation: l7 1s infinite linear; +} + +.loader.loading{ + visibility: visible; +} + +@keyframes l7{ + 33%{background-size:calc(100%/3) 0% ,calc(100%/3) 100%,calc(100%/3) 100%} + 50%{background-size:calc(100%/3) 100%,calc(100%/3) 0 ,calc(100%/3) 100%} + 66%{background-size:calc(100%/3) 100%,calc(100%/3) 100%,calc(100%/3) 0 } +} diff --git a/WebHostLib/templates/hostRoom.html b/WebHostLib/templates/hostRoom.html index fa8e26c2cbf8..8e76dafc12fa 100644 --- a/WebHostLib/templates/hostRoom.html +++ b/WebHostLib/templates/hostRoom.html @@ -19,28 +19,30 @@ {% block body %} {% include 'header/grassHeader.html' %}

- {% if room.owner == session["_id"] %} - Room created from Seed #{{ room.seed.id|suuid }} -
- {% endif %} - {% if room.tracker %} - This room has a Multiworld Tracker - and a Sphere Tracker enabled. -
- {% endif %} - The server for this room will be paused after {{ room.timeout//60//60 }} hours of inactivity. - Should you wish to continue later, - anyone can simply refresh this page and the server will resume.
- {% if room.last_port == -1 %} - There was an error hosting this Room. Another attempt will be made on refreshing this page. - The most likely failure reason is that the multiworld is too old to be loaded now. - {% elif room.last_port %} - You can connect to this room by using - '/connect {{ config['HOST_ADDRESS'] }}:{{ room.last_port }}' - - in the client.
- {% endif %} + + {% if room.owner == session["_id"] %} + Room created from Seed #{{ room.seed.id|suuid }} +
+ {% endif %} + {% if room.tracker %} + This room has a Multiworld Tracker + and a Sphere Tracker enabled. +
+ {% endif %} + The server for this room will be paused after {{ room.timeout//60//60 }} hours of inactivity. + Should you wish to continue later, + anyone can simply refresh this page and the server will resume.
+ {% if room.last_port == -1 %} + There was an error hosting this Room. Another attempt will be made on refreshing this page. + The most likely failure reason is that the multiworld is too old to be loaded now. + {% elif room.last_port %} + You can connect to this room by using + '/connect {{ config['HOST_ADDRESS'] }}:{{ room.last_port }}' + + in the client.
+ {% endif %} +
{{ macros.list_patches_room(room) }} {% if room.owner == session["_id"] %}
@@ -49,6 +51,7 @@ +
@@ -62,6 +65,7 @@ let url = '{{ url_for('display_log', room = room.id) }}'; let bytesReceived = {{ log_len }}; let updateLogTimeout; + let updateLogImmediately = false; let awaitingCommandResponse = false; let logger = document.getElementById("logger"); @@ -78,29 +82,36 @@ async function updateLog() { try { - let res = await fetch(url, { - headers: { - 'Range': `bytes=${bytesReceived}-`, - } - }); - if (res.ok) { - let text = await res.text(); - if (text.length > 0) { - awaitingCommandResponse = false; - if (bytesReceived === 0 || res.status !== 206) { - logger.innerHTML = ''; + if (!document.hidden) { + updateLogImmediately = false; + let res = await fetch(url, { + headers: { + 'Range': `bytes=${bytesReceived}-`, } - if (res.status !== 206) { - bytesReceived = 0; - } else { - bytesReceived += new Blob([text]).size; + }); + if (res.ok) { + let text = await res.text(); + if (text.length > 0) { + awaitingCommandResponse = false; + if (bytesReceived === 0 || res.status !== 206) { + logger.innerHTML = ''; + } + if (res.status !== 206) { + bytesReceived = 0; + } else { + bytesReceived += new Blob([text]).size; + } + if (logger.innerHTML.endsWith('â€Ļ')) { + logger.innerHTML = logger.innerHTML.substring(0, logger.innerHTML.length - 1); + } + logger.appendChild(document.createTextNode(text)); + scrollToBottom(logger); + let loader = document.getElementById("command-form").getElementsByClassName("loader")[0]; + loader.classList.remove("loading"); } - if (logger.innerHTML.endsWith('â€Ļ')) { - logger.innerHTML = logger.innerHTML.substring(0, logger.innerHTML.length - 1); - } - logger.appendChild(document.createTextNode(text)); - scrollToBottom(logger); } + } else { + updateLogImmediately = true; } } finally { @@ -125,20 +136,62 @@ }); ev.preventDefault(); // has to happen before first await form.reset(); - let res = await req; - if (res.ok || res.type === 'opaqueredirect') { - awaitingCommandResponse = true; - window.clearTimeout(updateLogTimeout); - updateLogTimeout = window.setTimeout(updateLog, 100); - } else { - window.alert(res.statusText); + let loader = form.getElementsByClassName("loader")[0]; + loader.classList.add("loading"); + try { + let res = await req; + if (res.ok || res.type === 'opaqueredirect') { + awaitingCommandResponse = true; + window.clearTimeout(updateLogTimeout); + updateLogTimeout = window.setTimeout(updateLog, 100); + } else { + loader.classList.remove("loading"); + window.alert(res.statusText); + } + } catch (e) { + console.error(e); + loader.classList.remove("loading"); + window.alert(e.message); } } document.getElementById("command-form").addEventListener("submit", postForm); updateLogTimeout = window.setTimeout(updateLog, 1000); logger.scrollTop = logger.scrollHeight; + document.addEventListener("visibilitychange", () => { + if (!document.hidden && updateLogImmediately) { + updateLog(); + } + }) {% endif %} +
{% endblock %} diff --git a/test/webhost/test_host_room.py b/test/webhost/test_host_room.py index e9dae41dd06f..4aa83e3b1c6c 100644 --- a/test/webhost/test_host_room.py +++ b/test/webhost/test_host_room.py @@ -131,7 +131,8 @@ def test_host_room_own(self) -> None: f.write(text) with self.app.app_context(), self.app.test_request_context(): - response = self.client.get(url_for("host_room", room=self.room_id)) + response = self.client.get(url_for("host_room", room=self.room_id), + headers={"User-Agent": "Mozilla/5.0"}) response_text = response.get_data(True) self.assertEqual(response.status_code, 200) self.assertIn("href=\"/seed/", response_text) From 69487661ddfcf3500a7ebac270ac1b843b116625 Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Tue, 17 Sep 2024 18:33:03 -0500 Subject: [PATCH 059/212] Core: change yaml_output to output a full csv (#3653) * make yaml_output arg a bool instead of number * make yaml_output dump all player options as csv * it sorts by game so swap those columns * capitalize game and name headers * use a list and just add an if before adding instead of sorting * skip options that the world doesn't want displayed * check if the class is a subclass of Removed specifically instead of the none flag * don't create empty rows * add a header for every game option that isn't from the common ones even if they have the same name * add to webhost gen args so it can still gen --- Generate.py | 31 +++++------------------------ Main.py | 3 +++ Options.py | 44 ++++++++++++++++++++++++++++++++++++++++-- WebHostLib/generate.py | 1 + 4 files changed, 51 insertions(+), 28 deletions(-) diff --git a/Generate.py b/Generate.py index 4eba05cc52fe..2488504f3049 100644 --- a/Generate.py +++ b/Generate.py @@ -43,10 +43,10 @@ def mystery_argparse(): parser.add_argument('--race', action='store_true', default=defaults.race) parser.add_argument('--meta_file_path', default=defaults.meta_file_path) parser.add_argument('--log_level', default='info', help='Sets log level') - parser.add_argument('--yaml_output', default=0, type=lambda value: max(int(value), 0), - help='Output rolled mystery results to yaml up to specified number (made for async multiworld)') - parser.add_argument('--plando', default=defaults.plando_options, - help='List of options that can be set manually. Can be combined, for example "bosses, items"') + parser.add_argument("--yaml_output", action="store_true", + help="Output rolled player options to csv (made for async multiworld).") + parser.add_argument("--plando", default=defaults.plando_options, + help="List of options that can be set manually. Can be combined, for example \"bosses, items\"") parser.add_argument("--skip_prog_balancing", action="store_true", help="Skip progression balancing step during generation.") parser.add_argument("--skip_output", action="store_true", @@ -156,6 +156,7 @@ def main(args=None) -> Tuple[argparse.Namespace, int]: erargs.skip_prog_balancing = args.skip_prog_balancing erargs.skip_output = args.skip_output erargs.name = {} + erargs.yaml_output = args.yaml_output settings_cache: Dict[str, Tuple[argparse.Namespace, ...]] = \ {fname: (tuple(roll_settings(yaml, args.plando) for yaml in yamls) if args.sameoptions else None) @@ -216,28 +217,6 @@ def main(args=None) -> Tuple[argparse.Namespace, int]: if len(set(name.lower() for name in erargs.name.values())) != len(erargs.name): raise Exception(f"Names have to be unique. Names: {Counter(name.lower() for name in erargs.name.values())}") - if args.yaml_output: - import yaml - important = {} - for option, player_settings in vars(erargs).items(): - if type(player_settings) == dict: - if all(type(value) != list for value in player_settings.values()): - if len(player_settings.values()) > 1: - important[option] = {player: value for player, value in player_settings.items() if - player <= args.yaml_output} - else: - logging.debug(f"No player settings defined for option '{option}'") - - else: - if player_settings != "": # is not empty name - important[option] = player_settings - else: - logging.debug(f"No player settings defined for option '{option}'") - if args.outputpath: - os.makedirs(args.outputpath, exist_ok=True) - with open(os.path.join(args.outputpath if args.outputpath else ".", f"generate_{seed_name}.yaml"), "wt") as f: - yaml.dump(important, f) - return erargs, seed diff --git a/Main.py b/Main.py index c931e22145a5..c09a537b60bd 100644 --- a/Main.py +++ b/Main.py @@ -46,6 +46,9 @@ def main(args, seed=None, baked_server_options: Optional[Dict[str, object]] = No multiworld.sprite_pool = args.sprite_pool.copy() multiworld.set_options(args) + if args.yaml_output: + from Options import dump_player_options + dump_player_options(multiworld) multiworld.set_item_links() multiworld.state = CollectionState(multiworld) logger.info('Archipelago Version %s - Seed: %s\n', __version__, multiworld.seed) diff --git a/Options.py b/Options.py index ac4b2b8cd8bb..aa6f175fa58d 100644 --- a/Options.py +++ b/Options.py @@ -8,16 +8,17 @@ import random import typing import enum +from collections import defaultdict from copy import deepcopy from dataclasses import dataclass from schema import And, Optional, Or, Schema from typing_extensions import Self -from Utils import get_fuzzy_results, is_iterable_except_str +from Utils import get_fuzzy_results, is_iterable_except_str, output_path if typing.TYPE_CHECKING: - from BaseClasses import PlandoOptions + from BaseClasses import MultiWorld, PlandoOptions from worlds.AutoWorld import World import pathlib @@ -1532,3 +1533,42 @@ def yaml_dump_scalar(scalar) -> str: with open(os.path.join(target_folder, game_name + ".yaml"), "w", encoding="utf-8-sig") as f: f.write(res) + + +def dump_player_options(multiworld: MultiWorld) -> None: + from csv import DictWriter + + game_players = defaultdict(list) + for player, game in multiworld.game.items(): + game_players[game].append(player) + game_players = dict(sorted(game_players.items())) + + output = [] + per_game_option_names = [ + getattr(option, "display_name", option_key) + for option_key, option in PerGameCommonOptions.type_hints.items() + ] + all_option_names = per_game_option_names.copy() + for game, players in game_players.items(): + game_option_names = per_game_option_names.copy() + for player in players: + world = multiworld.worlds[player] + player_output = { + "Game": multiworld.game[player], + "Name": multiworld.get_player_name(player), + } + output.append(player_output) + for option_key, option in world.options_dataclass.type_hints.items(): + if issubclass(Removed, option): + continue + display_name = getattr(option, "display_name", option_key) + player_output[display_name] = getattr(world.options, option_key).current_option_name + if display_name not in game_option_names: + all_option_names.append(display_name) + game_option_names.append(display_name) + + with open(output_path(f"generate_{multiworld.seed_name}.csv"), mode="w", newline="") as file: + fields = ["Game", "Name", *all_option_names] + writer = DictWriter(file, fields) + writer.writeheader() + writer.writerows(output) diff --git a/WebHostLib/generate.py b/WebHostLib/generate.py index a12dc0f4ae14..2daf212efc29 100644 --- a/WebHostLib/generate.py +++ b/WebHostLib/generate.py @@ -134,6 +134,7 @@ def task(): {"bosses", "items", "connections", "texts"})) erargs.skip_prog_balancing = False erargs.skip_output = False + erargs.yaml_output = False name_counter = Counter() for player, (playerfile, settings) in enumerate(gen_options.items(), 1): From da781bb4ac29fd45f800bf4af605a2f6fa93afa5 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 18 Sep 2024 04:37:10 +0200 Subject: [PATCH 060/212] Core: rename yaml_output to csv_output (#3955) --- Generate.py | 4 ++-- Main.py | 2 +- WebHostLib/generate.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Generate.py b/Generate.py index 2488504f3049..52babdf18839 100644 --- a/Generate.py +++ b/Generate.py @@ -43,7 +43,7 @@ def mystery_argparse(): parser.add_argument('--race', action='store_true', default=defaults.race) parser.add_argument('--meta_file_path', default=defaults.meta_file_path) parser.add_argument('--log_level', default='info', help='Sets log level') - parser.add_argument("--yaml_output", action="store_true", + parser.add_argument("--csv_output", action="store_true", help="Output rolled player options to csv (made for async multiworld).") parser.add_argument("--plando", default=defaults.plando_options, help="List of options that can be set manually. Can be combined, for example \"bosses, items\"") @@ -156,7 +156,7 @@ def main(args=None) -> Tuple[argparse.Namespace, int]: erargs.skip_prog_balancing = args.skip_prog_balancing erargs.skip_output = args.skip_output erargs.name = {} - erargs.yaml_output = args.yaml_output + erargs.csv_output = args.csv_output settings_cache: Dict[str, Tuple[argparse.Namespace, ...]] = \ {fname: (tuple(roll_settings(yaml, args.plando) for yaml in yamls) if args.sameoptions else None) diff --git a/Main.py b/Main.py index c09a537b60bd..5a0f5c98bcc4 100644 --- a/Main.py +++ b/Main.py @@ -46,7 +46,7 @@ def main(args, seed=None, baked_server_options: Optional[Dict[str, object]] = No multiworld.sprite_pool = args.sprite_pool.copy() multiworld.set_options(args) - if args.yaml_output: + if args.csv_output: from Options import dump_player_options dump_player_options(multiworld) multiworld.set_item_links() diff --git a/WebHostLib/generate.py b/WebHostLib/generate.py index 2daf212efc29..dbe7dd958910 100644 --- a/WebHostLib/generate.py +++ b/WebHostLib/generate.py @@ -134,7 +134,7 @@ def task(): {"bosses", "items", "connections", "texts"})) erargs.skip_prog_balancing = False erargs.skip_output = False - erargs.yaml_output = False + erargs.csv_output = False name_counter = Counter() for player, (playerfile, settings) in enumerate(gen_options.items(), 1): From 710609fa602d3fb3cfa002caa2b1d31ce6fa6dbb Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Wed, 18 Sep 2024 10:27:53 +0200 Subject: [PATCH 061/212] WebHost: move api/room_status out of __init__.py (#3958) * WebHost: move room_status out of __init__.py The old location is unexpected and easy to miss. * WebHost: fix typing in api/room_status --- WebHostLib/api/__init__.py | 42 +++----------------------------------- WebHostLib/api/room.py | 42 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 39 deletions(-) create mode 100644 WebHostLib/api/room.py diff --git a/WebHostLib/api/__init__.py b/WebHostLib/api/__init__.py index 4003243a281d..cf05e87374ab 100644 --- a/WebHostLib/api/__init__.py +++ b/WebHostLib/api/__init__.py @@ -1,51 +1,15 @@ """API endpoints package.""" from typing import List, Tuple -from uuid import UUID -from flask import Blueprint, abort, url_for +from flask import Blueprint -import worlds.Files -from ..models import Room, Seed +from ..models import Seed api_endpoints = Blueprint('api', __name__, url_prefix="/api") -# unsorted/misc endpoints - def get_players(seed: Seed) -> List[Tuple[str, str]]: return [(slot.player_name, slot.game) for slot in seed.slots] -@api_endpoints.route('/room_status/') -def room_info(room: UUID): - room = Room.get(id=room) - if room is None: - return abort(404) - - def supports_apdeltapatch(game: str): - return game in worlds.Files.AutoPatchRegister.patch_types - downloads = [] - for slot in sorted(room.seed.slots): - if slot.data and not supports_apdeltapatch(slot.game): - slot_download = { - "slot": slot.player_id, - "download": url_for("download_slot_file", room_id=room.id, player_id=slot.player_id) - } - downloads.append(slot_download) - elif slot.data: - slot_download = { - "slot": slot.player_id, - "download": url_for("download_patch", patch_id=slot.id, room_id=room.id) - } - downloads.append(slot_download) - return { - "tracker": room.tracker, - "players": get_players(room.seed), - "last_port": room.last_port, - "last_activity": room.last_activity, - "timeout": room.timeout, - "downloads": downloads, - } - - -from . import generate, user, datapackage # trigger registration +from . import datapackage, generate, room, user # trigger registration diff --git a/WebHostLib/api/room.py b/WebHostLib/api/room.py new file mode 100644 index 000000000000..9337975695b2 --- /dev/null +++ b/WebHostLib/api/room.py @@ -0,0 +1,42 @@ +from typing import Any, Dict +from uuid import UUID + +from flask import abort, url_for + +import worlds.Files +from . import api_endpoints, get_players +from ..models import Room + + +@api_endpoints.route('/room_status/') +def room_info(room_id: UUID) -> Dict[str, Any]: + room = Room.get(id=room_id) + if room is None: + return abort(404) + + def supports_apdeltapatch(game: str) -> bool: + return game in worlds.Files.AutoPatchRegister.patch_types + + downloads = [] + for slot in sorted(room.seed.slots): + if slot.data and not supports_apdeltapatch(slot.game): + slot_download = { + "slot": slot.player_id, + "download": url_for("download_slot_file", room_id=room.id, player_id=slot.player_id) + } + downloads.append(slot_download) + elif slot.data: + slot_download = { + "slot": slot.player_id, + "download": url_for("download_patch", patch_id=slot.id, room_id=room.id) + } + downloads.append(slot_download) + + return { + "tracker": room.tracker, + "players": get_players(room.seed), + "last_port": room.last_port, + "last_activity": room.last_activity, + "timeout": room.timeout, + "downloads": downloads, + } From 51a6dc150c6d74fa80ce0cc4382b88dcadda58d5 Mon Sep 17 00:00:00 2001 From: jamesbrq Date: Wed, 18 Sep 2024 13:33:02 -0400 Subject: [PATCH 062/212] MLSS: Various bugfixes and QoL updates (#3744) * Small fixes * Update Location names + Remove redundant rule * Fix for str not being returned in get_filler_item_name() * ASM changes + various name/logic updates * Remove extra unintended change + Make beanstone/beanlets useful * Add missing timer logic to client * Update Rules.py * Fix bad capitalization * Small formatting and ASM changes * Update basepatch.bsdiff * Update seed verification to be more likely to make a correct comparison * Add Pipe 10 * Final batch of small fixes * FINAL CHANGE I SWEAR * Added victory Item for spoilers * Update worlds/mlss/Regions.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/Items.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Fix jokes end logic * Update worlds/mlss/Regions.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/mlss/Rules.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Fix jokes end logic * Item Location mismatch + Check options against rules * Change List to Set + Check options against rules * Moved Victory item to event * Update worlds/mlss/__init__.py Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> * Update worlds/mlss/__init__.py Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- worlds/mlss/Client.py | 25 ++++- worlds/mlss/Data.py | 6 +- worlds/mlss/Items.py | 30 ++--- worlds/mlss/Locations.py | 117 +++++++++---------- worlds/mlss/Names/LocationName.py | 88 +++++++-------- worlds/mlss/Options.py | 5 +- worlds/mlss/Regions.py | 71 ++++++------ worlds/mlss/Rom.py | 33 +++--- worlds/mlss/Rules.py | 181 ++++++++++++++++++++++++++---- worlds/mlss/__init__.py | 65 ++++------- worlds/mlss/data/basepatch.bsdiff | Bin 17596 -> 18482 bytes 11 files changed, 377 insertions(+), 244 deletions(-) diff --git a/worlds/mlss/Client.py b/worlds/mlss/Client.py index 1f08b85610d6..75f6ac653003 100644 --- a/worlds/mlss/Client.py +++ b/worlds/mlss/Client.py @@ -85,7 +85,7 @@ async def game_watcher(self, ctx: "BizHawkClientContext") -> None: if not self.seed_verify: seed = await bizhawk.read(ctx.bizhawk_ctx, [(0xDF00A0, len(ctx.seed_name), "ROM")]) seed = seed[0].decode("UTF-8") - if seed != ctx.seed_name: + if seed not in ctx.seed_name: logger.info( "ERROR: The ROM you loaded is for a different game of AP. " "Please make sure the host has sent you the correct patch file," @@ -143,17 +143,30 @@ async def game_watcher(self, ctx: "BizHawkClientContext") -> None: # If RAM address isn't 0x0 yet break out and try again later to give the rest of the items for i in range(len(ctx.items_received) - received_index): item_data = items_by_id[ctx.items_received[received_index + i].item] - b = await bizhawk.guarded_read(ctx.bizhawk_ctx, [(0x3057, 1, "EWRAM")], [(0x3057, [0x0], "EWRAM")]) - if b is None: + result = False + total = 0 + while not result: + await asyncio.sleep(0.05) + total += 0.05 + result = await bizhawk.guarded_write( + ctx.bizhawk_ctx, + [ + (0x3057, [id_to_RAM(item_data.itemID)], "EWRAM") + ], + [(0x3057, [0x0], "EWRAM")] + ) + if result: + total = 0 + if total >= 1: + break + if not result: break await bizhawk.write( ctx.bizhawk_ctx, [ - (0x3057, [id_to_RAM(item_data.itemID)], "EWRAM"), (0x4808, [(received_index + i + 1) // 0x100, (received_index + i + 1) % 0x100], "EWRAM"), - ], + ] ) - await asyncio.sleep(0.1) # Early return and location send if you are currently in a shop, # since other flags aren't going to change diff --git a/worlds/mlss/Data.py b/worlds/mlss/Data.py index 749e63bcf24d..add14aa008f1 100644 --- a/worlds/mlss/Data.py +++ b/worlds/mlss/Data.py @@ -1,6 +1,9 @@ flying = [ 0x14, 0x1D, + 0x32, + 0x33, + 0x40, 0x4C ] @@ -23,7 +26,6 @@ 0x5032AC, 0x5032CC, 0x5032EC, - 0x50330C, 0x50332C, 0x50334C, 0x50336C, @@ -151,7 +153,7 @@ 0x50458C, 0x5045AC, 0x50468C, - 0x5046CC, + # 0x5046CC, 6 enemy formation 0x5046EC, 0x50470C ] diff --git a/worlds/mlss/Items.py b/worlds/mlss/Items.py index b95f1a0bc0a8..717443ddfc06 100644 --- a/worlds/mlss/Items.py +++ b/worlds/mlss/Items.py @@ -78,21 +78,21 @@ class MLSSItem(Item): ItemData(77771060, "Beanstar Piece 3", ItemClassification.progression, 0x67), ItemData(77771061, "Beanstar Piece 4", ItemClassification.progression, 0x70), ItemData(77771062, "Spangle", ItemClassification.progression, 0x72), - ItemData(77771063, "Beanlet 1", ItemClassification.filler, 0x73), - ItemData(77771064, "Beanlet 2", ItemClassification.filler, 0x74), - ItemData(77771065, "Beanlet 3", ItemClassification.filler, 0x75), - ItemData(77771066, "Beanlet 4", ItemClassification.filler, 0x76), - ItemData(77771067, "Beanlet 5", ItemClassification.filler, 0x77), - ItemData(77771068, "Beanstone 1", ItemClassification.filler, 0x80), - ItemData(77771069, "Beanstone 2", ItemClassification.filler, 0x81), - ItemData(77771070, "Beanstone 3", ItemClassification.filler, 0x82), - ItemData(77771071, "Beanstone 4", ItemClassification.filler, 0x83), - ItemData(77771072, "Beanstone 5", ItemClassification.filler, 0x84), - ItemData(77771073, "Beanstone 6", ItemClassification.filler, 0x85), - ItemData(77771074, "Beanstone 7", ItemClassification.filler, 0x86), - ItemData(77771075, "Beanstone 8", ItemClassification.filler, 0x87), - ItemData(77771076, "Beanstone 9", ItemClassification.filler, 0x90), - ItemData(77771077, "Beanstone 10", ItemClassification.filler, 0x91), + ItemData(77771063, "Beanlet 1", ItemClassification.useful, 0x73), + ItemData(77771064, "Beanlet 2", ItemClassification.useful, 0x74), + ItemData(77771065, "Beanlet 3", ItemClassification.useful, 0x75), + ItemData(77771066, "Beanlet 4", ItemClassification.useful, 0x76), + ItemData(77771067, "Beanlet 5", ItemClassification.useful, 0x77), + ItemData(77771068, "Beanstone 1", ItemClassification.useful, 0x80), + ItemData(77771069, "Beanstone 2", ItemClassification.useful, 0x81), + ItemData(77771070, "Beanstone 3", ItemClassification.useful, 0x82), + ItemData(77771071, "Beanstone 4", ItemClassification.useful, 0x83), + ItemData(77771072, "Beanstone 5", ItemClassification.useful, 0x84), + ItemData(77771073, "Beanstone 6", ItemClassification.useful, 0x85), + ItemData(77771074, "Beanstone 7", ItemClassification.useful, 0x86), + ItemData(77771075, "Beanstone 8", ItemClassification.useful, 0x87), + ItemData(77771076, "Beanstone 9", ItemClassification.useful, 0x90), + ItemData(77771077, "Beanstone 10", ItemClassification.useful, 0x91), ItemData(77771078, "Secret Scroll 1", ItemClassification.useful, 0x92), ItemData(77771079, "Secret Scroll 2", ItemClassification.useful, 0x93), ItemData(77771080, "Castle Badge", ItemClassification.useful, 0x9F), diff --git a/worlds/mlss/Locations.py b/worlds/mlss/Locations.py index 8c00432a8f06..a2787ef9b1b1 100644 --- a/worlds/mlss/Locations.py +++ b/worlds/mlss/Locations.py @@ -4,9 +4,6 @@ class LocationData: - name: str = "" - id: int = 0x00 - def __init__(self, name, id_, itemType): self.name = name self.itemType = itemType @@ -93,8 +90,8 @@ class MLSSLocation(Location): LocationData("Hoohoo Mountain Below Summit Block 1", 0x39D873, 0), LocationData("Hoohoo Mountain Below Summit Block 2", 0x39D87B, 0), LocationData("Hoohoo Mountain Below Summit Block 3", 0x39D883, 0), - LocationData("Hoohoo Mountain After Hoohooros Block 1", 0x39D890, 0), - LocationData("Hoohoo Mountain After Hoohooros Block 2", 0x39D8A0, 0), + LocationData("Hoohoo Mountain Past Hoohooros Block 1", 0x39D890, 0), + LocationData("Hoohoo Mountain Past Hoohooros Block 2", 0x39D8A0, 0), LocationData("Hoohoo Mountain Hoohooros Room Block 1", 0x39D8AD, 0), LocationData("Hoohoo Mountain Hoohooros Room Block 2", 0x39D8B5, 0), LocationData("Hoohoo Mountain Before Hoohooros Block", 0x39D8D2, 0), @@ -104,7 +101,7 @@ class MLSSLocation(Location): LocationData("Hoohoo Mountain Room 1 Block 2", 0x39D924, 0), LocationData("Hoohoo Mountain Room 1 Block 3", 0x39D92C, 0), LocationData("Hoohoo Mountain Base Room 1 Block", 0x39D939, 0), - LocationData("Hoohoo Village Right Side Block", 0x39D957, 0), + LocationData("Hoohoo Village Eastside Block", 0x39D957, 0), LocationData("Hoohoo Village Bridge Room Block 1", 0x39D96F, 0), LocationData("Hoohoo Village Bridge Room Block 2", 0x39D97F, 0), LocationData("Hoohoo Village Bridge Room Block 3", 0x39D98F, 0), @@ -119,8 +116,8 @@ class MLSSLocation(Location): LocationData("Hoohoo Mountain Base Boostatue Room Digspot 2", 0x39D9E1, 0), LocationData("Hoohoo Mountain Base Grassy Area Block 1", 0x39D9FE, 0), LocationData("Hoohoo Mountain Base Grassy Area Block 2", 0x39D9F6, 0), - LocationData("Hoohoo Mountain Base After Minecart Minigame Block 1", 0x39DA35, 0), - LocationData("Hoohoo Mountain Base After Minecart Minigame Block 2", 0x39DA2D, 0), + LocationData("Hoohoo Mountain Base Past Minecart Minigame Block 1", 0x39DA35, 0), + LocationData("Hoohoo Mountain Base Past Minecart Minigame Block 2", 0x39DA2D, 0), LocationData("Cave Connecting Stardust Fields and Hoohoo Village Block 1", 0x39DA77, 0), LocationData("Cave Connecting Stardust Fields and Hoohoo Village Block 2", 0x39DA7F, 0), LocationData("Hoohoo Village South Cave Block", 0x39DACD, 0), @@ -143,14 +140,14 @@ class MLSSLocation(Location): LocationData("Shop Starting Flag 3", 0x3C05F4, 3), LocationData("Hoohoo Mountain Summit Digspot", 0x39D85E, 0), LocationData("Hoohoo Mountain Below Summit Digspot", 0x39D86B, 0), - LocationData("Hoohoo Mountain After Hoohooros Digspot", 0x39D898, 0), + LocationData("Hoohoo Mountain Past Hoohooros Digspot", 0x39D898, 0), LocationData("Hoohoo Mountain Hoohooros Room Digspot 1", 0x39D8BD, 0), LocationData("Hoohoo Mountain Hoohooros Room Digspot 2", 0x39D8C5, 0), LocationData("Hoohoo Mountain Before Hoohooros Digspot", 0x39D8E2, 0), LocationData("Hoohoo Mountain Room 2 Digspot 1", 0x39D907, 0), LocationData("Hoohoo Mountain Room 2 Digspot 2", 0x39D90F, 0), LocationData("Hoohoo Mountain Base Room 1 Digspot", 0x39D941, 0), - LocationData("Hoohoo Village Right Side Digspot", 0x39D95F, 0), + LocationData("Hoohoo Village Eastside Digspot", 0x39D95F, 0), LocationData("Hoohoo Village Super Hammer Cave Digspot", 0x39DB02, 0), LocationData("Hoohoo Village Super Hammer Cave Block", 0x39DAEA, 0), LocationData("Hoohoo Village North Cave Room 2 Digspot", 0x39DAB5, 0), @@ -267,7 +264,7 @@ class MLSSLocation(Location): LocationData("Chucklehuck Woods Cave Room 3 Coin Block", 0x39DDB4, 0), LocationData("Chucklehuck Woods Pipe 5 Room Coin Block", 0x39DDE6, 0), LocationData("Chucklehuck Woods Room 7 Coin Block", 0x39DE31, 0), - LocationData("Chucklehuck Woods After Chuckleroot Coin Block", 0x39DF14, 0), + LocationData("Chucklehuck Woods Past Chuckleroot Coin Block", 0x39DF14, 0), LocationData("Chucklehuck Woods Koopa Room Coin Block", 0x39DF53, 0), LocationData("Chucklehuck Woods Winkle Area Cave Coin Block", 0x39DF80, 0), LocationData("Sewers Prison Room Coin Block", 0x39E01E, 0), @@ -286,11 +283,12 @@ class MLSSLocation(Location): LocationData("Hoohoo Mountain Base Past Ultra Hammer Rocks Block 1", 0x39DA42, 0), LocationData("Hoohoo Mountain Base Past Ultra Hammer Rocks Block 2", 0x39DA4A, 0), LocationData("Hoohoo Mountain Base Past Ultra Hammer Rocks Block 3", 0x39DA52, 0), - LocationData("Hoohoo Mountain Base Boostatue Room Digspot 3 (Rightside)", 0x39D9E9, 0), + LocationData("Hoohoo Mountain Base Boostatue Room Digspot 3 (Right Side)", 0x39D9E9, 0), LocationData("Hoohoo Mountain Base Mole Near Teehee Valley", 0x277A45, 1), LocationData("Teehee Valley Entrance To Hoohoo Mountain Digspot", 0x39E5B5, 0), - LocationData("Teehee Valley Solo Luigi Maze Room 2 Digspot 1", 0x39E5C8, 0), - LocationData("Teehee Valley Solo Luigi Maze Room 2 Digspot 2", 0x39E5D0, 0), + LocationData("Teehee Valley Upper Maze Room 1 Block", 0x39E5E0, 0), + LocationData("Teehee Valley Upper Maze Room 2 Digspot 1", 0x39E5C8, 0), + LocationData("Teehee Valley Upper Maze Room 2 Digspot 2", 0x39E5D0, 0), LocationData("Hoohoo Mountain Base Guffawha Ruins Entrance Digspot", 0x39DA0B, 0), LocationData("Hoohoo Mountain Base Teehee Valley Entrance Digspot", 0x39DA20, 0), LocationData("Hoohoo Mountain Base Teehee Valley Entrance Block", 0x39DA18, 0), @@ -345,12 +343,12 @@ class MLSSLocation(Location): LocationData("Chucklehuck Woods Southwest of Chuckleroot Block", 0x39DEC2, 0), LocationData("Chucklehuck Woods Wiggler room Digspot 1", 0x39DECF, 0), LocationData("Chucklehuck Woods Wiggler room Digspot 2", 0x39DED7, 0), - LocationData("Chucklehuck Woods After Chuckleroot Block 1", 0x39DEE4, 0), - LocationData("Chucklehuck Woods After Chuckleroot Block 2", 0x39DEEC, 0), - LocationData("Chucklehuck Woods After Chuckleroot Block 3", 0x39DEF4, 0), - LocationData("Chucklehuck Woods After Chuckleroot Block 4", 0x39DEFC, 0), - LocationData("Chucklehuck Woods After Chuckleroot Block 5", 0x39DF04, 0), - LocationData("Chucklehuck Woods After Chuckleroot Block 6", 0x39DF0C, 0), + LocationData("Chucklehuck Woods Past Chuckleroot Block 1", 0x39DEE4, 0), + LocationData("Chucklehuck Woods Past Chuckleroot Block 2", 0x39DEEC, 0), + LocationData("Chucklehuck Woods Past Chuckleroot Block 3", 0x39DEF4, 0), + LocationData("Chucklehuck Woods Past Chuckleroot Block 4", 0x39DEFC, 0), + LocationData("Chucklehuck Woods Past Chuckleroot Block 5", 0x39DF04, 0), + LocationData("Chucklehuck Woods Past Chuckleroot Block 6", 0x39DF0C, 0), LocationData("Chucklehuck Woods Koopa Room Block 1", 0x39DF4B, 0), LocationData("Chucklehuck Woods Koopa Room Block 2", 0x39DF5B, 0), LocationData("Chucklehuck Woods Koopa Room Digspot", 0x39DF63, 0), @@ -367,14 +365,14 @@ class MLSSLocation(Location): ] castleTown: typing.List[LocationData] = [ - LocationData("Beanbean Castle Town Left Side House Block 1", 0x39D7A4, 0), - LocationData("Beanbean Castle Town Left Side House Block 2", 0x39D7AC, 0), - LocationData("Beanbean Castle Town Left Side House Block 3", 0x39D7B4, 0), - LocationData("Beanbean Castle Town Left Side House Block 4", 0x39D7BC, 0), - LocationData("Beanbean Castle Town Right Side House Block 1", 0x39D7D8, 0), - LocationData("Beanbean Castle Town Right Side House Block 2", 0x39D7E0, 0), - LocationData("Beanbean Castle Town Right Side House Block 3", 0x39D7E8, 0), - LocationData("Beanbean Castle Town Right Side House Block 4", 0x39D7F0, 0), + LocationData("Beanbean Castle Town West Side House Block 1", 0x39D7A4, 0), + LocationData("Beanbean Castle Town West Side House Block 2", 0x39D7AC, 0), + LocationData("Beanbean Castle Town West Side House Block 3", 0x39D7B4, 0), + LocationData("Beanbean Castle Town West Side House Block 4", 0x39D7BC, 0), + LocationData("Beanbean Castle Town East Side House Block 1", 0x39D7D8, 0), + LocationData("Beanbean Castle Town East Side House Block 2", 0x39D7E0, 0), + LocationData("Beanbean Castle Town East Side House Block 3", 0x39D7E8, 0), + LocationData("Beanbean Castle Town East Side House Block 4", 0x39D7F0, 0), LocationData("Beanbean Castle Peach's Extra Dress", 0x1E9433, 2), LocationData("Beanbean Castle Fake Beanstar", 0x1E9432, 2), LocationData("Beanbean Castle Town Beanlet 1", 0x251347, 1), @@ -444,14 +442,14 @@ class MLSSLocation(Location): ] kidnappedFlag: typing.List[LocationData] = [ - LocationData("Badge Shop Enter Fungitown Flag 1", 0x3C0640, 2), - LocationData("Badge Shop Enter Fungitown Flag 2", 0x3C0642, 2), - LocationData("Badge Shop Enter Fungitown Flag 3", 0x3C0644, 2), - LocationData("Pants Shop Enter Fungitown Flag 1", 0x3C0646, 2), - LocationData("Pants Shop Enter Fungitown Flag 2", 0x3C0648, 2), - LocationData("Pants Shop Enter Fungitown Flag 3", 0x3C064A, 2), - LocationData("Shop Enter Fungitown Flag 1", 0x3C0606, 3), - LocationData("Shop Enter Fungitown Flag 2", 0x3C0608, 3), + LocationData("Badge Shop Trunkle Flag 1", 0x3C0640, 2), + LocationData("Badge Shop Trunkle Flag 2", 0x3C0642, 2), + LocationData("Badge Shop Trunkle Flag 3", 0x3C0644, 2), + LocationData("Pants Shop Trunkle Flag 1", 0x3C0646, 2), + LocationData("Pants Shop Trunkle Flag 2", 0x3C0648, 2), + LocationData("Pants Shop Trunkle Flag 3", 0x3C064A, 2), + LocationData("Shop Trunkle Flag 1", 0x3C0606, 3), + LocationData("Shop Trunkle Flag 2", 0x3C0608, 3), ] beanstarFlag: typing.List[LocationData] = [ @@ -553,21 +551,21 @@ class MLSSLocation(Location): airport: typing.List[LocationData] = [ LocationData("Airport Entrance Digspot", 0x39E2DC, 0), LocationData("Airport Lobby Digspot", 0x39E2E9, 0), - LocationData("Airport Leftside Digspot 1", 0x39E2F6, 0), - LocationData("Airport Leftside Digspot 2", 0x39E2FE, 0), - LocationData("Airport Leftside Digspot 3", 0x39E306, 0), - LocationData("Airport Leftside Digspot 4", 0x39E30E, 0), - LocationData("Airport Leftside Digspot 5", 0x39E316, 0), + LocationData("Airport Westside Digspot 1", 0x39E2F6, 0), + LocationData("Airport Westside Digspot 2", 0x39E2FE, 0), + LocationData("Airport Westside Digspot 3", 0x39E306, 0), + LocationData("Airport Westside Digspot 4", 0x39E30E, 0), + LocationData("Airport Westside Digspot 5", 0x39E316, 0), LocationData("Airport Center Digspot 1", 0x39E323, 0), LocationData("Airport Center Digspot 2", 0x39E32B, 0), LocationData("Airport Center Digspot 3", 0x39E333, 0), LocationData("Airport Center Digspot 4", 0x39E33B, 0), LocationData("Airport Center Digspot 5", 0x39E343, 0), - LocationData("Airport Rightside Digspot 1", 0x39E350, 0), - LocationData("Airport Rightside Digspot 2", 0x39E358, 0), - LocationData("Airport Rightside Digspot 3", 0x39E360, 0), - LocationData("Airport Rightside Digspot 4", 0x39E368, 0), - LocationData("Airport Rightside Digspot 5", 0x39E370, 0), + LocationData("Airport Eastside Digspot 1", 0x39E350, 0), + LocationData("Airport Eastside Digspot 2", 0x39E358, 0), + LocationData("Airport Eastside Digspot 3", 0x39E360, 0), + LocationData("Airport Eastside Digspot 4", 0x39E368, 0), + LocationData("Airport Eastside Digspot 5", 0x39E370, 0), ] gwarharEntrance: typing.List[LocationData] = [ @@ -617,7 +615,6 @@ class MLSSLocation(Location): LocationData("Teehee Valley Past Ultra Hammer Rock Block 2", 0x39E590, 0), LocationData("Teehee Valley Past Ultra Hammer Rock Digspot 1", 0x39E598, 0), LocationData("Teehee Valley Past Ultra Hammer Rock Digspot 3", 0x39E5A8, 0), - LocationData("Teehee Valley Solo Luigi Maze Room 1 Block", 0x39E5E0, 0), LocationData("Teehee Valley Before Trunkle Digspot", 0x39E5F0, 0), LocationData("S.S. Chuckola Storage Room Block 1", 0x39E610, 0), LocationData("S.S. Chuckola Storage Room Block 2", 0x39E628, 0), @@ -667,7 +664,7 @@ class MLSSLocation(Location): LocationData("Bowser's Castle Iggy & Morton Hallway Block 1", 0x39E9EF, 0), LocationData("Bowser's Castle Iggy & Morton Hallway Block 2", 0x39E9F7, 0), LocationData("Bowser's Castle Iggy & Morton Hallway Digspot", 0x39E9FF, 0), - LocationData("Bowser's Castle After Morton Block", 0x39EA0C, 0), + LocationData("Bowser's Castle Past Morton Block", 0x39EA0C, 0), LocationData("Bowser's Castle Morton Room 1 Digspot", 0x39EA89, 0), LocationData("Bowser's Castle Lemmy Room 1 Block", 0x39EA9C, 0), LocationData("Bowser's Castle Lemmy Room 1 Digspot", 0x39EAA4, 0), @@ -705,16 +702,16 @@ class MLSSLocation(Location): LocationData("Joke's End Second Floor West Room Block 4", 0x39E781, 0), LocationData("Joke's End Mole Reward 1", 0x27788E, 1), LocationData("Joke's End Mole Reward 2", 0x2778D2, 1), -] - -jokesMain: typing.List[LocationData] = [ LocationData("Joke's End Furnace Room 1 Block 1", 0x39E70F, 0), LocationData("Joke's End Furnace Room 1 Block 2", 0x39E717, 0), LocationData("Joke's End Furnace Room 1 Block 3", 0x39E71F, 0), LocationData("Joke's End Northeast of Boiler Room 1 Block", 0x39E732, 0), - LocationData("Joke's End Northeast of Boiler Room 3 Digspot", 0x39E73F, 0), LocationData("Joke's End Northeast of Boiler Room 2 Block", 0x39E74C, 0), LocationData("Joke's End Northeast of Boiler Room 2 Digspot", 0x39E754, 0), + LocationData("Joke's End Northeast of Boiler Room 3 Digspot", 0x39E73F, 0), +] + +jokesMain: typing.List[LocationData] = [ LocationData("Joke's End Second Floor East Room Digspot", 0x39E794, 0), LocationData("Joke's End Final Split up Room Digspot", 0x39E7A7, 0), LocationData("Joke's End South of Bridge Room Block", 0x39E7B4, 0), @@ -740,10 +737,10 @@ class MLSSLocation(Location): postJokes: typing.List[LocationData] = [ LocationData("Teehee Valley Past Ultra Hammer Rock Digspot 2 (Post-Birdo)", 0x39E5A0, 0), - LocationData("Teehee Valley Before Popple Digspot 1", 0x39E55B, 0), - LocationData("Teehee Valley Before Popple Digspot 2", 0x39E563, 0), - LocationData("Teehee Valley Before Popple Digspot 3", 0x39E56B, 0), - LocationData("Teehee Valley Before Popple Digspot 4", 0x39E573, 0), + LocationData("Teehee Valley Before Birdo Digspot 1", 0x39E55B, 0), + LocationData("Teehee Valley Before Birdo Digspot 2", 0x39E563, 0), + LocationData("Teehee Valley Before Birdo Digspot 3", 0x39E56B, 0), + LocationData("Teehee Valley Before Birdo Digspot 4", 0x39E573, 0), ] theater: typing.List[LocationData] = [ @@ -766,6 +763,10 @@ class MLSSLocation(Location): LocationData("Oho Oasis Thunderhand", 0x1E9409, 2), ] +cacklettas_soul: typing.List[LocationData] = [ + LocationData("Cackletta's Soul", None, 0), +] + nonBlock = [ (0x434B, 0x1, 0x243844), # Farm Mole 1 (0x434B, 0x1, 0x24387D), # Farm Mole 2 @@ -1171,15 +1172,15 @@ class MLSSLocation(Location): + fungitownBeanstar + fungitownBirdo + bowsers + + bowsersMini + jokesEntrance + jokesMain + postJokes + theater + oasis + gwarharMain - + bowsersMini + baseUltraRocks + coins ) -location_table: typing.Dict[str, int] = {locData.name: locData.id for locData in all_locations} +location_table: typing.Dict[str, int] = {location.name: location.id for location in all_locations} diff --git a/worlds/mlss/Names/LocationName.py b/worlds/mlss/Names/LocationName.py index 7cbc2e4f31f8..5b38b2a10f6e 100644 --- a/worlds/mlss/Names/LocationName.py +++ b/worlds/mlss/Names/LocationName.py @@ -8,14 +8,14 @@ class LocationName: StardustFields4Block3 = "Stardust Fields Room 4 Block 3" StardustFields5Block = "Stardust Fields Room 5 Block" HoohooVillageHammerHouseBlock = "Hoohoo Village Hammer House Block" - BeanbeanCastleTownLeftSideHouseBlock1 = "Beanbean Castle Town Left Side House Block 1" - BeanbeanCastleTownLeftSideHouseBlock2 = "Beanbean Castle Town Left Side House Block 2" - BeanbeanCastleTownLeftSideHouseBlock3 = "Beanbean Castle Town Left Side House Block 3" - BeanbeanCastleTownLeftSideHouseBlock4 = "Beanbean Castle Town Left Side House Block 4" - BeanbeanCastleTownRightSideHouseBlock1 = "Beanbean Castle Town Right Side House Block 1" - BeanbeanCastleTownRightSideHouseBlock2 = "Beanbean Castle Town Right Side House Block 2" - BeanbeanCastleTownRightSideHouseBlock3 = "Beanbean Castle Town Right Side House Block 3" - BeanbeanCastleTownRightSideHouseBlock4 = "Beanbean Castle Town Right Side House Block 4" + BeanbeanCastleTownWestsideHouseBlock1 = "Beanbean Castle Town Westside House Block 1" + BeanbeanCastleTownWestsideHouseBlock2 = "Beanbean Castle Town Westside House Block 2" + BeanbeanCastleTownWestsideHouseBlock3 = "Beanbean Castle Town Westside House Block 3" + BeanbeanCastleTownWestsideHouseBlock4 = "Beanbean Castle Town Westside House Block 4" + BeanbeanCastleTownEastsideHouseBlock1 = "Beanbean Castle Town Eastside House Block 1" + BeanbeanCastleTownEastsideHouseBlock2 = "Beanbean Castle Town Eastside House Block 2" + BeanbeanCastleTownEastsideHouseBlock3 = "Beanbean Castle Town Eastside House Block 3" + BeanbeanCastleTownEastsideHouseBlock4 = "Beanbean Castle Town Eastside House Block 4" BeanbeanCastleTownMiniMarioBlock1 = "Beanbean Castle Town Mini Mario Block 1" BeanbeanCastleTownMiniMarioBlock2 = "Beanbean Castle Town Mini Mario Block 2" BeanbeanCastleTownMiniMarioBlock3 = "Beanbean Castle Town Mini Mario Block 3" @@ -26,9 +26,9 @@ class LocationName: HoohooMountainBelowSummitBlock1 = "Hoohoo Mountain Below Summit Block 1" HoohooMountainBelowSummitBlock2 = "Hoohoo Mountain Below Summit Block 2" HoohooMountainBelowSummitBlock3 = "Hoohoo Mountain Below Summit Block 3" - HoohooMountainAfterHoohoorosBlock1 = "Hoohoo Mountain After Hoohooros Block 1" - HoohooMountainAfterHoohoorosDigspot = "Hoohoo Mountain After Hoohooros Digspot" - HoohooMountainAfterHoohoorosBlock2 = "Hoohoo Mountain After Hoohooros Block 2" + HoohooMountainPastHoohoorosBlock1 = "Hoohoo Mountain Past Hoohooros Block 1" + HoohooMountainPastHoohoorosDigspot = "Hoohoo Mountain Past Hoohooros Digspot" + HoohooMountainPastHoohoorosBlock2 = "Hoohoo Mountain Past Hoohooros Block 2" HoohooMountainHoohoorosRoomBlock1 = "Hoohoo Mountain Hoohooros Room Block 1" HoohooMountainHoohoorosRoomBlock2 = "Hoohoo Mountain Hoohooros Room Block 2" HoohooMountainHoohoorosRoomDigspot1 = "Hoohoo Mountain Hoohooros Room Digspot 1" @@ -44,8 +44,8 @@ class LocationName: HoohooMountainRoom1Block3 = "Hoohoo Mountain Room 1 Block 3" HoohooMountainBaseRoom1Block = "Hoohoo Mountain Base Room 1 Block" HoohooMountainBaseRoom1Digspot = "Hoohoo Mountain Base Room 1 Digspot" - HoohooVillageRightSideBlock = "Hoohoo Village Right Side Block" - HoohooVillageRightSideDigspot = "Hoohoo Village Right Side Digspot" + HoohooVillageEastsideBlock = "Hoohoo Village Eastside Block" + HoohooVillageEastsideDigspot = "Hoohoo Village Eastside Digspot" HoohooVillageBridgeRoomBlock1 = "Hoohoo Village Bridge Room Block 1" HoohooVillageBridgeRoomBlock2 = "Hoohoo Village Bridge Room Block 2" HoohooVillageBridgeRoomBlock3 = "Hoohoo Village Bridge Room Block 3" @@ -65,8 +65,8 @@ class LocationName: HoohooMountainBaseGuffawhaRuinsEntranceDigspot = "Hoohoo Mountain Base Guffawha Ruins Entrance Digspot" HoohooMountainBaseTeeheeValleyEntranceDigspot = "Hoohoo Mountain Base Teehee Valley Entrance Digspot" HoohooMountainBaseTeeheeValleyEntranceBlock = "Hoohoo Mountain Base Teehee Valley Entrance Block" - HoohooMountainBaseAfterMinecartMinigameBlock1 = "Hoohoo Mountain Base After Minecart Minigame Block 1" - HoohooMountainBaseAfterMinecartMinigameBlock2 = "Hoohoo Mountain Base After Minecart Minigame Block 2" + HoohooMountainBasePastMinecartMinigameBlock1 = "Hoohoo Mountain Base Past Minecart Minigame Block 1" + HoohooMountainBasePastMinecartMinigameBlock2 = "Hoohoo Mountain Base Past Minecart Minigame Block 2" HoohooMountainBasePastUltraHammerRocksBlock1 = "Hoohoo Mountain Base Past Ultra Hammer Rocks Block 1" HoohooMountainBasePastUltraHammerRocksBlock2 = "Hoohoo Mountain Base Past Ultra Hammer Rocks Block 2" HoohooMountainBasePastUltraHammerRocksBlock3 = "Hoohoo Mountain Base Past Ultra Hammer Rocks Block 3" @@ -148,12 +148,12 @@ class LocationName: ChucklehuckWoodsSouthwestOfChucklerootBlock = "Chucklehuck Woods Southwest of Chuckleroot Block" ChucklehuckWoodsWigglerRoomDigspot1 = "Chucklehuck Woods Wiggler Room Digspot 1" ChucklehuckWoodsWigglerRoomDigspot2 = "Chucklehuck Woods Wiggler Room Digspot 2" - ChucklehuckWoodsAfterChucklerootBlock1 = "Chucklehuck Woods After Chuckleroot Block 1" - ChucklehuckWoodsAfterChucklerootBlock2 = "Chucklehuck Woods After Chuckleroot Block 2" - ChucklehuckWoodsAfterChucklerootBlock3 = "Chucklehuck Woods After Chuckleroot Block 3" - ChucklehuckWoodsAfterChucklerootBlock4 = "Chucklehuck Woods After Chuckleroot Block 4" - ChucklehuckWoodsAfterChucklerootBlock5 = "Chucklehuck Woods After Chuckleroot Block 5" - ChucklehuckWoodsAfterChucklerootBlock6 = "Chucklehuck Woods After Chuckleroot Block 6" + ChucklehuckWoodsPastChucklerootBlock1 = "Chucklehuck Woods Past Chuckleroot Block 1" + ChucklehuckWoodsPastChucklerootBlock2 = "Chucklehuck Woods Past Chuckleroot Block 2" + ChucklehuckWoodsPastChucklerootBlock3 = "Chucklehuck Woods Past Chuckleroot Block 3" + ChucklehuckWoodsPastChucklerootBlock4 = "Chucklehuck Woods Past Chuckleroot Block 4" + ChucklehuckWoodsPastChucklerootBlock5 = "Chucklehuck Woods Past Chuckleroot Block 5" + ChucklehuckWoodsPastChucklerootBlock6 = "Chucklehuck Woods Past Chuckleroot Block 6" WinkleAreaBeanstarRoomBlock = "Winkle Area Beanstar Room Block" WinkleAreaDigspot = "Winkle Area Digspot" WinkleAreaOutsideColosseumBlock = "Winkle Area Outside Colosseum Block" @@ -232,21 +232,21 @@ class LocationName: WoohooHooniversityPastCacklettaRoom2Digspot = "Woohoo Hooniversity Past Cackletta Room 2 Digspot" AirportEntranceDigspot = "Airport Entrance Digspot" AirportLobbyDigspot = "Airport Lobby Digspot" - AirportLeftsideDigspot1 = "Airport Leftside Digspot 1" - AirportLeftsideDigspot2 = "Airport Leftside Digspot 2" - AirportLeftsideDigspot3 = "Airport Leftside Digspot 3" - AirportLeftsideDigspot4 = "Airport Leftside Digspot 4" - AirportLeftsideDigspot5 = "Airport Leftside Digspot 5" + AirportWestsideDigspot1 = "Airport Westside Digspot 1" + AirportWestsideDigspot2 = "Airport Westside Digspot 2" + AirportWestsideDigspot3 = "Airport Westside Digspot 3" + AirportWestsideDigspot4 = "Airport Westside Digspot 4" + AirportWestsideDigspot5 = "Airport Westside Digspot 5" AirportCenterDigspot1 = "Airport Center Digspot 1" AirportCenterDigspot2 = "Airport Center Digspot 2" AirportCenterDigspot3 = "Airport Center Digspot 3" AirportCenterDigspot4 = "Airport Center Digspot 4" AirportCenterDigspot5 = "Airport Center Digspot 5" - AirportRightsideDigspot1 = "Airport Rightside Digspot 1" - AirportRightsideDigspot2 = "Airport Rightside Digspot 2" - AirportRightsideDigspot3 = "Airport Rightside Digspot 3" - AirportRightsideDigspot4 = "Airport Rightside Digspot 4" - AirportRightsideDigspot5 = "Airport Rightside Digspot 5" + AirportEastsideDigspot1 = "Airport Eastside Digspot 1" + AirportEastsideDigspot2 = "Airport Eastside Digspot 2" + AirportEastsideDigspot3 = "Airport Eastside Digspot 3" + AirportEastsideDigspot4 = "Airport Eastside Digspot 4" + AirportEastsideDigspot5 = "Airport Eastside Digspot 5" GwarharLagoonPipeRoomDigspot = "Gwarhar Lagoon Pipe Room Digspot" GwarharLagoonMassageParlorEntranceDigspot = "Gwarhar Lagoon Massage Parlor Entrance Digspot" GwarharLagoonPastHermieDigspot = "Gwarhar Lagoon Past Hermie Digspot" @@ -276,10 +276,10 @@ class LocationName: WoohooHooniversityBasementRoom4Block = "Woohoo Hooniversity Basement Room 4 Block" WoohooHooniversityPoppleRoomDigspot1 = "Woohoo Hooniversity Popple Room Digspot 1" WoohooHooniversityPoppleRoomDigspot2 = "Woohoo Hooniversity Popple Room Digspot 2" - TeeheeValleyBeforePoppleDigspot1 = "Teehee Valley Before Popple Digspot 1" - TeeheeValleyBeforePoppleDigspot2 = "Teehee Valley Before Popple Digspot 2" - TeeheeValleyBeforePoppleDigspot3 = "Teehee Valley Before Popple Digspot 3" - TeeheeValleyBeforePoppleDigspot4 = "Teehee Valley Before Popple Digspot 4" + TeeheeValleyBeforeBirdoDigspot1 = "Teehee Valley Before Birdo Digspot 1" + TeeheeValleyBeforeBirdoDigspot2 = "Teehee Valley Before Birdo Digspot 2" + TeeheeValleyBeforeBirdoDigspot3 = "Teehee Valley Before Birdo Digspot 3" + TeeheeValleyBeforeBirdoDigspot4 = "Teehee Valley Before Birdo Digspot 4" TeeheeValleyRoom1Digspot1 = "Teehee Valley Room 1 Digspot 1" TeeheeValleyRoom1Digspot2 = "Teehee Valley Room 1 Digspot 2" TeeheeValleyRoom1Digspot3 = "Teehee Valley Room 1 Digspot 3" @@ -296,9 +296,9 @@ class LocationName: TeeheeValleyPastUltraHammersDigspot2 = "Teehee Valley Past Ultra Hammer Rock Digspot 2 (Post-Birdo)" TeeheeValleyPastUltraHammersDigspot3 = "Teehee Valley Past Ultra Hammer Rock Digspot 3" TeeheeValleyEntranceToHoohooMountainDigspot = "Teehee Valley Entrance To Hoohoo Mountain Digspot" - TeeheeValleySoloLuigiMazeRoom2Digspot1 = "Teehee Valley Solo Luigi Maze Room 2 Digspot 1" - TeeheeValleySoloLuigiMazeRoom2Digspot2 = "Teehee Valley Solo Luigi Maze Room 2 Digspot 2" - TeeheeValleySoloLuigiMazeRoom1Block = "Teehee Valley Solo Luigi Maze Room 1 Block" + TeeheeValleyUpperMazeRoom2Digspot1 = "Teehee Valley Upper Maze Room 2 Digspot 1" + TeeheeValleyUpperMazeRoom2Digspot2 = "Teehee Valley Upper Maze Room 2 Digspot 2" + TeeheeValleyUpperMazeRoom1Block = "Teehee Valley Upper Maze Room 1 Block" TeeheeValleyBeforeTrunkleDigspot = "Teehee Valley Before Trunkle Digspot" TeeheeValleyTrunkleRoomDigspot = "Teehee Valley Trunkle Room Digspot" SSChuckolaStorageRoomBlock1 = "S.S. Chuckola Storage Room Block 1" @@ -314,10 +314,10 @@ class LocationName: JokesEndFurnaceRoom1Block1 = "Joke's End Furnace Room 1 Block 1" JokesEndFurnaceRoom1Block2 = "Joke's End Furnace Room 1 Block 2" JokesEndFurnaceRoom1Block3 = "Joke's End Furnace Room 1 Block 3" - JokesEndNortheastOfBoilerRoom1Block = "Joke's End Northeast Of Boiler Room 1 Block" - JokesEndNortheastOfBoilerRoom3Digspot = "Joke's End Northeast Of Boiler Room 3 Digspot" - JokesEndNortheastOfBoilerRoom2Block1 = "Joke's End Northeast Of Boiler Room 2 Block" - JokesEndNortheastOfBoilerRoom2Block2 = "Joke's End Northeast Of Boiler Room 2 Digspot" + JokesEndNortheastOfBoilerRoom1Block = "Joke's End Northeast of Boiler Room 1 Block" + JokesEndNortheastOfBoilerRoom3Digspot = "Joke's End Northeast of Boiler Room 3 Digspot" + JokesEndNortheastOfBoilerRoom2Block1 = "Joke's End Northeast of Boiler Room 2 Block" + JokesEndNortheastOfBoilerRoom2Digspot = "Joke's End Northeast of Boiler Room 2 Digspot" JokesEndSecondFloorWestRoomBlock1 = "Joke's End Second Floor West Room Block 1" JokesEndSecondFloorWestRoomBlock2 = "Joke's End Second Floor West Room Block 2" JokesEndSecondFloorWestRoomBlock3 = "Joke's End Second Floor West Room Block 3" @@ -505,7 +505,7 @@ class LocationName: BowsersCastleIggyMortonHallwayBlock1 = "Bowser's Castle Iggy & Morton Hallway Block 1" BowsersCastleIggyMortonHallwayBlock2 = "Bowser's Castle Iggy & Morton Hallway Block 2" BowsersCastleIggyMortonHallwayDigspot = "Bowser's Castle Iggy & Morton Hallway Digspot" - BowsersCastleAfterMortonBlock = "Bowser's Castle After Morton Block" + BowsersCastlePastMortonBlock = "Bowser's Castle Past Morton Block" BowsersCastleLudwigRoyHallwayBlock1 = "Bowser's Castle Ludwig & Roy Hallway Block 1" BowsersCastleLudwigRoyHallwayBlock2 = "Bowser's Castle Ludwig & Roy Hallway Block 2" BowsersCastleRoyCorridorBlock1 = "Bowser's Castle Roy Corridor Block 1" @@ -546,7 +546,7 @@ class LocationName: ChucklehuckWoodsCaveRoom3CoinBlock = "Chucklehuck Woods Cave Room 3 Coin Block" ChucklehuckWoodsPipe5RoomCoinBlock = "Chucklehuck Woods Pipe 5 Room Coin Block" ChucklehuckWoodsRoom7CoinBlock = "Chucklehuck Woods Room 7 Coin Block" - ChucklehuckWoodsAfterChucklerootCoinBlock = "Chucklehuck Woods After Chuckleroot Coin Block" + ChucklehuckWoodsPastChucklerootCoinBlock = "Chucklehuck Woods Past Chuckleroot Coin Block" ChucklehuckWoodsKoopaRoomCoinBlock = "Chucklehuck Woods Koopa Room Coin Block" ChucklehuckWoodsWinkleAreaCaveCoinBlock = "Chucklehuck Woods Winkle Area Cave Coin Block" SewersPrisonRoomCoinBlock = "Sewers Prison Room Coin Block" diff --git a/worlds/mlss/Options.py b/worlds/mlss/Options.py index 14c1ef3a7d5a..73e8ebd4015f 100644 --- a/worlds/mlss/Options.py +++ b/worlds/mlss/Options.py @@ -1,4 +1,4 @@ -from Options import Choice, Toggle, StartInventoryPool, PerGameCommonOptions, Range +from Options import Choice, Toggle, StartInventoryPool, PerGameCommonOptions, Range, Removed from dataclasses import dataclass @@ -282,7 +282,8 @@ class MLSSOptions(PerGameCommonOptions): extra_pipes: ExtraPipes skip_minecart: SkipMinecart disable_surf: DisableSurf - harhalls_pants: HarhallsPants + disable_harhalls_pants: HarhallsPants + harhalls_pants: Removed block_visibility: HiddenVisible chuckle_beans: ChuckleBeans music_options: MusicOptions diff --git a/worlds/mlss/Regions.py b/worlds/mlss/Regions.py index 992e99e2c7f7..7dd5e9451141 100644 --- a/worlds/mlss/Regions.py +++ b/worlds/mlss/Regions.py @@ -33,6 +33,7 @@ postJokes, baseUltraRocks, coins, + cacklettas_soul, ) from . import StateLogic @@ -40,44 +41,45 @@ from . import MLSSWorld -def create_regions(world: "MLSSWorld", excluded: typing.List[str]): +def create_regions(world: "MLSSWorld"): menu_region = Region("Menu", world.player, world.multiworld) world.multiworld.regions.append(menu_region) - create_region(world, "Main Area", mainArea, excluded) - create_region(world, "Chucklehuck Woods", chucklehuck, excluded) - create_region(world, "Beanbean Castle Town", castleTown, excluded) - create_region(world, "Shop Starting Flag", startingFlag, excluded) - create_region(world, "Shop Chuckolator Flag", chuckolatorFlag, excluded) - create_region(world, "Shop Mom Piranha Flag", piranhaFlag, excluded) - create_region(world, "Shop Enter Fungitown Flag", kidnappedFlag, excluded) - create_region(world, "Shop Beanstar Complete Flag", beanstarFlag, excluded) - create_region(world, "Shop Birdo Flag", birdoFlag, excluded) - create_region(world, "Surfable", surfable, excluded) - create_region(world, "Hooniversity", hooniversity, excluded) - create_region(world, "GwarharEntrance", gwarharEntrance, excluded) - create_region(world, "GwarharMain", gwarharMain, excluded) - create_region(world, "TeeheeValley", teeheeValley, excluded) - create_region(world, "Winkle", winkle, excluded) - create_region(world, "Sewers", sewers, excluded) - create_region(world, "Airport", airport, excluded) - create_region(world, "JokesEntrance", jokesEntrance, excluded) - create_region(world, "JokesMain", jokesMain, excluded) - create_region(world, "PostJokes", postJokes, excluded) - create_region(world, "Theater", theater, excluded) - create_region(world, "Fungitown", fungitown, excluded) - create_region(world, "Fungitown Shop Beanstar Complete Flag", fungitownBeanstar, excluded) - create_region(world, "Fungitown Shop Birdo Flag", fungitownBirdo, excluded) - create_region(world, "BooStatue", booStatue, excluded) - create_region(world, "Oasis", oasis, excluded) - create_region(world, "BaseUltraRocks", baseUltraRocks, excluded) + create_region(world, "Main Area", mainArea) + create_region(world, "Chucklehuck Woods", chucklehuck) + create_region(world, "Beanbean Castle Town", castleTown) + create_region(world, "Shop Starting Flag", startingFlag) + create_region(world, "Shop Chuckolator Flag", chuckolatorFlag) + create_region(world, "Shop Mom Piranha Flag", piranhaFlag) + create_region(world, "Shop Enter Fungitown Flag", kidnappedFlag) + create_region(world, "Shop Beanstar Complete Flag", beanstarFlag) + create_region(world, "Shop Birdo Flag", birdoFlag) + create_region(world, "Surfable", surfable) + create_region(world, "Hooniversity", hooniversity) + create_region(world, "GwarharEntrance", gwarharEntrance) + create_region(world, "GwarharMain", gwarharMain) + create_region(world, "TeeheeValley", teeheeValley) + create_region(world, "Winkle", winkle) + create_region(world, "Sewers", sewers) + create_region(world, "Airport", airport) + create_region(world, "JokesEntrance", jokesEntrance) + create_region(world, "JokesMain", jokesMain) + create_region(world, "PostJokes", postJokes) + create_region(world, "Theater", theater) + create_region(world, "Fungitown", fungitown) + create_region(world, "Fungitown Shop Beanstar Complete Flag", fungitownBeanstar) + create_region(world, "Fungitown Shop Birdo Flag", fungitownBirdo) + create_region(world, "BooStatue", booStatue) + create_region(world, "Oasis", oasis) + create_region(world, "BaseUltraRocks", baseUltraRocks) + create_region(world, "Cackletta's Soul", cacklettas_soul) if world.options.coins: - create_region(world, "Coins", coins, excluded) + create_region(world, "Coins", coins) if not world.options.castle_skip: - create_region(world, "Bowser's Castle", bowsers, excluded) - create_region(world, "Bowser's Castle Mini", bowsersMini, excluded) + create_region(world, "Bowser's Castle", bowsers) + create_region(world, "Bowser's Castle Mini", bowsersMini) def connect_regions(world: "MLSSWorld"): @@ -221,6 +223,9 @@ def connect_regions(world: "MLSSWorld"): "Bowser's Castle Mini", lambda state: StateLogic.canMini(state, world.player) and StateLogic.thunder(state, world.player), ) + connect(world, names, "Bowser's Castle Mini", "Cackletta's Soul") + else: + connect(world, names, "PostJokes", "Cackletta's Soul") connect(world, names, "Chucklehuck Woods", "Winkle", lambda state: StateLogic.canDash(state, world.player)) connect( world, @@ -282,11 +287,11 @@ def connect_regions(world: "MLSSWorld"): ) -def create_region(world: "MLSSWorld", name, locations, excluded): +def create_region(world: "MLSSWorld", name, locations): ret = Region(name, world.player, world.multiworld) for location in locations: loc = MLSSLocation(world.player, location.name, location.id, ret) - if location.name in excluded: + if location.name in world.disabled_locations: continue ret.locations.append(loc) world.multiworld.regions.append(ret) diff --git a/worlds/mlss/Rom.py b/worlds/mlss/Rom.py index 7cbbe8875195..03eac040efb2 100644 --- a/worlds/mlss/Rom.py +++ b/worlds/mlss/Rom.py @@ -8,7 +8,7 @@ from settings import get_settings from worlds.Files import APProcedurePatch, APTokenMixin, APTokenTypes, APPatchExtension from .Items import item_table -from .Locations import shop, badge, pants, location_table, hidden, all_locations +from .Locations import shop, badge, pants, location_table, all_locations if TYPE_CHECKING: from . import MLSSWorld @@ -88,7 +88,7 @@ def hidden_visible(caller: APProcedurePatch, rom: bytes): return rom stream = io.BytesIO(rom) - for location in all_locations: + for location in [location for location in all_locations if location.itemType == 0]: stream.seek(location.id - 6) b = stream.read(1) if b[0] == 0x10 and options["block_visibility"] == 1: @@ -133,7 +133,7 @@ def enemy_randomize(caller: APProcedurePatch, rom: bytes): stream = io.BytesIO(rom) random.seed(options["seed"] + options["player"]) - if options["randomize_bosses"] == 1 or (options["randomize_bosses"] == 2) and options["randomize_enemies"] == 0: + if options["randomize_bosses"] == 1 or (options["randomize_bosses"] == 2 and options["randomize_enemies"] == 0): raw = [] for pos in bosses: stream.seek(pos + 1) @@ -164,6 +164,7 @@ def enemy_randomize(caller: APProcedurePatch, rom: bytes): enemies_raw = [] groups = [] + boss_groups = [] if options["randomize_enemies"] == 0: return stream.getvalue() @@ -171,7 +172,7 @@ def enemy_randomize(caller: APProcedurePatch, rom: bytes): if options["randomize_bosses"] == 2: for pos in bosses: stream.seek(pos + 1) - groups += [stream.read(0x1F)] + boss_groups += [stream.read(0x1F)] for pos in enemies: stream.seek(pos + 8) @@ -221,12 +222,19 @@ def enemy_randomize(caller: APProcedurePatch, rom: bytes): groups += [raw] chomp = False - random.shuffle(groups) arr = enemies if options["randomize_bosses"] == 2: arr += bosses + groups += boss_groups + + random.shuffle(groups) for pos in arr: + if arr[-1] in boss_groups: + stream.seek(pos) + temp = stream.read(1) + stream.seek(pos) + stream.write(bytes([temp[0] | 0x8])) stream.seek(pos + 1) stream.write(groups.pop()) @@ -320,20 +328,9 @@ def write_tokens(world: "MLSSWorld", patch: MLSSProcedurePatch) -> None: patch.write_token(APTokenTypes.WRITE, address + 3, bytes([world.random.randint(0x0, 0x26)])) for location_name in location_table.keys(): - if ( - (world.options.skip_minecart and "Minecart" in location_name and "After" not in location_name) - or (world.options.castle_skip and "Bowser" in location_name) - or (world.options.disable_surf and "Surf Minigame" in location_name) - or (world.options.harhalls_pants and "Harhall's" in location_name) - ): - continue - if (world.options.chuckle_beans == 0 and "Digspot" in location_name) or ( - world.options.chuckle_beans == 1 and location_table[location_name] in hidden - ): - continue - if not world.options.coins and "Coin" in location_name: + if location_name in world.disabled_locations: continue - location = world.multiworld.get_location(location_name, world.player) + location = world.get_location(location_name) item = location.item address = [address for address in all_locations if address.name == location.name] item_inject(world, patch, location.address, address[0].itemType, item) diff --git a/worlds/mlss/Rules.py b/worlds/mlss/Rules.py index 13627eafc479..b0b5a36465e2 100644 --- a/worlds/mlss/Rules.py +++ b/worlds/mlss/Rules.py @@ -13,7 +13,7 @@ def set_rules(world: "MLSSWorld", excluded): for location in all_locations: if "Digspot" in location.name: if (world.options.skip_minecart and "Minecart" in location.name) or ( - world.options.castle_skip and "Bowser" in location.name + world.options.castle_skip and "Bowser" in location.name ): continue if world.options.chuckle_beans == 0 or world.options.chuckle_beans == 1 and location.id in hidden: @@ -218,9 +218,9 @@ def set_rules(world: "MLSSWorld", excluded): add_rule( world.get_location(LocationName.BeanbeanOutskirtsUltraHammerUpgrade), lambda state: StateLogic.thunder(state, world.player) - and StateLogic.pieces(state, world.player) - and StateLogic.castleTown(state, world.player) - and StateLogic.rose(state, world.player), + and StateLogic.pieces(state, world.player) + and StateLogic.castleTown(state, world.player) + and StateLogic.rose(state, world.player), ) add_rule( world.get_location(LocationName.BeanbeanOutskirtsSoloLuigiCaveMole), @@ -235,27 +235,27 @@ def set_rules(world: "MLSSWorld", excluded): lambda state: StateLogic.canDig(state, world.player) and StateLogic.canMini(state, world.player), ) add_rule( - world.get_location(LocationName.ChucklehuckWoodsAfterChucklerootBlock1), + world.get_location(LocationName.ChucklehuckWoodsPastChucklerootBlock1), lambda state: StateLogic.fruits(state, world.player), ) add_rule( - world.get_location(LocationName.ChucklehuckWoodsAfterChucklerootBlock2), + world.get_location(LocationName.ChucklehuckWoodsPastChucklerootBlock2), lambda state: StateLogic.fruits(state, world.player), ) add_rule( - world.get_location(LocationName.ChucklehuckWoodsAfterChucklerootBlock3), + world.get_location(LocationName.ChucklehuckWoodsPastChucklerootBlock3), lambda state: StateLogic.fruits(state, world.player), ) add_rule( - world.get_location(LocationName.ChucklehuckWoodsAfterChucklerootBlock4), + world.get_location(LocationName.ChucklehuckWoodsPastChucklerootBlock4), lambda state: StateLogic.fruits(state, world.player), ) add_rule( - world.get_location(LocationName.ChucklehuckWoodsAfterChucklerootBlock5), + world.get_location(LocationName.ChucklehuckWoodsPastChucklerootBlock5), lambda state: StateLogic.fruits(state, world.player), ) add_rule( - world.get_location(LocationName.ChucklehuckWoodsAfterChucklerootBlock6), + world.get_location(LocationName.ChucklehuckWoodsPastChucklerootBlock6), lambda state: StateLogic.fruits(state, world.player), ) add_rule( @@ -350,10 +350,6 @@ def set_rules(world: "MLSSWorld", excluded): world.get_location(LocationName.TeeheeValleyPastUltraHammersBlock2), lambda state: StateLogic.ultra(state, world.player), ) - add_rule( - world.get_location(LocationName.TeeheeValleySoloLuigiMazeRoom1Block), - lambda state: StateLogic.ultra(state, world.player), - ) add_rule( world.get_location(LocationName.OhoOasisFirebrand), lambda state: StateLogic.canMini(state, world.player), @@ -462,6 +458,143 @@ def set_rules(world: "MLSSWorld", excluded): lambda state: StateLogic.canCrash(state, world.player), ) + if world.options.randomize_bosses.value != 0: + if world.options.chuckle_beans != 0: + add_rule( + world.get_location(LocationName.HoohooMountainHoohoorosRoomDigspot1), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainPastHoohoorosDigspot), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainPastHoohoorosConnectorRoomDigspot1), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainBelowSummitDigspot), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainSummitDigspot), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + if world.options.chuckle_beans == 2: + add_rule( + world.get_location(LocationName.HoohooMountainHoohoorosRoomDigspot2), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainPastHoohoorosConnectorRoomDigspot2), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooVillageHammers), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainPeasleysRose), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainHoohoorosRoomBlock1), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainHoohoorosRoomBlock2), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainBelowSummitBlock1), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainBelowSummitBlock2), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainBelowSummitBlock3), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainPastHoohoorosBlock1), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainPastHoohoorosBlock2), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + add_rule( + world.get_location(LocationName.HoohooMountainPastHoohoorosConnectorRoomBlock), + lambda state: StateLogic.hammers(state, world.player) + or StateLogic.fire(state, world.player) + or StateLogic.thunder(state, world.player), + ) + + if not world.options.difficult_logic: + if world.options.chuckle_beans != 0: + add_rule( + world.get_location(LocationName.JokesEndNortheastOfBoilerRoom2Digspot), + lambda state: StateLogic.canCrash(state, world.player), + ) + add_rule( + world.get_location(LocationName.JokesEndNortheastOfBoilerRoom3Digspot), + lambda state: StateLogic.canCrash(state, world.player), + ) + add_rule( + world.get_location(LocationName.JokesEndNortheastOfBoilerRoom1Block), + lambda state: StateLogic.canCrash(state, world.player), + ) + add_rule( + world.get_location(LocationName.JokesEndNortheastOfBoilerRoom2Block1), + lambda state: StateLogic.canCrash(state, world.player), + ) + add_rule( + world.get_location(LocationName.JokesEndFurnaceRoom1Block1), + lambda state: StateLogic.canCrash(state, world.player), + ) + add_rule( + world.get_location(LocationName.JokesEndFurnaceRoom1Block2), + lambda state: StateLogic.canCrash(state, world.player), + ) + add_rule( + world.get_location(LocationName.JokesEndFurnaceRoom1Block3), + lambda state: StateLogic.canCrash(state, world.player), + ) + if world.options.coins: add_rule( world.get_location(LocationName.HoohooMountainBaseBooStatueCaveCoinBlock1), @@ -516,7 +649,7 @@ def set_rules(world: "MLSSWorld", excluded): lambda state: StateLogic.brooch(state, world.player) and StateLogic.hammers(state, world.player), ) add_rule( - world.get_location(LocationName.ChucklehuckWoodsAfterChucklerootCoinBlock), + world.get_location(LocationName.ChucklehuckWoodsPastChucklerootCoinBlock), lambda state: StateLogic.brooch(state, world.player) and StateLogic.fruits(state, world.player), ) add_rule( @@ -546,23 +679,23 @@ def set_rules(world: "MLSSWorld", excluded): add_rule( world.get_location(LocationName.GwarharLagoonFirstUnderwaterAreaRoom2CoinBlock), lambda state: StateLogic.canDash(state, world.player) - and (StateLogic.membership(state, world.player) or StateLogic.surfable(state, world.player)), + and (StateLogic.membership(state, world.player) or StateLogic.surfable(state, world.player)), ) add_rule( world.get_location(LocationName.JokesEndSecondFloorWestRoomCoinBlock), lambda state: StateLogic.ultra(state, world.player) - and StateLogic.fire(state, world.player) - and ( - StateLogic.membership(state, world.player) - or (StateLogic.canDig(state, world.player) and StateLogic.canMini(state, world.player)) - ), + and StateLogic.fire(state, world.player) + and (StateLogic.membership(state, world.player) + or (StateLogic.canDig(state, world.player) + and StateLogic.canMini(state, world.player))), ) add_rule( world.get_location(LocationName.JokesEndNorthofBridgeRoomCoinBlock), lambda state: StateLogic.ultra(state, world.player) - and StateLogic.fire(state, world.player) - and StateLogic.canDig(state, world.player) - and (StateLogic.membership(state, world.player) or StateLogic.canMini(state, world.player)), + and StateLogic.fire(state, world.player) + and StateLogic.canDig(state, world.player) + and (StateLogic.membership(state, world.player) + or StateLogic.canMini(state, world.player)), ) if not world.options.difficult_logic: add_rule( diff --git a/worlds/mlss/__init__.py b/worlds/mlss/__init__.py index f44343c230d0..bb7ed0515419 100644 --- a/worlds/mlss/__init__.py +++ b/worlds/mlss/__init__.py @@ -4,7 +4,7 @@ import settings from BaseClasses import Tutorial, ItemClassification from worlds.AutoWorld import WebWorld, World -from typing import List, Dict, Any +from typing import Set, Dict, Any from .Locations import all_locations, location_table, bowsers, bowsersMini, hidden, coins from .Options import MLSSOptions from .Items import MLSSItem, itemList, item_frequencies, item_table @@ -55,29 +55,29 @@ class MLSSWorld(World): settings: typing.ClassVar[MLSSSettings] item_name_to_id = {name: data.code for name, data in item_table.items()} location_name_to_id = {loc_data.name: loc_data.id for loc_data in all_locations} - required_client_version = (0, 4, 5) + required_client_version = (0, 5, 0) - disabled_locations: List[str] + disabled_locations: Set[str] def generate_early(self) -> None: - self.disabled_locations = [] - if self.options.chuckle_beans == 0: - self.disabled_locations += [location.name for location in all_locations if "Digspot" in location.name] - if self.options.castle_skip: - self.disabled_locations += [location.name for location in all_locations if "Bowser" in location.name] - if self.options.chuckle_beans == 1: - self.disabled_locations = [location.name for location in all_locations if location.id in hidden] + self.disabled_locations = set() if self.options.skip_minecart: - self.disabled_locations += [LocationName.HoohooMountainBaseMinecartCaveDigspot] + self.disabled_locations.update([LocationName.HoohooMountainBaseMinecartCaveDigspot]) if self.options.disable_surf: - self.disabled_locations += [LocationName.SurfMinigame] - if self.options.harhalls_pants: - self.disabled_locations += [LocationName.HarhallsPants] + self.disabled_locations.update([LocationName.SurfMinigame]) + if self.options.disable_harhalls_pants: + self.disabled_locations.update([LocationName.HarhallsPants]) + if self.options.chuckle_beans == 0: + self.disabled_locations.update([location.name for location in all_locations if "Digspot" in location.name]) + if self.options.chuckle_beans == 1: + self.disabled_locations.update([location.name for location in all_locations if location.id in hidden]) + if self.options.castle_skip: + self.disabled_locations.update([location.name for location in bowsers + bowsersMini]) if not self.options.coins: - self.disabled_locations += [location.name for location in all_locations if location in coins] + self.disabled_locations.update([location.name for location in coins]) def create_regions(self) -> None: - create_regions(self, self.disabled_locations) + create_regions(self) connect_regions(self) item = self.create_item("Mushroom") @@ -90,13 +90,15 @@ def create_regions(self) -> None: self.get_location(LocationName.PantsShopStartingFlag1).place_locked_item(item) item = self.create_item("Chuckle Bean") self.get_location(LocationName.PantsShopStartingFlag2).place_locked_item(item) + item = MLSSItem("Victory", ItemClassification.progression, None, self.player) + self.get_location("Cackletta's Soul").place_locked_item(item) def fill_slot_data(self) -> Dict[str, Any]: return { "CastleSkip": self.options.castle_skip.value, "SkipMinecart": self.options.skip_minecart.value, "DisableSurf": self.options.disable_surf.value, - "HarhallsPants": self.options.harhalls_pants.value, + "HarhallsPants": self.options.disable_harhalls_pants.value, "ChuckleBeans": self.options.chuckle_beans.value, "DifficultLogic": self.options.difficult_logic.value, "Coins": self.options.coins.value, @@ -111,7 +113,7 @@ def create_items(self) -> None: freq = item_frequencies.get(item.itemName, 1) if item in precollected: freq = max(freq - precollected.count(item), 0) - if self.options.harhalls_pants and "Harhall's" in item.itemName: + if self.options.disable_harhalls_pants and "Harhall's" in item.itemName: continue required_items += [item.itemName for _ in range(freq)] @@ -135,21 +137,7 @@ def create_items(self) -> None: filler_items += [item.itemName for _ in range(freq)] # And finally take as many fillers as we need to have the same amount of items and locations. - remaining = len(all_locations) - len(required_items) - 5 - if self.options.castle_skip: - remaining -= len(bowsers) + len(bowsersMini) - (5 if self.options.chuckle_beans == 0 else 0) - if self.options.skip_minecart and self.options.chuckle_beans == 2: - remaining -= 1 - if self.options.disable_surf: - remaining -= 1 - if self.options.harhalls_pants: - remaining -= 1 - if self.options.chuckle_beans == 0: - remaining -= 192 - if self.options.chuckle_beans == 1: - remaining -= 59 - if not self.options.coins: - remaining -= len(coins) + remaining = len(all_locations) - len(required_items) - len(self.disabled_locations) - 5 self.multiworld.itempool += [ self.create_item(filler_item_name) for filler_item_name in self.random.sample(filler_items, remaining) @@ -157,21 +145,14 @@ def create_items(self) -> None: def set_rules(self) -> None: set_rules(self, self.disabled_locations) - if self.options.castle_skip: - self.multiworld.completion_condition[self.player] = lambda state: state.can_reach( - "PostJokes", "Region", self.player - ) - else: - self.multiworld.completion_condition[self.player] = lambda state: state.can_reach( - "Bowser's Castle Mini", "Region", self.player - ) + self.multiworld.completion_condition[self.player] = lambda state: state.has("Victory", self.player) def create_item(self, name: str) -> MLSSItem: item = item_table[name] return MLSSItem(item.itemName, item.classification, item.code, self.player) def get_filler_item_name(self) -> str: - return self.random.choice(list(filter(lambda item: item.classification == ItemClassification.filler, itemList))) + return self.random.choice(list(filter(lambda item: item.classification == ItemClassification.filler, itemList))).itemName def generate_output(self, output_directory: str) -> None: patch = MLSSProcedurePatch(player=self.player, player_name=self.multiworld.player_name[self.player]) diff --git a/worlds/mlss/data/basepatch.bsdiff b/worlds/mlss/data/basepatch.bsdiff index 8f9324995ec4c9ef9992397d64b33847c207600d..7ed6c38ea9f432dfcf506156c77e4f56bdf3026a 100644 GIT binary patch literal 18482 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 literal 17596 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 From db5d9fbf70d89643bf766566c6d944e064369f5a Mon Sep 17 00:00:00 2001 From: Alchav <59858495+Alchav@users.noreply.github.com> Date: Wed, 18 Sep 2024 14:37:17 -0400 Subject: [PATCH 063/212] Pokemon R/B: Version 5 Update (#3566) * Quiz updates * Enable Partial Trainersanity * Losable Key Items Still Count * New options api * Type Chart Seed * Continue switching to new options API * Level Scaling and Quiz fixes * Level Scaling and Quiz fixes * Clarify that palettes are only for Super Gameboy * Type chart seed groups use one random players' options * remove goal option again * Text updates * Trainersanity Trainers ignore Blind Trainers setting * Re-order simple connecting interiors so that directions are preserved when possible * Dexsanity exact number * Year update * Dexsanity Doc update * revert accidental file deletion * Fixes * Add world parameter to logic calls * restore correct seeded random object * missing world.options changes * Trainersanity table bug fix * delete entrances as well as exits when restarting door shuffle * Do not collect route 25 item for level scaling if trainer is trainersanity * world.options in level_scaling.py * Update worlds/pokemon_rb/level_scaling.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/pokemon_rb/encounters.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update worlds/pokemon_rb/encounters.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * world -> multiworld * Fix Cerulean Cave Hidden Item Center Rocks region * Fix Cerulean Cave Hidden Item Center Rocks region for real * Remove "self-locking" rules * Update worlds/pokemon_rb/regions.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Fossil events * Update worlds/pokemon_rb/level_scaling.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --------- Co-authored-by: alchav Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- worlds/pokemon_rb/__init__.py | 416 ++++++------ worlds/pokemon_rb/basepatch_blue.bsdiff4 | Bin 46356 -> 47245 bytes worlds/pokemon_rb/basepatch_red.bsdiff4 | Bin 46344 -> 47212 bytes .../docs/en_Pokemon Red and Blue.md | 9 +- worlds/pokemon_rb/encounters.py | 100 +-- worlds/pokemon_rb/items.py | 2 + worlds/pokemon_rb/level_scaling.py | 19 +- worlds/pokemon_rb/locations.py | 46 +- worlds/pokemon_rb/logic.py | 79 ++- worlds/pokemon_rb/options.py | 253 ++++---- worlds/pokemon_rb/pokemon.py | 217 ++++--- worlds/pokemon_rb/regions.py | 594 +++++++++--------- worlds/pokemon_rb/rom.py | 378 ++++++----- worlds/pokemon_rb/rom_addresses.py | 450 +++++++------ worlds/pokemon_rb/rules.py | 207 +++--- 15 files changed, 1435 insertions(+), 1335 deletions(-) diff --git a/worlds/pokemon_rb/__init__.py b/worlds/pokemon_rb/__init__.py index c1d843189820..2065507e0d59 100644 --- a/worlds/pokemon_rb/__init__.py +++ b/worlds/pokemon_rb/__init__.py @@ -3,6 +3,7 @@ import typing import threading import base64 +import random from copy import deepcopy from typing import TextIO @@ -14,7 +15,7 @@ from .items import item_table, item_groups from .locations import location_data, PokemonRBLocation from .regions import create_regions -from .options import pokemon_rb_options +from .options import PokemonRBOptions from .rom_addresses import rom_addresses from .text import encode_text from .rom import generate_output, get_base_rom_bytes, get_base_rom_path, RedDeltaPatch, BlueDeltaPatch @@ -71,7 +72,10 @@ class PokemonRedBlueWorld(World): Elite Four to become the champion!""" # -MuffinJets#4559 game = "Pokemon Red and Blue" - option_definitions = pokemon_rb_options + + options_dataclass = PokemonRBOptions + options: PokemonRBOptions + settings: typing.ClassVar[PokemonSettings] required_client_version = (0, 4, 2) @@ -85,8 +89,8 @@ class PokemonRedBlueWorld(World): web = PokemonWebWorld() - def __init__(self, world: MultiWorld, player: int): - super().__init__(world, player) + def __init__(self, multiworld: MultiWorld, player: int): + super().__init__(multiworld, player) self.item_pool = [] self.total_key_items = None self.fly_map = None @@ -101,11 +105,11 @@ def __init__(self, world: MultiWorld, player: int): self.learnsets = None self.trainer_name = None self.rival_name = None - self.type_chart = None self.traps = None self.trade_mons = {} self.finished_level_scaling = threading.Event() self.dexsanity_table = [] + self.trainersanity_table = [] self.local_locs = [] @classmethod @@ -113,11 +117,109 @@ def stage_assert_generate(cls, multiworld: MultiWorld): versions = set() for player in multiworld.player_ids: if multiworld.worlds[player].game == "Pokemon Red and Blue": - versions.add(multiworld.game_version[player].current_key) + versions.add(multiworld.worlds[player].options.game_version.current_key) for version in versions: if not os.path.exists(get_base_rom_path(version)): raise FileNotFoundError(get_base_rom_path(version)) + @classmethod + def stage_generate_early(cls, multiworld: MultiWorld): + + seed_groups = {} + pokemon_rb_worlds = multiworld.get_game_worlds("Pokemon Red and Blue") + + for world in pokemon_rb_worlds: + if not (world.options.type_chart_seed.value.isdigit() or world.options.type_chart_seed.value == "random"): + seed_groups[world.options.type_chart_seed.value] = seed_groups.get(world.options.type_chart_seed.value, + []) + [world] + + copy_chart_worlds = {} + + for worlds in seed_groups.values(): + chosen_world = multiworld.random.choice(worlds) + for world in worlds: + if world is not chosen_world: + copy_chart_worlds[world.player] = chosen_world + + for world in pokemon_rb_worlds: + if world.player in copy_chart_worlds: + continue + tc_random = world.random + if world.options.type_chart_seed.value.isdigit(): + tc_random = random.Random() + tc_random.seed(int(world.options.type_chart_seed.value)) + + if world.options.randomize_type_chart == "vanilla": + chart = deepcopy(poke_data.type_chart) + elif world.options.randomize_type_chart == "randomize": + types = poke_data.type_names.values() + matchups = [] + for type1 in types: + for type2 in types: + matchups.append([type1, type2]) + tc_random.shuffle(matchups) + immunities = world.options.immunity_matchups.value + super_effectives = world.options.super_effective_matchups.value + not_very_effectives = world.options.not_very_effective_matchups.value + normals = world.options.normal_matchups.value + while super_effectives + not_very_effectives + normals < 225 - immunities: + if super_effectives == not_very_effectives == normals == 0: + super_effectives = 225 + not_very_effectives = 225 + normals = 225 + else: + super_effectives += world.options.super_effective_matchups.value + not_very_effectives += world.options.not_very_effective_matchups.value + normals += world.options.normal_matchups.value + if super_effectives + not_very_effectives + normals > 225 - immunities: + total = super_effectives + not_very_effectives + normals + excess = total - (225 - immunities) + subtract_amounts = ( + int((excess / (super_effectives + not_very_effectives + normals)) * super_effectives), + int((excess / (super_effectives + not_very_effectives + normals)) * not_very_effectives), + int((excess / (super_effectives + not_very_effectives + normals)) * normals)) + super_effectives -= subtract_amounts[0] + not_very_effectives -= subtract_amounts[1] + normals -= subtract_amounts[2] + while super_effectives + not_very_effectives + normals > 225 - immunities: + r = tc_random.randint(0, 2) + if r == 0 and super_effectives: + super_effectives -= 1 + elif r == 1 and not_very_effectives: + not_very_effectives -= 1 + elif normals: + normals -= 1 + chart = [] + for matchup_list, matchup_value in zip([immunities, normals, super_effectives, not_very_effectives], + [0, 10, 20, 5]): + for _ in range(matchup_list): + matchup = matchups.pop() + matchup.append(matchup_value) + chart.append(matchup) + elif world.options.randomize_type_chart == "chaos": + types = poke_data.type_names.values() + matchups = [] + for type1 in types: + for type2 in types: + matchups.append([type1, type2]) + chart = [] + values = list(range(21)) + tc_random.shuffle(matchups) + tc_random.shuffle(values) + for matchup in matchups: + value = values.pop(0) + values.append(value) + matchup.append(value) + chart.append(matchup) + # sort so that super-effective matchups occur first, to prevent dual "not very effective" / "super effective" + # matchups from leading to damage being ultimately divided by 2 and then multiplied by 2, which can lead to + # damage being reduced by 1 which leads to a "not very effective" message appearing due to my changes + # to the way effectiveness messages are generated. + world.type_chart = sorted(chart, key=lambda matchup: -matchup[2]) + + for player in copy_chart_worlds: + multiworld.worlds[player].type_chart = copy_chart_worlds[player].type_chart + def generate_early(self): def encode_name(name, t): try: @@ -126,33 +228,33 @@ def encode_name(name, t): return encode_text(name, length=8, whitespace="@", safety=True) except KeyError as e: raise KeyError(f"Invalid character(s) in {t} name for player {self.multiworld.player_name[self.player]}") from e - if self.multiworld.trainer_name[self.player] == "choose_in_game": + if self.options.trainer_name == "choose_in_game": self.trainer_name = "choose_in_game" else: - self.trainer_name = encode_name(self.multiworld.trainer_name[self.player].value, "Player") - if self.multiworld.rival_name[self.player] == "choose_in_game": + self.trainer_name = encode_name(self.options.trainer_name.value, "Player") + if self.options.rival_name == "choose_in_game": self.rival_name = "choose_in_game" else: - self.rival_name = encode_name(self.multiworld.rival_name[self.player].value, "Rival") + self.rival_name = encode_name(self.options.rival_name.value, "Rival") - if not self.multiworld.badgesanity[self.player]: - self.multiworld.non_local_items[self.player].value -= self.item_name_groups["Badges"] + if not self.options.badgesanity: + self.options.non_local_items.value -= self.item_name_groups["Badges"] - if self.multiworld.key_items_only[self.player]: - self.multiworld.trainersanity[self.player] = self.multiworld.trainersanity[self.player].from_text("off") - self.multiworld.dexsanity[self.player].value = 0 - self.multiworld.randomize_hidden_items[self.player] = \ - self.multiworld.randomize_hidden_items[self.player].from_text("off") + if self.options.key_items_only: + self.options.trainersanity.value = 0 + self.options.dexsanity.value = 0 + self.options.randomize_hidden_items = \ + self.options.randomize_hidden_items.from_text("off") - if self.multiworld.badges_needed_for_hm_moves[self.player].value >= 2: + if self.options.badges_needed_for_hm_moves.value >= 2: badges_to_add = ["Marsh Badge", "Volcano Badge", "Earth Badge"] - if self.multiworld.badges_needed_for_hm_moves[self.player].value == 3: + if self.options.badges_needed_for_hm_moves.value == 3: badges = ["Boulder Badge", "Cascade Badge", "Thunder Badge", "Rainbow Badge", "Marsh Badge", "Soul Badge", "Volcano Badge", "Earth Badge"] - self.multiworld.random.shuffle(badges) + self.random.shuffle(badges) badges_to_add += [badges.pop(), badges.pop()] hm_moves = ["Cut", "Fly", "Surf", "Strength", "Flash"] - self.multiworld.random.shuffle(hm_moves) + self.random.shuffle(hm_moves) self.extra_badges = {} for badge in badges_to_add: self.extra_badges[hm_moves.pop()] = badge @@ -160,79 +262,17 @@ def encode_name(name, t): process_move_data(self) process_pokemon_data(self) - if self.multiworld.randomize_type_chart[self.player] == "vanilla": - chart = deepcopy(poke_data.type_chart) - elif self.multiworld.randomize_type_chart[self.player] == "randomize": - types = poke_data.type_names.values() - matchups = [] - for type1 in types: - for type2 in types: - matchups.append([type1, type2]) - self.multiworld.random.shuffle(matchups) - immunities = self.multiworld.immunity_matchups[self.player].value - super_effectives = self.multiworld.super_effective_matchups[self.player].value - not_very_effectives = self.multiworld.not_very_effective_matchups[self.player].value - normals = self.multiworld.normal_matchups[self.player].value - while super_effectives + not_very_effectives + normals < 225 - immunities: - if super_effectives == not_very_effectives == normals == 0: - super_effectives = 225 - not_very_effectives = 225 - normals = 225 - else: - super_effectives += self.multiworld.super_effective_matchups[self.player].value - not_very_effectives += self.multiworld.not_very_effective_matchups[self.player].value - normals += self.multiworld.normal_matchups[self.player].value - if super_effectives + not_very_effectives + normals > 225 - immunities: - total = super_effectives + not_very_effectives + normals - excess = total - (225 - immunities) - subtract_amounts = ( - int((excess / (super_effectives + not_very_effectives + normals)) * super_effectives), - int((excess / (super_effectives + not_very_effectives + normals)) * not_very_effectives), - int((excess / (super_effectives + not_very_effectives + normals)) * normals)) - super_effectives -= subtract_amounts[0] - not_very_effectives -= subtract_amounts[1] - normals -= subtract_amounts[2] - while super_effectives + not_very_effectives + normals > 225 - immunities: - r = self.multiworld.random.randint(0, 2) - if r == 0 and super_effectives: - super_effectives -= 1 - elif r == 1 and not_very_effectives: - not_very_effectives -= 1 - elif normals: - normals -= 1 - chart = [] - for matchup_list, matchup_value in zip([immunities, normals, super_effectives, not_very_effectives], - [0, 10, 20, 5]): - for _ in range(matchup_list): - matchup = matchups.pop() - matchup.append(matchup_value) - chart.append(matchup) - elif self.multiworld.randomize_type_chart[self.player] == "chaos": - types = poke_data.type_names.values() - matchups = [] - for type1 in types: - for type2 in types: - matchups.append([type1, type2]) - chart = [] - values = list(range(21)) - self.multiworld.random.shuffle(matchups) - self.multiworld.random.shuffle(values) - for matchup in matchups: - value = values.pop(0) - values.append(value) - matchup.append(value) - chart.append(matchup) - # sort so that super-effective matchups occur first, to prevent dual "not very effective" / "super effective" - # matchups from leading to damage being ultimately divided by 2 and then multiplied by 2, which can lead to - # damage being reduced by 1 which leads to a "not very effective" message appearing due to my changes - # to the way effectiveness messages are generated. - self.type_chart = sorted(chart, key=lambda matchup: -matchup[2]) - self.dexsanity_table = [ - *(True for _ in range(round(self.multiworld.dexsanity[self.player].value * 1.51))), - *(False for _ in range(151 - round(self.multiworld.dexsanity[self.player].value * 1.51))) + *(True for _ in range(round(self.options.dexsanity.value))), + *(False for _ in range(151 - round(self.options.dexsanity.value))) + ] + self.random.shuffle(self.dexsanity_table) + + self.trainersanity_table = [ + *(True for _ in range(self.options.trainersanity.value)), + *(False for _ in range(317 - self.options.trainersanity.value)) ] - self.multiworld.random.shuffle(self.dexsanity_table) + self.random.shuffle(self.trainersanity_table) def create_items(self): self.multiworld.itempool += self.item_pool @@ -275,9 +315,9 @@ def stage_fill_hook(cls, multiworld, progitempool, usefulitempool, filleritempoo filleritempool += [item for item in unplaced_items if (not item.advancement) and (not item.useful)] def fill_hook(self, progitempool, usefulitempool, filleritempool, fill_locations): - if not self.multiworld.badgesanity[self.player]: + if not self.options.badgesanity: # Door Shuffle options besides Simple place badges during door shuffling - if self.multiworld.door_shuffle[self.player] in ("off", "simple"): + if self.options.door_shuffle in ("off", "simple"): badges = [item for item in progitempool if "Badge" in item.name and item.player == self.player] for badge in badges: self.multiworld.itempool.remove(badge) @@ -297,8 +337,8 @@ def fill_hook(self, progitempool, usefulitempool, filleritempool, fill_locations for mon in poke_data.pokemon_data.keys(): state.collect(self.create_item(mon), True) state.sweep_for_advancements() - self.multiworld.random.shuffle(badges) - self.multiworld.random.shuffle(badgelocs) + self.random.shuffle(badges) + self.random.shuffle(badgelocs) badgelocs_copy = badgelocs.copy() # allow_partial so that unplaced badges aren't lost, for debugging purposes fill_restrictive(self.multiworld, state, badgelocs_copy, badges, True, True, allow_partial=True) @@ -318,7 +358,7 @@ def fill_hook(self, progitempool, usefulitempool, filleritempool, fill_locations raise FillError(f"Failed to place badges for player {self.player}") verify_hm_moves(self.multiworld, self, self.player) - if self.multiworld.key_items_only[self.player]: + if self.options.key_items_only: return tms = [item for item in usefulitempool + filleritempool if item.name.startswith("TM") and (item.player == @@ -340,7 +380,7 @@ def fill_hook(self, progitempool, usefulitempool, filleritempool, fill_locations int((int(tm.name[2:4]) - 1) / 8)] & 1 << ((int(tm.name[2:4]) - 1) % 8)] if not learnable_tms: learnable_tms = tms - tm = self.multiworld.random.choice(learnable_tms) + tm = self.random.choice(learnable_tms) loc.place_locked_item(tm) fill_locations.remove(loc) @@ -370,9 +410,9 @@ def pre_fill(self) -> None: if not all_state.can_reach(location, player=self.player): evolutions_region.locations.remove(location) - if self.multiworld.old_man[self.player] == "early_parcel": + if self.options.old_man == "early_parcel": self.multiworld.local_early_items[self.player]["Oak's Parcel"] = 1 - if self.multiworld.dexsanity[self.player]: + if self.options.dexsanity: for i, mon in enumerate(poke_data.pokemon_data): if self.dexsanity_table[i]: location = self.multiworld.get_location(f"Pokedex - {mon}", self.player) @@ -384,13 +424,13 @@ def pre_fill(self) -> None: locs = {self.multiworld.get_location("Fossil - Choice A", self.player), self.multiworld.get_location("Fossil - Choice B", self.player)} - if not self.multiworld.key_items_only[self.player]: + if not self.options.key_items_only: rule = None - if self.multiworld.fossil_check_item_types[self.player] == "key_items": + if self.options.fossil_check_item_types == "key_items": rule = lambda i: i.advancement - elif self.multiworld.fossil_check_item_types[self.player] == "unique_items": + elif self.options.fossil_check_item_types == "unique_items": rule = lambda i: i.name in item_groups["Unique"] - elif self.multiworld.fossil_check_item_types[self.player] == "no_key_items": + elif self.options.fossil_check_item_types == "no_key_items": rule = lambda i: not i.advancement if rule: for loc in locs: @@ -406,16 +446,16 @@ def pre_fill(self) -> None: if loc.item is None: locs.add(loc) - if not self.multiworld.key_items_only[self.player]: + if not self.options.key_items_only: loc = self.multiworld.get_location("Player's House 2F - Player's PC", self.player) if loc.item is None: locs.add(loc) for loc in sorted(locs): - if loc.name in self.multiworld.priority_locations[self.player].value: + if loc.name in self.options.priority_locations.value: add_item_rule(loc, lambda i: i.advancement) add_item_rule(loc, lambda i: i.player == self.player) - if self.multiworld.old_man[self.player] == "early_parcel" and loc.name != "Player's House 2F - Player's PC": + if self.options.old_man == "early_parcel" and loc.name != "Player's House 2F - Player's PC": add_item_rule(loc, lambda i: i.name != "Oak's Parcel") self.local_locs = locs @@ -440,10 +480,10 @@ def pre_fill(self) -> None: else: region_mons.add(location.item.name) - self.multiworld.elite_four_pokedex_condition[self.player].total = \ - int((len(reachable_mons) / 100) * self.multiworld.elite_four_pokedex_condition[self.player].value) + self.options.elite_four_pokedex_condition.total = \ + int((len(reachable_mons) / 100) * self.options.elite_four_pokedex_condition.value) - if self.multiworld.accessibility[self.player] == "full": + if self.options.accessibility == "full": balls = [self.create_item(ball) for ball in ["Poke Ball", "Great Ball", "Ultra Ball"]] traps = [self.create_item(trap) for trap in item_groups["Traps"]] locations = [location for location in self.multiworld.get_locations(self.player) if "Pokedex - " in @@ -469,7 +509,7 @@ def pre_fill(self) -> None: else: break else: - self.multiworld.random.shuffle(traps) + self.random.shuffle(traps) for trap in traps: try: self.multiworld.itempool.remove(trap) @@ -497,22 +537,22 @@ def stage_post_fill(cls, multiworld): found_mons.add(key) def create_regions(self): - if (self.multiworld.old_man[self.player] == "vanilla" or - self.multiworld.door_shuffle[self.player] in ("full", "insanity")): - fly_map_codes = self.multiworld.random.sample(range(2, 11), 2) - elif (self.multiworld.door_shuffle[self.player] == "simple" or - self.multiworld.route_3_condition[self.player] == "boulder_badge" or - (self.multiworld.route_3_condition[self.player] == "any_badge" and - self.multiworld.badgesanity[self.player])): - fly_map_codes = self.multiworld.random.sample(range(3, 11), 2) + if (self.options.old_man == "vanilla" or + self.options.door_shuffle in ("full", "insanity")): + fly_map_codes = self.random.sample(range(2, 11), 2) + elif (self.options.door_shuffle == "simple" or + self.options.route_3_condition == "boulder_badge" or + (self.options.route_3_condition == "any_badge" and + self.options.badgesanity)): + fly_map_codes = self.random.sample(range(3, 11), 2) else: - fly_map_codes = self.multiworld.random.sample([4, 6, 7, 8, 9, 10], 2) - if self.multiworld.free_fly_location[self.player]: + fly_map_codes = self.random.sample([4, 6, 7, 8, 9, 10], 2) + if self.options.free_fly_location: fly_map_code = fly_map_codes[0] else: fly_map_code = 0 - if self.multiworld.town_map_fly_location[self.player]: + if self.options.town_map_fly_location: town_map_fly_map_code = fly_map_codes[1] else: town_map_fly_map_code = 0 @@ -528,7 +568,7 @@ def create_regions(self): self.multiworld.completion_condition[self.player] = lambda state, player=self.player: state.has("Become Champion", player=player) def set_rules(self): - set_rules(self.multiworld, self.player) + set_rules(self.multiworld, self, self.player) def create_item(self, name: str) -> Item: return PokemonRBItem(name, self.player) @@ -548,19 +588,19 @@ def modify_multidata(self, multidata: dict): multidata["connect_names"][new_name] = multidata["connect_names"][self.multiworld.player_name[self.player]] def write_spoiler_header(self, spoiler_handle: TextIO): - spoiler_handle.write(f"Cerulean Cave Total Key Items: {self.multiworld.cerulean_cave_key_items_condition[self.player].total}\n") - spoiler_handle.write(f"Elite Four Total Key Items: {self.multiworld.elite_four_key_items_condition[self.player].total}\n") - spoiler_handle.write(f"Elite Four Total Pokemon: {self.multiworld.elite_four_pokedex_condition[self.player].total}\n") - if self.multiworld.free_fly_location[self.player]: + spoiler_handle.write(f"Cerulean Cave Total Key Items: {self.options.cerulean_cave_key_items_condition.total}\n") + spoiler_handle.write(f"Elite Four Total Key Items: {self.options.elite_four_key_items_condition.total}\n") + spoiler_handle.write(f"Elite Four Total Pokemon: {self.options.elite_four_pokedex_condition.total}\n") + if self.options.free_fly_location: spoiler_handle.write(f"Free Fly Location: {self.fly_map}\n") - if self.multiworld.town_map_fly_location[self.player]: + if self.options.town_map_fly_location: spoiler_handle.write(f"Town Map Fly Location: {self.town_map_fly_map}\n") if self.extra_badges: for hm_move, badge in self.extra_badges.items(): spoiler_handle.write(hm_move + " enabled by: " + (" " * 20)[:20 - len(hm_move)] + badge + "\n") def write_spoiler(self, spoiler_handle): - if self.multiworld.randomize_type_chart[self.player].value: + if self.options.randomize_type_chart: spoiler_handle.write(f"\n\nType matchups ({self.multiworld.player_name[self.player]}):\n\n") for matchup in self.type_chart: spoiler_handle.write(f"{matchup[0]} deals {matchup[2] * 10}% damage to {matchup[1]}\n") @@ -571,39 +611,39 @@ def write_spoiler(self, spoiler_handle): spoiler_handle.write(location.name + ": " + location.item.name + "\n") def get_filler_item_name(self) -> str: - combined_traps = (self.multiworld.poison_trap_weight[self.player].value - + self.multiworld.fire_trap_weight[self.player].value - + self.multiworld.paralyze_trap_weight[self.player].value - + self.multiworld.ice_trap_weight[self.player].value - + self.multiworld.sleep_trap_weight[self.player].value) + combined_traps = (self.options.poison_trap_weight.value + + self.options.fire_trap_weight.value + + self.options.paralyze_trap_weight.value + + self.options.ice_trap_weight.value + + self.options.sleep_trap_weight.value) if (combined_traps > 0 and - self.multiworld.random.randint(1, 100) <= self.multiworld.trap_percentage[self.player].value): + self.random.randint(1, 100) <= self.options.trap_percentage.value): return self.select_trap() banned_items = item_groups["Unique"] - if (((not self.multiworld.tea[self.player]) or "Saffron City" not in [self.fly_map, self.town_map_fly_map]) - and (not self.multiworld.door_shuffle[self.player])): + if (((not self.options.tea) or "Saffron City" not in [self.fly_map, self.town_map_fly_map]) + and (not self.options.door_shuffle)): # under these conditions, you should never be able to reach the Copycat or PokÊmon Tower without being # able to reach the Celadon Department Store, so PokÊ Dolls would not allow early access to anything banned_items.append("Poke Doll") - if not self.multiworld.tea[self.player]: + if not self.options.tea: banned_items += item_groups["Vending Machine Drinks"] - return self.multiworld.random.choice([item for item in item_table if item_table[item].id and item_table[ + return self.random.choice([item for item in item_table if item_table[item].id and item_table[ item].classification == ItemClassification.filler and item not in banned_items]) def select_trap(self): if self.traps is None: self.traps = [] - self.traps += ["Poison Trap"] * self.multiworld.poison_trap_weight[self.player].value - self.traps += ["Fire Trap"] * self.multiworld.fire_trap_weight[self.player].value - self.traps += ["Paralyze Trap"] * self.multiworld.paralyze_trap_weight[self.player].value - self.traps += ["Ice Trap"] * self.multiworld.ice_trap_weight[self.player].value - self.traps += ["Sleep Trap"] * self.multiworld.sleep_trap_weight[self.player].value - return self.multiworld.random.choice(self.traps) + self.traps += ["Poison Trap"] * self.options.poison_trap_weight.value + self.traps += ["Fire Trap"] * self.options.fire_trap_weight.value + self.traps += ["Paralyze Trap"] * self.options.paralyze_trap_weight.value + self.traps += ["Ice Trap"] * self.options.ice_trap_weight.value + self.traps += ["Sleep Trap"] * self.options.sleep_trap_weight.value + return self.random.choice(self.traps) def extend_hint_information(self, hint_data): - if self.multiworld.dexsanity[self.player] or self.multiworld.door_shuffle[self.player]: + if self.options.dexsanity or self.options.door_shuffle: hint_data[self.player] = {} - if self.multiworld.dexsanity[self.player]: + if self.options.dexsanity: mon_locations = {mon: set() for mon in poke_data.pokemon_data.keys()} for loc in location_data: if loc.type in ["Wild Encounter", "Static Pokemon", "Legendary Pokemon", "Missable Pokemon"]: @@ -616,57 +656,59 @@ def extend_hint_information(self, hint_data): hint_data[self.player][self.multiworld.get_location(f"Pokedex - {mon}", self.player).address] =\ ", ".join(mon_locations[mon]) - if self.multiworld.door_shuffle[self.player]: + if self.options.door_shuffle: for location in self.multiworld.get_locations(self.player): if location.parent_region.entrance_hint and location.address: hint_data[self.player][location.address] = location.parent_region.entrance_hint def fill_slot_data(self) -> dict: - return { - "second_fossil_check_condition": self.multiworld.second_fossil_check_condition[self.player].value, - "require_item_finder": self.multiworld.require_item_finder[self.player].value, - "randomize_hidden_items": self.multiworld.randomize_hidden_items[self.player].value, - "badges_needed_for_hm_moves": self.multiworld.badges_needed_for_hm_moves[self.player].value, - "oaks_aide_rt_2": self.multiworld.oaks_aide_rt_2[self.player].value, - "oaks_aide_rt_11": self.multiworld.oaks_aide_rt_11[self.player].value, - "oaks_aide_rt_15": self.multiworld.oaks_aide_rt_15[self.player].value, - "extra_key_items": self.multiworld.extra_key_items[self.player].value, - "extra_strength_boulders": self.multiworld.extra_strength_boulders[self.player].value, - "tea": self.multiworld.tea[self.player].value, - "old_man": self.multiworld.old_man[self.player].value, - "elite_four_badges_condition": self.multiworld.elite_four_badges_condition[self.player].value, - "elite_four_key_items_condition": self.multiworld.elite_four_key_items_condition[self.player].total, - "elite_four_pokedex_condition": self.multiworld.elite_four_pokedex_condition[self.player].total, - "victory_road_condition": self.multiworld.victory_road_condition[self.player].value, - "route_22_gate_condition": self.multiworld.route_22_gate_condition[self.player].value, - "route_3_condition": self.multiworld.route_3_condition[self.player].value, - "robbed_house_officer": self.multiworld.robbed_house_officer[self.player].value, - "viridian_gym_condition": self.multiworld.viridian_gym_condition[self.player].value, - "cerulean_cave_badges_condition": self.multiworld.cerulean_cave_badges_condition[self.player].value, - "cerulean_cave_key_items_condition": self.multiworld.cerulean_cave_key_items_condition[self.player].total, + ret = { + "second_fossil_check_condition": self.options.second_fossil_check_condition.value, + "require_item_finder": self.options.require_item_finder.value, + "randomize_hidden_items": self.options.randomize_hidden_items.value, + "badges_needed_for_hm_moves": self.options.badges_needed_for_hm_moves.value, + "oaks_aide_rt_2": self.options.oaks_aide_rt_2.value, + "oaks_aide_rt_11": self.options.oaks_aide_rt_11.value, + "oaks_aide_rt_15": self.options.oaks_aide_rt_15.value, + "extra_key_items": self.options.extra_key_items.value, + "extra_strength_boulders": self.options.extra_strength_boulders.value, + "tea": self.options.tea.value, + "old_man": self.options.old_man.value, + "elite_four_badges_condition": self.options.elite_four_badges_condition.value, + "elite_four_key_items_condition": self.options.elite_four_key_items_condition.total, + "elite_four_pokedex_condition": self.options.elite_four_pokedex_condition.total, + "victory_road_condition": self.options.victory_road_condition.value, + "route_22_gate_condition": self.options.route_22_gate_condition.value, + "route_3_condition": self.options.route_3_condition.value, + "robbed_house_officer": self.options.robbed_house_officer.value, + "viridian_gym_condition": self.options.viridian_gym_condition.value, + "cerulean_cave_badges_condition": self.options.cerulean_cave_badges_condition.value, + "cerulean_cave_key_items_condition": self.options.cerulean_cave_key_items_condition.total, "free_fly_map": self.fly_map_code, "town_map_fly_map": self.town_map_fly_map_code, "extra_badges": self.extra_badges, - "type_chart": self.type_chart, - "randomize_pokedex": self.multiworld.randomize_pokedex[self.player].value, - "trainersanity": self.multiworld.trainersanity[self.player].value, - "death_link": self.multiworld.death_link[self.player].value, - "prizesanity": self.multiworld.prizesanity[self.player].value, - "key_items_only": self.multiworld.key_items_only[self.player].value, - "poke_doll_skip": self.multiworld.poke_doll_skip[self.player].value, - "bicycle_gate_skips": self.multiworld.bicycle_gate_skips[self.player].value, - "stonesanity": self.multiworld.stonesanity[self.player].value, - "door_shuffle": self.multiworld.door_shuffle[self.player].value, - "warp_tile_shuffle": self.multiworld.warp_tile_shuffle[self.player].value, - "dark_rock_tunnel_logic": self.multiworld.dark_rock_tunnel_logic[self.player].value, - "split_card_key": self.multiworld.split_card_key[self.player].value, - "all_elevators_locked": self.multiworld.all_elevators_locked[self.player].value, - "require_pokedex": self.multiworld.require_pokedex[self.player].value, - "area_1_to_1_mapping": self.multiworld.area_1_to_1_mapping[self.player].value, - "blind_trainers": self.multiworld.blind_trainers[self.player].value, + "randomize_pokedex": self.options.randomize_pokedex.value, + "trainersanity": self.options.trainersanity.value, + "death_link": self.options.death_link.value, + "prizesanity": self.options.prizesanity.value, + "key_items_only": self.options.key_items_only.value, + "poke_doll_skip": self.options.poke_doll_skip.value, + "bicycle_gate_skips": self.options.bicycle_gate_skips.value, + "stonesanity": self.options.stonesanity.value, + "door_shuffle": self.options.door_shuffle.value, + "warp_tile_shuffle": self.options.warp_tile_shuffle.value, + "dark_rock_tunnel_logic": self.options.dark_rock_tunnel_logic.value, + "split_card_key": self.options.split_card_key.value, + "all_elevators_locked": self.options.all_elevators_locked.value, + "require_pokedex": self.options.require_pokedex.value, + "area_1_to_1_mapping": self.options.area_1_to_1_mapping.value, + "blind_trainers": self.options.blind_trainers.value, } + if self.options.type_chart_seed == "random" or self.options.type_chart_seed.value.isdigit(): + ret["type_chart"] = self.type_chart + return ret class PokemonRBItem(Item): game = "Pokemon Red and Blue" diff --git a/worlds/pokemon_rb/basepatch_blue.bsdiff4 b/worlds/pokemon_rb/basepatch_blue.bsdiff4 index 0f65564a737be4e77c18cf94336ac9ba859345a9..bcd94c632d2cf9e0d3c44e142f1635cf6e42ac0b 100644 GIT binary patch literal 47245 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 K!i0yNB#b!4-%|wu literal 46356 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

%ff+)8u7 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 z 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

^yJTP6oc_cjvKX=i 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 diff --git a/worlds/pokemon_rb/basepatch_red.bsdiff4 b/worlds/pokemon_rb/basepatch_red.bsdiff4 index 826b7bf8b4e5ff0dd0926ca876c9930eebe4eefc..4b207108cf0c6f20611233888fc279b9ce44cb93 100644 GIT binary patch literal 47212 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 hHxq+uj|F+OgQN}lYl-uTcBrIq=semM;Zc_jN literal 46344 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 DjU7nf diff --git a/worlds/pokemon_rb/docs/en_Pokemon Red and Blue.md b/worlds/pokemon_rb/docs/en_Pokemon Red and Blue.md index 1e5c14eb99f5..6811b5926078 100644 --- a/worlds/pokemon_rb/docs/en_Pokemon Red and Blue.md +++ b/worlds/pokemon_rb/docs/en_Pokemon Red and Blue.md @@ -60,11 +60,12 @@ and Safari Zone. Adds 4 extra item locations to Rock Tunnel B1F * Split Card Key: Splits the Card Key into 10 different Card Keys, one for each floor of Silph Co that has locked doors. Adds 9 location checks to friendly NPCs in Silph Co. You can also choose Progressive Card Keys to always obtain the keys in order from Card Key 2F to Card Key 11F. -* Trainersanity: Adds location checks to 317 trainers. Does not include scripted trainers, most of which disappear +* Trainersanity: Adds location checks to trainers. You may choose between 0 and 317 trainersanity checks. Trainers +will be randomly selected to be given checks. Does not include scripted trainers, most of which disappear after battling them, but also includes Gym Leaders. You must talk to the trainer after defeating them to receive -your prize. Adds 317 random filler items to the item pool -* Dexsanity: Location checks occur when registering PokÊmon as owned in the PokÊdex. You can choose a percentage -of PokÊmon to have checks added to, chosen randomly. You can identify which PokÊmon have location checks by an empty +your prize. Adds random filler items to the item pool. +* Dexsanity: Location checks occur when registering PokÊmon as owned in the PokÊdex. You can choose between 0 and 151 +PokÊmon to have checks added to, chosen randomly. You can identify which PokÊmon have location checks by an empty PokÊ Ball icon shown in battle or in the PokÊdex menu. ## Which items can be in another player's world? diff --git a/worlds/pokemon_rb/encounters.py b/worlds/pokemon_rb/encounters.py index 6d1762b0ca71..fbe4abfe4466 100644 --- a/worlds/pokemon_rb/encounters.py +++ b/worlds/pokemon_rb/encounters.py @@ -8,7 +8,7 @@ def get_encounter_slots(self): for location in encounter_slots: if isinstance(location.original_item, list): - location.original_item = location.original_item[not self.multiworld.game_version[self.player].value] + location.original_item = location.original_item[not self.options.game_version.value] return encounter_slots @@ -39,16 +39,16 @@ def randomize_pokemon(self, mon, mons_list, randomize_type, random): return mon -def process_trainer_data(self): +def process_trainer_data(world): mons_list = [pokemon for pokemon in poke_data.pokemon_data.keys() if pokemon not in poke_data.legendary_pokemon - or self.multiworld.trainer_legendaries[self.player].value] + or world.options.trainer_legendaries.value] unevolved_mons = [pokemon for pokemon in poke_data.first_stage_pokemon if pokemon not in poke_data.legendary_pokemon - or self.multiworld.randomize_legendary_pokemon[self.player].value == 3] + or world.options.randomize_legendary_pokemon.value == 3] evolved_mons = [mon for mon in mons_list if mon not in unevolved_mons] rival_map = { - "Charmander": self.multiworld.get_location("Oak's Lab - Starter 1", self.player).item.name[9:], # strip the - "Squirtle": self.multiworld.get_location("Oak's Lab - Starter 2", self.player).item.name[9:], # 'Missable' - "Bulbasaur": self.multiworld.get_location("Oak's Lab - Starter 3", self.player).item.name[9:], # from the name + "Charmander": world.multiworld.get_location("Oak's Lab - Starter 1", world.player).item.name[9:], # strip the + "Squirtle": world.multiworld.get_location("Oak's Lab - Starter 2", world.player).item.name[9:], # 'Missable' + "Bulbasaur": world.multiworld.get_location("Oak's Lab - Starter 3", world.player).item.name[9:], # from the name } def add_evolutions(): @@ -60,7 +60,7 @@ def add_evolutions(): rival_map[poke_data.evolves_to[a]] = b add_evolutions() add_evolutions() - parties_objs = [location for location in self.multiworld.get_locations(self.player) + parties_objs = [location for location in world.multiworld.get_locations(world.player) if location.type == "Trainer Parties"] # Process Rival parties in order "Route 22 " is not a typo parties_objs.sort(key=lambda i: 0 if "Oak's Lab" in i.name else 1 if "Route 22 " in i.name else 2 if "Cerulean City" @@ -75,25 +75,25 @@ def add_evolutions(): for i, mon in enumerate(rival_party): if mon in ("Bulbasaur", "Ivysaur", "Venusaur", "Charmander", "Charmeleon", "Charizard", "Squirtle", "Wartortle", "Blastoise"): - if self.multiworld.randomize_starter_pokemon[self.player]: + if world.options.randomize_starter_pokemon: rival_party[i] = rival_map[mon] - elif self.multiworld.randomize_trainer_parties[self.player]: + elif world.options.randomize_trainer_parties: if mon in rival_map: rival_party[i] = rival_map[mon] else: - new_mon = randomize_pokemon(self, mon, + new_mon = randomize_pokemon(world, mon, unevolved_mons if mon in unevolved_mons else evolved_mons, - self.multiworld.randomize_trainer_parties[self.player].value, - self.multiworld.random) + world.options.randomize_trainer_parties.value, + world.random) rival_map[mon] = new_mon rival_party[i] = new_mon add_evolutions() else: - if self.multiworld.randomize_trainer_parties[self.player]: + if world.options.randomize_trainer_parties: for i, mon in enumerate(party["party"]): - party["party"][i] = randomize_pokemon(self, mon, mons_list, - self.multiworld.randomize_trainer_parties[self.player].value, - self.multiworld.random) + party["party"][i] = randomize_pokemon(world, mon, mons_list, + world.options.randomize_trainer_parties.value, + world.random) def process_pokemon_locations(self): @@ -106,21 +106,21 @@ def process_pokemon_locations(self): placed_mons = {pokemon: 0 for pokemon in poke_data.pokemon_data.keys()} mons_list = [pokemon for pokemon in poke_data.first_stage_pokemon if pokemon not in poke_data.legendary_pokemon - or self.multiworld.randomize_legendary_pokemon[self.player].value == 3] - if self.multiworld.randomize_legendary_pokemon[self.player] == "vanilla": + or self.options.randomize_legendary_pokemon.value == 3] + if self.options.randomize_legendary_pokemon == "vanilla": for slot in legendary_slots: location = self.multiworld.get_location(slot.name, self.player) location.place_locked_item(self.create_item("Static " + slot.original_item)) - elif self.multiworld.randomize_legendary_pokemon[self.player] == "shuffle": - self.multiworld.random.shuffle(legendary_mons) + elif self.options.randomize_legendary_pokemon == "shuffle": + self.random.shuffle(legendary_mons) for slot in legendary_slots: location = self.multiworld.get_location(slot.name, self.player) mon = legendary_mons.pop() location.place_locked_item(self.create_item("Static " + mon)) placed_mons[mon] += 1 - elif self.multiworld.randomize_legendary_pokemon[self.player] == "static": + elif self.options.randomize_legendary_pokemon == "static": static_slots = static_slots + legendary_slots - self.multiworld.random.shuffle(static_slots) + self.random.shuffle(static_slots) static_slots.sort(key=lambda s: s.name != "Pokemon Tower 6F - Restless Soul") while legendary_slots: swap_slot = legendary_slots.pop() @@ -131,12 +131,12 @@ def process_pokemon_locations(self): location = self.multiworld.get_location(slot.name, self.player) location.place_locked_item(self.create_item(slot_type + " " + swap_slot.original_item)) swap_slot.original_item = slot.original_item - elif self.multiworld.randomize_legendary_pokemon[self.player] == "any": + elif self.options.randomize_legendary_pokemon == "any": static_slots = static_slots + legendary_slots for slot in static_slots: location = self.multiworld.get_location(slot.name, self.player) - randomize_type = self.multiworld.randomize_static_pokemon[self.player].value + randomize_type = self.options.randomize_static_pokemon.value slot_type = slot.type.split()[0] if slot_type == "Legendary": slot_type = "Static" @@ -145,7 +145,7 @@ def process_pokemon_locations(self): else: mon = self.create_item(slot_type + " " + randomize_pokemon(self, slot.original_item, mons_list, randomize_type, - self.multiworld.random)) + self.random)) location.place_locked_item(mon) if slot_type != "Missable": placed_mons[mon.name.replace("Static ", "")] += 1 @@ -153,16 +153,16 @@ def process_pokemon_locations(self): chosen_mons = set() for slot in starter_slots: location = self.multiworld.get_location(slot.name, self.player) - randomize_type = self.multiworld.randomize_starter_pokemon[self.player].value + randomize_type = self.options.randomize_starter_pokemon.value slot_type = "Missable" if not randomize_type: location.place_locked_item(self.create_item(slot_type + " " + slot.original_item)) else: mon = self.create_item(slot_type + " " + randomize_pokemon(self, slot.original_item, mons_list, - randomize_type, self.multiworld.random)) + randomize_type, self.random)) while mon.name in chosen_mons: mon = self.create_item(slot_type + " " + randomize_pokemon(self, slot.original_item, mons_list, - randomize_type, self.multiworld.random)) + randomize_type, self.random)) chosen_mons.add(mon.name) location.place_locked_item(mon) @@ -170,10 +170,10 @@ def process_pokemon_locations(self): encounter_slots = encounter_slots_master.copy() zone_mapping = {} - if self.multiworld.randomize_wild_pokemon[self.player]: + if self.options.randomize_wild_pokemon: mons_list = [pokemon for pokemon in poke_data.pokemon_data.keys() if pokemon not in poke_data.legendary_pokemon - or self.multiworld.randomize_legendary_pokemon[self.player].value == 3] - self.multiworld.random.shuffle(encounter_slots) + or self.options.randomize_legendary_pokemon.value == 3] + self.random.shuffle(encounter_slots) locations = [] for slot in encounter_slots: location = self.multiworld.get_location(slot.name, self.player) @@ -181,11 +181,11 @@ def process_pokemon_locations(self): if zone not in zone_mapping: zone_mapping[zone] = {} original_mon = slot.original_item - if self.multiworld.area_1_to_1_mapping[self.player] and original_mon in zone_mapping[zone]: + if self.options.area_1_to_1_mapping and original_mon in zone_mapping[zone]: mon = zone_mapping[zone][original_mon] else: mon = randomize_pokemon(self, original_mon, mons_list, - self.multiworld.randomize_wild_pokemon[self.player].value, self.multiworld.random) + self.options.randomize_wild_pokemon.value, self.random) # while ("Pokemon Tower 6F" in slot.name and self.multiworld.get_location("Pokemon Tower 6F - Restless Soul", self.player).item.name @@ -194,7 +194,7 @@ def process_pokemon_locations(self): # the battle is treates as the Restless Soul battle and you cannot catch it. So, prevent any wild mons # from being the same species as the Restless Soul. # to account for the possibility that only one ground type Pokemon exists, match only stats for this fix - mon = randomize_pokemon(self, original_mon, mons_list, 2, self.multiworld.random) + mon = randomize_pokemon(self, original_mon, mons_list, 2, self.random) placed_mons[mon] += 1 location.item = self.create_item(mon) location.locked = True @@ -204,28 +204,28 @@ def process_pokemon_locations(self): mons_to_add = [] remaining_pokemon = [pokemon for pokemon in poke_data.pokemon_data.keys() if placed_mons[pokemon] == 0 and - (pokemon not in poke_data.legendary_pokemon or self.multiworld.randomize_legendary_pokemon[self.player].value == 3)] - if self.multiworld.catch_em_all[self.player] == "first_stage": + (pokemon not in poke_data.legendary_pokemon or self.options.randomize_legendary_pokemon.value == 3)] + if self.options.catch_em_all == "first_stage": mons_to_add = [pokemon for pokemon in poke_data.first_stage_pokemon if placed_mons[pokemon] == 0 and - (pokemon not in poke_data.legendary_pokemon or self.multiworld.randomize_legendary_pokemon[self.player].value == 3)] - elif self.multiworld.catch_em_all[self.player] == "all_pokemon": + (pokemon not in poke_data.legendary_pokemon or self.options.randomize_legendary_pokemon.value == 3)] + elif self.options.catch_em_all == "all_pokemon": mons_to_add = remaining_pokemon.copy() - logic_needed_mons = max(self.multiworld.oaks_aide_rt_2[self.player].value, - self.multiworld.oaks_aide_rt_11[self.player].value, - self.multiworld.oaks_aide_rt_15[self.player].value) - if self.multiworld.accessibility[self.player] == "minimal": + logic_needed_mons = max(self.options.oaks_aide_rt_2.value, + self.options.oaks_aide_rt_11.value, + self.options.oaks_aide_rt_15.value) + if self.options.accessibility == "minimal": logic_needed_mons = 0 - self.multiworld.random.shuffle(remaining_pokemon) + self.random.shuffle(remaining_pokemon) while (len([pokemon for pokemon in placed_mons if placed_mons[pokemon] > 0]) + len(mons_to_add) < logic_needed_mons): mons_to_add.append(remaining_pokemon.pop()) for mon in mons_to_add: stat_base = get_base_stat_total(mon) candidate_locations = encounter_slots_master.copy() - if self.multiworld.randomize_wild_pokemon[self.player].current_key in ["match_base_stats", "match_types_and_base_stats"]: + if self.options.randomize_wild_pokemon.current_key in ["match_base_stats", "match_types_and_base_stats"]: candidate_locations.sort(key=lambda slot: abs(get_base_stat_total(slot.original_item) - stat_base)) - if self.multiworld.randomize_wild_pokemon[self.player].current_key in ["match_types", "match_types_and_base_stats"]: + if self.options.randomize_wild_pokemon.current_key in ["match_types", "match_types_and_base_stats"]: candidate_locations.sort(key=lambda slot: not any([poke_data.pokemon_data[slot.original_item]["type1"] in [self.local_poke_data[mon]["type1"], self.local_poke_data[mon]["type2"]], poke_data.pokemon_data[slot.original_item]["type2"] in @@ -233,12 +233,12 @@ def process_pokemon_locations(self): candidate_locations = [self.multiworld.get_location(location.name, self.player) for location in candidate_locations] for location in candidate_locations: zone = " - ".join(location.name.split(" - ")[:-1]) - if self.multiworld.catch_em_all[self.player] == "all_pokemon" and self.multiworld.area_1_to_1_mapping[self.player]: + if self.options.catch_em_all == "all_pokemon" and self.options.area_1_to_1_mapping: if not [self.multiworld.get_location(l.name, self.player) for l in encounter_slots_master if (not l.name.startswith(zone)) and self.multiworld.get_location(l.name, self.player).item.name == location.item.name]: continue - if self.multiworld.catch_em_all[self.player] == "first_stage" and self.multiworld.area_1_to_1_mapping[self.player]: + if self.options.catch_em_all == "first_stage" and self.options.area_1_to_1_mapping: if not [self.multiworld.get_location(l.name, self.player) for l in encounter_slots_master if (not l.name.startswith(zone)) and self.multiworld.get_location(l.name, self.player).item.name == location.item.name and l.name @@ -246,10 +246,10 @@ def process_pokemon_locations(self): continue if placed_mons[location.item.name] < 2 and (location.item.name in poke_data.first_stage_pokemon - or self.multiworld.catch_em_all[self.player]): + or self.options.catch_em_all): continue - if self.multiworld.area_1_to_1_mapping[self.player]: + if self.options.area_1_to_1_mapping: place_locations = [place_location for place_location in candidate_locations if place_location.name.startswith(zone) and place_location.item.name == location.item.name] diff --git a/worlds/pokemon_rb/items.py b/worlds/pokemon_rb/items.py index de29f341c6df..fb439c4f80fa 100644 --- a/worlds/pokemon_rb/items.py +++ b/worlds/pokemon_rb/items.py @@ -194,6 +194,8 @@ def __init__(self, item_id, classification, groups): "Fuji Saved": ItemData(None, ItemClassification.progression, []), "Silph Co Liberated": ItemData(None, ItemClassification.progression, []), "Become Champion": ItemData(None, ItemClassification.progression, []), + "Mt Moon Fossils": ItemData(None, ItemClassification.progression, []), + "Cinnabar Lab": ItemData(None, ItemClassification.progression, []), "Trainer Parties": ItemData(None, ItemClassification.filler, []) } diff --git a/worlds/pokemon_rb/level_scaling.py b/worlds/pokemon_rb/level_scaling.py index 79cda394724a..76e00d9847c4 100644 --- a/worlds/pokemon_rb/level_scaling.py +++ b/worlds/pokemon_rb/level_scaling.py @@ -10,9 +10,9 @@ def level_scaling(multiworld): while locations: sphere = set() for world in multiworld.get_game_worlds("Pokemon Red and Blue"): - if (multiworld.level_scaling[world.player] != "by_spheres_and_distance" - and (multiworld.level_scaling[world.player] != "auto" or multiworld.door_shuffle[world.player] - in ("off", "simple"))): + if (world.options.level_scaling != "by_spheres_and_distance" + and (world.options.level_scaling != "auto" + or world.options.door_shuffle in ("off", "simple"))): continue regions = {multiworld.get_region("Menu", world.player)} checked_regions = set() @@ -41,7 +41,8 @@ def reachable(): # reach them earlier. We treat them both as reachable right away for this purpose return True if (location.name == "Route 25 - Item" and state.can_reach("Route 25", "Region", location.player) - and multiworld.blind_trainers[location.player].value < 100): + and multiworld.worlds[location.player].options.blind_trainers.value < 100 + and "Route 25 - Jr. Trainer M" not in multiworld.regions.location_cache[location.player]): # Assume they will take their one chance to get the trainer to walk out of the way to reach # the item behind them return True @@ -95,9 +96,9 @@ def reachable(): if (location.item.game == "Pokemon Red and Blue" and (location.item.name.startswith("Missable ") or location.item.name.startswith("Static ")) and location.name != "Pokemon Tower 6F - Restless Soul"): - # Normally, missable Pokemon (starters, the dojo rewards) are not considered in logic static Pokemon - # are not considered for moves or evolutions, as you could release them and potentially soft lock - # the game. However, for level scaling purposes, we will treat them as not missable or static. + # Normally, missable Pokemon (starters, the dojo rewards) are not considered in logic, and static + # Pokemon are not considered for moves or evolutions, as you could release them and potentially soft + # lock the game. However, for level scaling purposes, we will treat them as not missable or static. # We would not want someone playing a minimal accessibility Dexsanity game to get what would be # technically an "out of logic" Mansion Key from selecting Bulbasaur at the beginning of the game # and end up in the Mansion early and encountering level 67 PokÊmon @@ -106,7 +107,7 @@ def reachable(): else: state.collect(location.item, True, location) for world in multiworld.get_game_worlds("Pokemon Red and Blue"): - if multiworld.level_scaling[world.player] == "off": + if world.options.level_scaling == "off": continue level_list_copy = level_list.copy() for sphere in spheres: @@ -136,4 +137,4 @@ def reachable(): else: sphere_objects[object].level = level_list_copy.pop(0) for world in multiworld.get_game_worlds("Pokemon Red and Blue"): - world.finished_level_scaling.set() + world.finished_level_scaling.set() \ No newline at end of file diff --git a/worlds/pokemon_rb/locations.py b/worlds/pokemon_rb/locations.py index 6aee25df2637..5885183baa9c 100644 --- a/worlds/pokemon_rb/locations.py +++ b/worlds/pokemon_rb/locations.py @@ -5,46 +5,48 @@ loc_id_start = 172000000 -def trainersanity(multiworld, player): - return multiworld.trainersanity[player] +def trainersanity(world, player): + include = world.trainersanity_table.pop(0) + world.trainersanity_table.append(include) + return include -def dexsanity(multiworld, player): - include = multiworld.worlds[player].dexsanity_table.pop(0) - multiworld.worlds[player].dexsanity_table.append(include) +def dexsanity(world, player): + include = world.dexsanity_table.pop(0) + world.dexsanity_table.append(include) return include -def hidden_items(multiworld, player): - return multiworld.randomize_hidden_items[player] +def hidden_items(world, player): + return world.options.randomize_hidden_items -def hidden_moon_stones(multiworld, player): - return multiworld.randomize_hidden_items[player] or multiworld.stonesanity[player] +def hidden_moon_stones(world, player): + return world.options.randomize_hidden_items or world.options.stonesanity -def tea(multiworld, player): - return multiworld.tea[player] +def tea(world, player): + return world.options.tea -def extra_key_items(multiworld, player): - return multiworld.extra_key_items[player] +def extra_key_items(world, player): + return world.options.extra_key_items -def always_on(multiworld, player): +def always_on(world, player): return True -def prizesanity(multiworld, player): - return multiworld.prizesanity[player] +def prizesanity(world, player): + return world.options.prizesanity -def split_card_key(multiworld, player): - return multiworld.split_card_key[player].value > 0 +def split_card_key(world, player): + return world.options.split_card_key.value > 0 -def not_stonesanity(multiworld, player): - return not multiworld.stonesanity[player] +def not_stonesanity(world, player): + return not world.options.stonesanity class LocationData: @@ -395,7 +397,7 @@ def __init__(self, flag): LocationData("Silph Co 5F", "Hidden Item Pot Plant", "Elixir", rom_addresses['Hidden_Item_Silph_Co_5F'], Hidden(18), inclusion=hidden_items), LocationData("Silph Co 9F-SW", "Hidden Item Nurse Bed", "Max Potion", rom_addresses['Hidden_Item_Silph_Co_9F'], Hidden(19), inclusion=hidden_items), LocationData("Saffron Copycat's House 2F", "Hidden Item Desk", "Nugget", rom_addresses['Hidden_Item_Copycats_House'], Hidden(20), inclusion=hidden_items), - LocationData("Cerulean Cave 1F-NW", "Hidden Item Center Rocks", "Rare Candy", rom_addresses['Hidden_Item_Cerulean_Cave_1F'], Hidden(21), inclusion=hidden_items), + LocationData("Cerulean Cave 1F-SW", "Hidden Item Center Rocks", "Rare Candy", rom_addresses['Hidden_Item_Cerulean_Cave_1F'], Hidden(21), inclusion=hidden_items), LocationData("Cerulean Cave B1F-E", "Hidden Item Northeast Rocks", "Ultra Ball", rom_addresses['Hidden_Item_Cerulean_Cave_B1F'], Hidden(22), inclusion=hidden_items), LocationData("Power Plant", "Hidden Item Central Dead End", "Max Elixir", rom_addresses['Hidden_Item_Power_Plant_1'], Hidden(23), inclusion=hidden_items), LocationData("Power Plant", "Hidden Item Before Zapdos", "PP Up", rom_addresses['Hidden_Item_Power_Plant_2'], Hidden(24), inclusion=hidden_items), @@ -786,6 +788,8 @@ def __init__(self, flag): LocationData("Celadon Game Corner", "", "Game Corner", event=True), LocationData("Cinnabar Island", "", "Cinnabar Island", event=True), + LocationData("Cinnabar Lab", "", "Cinnabar Lab", event=True), + LocationData("Mt Moon B2F", "Mt Moon Fossils", "Mt Moon Fossils", event=True), LocationData("Celadon Department Store 4F", "Buy Poke Doll", "Buy Poke Doll", event=True), LocationData("Celadon Department Store 4F", "Buy Fire Stone", "Fire Stone", event=True, inclusion=not_stonesanity), LocationData("Celadon Department Store 4F", "Buy Water Stone", "Water Stone", event=True, inclusion=not_stonesanity), diff --git a/worlds/pokemon_rb/logic.py b/worlds/pokemon_rb/logic.py index cbe28e0ddb47..03e3fa3dfad0 100644 --- a/worlds/pokemon_rb/logic.py +++ b/worlds/pokemon_rb/logic.py @@ -1,49 +1,47 @@ from . import poke_data -def can_surf(state, player): - return (((state.has("HM03 Surf", player) and can_learn_hm(state, "Surf", player)) - or state.has("Flippers", player)) and (state.has("Soul Badge", player) or - state.has(state.multiworld.worlds[player].extra_badges.get("Surf"), player) - or state.multiworld.badges_needed_for_hm_moves[player].value == 0)) +def can_surf(state, world, player): + return (((state.has("HM03 Surf", player) and can_learn_hm(state, world, "Surf", player))) and (state.has("Soul Badge", player) or + state.has(world.extra_badges.get("Surf"), player) + or world.options.badges_needed_for_hm_moves.value == 0)) -def can_cut(state, player): - return ((state.has("HM01 Cut", player) and can_learn_hm(state, "Cut", player) or state.has("Master Sword", player)) - and (state.has("Cascade Badge", player) or - state.has(state.multiworld.worlds[player].extra_badges.get("Cut"), player) or - state.multiworld.badges_needed_for_hm_moves[player].value == 0)) +def can_cut(state, world, player): + return ((state.has("HM01 Cut", player) and can_learn_hm(state, world, "Cut", player)) + and (state.has("Cascade Badge", player) or state.has(world.extra_badges.get("Cut"), player) or + world.options.badges_needed_for_hm_moves.value == 0)) -def can_fly(state, player): - return (((state.has("HM02 Fly", player) and can_learn_hm(state, "Fly", player)) or state.has("Flute", player)) and - (state.has("Thunder Badge", player) or state.has(state.multiworld.worlds[player].extra_badges.get("Fly"), player) - or state.multiworld.badges_needed_for_hm_moves[player].value == 0)) +def can_fly(state, world, player): + return (((state.has("HM02 Fly", player) and can_learn_hm(state, world, "Fly", player)) or state.has("Flute", player)) and + (state.has("Thunder Badge", player) or state.has(world.extra_badges.get("Fly"), player) + or world.options.badges_needed_for_hm_moves.value == 0)) -def can_strength(state, player): - return ((state.has("HM04 Strength", player) and can_learn_hm(state, "Strength", player)) or +def can_strength(state, world, player): + return ((state.has("HM04 Strength", player) and can_learn_hm(state, world, "Strength", player)) or state.has("Titan's Mitt", player)) and (state.has("Rainbow Badge", player) or - state.has(state.multiworld.worlds[player].extra_badges.get("Strength"), player) - or state.multiworld.badges_needed_for_hm_moves[player].value == 0) + state.has(world.extra_badges.get("Strength"), player) + or world.options.badges_needed_for_hm_moves.value == 0) -def can_flash(state, player): - return (((state.has("HM05 Flash", player) and can_learn_hm(state, "Flash", player)) or state.has("Lamp", player)) - and (state.has("Boulder Badge", player) or state.has(state.multiworld.worlds[player].extra_badges.get("Flash"), - player) or state.multiworld.badges_needed_for_hm_moves[player].value == 0)) +def can_flash(state, world, player): + return (((state.has("HM05 Flash", player) and can_learn_hm(state, world, "Flash", player)) or state.has("Lamp", player)) + and (state.has("Boulder Badge", player) or state.has(world.extra_badges.get("Flash"), + player) or world.options.badges_needed_for_hm_moves.value == 0)) -def can_learn_hm(state, move, player): - for pokemon, data in state.multiworld.worlds[player].local_poke_data.items(): +def can_learn_hm(state, world, move, player): + for pokemon, data in world.local_poke_data.items(): if state.has(pokemon, player) and data["tms"][6] & 1 << (["Cut", "Fly", "Surf", "Strength", "Flash"].index(move) + 2): return True return False -def can_get_hidden_items(state, player): - return state.has("Item Finder", player) or not state.multiworld.require_item_finder[player].value +def can_get_hidden_items(state, world, player): + return state.has("Item Finder", player) or not world.options.require_item_finder.value def has_key_items(state, count, player): @@ -53,13 +51,14 @@ def has_key_items(state, count, player): "Hideout Key", "Card Key 2F", "Card Key 3F", "Card Key 4F", "Card Key 5F", "Card Key 6F", "Card Key 7F", "Card Key 8F", "Card Key 9F", "Card Key 10F", "Card Key 11F", "Exp. All", "Fire Stone", "Thunder Stone", "Water Stone", - "Leaf Stone", "Moon Stone"] if state.has(item, player)]) + "Leaf Stone", "Moon Stone", "Oak's Parcel", "Helix Fossil", "Dome Fossil", + "Old Amber", "Tea", "Gold Teeth", "Bike Voucher"] if state.has(item, player)]) + min(state.count("Progressive Card Key", player), 10)) return key_items >= count -def can_pass_guards(state, player): - if state.multiworld.tea[player]: +def can_pass_guards(state, world, player): + if world.options.tea: return state.has("Tea", player) else: return state.has("Vending Machine Drinks", player) @@ -70,8 +69,8 @@ def has_badges(state, count, player): "Soul Badge", "Volcano Badge", "Earth Badge"] if state.has(item, player)]) >= count -def oaks_aide(state, count, player): - return ((not state.multiworld.require_pokedex[player] or state.has("Pokedex", player)) +def oaks_aide(state, world, count, player): + return ((not world.options.require_pokedex or state.has("Pokedex", player)) and has_pokemon(state, count, player)) @@ -85,9 +84,7 @@ def has_pokemon(state, count, player): def fossil_checks(state, count, player): - return (state.can_reach('Mt Moon B2F', 'Region', player) and - state.can_reach('Cinnabar Lab Fossil Room', 'Region', player) and - state.can_reach('Cinnabar Island', 'Region', player) and len( + return (state.has_all(["Mt Moon Fossils", "Cinnabar Lab", "Cinnabar Island"], player) and len( [item for item in ["Dome Fossil", "Helix Fossil", "Old Amber"] if state.has(item, player)]) >= count) @@ -96,19 +93,19 @@ def card_key(state, floor, player): state.has("Progressive Card Key", player, floor - 1) -def rock_tunnel(state, player): - return can_flash(state, player) or not state.multiworld.dark_rock_tunnel_logic[player] +def rock_tunnel(state, world, player): + return can_flash(state, world, player) or not world.options.dark_rock_tunnel_logic -def route_3(state, player): - if state.multiworld.route_3_condition[player] == "defeat_brock": +def route(state, world, player): + if world.options.route_3_condition == "defeat_brock": return state.has("Defeat Brock", player) - elif state.multiworld.route_3_condition[player] == "defeat_any_gym": + elif world.options.route_3_condition == "defeat_any_gym": return state.has_any(["Defeat Brock", "Defeat Misty", "Defeat Lt. Surge", "Defeat Erika", "Defeat Koga", "Defeat Blaine", "Defeat Sabrina", "Defeat Viridian Gym Giovanni"], player) - elif state.multiworld.route_3_condition[player] == "boulder_badge": + elif world.options.route_3_condition == "boulder_badge": return state.has("Boulder Badge", player) - elif state.multiworld.route_3_condition[player] == "any_badge": + elif world.options.route_3_condition == "any_badge": return state.has_any(["Boulder Badge", "Cascade Badge", "Thunder Badge", "Rainbow Badge", "Marsh Badge", "Soul Badge", "Volcano Badge", "Earth Badge"], player) # open diff --git a/worlds/pokemon_rb/options.py b/worlds/pokemon_rb/options.py index 9f217e82e646..21679bec00e9 100644 --- a/worlds/pokemon_rb/options.py +++ b/worlds/pokemon_rb/options.py @@ -1,4 +1,6 @@ -from Options import Toggle, Choice, Range, NamedRange, TextChoice, DeathLink, ItemsAccessibility +from dataclasses import dataclass +from Options import (PerGameCommonOptions, Toggle, Choice, Range, NamedRange, FreeText, TextChoice, DeathLink, + ItemsAccessibility) class GameVersion(Choice): @@ -263,12 +265,18 @@ class PrizeSanity(Toggle): default = 0 -class TrainerSanity(Toggle): - """Add a location check to every trainer in the game, which can be obtained by talking to a trainer after defeating - them. Does not affect gym leaders and some scripted event battles (including all Rival, Giovanni, and - Cinnabar Gym battles).""" +class TrainerSanity(NamedRange): + """Add location checks to trainers, which can be obtained by talking to a trainer after defeating them. Does not + affect gym leaders and some scripted event battles. You may specify a number of trainers to have checks, and in + this case they will be randomly selected. There is no in-game indication as to which trainers have checks.""" display_name = "Trainersanity" default = 0 + range_start = 0 + range_end = 317 + special_range_names = { + "disabled": 0, + "full": 317 + } class RequirePokedex(Toggle): @@ -286,19 +294,19 @@ class AllPokemonSeen(Toggle): class DexSanity(NamedRange): - """Adds location checks for Pokemon flagged "owned" on your Pokedex. You may specify a percentage of Pokemon to - have checks added. If Accessibility is set to full, this will be the percentage of all logically reachable - Pokemon that will get a location check added to it. With items or minimal Accessibility, it will be the percentage - of all 151 Pokemon. - If Pokedex is required, the items for Pokemon acquired before acquiring the Pokedex can be found by talking to - Professor Oak or evaluating the Pokedex via Oak's PC.""" + """Adds location checks for Pokemon flagged "owned" on your Pokedex. You may specify the exact number of Dexsanity + checks to add, and they will be distributed to Pokemon randomly. + If Accessibility is set to Full, Dexsanity checks for Pokemon that are not logically reachable will be removed, + so the number could be lower than you specified. + If Pokedex is required, the Dexsanity checks for Pokemon you acquired before acquiring the Pokedex can be found by + talking to Professor Oak or evaluating the Pokedex via Oak's PC.""" display_name = "Dexsanity" default = 0 range_start = 0 - range_end = 100 + range_end = 151 special_range_names = { "disabled": 0, - "full": 100 + "full": 151 } @@ -519,7 +527,8 @@ class TrainerLegendaries(Toggle): class BlindTrainers(Range): """Chance each frame that you are standing on a tile in a trainer's line of sight that they will fail to initiate a - battle. If you move into and out of their line of sight without stopping, this chance will only trigger once.""" + battle. If you move into and out of their line of sight without stopping, this chance will only trigger once. + Trainers which have Trainersanity location checks ignore the Blind Trainers setting.""" display_name = "Blind Trainers" range_start = 0 range_end = 100 @@ -704,6 +713,15 @@ class RandomizeTypeChart(Choice): default = 0 +class TypeChartSeed(FreeText): + """You can enter a number to use as a seed for the type chart. If you enter anything besides a number or "random", + it will be used as a type chart group name, and everyone using the same group name will get the same type chart, + made using the type chart options of one random player within the group. If a group name is used, the type matchup + information will not be made available for trackers.""" + display_name = "Type Chart Seed" + default = "random" + + class NormalMatchups(Range): """If 'randomize' is chosen for Randomize Type Chart, this will be the weight for neutral matchups. No effect if 'chaos' is chosen""" @@ -850,8 +868,8 @@ class BicycleGateSkips(Choice): class RandomizePokemonPalettes(Choice): - """Modify palettes of Pokemon. Primary Type will set Pokemons' palettes based on their primary type, Follow - Evolutions will randomize palettes but palettes will remain the same through evolutions (except Eeveelutions), + """Modify Super Gameboy palettes of Pokemon. Primary Type will set Pokemons' palettes based on their primary type, + Follow Evolutions will randomize palettes but they will remain the same through evolutions (except Eeveelutions), Completely Random will randomize all Pokemons' palettes individually""" display_name = "Randomize Pokemon Palettes" option_vanilla = 0 @@ -860,104 +878,105 @@ class RandomizePokemonPalettes(Choice): option_completely_random = 3 -pokemon_rb_options = { - "accessibility": ItemsAccessibility, - "game_version": GameVersion, - "trainer_name": TrainerName, - "rival_name": RivalName, - #"goal": Goal, - "elite_four_badges_condition": EliteFourBadgesCondition, - "elite_four_key_items_condition": EliteFourKeyItemsCondition, - "elite_four_pokedex_condition": EliteFourPokedexCondition, - "victory_road_condition": VictoryRoadCondition, - "route_22_gate_condition": Route22GateCondition, - "viridian_gym_condition": ViridianGymCondition, - "cerulean_cave_badges_condition": CeruleanCaveBadgesCondition, - "cerulean_cave_key_items_condition": CeruleanCaveKeyItemsCondition, - "route_3_condition": Route3Condition, - "robbed_house_officer": RobbedHouseOfficer, - "second_fossil_check_condition": SecondFossilCheckCondition, - "fossil_check_item_types": FossilCheckItemTypes, - "exp_all": ExpAll, - "old_man": OldMan, - "badgesanity": BadgeSanity, - "badges_needed_for_hm_moves": BadgesNeededForHMMoves, - "key_items_only": KeyItemsOnly, - "tea": Tea, - "extra_key_items": ExtraKeyItems, - "split_card_key": SplitCardKey, - "all_elevators_locked": AllElevatorsLocked, - "extra_strength_boulders": ExtraStrengthBoulders, - "require_item_finder": RequireItemFinder, - "randomize_hidden_items": RandomizeHiddenItems, - "prizesanity": PrizeSanity, - "trainersanity": TrainerSanity, - "dexsanity": DexSanity, - "randomize_pokedex": RandomizePokedex, - "require_pokedex": RequirePokedex, - "all_pokemon_seen": AllPokemonSeen, - "oaks_aide_rt_2": OaksAidRt2, - "oaks_aide_rt_11": OaksAidRt11, - "oaks_aide_rt_15": OaksAidRt15, - "stonesanity": Stonesanity, - "door_shuffle": DoorShuffle, - "warp_tile_shuffle": WarpTileShuffle, - "randomize_rock_tunnel": RandomizeRockTunnel, - "dark_rock_tunnel_logic": DarkRockTunnelLogic, - "free_fly_location": FreeFlyLocation, - "town_map_fly_location": TownMapFlyLocation, - "blind_trainers": BlindTrainers, - "minimum_steps_between_encounters": MinimumStepsBetweenEncounters, - "level_scaling": LevelScaling, - "exp_modifier": ExpModifier, - "randomize_wild_pokemon": RandomizeWildPokemon, - "area_1_to_1_mapping": Area1To1Mapping, - "randomize_starter_pokemon": RandomizeStarterPokemon, - "randomize_static_pokemon": RandomizeStaticPokemon, - "randomize_legendary_pokemon": RandomizeLegendaryPokemon, - "catch_em_all": CatchEmAll, - "randomize_pokemon_stats": RandomizePokemonStats, - "randomize_pokemon_catch_rates": RandomizePokemonCatchRates, - "minimum_catch_rate": MinimumCatchRate, - "randomize_trainer_parties": RandomizeTrainerParties, - "trainer_legendaries": TrainerLegendaries, - "move_balancing": MoveBalancing, - "fix_combat_bugs": FixCombatBugs, - "randomize_pokemon_movesets": RandomizePokemonMovesets, - "confine_transform_to_ditto": ConfineTranstormToDitto, - "start_with_four_moves": StartWithFourMoves, - "same_type_attack_bonus": SameTypeAttackBonus, - "randomize_tm_moves": RandomizeTMMoves, - "tm_same_type_compatibility": TMSameTypeCompatibility, - "tm_normal_type_compatibility": TMNormalTypeCompatibility, - "tm_other_type_compatibility": TMOtherTypeCompatibility, - "hm_same_type_compatibility": HMSameTypeCompatibility, - "hm_normal_type_compatibility": HMNormalTypeCompatibility, - "hm_other_type_compatibility": HMOtherTypeCompatibility, - "inherit_tm_hm_compatibility": InheritTMHMCompatibility, - "randomize_move_types": RandomizeMoveTypes, - "randomize_pokemon_types": RandomizePokemonTypes, - "secondary_type_chance": SecondaryTypeChance, - "randomize_type_chart": RandomizeTypeChart, - "normal_matchups": NormalMatchups, - "super_effective_matchups": SuperEffectiveMatchups, - "not_very_effective_matchups": NotVeryEffectiveMatchups, - "immunity_matchups": ImmunityMatchups, - "safari_zone_normal_battles": SafariZoneNormalBattles, - "normalize_encounter_chances": NormalizeEncounterChances, - "reusable_tms": ReusableTMs, - "better_shops": BetterShops, - "master_ball_price": MasterBallPrice, - "starting_money": StartingMoney, - "lose_money_on_blackout": LoseMoneyOnBlackout, - "poke_doll_skip": PokeDollSkip, - "bicycle_gate_skips": BicycleGateSkips, - "trap_percentage": TrapPercentage, - "poison_trap_weight": PoisonTrapWeight, - "fire_trap_weight": FireTrapWeight, - "paralyze_trap_weight": ParalyzeTrapWeight, - "sleep_trap_weight": SleepTrapWeight, - "ice_trap_weight": IceTrapWeight, - "randomize_pokemon_palettes": RandomizePokemonPalettes, - "death_link": DeathLink -} +@dataclass +class PokemonRBOptions(PerGameCommonOptions): + accessibility: ItemsAccessibility + game_version: GameVersion + trainer_name: TrainerName + rival_name: RivalName + # goal: Goal + elite_four_badges_condition: EliteFourBadgesCondition + elite_four_key_items_condition: EliteFourKeyItemsCondition + elite_four_pokedex_condition: EliteFourPokedexCondition + victory_road_condition: VictoryRoadCondition + route_22_gate_condition: Route22GateCondition + viridian_gym_condition: ViridianGymCondition + cerulean_cave_badges_condition: CeruleanCaveBadgesCondition + cerulean_cave_key_items_condition: CeruleanCaveKeyItemsCondition + route_3_condition: Route3Condition + robbed_house_officer: RobbedHouseOfficer + second_fossil_check_condition: SecondFossilCheckCondition + fossil_check_item_types: FossilCheckItemTypes + exp_all: ExpAll + old_man: OldMan + badgesanity: BadgeSanity + badges_needed_for_hm_moves: BadgesNeededForHMMoves + key_items_only: KeyItemsOnly + tea: Tea + extra_key_items: ExtraKeyItems + split_card_key: SplitCardKey + all_elevators_locked: AllElevatorsLocked + extra_strength_boulders: ExtraStrengthBoulders + require_item_finder: RequireItemFinder + randomize_hidden_items: RandomizeHiddenItems + prizesanity: PrizeSanity + trainersanity: TrainerSanity + dexsanity: DexSanity + randomize_pokedex: RandomizePokedex + require_pokedex: RequirePokedex + all_pokemon_seen: AllPokemonSeen + oaks_aide_rt_2: OaksAidRt2 + oaks_aide_rt_11: OaksAidRt11 + oaks_aide_rt_15: OaksAidRt15 + stonesanity: Stonesanity + door_shuffle: DoorShuffle + warp_tile_shuffle: WarpTileShuffle + randomize_rock_tunnel: RandomizeRockTunnel + dark_rock_tunnel_logic: DarkRockTunnelLogic + free_fly_location: FreeFlyLocation + town_map_fly_location: TownMapFlyLocation + blind_trainers: BlindTrainers + minimum_steps_between_encounters: MinimumStepsBetweenEncounters + level_scaling: LevelScaling + exp_modifier: ExpModifier + randomize_wild_pokemon: RandomizeWildPokemon + area_1_to_1_mapping: Area1To1Mapping + randomize_starter_pokemon: RandomizeStarterPokemon + randomize_static_pokemon: RandomizeStaticPokemon + randomize_legendary_pokemon: RandomizeLegendaryPokemon + catch_em_all: CatchEmAll + randomize_pokemon_stats: RandomizePokemonStats + randomize_pokemon_catch_rates: RandomizePokemonCatchRates + minimum_catch_rate: MinimumCatchRate + randomize_trainer_parties: RandomizeTrainerParties + trainer_legendaries: TrainerLegendaries + move_balancing: MoveBalancing + fix_combat_bugs: FixCombatBugs + randomize_pokemon_movesets: RandomizePokemonMovesets + confine_transform_to_ditto: ConfineTranstormToDitto + start_with_four_moves: StartWithFourMoves + same_type_attack_bonus: SameTypeAttackBonus + randomize_tm_moves: RandomizeTMMoves + tm_same_type_compatibility: TMSameTypeCompatibility + tm_normal_type_compatibility: TMNormalTypeCompatibility + tm_other_type_compatibility: TMOtherTypeCompatibility + hm_same_type_compatibility: HMSameTypeCompatibility + hm_normal_type_compatibility: HMNormalTypeCompatibility + hm_other_type_compatibility: HMOtherTypeCompatibility + inherit_tm_hm_compatibility: InheritTMHMCompatibility + randomize_move_types: RandomizeMoveTypes + randomize_pokemon_types: RandomizePokemonTypes + secondary_type_chance: SecondaryTypeChance + randomize_type_chart: RandomizeTypeChart + normal_matchups: NormalMatchups + super_effective_matchups: SuperEffectiveMatchups + not_very_effective_matchups: NotVeryEffectiveMatchups + immunity_matchups: ImmunityMatchups + type_chart_seed: TypeChartSeed + safari_zone_normal_battles: SafariZoneNormalBattles + normalize_encounter_chances: NormalizeEncounterChances + reusable_tms: ReusableTMs + better_shops: BetterShops + master_ball_price: MasterBallPrice + starting_money: StartingMoney + lose_money_on_blackout: LoseMoneyOnBlackout + poke_doll_skip: PokeDollSkip + bicycle_gate_skips: BicycleGateSkips + trap_percentage: TrapPercentage + poison_trap_weight: PoisonTrapWeight + fire_trap_weight: FireTrapWeight + paralyze_trap_weight: ParalyzeTrapWeight + sleep_trap_weight: SleepTrapWeight + ice_trap_weight: IceTrapWeight + randomize_pokemon_palettes: RandomizePokemonPalettes + death_link: DeathLink diff --git a/worlds/pokemon_rb/pokemon.py b/worlds/pokemon_rb/pokemon.py index 28098a2c53fe..32c0e36869da 100644 --- a/worlds/pokemon_rb/pokemon.py +++ b/worlds/pokemon_rb/pokemon.py @@ -3,8 +3,8 @@ from .rom_addresses import rom_addresses -def set_mon_palettes(self, random, data): - if self.multiworld.randomize_pokemon_palettes[self.player] == "vanilla": +def set_mon_palettes(world, random, data): + if world.options.randomize_pokemon_palettes == "vanilla": return pallet_map = { "Poison": 0x0F, @@ -25,9 +25,9 @@ def set_mon_palettes(self, random, data): } palettes = [] for mon in poke_data.pokemon_data: - if self.multiworld.randomize_pokemon_palettes[self.player] == "primary_type": - pallet = pallet_map[self.local_poke_data[mon]["type1"]] - elif (self.multiworld.randomize_pokemon_palettes[self.player] == "follow_evolutions" and mon in + if world.options.randomize_pokemon_palettes == "primary_type": + pallet = pallet_map[world.local_poke_data[mon]["type1"]] + elif (world.options.randomize_pokemon_palettes == "follow_evolutions" and mon in poke_data.evolves_from and poke_data.evolves_from[mon] != "Eevee"): pallet = palettes[-1] else: # completely_random or follow_evolutions and it is not an evolved form (except eeveelutions) @@ -93,40 +93,41 @@ def move_power(move_data): return power -def process_move_data(self): - self.local_move_data = deepcopy(poke_data.moves) +def process_move_data(world): + world.local_move_data = deepcopy(poke_data.moves) - if self.multiworld.randomize_move_types[self.player]: - for move, data in self.local_move_data.items(): + if world.options.randomize_move_types: + for move, data in world.local_move_data.items(): if move == "No Move": continue # The chance of randomized moves choosing a normal type move is high, so we want to retain having a higher # rate of normal type moves - data["type"] = self.multiworld.random.choice(list(poke_data.type_ids) + (["Normal"] * 4)) - - if self.multiworld.move_balancing[self.player]: - self.local_move_data["Sing"]["accuracy"] = 30 - self.local_move_data["Sleep Powder"]["accuracy"] = 40 - self.local_move_data["Spore"]["accuracy"] = 50 - self.local_move_data["Sonicboom"]["effect"] = 0 - self.local_move_data["Sonicboom"]["power"] = 50 - self.local_move_data["Dragon Rage"]["effect"] = 0 - self.local_move_data["Dragon Rage"]["power"] = 80 - self.local_move_data["Horn Drill"]["effect"] = 0 - self.local_move_data["Horn Drill"]["power"] = 70 - self.local_move_data["Horn Drill"]["accuracy"] = 90 - self.local_move_data["Guillotine"]["effect"] = 0 - self.local_move_data["Guillotine"]["power"] = 70 - self.local_move_data["Guillotine"]["accuracy"] = 90 - self.local_move_data["Fissure"]["effect"] = 0 - self.local_move_data["Fissure"]["power"] = 70 - self.local_move_data["Fissure"]["accuracy"] = 90 - self.local_move_data["Blizzard"]["accuracy"] = 70 - if self.multiworld.randomize_tm_moves[self.player]: - self.local_tms = self.multiworld.random.sample([move for move in poke_data.moves.keys() if move not in - ["No Move"] + poke_data.hm_moves], 50) + data["type"] = world.random.choice(list(poke_data.type_ids) + (["Normal"] * 4)) + + if world.options.move_balancing: + world.local_move_data["Sing"]["accuracy"] = 30 + world.local_move_data["Sleep Powder"]["accuracy"] = 40 + world.local_move_data["Spore"]["accuracy"] = 50 + world.local_move_data["Sonicboom"]["effect"] = 0 + world.local_move_data["Sonicboom"]["power"] = 50 + world.local_move_data["Dragon Rage"]["effect"] = 0 + world.local_move_data["Dragon Rage"]["power"] = 80 + world.local_move_data["Horn Drill"]["effect"] = 0 + world.local_move_data["Horn Drill"]["power"] = 70 + world.local_move_data["Horn Drill"]["accuracy"] = 90 + world.local_move_data["Guillotine"]["effect"] = 0 + world.local_move_data["Guillotine"]["power"] = 70 + world.local_move_data["Guillotine"]["accuracy"] = 90 + world.local_move_data["Fissure"]["effect"] = 0 + world.local_move_data["Fissure"]["power"] = 70 + world.local_move_data["Fissure"]["accuracy"] = 90 + world.local_move_data["Blizzard"]["accuracy"] = 70 + + if world.options.randomize_tm_moves: + world.local_tms = world.random.sample([move for move in poke_data.moves.keys() if move not in + ["No Move"] + poke_data.hm_moves], 50) else: - self.local_tms = poke_data.tm_moves.copy() + world.local_tms = poke_data.tm_moves.copy() def process_pokemon_data(self): @@ -138,12 +139,12 @@ def process_pokemon_data(self): compat_hms = set() for mon, mon_data in local_poke_data.items(): - if self.multiworld.randomize_pokemon_stats[self.player] == "shuffle": + if self.options.randomize_pokemon_stats == "shuffle": stats = [mon_data["hp"], mon_data["atk"], mon_data["def"], mon_data["spd"], mon_data["spc"]] if mon in poke_data.evolves_from: stat_shuffle_map = local_poke_data[poke_data.evolves_from[mon]]["stat_shuffle_map"] else: - stat_shuffle_map = self.multiworld.random.sample(range(0, 5), 5) + stat_shuffle_map = self.random.sample(range(0, 5), 5) mon_data["stat_shuffle_map"] = stat_shuffle_map mon_data["hp"] = stats[stat_shuffle_map[0]] @@ -151,7 +152,7 @@ def process_pokemon_data(self): mon_data["def"] = stats[stat_shuffle_map[2]] mon_data["spd"] = stats[stat_shuffle_map[3]] mon_data["spc"] = stats[stat_shuffle_map[4]] - elif self.multiworld.randomize_pokemon_stats[self.player] == "randomize": + elif self.options.randomize_pokemon_stats == "randomize": first_run = True while (mon_data["hp"] > 255 or mon_data["atk"] > 255 or mon_data["def"] > 255 or mon_data["spd"] > 255 or mon_data["spc"] > 255 or first_run): @@ -168,9 +169,9 @@ def process_pokemon_data(self): mon_data[stat] = 10 total_stats -= 10 assert total_stats >= 0, f"Error distributing stats for {mon} for player {self.player}" - dist = [self.multiworld.random.randint(1, 101) / 100, self.multiworld.random.randint(1, 101) / 100, - self.multiworld.random.randint(1, 101) / 100, self.multiworld.random.randint(1, 101) / 100, - self.multiworld.random.randint(1, 101) / 100] + dist = [self.random.randint(1, 101) / 100, self.random.randint(1, 101) / 100, + self.random.randint(1, 101) / 100, self.random.randint(1, 101) / 100, + self.random.randint(1, 101) / 100] total_dist = sum(dist) mon_data["hp"] += int(round(dist[0] / total_dist * total_stats)) @@ -178,30 +179,30 @@ def process_pokemon_data(self): mon_data["def"] += int(round(dist[2] / total_dist * total_stats)) mon_data["spd"] += int(round(dist[3] / total_dist * total_stats)) mon_data["spc"] += int(round(dist[4] / total_dist * total_stats)) - if self.multiworld.randomize_pokemon_types[self.player]: - if self.multiworld.randomize_pokemon_types[self.player].value == 1 and mon in poke_data.evolves_from: + if self.options.randomize_pokemon_types: + if self.options.randomize_pokemon_types.value == 1 and mon in poke_data.evolves_from: type1 = local_poke_data[poke_data.evolves_from[mon]]["type1"] type2 = local_poke_data[poke_data.evolves_from[mon]]["type2"] if type1 == type2: - if self.multiworld.secondary_type_chance[self.player].value == -1: + if self.options.secondary_type_chance.value == -1: if mon_data["type1"] != mon_data["type2"]: while type2 == type1: - type2 = self.multiworld.random.choice(list(poke_data.type_names.values())) - elif self.multiworld.random.randint(1, 100) <= self.multiworld.secondary_type_chance[self.player].value: - type2 = self.multiworld.random.choice(list(poke_data.type_names.values())) + type2 = self.random.choice(list(poke_data.type_names.values())) + elif self.random.randint(1, 100) <= self.options.secondary_type_chance.value: + type2 = self.random.choice(list(poke_data.type_names.values())) else: - type1 = self.multiworld.random.choice(list(poke_data.type_names.values())) + type1 = self.random.choice(list(poke_data.type_names.values())) type2 = type1 - if ((self.multiworld.secondary_type_chance[self.player].value == -1 and mon_data["type1"] - != mon_data["type2"]) or self.multiworld.random.randint(1, 100) - <= self.multiworld.secondary_type_chance[self.player].value): + if ((self.options.secondary_type_chance.value == -1 and mon_data["type1"] + != mon_data["type2"]) or self.random.randint(1, 100) + <= self.options.secondary_type_chance.value): while type2 == type1: - type2 = self.multiworld.random.choice(list(poke_data.type_names.values())) + type2 = self.random.choice(list(poke_data.type_names.values())) mon_data["type1"] = type1 mon_data["type2"] = type2 - if self.multiworld.randomize_pokemon_movesets[self.player]: - if self.multiworld.randomize_pokemon_movesets[self.player] == "prefer_types": + if self.options.randomize_pokemon_movesets: + if self.options.randomize_pokemon_movesets == "prefer_types": if mon_data["type1"] == "Normal" and mon_data["type2"] == "Normal": chances = [[75, "Normal"]] elif mon_data["type1"] == "Normal" or mon_data["type2"] == "Normal": @@ -219,9 +220,9 @@ def process_pokemon_data(self): moves = list(poke_data.moves.keys()) for move in ["No Move"] + poke_data.hm_moves: moves.remove(move) - if self.multiworld.confine_transform_to_ditto[self.player]: + if self.options.confine_transform_to_ditto: moves.remove("Transform") - if self.multiworld.start_with_four_moves[self.player]: + if self.options.start_with_four_moves: num_moves = 4 else: num_moves = len([i for i in [mon_data["start move 1"], mon_data["start move 2"], @@ -231,12 +232,12 @@ def process_pokemon_data(self): non_power_moves = [] learnsets[mon] = [] for i in range(num_moves): - if i == 0 and mon == "Ditto" and self.multiworld.confine_transform_to_ditto[self.player]: + if i == 0 and mon == "Ditto" and self.options.confine_transform_to_ditto: move = "Transform" else: - move = get_move(self.local_move_data, moves, chances, self.multiworld.random) - while move == "Transform" and self.multiworld.confine_transform_to_ditto[self.player]: - move = get_move(self.local_move_data, moves, chances, self.multiworld.random) + move = get_move(self.local_move_data, moves, chances, self.random) + while move == "Transform" and self.options.confine_transform_to_ditto: + move = get_move(self.local_move_data, moves, chances, self.random) if self.local_move_data[move]["power"] < 5: non_power_moves.append(move) else: @@ -244,59 +245,58 @@ def process_pokemon_data(self): learnsets[mon].sort(key=lambda move: move_power(self.local_move_data[move])) if learnsets[mon]: for move in non_power_moves: - learnsets[mon].insert(self.multiworld.random.randint(1, len(learnsets[mon])), move) + learnsets[mon].insert(self.random.randint(1, len(learnsets[mon])), move) else: learnsets[mon] = non_power_moves for i in range(1, 5): - if mon_data[f"start move {i}"] != "No Move" or self.multiworld.start_with_four_moves[self.player]: + if mon_data[f"start move {i}"] != "No Move" or self.options.start_with_four_moves: mon_data[f"start move {i}"] = learnsets[mon].pop(0) - if self.multiworld.randomize_pokemon_catch_rates[self.player]: - mon_data["catch rate"] = self.multiworld.random.randint(self.multiworld.minimum_catch_rate[self.player], - 255) + if self.options.randomize_pokemon_catch_rates: + mon_data["catch rate"] = self.random.randint(self.options.minimum_catch_rate, 255) else: - mon_data["catch rate"] = max(self.multiworld.minimum_catch_rate[self.player], mon_data["catch rate"]) + mon_data["catch rate"] = max(self.options.minimum_catch_rate, mon_data["catch rate"]) def roll_tm_compat(roll_move): if self.local_move_data[roll_move]["type"] in [mon_data["type1"], mon_data["type2"]]: if roll_move in poke_data.hm_moves: - if self.multiworld.hm_same_type_compatibility[self.player].value == -1: + if self.options.hm_same_type_compatibility.value == -1: return mon_data["tms"][int(flag / 8)] & 1 << (flag % 8) - r = self.multiworld.random.randint(1, 100) <= self.multiworld.hm_same_type_compatibility[self.player].value + r = self.random.randint(1, 100) <= self.options.hm_same_type_compatibility.value if r and mon not in poke_data.legendary_pokemon: compat_hms.add(roll_move) return r else: - if self.multiworld.tm_same_type_compatibility[self.player].value == -1: + if self.options.tm_same_type_compatibility.value == -1: return mon_data["tms"][int(flag / 8)] & 1 << (flag % 8) - return self.multiworld.random.randint(1, 100) <= self.multiworld.tm_same_type_compatibility[self.player].value + return self.random.randint(1, 100) <= self.options.tm_same_type_compatibility.value elif self.local_move_data[roll_move]["type"] == "Normal" and "Normal" not in [mon_data["type1"], mon_data["type2"]]: if roll_move in poke_data.hm_moves: - if self.multiworld.hm_normal_type_compatibility[self.player].value == -1: + if self.options.hm_normal_type_compatibility.value == -1: return mon_data["tms"][int(flag / 8)] & 1 << (flag % 8) - r = self.multiworld.random.randint(1, 100) <= self.multiworld.hm_normal_type_compatibility[self.player].value + r = self.random.randint(1, 100) <= self.options.hm_normal_type_compatibility.value if r and mon not in poke_data.legendary_pokemon: compat_hms.add(roll_move) return r else: - if self.multiworld.tm_normal_type_compatibility[self.player].value == -1: + if self.options.tm_normal_type_compatibility.value == -1: return mon_data["tms"][int(flag / 8)] & 1 << (flag % 8) - return self.multiworld.random.randint(1, 100) <= self.multiworld.tm_normal_type_compatibility[self.player].value + return self.random.randint(1, 100) <= self.options.tm_normal_type_compatibility.value else: if roll_move in poke_data.hm_moves: - if self.multiworld.hm_other_type_compatibility[self.player].value == -1: + if self.options.hm_other_type_compatibility.value == -1: return mon_data["tms"][int(flag / 8)] & 1 << (flag % 8) - r = self.multiworld.random.randint(1, 100) <= self.multiworld.hm_other_type_compatibility[self.player].value + r = self.random.randint(1, 100) <= self.options.hm_other_type_compatibility.value if r and mon not in poke_data.legendary_pokemon: compat_hms.add(roll_move) return r else: - if self.multiworld.tm_other_type_compatibility[self.player].value == -1: + if self.options.tm_other_type_compatibility.value == -1: return mon_data["tms"][int(flag / 8)] & 1 << (flag % 8) - return self.multiworld.random.randint(1, 100) <= self.multiworld.tm_other_type_compatibility[self.player].value + return self.random.randint(1, 100) <= self.options.tm_other_type_compatibility.value for flag, tm_move in enumerate(tms_hms): - if mon in poke_data.evolves_from and self.multiworld.inherit_tm_hm_compatibility[self.player]: + if mon in poke_data.evolves_from and self.options.inherit_tm_hm_compatibility: if local_poke_data[poke_data.evolves_from[mon]]["tms"][int(flag / 8)] & 1 << (flag % 8): # always inherit learnable tms/hms @@ -310,7 +310,7 @@ def roll_tm_compat(roll_move): # so this gets full chance roll bit = roll_tm_compat(tm_move) # otherwise 50% reduced chance to add compatibility over pre-evolved form - elif self.multiworld.random.randint(1, 100) > 50 and roll_tm_compat(tm_move): + elif self.random.randint(1, 100) > 50 and roll_tm_compat(tm_move): bit = 1 else: bit = 0 @@ -322,15 +322,13 @@ def roll_tm_compat(roll_move): mon_data["tms"][int(flag / 8)] &= ~(1 << (flag % 8)) hm_verify = ["Surf", "Strength"] - if self.multiworld.accessibility[self.player] != "minimal" or ((not - self.multiworld.badgesanity[self.player]) and max(self.multiworld.elite_four_badges_condition[self.player], - self.multiworld.route_22_gate_condition[self.player], self.multiworld.victory_road_condition[self.player]) - > 7) or (self.multiworld.door_shuffle[self.player] not in ("off", "simple")): + if self.options.accessibility != "minimal" or ((not + self.options.badgesanity) and max(self.options.elite_four_badges_condition, + self.options.route_22_gate_condition, self.options.victory_road_condition) + > 7) or (self.options.door_shuffle not in ("off", "simple")): hm_verify += ["Cut"] - if self.multiworld.accessibility[self.player] != "minimal" or (not - self.multiworld.dark_rock_tunnel_logic[self.player]) and ((self.multiworld.trainersanity[self.player] or - self.multiworld.extra_key_items[self.player]) - or self.multiworld.door_shuffle[self.player]): + if (self.options.accessibility != "minimal" or (not self.options.dark_rock_tunnel_logic) and + ((self.options.trainersanity or self.options.extra_key_items) or self.options.door_shuffle)): hm_verify += ["Flash"] # Fly does not need to be verified. Full/Insanity/Decoupled door shuffle connects reachable regions to unreachable # regions, so if Fly is available and can be learned, the towns you can fly to would be considered reachable for @@ -339,8 +337,7 @@ def roll_tm_compat(roll_move): for hm_move in hm_verify: if hm_move not in compat_hms: - mon = self.multiworld.random.choice([mon for mon in poke_data.pokemon_data if mon not in - poke_data.legendary_pokemon]) + mon = self.random.choice([mon for mon in poke_data.pokemon_data if mon not in poke_data.legendary_pokemon]) flag = tms_hms.index(hm_move) local_poke_data[mon]["tms"][int(flag / 8)] |= 1 << (flag % 8) @@ -352,7 +349,7 @@ def verify_hm_moves(multiworld, world, player): def intervene(move, test_state): move_bit = pow(2, poke_data.hm_moves.index(move) + 2) viable_mons = [mon for mon in world.local_poke_data if world.local_poke_data[mon]["tms"][6] & move_bit] - if multiworld.randomize_wild_pokemon[player] and viable_mons: + if world.options.randomize_wild_pokemon and viable_mons: accessible_slots = [loc for loc in multiworld.get_reachable_locations(test_state, player) if loc.type == "Wild Encounter"] @@ -364,7 +361,7 @@ def number_of_zones(mon): placed_mons = [slot.item.name for slot in accessible_slots] - if multiworld.area_1_to_1_mapping[player]: + if world.options.area_1_to_1_mapping: placed_mons.sort(key=lambda i: number_of_zones(i)) else: # this sort method doesn't work if you reference the same list being sorted in the lambda @@ -372,10 +369,10 @@ def number_of_zones(mon): placed_mons.sort(key=lambda i: placed_mons_copy.count(i)) placed_mon = placed_mons.pop() - replace_mon = multiworld.random.choice(viable_mons) - replace_slot = multiworld.random.choice([slot for slot in accessible_slots if slot.item.name + replace_mon = world.random.choice(viable_mons) + replace_slot = world.random.choice([slot for slot in accessible_slots if slot.item.name == placed_mon]) - if multiworld.area_1_to_1_mapping[player]: + if world.options.area_1_to_1_mapping: zone = " - ".join(replace_slot.name.split(" - ")[:-1]) replace_slots = [slot for slot in accessible_slots if slot.name.startswith(zone) and slot.item.name == placed_mon] @@ -387,7 +384,7 @@ def number_of_zones(mon): tms_hms = world.local_tms + poke_data.hm_moves flag = tms_hms.index(move) mon_list = [mon for mon in poke_data.pokemon_data.keys() if test_state.has(mon, player)] - multiworld.random.shuffle(mon_list) + world.random.shuffle(mon_list) mon_list.sort(key=lambda mon: world.local_move_data[move]["type"] not in [world.local_poke_data[mon]["type1"], world.local_poke_data[mon]["type2"]]) for mon in mon_list: @@ -399,31 +396,31 @@ def number_of_zones(mon): while True: intervene_move = None test_state = multiworld.get_all_state(False) - if not logic.can_learn_hm(test_state, "Surf", player): + if not logic.can_learn_hm(test_state, world, "Surf", player): intervene_move = "Surf" - elif not logic.can_learn_hm(test_state, "Strength", player): + elif not logic.can_learn_hm(test_state, world, "Strength", player): intervene_move = "Strength" # cut may not be needed if accessibility is minimal, unless you need all 8 badges and badgesanity is off, # as you will require cut to access celadon gyn - elif ((not logic.can_learn_hm(test_state, "Cut", player)) and - (multiworld.accessibility[player] != "minimal" or ((not - multiworld.badgesanity[player]) and max( - multiworld.elite_four_badges_condition[player], - multiworld.route_22_gate_condition[player], - multiworld.victory_road_condition[player]) - > 7) or (multiworld.door_shuffle[player] not in ("off", "simple")))): + elif ((not logic.can_learn_hm(test_state, world, "Cut", player)) and + (world.options.accessibility != "minimal" or ((not + world.options.badgesanity) and max( + world.options.elite_four_badges_condition, + world.options.route_22_gate_condition, + world.options.victory_road_condition) + > 7) or (world.options.door_shuffle not in ("off", "simple")))): intervene_move = "Cut" - elif ((not logic.can_learn_hm(test_state, "Flash", player)) - and multiworld.dark_rock_tunnel_logic[player] - and (multiworld.accessibility[player] != "minimal" - or multiworld.door_shuffle[player])): + elif ((not logic.can_learn_hm(test_state, world, "Flash", player)) + and world.options.dark_rock_tunnel_logic + and (world.options.accessibility != "minimal" + or world.options.door_shuffle)): intervene_move = "Flash" # If no PokÊmon can learn Fly, then during door shuffle it would simply not treat the free fly maps # as reachable, and if on no door shuffle or simple, fly is simply never necessary. # We only intervene if a PokÊmon is able to learn fly but none are reachable, as that would have been # considered in door shuffle. - elif ((not logic.can_learn_hm(test_state, "Fly", player)) - and multiworld.door_shuffle[player] not in + elif ((not logic.can_learn_hm(test_state, world, "Fly", player)) + and world.options.door_shuffle not in ("off", "simple") and [world.fly_map, world.town_map_fly_map] != ["Pallet Town", "Pallet Town"]): intervene_move = "Fly" if intervene_move: @@ -432,4 +429,4 @@ def number_of_zones(mon): intervene(intervene_move, test_state) last_intervene = intervene_move else: - break \ No newline at end of file + break diff --git a/worlds/pokemon_rb/regions.py b/worlds/pokemon_rb/regions.py index 938c39b32090..575f4a61ca6f 100644 --- a/worlds/pokemon_rb/regions.py +++ b/worlds/pokemon_rb/regions.py @@ -1409,21 +1409,20 @@ def pair(a, b): ['Route 2-E to Route 2 Gate', 'Route 2-SE to Route 2 Gate'], ['Cerulean City-Badge House Backyard to Cerulean Badge House', 'Cerulean City to Cerulean Badge House'], - ['Cerulean City-T to Cerulean Trashed House', - 'Cerulean City-Outskirts to Cerulean Trashed House'], - ['Fuchsia City to Fuchsia Good Rod House', - 'Fuchsia City-Good Rod House Backyard to Fuchsia Good Rod House'], - ['Route 11-E to Route 11 Gate 1F', 'Route 11-C to Route 11 Gate 1F'], - ['Route 12-N to Route 12 Gate 1F', 'Route 12-L to Route 12 Gate 1F'], - ['Route 15 to Route 15 Gate 1F', 'Route 15-W to Route 15 Gate 1F'], - ['Route 16-NE to Route 16 Gate 1F-N', 'Route 16-NW to Route 16 Gate 1F-N'], + ['Cerulean City-Outskirts to Cerulean Trashed House', + 'Cerulean City-T to Cerulean Trashed House',], + ['Fuchsia City-Good Rod House Backyard to Fuchsia Good Rod House', 'Fuchsia City to Fuchsia Good Rod House'], + ['Route 11-C to Route 11 Gate 1F', 'Route 11-E to Route 11 Gate 1F'], + ['Route 12-L to Route 12 Gate 1F', 'Route 12-N to Route 12 Gate 1F'], + ['Route 15-W to Route 15 Gate 1F', 'Route 15 to Route 15 Gate 1F'], + ['Route 16-NW to Route 16 Gate 1F-N', 'Route 16-NE to Route 16 Gate 1F-N'], ['Route 16-SW to Route 16 Gate 1F-W', 'Route 16-C to Route 16 Gate 1F-E'], ['Route 18-W to Route 18 Gate 1F-W', 'Route 18-E to Route 18 Gate 1F-E'], ['Route 5 to Route 5 Gate-N', 'Route 5-S to Route 5 Gate-S'], - ['Route 6 to Route 6 Gate-S', 'Route 6-N to Route 6 Gate-N'], + ['Route 6-N to Route 6 Gate-N', 'Route 6 to Route 6 Gate-S'], ['Route 7 to Route 7 Gate-W', 'Route 7-E to Route 7 Gate-E'], - ['Route 8 to Route 8 Gate-E', 'Route 8-W to Route 8 Gate-W'], - ['Route 22 to Route 22 Gate-S', 'Route 23-S to Route 22 Gate-N'] + ['Route 8-W to Route 8 Gate-W', 'Route 8 to Route 8 Gate-E',], + ['Route 23-S to Route 22 Gate-N', 'Route 22 to Route 22 Gate-S'] ] dungeons = [ @@ -1484,7 +1483,7 @@ def create_region(multiworld: MultiWorld, player: int, name: str, locations_per_ for location in locations_per_region.get(name, []): location.parent_region = ret ret.locations.append(location) - if multiworld.randomize_hidden_items[player] == "exclude" and "Hidden" in location.name: + if multiworld.worlds[player].options.randomize_hidden_items == "exclude" and "Hidden" in location.name: location.progress_type = LocationProgressType.EXCLUDED if exits: for exit in exits: @@ -1500,32 +1499,34 @@ def outdoor_map(name): return False -def create_regions(self): - multiworld = self.multiworld - player = self.player +def create_regions(world): + multiworld = world.multiworld + player = world.player locations_per_region = {} - start_inventory = self.multiworld.start_inventory[self.player].value.copy() - if self.multiworld.randomize_pokedex[self.player] == "start_with": + start_inventory = world.options.start_inventory.value.copy() + if world.options.randomize_pokedex == "start_with": start_inventory["Pokedex"] = 1 - self.multiworld.push_precollected(self.create_item("Pokedex")) - if self.multiworld.exp_all[self.player] == "start_with": + world.multiworld.push_precollected(world.create_item("Pokedex")) + if world.options.exp_all == "start_with": start_inventory["Exp. All"] = 1 - self.multiworld.push_precollected(self.create_item("Exp. All")) + world.multiworld.push_precollected(world.create_item("Exp. All")) + + world.item_pool = [] + combined_traps = (world.options.poison_trap_weight.value + + world.options.fire_trap_weight.value + + world.options.paralyze_trap_weight.value + + world.options.ice_trap_weight.value + + world.options.sleep_trap_weight.value) - self.item_pool = [] - combined_traps = (self.multiworld.poison_trap_weight[self.player].value - + self.multiworld.fire_trap_weight[self.player].value - + self.multiworld.paralyze_trap_weight[self.player].value - + self.multiworld.ice_trap_weight[self.player].value) stones = ["Moon Stone", "Fire Stone", "Water Stone", "Thunder Stone", "Leaf Stone"] for location in location_data: locations_per_region.setdefault(location.region, []) # The check for list is so that we don't try to check the item table with a list as a key - if location.inclusion(multiworld, player) and (isinstance(location.original_item, list) or - not (self.multiworld.key_items_only[self.player] and item_table[location.original_item].classification - not in (ItemClassification.progression, ItemClassification.progression_skip_balancing) and not + if location.inclusion(world, player) and (isinstance(location.original_item, list) or + not (world.options.key_items_only and item_table[location.original_item].classification + not in (ItemClassification.progression, ItemClassification.progression_skip_balancing) and not location.event)): location_object = PokemonRBLocation(player, location.name, location.address, location.rom_address, location.type, location.level, location.level_address) @@ -1535,51 +1536,53 @@ def create_regions(self): event = location.event if location.original_item is None: - item = self.create_filler() - elif location.original_item == "Exp. All" and self.multiworld.exp_all[self.player] == "remove": - item = self.create_filler() + item = world.create_filler() + elif location.original_item == "Exp. All" and world.options.exp_all == "remove": + item = world.create_filler() elif location.original_item == "Pokedex": - if self.multiworld.randomize_pokedex[self.player] == "vanilla": + if world.options.randomize_pokedex == "vanilla": + location_object.event = True event = True - item = self.create_item("Pokedex") - elif location.original_item == "Moon Stone" and self.multiworld.stonesanity[self.player]: + item = world.create_item("Pokedex") + elif location.original_item == "Moon Stone" and world.options.stonesanity: stone = stones.pop() - item = self.create_item(stone) + item = world.create_item(stone) elif location.original_item.startswith("TM"): - if self.multiworld.randomize_tm_moves[self.player]: - item = self.create_item(location.original_item.split(" ")[0]) + if world.options.randomize_tm_moves: + item = world.create_item(location.original_item.split(" ")[0]) else: - item = self.create_item(location.original_item) - elif location.original_item == "Card Key" and self.multiworld.split_card_key[self.player] == "on": - item = self.create_item("Card Key 3F") - elif "Card Key" in location.original_item and self.multiworld.split_card_key[self.player] == "progressive": - item = self.create_item("Progressive Card Key") + item = world.create_item(location.original_item) + elif location.original_item == "Card Key" and world.options.split_card_key == "on": + item = world.create_item("Card Key 3F") + elif "Card Key" in location.original_item and world.options.split_card_key == "progressive": + item = world.create_item("Progressive Card Key") else: - item = self.create_item(location.original_item) - if (item.classification == ItemClassification.filler and self.multiworld.random.randint(1, 100) - <= self.multiworld.trap_percentage[self.player].value and combined_traps != 0): - item = self.create_item(self.select_trap()) + item = world.create_item(location.original_item) + if (item.classification == ItemClassification.filler and world.random.randint(1, 100) + <= world.options.trap_percentage.value and combined_traps != 0): + item = world.create_item(world.select_trap()) - if self.multiworld.key_items_only[self.player] and (not location.event) and (not item.advancement) and location.original_item != "Exp. All": + if (world.options.key_items_only and (location.original_item != "Exp. All") + and not (location.event or item.advancement)): continue if item.name in start_inventory and start_inventory[item.name] > 0 and \ location.original_item in item_groups["Unique"]: start_inventory[location.original_item] -= 1 - item = self.create_filler() + item = world.create_filler() if event: location_object.place_locked_item(item) if location.type == "Trainer Parties": location_object.party_data = deepcopy(location.party_data) else: - self.item_pool.append(item) + world.item_pool.append(item) - self.multiworld.random.shuffle(self.item_pool) - advancement_items = [item.name for item in self.item_pool if item.advancement] \ - + [item.name for item in self.multiworld.precollected_items[self.player] if + world.random.shuffle(world.item_pool) + advancement_items = [item.name for item in world.item_pool if item.advancement] \ + + [item.name for item in world.multiworld.precollected_items[world.player] if item.advancement] - self.total_key_items = len( + world.total_key_items = len( # The stonesanity items are not checked for here and instead just always added as the `+ 4` # They will always exist, but if stonesanity is off, then only as events. # We don't want to just add 4 if stonesanity is off while still putting them in this list in case @@ -1589,15 +1592,16 @@ def create_regions(self): "Secret Key", "Poke Flute", "Mansion Key", "Safari Pass", "Plant Key", "Hideout Key", "Card Key 2F", "Card Key 3F", "Card Key 4F", "Card Key 5F", "Card Key 6F", "Card Key 7F", "Card Key 8F", "Card Key 9F", "Card Key 10F", - "Card Key 11F", "Exp. All", "Moon Stone"] if item in advancement_items]) + 4 + "Card Key 11F", "Exp. All", "Moon Stone", "Oak's Parcel", "Helix Fossil", "Dome Fossil", + "Old Amber", "Tea", "Gold Teeth", "Bike Voucher"] if item in advancement_items]) + 4 if "Progressive Card Key" in advancement_items: - self.total_key_items += 10 + world.total_key_items += 10 - self.multiworld.cerulean_cave_key_items_condition[self.player].total = \ - int((self.total_key_items / 100) * self.multiworld.cerulean_cave_key_items_condition[self.player].value) + world.options.cerulean_cave_key_items_condition.total = \ + int((world.total_key_items / 100) * world.options.cerulean_cave_key_items_condition.value) - self.multiworld.elite_four_key_items_condition[self.player].total = \ - int((self.total_key_items / 100) * self.multiworld.elite_four_key_items_condition[self.player].value) + world.options.elite_four_key_items_condition.total = \ + int((world.total_key_items / 100) * world.options.elite_four_key_items_condition.value) regions = [create_region(multiworld, player, region, locations_per_region) for region in warp_data] multiworld.regions += regions @@ -1609,7 +1613,7 @@ def create_regions(self): connect(multiworld, player, "Menu", "Pokedex", one_way=True) connect(multiworld, player, "Menu", "Evolution", one_way=True) connect(multiworld, player, "Menu", "Fossil", lambda state: logic.fossil_checks(state, - state.multiworld.second_fossil_check_condition[player].value, player), one_way=True) + world.options.second_fossil_check_condition.value, player), one_way=True) connect(multiworld, player, "Pallet Town", "Route 1") connect(multiworld, player, "Route 1", "Viridian City") connect(multiworld, player, "Viridian City", "Route 22") @@ -1617,24 +1621,24 @@ def create_regions(self): connect(multiworld, player, "Route 2-SW", "Route 2-Grass", one_way=True) connect(multiworld, player, "Route 2-NW", "Route 2-Grass", one_way=True) connect(multiworld, player, "Route 22 Gate-S", "Route 22 Gate-N", - lambda state: logic.has_badges(state, state.multiworld.route_22_gate_condition[player].value, player)) - connect(multiworld, player, "Route 23-Grass", "Route 23-C", lambda state: logic.has_badges(state, state.multiworld.victory_road_condition[player].value, player)) - connect(multiworld, player, "Route 23-Grass", "Route 23-S", lambda state: logic.can_surf(state, player)) + lambda state: logic.has_badges(state, world.options.route_22_gate_condition.value, player)) + connect(multiworld, player, "Route 23-Grass", "Route 23-C", lambda state: logic.has_badges(state, world.options.victory_road_condition.value, player)) + connect(multiworld, player, "Route 23-Grass", "Route 23-S", lambda state: logic.can_surf(state, world, player)) connect(multiworld, player, "Viridian City-N", "Viridian City-G", lambda state: - logic.has_badges(state, state.multiworld.viridian_gym_condition[player].value, player)) - connect(multiworld, player, "Route 2-SW", "Route 2-SE", lambda state: logic.can_cut(state, player)) - connect(multiworld, player, "Route 2-NW", "Route 2-NE", lambda state: logic.can_cut(state, player)) - connect(multiworld, player, "Route 2-E", "Route 2-NE", lambda state: logic.can_cut(state, player)) + logic.has_badges(state, world.options.viridian_gym_condition.value, player)) + connect(multiworld, player, "Route 2-SW", "Route 2-SE", lambda state: logic.can_cut(state, world, player)) + connect(multiworld, player, "Route 2-NW", "Route 2-NE", lambda state: logic.can_cut(state, world, player)) + connect(multiworld, player, "Route 2-E", "Route 2-NE", lambda state: logic.can_cut(state, world, player)) connect(multiworld, player, "Route 2-SW", "Viridian City-N") connect(multiworld, player, "Route 2-NW", "Pewter City") connect(multiworld, player, "Pewter City", "Pewter City-E") connect(multiworld, player, "Pewter City-M", "Pewter City", one_way=True) - connect(multiworld, player, "Pewter City", "Pewter City-M", lambda state: logic.can_cut(state, player), one_way=True) - connect(multiworld, player, "Pewter City-E", "Route 3", lambda state: logic.route_3(state, player), one_way=True) + connect(multiworld, player, "Pewter City", "Pewter City-M", lambda state: logic.can_cut(state, world, player), one_way=True) + connect(multiworld, player, "Pewter City-E", "Route 3", lambda state: logic.route(state, world, player), one_way=True) connect(multiworld, player, "Route 3", "Pewter City-E", one_way=True) connect(multiworld, player, "Route 4-W", "Route 3") - connect(multiworld, player, "Route 24", "Cerulean City-Water", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Cerulean City-Water", "Route 4-Lass", lambda state: logic.can_surf(state, player), one_way=True) + connect(multiworld, player, "Route 24", "Cerulean City-Water", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Cerulean City-Water", "Route 4-Lass", lambda state: logic.can_surf(state, world, player), one_way=True) connect(multiworld, player, "Mt Moon B2F", "Mt Moon B2F-Wild", one_way=True) connect(multiworld, player, "Mt Moon B2F-NE", "Mt Moon B2F-Wild", one_way=True) connect(multiworld, player, "Mt Moon B2F-C", "Mt Moon B2F-Wild", one_way=True) @@ -1644,14 +1648,14 @@ def create_regions(self): connect(multiworld, player, "Cerulean City", "Route 24") connect(multiworld, player, "Cerulean City", "Cerulean City-T", lambda state: state.has("Help Bill", player)) connect(multiworld, player, "Cerulean City-Outskirts", "Cerulean City", one_way=True) - connect(multiworld, player, "Cerulean City", "Cerulean City-Outskirts", lambda state: logic.can_cut(state, player), one_way=True) - connect(multiworld, player, "Cerulean City-Outskirts", "Route 9", lambda state: logic.can_cut(state, player)) + connect(multiworld, player, "Cerulean City", "Cerulean City-Outskirts", lambda state: logic.can_cut(state, world, player), one_way=True) + connect(multiworld, player, "Cerulean City-Outskirts", "Route 9", lambda state: logic.can_cut(state, world, player)) connect(multiworld, player, "Cerulean City-Outskirts", "Route 5") - connect(multiworld, player, "Cerulean Cave B1F", "Cerulean Cave B1F-E", lambda state: logic.can_surf(state, player), one_way=True) + connect(multiworld, player, "Cerulean Cave B1F", "Cerulean Cave B1F-E", lambda state: logic.can_surf(state, world, player), one_way=True) connect(multiworld, player, "Route 24", "Route 25") connect(multiworld, player, "Route 9", "Route 10-N") - connect(multiworld, player, "Route 10-N", "Route 10-C", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Route 10-C", "Route 10-P", lambda state: state.has("Plant Key", player) or not state.multiworld.extra_key_items[player].value) + connect(multiworld, player, "Route 10-N", "Route 10-C", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Route 10-C", "Route 10-P", lambda state: state.has("Plant Key", player) or not world.options.extra_key_items.value) connect(multiworld, player, "Pallet Town", "Pallet/Viridian Fishing", lambda state: state.has("Super Rod", player), one_way=True) connect(multiworld, player, "Viridian City", "Pallet/Viridian Fishing", lambda state: state.has("Super Rod", player), one_way=True) connect(multiworld, player, "Route 22", "Route 22 Fishing", lambda state: state.has("Super Rod", player), one_way=True) @@ -1697,10 +1701,10 @@ def create_regions(self): connect(multiworld, player, "Pallet Town", "Old Rod Fishing", lambda state: state.has("Old Rod", player), one_way=True) connect(multiworld, player, "Pallet Town", "Good Rod Fishing", lambda state: state.has("Good Rod", player), one_way=True) connect(multiworld, player, "Cinnabar Lab Fossil Room", "Fossil Level", lambda state: logic.fossil_checks(state, 1, player), one_way=True) - connect(multiworld, player, "Route 5 Gate-N", "Route 5 Gate-S", lambda state: logic.can_pass_guards(state, player)) - connect(multiworld, player, "Route 6 Gate-N", "Route 6 Gate-S", lambda state: logic.can_pass_guards(state, player)) - connect(multiworld, player, "Route 7 Gate-W", "Route 7 Gate-E", lambda state: logic.can_pass_guards(state, player)) - connect(multiworld, player, "Route 8 Gate-W", "Route 8 Gate-E", lambda state: logic.can_pass_guards(state, player)) + connect(multiworld, player, "Route 5 Gate-N", "Route 5 Gate-S", lambda state: logic.can_pass_guards(state, world, player)) + connect(multiworld, player, "Route 6 Gate-N", "Route 6 Gate-S", lambda state: logic.can_pass_guards(state, world, player)) + connect(multiworld, player, "Route 7 Gate-W", "Route 7 Gate-E", lambda state: logic.can_pass_guards(state, world, player)) + connect(multiworld, player, "Route 8 Gate-W", "Route 8 Gate-E", lambda state: logic.can_pass_guards(state, world, player)) connect(multiworld, player, "Saffron City", "Route 5-S") connect(multiworld, player, "Saffron City", "Route 6-N") connect(multiworld, player, "Saffron City", "Route 7-E") @@ -1710,59 +1714,59 @@ def create_regions(self): connect(multiworld, player, "Saffron City", "Saffron City-G", lambda state: state.has("Silph Co Liberated", player)) connect(multiworld, player, "Saffron City", "Saffron City-Silph", lambda state: state.has("Fuji Saved", player)) connect(multiworld, player, "Route 6", "Vermilion City") - connect(multiworld, player, "Vermilion City", "Vermilion City-G", lambda state: logic.can_surf(state, player) or logic.can_cut(state, player)) + connect(multiworld, player, "Vermilion City", "Vermilion City-G", lambda state: logic.can_surf(state, world, player) or logic.can_cut(state, world, player)) connect(multiworld, player, "Vermilion City", "Vermilion City-Dock", lambda state: state.has("S.S. Ticket", player)) connect(multiworld, player, "Vermilion City", "Route 11") - connect(multiworld, player, "Route 12-N", "Route 12-S", lambda state: logic.can_surf(state, player)) + connect(multiworld, player, "Route 12-N", "Route 12-S", lambda state: logic.can_surf(state, world, player)) connect(multiworld, player, "Route 12-W", "Route 11-E", lambda state: state.has("Poke Flute", player)) connect(multiworld, player, "Route 12-W", "Route 12-N", lambda state: state.has("Poke Flute", player)) connect(multiworld, player, "Route 12-W", "Route 12-S", lambda state: state.has("Poke Flute", player)) - connect(multiworld, player, "Route 12-S", "Route 12-Grass", lambda state: logic.can_cut(state, player), one_way=True) + connect(multiworld, player, "Route 12-S", "Route 12-Grass", lambda state: logic.can_cut(state, world, player), one_way=True) connect(multiworld, player, "Route 12-L", "Lavender Town") connect(multiworld, player, "Route 10-S", "Lavender Town") connect(multiworld, player, "Route 8", "Lavender Town") - connect(multiworld, player, "Pokemon Tower 6F", "Pokemon Tower 6F-S", lambda state: state.has("Silph Scope", player) or (state.has("Buy Poke Doll", player) and state.multiworld.poke_doll_skip[player])) - connect(multiworld, player, "Route 8", "Route 8-Grass", lambda state: logic.can_cut(state, player), one_way=True) + connect(multiworld, player, "Pokemon Tower 6F", "Pokemon Tower 6F-S", lambda state: state.has("Silph Scope", player) or (state.has("Buy Poke Doll", player) and world.options.poke_doll_skip)) + connect(multiworld, player, "Route 8", "Route 8-Grass", lambda state: logic.can_cut(state, world, player), one_way=True) connect(multiworld, player, "Route 7", "Celadon City") - connect(multiworld, player, "Celadon City", "Celadon City-G", lambda state: logic.can_cut(state, player)) + connect(multiworld, player, "Celadon City", "Celadon City-G", lambda state: logic.can_cut(state, world, player)) connect(multiworld, player, "Celadon City", "Route 16-E") - connect(multiworld, player, "Route 18 Gate 1F-W", "Route 18 Gate 1F-E", lambda state: state.has("Bicycle", player) or state.multiworld.bicycle_gate_skips[player] == "in_logic") - connect(multiworld, player, "Route 16 Gate 1F-W", "Route 16 Gate 1F-E", lambda state: state.has("Bicycle", player) or state.multiworld.bicycle_gate_skips[player] == "in_logic") - connect(multiworld, player, "Route 16-E", "Route 16-NE", lambda state: logic.can_cut(state, player)) + connect(multiworld, player, "Route 18 Gate 1F-W", "Route 18 Gate 1F-E", lambda state: state.has("Bicycle", player) or world.options.bicycle_gate_skips == "in_logic") + connect(multiworld, player, "Route 16 Gate 1F-W", "Route 16 Gate 1F-E", lambda state: state.has("Bicycle", player) or world.options.bicycle_gate_skips == "in_logic") + connect(multiworld, player, "Route 16-E", "Route 16-NE", lambda state: logic.can_cut(state, world, player)) connect(multiworld, player, "Route 16-E", "Route 16-C", lambda state: state.has("Poke Flute", player)) connect(multiworld, player, "Route 17", "Route 16-SW") connect(multiworld, player, "Route 17", "Route 18-W") # connect(multiworld, player, "Pokemon Mansion 2F", "Pokemon Mansion 2F-NW", one_way=True) - connect(multiworld, player, "Safari Zone Gate-S", "Safari Zone Gate-N", lambda state: state.has("Safari Pass", player) or not state.multiworld.extra_key_items[player].value, one_way=True) + connect(multiworld, player, "Safari Zone Gate-S", "Safari Zone Gate-N", lambda state: state.has("Safari Pass", player) or not world.options.extra_key_items.value, one_way=True) connect(multiworld, player, "Fuchsia City", "Route 15-W") connect(multiworld, player, "Fuchsia City", "Route 18-E") connect(multiworld, player, "Route 15", "Route 14") - connect(multiworld, player, "Route 14", "Route 15-N", lambda state: logic.can_cut(state, player), one_way=True) - connect(multiworld, player, "Route 14", "Route 14-Grass", lambda state: logic.can_cut(state, player), one_way=True) - connect(multiworld, player, "Route 13", "Route 13-Grass", lambda state: logic.can_cut(state, player), one_way=True) + connect(multiworld, player, "Route 14", "Route 15-N", lambda state: logic.can_cut(state, world, player), one_way=True) + connect(multiworld, player, "Route 14", "Route 14-Grass", lambda state: logic.can_cut(state, world, player), one_way=True) + connect(multiworld, player, "Route 13", "Route 13-Grass", lambda state: logic.can_cut(state, world, player), one_way=True) connect(multiworld, player, "Route 14", "Route 13") - connect(multiworld, player, "Route 13", "Route 13-E", lambda state: logic.can_strength(state, player) or logic.can_surf(state, player) or not state.multiworld.extra_strength_boulders[player].value) + connect(multiworld, player, "Route 13", "Route 13-E", lambda state: logic.can_strength(state, world, player) or logic.can_surf(state, world, player) or not world.options.extra_strength_boulders.value) connect(multiworld, player, "Route 12-S", "Route 13-E") connect(multiworld, player, "Fuchsia City", "Route 19-N") - connect(multiworld, player, "Route 19-N", "Route 19-S", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Route 20-E", "Route 20-IW", lambda state: logic.can_surf(state, player)) + connect(multiworld, player, "Route 19-N", "Route 19-S", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Route 20-E", "Route 20-IW", lambda state: logic.can_surf(state, world, player)) connect(multiworld, player, "Route 20-E", "Route 19-S") - connect(multiworld, player, "Route 20-W", "Cinnabar Island", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Route 20-IE", "Route 20-W", lambda state: logic.can_surf(state, player)) + connect(multiworld, player, "Route 20-W", "Cinnabar Island", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Route 20-IE", "Route 20-W", lambda state: logic.can_surf(state, world, player)) connect(multiworld, player, "Route 20-E", "Route 19/20-Water", one_way=True) connect(multiworld, player, "Route 20-W", "Route 19/20-Water", one_way=True) connect(multiworld, player, "Route 19-S", "Route 19/20-Water", one_way=True) - connect(multiworld, player, "Safari Zone West-NW", "Safari Zone West", lambda state: logic.can_surf(state, player)) + connect(multiworld, player, "Safari Zone West-NW", "Safari Zone West", lambda state: logic.can_surf(state, world, player)) connect(multiworld, player, "Safari Zone West", "Safari Zone West-Wild", one_way=True) connect(multiworld, player, "Safari Zone West-NW", "Safari Zone West-Wild", one_way=True) - connect(multiworld, player, "Safari Zone Center-NW", "Safari Zone Center-C", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Safari Zone Center-NE", "Safari Zone Center-C", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Safari Zone Center-S", "Safari Zone Center-C", lambda state: logic.can_surf(state, player)) + connect(multiworld, player, "Safari Zone Center-NW", "Safari Zone Center-C", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Safari Zone Center-NE", "Safari Zone Center-C", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Safari Zone Center-S", "Safari Zone Center-C", lambda state: logic.can_surf(state, world, player)) connect(multiworld, player, "Safari Zone Center-S", "Safari Zone Center-Wild", one_way=True) connect(multiworld, player, "Safari Zone Center-NW", "Safari Zone Center-Wild", one_way=True) connect(multiworld, player, "Safari Zone Center-NE", "Safari Zone Center-Wild", one_way=True) - connect(multiworld, player, "Victory Road 3F-S", "Victory Road 3F", lambda state: logic.can_strength(state, player)) - connect(multiworld, player, "Victory Road 3F-SE", "Victory Road 3F-S", lambda state: logic.can_strength(state, player), one_way=True) + connect(multiworld, player, "Victory Road 3F-S", "Victory Road 3F", lambda state: logic.can_strength(state, world, player)) + connect(multiworld, player, "Victory Road 3F-SE", "Victory Road 3F-S", lambda state: logic.can_strength(state, world, player), one_way=True) connect(multiworld, player, "Victory Road 3F", "Victory Road 3F-Wild", one_way=True) connect(multiworld, player, "Victory Road 3F-SE", "Victory Road 3F-Wild", one_way=True) connect(multiworld, player, "Victory Road 3F-S", "Victory Road 3F-Wild", one_way=True) @@ -1771,10 +1775,10 @@ def create_regions(self): connect(multiworld, player, "Victory Road 2F-C", "Victory Road 2F-Wild", one_way=True) connect(multiworld, player, "Victory Road 2F-E", "Victory Road 2F-Wild", one_way=True) connect(multiworld, player, "Victory Road 2F-SE", "Victory Road 2F-Wild", one_way=True) - connect(multiworld, player, "Victory Road 2F-W", "Victory Road 2F-C", lambda state: logic.can_strength(state, player), one_way=True) - connect(multiworld, player, "Victory Road 2F-NW", "Victory Road 2F-W", lambda state: logic.can_strength(state, player), one_way=True) - connect(multiworld, player, "Victory Road 2F-C", "Victory Road 2F-SE", lambda state: logic.can_strength(state, player) and state.has("Victory Road Boulder", player), one_way=True) - connect(multiworld, player, "Victory Road 1F-S", "Victory Road 1F", lambda state: logic.can_strength(state, player)) + connect(multiworld, player, "Victory Road 2F-W", "Victory Road 2F-C", lambda state: logic.can_strength(state, world, player), one_way=True) + connect(multiworld, player, "Victory Road 2F-NW", "Victory Road 2F-W", lambda state: logic.can_strength(state, world, player), one_way=True) + connect(multiworld, player, "Victory Road 2F-C", "Victory Road 2F-SE", lambda state: logic.can_strength(state, world, player) and state.has("Victory Road Boulder", player), one_way=True) + connect(multiworld, player, "Victory Road 1F-S", "Victory Road 1F", lambda state: logic.can_strength(state, world, player)) connect(multiworld, player, "Victory Road 1F", "Victory Road 1F-Wild", one_way=True) connect(multiworld, player, "Victory Road 1F-S", "Victory Road 1F-Wild", one_way=True) connect(multiworld, player, "Mt Moon B1F-W", "Mt Moon B1F-Wild", one_way=True) @@ -1796,50 +1800,50 @@ def create_regions(self): connect(multiworld, player, "Seafoam Islands B3F", "Seafoam Islands B3F-Wild", one_way=True) connect(multiworld, player, "Seafoam Islands B3F-NE", "Seafoam Islands B3F-Wild", one_way=True) connect(multiworld, player, "Seafoam Islands B3F-SE", "Seafoam Islands B3F-Wild", one_way=True) - connect(multiworld, player, "Seafoam Islands B4F", "Seafoam Islands B4F-W", lambda state: logic.can_surf(state, player), one_way=True) + connect(multiworld, player, "Seafoam Islands B4F", "Seafoam Islands B4F-W", lambda state: logic.can_surf(state, world, player), one_way=True) connect(multiworld, player, "Seafoam Islands B4F-W", "Seafoam Islands B4F", one_way=True) - connect(multiworld, player, "Seafoam Islands B3F", "Seafoam Islands B3F-SE", lambda state: logic.can_surf(state, player) and logic.can_strength(state, player) and state.has("Seafoam Exit Boulder", player, 6)) - connect(multiworld, player, "Viridian City", "Viridian City-N", lambda state: state.has("Oak's Parcel", player) or state.multiworld.old_man[player].value == 2 or logic.can_cut(state, player)) - connect(multiworld, player, "Route 11", "Route 11-C", lambda state: logic.can_strength(state, player) or not state.multiworld.extra_strength_boulders[player]) + connect(multiworld, player, "Seafoam Islands B3F", "Seafoam Islands B3F-SE", lambda state: logic.can_surf(state, world, player) and logic.can_strength(state, world, player) and state.has("Seafoam Exit Boulder", player, 6)) + connect(multiworld, player, "Viridian City", "Viridian City-N", lambda state: state.has("Oak's Parcel", player) or world.options.old_man.value == 2 or logic.can_cut(state, world, player)) + connect(multiworld, player, "Route 11", "Route 11-C", lambda state: logic.can_strength(state, world, player) or not world.options.extra_strength_boulders) connect(multiworld, player, "Cinnabar Island", "Cinnabar Island-G", lambda state: state.has("Secret Key", player)) - connect(multiworld, player, "Cinnabar Island", "Cinnabar Island-M", lambda state: state.has("Mansion Key", player) or not state.multiworld.extra_key_items[player].value) - connect(multiworld, player, "Route 21", "Cinnabar Island", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Pallet Town", "Route 21", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Celadon Gym", "Celadon Gym-C", lambda state: logic.can_cut(state, player), one_way=True) - connect(multiworld, player, "Celadon Game Corner", "Celadon Game Corner-Hidden Stairs", lambda state: (not state.multiworld.extra_key_items[player]) or state.has("Hideout Key", player), one_way=True) + connect(multiworld, player, "Cinnabar Island", "Cinnabar Island-M", lambda state: state.has("Mansion Key", player) or not world.options.extra_key_items.value) + connect(multiworld, player, "Route 21", "Cinnabar Island", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Pallet Town", "Route 21", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Celadon Gym", "Celadon Gym-C", lambda state: logic.can_cut(state, world, player), one_way=True) + connect(multiworld, player, "Celadon Game Corner", "Celadon Game Corner-Hidden Stairs", lambda state: (not world.options.extra_key_items) or state.has("Hideout Key", player), one_way=True) connect(multiworld, player, "Celadon Game Corner-Hidden Stairs", "Celadon Game Corner", one_way=True) connect(multiworld, player, "Rocket Hideout B1F-SE", "Rocket Hideout B1F", one_way=True) - connect(multiworld, player, "Indigo Plateau Lobby", "Indigo Plateau Lobby-N", lambda state: logic.has_badges(state, state.multiworld.elite_four_badges_condition[player].value, player) and logic.has_pokemon(state, state.multiworld.elite_four_pokedex_condition[player].total, player) and logic.has_key_items(state, state.multiworld.elite_four_key_items_condition[player].total, player) and (state.has("Pokedex", player, int(state.multiworld.elite_four_pokedex_condition[player].total > 1) * state.multiworld.require_pokedex[player].value))) + connect(multiworld, player, "Indigo Plateau Lobby", "Indigo Plateau Lobby-N", lambda state: logic.has_badges(state, world.options.elite_four_badges_condition.value, player) and logic.has_pokemon(state, world.options.elite_four_pokedex_condition.total, player) and logic.has_key_items(state, world.options.elite_four_key_items_condition.total, player) and (state.has("Pokedex", player, int(world.options.elite_four_pokedex_condition.total > 1) * world.options.require_pokedex.value))) connect(multiworld, player, "Pokemon Mansion 3F", "Pokemon Mansion 3F-Wild", one_way=True) connect(multiworld, player, "Pokemon Mansion 3F-SW", "Pokemon Mansion 3F-Wild", one_way=True) connect(multiworld, player, "Pokemon Mansion 3F-SE", "Pokemon Mansion 3F-Wild", one_way=True) connect(multiworld, player, "Pokemon Mansion 2F-E", "Pokemon Mansion 2F-Wild", one_way=True) connect(multiworld, player, "Pokemon Mansion 1F-SE", "Pokemon Mansion 1F-Wild", one_way=True) connect(multiworld, player, "Pokemon Mansion 1F", "Pokemon Mansion 1F-Wild", one_way=True) - connect(multiworld, player, "Rock Tunnel 1F-S 1", "Rock Tunnel 1F-S", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel 1F-S 2", "Rock Tunnel 1F-S", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel 1F-NW 1", "Rock Tunnel 1F-NW", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel 1F-NW 2", "Rock Tunnel 1F-NW", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel 1F-NE 1", "Rock Tunnel 1F-NE", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel 1F-NE 2", "Rock Tunnel 1F-NE", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel B1F-W 1", "Rock Tunnel B1F-W", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel B1F-W 2", "Rock Tunnel B1F-W", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel B1F-E 1", "Rock Tunnel B1F-E", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel B1F-E 2", "Rock Tunnel B1F-E", lambda state: logic.rock_tunnel(state, player)) - connect(multiworld, player, "Rock Tunnel 1F-S", "Rock Tunnel 1F-Wild", lambda state: logic.rock_tunnel(state, player), one_way=True) - connect(multiworld, player, "Rock Tunnel 1F-NW", "Rock Tunnel 1F-Wild", lambda state: logic.rock_tunnel(state, player), one_way=True) - connect(multiworld, player, "Rock Tunnel 1F-NE", "Rock Tunnel 1F-Wild", lambda state: logic.rock_tunnel(state, player), one_way=True) - connect(multiworld, player, "Rock Tunnel B1F-W", "Rock Tunnel B1F-Wild", lambda state: logic.rock_tunnel(state, player), one_way=True) - connect(multiworld, player, "Rock Tunnel B1F-E", "Rock Tunnel B1F-Wild", lambda state: logic.rock_tunnel(state, player), one_way=True) + connect(multiworld, player, "Rock Tunnel 1F-S 1", "Rock Tunnel 1F-S", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel 1F-S 2", "Rock Tunnel 1F-S", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel 1F-NW 1", "Rock Tunnel 1F-NW", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel 1F-NW 2", "Rock Tunnel 1F-NW", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel 1F-NE 1", "Rock Tunnel 1F-NE", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel 1F-NE 2", "Rock Tunnel 1F-NE", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel B1F-W 1", "Rock Tunnel B1F-W", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel B1F-W 2", "Rock Tunnel B1F-W", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel B1F-E 1", "Rock Tunnel B1F-E", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel B1F-E 2", "Rock Tunnel B1F-E", lambda state: logic.rock_tunnel(state, world, player)) + connect(multiworld, player, "Rock Tunnel 1F-S", "Rock Tunnel 1F-Wild", lambda state: logic.rock_tunnel(state, world, player), one_way=True) + connect(multiworld, player, "Rock Tunnel 1F-NW", "Rock Tunnel 1F-Wild", lambda state: logic.rock_tunnel(state, world, player), one_way=True) + connect(multiworld, player, "Rock Tunnel 1F-NE", "Rock Tunnel 1F-Wild", lambda state: logic.rock_tunnel(state, world, player), one_way=True) + connect(multiworld, player, "Rock Tunnel B1F-W", "Rock Tunnel B1F-Wild", lambda state: logic.rock_tunnel(state, world, player), one_way=True) + connect(multiworld, player, "Rock Tunnel B1F-E", "Rock Tunnel B1F-Wild", lambda state: logic.rock_tunnel(state, world, player), one_way=True) connect(multiworld, player, "Cerulean Cave 1F-SE", "Cerulean Cave 1F-Wild", one_way=True) connect(multiworld, player, "Cerulean Cave 1F-SW", "Cerulean Cave 1F-Wild", one_way=True) connect(multiworld, player, "Cerulean Cave 1F-NE", "Cerulean Cave 1F-Wild", one_way=True) connect(multiworld, player, "Cerulean Cave 1F-N", "Cerulean Cave 1F-Wild", one_way=True) connect(multiworld, player, "Cerulean Cave 1F-NW", "Cerulean Cave 1F-Wild", one_way=True) - connect(multiworld, player, "Cerulean Cave 1F-SE", "Cerulean Cave 1F-Water", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Cerulean Cave 1F-SW", "Cerulean Cave 1F-Water", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Cerulean Cave 1F-N", "Cerulean Cave 1F-Water", lambda state: logic.can_surf(state, player)) - connect(multiworld, player, "Cerulean Cave 1F-NE", "Cerulean Cave 1F-Water", lambda state: logic.can_surf(state, player)) + connect(multiworld, player, "Cerulean Cave 1F-SE", "Cerulean Cave 1F-Water", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Cerulean Cave 1F-SW", "Cerulean Cave 1F-Water", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Cerulean Cave 1F-N", "Cerulean Cave 1F-Water", lambda state: logic.can_surf(state, world, player)) + connect(multiworld, player, "Cerulean Cave 1F-NE", "Cerulean Cave 1F-Water", lambda state: logic.can_surf(state, world, player)) connect(multiworld, player, "Pokemon Mansion 3F", "Pokemon Mansion 3F-SE", one_way=True) connect(multiworld, player, "Silph Co 2F", "Silph Co 2F-NW", lambda state: logic.card_key(state, 2, player)) connect(multiworld, player, "Silph Co 2F", "Silph Co 2F-SW", lambda state: logic.card_key(state, 2, player)) @@ -1858,80 +1862,80 @@ def create_regions(self): connect(multiworld, player, "Silph Co 9F-NW", "Silph Co 9F-SW", lambda state: logic.card_key(state, 9, player)) connect(multiworld, player, "Silph Co 10F", "Silph Co 10F-SE", lambda state: logic.card_key(state, 10, player)) connect(multiworld, player, "Silph Co 11F-W", "Silph Co 11F-C", lambda state: logic.card_key(state, 11, player)) - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-1F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-2F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-3F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-4F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-5F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-6F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-7F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-8F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-9F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-10F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-11F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-1F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-2F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-3F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-4F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-5F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-6F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-7F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-8F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-9F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-10F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Silph Co Elevator", "Silph Co Elevator-11F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), connect(multiworld, player, "Rocket Hideout Elevator", "Rocket Hideout Elevator-B1F", lambda state: state.has("Lift Key", player)) connect(multiworld, player, "Rocket Hideout Elevator", "Rocket Hideout Elevator-B2F", lambda state: state.has("Lift Key", player)) connect(multiworld, player, "Rocket Hideout Elevator", "Rocket Hideout Elevator-B4F", lambda state: state.has("Lift Key", player)) - connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-1F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-2F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-3F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-4F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), - connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-5F", lambda state: (not state.multiworld.all_elevators_locked[player]) or state.has("Lift Key", player)), + connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-1F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-2F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-3F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-4F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), + connect(multiworld, player, "Celadon Department Store Elevator", "Celadon Department Store Elevator-5F", lambda state: (not world.options.all_elevators_locked) or state.has("Lift Key", player)), connect(multiworld, player, "Route 23-N", "Indigo Plateau") connect(multiworld, player, "Cerulean City-Water", "Cerulean City-Cave", lambda state: - logic.has_badges(state, self.multiworld.cerulean_cave_badges_condition[player].value, player) and - logic.has_key_items(state, self.multiworld.cerulean_cave_key_items_condition[player].total, player) and logic.can_surf(state, player)) + logic.has_badges(state, world.options.cerulean_cave_badges_condition.value, player) and + logic.has_key_items(state, world.options.cerulean_cave_key_items_condition.total, player) and logic.can_surf(state, world, player)) # access to any part of a city will enable flying to the Pokemon Center - connect(multiworld, player, "Cerulean City-Cave", "Cerulean City", lambda state: logic.can_fly(state, player), one_way=True) - connect(multiworld, player, "Cerulean City-Badge House Backyard", "Cerulean City", lambda state: logic.can_fly(state, player), one_way=True) - connect(multiworld, player, "Cerulean City-T", "Cerulean City", lambda state: logic.can_fly(state, player), one_way=True, name="Cerulean City-T to Cerulean City (Fly)") - connect(multiworld, player, "Fuchsia City-Good Rod House Backyard", "Fuchsia City", lambda state: logic.can_fly(state, player), one_way=True) - connect(multiworld, player, "Saffron City-G", "Saffron City", lambda state: logic.can_fly(state, player), one_way=True, name="Saffron City-G to Saffron City (Fly)") - connect(multiworld, player, "Saffron City-Pidgey", "Saffron City", lambda state: logic.can_fly(state, player), one_way=True, name="Saffron City-Pidgey to Saffron City (Fly)") - connect(multiworld, player, "Saffron City-Silph", "Saffron City", lambda state: logic.can_fly(state, player), one_way=True, name="Saffron City-Silph to Saffron City (Fly)") - connect(multiworld, player, "Saffron City-Copycat", "Saffron City", lambda state: logic.can_fly(state, player), one_way=True, name="Saffron City-Copycat to Saffron City (Fly)") - connect(multiworld, player, "Celadon City-G", "Celadon City", lambda state: logic.can_fly(state, player), one_way=True, name="Celadon City-G to Celadon City (Fly)") - connect(multiworld, player, "Vermilion City-G", "Vermilion City", lambda state: logic.can_fly(state, player), one_way=True, name="Vermilion City-G to Vermilion City (Fly)") - connect(multiworld, player, "Vermilion City-Dock", "Vermilion City", lambda state: logic.can_fly(state, player), one_way=True, name="Vermilion City-Dock to Vermilion City (Fly)") - connect(multiworld, player, "Cinnabar Island-G", "Cinnabar Island", lambda state: logic.can_fly(state, player), one_way=True, name="Cinnabar Island-G to Cinnabar Island (Fly)") - connect(multiworld, player, "Cinnabar Island-M", "Cinnabar Island", lambda state: logic.can_fly(state, player), one_way=True, name="Cinnabar Island-M to Cinnabar Island (Fly)") + connect(multiworld, player, "Cerulean City-Cave", "Cerulean City", lambda state: logic.can_fly(state, world, player), one_way=True) + connect(multiworld, player, "Cerulean City-Badge House Backyard", "Cerulean City", lambda state: logic.can_fly(state, world, player), one_way=True) + connect(multiworld, player, "Cerulean City-T", "Cerulean City", lambda state: logic.can_fly(state, world, player), one_way=True, name="Cerulean City-T to Cerulean City (Fly)") + connect(multiworld, player, "Fuchsia City-Good Rod House Backyard", "Fuchsia City", lambda state: logic.can_fly(state, world, player), one_way=True) + connect(multiworld, player, "Saffron City-G", "Saffron City", lambda state: logic.can_fly(state, world, player), one_way=True, name="Saffron City-G to Saffron City (Fly)") + connect(multiworld, player, "Saffron City-Pidgey", "Saffron City", lambda state: logic.can_fly(state, world, player), one_way=True, name="Saffron City-Pidgey to Saffron City (Fly)") + connect(multiworld, player, "Saffron City-Silph", "Saffron City", lambda state: logic.can_fly(state, world, player), one_way=True, name="Saffron City-Silph to Saffron City (Fly)") + connect(multiworld, player, "Saffron City-Copycat", "Saffron City", lambda state: logic.can_fly(state, world, player), one_way=True, name="Saffron City-Copycat to Saffron City (Fly)") + connect(multiworld, player, "Celadon City-G", "Celadon City", lambda state: logic.can_fly(state, world, player), one_way=True, name="Celadon City-G to Celadon City (Fly)") + connect(multiworld, player, "Vermilion City-G", "Vermilion City", lambda state: logic.can_fly(state, world, player), one_way=True, name="Vermilion City-G to Vermilion City (Fly)") + connect(multiworld, player, "Vermilion City-Dock", "Vermilion City", lambda state: logic.can_fly(state, world, player), one_way=True, name="Vermilion City-Dock to Vermilion City (Fly)") + connect(multiworld, player, "Cinnabar Island-G", "Cinnabar Island", lambda state: logic.can_fly(state, world, player), one_way=True, name="Cinnabar Island-G to Cinnabar Island (Fly)") + connect(multiworld, player, "Cinnabar Island-M", "Cinnabar Island", lambda state: logic.can_fly(state, world, player), one_way=True, name="Cinnabar Island-M to Cinnabar Island (Fly)") # drops connect(multiworld, player, "Seafoam Islands 1F", "Seafoam Islands B1F", one_way=True, name="Seafoam Islands 1F to Seafoam Islands B1F (Drop)") connect(multiworld, player, "Seafoam Islands 1F", "Seafoam Islands B1F-NE", one_way=True, name="Seafoam Islands 1F to Seafoam Islands B1F-NE (Drop)") connect(multiworld, player, "Seafoam Islands B1F", "Seafoam Islands B2F-NW", one_way=True, name="Seafoam Islands 1F to Seafoam Islands B2F-NW (Drop)") connect(multiworld, player, "Seafoam Islands B1F-NE", "Seafoam Islands B2F-NE", one_way=True) - connect(multiworld, player, "Seafoam Islands B2F-NW", "Seafoam Islands B3F", lambda state: logic.can_strength(state, player) and state.has("Seafoam Exit Boulder", player, 6), one_way=True) - connect(multiworld, player, "Seafoam Islands B2F-NE", "Seafoam Islands B3F", lambda state: logic.can_strength(state, player) and state.has("Seafoam Exit Boulder", player, 6), one_way=True) - connect(multiworld, player, "Seafoam Islands B2F-NW", "Seafoam Islands B3F-SE", lambda state: logic.can_strength(state, player) and state.has("Seafoam Exit Boulder", player, 6), one_way=True) - connect(multiworld, player, "Seafoam Islands B2F-NE", "Seafoam Islands B3F-SE", lambda state: logic.can_strength(state, player) and state.has("Seafoam Exit Boulder", player, 6), one_way=True) + connect(multiworld, player, "Seafoam Islands B2F-NW", "Seafoam Islands B3F", lambda state: logic.can_strength(state, world, player) and state.has("Seafoam Exit Boulder", player, 6), one_way=True) + connect(multiworld, player, "Seafoam Islands B2F-NE", "Seafoam Islands B3F", lambda state: logic.can_strength(state, world, player) and state.has("Seafoam Exit Boulder", player, 6), one_way=True) + connect(multiworld, player, "Seafoam Islands B2F-NW", "Seafoam Islands B3F-SE", lambda state: logic.can_strength(state, world, player) and state.has("Seafoam Exit Boulder", player, 6), one_way=True) + connect(multiworld, player, "Seafoam Islands B2F-NE", "Seafoam Islands B3F-SE", lambda state: logic.can_strength(state, world, player) and state.has("Seafoam Exit Boulder", player, 6), one_way=True) # If you haven't dropped the boulders, you'll go straight to B4F connect(multiworld, player, "Seafoam Islands B2F-NW", "Seafoam Islands B4F-W", one_way=True) connect(multiworld, player, "Seafoam Islands B2F-NE", "Seafoam Islands B4F-W", one_way=True) connect(multiworld, player, "Seafoam Islands B3F", "Seafoam Islands B4F", one_way=True, name="Seafoam Islands B1F to Seafoam Islands B4F (Drop)") - connect(multiworld, player, "Seafoam Islands B3F", "Seafoam Islands B4F-W", lambda state: logic.can_surf(state, player), one_way=True) + connect(multiworld, player, "Seafoam Islands B3F", "Seafoam Islands B4F-W", lambda state: logic.can_surf(state, world, player), one_way=True) connect(multiworld, player, "Pokemon Mansion 3F-SE", "Pokemon Mansion 2F", one_way=True) connect(multiworld, player, "Pokemon Mansion 3F-SE", "Pokemon Mansion 1F-SE", one_way=True) connect(multiworld, player, "Victory Road 3F-S", "Victory Road 2F-C", one_way=True) - if multiworld.worlds[player].fly_map != "Pallet Town": - connect(multiworld, player, "Menu", multiworld.worlds[player].fly_map, - lambda state: logic.can_fly(state, player), one_way=True, name="Free Fly Location") + if world.fly_map != "Pallet Town": + connect(multiworld, player, "Menu", world.fly_map, + lambda state: logic.can_fly(state, world, player), one_way=True, name="Free Fly Location") - if multiworld.worlds[player].town_map_fly_map != "Pallet Town": - connect(multiworld, player, "Menu", multiworld.worlds[player].town_map_fly_map, - lambda state: logic.can_fly(state, player) and state.has("Town Map", player), one_way=True, + if world.town_map_fly_map != "Pallet Town": + connect(multiworld, player, "Menu", world.town_map_fly_map, + lambda state: logic.can_fly(state, world, player) and state.has("Town Map", player), one_way=True, name="Town Map Fly Location") - cache = multiworld.regions.entrance_cache[self.player].copy() - if multiworld.badgesanity[player] or multiworld.door_shuffle[player] in ("off", "simple"): + cache = multiworld.regions.entrance_cache[world.player].copy() + if world.options.badgesanity or world.options.door_shuffle in ("off", "simple"): badges = None badge_locs = None else: - badges = [item for item in self.item_pool if "Badge" in item.name] + badges = [item for item in world.item_pool if "Badge" in item.name] for badge in badges: - self.item_pool.remove(badge) + world.item_pool.remove(badge) badge_locs = [multiworld.get_location(loc, player) for loc in [ "Pewter Gym - Brock Prize", "Cerulean Gym - Misty Prize", "Vermilion Gym - Lt. Surge Prize", "Celadon Gym - Erika Prize", "Fuchsia Gym - Koga Prize", "Saffron Gym - Sabrina Prize", @@ -1939,15 +1943,18 @@ def create_regions(self): ]] for attempt in range(10): try: - door_shuffle(self, multiworld, player, badges, badge_locs) + door_shuffle(world, multiworld, player, badges, badge_locs) except DoorShuffleException as e: if attempt == 9: raise e - for region in self.multiworld.get_regions(player): + for region in world.multiworld.get_regions(player): for entrance in reversed(region.exits): if isinstance(entrance, PokemonRBWarp): region.exits.remove(entrance) - multiworld.regions.entrance_cache[self.player] = cache.copy() + for entrance in reversed(region.entrances): + if isinstance(entrance, PokemonRBWarp): + region.entrances.remove(entrance) + multiworld.regions.entrance_cache[world.player] = cache.copy() if badge_locs: for loc in badge_locs: loc.item = None @@ -1965,36 +1972,36 @@ def door_shuffle(world, multiworld, player, badges, badge_locs): shuffle = True interior = False if not outdoor_map(region.name) and not outdoor_map(entrance_data['to']['map']): - if multiworld.door_shuffle[player] not in ("full", "insanity", "decoupled"): + if world.options.door_shuffle not in ("full", "insanity", "decoupled"): shuffle = False interior = True - if multiworld.door_shuffle[player] == "simple": + if world.options.door_shuffle == "simple": if sorted([entrance_data['to']['map'], region.name]) == ["Celadon Game Corner-Hidden Stairs", "Rocket Hideout B1F"]: shuffle = True elif sorted([entrance_data['to']['map'], region.name]) == ["Celadon City", "Celadon Game Corner"]: shuffle = False - if (multiworld.randomize_rock_tunnel[player] and "Rock Tunnel" in region.name and "Rock Tunnel" in + if (world.options.randomize_rock_tunnel and "Rock Tunnel" in region.name and "Rock Tunnel" in entrance_data['to']['map']): shuffle = False elif (f"{region.name} to {entrance_data['to']['map']}" if "name" not in entrance_data else entrance_data["name"]) in silph_co_warps + saffron_gym_warps: - if multiworld.warp_tile_shuffle[player]: + if world.options.warp_tile_shuffle: shuffle = True - if multiworld.warp_tile_shuffle[player] == "mixed" and multiworld.door_shuffle[player] == "full": + if world.options.warp_tile_shuffle == "mixed" and world.options.door_shuffle == "full": interior = True else: interior = False else: shuffle = False - elif not multiworld.door_shuffle[player]: + elif not world.options.door_shuffle: shuffle = False if shuffle: entrance = PokemonRBWarp(player, f"{region.name} to {entrance_data['to']['map']}" if "name" not in entrance_data else entrance_data["name"], region, entrance_data["id"], entrance_data["address"], entrance_data["flags"] if "flags" in entrance_data else "") - if interior and multiworld.door_shuffle[player] == "full": + if interior and world.options.door_shuffle == "full": full_interiors.append(entrance) else: entrances.append(entrance) @@ -2006,22 +2013,22 @@ def door_shuffle(world, multiworld, player, badges, badge_locs): forced_connections = set() one_way_forced_connections = set() - if multiworld.door_shuffle[player]: - if multiworld.door_shuffle[player] in ("full", "insanity", "decoupled"): + if world.options.door_shuffle: + if world.options.door_shuffle in ("full", "insanity", "decoupled"): safari_zone_doors = [door for pair in safari_zone_connections for door in pair] safari_zone_doors.sort() order = ["Center", "East", "North", "West"] - multiworld.random.shuffle(order) + world.random.shuffle(order) usable_doors = ["Safari Zone Gate-N to Safari Zone Center-S"] for section in order: section_doors = [door for door in safari_zone_doors if door.startswith(f"Safari Zone {section}")] - connect_door_a = multiworld.random.choice(usable_doors) - connect_door_b = multiworld.random.choice(section_doors) + connect_door_a = world.random.choice(usable_doors) + connect_door_b = world.random.choice(section_doors) usable_doors.remove(connect_door_a) section_doors.remove(connect_door_b) forced_connections.add((connect_door_a, connect_door_b)) usable_doors += section_doors - multiworld.random.shuffle(usable_doors) + world.random.shuffle(usable_doors) while usable_doors: forced_connections.add((usable_doors.pop(), usable_doors.pop())) else: @@ -2029,32 +2036,32 @@ def door_shuffle(world, multiworld, player, badges, badge_locs): usable_safe_rooms = safe_rooms.copy() - if multiworld.door_shuffle[player] == "simple": + if world.options.door_shuffle == "simple": forced_connections.update(simple_mandatory_connections) else: usable_safe_rooms += pokemarts - if multiworld.key_items_only[player]: + if world.options.key_items_only: usable_safe_rooms.remove("Viridian Pokemart to Viridian City") - if multiworld.door_shuffle[player] in ("full", "insanity", "decoupled"): + if world.options.door_shuffle in ("full", "insanity", "decoupled"): forced_connections.update(full_mandatory_connections) - r = multiworld.random.randint(0, 3) + r = world.random.randint(0, 3) if r == 2: forced_connections.add(("Pokemon Mansion 1F-SE to Pokemon Mansion B1F", "Pokemon Mansion 3F-SE to Pokemon Mansion 2F-E")) forced_connections.add(("Pokemon Mansion 2F to Pokemon Mansion 3F", - multiworld.random.choice(mansion_stair_destinations + mansion_dead_ends + world.random.choice(mansion_stair_destinations + mansion_dead_ends + ["Pokemon Mansion B1F to Pokemon Mansion 1F-SE"]))) - if multiworld.door_shuffle[player] == "full": + if world.options.door_shuffle == "full": forced_connections.add(("Pokemon Mansion 1F to Pokemon Mansion 2F", "Pokemon Mansion 3F to Pokemon Mansion 2F")) elif r == 3: - dead_end = multiworld.random.randint(0, 1) + dead_end = world.random.randint(0, 1) forced_connections.add(("Pokemon Mansion 3F-SE to Pokemon Mansion 2F-E", mansion_dead_ends[dead_end])) forced_connections.add(("Pokemon Mansion 1F-SE to Pokemon Mansion B1F", "Pokemon Mansion B1F to Pokemon Mansion 1F-SE")) forced_connections.add(("Pokemon Mansion 2F to Pokemon Mansion 3F", - multiworld.random.choice(mansion_stair_destinations + world.random.choice(mansion_stair_destinations + [mansion_dead_ends[dead_end ^ 1]]))) else: forced_connections.add(("Pokemon Mansion 3F-SE to Pokemon Mansion 2F-E", @@ -2062,40 +2069,40 @@ def door_shuffle(world, multiworld, player, badges, badge_locs): forced_connections.add(("Pokemon Mansion 1F-SE to Pokemon Mansion B1F", mansion_dead_ends[r ^ 1])) forced_connections.add(("Pokemon Mansion 2F to Pokemon Mansion 3F", - multiworld.random.choice(mansion_stair_destinations + world.random.choice(mansion_stair_destinations + ["Pokemon Mansion B1F to Pokemon Mansion 1F-SE"]))) - if multiworld.door_shuffle[player] in ("insanity", "decoupled"): + if world.options.door_shuffle in ("insanity", "decoupled"): usable_safe_rooms += insanity_safe_rooms - safe_rooms_sample = multiworld.random.sample(usable_safe_rooms, 6) + safe_rooms_sample = world.random.sample(usable_safe_rooms, 6) pallet_safe_room = safe_rooms_sample[-1] - for a, b in zip(multiworld.random.sample(["Pallet Town to Player's House 1F", "Pallet Town to Oak's Lab", + for a, b in zip(world.random.sample(["Pallet Town to Player's House 1F", "Pallet Town to Oak's Lab", "Pallet Town to Rival's House"], 3), ["Oak's Lab to Pallet Town", "Player's House 1F to Pallet Town", pallet_safe_room]): one_way_forced_connections.add((a, b)) - if multiworld.door_shuffle[player] == "decoupled": + if world.options.door_shuffle == "decoupled": for a, b in zip(["Oak's Lab to Pallet Town", "Player's House 1F to Pallet Town", pallet_safe_room], - multiworld.random.sample(["Pallet Town to Player's House 1F", "Pallet Town to Oak's Lab", + world.random.sample(["Pallet Town to Player's House 1F", "Pallet Town to Oak's Lab", "Pallet Town to Rival's House"], 3)): one_way_forced_connections.add((a, b)) for a, b in zip(safari_zone_houses, safe_rooms_sample): one_way_forced_connections.add((a, b)) - if multiworld.door_shuffle[player] == "decoupled": - for a, b in zip(multiworld.random.sample(safe_rooms_sample[:-1], len(safe_rooms_sample) - 1), + if world.options.door_shuffle == "decoupled": + for a, b in zip(world.random.sample(safe_rooms_sample[:-1], len(safe_rooms_sample) - 1), safari_zone_houses): one_way_forced_connections.add((a, b)) - if multiworld.door_shuffle[player] == "simple": + if world.options.door_shuffle == "simple": # force Indigo Plateau Lobby to vanilla location on simple, otherwise shuffle with Pokemon Centers. - for a, b in zip(multiworld.random.sample(pokemon_center_entrances[0:-1], 11), pokemon_centers[0:-1]): + for a, b in zip(world.random.sample(pokemon_center_entrances[0:-1], 11), pokemon_centers[0:-1]): forced_connections.add((a, b)) forced_connections.add((pokemon_center_entrances[-1], pokemon_centers[-1])) - forced_pokemarts = multiworld.random.sample(pokemart_entrances, 8) - if multiworld.key_items_only[player]: + forced_pokemarts = world.random.sample(pokemart_entrances, 8) + if world.options.key_items_only: forced_pokemarts.sort(key=lambda i: i[0] != "Viridian Pokemart to Viridian City") for a, b in zip(forced_pokemarts, pokemarts): forced_connections.add((a, b)) @@ -2104,21 +2111,21 @@ def door_shuffle(world, multiworld, player, badges, badge_locs): # fly / blackout warps. Rather than mess with those coordinates (besides in Pallet Town) or have players # warping outside an entrance that isn't the Pokemon Center, just always put Pokemon Centers at Pokemon # Center entrances - for a, b in zip(multiworld.random.sample(pokemon_center_entrances, 12), pokemon_centers): + for a, b in zip(world.random.sample(pokemon_center_entrances, 12), pokemon_centers): one_way_forced_connections.add((a, b)) # Ensure a Pokemart is available at the beginning of the game - if multiworld.key_items_only[player]: - one_way_forced_connections.add((multiworld.random.choice(initial_doors), + if world.options.key_items_only: + one_way_forced_connections.add((world.random.choice(initial_doors), "Viridian Pokemart to Viridian City")) elif "Pokemart" not in pallet_safe_room: - one_way_forced_connections.add((multiworld.random.choice(initial_doors), multiworld.random.choice( + one_way_forced_connections.add((world.random.choice(initial_doors), world.random.choice( [mart for mart in pokemarts if mart not in safe_rooms_sample]))) - if multiworld.warp_tile_shuffle[player] == "shuffle" or (multiworld.warp_tile_shuffle[player] == "mixed" - and multiworld.door_shuffle[player] - in ("off", "simple", "interiors")): - warps = multiworld.random.sample(silph_co_warps, len(silph_co_warps)) + if world.options.warp_tile_shuffle == "shuffle" or (world.options.warp_tile_shuffle == "mixed" + and world.options.door_shuffle + in ("off", "simple", "interiors")): + warps = world.random.sample(silph_co_warps, len(silph_co_warps)) # The only warp tiles never reachable from the stairs/elevators are the two 7F-NW warps (where the rival is) # and the final 11F-W warp. As long as the two 7F-NW warps aren't connected to each other, everything should # always be reachable. @@ -2129,9 +2136,9 @@ def door_shuffle(world, multiworld, player, badges, badge_locs): # Shuffle Saffron Gym sections, then connect one warp from each section to the next. # Then connect the rest at random. - warps = multiworld.random.sample(saffron_gym_warps, len(saffron_gym_warps)) + warps = world.random.sample(saffron_gym_warps, len(saffron_gym_warps)) solution = ["SW", "W", "NW", "N", "NE", "E", "SE"] - multiworld.random.shuffle(solution) + world.random.shuffle(solution) solution = ["S"] + solution + ["C"] for i in range(len(solution) - 1): f, t = solution[i], solution[i + 1] @@ -2151,7 +2158,7 @@ def door_shuffle(world, multiworld, player, badges, badge_locs): forced_connections.add((warps.pop(), warps.pop(),)) dc_destinations = None - if multiworld.door_shuffle[player] == "decoupled": + if world.options.door_shuffle == "decoupled": dc_destinations = entrances.copy() for pair in one_way_forced_connections: entrance_a = multiworld.get_entrance(pair[0], player) @@ -2179,11 +2186,11 @@ def door_shuffle(world, multiworld, player, badges, badge_locs): full_interiors.remove(entrance_b) else: raise DoorShuffleException("Attempted to force connection with entrance not in any entrance pool, likely because it tried to force an entrance to connect twice.") - if multiworld.door_shuffle[player] == "decoupled": + if world.options.door_shuffle == "decoupled": dc_destinations.remove(entrance_a) dc_destinations.remove(entrance_b) - if multiworld.door_shuffle[player] == "simple": + if world.options.door_shuffle == "simple": def connect_connecting_interiors(interior_exits, exterior_entrances): for interior, exterior in zip(interior_exits, exterior_entrances): for a, b in zip(interior, exterior): @@ -2222,68 +2229,68 @@ def connect_interiors(interior_exits, exterior_entrances): single_entrance_dungeon_entrances = dungeon_entrances.copy() for i in range(2): - if not multiworld.random.randint(0, 2): + if not world.random.randint(0, 2): placed_connecting_interior_dungeons.append(multi_purpose_dungeons[i]) interior_dungeon_entrances.append([multi_purpose_dungeon_entrances[i], None]) else: placed_single_entrance_dungeons.append(multi_purpose_dungeons[i]) single_entrance_dungeon_entrances.append(multi_purpose_dungeon_entrances[i]) - multiworld.random.shuffle(placed_connecting_interior_dungeons) + world.random.shuffle(placed_connecting_interior_dungeons) while placed_connecting_interior_dungeons[0] in unsafe_connecting_interior_dungeons: - multiworld.random.shuffle(placed_connecting_interior_dungeons) + world.random.shuffle(placed_connecting_interior_dungeons) connect_connecting_interiors(placed_connecting_interior_dungeons, interior_dungeon_entrances) interiors = connecting_interiors.copy() - multiworld.random.shuffle(interiors) + world.random.shuffle(interiors) while ((connecting_interiors[2] in (interiors[2], interiors[10], interiors[11]) # Dept Store at Dept Store # or Rt 16 Gate S or N and (interiors[11] in connecting_interiors[13:17] # Saffron Gate at Rt 16 Gate S or interiors[12] in connecting_interiors[13:17])) # Saffron Gate at Rt 18 Gate and interiors[15] in connecting_interiors[13:17] # Saffron Gate at Rt 7 Gate and interiors[1] in connecting_interiors[13:17] # Saffron Gate at Rt 7-8 Underground Path - and (not multiworld.tea[player]) and multiworld.worlds[player].fly_map != "Celadon City" - and multiworld.worlds[player].town_map_fly_map != "Celadon City"): - multiworld.random.shuffle(interiors) + and (not world.options.tea) and world.fly_map != "Celadon City" + and world.town_map_fly_map != "Celadon City"): + world.random.shuffle(interiors) connect_connecting_interiors(interiors, connecting_interior_entrances) placed_gyms = gyms.copy() - multiworld.random.shuffle(placed_gyms) + world.random.shuffle(placed_gyms) # Celadon Gym requires Cut access to reach the Gym Leader. There are some scenarios where its placement # could make badge placement impossible def celadon_gym_problem(): # Badgesanity or no badges needed for HM moves means gyms can go anywhere - if multiworld.badgesanity[player] or not multiworld.badges_needed_for_hm_moves[player]: + if world.options.badgesanity or not world.options.badges_needed_for_hm_moves: return False # Celadon Gym in Pewter City and need one or more badges for Viridian City gym. # No gym leaders would be reachable. - if gyms[3] == placed_gyms[0] and multiworld.viridian_gym_condition[player] > 0: + if gyms[3] == placed_gyms[0] and world.options.viridian_gym_condition > 0: return True # Celadon Gym not on Cinnabar Island or can access Viridian City gym with one badge - if not gyms[3] == placed_gyms[6] and multiworld.viridian_gym_condition[player] > 1: + if not gyms[3] == placed_gyms[6] and world.options.viridian_gym_condition > 1: return False # At this point we need to see if we can get beyond Pewter/Cinnabar with just one badge # Can get Fly access from Pewter City gym and fly beyond Pewter/Cinnabar - if multiworld.worlds[player].fly_map not in ("Pallet Town", "Viridian City", "Cinnabar Island", - "Indigo Plateau") and multiworld.worlds[player].town_map_fly_map not in ("Pallet Town", + if world.fly_map not in ("Pallet Town", "Viridian City", "Cinnabar Island", + "Indigo Plateau") and world.town_map_fly_map not in ("Pallet Town", "Viridian City", "Cinnabar Island", "Indigo Plateau"): return False # Route 3 condition is boulder badge but Mt Moon entrance leads to safe dungeons or Rock Tunnel - if multiworld.route_3_condition[player] == "boulder_badge" and placed_connecting_interior_dungeons[2] not \ + if world.options.route_3_condition == "boulder_badge" and placed_connecting_interior_dungeons[2] not \ in (unsafe_connecting_interior_dungeons[0], unsafe_connecting_interior_dungeons[2]): return False # Route 3 condition is Defeat Brock and he is in Pewter City, or any other condition besides Boulder Badge. # Any badge can land in Pewter City, so the only problematic dungeon at Mt Moon is Seafoam Islands since # it requires two badges - if (((multiworld.route_3_condition[player] == "defeat_brock" and gyms[0] == placed_gyms[0]) - or multiworld.route_3_condition[player] not in ("defeat_brock", "boulder_badge")) + if (((world.options.route_3_condition == "defeat_brock" and gyms[0] == placed_gyms[0]) + or world.options.route_3_condition not in ("defeat_brock", "boulder_badge")) and placed_connecting_interior_dungeons[2] != unsafe_connecting_interior_dungeons[0]): return False @@ -2305,31 +2312,31 @@ def cerulean_city_problem(): and interiors[0] in connecting_interiors[13:17] # Saffron Gate at Underground Path North South and interiors[13] in connecting_interiors[13:17] # Saffron Gate at Route 5 Saffron Gate and multi_purpose_dungeons[0] == placed_connecting_interior_dungeons[4] # PokÊmon Mansion at Rock Tunnel, which is - and (not multiworld.tea[player]) # not traversable backwards - and multiworld.route_3_condition[player] == "defeat_brock" - and multiworld.worlds[player].fly_map != "Cerulean City" - and multiworld.worlds[player].town_map_fly_map != "Cerulean City"): + and (not world.options.tea) # not traversable backwards + and world.options.route_3_condition == "defeat_brock" + and world.fly_map != "Cerulean City" + and world.town_map_fly_map != "Cerulean City"): return True while celadon_gym_problem() or cerulean_city_problem(): - multiworld.random.shuffle(placed_gyms) + world.random.shuffle(placed_gyms) connect_interiors(placed_gyms, gym_entrances) - multiworld.random.shuffle(placed_single_entrance_dungeons) + world.random.shuffle(placed_single_entrance_dungeons) while dungeons[4] == placed_single_entrance_dungeons[0]: # PokÊmon Tower at Silph Co - multiworld.random.shuffle(placed_single_entrance_dungeons) + world.random.shuffle(placed_single_entrance_dungeons) connect_interiors(placed_single_entrance_dungeons, single_entrance_dungeon_entrances) remaining_entrances = [entrance for entrance in entrances if outdoor_map(entrance.parent_region.name)] - multiworld.random.shuffle(remaining_entrances) + world.random.shuffle(remaining_entrances) remaining_interiors = [entrance for entrance in entrances if entrance not in remaining_entrances] for entrance_a, entrance_b in zip(remaining_entrances, remaining_interiors): entrance_a.connect(entrance_b) entrance_b.connect(entrance_a) - elif multiworld.door_shuffle[player]: - if multiworld.door_shuffle[player] == "full": - multiworld.random.shuffle(full_interiors) + elif world.options.door_shuffle: + if world.options.door_shuffle == "full": + world.random.shuffle(full_interiors) def search_for_exit(entrance, region, checked_regions): checked_regions.add(region) @@ -2344,6 +2351,7 @@ def search_for_exit(entrance, region, checked_regions): return found_exit return None + e = multiworld.get_entrance("Underground Path Route 5 to Underground Path North South", player) while True: for entrance_a in full_interiors: if search_for_exit(entrance_a, entrance_a.parent_region, set()) is None: @@ -2363,7 +2371,7 @@ def search_for_exit(entrance, region, checked_regions): break loop_out_interiors = [] - multiworld.random.shuffle(entrances) + world.random.shuffle(entrances) for entrance in reversed(entrances): if not outdoor_map(entrance.parent_region.name): found_exit = search_for_exit(entrance, entrance.parent_region, set()) @@ -2380,26 +2388,26 @@ def search_for_exit(entrance, region, checked_regions): entrance_a.connect(entrance_b) entrance_b.connect(entrance_a) - elif multiworld.door_shuffle[player] == "interiors": + elif world.options.door_shuffle == "interiors": loop_out_interiors = [[multiworld.get_entrance(e[0], player), multiworld.get_entrance(e[1], player)] for e - in multiworld.random.sample(unsafe_connecting_interior_dungeons - + safe_connecting_interior_dungeons, 2)] + in world.random.sample(unsafe_connecting_interior_dungeons + + safe_connecting_interior_dungeons, 2)] entrances.remove(loop_out_interiors[0][1]) entrances.remove(loop_out_interiors[1][1]) - if not multiworld.badgesanity[player]: - multiworld.random.shuffle(badges) - while badges[3].name == "Cascade Badge" and multiworld.badges_needed_for_hm_moves[player]: - multiworld.random.shuffle(badges) + if not world.options.badgesanity: + world.random.shuffle(badges) + while badges[3].name == "Cascade Badge" and world.options.badges_needed_for_hm_moves: + world.random.shuffle(badges) for badge, loc in zip(badges, badge_locs): loc.place_locked_item(badge) state = multiworld.state.copy() for item, data in item_table.items(): if (data.id or item in poke_data.pokemon_data) and data.classification == ItemClassification.progression \ - and ("Badge" not in item or multiworld.badgesanity[player]): + and ("Badge" not in item or world.options.badgesanity): state.collect(world.create_item(item)) - multiworld.random.shuffle(entrances) + world.random.shuffle(entrances) reachable_entrances = [] relevant_events = [ @@ -2415,13 +2423,13 @@ def search_for_exit(entrance, region, checked_regions): "Victory Road Boulder", "Silph Co Liberated", ] - if multiworld.robbed_house_officer[player]: + if world.options.robbed_house_officer: relevant_events.append("Help Bill") - if multiworld.tea[player]: + if world.options.tea: relevant_events.append("Vending Machine Drinks") - if multiworld.route_3_condition[player] == "defeat_brock": + if world.options.route_3_condition == "defeat_brock": relevant_events.append("Defeat Brock") - elif multiworld.route_3_condition[player] == "defeat_any_gym": + elif world.options.route_3_condition == "defeat_any_gym": relevant_events += [ "Defeat Brock", "Defeat Misty", @@ -2447,7 +2455,7 @@ def adds_reachable_entrances(item): def dead_end(e): if e.can_reach(state): return True - elif multiworld.door_shuffle[player] == "decoupled": + elif world.options.door_shuffle == "decoupled": # Any unreachable exit in decoupled is not a dead end return False region = e.parent_region @@ -2482,10 +2490,10 @@ def dead_end(e): state.update_reachable_regions(player) state.sweep_for_advancements(locations=event_locations) - multiworld.random.shuffle(entrances) + world.random.shuffle(entrances) - if multiworld.door_shuffle[player] == "decoupled": - multiworld.random.shuffle(dc_destinations) + if world.options.door_shuffle == "decoupled": + world.random.shuffle(dc_destinations) else: entrances.sort(key=lambda e: e.name not in entrance_only) @@ -2502,15 +2510,15 @@ def dead_end(e): is_outdoor_map = outdoor_map(entrance_a.parent_region.name) - if multiworld.door_shuffle[player] in ("interiors", "full") or len(entrances) != len(reachable_entrances): + if world.options.door_shuffle in ("interiors", "full") or len(entrances) != len(reachable_entrances): find_dead_end = False if (len(reachable_entrances) > - (1 if multiworld.door_shuffle[player] in ("insanity", "decoupled") else 8) and len(entrances) + (1 if world.options.door_shuffle in ("insanity", "decoupled") else 8) and len(entrances) <= (starting_entrances - 3)): find_dead_end = True - if (multiworld.door_shuffle[player] in ("interiors", "full") and len(entrances) < 48 + if (world.options.door_shuffle in ("interiors", "full") and len(entrances) < 48 and not is_outdoor_map): # Try to prevent a situation where the only remaining outdoor entrances are ones that cannot be # reached except by connecting directly to it. @@ -2519,9 +2527,9 @@ def dead_end(e): in reachable_entrances if not outdoor_map(entrance.parent_region.name)]) > 1: find_dead_end = True - if multiworld.door_shuffle[player] == "decoupled": + if world.options.door_shuffle == "decoupled": destinations = dc_destinations - elif multiworld.door_shuffle[player] in ("interiors", "full"): + elif world.options.door_shuffle in ("interiors", "full"): destinations = [entrance for entrance in entrances if outdoor_map(entrance.parent_region.name) is not is_outdoor_map] if not destinations: @@ -2531,7 +2539,7 @@ def dead_end(e): destinations.sort(key=lambda e: e == entrance_a) for entrance in destinations: - if (dead_end(entrance) is find_dead_end and (multiworld.door_shuffle[player] != "decoupled" + if (dead_end(entrance) is find_dead_end and (world.options.door_shuffle != "decoupled" or entrance.parent_region.name.split("-")[0] != entrance_a.parent_region.name.split("-")[0])): entrance_b = entrance @@ -2540,28 +2548,28 @@ def dead_end(e): else: entrance_b = destinations.pop(0) - if multiworld.door_shuffle[player] in ("interiors", "full"): + if world.options.door_shuffle in ("interiors", "full"): # on Interiors/Full, the destinations variable does not point to the entrances list, so we need to # remove from that list here. entrances.remove(entrance_b) else: # Everything is reachable. Just start connecting the rest of the doors at random. - if multiworld.door_shuffle[player] == "decoupled": + if world.options.door_shuffle == "decoupled": entrance_b = dc_destinations.pop(0) else: entrance_b = entrances.pop(0) entrance_a.connect(entrance_b) - if multiworld.door_shuffle[player] != "decoupled": + if world.options.door_shuffle != "decoupled": entrance_b.connect(entrance_a) - if multiworld.door_shuffle[player] in ("interiors", "full"): + if world.options.door_shuffle in ("interiors", "full"): for pair in loop_out_interiors: pair[1].connected_region = pair[0].connected_region pair[1].parent_region.entrances.append(pair[0]) pair[1].target = pair[0].target - if multiworld.door_shuffle[player]: + if world.options.door_shuffle: for region in multiworld.get_regions(player): checked_regions = {region} @@ -2585,10 +2593,10 @@ def check_region(region_to_check): region.entrance_hint = check_region(region) -def connect(world: MultiWorld, player: int, source: str, target: str, rule: callable = lambda state: True, +def connect(multiworld: MultiWorld, player: int, source: str, target: str, rule: callable = lambda state: True, one_way=False, name=None): - source_region = world.get_region(source, player) - target_region = world.get_region(target, player) + source_region = multiworld.get_region(source, player) + target_region = multiworld.get_region(target, player) if name is None: name = source + " to " + target @@ -2604,7 +2612,7 @@ def connect(world: MultiWorld, player: int, source: str, target: str, rule: call source_region.exits.append(connection) connection.connect(target_region) if not one_way: - connect(world, player, target, source, rule, True) + connect(multiworld, player, target, source, rule, True) class PokemonRBWarp(Entrance): @@ -2621,7 +2629,7 @@ def access_rule(self, state): if self.connected_region is None: return False if "Elevator" in self.parent_region.name and ( - (state.multiworld.all_elevators_locked[self.player] + (state.multiworld.worlds[self.player].options.all_elevators_locked or "Rocket Hideout" in self.parent_region.name) and not state.has("Lift Key", self.player)): return False diff --git a/worlds/pokemon_rb/rom.py b/worlds/pokemon_rb/rom.py index b6c1221a29f4..5ebd204c9abc 100644 --- a/worlds/pokemon_rb/rom.py +++ b/worlds/pokemon_rb/rom.py @@ -13,22 +13,22 @@ from . import poke_data -def write_quizzes(self, data, random): +def write_quizzes(world, data, random): def get_quiz(q, a): if q == 0: r = random.randint(0, 3) if r == 0: - mon = self.trade_mons["Trade_Dux"] + mon = world.trade_mons["Trade_Dux"] text = "A woman inVermilion City" elif r == 1: - mon = self.trade_mons["Trade_Lola"] + mon = world.trade_mons["Trade_Lola"] text = "A man inCerulean City" elif r == 2: - mon = self.trade_mons["Trade_Marcel"] + mon = world.trade_mons["Trade_Marcel"] text = "Someone on Route 2" elif r == 3: - mon = self.trade_mons["Trade_Spot"] + mon = world.trade_mons["Trade_Spot"] text = "Someone on Route 5" if not a: answers.append(0) @@ -38,21 +38,30 @@ def get_quiz(q, a): return encode_text(f"{text}was looking for{mon}?") elif q == 1: - for location in self.multiworld.get_filled_locations(): - if location.item.name == "Secret Key" and location.item.player == self.player: + for location in world.multiworld.get_filled_locations(): + if location.item.name == "Secret Key" and location.item.player == world.player: break - player_name = self.multiworld.player_name[location.player] + player_name = world.multiworld.player_name[location.player] if not a: - if len(self.multiworld.player_name) > 1: + if len(world.multiworld.player_name) > 1: old_name = player_name while old_name == player_name: - player_name = random.choice(list(self.multiworld.player_name.values())) + player_name = random.choice(list(world.multiworld.player_name.values())) else: return encode_text("You're playingin a multiworldwith otherplayers?") - if player_name == self.multiworld.player_name[self.player]: - player_name = "yourself" - player_name = encode_text(player_name, force=True, safety=True) - return encode_text(f"The Secret Key wasfound by") + player_name + encode_text("") + if world.multiworld.get_entrance( + "Cinnabar Island-G to Cinnabar Gym", world.player).connected_region.name == "Cinnabar Gym": + if player_name == world.multiworld.player_name[world.player]: + player_name = "yourself" + player_name = encode_text(player_name, force=True, safety=True) + return encode_text(f"The Secret Key wasfound by") + player_name + encode_text("?") + else: + # Might not have found it yet + if player_name == world.multiworld.player_name[world.player]: + return encode_text(f"The Secret Key wasplaced inyour own world?") + player_name = encode_text(player_name, force=True, safety=True) + return (encode_text(f"The Secret Key wasplaced in") + player_name + + encode_text("'sworld?")) elif q == 2: if a: return encode_text(f"#mon ispronouncedPo-kay-mon?") @@ -62,8 +71,8 @@ def get_quiz(q, a): else: return encode_text(f"#mon ispronouncedPo-kuh-mon?") elif q == 3: - starters = [" ".join(self.multiworld.get_location( - f"Oak's Lab - Starter {i}", self.player).item.name.split(" ")[1:]) for i in range(1, 4)] + starters = [" ".join(world.multiworld.get_location( + f"Oak's Lab - Starter {i}", world.player).item.name.split(" ")[1:]) for i in range(1, 4)] mon = random.choice(starters) nots = random.choice(range(8, 16, 2)) if random.randint(0, 1): @@ -82,10 +91,10 @@ def get_quiz(q, a): return encode_text(text) elif q == 4: if a: - tm_text = self.local_tms[27] + tm_text = world.local_tms[27] else: - if self.multiworld.randomize_tm_moves[self.player]: - wrong_tms = self.local_tms.copy() + if world.options.randomize_tm_moves: + wrong_tms = world.local_tms.copy() wrong_tms.pop(27) tm_text = random.choice(wrong_tms) else: @@ -102,12 +111,36 @@ def get_quiz(q, a): i = random.randint(0, random.choice([9, 99])) return encode_text(f"POLIWAG evolves {i}times?") elif q == 7: - entity = "Motor Carrier" - if not a: - entity = random.choice(["Driver", "Shipper"]) - return encode_text("Title 49 of theU.S. Code ofFederalRegulations part397.67 states" - f"that the{entity}is responsiblefor planningroutes when" - "hazardousmaterials aretransported?") + q2 = random.randint(0, 2) + if q2 == 0: + entity = "Motor Carrier" + if not a: + entity = random.choice(["Driver", "Shipper"]) + return encode_text("Title 49 of theU.S. Code ofFederalRegulations part397.67 " + f"statesthat the{entity}is responsiblefor planning" + "routes whenhazardousmaterials aretransported?") + elif q2 == 1: + if a: + state = random.choice( + ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', + 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', + 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', + 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Jersey', 'New Mexico', + 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', + 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', + 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming']) + else: + state = "New Hampshire" + return encode_text( + f"As of 2024,{state}has a lawrequiring allfront seat vehicleoccupants to useseatbelts?") + elif q2 == 2: + if a: + country = random.choice(["The United States", "Mexico", "Canada", "Germany", "France", "China", + "Russia", "Spain", "Brazil", "Ukraine", "Saudi Arabia", "Egypt"]) + else: + country = random.choice(["The U.K.", "Pakistan", "India", "Japan", "Australia", + "New Zealand", "Thailand"]) + return encode_text(f"As of 2020,drivers in{country}drive on theright side ofthe road?") elif q == 8: mon = random.choice(list(poke_data.evolution_levels.keys())) level = poke_data.evolution_levels[mon] @@ -115,17 +148,17 @@ def get_quiz(q, a): level += random.choice(range(1, 6)) * random.choice((-1, 1)) return encode_text(f"{mon} evolvesat level {level}?") elif q == 9: - move = random.choice(list(self.local_move_data.keys())) - actual_type = self.local_move_data[move]["type"] + move = random.choice(list(world.local_move_data.keys())) + actual_type = world.local_move_data[move]["type"] question_type = actual_type while question_type == actual_type and not a: question_type = random.choice(list(poke_data.type_ids.keys())) return encode_text(f"{move} is{question_type} type?") elif q == 10: mon = random.choice(list(poke_data.pokemon_data.keys())) - actual_type = self.local_poke_data[mon][random.choice(("type1", "type2"))] + actual_type = world.local_poke_data[mon][random.choice(("type1", "type2"))] question_type = actual_type - while question_type in [self.local_poke_data[mon]["type1"], self.local_poke_data[mon]["type2"]] and not a: + while question_type in [world.local_poke_data[mon]["type1"], world.local_poke_data[mon]["type2"]] and not a: question_type = random.choice(list(poke_data.type_ids.keys())) return encode_text(f"{mon} is{question_type} type?") elif q == 11: @@ -147,8 +180,8 @@ def get_quiz(q, a): return encode_text(f"{equation}= {question_result}?") elif q == 12: route = random.choice((12, 16)) - actual_mon = self.multiworld.get_location(f"Route {route} - Sleeping Pokemon", - self.player).item.name.split("Static ")[1] + actual_mon = world.multiworld.get_location(f"Route {route} - Sleeping Pokemon", + world.player).item.name.split("Static ")[1] question_mon = actual_mon while question_mon == actual_mon and not a: question_mon = random.choice(list(poke_data.pokemon_data.keys())) @@ -157,7 +190,7 @@ def get_quiz(q, a): type1 = random.choice(list(poke_data.type_ids.keys())) type2 = random.choice(list(poke_data.type_ids.keys())) eff_msgs = ["super effective", "no ", "not veryeffective", "normal "] - for matchup in self.type_chart: + for matchup in world.type_chart: if matchup[0] == type1 and matchup[1] == type2: if matchup[2] > 10: eff = eff_msgs[0] @@ -175,15 +208,25 @@ def get_quiz(q, a): eff = random.choice(eff_msgs) return encode_text(f"{type1} deals{eff}damage to{type2} type?") elif q == 14: - fossil_level = self.multiworld.get_location("Fossil Level - Trainer Parties", - self.player).party_data[0]['level'] + fossil_level = world.multiworld.get_location("Fossil Level - Trainer Parties", + world.player).party_data[0]['level'] if not a: fossil_level += random.choice((-5, 5)) return encode_text(f"Fossil #MONrevive at level{fossil_level}?") + elif q == 15: + if a: + fodmap = random.choice(["garlic", "onion", "milk", "watermelon", "cherries", "wheat", "barley", + "pistachios", "cashews", "kidney beans", "apples", "honey"]) + else: + fodmap = random.choice(["carrots", "potatoes", "oranges", "pineapple", "blueberries", "parmesan", + "eggs", "beef", "chicken", "oat", "rice", "maple syrup", "peanuts"]) + are_is = "are" if fodmap[-1] == "s" else "is" + return encode_text(f"According toMonash Uni.,{fodmap} {are_is}considered highin FODMAPs?") answers = [random.randint(0, 1) for _ in range(6)] - questions = random.sample((range(0, 15)), 6) + questions = random.sample((range(0, 16)), 6) + question_texts = [] for i, question in enumerate(questions): question_texts.append(get_quiz(question, answers[i])) @@ -193,9 +236,9 @@ def get_quiz(q, a): write_bytes(data, question_texts[i], rom_addresses[f"Text_Quiz_{quiz}"]) -def generate_output(self, output_directory: str): - random = self.multiworld.per_slot_randoms[self.player] - game_version = self.multiworld.game_version[self.player].current_key +def generate_output(world, output_directory: str): + random = world.random + game_version = world.options.game_version.current_key data = bytes(get_base_rom_bytes(game_version)) base_patch = pkgutil.get_data(__name__, f'basepatch_{game_version}.bsdiff4') @@ -205,8 +248,8 @@ def generate_output(self, output_directory: str): basemd5 = hashlib.md5() basemd5.update(data) - pallet_connections = {entrance: self.multiworld.get_entrance(f"Pallet Town to {entrance}", - self.player).connected_region.name for + pallet_connections = {entrance: world.multiworld.get_entrance(f"Pallet Town to {entrance}", + world.player).connected_region.name for entrance in ["Player's House 1F", "Oak's Lab", "Rival's House"]} paths = None @@ -222,11 +265,11 @@ def generate_output(self, output_directory: str): elif pallet_connections["Oak's Lab"] == "Player's House 1F": write_bytes(data, [0x5F, 0xC7, 0x0C, 0x0C, 0x00, 0x00], rom_addresses["Pallet_Fly_Coords"]) - for region in self.multiworld.get_regions(self.player): + for region in world.multiworld.get_regions(world.player): for entrance in region.exits: if isinstance(entrance, PokemonRBWarp): - self.multiworld.spoiler.set_entrance(entrance.name, entrance.connected_region.name, "entrance", - self.player) + world.multiworld.spoiler.set_entrance(entrance.name, entrance.connected_region.name, "entrance", + world.player) warp_ids = (entrance.warp_id,) if isinstance(entrance.warp_id, int) else entrance.warp_id warp_to_ids = (entrance.target,) if isinstance(entrance.target, int) else entrance.target for i, warp_id in enumerate(warp_ids): @@ -241,32 +284,32 @@ def generate_output(self, output_directory: str): data[address] = 0 if "Elevator" in connected_map_name else warp_to_ids[i] data[address + 1] = map_ids[connected_map_name] - if self.multiworld.door_shuffle[self.player] == "simple": + if world.options.door_shuffle == "simple": for (entrance, _, _, map_coords_entries, map_name, _) in town_map_coords.values(): - destination = self.multiworld.get_entrance(entrance, self.player).connected_region.name + destination = world.multiworld.get_entrance(entrance, world.player).connected_region.name (_, x, y, _, _, map_order_entry) = town_map_coords[destination] for map_coord_entry in map_coords_entries: data[rom_addresses["Town_Map_Coords"] + (map_coord_entry * 4) + 1] = (y << 4) | x data[rom_addresses["Town_Map_Order"] + map_order_entry] = map_ids[map_name] - if not self.multiworld.key_items_only[self.player]: + if not world.options.key_items_only: for i, gym_leader in enumerate(("Pewter Gym - Brock TM", "Cerulean Gym - Misty TM", "Vermilion Gym - Lt. Surge TM", "Celadon Gym - Erika TM", "Fuchsia Gym - Koga TM", "Saffron Gym - Sabrina TM", "Cinnabar Gym - Blaine TM", "Viridian Gym - Giovanni TM")): - item_name = self.multiworld.get_location(gym_leader, self.player).item.name + item_name = world.multiworld.get_location(gym_leader, world.player).item.name if item_name.startswith("TM"): try: tm = int(item_name[2:4]) - move = poke_data.moves[self.local_tms[tm - 1]]["id"] + move = poke_data.moves[world.local_tms[tm - 1]]["id"] data[rom_addresses["Gym_Leader_Moves"] + (2 * i)] = move except KeyError: pass def set_trade_mon(address, loc): - mon = self.multiworld.get_location(loc, self.player).item.name + mon = world.multiworld.get_location(loc, world.player).item.name data[rom_addresses[address]] = poke_data.pokemon_data[mon]["id"] - self.trade_mons[address] = mon + world.trade_mons[address] = mon if game_version == "red": set_trade_mon("Trade_Terry", "Safari Zone Center - Wild Pokemon - 5") @@ -282,10 +325,10 @@ def set_trade_mon(address, loc): set_trade_mon("Trade_Doris", "Cerulean Cave 1F - Wild Pokemon - 9") set_trade_mon("Trade_Crinkles", "Route 12 - Wild Pokemon - 4") - data[rom_addresses['Fly_Location']] = self.fly_map_code - data[rom_addresses['Map_Fly_Location']] = self.town_map_fly_map_code + data[rom_addresses['Fly_Location']] = world.fly_map_code + data[rom_addresses['Map_Fly_Location']] = world.town_map_fly_map_code - if self.multiworld.fix_combat_bugs[self.player]: + if world.options.fix_combat_bugs: data[rom_addresses["Option_Fix_Combat_Bugs"]] = 1 data[rom_addresses["Option_Fix_Combat_Bugs_Focus_Energy"]] = 0x28 # jr z data[rom_addresses["Option_Fix_Combat_Bugs_HP_Drain_Dream_Eater"]] = 0x1A # ld a, (de) @@ -298,25 +341,25 @@ def set_trade_mon(address, loc): data[rom_addresses["Option_Fix_Combat_Bugs_Heal_Effect"] + 1] = 5 # 5 bytes ahead data[rom_addresses["Option_Fix_Combat_Bugs_Heal_Stat_Modifiers"]] = 1 - if self.multiworld.poke_doll_skip[self.player] == "in_logic": + if world.options.poke_doll_skip == "in_logic": data[rom_addresses["Option_Silph_Scope_Skip"]] = 0x00 # nop data[rom_addresses["Option_Silph_Scope_Skip"] + 1] = 0x00 # nop data[rom_addresses["Option_Silph_Scope_Skip"] + 2] = 0x00 # nop - if self.multiworld.bicycle_gate_skips[self.player] == "patched": + if world.options.bicycle_gate_skips == "patched": data[rom_addresses["Option_Route_16_Gate_Fix"]] = 0x00 # nop data[rom_addresses["Option_Route_16_Gate_Fix"] + 1] = 0x00 # nop data[rom_addresses["Option_Route_18_Gate_Fix"]] = 0x00 # nop data[rom_addresses["Option_Route_18_Gate_Fix"] + 1] = 0x00 # nop - if self.multiworld.door_shuffle[self.player]: + if world.options.door_shuffle: data[rom_addresses["Entrance_Shuffle_Fuji_Warp"]] = 1 # prevent warping to Fuji's House from Pokemon Tower 7F - if self.multiworld.all_elevators_locked[self.player]: + if world.options.all_elevators_locked: data[rom_addresses["Option_Locked_Elevator_Celadon"]] = 0x20 # jr nz data[rom_addresses["Option_Locked_Elevator_Silph"]] = 0x20 # jr nz - if self.multiworld.tea[self.player].value: + if world.options.tea: data[rom_addresses["Option_Tea"]] = 1 data[rom_addresses["Guard_Drink_List"]] = 0x54 data[rom_addresses["Guard_Drink_List"] + 1] = 0 @@ -325,90 +368,94 @@ def set_trade_mon(address, loc): "Oh wait there,the road's closed."), rom_addresses["Text_Saffron_Gate"]) + data[rom_addresses["Tea_Key_Item_A"]] = 0x28 # jr .z + data[rom_addresses["Tea_Key_Item_B"]] = 0x28 # jr .z + data[rom_addresses["Tea_Key_Item_C"]] = 0x28 # jr .z + data[rom_addresses["Fossils_Needed_For_Second_Item"]] = ( - self.multiworld.second_fossil_check_condition[self.player].value) + world.options.second_fossil_check_condition.value) - data[rom_addresses["Option_Lose_Money"]] = int(not self.multiworld.lose_money_on_blackout[self.player].value) + data[rom_addresses["Option_Lose_Money"]] = int(not world.options.lose_money_on_blackout.value) - if self.multiworld.extra_key_items[self.player]: + if world.options.extra_key_items: data[rom_addresses['Option_Extra_Key_Items_A']] = 1 data[rom_addresses['Option_Extra_Key_Items_B']] = 1 data[rom_addresses['Option_Extra_Key_Items_C']] = 1 data[rom_addresses['Option_Extra_Key_Items_D']] = 1 - data[rom_addresses["Option_Split_Card_Key"]] = self.multiworld.split_card_key[self.player].value - data[rom_addresses["Option_Blind_Trainers"]] = round(self.multiworld.blind_trainers[self.player].value * 2.55) - data[rom_addresses["Option_Cerulean_Cave_Badges"]] = self.multiworld.cerulean_cave_badges_condition[self.player].value - data[rom_addresses["Option_Cerulean_Cave_Key_Items"]] = self.multiworld.cerulean_cave_key_items_condition[self.player].total - write_bytes(data, encode_text(str(self.multiworld.cerulean_cave_badges_condition[self.player].value)), rom_addresses["Text_Cerulean_Cave_Badges"]) - write_bytes(data, encode_text(str(self.multiworld.cerulean_cave_key_items_condition[self.player].total) + " key items."), rom_addresses["Text_Cerulean_Cave_Key_Items"]) - data[rom_addresses['Option_Encounter_Minimum_Steps']] = self.multiworld.minimum_steps_between_encounters[self.player].value - data[rom_addresses['Option_Route23_Badges']] = self.multiworld.victory_road_condition[self.player].value - data[rom_addresses['Option_Victory_Road_Badges']] = self.multiworld.route_22_gate_condition[self.player].value - data[rom_addresses['Option_Elite_Four_Pokedex']] = self.multiworld.elite_four_pokedex_condition[self.player].total - data[rom_addresses['Option_Elite_Four_Key_Items']] = self.multiworld.elite_four_key_items_condition[self.player].total - data[rom_addresses['Option_Elite_Four_Badges']] = self.multiworld.elite_four_badges_condition[self.player].value - write_bytes(data, encode_text(str(self.multiworld.elite_four_badges_condition[self.player].value)), rom_addresses["Text_Elite_Four_Badges"]) - write_bytes(data, encode_text(str(self.multiworld.elite_four_key_items_condition[self.player].total) + " key items, and"), rom_addresses["Text_Elite_Four_Key_Items"]) - write_bytes(data, encode_text(str(self.multiworld.elite_four_pokedex_condition[self.player].total) + " #MON"), rom_addresses["Text_Elite_Four_Pokedex"]) - write_bytes(data, encode_text(str(self.total_key_items), length=2), rom_addresses["Trainer_Screen_Total_Key_Items"]) - - data[rom_addresses['Option_Viridian_Gym_Badges']] = self.multiworld.viridian_gym_condition[self.player].value - data[rom_addresses['Option_EXP_Modifier']] = self.multiworld.exp_modifier[self.player].value - if not self.multiworld.require_item_finder[self.player]: + data[rom_addresses["Option_Split_Card_Key"]] = world.options.split_card_key.value + data[rom_addresses["Option_Blind_Trainers"]] = round(world.options.blind_trainers.value * 2.55) + data[rom_addresses["Option_Cerulean_Cave_Badges"]] = world.options.cerulean_cave_badges_condition.value + data[rom_addresses["Option_Cerulean_Cave_Key_Items"]] = world.options.cerulean_cave_key_items_condition.total + write_bytes(data, encode_text(str(world.options.cerulean_cave_badges_condition.value)), rom_addresses["Text_Cerulean_Cave_Badges"]) + write_bytes(data, encode_text(str(world.options.cerulean_cave_key_items_condition.total) + " key items."), rom_addresses["Text_Cerulean_Cave_Key_Items"]) + data[rom_addresses['Option_Encounter_Minimum_Steps']] = world.options.minimum_steps_between_encounters.value + data[rom_addresses['Option_Route23_Badges']] = world.options.victory_road_condition.value + data[rom_addresses['Option_Victory_Road_Badges']] = world.options.route_22_gate_condition.value + data[rom_addresses['Option_Elite_Four_Pokedex']] = world.options.elite_four_pokedex_condition.total + data[rom_addresses['Option_Elite_Four_Key_Items']] = world.options.elite_four_key_items_condition.total + data[rom_addresses['Option_Elite_Four_Badges']] = world.options.elite_four_badges_condition.value + write_bytes(data, encode_text(str(world.options.elite_four_badges_condition.value)), rom_addresses["Text_Elite_Four_Badges"]) + write_bytes(data, encode_text(str(world.options.elite_four_key_items_condition.total) + " key items, and"), rom_addresses["Text_Elite_Four_Key_Items"]) + write_bytes(data, encode_text(str(world.options.elite_four_pokedex_condition.total) + " #MON"), rom_addresses["Text_Elite_Four_Pokedex"]) + write_bytes(data, encode_text(str(world.total_key_items), length=2), rom_addresses["Trainer_Screen_Total_Key_Items"]) + + data[rom_addresses['Option_Viridian_Gym_Badges']] = world.options.viridian_gym_condition.value + data[rom_addresses['Option_EXP_Modifier']] = world.options.exp_modifier.value + if not world.options.require_item_finder: data[rom_addresses['Option_Itemfinder']] = 0 # nop - if self.multiworld.extra_strength_boulders[self.player]: + if world.options.extra_strength_boulders: for i in range(0, 3): data[rom_addresses['Option_Boulders'] + (i * 3)] = 0x15 - if self.multiworld.extra_key_items[self.player]: + if world.options.extra_key_items: for i in range(0, 4): data[rom_addresses['Option_Rock_Tunnel_Extra_Items'] + (i * 3)] = 0x15 - if self.multiworld.old_man[self.player] == "open_viridian_city": + if world.options.old_man == "open_viridian_city": data[rom_addresses['Option_Old_Man']] = 0x11 data[rom_addresses['Option_Old_Man_Lying']] = 0x15 - data[rom_addresses['Option_Route3_Guard_B']] = self.multiworld.route_3_condition[self.player].value - if self.multiworld.route_3_condition[self.player] == "open": + data[rom_addresses['Option_Route3_Guard_B']] = world.options.route_3_condition.value + if world.options.route_3_condition == "open": data[rom_addresses['Option_Route3_Guard_A']] = 0x11 - if not self.multiworld.robbed_house_officer[self.player]: + if not world.options.robbed_house_officer: data[rom_addresses['Option_Trashed_House_Guard_A']] = 0x15 data[rom_addresses['Option_Trashed_House_Guard_B']] = 0x11 - if self.multiworld.require_pokedex[self.player]: + if world.options.require_pokedex: data[rom_addresses["Require_Pokedex_A"]] = 1 data[rom_addresses["Require_Pokedex_B"]] = 1 data[rom_addresses["Require_Pokedex_C"]] = 1 else: data[rom_addresses["Require_Pokedex_D"]] = 0x18 # jr - if self.multiworld.dexsanity[self.player]: + if world.options.dexsanity: data[rom_addresses["Option_Dexsanity_A"]] = 1 data[rom_addresses["Option_Dexsanity_B"]] = 1 - if self.multiworld.all_pokemon_seen[self.player]: + if world.options.all_pokemon_seen: data[rom_addresses["Option_Pokedex_Seen"]] = 1 - money = str(self.multiworld.starting_money[self.player].value).zfill(6) + money = str(world.options.starting_money.value).zfill(6) data[rom_addresses["Starting_Money_High"]] = int(money[:2], 16) data[rom_addresses["Starting_Money_Middle"]] = int(money[2:4], 16) data[rom_addresses["Starting_Money_Low"]] = int(money[4:], 16) data[rom_addresses["Text_Badges_Needed_Viridian_Gym"]] = encode_text( - str(self.multiworld.viridian_gym_condition[self.player].value))[0] + str(world.options.viridian_gym_condition.value))[0] data[rom_addresses["Text_Rt23_Badges_A"]] = encode_text( - str(self.multiworld.victory_road_condition[self.player].value))[0] + str(world.options.victory_road_condition.value))[0] data[rom_addresses["Text_Rt23_Badges_B"]] = encode_text( - str(self.multiworld.victory_road_condition[self.player].value))[0] + str(world.options.victory_road_condition.value))[0] data[rom_addresses["Text_Rt23_Badges_C"]] = encode_text( - str(self.multiworld.victory_road_condition[self.player].value))[0] + str(world.options.victory_road_condition.value))[0] data[rom_addresses["Text_Rt23_Badges_D"]] = encode_text( - str(self.multiworld.victory_road_condition[self.player].value))[0] + str(world.options.victory_road_condition.value))[0] data[rom_addresses["Text_Badges_Needed"]] = encode_text( - str(self.multiworld.elite_four_badges_condition[self.player].value))[0] + str(world.options.elite_four_badges_condition.value))[0] write_bytes(data, encode_text( - " ".join(self.multiworld.get_location("Route 4 Pokemon Center - Pokemon For Sale", self.player).item.name.upper().split()[1:])), + " ".join(world.multiworld.get_location("Route 4 Pokemon Center - Pokemon For Sale", world.player).item.name.upper().split()[1:])), rom_addresses["Text_Magikarp_Salesman"]) - if self.multiworld.badges_needed_for_hm_moves[self.player].value == 0: + if world.options.badges_needed_for_hm_moves.value == 0: for hm_move in poke_data.hm_moves: write_bytes(data, bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), rom_addresses["HM_" + hm_move + "_Badge_a"]) - elif self.extra_badges: + elif world.extra_badges: written_badges = {} - for hm_move, badge in self.extra_badges.items(): + for hm_move, badge in world.extra_badges.items(): data[rom_addresses["HM_" + hm_move + "_Badge_b"]] = {"Boulder Badge": 0x47, "Cascade Badge": 0x4F, "Thunder Badge": 0x57, "Rainbow Badge": 0x5F, "Soul Badge": 0x67, "Marsh Badge": 0x6F, @@ -427,7 +474,7 @@ def set_trade_mon(address, loc): write_bytes(data, encode_text("Nothing"), rom_addresses["Badge_Text_" + badge.replace(" ", "_")]) type_loc = rom_addresses["Type_Chart"] - for matchup in self.type_chart: + for matchup in world.type_chart: if matchup[2] != 10: # don't needlessly divide damage by 10 and multiply by 10 data[type_loc] = poke_data.type_ids[matchup[0]] data[type_loc + 1] = poke_data.type_ids[matchup[1]] @@ -437,52 +484,49 @@ def set_trade_mon(address, loc): data[type_loc + 1] = 0xFF data[type_loc + 2] = 0xFF - if self.multiworld.normalize_encounter_chances[self.player].value: + if world.options.normalize_encounter_chances.value: chances = [25, 51, 77, 103, 129, 155, 180, 205, 230, 255] for i, chance in enumerate(chances): data[rom_addresses['Encounter_Chances'] + (i * 2)] = chance - for mon, mon_data in self.local_poke_data.items(): + for mon, mon_data in world.local_poke_data.items(): if mon == "Mew": address = rom_addresses["Base_Stats_Mew"] else: address = rom_addresses["Base_Stats"] + (28 * (mon_data["dex"] - 1)) - data[address + 1] = self.local_poke_data[mon]["hp"] - data[address + 2] = self.local_poke_data[mon]["atk"] - data[address + 3] = self.local_poke_data[mon]["def"] - data[address + 4] = self.local_poke_data[mon]["spd"] - data[address + 5] = self.local_poke_data[mon]["spc"] - data[address + 6] = poke_data.type_ids[self.local_poke_data[mon]["type1"]] - data[address + 7] = poke_data.type_ids[self.local_poke_data[mon]["type2"]] - data[address + 8] = self.local_poke_data[mon]["catch rate"] - data[address + 15] = poke_data.moves[self.local_poke_data[mon]["start move 1"]]["id"] - data[address + 16] = poke_data.moves[self.local_poke_data[mon]["start move 2"]]["id"] - data[address + 17] = poke_data.moves[self.local_poke_data[mon]["start move 3"]]["id"] - data[address + 18] = poke_data.moves[self.local_poke_data[mon]["start move 4"]]["id"] - write_bytes(data, self.local_poke_data[mon]["tms"], address + 20) - if mon in self.learnsets and self.learnsets[mon]: + data[address + 1] = world.local_poke_data[mon]["hp"] + data[address + 2] = world.local_poke_data[mon]["atk"] + data[address + 3] = world.local_poke_data[mon]["def"] + data[address + 4] = world.local_poke_data[mon]["spd"] + data[address + 5] = world.local_poke_data[mon]["spc"] + data[address + 6] = poke_data.type_ids[world.local_poke_data[mon]["type1"]] + data[address + 7] = poke_data.type_ids[world.local_poke_data[mon]["type2"]] + data[address + 8] = world.local_poke_data[mon]["catch rate"] + data[address + 15] = poke_data.moves[world.local_poke_data[mon]["start move 1"]]["id"] + data[address + 16] = poke_data.moves[world.local_poke_data[mon]["start move 2"]]["id"] + data[address + 17] = poke_data.moves[world.local_poke_data[mon]["start move 3"]]["id"] + data[address + 18] = poke_data.moves[world.local_poke_data[mon]["start move 4"]]["id"] + write_bytes(data, world.local_poke_data[mon]["tms"], address + 20) + if mon in world.learnsets and world.learnsets[mon]: address = rom_addresses["Learnset_" + mon.replace(" ", "")] - for i, move in enumerate(self.learnsets[mon]): + for i, move in enumerate(world.learnsets[mon]): data[(address + 1) + i * 2] = poke_data.moves[move]["id"] - data[rom_addresses["Option_Aide_Rt2"]] = self.multiworld.oaks_aide_rt_2[self.player].value - data[rom_addresses["Option_Aide_Rt11"]] = self.multiworld.oaks_aide_rt_11[self.player].value - data[rom_addresses["Option_Aide_Rt15"]] = self.multiworld.oaks_aide_rt_15[self.player].value + data[rom_addresses["Option_Aide_Rt2"]] = world.options.oaks_aide_rt_2.value + data[rom_addresses["Option_Aide_Rt11"]] = world.options.oaks_aide_rt_11.value + data[rom_addresses["Option_Aide_Rt15"]] = world.options.oaks_aide_rt_15.value - if self.multiworld.safari_zone_normal_battles[self.player].value == 1: + if world.options.safari_zone_normal_battles.value == 1: data[rom_addresses["Option_Safari_Zone_Battle_Type"]] = 255 - if self.multiworld.reusable_tms[self.player].value: + if world.options.reusable_tms.value: data[rom_addresses["Option_Reusable_TMs"]] = 0xC9 - for i in range(1, 10): - data[rom_addresses[f"Option_Trainersanity{i}"]] = self.multiworld.trainersanity[self.player].value - - data[rom_addresses["Option_Always_Half_STAB"]] = int(not self.multiworld.same_type_attack_bonus[self.player].value) + data[rom_addresses["Option_Always_Half_STAB"]] = int(not world.options.same_type_attack_bonus.value) - if self.multiworld.better_shops[self.player]: + if world.options.better_shops: inventory = ["Poke Ball", "Great Ball", "Ultra Ball"] - if self.multiworld.better_shops[self.player].value == 2: + if world.options.better_shops.value == 2: inventory.append("Master Ball") inventory += ["Potion", "Super Potion", "Hyper Potion", "Max Potion", "Full Restore", "Revive", "Antidote", "Awakening", "Burn Heal", "Ice Heal", "Paralyze Heal", "Full Heal", "Repel", "Super Repel", @@ -492,30 +536,30 @@ def set_trade_mon(address, loc): shop_data.append(0xFF) for shop in range(1, 11): write_bytes(data, shop_data, rom_addresses[f"Shop{shop}"]) - if self.multiworld.stonesanity[self.player]: + if world.options.stonesanity: write_bytes(data, bytearray([0xFE, 1, item_table["Poke Doll"].id - 172000000, 0xFF]), rom_addresses[f"Shop_Stones"]) - price = str(self.multiworld.master_ball_price[self.player].value).zfill(6) + price = str(world.options.master_ball_price.value).zfill(6) price = bytearray([int(price[:2], 16), int(price[2:4], 16), int(price[4:], 16)]) write_bytes(data, price, rom_addresses["Price_Master_Ball"]) # Money values in Red and Blue are weird - for item in reversed(self.multiworld.precollected_items[self.player]): + for item in reversed(world.multiworld.precollected_items[world.player]): if data[rom_addresses["Start_Inventory"] + item.code - 172000000] < 255: data[rom_addresses["Start_Inventory"] + item.code - 172000000] += 1 - set_mon_palettes(self, random, data) + set_mon_palettes(world, random, data) - for move_data in self.local_move_data.values(): + for move_data in world.local_move_data.values(): if move_data["id"] == 0: continue address = rom_addresses["Move_Data"] + ((move_data["id"] - 1) * 6) write_bytes(data, bytearray([move_data["id"], move_data["effect"], move_data["power"], poke_data.type_ids[move_data["type"]], round(move_data["accuracy"] * 2.55), move_data["pp"]]), address) - TM_IDs = bytearray([poke_data.moves[move]["id"] for move in self.local_tms]) + TM_IDs = bytearray([poke_data.moves[move]["id"] for move in world.local_tms]) write_bytes(data, TM_IDs, rom_addresses["TM_Moves"]) - if self.multiworld.randomize_rock_tunnel[self.player]: + if world.options.randomize_rock_tunnel: seed = randomize_rock_tunnel(data, random) write_bytes(data, encode_text(f"SEED: {seed}"), rom_addresses["Text_Rock_Tunnel_Sign"]) @@ -524,44 +568,44 @@ def set_trade_mon(address, loc): data[rom_addresses['Title_Mon_First']] = mons.pop() for mon in range(0, 16): data[rom_addresses['Title_Mons'] + mon] = mons.pop() - if self.multiworld.game_version[self.player].value: - mons.sort(key=lambda mon: 0 if mon == self.multiworld.get_location("Oak's Lab - Starter 1", self.player).item.name - else 1 if mon == self.multiworld.get_location("Oak's Lab - Starter 2", self.player).item.name else - 2 if mon == self.multiworld.get_location("Oak's Lab - Starter 3", self.player).item.name else 3) + if world.options.game_version.value: + mons.sort(key=lambda mon: 0 if mon == world.multiworld.get_location("Oak's Lab - Starter 1", world.player).item.name + else 1 if mon == world.multiworld.get_location("Oak's Lab - Starter 2", world.player).item.name else + 2 if mon == world.multiworld.get_location("Oak's Lab - Starter 3", world.player).item.name else 3) else: - mons.sort(key=lambda mon: 0 if mon == self.multiworld.get_location("Oak's Lab - Starter 2", self.player).item.name - else 1 if mon == self.multiworld.get_location("Oak's Lab - Starter 1", self.player).item.name else - 2 if mon == self.multiworld.get_location("Oak's Lab - Starter 3", self.player).item.name else 3) - write_bytes(data, encode_text(self.multiworld.seed_name[-20:], 20, True), rom_addresses['Title_Seed']) + mons.sort(key=lambda mon: 0 if mon == world.multiworld.get_location("Oak's Lab - Starter 2", world.player).item.name + else 1 if mon == world.multiworld.get_location("Oak's Lab - Starter 1", world.player).item.name else + 2 if mon == world.multiworld.get_location("Oak's Lab - Starter 3", world.player).item.name else 3) + write_bytes(data, encode_text(world.multiworld.seed_name[-20:], 20, True), rom_addresses['Title_Seed']) - slot_name = self.multiworld.player_name[self.player] + slot_name = world.multiworld.player_name[world.player] slot_name.replace("@", " ") slot_name.replace("<", " ") slot_name.replace(">", " ") write_bytes(data, encode_text(slot_name, 16, True, True), rom_addresses['Title_Slot_Name']) - if self.trainer_name == "choose_in_game": + if world.trainer_name == "choose_in_game": data[rom_addresses["Skip_Player_Name"]] = 0 else: - write_bytes(data, self.trainer_name, rom_addresses['Player_Name']) - if self.rival_name == "choose_in_game": + write_bytes(data, world.trainer_name, rom_addresses['Player_Name']) + if world.rival_name == "choose_in_game": data[rom_addresses["Skip_Rival_Name"]] = 0 else: - write_bytes(data, self.rival_name, rom_addresses['Rival_Name']) + write_bytes(data, world.rival_name, rom_addresses['Rival_Name']) data[0xFF00] = 2 # client compatibility version - rom_name = bytearray(f'AP{Utils.__version__.replace(".", "")[0:3]}_{self.player}_{self.multiworld.seed:11}\0', + rom_name = bytearray(f'AP{Utils.__version__.replace(".", "")[0:3]}_{world.player}_{world.multiworld.seed:11}\0', 'utf8')[:21] rom_name.extend([0] * (21 - len(rom_name))) write_bytes(data, rom_name, 0xFFC6) - write_bytes(data, self.multiworld.seed_name.encode(), 0xFFDB) - write_bytes(data, self.multiworld.player_name[self.player].encode(), 0xFFF0) + write_bytes(data, world.multiworld.seed_name.encode(), 0xFFDB) + write_bytes(data, world.multiworld.player_name[world.player].encode(), 0xFFF0) - self.finished_level_scaling.wait() + world.finished_level_scaling.wait() - write_quizzes(self, data, random) + write_quizzes(world, data, random) - for location in self.multiworld.get_locations(self.player): + for location in world.multiworld.get_locations(world.player): if location.party_data: for party in location.party_data: if not isinstance(party["party_address"], list): @@ -588,7 +632,7 @@ def set_trade_mon(address, loc): continue elif location.rom_address is None: continue - if location.item and location.item.player == self.player: + if location.item and location.item.player == world.player: if location.rom_address: rom_address = location.rom_address if not isinstance(rom_address, list): @@ -599,7 +643,7 @@ def set_trade_mon(address, loc): elif " ".join(location.item.name.split()[1:]) in poke_data.pokemon_data.keys(): data[address] = poke_data.pokemon_data[" ".join(location.item.name.split()[1:])]["id"] else: - item_id = self.item_name_to_id[location.item.name] - 172000000 + item_id = world.item_name_to_id[location.item.name] - 172000000 if item_id > 255: item_id -= 256 data[address] = item_id @@ -613,18 +657,18 @@ def set_trade_mon(address, loc): for address in rom_address: data[address] = 0x2C # AP Item - outfilepname = f'_P{self.player}' - outfilepname += f"_{self.multiworld.get_file_safe_player_name(self.player).replace(' ', '_')}" \ - if self.multiworld.player_name[self.player] != 'Player%d' % self.player else '' - rompath = os.path.join(output_directory, f'AP_{self.multiworld.seed_name}{outfilepname}.gb') + outfilepname = f'_P{world.player}' + outfilepname += f"_{world.multiworld.get_file_safe_player_name(world.player).replace(' ', '_')}" \ + if world.multiworld.player_name[world.player] != 'Player%d' % world.player else '' + rompath = os.path.join(output_directory, f'AP_{world.multiworld.seed_name}{outfilepname}.gb') with open(rompath, 'wb') as outfile: outfile.write(data) - if self.multiworld.game_version[self.player].current_key == "red": - patch = RedDeltaPatch(os.path.splitext(rompath)[0] + RedDeltaPatch.patch_file_ending, player=self.player, - player_name=self.multiworld.player_name[self.player], patched_path=rompath) + if world.options.game_version.current_key == "red": + patch = RedDeltaPatch(os.path.splitext(rompath)[0] + RedDeltaPatch.patch_file_ending, player=world.player, + player_name=world.multiworld.player_name[world.player], patched_path=rompath) else: - patch = BlueDeltaPatch(os.path.splitext(rompath)[0] + BlueDeltaPatch.patch_file_ending, player=self.player, - player_name=self.multiworld.player_name[self.player], patched_path=rompath) + patch = BlueDeltaPatch(os.path.splitext(rompath)[0] + BlueDeltaPatch.patch_file_ending, player=world.player, + player_name=world.multiworld.player_name[world.player], patched_path=rompath) patch.write() os.unlink(rompath) diff --git a/worlds/pokemon_rb/rom_addresses.py b/worlds/pokemon_rb/rom_addresses.py index e5c073971d5d..ec233d94d44d 100644 --- a/worlds/pokemon_rb/rom_addresses.py +++ b/worlds/pokemon_rb/rom_addresses.py @@ -1,10 +1,9 @@ rom_addresses = { "Option_Encounter_Minimum_Steps": 0x3c1, "Option_Pitch_Black_Rock_Tunnel": 0x76a, - "Option_Blind_Trainers": 0x30d5, - "Option_Trainersanity1": 0x3165, - "Option_Split_Card_Key": 0x3e1e, - "Option_Fix_Combat_Bugs": 0x3e1f, + "Option_Blind_Trainers": 0x32f0, + "Option_Split_Card_Key": 0x3e19, + "Option_Fix_Combat_Bugs": 0x3e1a, "Option_Lose_Money": 0x40d4, "Base_Stats_Mew": 0x4260, "Title_Mon_First": 0x4373, @@ -115,9 +114,10 @@ "HM_Strength_Badge_b": 0x131ed, "HM_Flash_Badge_a": 0x131fc, "HM_Flash_Badge_b": 0x13201, - "Trainer_Screen_Total_Key_Items": 0x135dc, - "TM_Moves": 0x137b1, - "Encounter_Chances": 0x13950, + "Tea_Key_Item_A": 0x135ac, + "Trainer_Screen_Total_Key_Items": 0x1361b, + "TM_Moves": 0x137f0, + "Encounter_Chances": 0x1398f, "Warps_CeladonCity": 0x18026, "Warps_PalletTown": 0x182c7, "Warps_ViridianCity": 0x18388, @@ -128,52 +128,54 @@ "Option_Viridian_Gym_Badges": 0x1901d, "Event_Sleepy_Guy": 0x191d1, "Option_Route3_Guard_B": 0x1928a, - "Starter2_K": 0x19611, - "Starter3_K": 0x19619, - "Event_Rocket_Thief": 0x19733, - "Option_Cerulean_Cave_Badges": 0x19861, - "Option_Cerulean_Cave_Key_Items": 0x19868, - "Text_Cerulean_Cave_Badges": 0x198d7, - "Text_Cerulean_Cave_Key_Items": 0x198e5, - "Event_Stranded_Man": 0x19b3c, - "Event_Rivals_Sister": 0x19d0f, - "Warps_BluesHouse": 0x19d65, - "Warps_VermilionTradeHouse": 0x19dbc, - "Require_Pokedex_D": 0x19e53, - "Option_Elite_Four_Key_Items": 0x19e9d, - "Option_Elite_Four_Pokedex": 0x19ea4, - "Option_Elite_Four_Badges": 0x19eab, - "Text_Elite_Four_Badges": 0x19f47, - "Text_Elite_Four_Key_Items": 0x19f51, - "Text_Elite_Four_Pokedex": 0x19f64, - "Shop10": 0x1a018, - "Warps_IndigoPlateauLobby": 0x1a044, - "Trainersanity_EVENT_BEAT_SILPH_CO_4F_TRAINER_0_ITEM": 0x1a16c, - "Trainersanity_EVENT_BEAT_SILPH_CO_4F_TRAINER_1_ITEM": 0x1a17a, - "Trainersanity_EVENT_BEAT_SILPH_CO_4F_TRAINER_2_ITEM": 0x1a188, - "Event_SKC4F": 0x1a19b, - "Warps_SilphCo4F": 0x1a21d, - "Missable_Silph_Co_4F_Item_1": 0x1a25d, - "Missable_Silph_Co_4F_Item_2": 0x1a264, - "Missable_Silph_Co_4F_Item_3": 0x1a26b, - "Trainersanity_EVENT_BEAT_SILPH_CO_5F_TRAINER_0_ITEM": 0x1a3c3, - "Trainersanity_EVENT_BEAT_SILPH_CO_5F_TRAINER_1_ITEM": 0x1a3d1, - "Trainersanity_EVENT_BEAT_SILPH_CO_5F_TRAINER_2_ITEM": 0x1a3df, - "Trainersanity_EVENT_BEAT_SILPH_CO_5F_TRAINER_3_ITEM": 0x1a3ed, - "Event_SKC5F": 0x1a400, - "Warps_SilphCo5F": 0x1a4aa, - "Missable_Silph_Co_5F_Item_1": 0x1a4f2, - "Missable_Silph_Co_5F_Item_2": 0x1a4f9, - "Missable_Silph_Co_5F_Item_3": 0x1a500, - "Trainersanity_EVENT_BEAT_SILPH_CO_6F_TRAINER_0_ITEM": 0x1a630, - "Trainersanity_EVENT_BEAT_SILPH_CO_6F_TRAINER_1_ITEM": 0x1a63e, - "Trainersanity_EVENT_BEAT_SILPH_CO_6F_TRAINER_2_ITEM": 0x1a64c, - "Event_SKC6F": 0x1a66d, - "Warps_SilphCo6F": 0x1a74b, - "Missable_Silph_Co_6F_Item_1": 0x1a79b, - "Missable_Silph_Co_6F_Item_2": 0x1a7a2, - "Path_Pallet_Oak": 0x1a928, - "Path_Pallet_Player": 0x1a935, + "Starter2_K": 0x19618, + "Starter3_K": 0x19620, + "Event_Rocket_Thief": 0x1973a, + "Tea_Key_Item_C": 0x1988f, + "Option_Cerulean_Cave_Badges": 0x198a0, + "Option_Cerulean_Cave_Key_Items": 0x198a7, + "Text_Cerulean_Cave_Badges": 0x19916, + "Text_Cerulean_Cave_Key_Items": 0x19924, + "Event_Stranded_Man": 0x19b7b, + "Event_Rivals_Sister": 0x19d4e, + "Warps_BluesHouse": 0x19da4, + "Warps_VermilionTradeHouse": 0x19dfb, + "Require_Pokedex_D": 0x19e99, + "Tea_Key_Item_B": 0x19f13, + "Option_Elite_Four_Key_Items": 0x19f1b, + "Option_Elite_Four_Pokedex": 0x19f22, + "Option_Elite_Four_Badges": 0x19f29, + "Text_Elite_Four_Badges": 0x19fc5, + "Text_Elite_Four_Key_Items": 0x19fcf, + "Text_Elite_Four_Pokedex": 0x19fe2, + "Shop10": 0x1a096, + "Warps_IndigoPlateauLobby": 0x1a0c2, + "Trainersanity_EVENT_BEAT_SILPH_CO_4F_TRAINER_0_ITEM": 0x1a1ea, + "Trainersanity_EVENT_BEAT_SILPH_CO_4F_TRAINER_1_ITEM": 0x1a1f8, + "Trainersanity_EVENT_BEAT_SILPH_CO_4F_TRAINER_2_ITEM": 0x1a206, + "Event_SKC4F": 0x1a219, + "Warps_SilphCo4F": 0x1a29b, + "Missable_Silph_Co_4F_Item_1": 0x1a2db, + "Missable_Silph_Co_4F_Item_2": 0x1a2e2, + "Missable_Silph_Co_4F_Item_3": 0x1a2e9, + "Trainersanity_EVENT_BEAT_SILPH_CO_5F_TRAINER_0_ITEM": 0x1a441, + "Trainersanity_EVENT_BEAT_SILPH_CO_5F_TRAINER_1_ITEM": 0x1a44f, + "Trainersanity_EVENT_BEAT_SILPH_CO_5F_TRAINER_2_ITEM": 0x1a45d, + "Trainersanity_EVENT_BEAT_SILPH_CO_5F_TRAINER_3_ITEM": 0x1a46b, + "Event_SKC5F": 0x1a47e, + "Warps_SilphCo5F": 0x1a528, + "Missable_Silph_Co_5F_Item_1": 0x1a570, + "Missable_Silph_Co_5F_Item_2": 0x1a577, + "Missable_Silph_Co_5F_Item_3": 0x1a57e, + "Trainersanity_EVENT_BEAT_SILPH_CO_6F_TRAINER_0_ITEM": 0x1a6ae, + "Trainersanity_EVENT_BEAT_SILPH_CO_6F_TRAINER_1_ITEM": 0x1a6bc, + "Trainersanity_EVENT_BEAT_SILPH_CO_6F_TRAINER_2_ITEM": 0x1a6ca, + "Event_SKC6F": 0x1a6eb, + "Warps_SilphCo6F": 0x1a7c9, + "Missable_Silph_Co_6F_Item_1": 0x1a819, + "Missable_Silph_Co_6F_Item_2": 0x1a820, + "Path_Pallet_Oak": 0x1a9a6, + "Path_Pallet_Player": 0x1a9b3, "Warps_CinnabarIsland": 0x1c026, "Warps_Route1": 0x1c0e9, "Option_Extra_Key_Items_B": 0x1ca46, @@ -191,75 +193,75 @@ "Starter2_E": 0x1d2f7, "Starter3_E": 0x1d2ff, "Event_Pokedex": 0x1d363, - "Event_Oaks_Gift": 0x1d393, - "Starter2_P": 0x1d481, - "Starter3_P": 0x1d489, - "Warps_OaksLab": 0x1d6af, - "Event_Pokemart_Quest": 0x1d76b, - "Shop1": 0x1d795, - "Warps_ViridianMart": 0x1d7d8, - "Warps_ViridianSchoolHouse": 0x1d82b, - "Warps_ViridianNicknameHouse": 0x1d889, - "Warps_PewterNidoranHouse": 0x1d8e4, - "Warps_PewterSpeechHouse": 0x1d927, - "Warps_CeruleanTrashedHouse": 0x1d98d, - "Warps_CeruleanTradeHouse": 0x1d9de, - "Event_Bicycle_Shop": 0x1da2f, - "Bike_Shop_Item_Display": 0x1da8a, - "Warps_BikeShop": 0x1db45, - "Event_Fuji": 0x1dbfd, - "Warps_MrFujisHouse": 0x1dc44, - "Warps_LavenderCuboneHouse": 0x1dcc0, - "Warps_NameRatersHouse": 0x1ddae, - "Warps_VermilionPidgeyHouse": 0x1ddf8, - "Trainersanity_EVENT_BEAT_MEW_ITEM": 0x1de4e, - "Warps_VermilionDock": 0x1de70, - "Static_Encounter_Mew": 0x1de7e, - "Gift_Eevee": 0x1def7, - "Warps_CeladonMansionRoofHouse": 0x1df0e, - "Shop7": 0x1df49, - "Warps_FuchsiaMart": 0x1df74, - "Warps_SaffronPidgeyHouse": 0x1dfdd, - "Event_Mr_Psychic": 0x1e020, - "Warps_MrPsychicsHouse": 0x1e05d, - "Warps_DiglettsCaveRoute2": 0x1e092, - "Warps_Route2TradeHouse": 0x1e0da, - "Warps_Route5Gate": 0x1e1db, - "Warps_Route6Gate": 0x1e2ad, - "Warps_Route7Gate": 0x1e383, - "Warps_Route8Gate": 0x1e454, - "Warps_UndergroundPathRoute8": 0x1e4a5, - "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_0_ITEM": 0x1e511, - "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_1_ITEM": 0x1e51f, - "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_2_ITEM": 0x1e52d, - "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_3_ITEM": 0x1e53b, - "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_4_ITEM": 0x1e549, - "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_5_ITEM": 0x1e557, - "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_6_ITEM": 0x1e565, - "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_7_ITEM": 0x1e573, - "Trainersanity_EVENT_BEAT_ZAPDOS_ITEM": 0x1e581, - "Warps_PowerPlant": 0x1e5de, - "Static_Encounter_Voltorb_A": 0x1e5f0, - "Static_Encounter_Voltorb_B": 0x1e5f8, - "Static_Encounter_Voltorb_C": 0x1e600, - "Static_Encounter_Electrode_A": 0x1e608, - "Static_Encounter_Voltorb_D": 0x1e610, - "Static_Encounter_Voltorb_E": 0x1e618, - "Static_Encounter_Electrode_B": 0x1e620, - "Static_Encounter_Voltorb_F": 0x1e628, - "Static_Encounter_Zapdos": 0x1e630, - "Missable_Power_Plant_Item_1": 0x1e638, - "Missable_Power_Plant_Item_2": 0x1e63f, - "Missable_Power_Plant_Item_3": 0x1e646, - "Missable_Power_Plant_Item_4": 0x1e64d, - "Missable_Power_Plant_Item_5": 0x1e654, - "Warps_DiglettsCaveRoute11": 0x1e7e9, - "Event_Rt16_House_Woman": 0x1e827, - "Warps_Route16FlyHouse": 0x1e870, - "Option_Victory_Road_Badges": 0x1e8f3, - "Warps_Route22Gate": 0x1e9e3, - "Event_Bill": 0x1eb24, - "Warps_BillsHouse": 0x1eb83, + "Event_Oaks_Gift": 0x1d398, + "Starter2_P": 0x1d486, + "Starter3_P": 0x1d48e, + "Warps_OaksLab": 0x1d6b4, + "Event_Pokemart_Quest": 0x1d770, + "Shop1": 0x1d79a, + "Warps_ViridianMart": 0x1d7dd, + "Warps_ViridianSchoolHouse": 0x1d830, + "Warps_ViridianNicknameHouse": 0x1d88e, + "Warps_PewterNidoranHouse": 0x1d8e9, + "Warps_PewterSpeechHouse": 0x1d92c, + "Warps_CeruleanTrashedHouse": 0x1d992, + "Warps_CeruleanTradeHouse": 0x1d9e3, + "Event_Bicycle_Shop": 0x1da34, + "Bike_Shop_Item_Display": 0x1da8f, + "Warps_BikeShop": 0x1db4a, + "Event_Fuji": 0x1dc02, + "Warps_MrFujisHouse": 0x1dc49, + "Warps_LavenderCuboneHouse": 0x1dcc5, + "Warps_NameRatersHouse": 0x1ddb3, + "Warps_VermilionPidgeyHouse": 0x1ddfd, + "Trainersanity_EVENT_BEAT_MEW_ITEM": 0x1de53, + "Warps_VermilionDock": 0x1de75, + "Static_Encounter_Mew": 0x1de83, + "Gift_Eevee": 0x1defc, + "Warps_CeladonMansionRoofHouse": 0x1df13, + "Shop7": 0x1df4e, + "Warps_FuchsiaMart": 0x1df79, + "Warps_SaffronPidgeyHouse": 0x1dfe2, + "Event_Mr_Psychic": 0x1e025, + "Warps_MrPsychicsHouse": 0x1e062, + "Warps_DiglettsCaveRoute2": 0x1e097, + "Warps_Route2TradeHouse": 0x1e0df, + "Warps_Route5Gate": 0x1e1e0, + "Warps_Route6Gate": 0x1e2b2, + "Warps_Route7Gate": 0x1e388, + "Warps_Route8Gate": 0x1e459, + "Warps_UndergroundPathRoute8": 0x1e4aa, + "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_0_ITEM": 0x1e516, + "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_1_ITEM": 0x1e524, + "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_2_ITEM": 0x1e532, + "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_3_ITEM": 0x1e540, + "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_4_ITEM": 0x1e54e, + "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_5_ITEM": 0x1e55c, + "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_6_ITEM": 0x1e56a, + "Trainersanity_EVENT_BEAT_POWER_PLANT_VOLTORB_7_ITEM": 0x1e578, + "Trainersanity_EVENT_BEAT_ZAPDOS_ITEM": 0x1e586, + "Warps_PowerPlant": 0x1e5e3, + "Static_Encounter_Voltorb_A": 0x1e5f5, + "Static_Encounter_Voltorb_B": 0x1e5fd, + "Static_Encounter_Voltorb_C": 0x1e605, + "Static_Encounter_Electrode_A": 0x1e60d, + "Static_Encounter_Voltorb_D": 0x1e615, + "Static_Encounter_Voltorb_E": 0x1e61d, + "Static_Encounter_Electrode_B": 0x1e625, + "Static_Encounter_Voltorb_F": 0x1e62d, + "Static_Encounter_Zapdos": 0x1e635, + "Missable_Power_Plant_Item_1": 0x1e63d, + "Missable_Power_Plant_Item_2": 0x1e644, + "Missable_Power_Plant_Item_3": 0x1e64b, + "Missable_Power_Plant_Item_4": 0x1e652, + "Missable_Power_Plant_Item_5": 0x1e659, + "Warps_DiglettsCaveRoute11": 0x1e7ee, + "Event_Rt16_House_Woman": 0x1e82c, + "Warps_Route16FlyHouse": 0x1e875, + "Option_Victory_Road_Badges": 0x1e8f8, + "Warps_Route22Gate": 0x1e9e8, + "Event_Bill": 0x1eb29, + "Warps_BillsHouse": 0x1eb88, "Starter1_O": 0x372b0, "Starter2_O": 0x372b4, "Starter3_O": 0x372b8, @@ -1470,74 +1472,73 @@ "Trainersanity_EVENT_BEAT_POKEMONTOWER_5_TRAINER_3_ITEM": 0x609ea, "Warps_PokemonTower5F": 0x60a5e, "Missable_Pokemon_Tower_5F_Item": 0x60a92, - "Option_Trainersanity2": 0x60b2a, - "Ghost_Battle1": 0x60b83, - "Ghost_Battle_Level": 0x60b88, - "Trainersanity_EVENT_BEAT_POKEMONTOWER_6_TRAINER_0_ITEM": 0x60c25, - "Trainersanity_EVENT_BEAT_POKEMONTOWER_6_TRAINER_1_ITEM": 0x60c33, - "Trainersanity_EVENT_BEAT_POKEMONTOWER_6_TRAINER_2_ITEM": 0x60c41, - "Ghost_Battle2": 0x60c69, - "Warps_PokemonTower6F": 0x60cbe, - "Missable_Pokemon_Tower_6F_Item_1": 0x60ce4, - "Missable_Pokemon_Tower_6F_Item_2": 0x60ceb, - "Entrance_Shuffle_Fuji_Warp": 0x60deb, - "Trainersanity_EVENT_BEAT_POKEMONTOWER_7_TRAINER_0_ITEM": 0x60edf, - "Trainersanity_EVENT_BEAT_POKEMONTOWER_7_TRAINER_1_ITEM": 0x60eed, - "Trainersanity_EVENT_BEAT_POKEMONTOWER_7_TRAINER_2_ITEM": 0x60efb, - "Warps_PokemonTower7F": 0x60f8b, - "Warps_CeladonMart1F": 0x61033, - "Gift_Aerodactyl": 0x610f5, - "Gift_Omanyte": 0x610f9, - "Gift_Kabuto": 0x610fd, - "Trainersanity_EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0_ITEM": 0x611de, - "Trainersanity_EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1_ITEM": 0x611ec, - "Trainersanity_EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2_ITEM": 0x611fa, - "Warps_ViridianForest": 0x61273, - "Missable_Viridian_Forest_Item_1": 0x612c1, - "Missable_Viridian_Forest_Item_2": 0x612c8, - "Missable_Viridian_Forest_Item_3": 0x612cf, - "Warps_SSAnne1F": 0x61310, - "Starter2_M": 0x614e5, - "Starter3_M": 0x614ed, - "Warps_SSAnne2F": 0x615ab, - "Warps_SSAnneB1F": 0x616c9, - "Trainersanity_EVENT_BEAT_SS_ANNE_5_TRAINER_0_ITEM": 0x61771, - "Trainersanity_EVENT_BEAT_SS_ANNE_5_TRAINER_1_ITEM": 0x6177f, - "Warps_SSAnneBow": 0x617c6, - "Warps_SSAnneKitchen": 0x618b6, - "Event_SS_Anne_Captain": 0x6194e, - "Warps_SSAnneCaptainsRoom": 0x619d5, - "Trainersanity_EVENT_BEAT_SS_ANNE_8_TRAINER_0_ITEM": 0x61a3d, - "Trainersanity_EVENT_BEAT_SS_ANNE_8_TRAINER_1_ITEM": 0x61a4b, - "Trainersanity_EVENT_BEAT_SS_ANNE_8_TRAINER_2_ITEM": 0x61a59, - "Trainersanity_EVENT_BEAT_SS_ANNE_8_TRAINER_3_ITEM": 0x61a67, - "Warps_SSAnne1FRooms": 0x61af7, - "Missable_SS_Anne_1F_Item": 0x61b53, - "Trainersanity_EVENT_BEAT_SS_ANNE_9_TRAINER_0_ITEM": 0x61c24, - "Trainersanity_EVENT_BEAT_SS_ANNE_9_TRAINER_1_ITEM": 0x61c32, - "Trainersanity_EVENT_BEAT_SS_ANNE_9_TRAINER_2_ITEM": 0x61c40, - "Trainersanity_EVENT_BEAT_SS_ANNE_9_TRAINER_3_ITEM": 0x61c4e, - "Warps_SSAnne2FRooms": 0x61d2c, - "Missable_SS_Anne_2F_Item_1": 0x61d88, - "Missable_SS_Anne_2F_Item_2": 0x61d9b, - "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_0_ITEM": 0x61e2c, - "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_1_ITEM": 0x61e3a, - "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_2_ITEM": 0x61e48, - "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_3_ITEM": 0x61e56, - "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_4_ITEM": 0x61e64, - "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_5_ITEM": 0x61e72, - "Warps_SSAnneB1FRooms": 0x61f20, - "Missable_SS_Anne_B1F_Item_1": 0x61f8a, - "Missable_SS_Anne_B1F_Item_2": 0x61f91, - "Missable_SS_Anne_B1F_Item_3": 0x61f98, - "Warps_UndergroundPathNorthSouth": 0x61fd5, - "Warps_UndergroundPathWestEast": 0x61ff9, - "Warps_DiglettsCave": 0x6201d, - "Trainersanity_EVENT_BEAT_SILPH_CO_11F_TRAINER_0_ITEM": 0x62358, - "Trainersanity_EVENT_BEAT_SILPH_CO_11F_TRAINER_1_ITEM": 0x62366, - "Event_Silph_Co_President": 0x62373, - "Event_SKC11F": 0x623bd, - "Warps_SilphCo11F": 0x62446, + "Ghost_Battle1": 0x60b93, + "Ghost_Battle_Level": 0x60b98, + "Trainersanity_EVENT_BEAT_POKEMONTOWER_6_TRAINER_0_ITEM": 0x60c35, + "Trainersanity_EVENT_BEAT_POKEMONTOWER_6_TRAINER_1_ITEM": 0x60c43, + "Trainersanity_EVENT_BEAT_POKEMONTOWER_6_TRAINER_2_ITEM": 0x60c51, + "Ghost_Battle2": 0x60c79, + "Warps_PokemonTower6F": 0x60cce, + "Missable_Pokemon_Tower_6F_Item_1": 0x60cf4, + "Missable_Pokemon_Tower_6F_Item_2": 0x60cfb, + "Entrance_Shuffle_Fuji_Warp": 0x60dfb, + "Trainersanity_EVENT_BEAT_POKEMONTOWER_7_TRAINER_0_ITEM": 0x60eef, + "Trainersanity_EVENT_BEAT_POKEMONTOWER_7_TRAINER_1_ITEM": 0x60efd, + "Trainersanity_EVENT_BEAT_POKEMONTOWER_7_TRAINER_2_ITEM": 0x60f0b, + "Warps_PokemonTower7F": 0x60f9b, + "Warps_CeladonMart1F": 0x61043, + "Gift_Aerodactyl": 0x61105, + "Gift_Omanyte": 0x61109, + "Gift_Kabuto": 0x6110d, + "Trainersanity_EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0_ITEM": 0x61209, + "Trainersanity_EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1_ITEM": 0x61217, + "Trainersanity_EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2_ITEM": 0x61225, + "Warps_ViridianForest": 0x6129e, + "Missable_Viridian_Forest_Item_1": 0x612ec, + "Missable_Viridian_Forest_Item_2": 0x612f3, + "Missable_Viridian_Forest_Item_3": 0x612fa, + "Warps_SSAnne1F": 0x6133b, + "Starter2_M": 0x61510, + "Starter3_M": 0x61518, + "Warps_SSAnne2F": 0x615d6, + "Warps_SSAnneB1F": 0x616f4, + "Trainersanity_EVENT_BEAT_SS_ANNE_5_TRAINER_0_ITEM": 0x6179c, + "Trainersanity_EVENT_BEAT_SS_ANNE_5_TRAINER_1_ITEM": 0x617aa, + "Warps_SSAnneBow": 0x617f1, + "Warps_SSAnneKitchen": 0x618e1, + "Event_SS_Anne_Captain": 0x61979, + "Warps_SSAnneCaptainsRoom": 0x61a00, + "Trainersanity_EVENT_BEAT_SS_ANNE_8_TRAINER_0_ITEM": 0x61a68, + "Trainersanity_EVENT_BEAT_SS_ANNE_8_TRAINER_1_ITEM": 0x61a76, + "Trainersanity_EVENT_BEAT_SS_ANNE_8_TRAINER_2_ITEM": 0x61a84, + "Trainersanity_EVENT_BEAT_SS_ANNE_8_TRAINER_3_ITEM": 0x61a92, + "Warps_SSAnne1FRooms": 0x61b22, + "Missable_SS_Anne_1F_Item": 0x61b7e, + "Trainersanity_EVENT_BEAT_SS_ANNE_9_TRAINER_0_ITEM": 0x61c4f, + "Trainersanity_EVENT_BEAT_SS_ANNE_9_TRAINER_1_ITEM": 0x61c5d, + "Trainersanity_EVENT_BEAT_SS_ANNE_9_TRAINER_2_ITEM": 0x61c6b, + "Trainersanity_EVENT_BEAT_SS_ANNE_9_TRAINER_3_ITEM": 0x61c79, + "Warps_SSAnne2FRooms": 0x61d57, + "Missable_SS_Anne_2F_Item_1": 0x61db3, + "Missable_SS_Anne_2F_Item_2": 0x61dc6, + "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_0_ITEM": 0x61e57, + "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_1_ITEM": 0x61e65, + "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_2_ITEM": 0x61e73, + "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_3_ITEM": 0x61e81, + "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_4_ITEM": 0x61e8f, + "Trainersanity_EVENT_BEAT_SS_ANNE_10_TRAINER_5_ITEM": 0x61e9d, + "Warps_SSAnneB1FRooms": 0x61f4b, + "Missable_SS_Anne_B1F_Item_1": 0x61fb5, + "Missable_SS_Anne_B1F_Item_2": 0x61fbc, + "Missable_SS_Anne_B1F_Item_3": 0x61fc3, + "Warps_UndergroundPathNorthSouth": 0x62000, + "Warps_UndergroundPathWestEast": 0x62024, + "Warps_DiglettsCave": 0x62048, + "Trainersanity_EVENT_BEAT_SILPH_CO_11F_TRAINER_0_ITEM": 0x62383, + "Trainersanity_EVENT_BEAT_SILPH_CO_11F_TRAINER_1_ITEM": 0x62391, + "Event_Silph_Co_President": 0x6239e, + "Event_SKC11F": 0x623e8, + "Warps_SilphCo11F": 0x62471, "Ghost_Battle4": 0x708e1, "Town_Map_Order": 0x70f0f, "Town_Map_Coords": 0x71381, @@ -1589,44 +1590,37 @@ "Warps_FuchsiaMeetingRoom": 0x75879, "Badge_Cinnabar_Gym": 0x759de, "Event_Cinnabar_Gym": 0x759f2, - "Option_Trainersanity4": 0x75ace, - "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_B_ITEM": 0x75ada, - "Option_Trainersanity3": 0x75b1e, - "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_A_ITEM": 0x75b2a, - "Option_Trainersanity5": 0x75b85, - "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_2_ITEM": 0x75b91, - "Option_Trainersanity6": 0x75bd5, - "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_3_ITEM": 0x75be1, - "Option_Trainersanity7": 0x75c25, - "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_4_ITEM": 0x75c31, - "Option_Trainersanity8": 0x75c75, - "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_5_ITEM": 0x75c81, - "Option_Trainersanity9": 0x75cc5, - "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_6_ITEM": 0x75cd1, - "Warps_CinnabarGym": 0x75d1b, - "Warps_CinnabarLab": 0x75e02, - "Warps_CinnabarLabTradeRoom": 0x75e94, - "Event_Lab_Scientist": 0x75ee9, - "Warps_CinnabarLabMetronomeRoom": 0x75f35, - "Fossils_Needed_For_Second_Item": 0x75fb6, - "Fossil_Level": 0x76017, - "Event_Dome_Fossil_B": 0x76031, - "Event_Helix_Fossil_B": 0x76051, - "Warps_CinnabarLabFossilRoom": 0x760d2, - "Warps_CinnabarPokecenter": 0x76128, - "Shop8": 0x7616f, - "Warps_CinnabarMart": 0x7619b, - "Warps_CopycatsHouse1F": 0x761ed, - "Starter2_N": 0x762a2, - "Starter3_N": 0x762aa, - "Warps_ChampionsRoom": 0x764d5, - "Trainersanity_EVENT_BEAT_LORELEIS_ROOM_TRAINER_0_ITEM": 0x76604, - "Warps_LoreleisRoom": 0x76628, - "Trainersanity_EVENT_BEAT_BRUNOS_ROOM_TRAINER_0_ITEM": 0x7675d, - "Warps_BrunosRoom": 0x76781, - "Trainersanity_EVENT_BEAT_AGATHAS_ROOM_TRAINER_0_ITEM": 0x768bc, - "Warps_AgathasRoom": 0x768e0, - "Option_Itemfinder": 0x76a33, + "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_B_ITEM": 0x75adc, + "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_A_ITEM": 0x75b2e, + "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_2_ITEM": 0x75b97, + "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_3_ITEM": 0x75be9, + "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_4_ITEM": 0x75c3b, + "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_5_ITEM": 0x75c8d, + "Trainersanity_EVENT_BEAT_CINNABAR_GYM_TRAINER_6_ITEM": 0x75cdf, + "Warps_CinnabarGym": 0x75d29, + "Warps_CinnabarLab": 0x75e10, + "Warps_CinnabarLabTradeRoom": 0x75ea2, + "Event_Lab_Scientist": 0x75ef7, + "Warps_CinnabarLabMetronomeRoom": 0x75f43, + "Fossils_Needed_For_Second_Item": 0x75fc4, + "Fossil_Level": 0x76025, + "Event_Dome_Fossil_B": 0x7603f, + "Event_Helix_Fossil_B": 0x7605f, + "Warps_CinnabarLabFossilRoom": 0x760e0, + "Warps_CinnabarPokecenter": 0x76136, + "Shop8": 0x7617d, + "Warps_CinnabarMart": 0x761a9, + "Warps_CopycatsHouse1F": 0x761fb, + "Starter2_N": 0x762b0, + "Starter3_N": 0x762b8, + "Warps_ChampionsRoom": 0x764e3, + "Trainersanity_EVENT_BEAT_LORELEIS_ROOM_TRAINER_0_ITEM": 0x76612, + "Warps_LoreleisRoom": 0x76636, + "Trainersanity_EVENT_BEAT_BRUNOS_ROOM_TRAINER_0_ITEM": 0x7676b, + "Warps_BrunosRoom": 0x7678f, + "Trainersanity_EVENT_BEAT_AGATHAS_ROOM_TRAINER_0_ITEM": 0x768ca, + "Warps_AgathasRoom": 0x768ee, + "Option_Itemfinder": 0x76a41, "Text_Quiz_A": 0x88806, "Text_Quiz_B": 0x8893a, "Text_Quiz_C": 0x88a6e, diff --git a/worlds/pokemon_rb/rules.py b/worlds/pokemon_rb/rules.py index 1d68f3148963..ba4bfd471c52 100644 --- a/worlds/pokemon_rb/rules.py +++ b/worlds/pokemon_rb/rules.py @@ -3,7 +3,7 @@ from . import logic -def set_rules(multiworld, player): +def set_rules(multiworld, world, player): item_rules = { # Some items do special things when they are passed into the GiveItem function in the game, but @@ -15,54 +15,46 @@ def set_rules(multiworld, player): not in i.name) } - if multiworld.prizesanity[player]: + if world.options.prizesanity: def prize_rule(i): return i.player != player or i.name in item_groups["Unique"] item_rules["Celadon Prize Corner - Item Prize 1"] = prize_rule item_rules["Celadon Prize Corner - Item Prize 2"] = prize_rule item_rules["Celadon Prize Corner - Item Prize 3"] = prize_rule - if multiworld.accessibility[player] != "full": - multiworld.get_location("Cerulean Bicycle Shop", player).always_allow = (lambda state, item: - item.name == "Bike Voucher" - and item.player == player) - multiworld.get_location("Fuchsia Warden's House - Safari Zone Warden", player).always_allow = (lambda state, item: - item.name == "Gold Teeth" and - item.player == player) - access_rules = { "Rival's House - Rival's Sister": lambda state: state.has("Oak's Parcel", player), "Oak's Lab - Oak's Post-Route-22-Rival Gift": lambda state: state.has("Oak's Parcel", player), - "Viridian City - Sleepy Guy": lambda state: logic.can_cut(state, player) or logic.can_surf(state, player), - "Route 2 Gate - Oak's Aide": lambda state: logic.oaks_aide(state, state.multiworld.oaks_aide_rt_2[player].value + 5, player), + "Viridian City - Sleepy Guy": lambda state: logic.can_cut(state, world, player) or logic.can_surf(state, world, player), + "Route 2 Gate - Oak's Aide": lambda state: logic.oaks_aide(state, world, world.options.oaks_aide_rt_2.value + 5, player), "Cerulean Bicycle Shop": lambda state: state.has("Bike Voucher", player) or location_item_name(state, "Cerulean Bicycle Shop", player) == ("Bike Voucher", player), "Lavender Mr. Fuji's House - Mr. Fuji": lambda state: state.has("Fuji Saved", player), - "Route 11 Gate 2F - Oak's Aide": lambda state: logic.oaks_aide(state, state.multiworld.oaks_aide_rt_11[player].value + 5, player), - "Celadon City - Stranded Man": lambda state: logic.can_surf(state, player), + "Route 11 Gate 2F - Oak's Aide": lambda state: logic.oaks_aide(state, world, world.options.oaks_aide_rt_11.value + 5, player), + "Celadon City - Stranded Man": lambda state: logic.can_surf(state, world, player), "Fuchsia Warden's House - Safari Zone Warden": lambda state: state.has("Gold Teeth", player) or location_item_name(state, "Fuchsia Warden's House - Safari Zone Warden", player) == ("Gold Teeth", player), - "Route 12 - Island Item": lambda state: logic.can_surf(state, player), - "Route 15 Gate 2F - Oak's Aide": lambda state: logic.oaks_aide(state, state.multiworld.oaks_aide_rt_15[player].value + 5, player), - "Route 25 - Item": lambda state: logic.can_cut(state, player), - "Fuchsia Warden's House - Behind Boulder Item": lambda state: logic.can_strength(state, player), - "Safari Zone Center - Island Item": lambda state: logic.can_surf(state, player), + "Route 12 - Island Item": lambda state: logic.can_surf(state, world, player), + "Route 15 Gate 2F - Oak's Aide": lambda state: logic.oaks_aide(state, world, world.options.oaks_aide_rt_15.value + 5, player), + "Route 25 - Item": lambda state: logic.can_cut(state, world, player), + "Fuchsia Warden's House - Behind Boulder Item": lambda state: logic.can_strength(state, world, player), + "Safari Zone Center - Island Item": lambda state: logic.can_surf(state, world, player), "Saffron Copycat's House 2F - Copycat": lambda state: state.has("Buy Poke Doll", player), "Celadon Game Corner - West Gambler's Gift": lambda state: state.has("Coin Case", player), "Celadon Game Corner - Center Gambler's Gift": lambda state: state.has("Coin Case", player), "Celadon Game Corner - East Gambler's Gift": lambda state: state.has("Coin Case", player), - "Celadon Game Corner - Hidden Item Northwest By Counter": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item Southwest Corner": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item Near Rumor Man": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item Near Speculating Woman": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item Near West Gifting Gambler": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item Near Wonderful Time Woman": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item Near Failing Gym Information Guy": lambda state: state.has( "Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item Near East Gifting Gambler": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item Near Hooked Guy": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item at End of Horizontal Machine Row": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), - "Celadon Game Corner - Hidden Item in Front of Horizontal Machine Row": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, player), + "Celadon Game Corner - Hidden Item Northwest By Counter": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item Southwest Corner": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item Near Rumor Man": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item Near Speculating Woman": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item Near West Gifting Gambler": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item Near Wonderful Time Woman": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item Near Failing Gym Information Guy": lambda state: state.has( "Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item Near East Gifting Gambler": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item Near Hooked Guy": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item at End of Horizontal Machine Row": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), + "Celadon Game Corner - Hidden Item in Front of Horizontal Machine Row": lambda state: state.has("Coin Case", player) and logic.can_get_hidden_items(state, world, player), "Celadon Prize Corner - Item Prize 1": lambda state: state.has("Coin Case", player) and state.has("Game Corner", player), "Celadon Prize Corner - Item Prize 2": lambda state: state.has("Coin Case", player) and state.has("Game Corner", player), @@ -79,9 +71,9 @@ def prize_rule(i): "Cinnabar Lab Fossil Room - Dome Fossil Pokemon": lambda state: state.has("Dome Fossil", player) and state.has("Cinnabar Island", player), "Route 12 - Sleeping Pokemon": lambda state: state.has("Poke Flute", player), "Route 16 - Sleeping Pokemon": lambda state: state.has("Poke Flute", player), - "Seafoam Islands B4F - Legendary Pokemon": lambda state: logic.can_strength(state, player) and state.has("Seafoam Boss Boulders", player), - "Vermilion Dock - Legendary Pokemon": lambda state: logic.can_surf(state, player), - "Cerulean Cave B1F - Legendary Pokemon": lambda state: logic.can_surf(state, player), + "Seafoam Islands B4F - Legendary Pokemon": lambda state: logic.can_strength(state, world, player) and state.has("Seafoam Boss Boulders", player), + "Vermilion Dock - Legendary Pokemon": lambda state: logic.can_surf(state, world, player), + "Cerulean Cave B1F - Legendary Pokemon": lambda state: logic.can_surf(state, world, player), **{f"Pokemon Tower {floor}F - Wild Pokemon - {slot}": lambda state: state.has("Silph Scope", player) for floor in range(3, 8) for slot in range(1, 11)}, "Pokemon Tower 6F - Restless Soul": lambda state: state.has("Silph Scope", player), # just for level scaling @@ -103,101 +95,101 @@ def prize_rule(i): "Route 22 - Trainer Parties": lambda state: state.has("Oak's Parcel", player), # # Rock Tunnel - "Rock Tunnel 1F - PokeManiac": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel 1F - Hiker 1": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel 1F - Hiker 2": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel 1F - Hiker 3": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel 1F - Jr. Trainer F 1": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel 1F - Jr. Trainer F 2": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel 1F - Jr. Trainer F 3": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - PokeManiac 1": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - PokeManiac 2": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - PokeManiac 3": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - Jr. Trainer F 1": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - Jr. Trainer F 2": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - Hiker 1": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - Hiker 2": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - Hiker 3": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - North Item": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - Northwest Item": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - Southwest Item": lambda state: logic.rock_tunnel(state, player), - "Rock Tunnel B1F - West Item": lambda state: logic.rock_tunnel(state, player), + "Rock Tunnel 1F - PokeManiac": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel 1F - Hiker 1": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel 1F - Hiker 2": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel 1F - Hiker 3": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel 1F - Jr. Trainer F 1": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel 1F - Jr. Trainer F 2": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel 1F - Jr. Trainer F 3": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - PokeManiac 1": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - PokeManiac 2": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - PokeManiac 3": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - Jr. Trainer F 1": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - Jr. Trainer F 2": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - Hiker 1": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - Hiker 2": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - Hiker 3": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - North Item": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - Northwest Item": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - Southwest Item": lambda state: logic.rock_tunnel(state, world, player), + "Rock Tunnel B1F - West Item": lambda state: logic.rock_tunnel(state, world, player), # PokÊdex check "Oak's Lab - Oak's Parcel Reward": lambda state: state.has("Oak's Parcel", player), # Hidden items - "Viridian Forest - Hidden Item Northwest by Trainer": lambda state: logic.can_get_hidden_items(state, + "Viridian Forest - Hidden Item Northwest by Trainer": lambda state: logic.can_get_hidden_items(state, world, player), - "Viridian Forest - Hidden Item Entrance Tree": lambda state: logic.can_get_hidden_items(state, player), - "Mt Moon B2F - Hidden Item Dead End Before Fossils": lambda state: logic.can_get_hidden_items(state, + "Viridian Forest - Hidden Item Entrance Tree": lambda state: logic.can_get_hidden_items(state, world, player), + "Mt Moon B2F - Hidden Item Dead End Before Fossils": lambda state: logic.can_get_hidden_items(state, world, player), - "Route 25 - Hidden Item Fence Outside Bill's House": lambda state: logic.can_get_hidden_items(state, + "Route 25 - Hidden Item Fence Outside Bill's House": lambda state: logic.can_get_hidden_items(state, world, player), - "Route 9 - Hidden Item Bush By Grass": lambda state: logic.can_get_hidden_items(state, player), - "S.S. Anne Kitchen - Hidden Item Kitchen Trash": lambda state: logic.can_get_hidden_items(state, player), - "S.S. Anne B1F Rooms - Hidden Item Under Pillow": lambda state: logic.can_get_hidden_items(state, player), + "Route 9 - Hidden Item Bush By Grass": lambda state: logic.can_get_hidden_items(state, world, player), + "S.S. Anne Kitchen - Hidden Item Kitchen Trash": lambda state: logic.can_get_hidden_items(state, world, player), + "S.S. Anne B1F Rooms - Hidden Item Under Pillow": lambda state: logic.can_get_hidden_items(state, world, player), "Route 10 - Hidden Item Behind Rock Tunnel Entrance Cuttable Tree": lambda - state: logic.can_get_hidden_items(state, player) and logic.can_cut(state, player), - "Route 10 - Hidden Item Bush": lambda state: logic.can_get_hidden_items(state, player), - "Rocket Hideout B1F - Hidden Item Pot Plant": lambda state: logic.can_get_hidden_items(state, player), - "Rocket Hideout B3F - Hidden Item Near East Item": lambda state: logic.can_get_hidden_items(state, player), + state: logic.can_get_hidden_items(state, world, player) and logic.can_cut(state, world, player), + "Route 10 - Hidden Item Bush": lambda state: logic.can_get_hidden_items(state, world, player), + "Rocket Hideout B1F - Hidden Item Pot Plant": lambda state: logic.can_get_hidden_items(state, world, player), + "Rocket Hideout B3F - Hidden Item Near East Item": lambda state: logic.can_get_hidden_items(state, world, player), "Rocket Hideout B4F - Hidden Item Behind Giovanni": lambda state: - logic.can_get_hidden_items(state, player), - "Pokemon Tower 5F - Hidden Item Near West Staircase": lambda state: logic.can_get_hidden_items(state, + logic.can_get_hidden_items(state, world, player), + "Pokemon Tower 5F - Hidden Item Near West Staircase": lambda state: logic.can_get_hidden_items(state, world, player), - "Route 13 - Hidden Item Dead End Bush": lambda state: logic.can_get_hidden_items(state, player), - "Route 13 - Hidden Item Dead End By Water Corner": lambda state: logic.can_get_hidden_items(state, player), - "Pokemon Mansion B1F - Hidden Item Secret Key Room Corner": lambda state: logic.can_get_hidden_items(state, + "Route 13 - Hidden Item Dead End Bush": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 13 - Hidden Item Dead End By Water Corner": lambda state: logic.can_get_hidden_items(state, world, player), + "Pokemon Mansion B1F - Hidden Item Secret Key Room Corner": lambda state: logic.can_get_hidden_items(state, world, player), - "Safari Zone West - Hidden Item Secret House Statue": lambda state: logic.can_get_hidden_items(state, + "Safari Zone West - Hidden Item Secret House Statue": lambda state: logic.can_get_hidden_items(state, world, player), - "Silph Co 5F - Hidden Item Pot Plant": lambda state: logic.can_get_hidden_items(state, player), - "Silph Co 9F - Hidden Item Nurse Bed": lambda state: logic.can_get_hidden_items(state, player), - "Saffron Copycat's House 2F - Hidden Item Desk": lambda state: logic.can_get_hidden_items(state, player), - "Cerulean Cave 1F - Hidden Item Center Rocks": lambda state: logic.can_get_hidden_items(state, player), - "Cerulean Cave B1F - Hidden Item Northeast Rocks": lambda state: logic.can_get_hidden_items(state, player), - "Power Plant - Hidden Item Central Dead End": lambda state: logic.can_get_hidden_items(state, player), - "Power Plant - Hidden Item Before Zapdos": lambda state: logic.can_get_hidden_items(state, player), - "Seafoam Islands B2F - Hidden Item Rock": lambda state: logic.can_get_hidden_items(state, player), - "Seafoam Islands B3F - Hidden Item Rock": lambda state: logic.can_get_hidden_items(state, player), + "Silph Co 5F - Hidden Item Pot Plant": lambda state: logic.can_get_hidden_items(state, world, player), + "Silph Co 9F - Hidden Item Nurse Bed": lambda state: logic.can_get_hidden_items(state, world, player), + "Saffron Copycat's House 2F - Hidden Item Desk": lambda state: logic.can_get_hidden_items(state, world, player), + "Cerulean Cave 1F - Hidden Item Center Rocks": lambda state: logic.can_get_hidden_items(state, world, player), + "Cerulean Cave B1F - Hidden Item Northeast Rocks": lambda state: logic.can_get_hidden_items(state, world, player), + "Power Plant - Hidden Item Central Dead End": lambda state: logic.can_get_hidden_items(state, world, player), + "Power Plant - Hidden Item Before Zapdos": lambda state: logic.can_get_hidden_items(state, world, player), + "Seafoam Islands B2F - Hidden Item Rock": lambda state: logic.can_get_hidden_items(state, world, player), + "Seafoam Islands B3F - Hidden Item Rock": lambda state: logic.can_get_hidden_items(state, world, player), # if you can reach any exit boulders, that means you can drop into the water tunnel and auto-surf - "Seafoam Islands B4F - Hidden Item Corner Island": lambda state: logic.can_get_hidden_items(state, player), + "Seafoam Islands B4F - Hidden Item Corner Island": lambda state: logic.can_get_hidden_items(state, world, player), "Pokemon Mansion 1F - Hidden Item Block Near Entrance Carpet": lambda - state: logic.can_get_hidden_items(state, player), - "Pokemon Mansion 3F - Hidden Item Behind Burglar": lambda state: logic.can_get_hidden_items(state, player), - "Route 23 - Hidden Item Rocks Before Victory Road": lambda state: logic.can_get_hidden_items(state, + state: logic.can_get_hidden_items(state, world, player), + "Pokemon Mansion 3F - Hidden Item Behind Burglar": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 23 - Hidden Item Rocks Before Victory Road": lambda state: logic.can_get_hidden_items(state, world, player), - "Route 23 - Hidden Item East Bush After Water": lambda state: logic.can_get_hidden_items(state, + "Route 23 - Hidden Item East Bush After Water": lambda state: logic.can_get_hidden_items(state, world, player), - "Route 23 - Hidden Item On Island": lambda state: logic.can_get_hidden_items(state, - player) and logic.can_surf(state, player), - "Victory Road 2F - Hidden Item Rock Before Moltres": lambda state: logic.can_get_hidden_items(state, + "Route 23 - Hidden Item On Island": lambda state: logic.can_get_hidden_items(state, world, + player) and logic.can_surf(state, world, player), + "Victory Road 2F - Hidden Item Rock Before Moltres": lambda state: logic.can_get_hidden_items(state, world, player), - "Victory Road 2F - Hidden Item Rock In Final Room": lambda state: logic.can_get_hidden_items(state, player), - "Viridian City - Hidden Item Cuttable Tree": lambda state: logic.can_get_hidden_items(state, player), - "Route 11 - Hidden Item Isolated Bush Near Gate": lambda state: logic.can_get_hidden_items(state, player), - "Route 12 - Hidden Item Bush Near Gate": lambda state: logic.can_get_hidden_items(state, player), - "Route 17 - Hidden Item In Grass": lambda state: logic.can_get_hidden_items(state, player), - "Route 17 - Hidden Item Near Northernmost Sign": lambda state: logic.can_get_hidden_items(state, player), - "Route 17 - Hidden Item East Center": lambda state: logic.can_get_hidden_items(state, player), - "Route 17 - Hidden Item West Center": lambda state: logic.can_get_hidden_items(state, player), - "Route 17 - Hidden Item Before Final Bridge": lambda state: logic.can_get_hidden_items(state, player), + "Victory Road 2F - Hidden Item Rock In Final Room": lambda state: logic.can_get_hidden_items(state, world, player), + "Viridian City - Hidden Item Cuttable Tree": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 11 - Hidden Item Isolated Bush Near Gate": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 12 - Hidden Item Bush Near Gate": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 17 - Hidden Item In Grass": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 17 - Hidden Item Near Northernmost Sign": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 17 - Hidden Item East Center": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 17 - Hidden Item West Center": lambda state: logic.can_get_hidden_items(state, world, player), + "Route 17 - Hidden Item Before Final Bridge": lambda state: logic.can_get_hidden_items(state, world, player), "Underground Path North South - Hidden Item Near Northern Stairs": lambda - state: logic.can_get_hidden_items(state, player), + state: logic.can_get_hidden_items(state, world, player), "Underground Path North South - Hidden Item Near Southern Stairs": lambda - state: logic.can_get_hidden_items(state, player), - "Underground Path West East - Hidden Item West": lambda state: logic.can_get_hidden_items(state, player), - "Underground Path West East - Hidden Item East": lambda state: logic.can_get_hidden_items(state, player), - "Celadon City - Hidden Item Dead End Near Cuttable Tree": lambda state: logic.can_get_hidden_items(state, + state: logic.can_get_hidden_items(state, world, player), + "Underground Path West East - Hidden Item West": lambda state: logic.can_get_hidden_items(state, world, player), + "Underground Path West East - Hidden Item East": lambda state: logic.can_get_hidden_items(state, world, player), + "Celadon City - Hidden Item Dead End Near Cuttable Tree": lambda state: logic.can_get_hidden_items(state, world, player), - "Route 25 - Hidden Item Northeast Of Grass": lambda state: logic.can_get_hidden_items(state, player), - "Mt Moon B2F - Hidden Item Lone Rock": lambda state: logic.can_get_hidden_items(state, player), - "Vermilion City - Hidden Item In Water Near Fan Club": lambda state: logic.can_get_hidden_items(state, - player) and logic.can_surf(state, player), - "Cerulean City - Hidden Item Gym Badge Guy's Backyard": lambda state: logic.can_get_hidden_items(state, + "Route 25 - Hidden Item Northeast Of Grass": lambda state: logic.can_get_hidden_items(state, world, player), + "Mt Moon B2F - Hidden Item Lone Rock": lambda state: logic.can_get_hidden_items(state, world, player), + "Vermilion City - Hidden Item In Water Near Fan Club": lambda state: logic.can_get_hidden_items(state, world, + player) and logic.can_surf(state, world, player), + "Cerulean City - Hidden Item Gym Badge Guy's Backyard": lambda state: logic.can_get_hidden_items(state, world, player), - "Route 4 - Hidden Item Plateau East Of Mt Moon": lambda state: logic.can_get_hidden_items(state, player), + "Route 4 - Hidden Item Plateau East Of Mt Moon": lambda state: logic.can_get_hidden_items(state, world, player), # Evolutions "Evolution - Ivysaur": lambda state: state.has("Bulbasaur", player) and logic.evolve_level(state, 16, player), @@ -281,5 +273,4 @@ def prize_rule(i): if loc.name.startswith("Pokedex"): mon = loc.name.split(" - ")[1] add_rule(loc, lambda state, i=mon: (state.has("Pokedex", player) or not - state.multiworld.require_pokedex[player]) and (state.has(i, player) - or state.has(f"Static {i}", player))) + world.options.require_pokedex) and (state.has(i, player) or state.has(f"Static {i}", player))) From 0d35cd4679f6f267bfbdb1b91325eb1cb2c6ee39 Mon Sep 17 00:00:00 2001 From: Remy Jette Date: Wed, 18 Sep 2024 11:42:22 -0700 Subject: [PATCH 064/212] BizHawkClient: Avoid error launching BizHawkClient via Launcher CLI (#3554) * Core, BizHawkClient: Support launching BizHawkClient via Launcher command line * Revert changes to LauncherComponents.py --- BizHawkClient.py | 3 ++- worlds/_bizhawk/client.py | 2 +- worlds/_bizhawk/context.py | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/BizHawkClient.py b/BizHawkClient.py index 86c8e5197e3f..743785b25f16 100644 --- a/BizHawkClient.py +++ b/BizHawkClient.py @@ -1,9 +1,10 @@ from __future__ import annotations +import sys import ModuleUpdate ModuleUpdate.update() from worlds._bizhawk.context import launch if __name__ == "__main__": - launch() + launch(*sys.argv[1:]) diff --git a/worlds/_bizhawk/client.py b/worlds/_bizhawk/client.py index 00370c277a17..415b663e60af 100644 --- a/worlds/_bizhawk/client.py +++ b/worlds/_bizhawk/client.py @@ -15,7 +15,7 @@ def launch_client(*args) -> None: from .context import launch - launch_subprocess(launch, name="BizHawkClient") + launch_subprocess(launch, name="BizHawkClient", args=args) component = Component("BizHawk Client", "BizHawkClient", component_type=Type.CLIENT, func=launch_client, diff --git a/worlds/_bizhawk/context.py b/worlds/_bizhawk/context.py index 896c8fb7b504..2a3965a54fcd 100644 --- a/worlds/_bizhawk/context.py +++ b/worlds/_bizhawk/context.py @@ -239,11 +239,11 @@ async def _patch_and_run_game(patch_file: str): logger.exception(exc) -def launch() -> None: +def launch(*launch_args) -> None: async def main(): parser = get_base_parser() parser.add_argument("patch_file", default="", type=str, nargs="?", help="Path to an Archipelago patch file") - args = parser.parse_args() + args = parser.parse_args(launch_args) ctx = BizHawkClientContext(args.connect, args.password) ctx.server_task = asyncio.create_task(server_loop(ctx), name="ServerLoop") From 2ee8b7535dcf0ca22b5dfb84bbc01570fd5ed69f Mon Sep 17 00:00:00 2001 From: Faris <162540354+FarisTheAncient@users.noreply.github.com> Date: Wed, 18 Sep 2024 13:53:17 -0500 Subject: [PATCH 065/212] OSRS: UT integration for OSRS to support chunksanity (#3776) --- worlds/osrs/__init__.py | 50 ++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/worlds/osrs/__init__.py b/worlds/osrs/__init__.py index 49aa1666084e..9ed55f218d9f 100644 --- a/worlds/osrs/__init__.py +++ b/worlds/osrs/__init__.py @@ -90,16 +90,18 @@ def generate_early(self) -> None: rnd = self.random starting_area = self.options.starting_area + + #UT specific override, if we are in normal gen, resolve starting area, we will get it from slot_data in UT + if not hasattr(self.multiworld, "generation_is_fake"): + if starting_area.value == StartingArea.option_any_bank: + self.starting_area_item = rnd.choice(starting_area_dict) + elif starting_area.value < StartingArea.option_chunksanity: + self.starting_area_item = starting_area_dict[starting_area.value] + else: + self.starting_area_item = rnd.choice(chunksanity_starting_chunks) - if starting_area.value == StartingArea.option_any_bank: - self.starting_area_item = rnd.choice(starting_area_dict) - elif starting_area.value < StartingArea.option_chunksanity: - self.starting_area_item = starting_area_dict[starting_area.value] - else: - self.starting_area_item = rnd.choice(chunksanity_starting_chunks) - - # Set Starting Chunk - self.multiworld.push_precollected(self.create_item(self.starting_area_item)) + # Set Starting Chunk + self.multiworld.push_precollected(self.create_item(self.starting_area_item)) """ This function pulls from LogicCSVToPython so that it sends the correct tag of the repository to the client. @@ -109,8 +111,23 @@ def generate_early(self) -> None: def fill_slot_data(self): data = self.options.as_dict("brutal_grinds") data["data_csv_tag"] = data_csv_tag + data["starting_area"] = str(self.starting_area_item) #these aren't actually strings, they just play them on tv return data + def interpret_slot_data(self, slot_data: typing.Dict[str, typing.Any]) -> None: + if "starting_area" in slot_data: + self.starting_area_item = slot_data["starting_area"] + menu_region = self.multiworld.get_region("Menu",self.player) + menu_region.exits.clear() #prevent making extra exits if players just reconnect to a differnet slot + if self.starting_area_item in chunksanity_special_region_names: + starting_area_region = chunksanity_special_region_names[self.starting_area_item] + else: + starting_area_region = self.starting_area_item[6:] # len("Area: ") + starting_entrance = menu_region.create_exit(f"Start->{starting_area_region}") + starting_entrance.access_rule = lambda state: state.has(self.starting_area_item, self.player) + starting_entrance.connect(self.region_name_to_data[starting_area_region]) + + def create_regions(self) -> None: """ called to place player's regions into the MultiWorld's regions list. If it's hard to separate, this can be done @@ -128,13 +145,14 @@ def create_regions(self) -> None: # Removes the word "Area: " from the item name to get the region it applies to. # I figured tacking "Area: " at the beginning would make it _easier_ to tell apart. Turns out it made it worse - if self.starting_area_item in chunksanity_special_region_names: - starting_area_region = chunksanity_special_region_names[self.starting_area_item] - else: - starting_area_region = self.starting_area_item[6:] # len("Area: ") - starting_entrance = menu_region.create_exit(f"Start->{starting_area_region}") - starting_entrance.access_rule = lambda state: state.has(self.starting_area_item, self.player) - starting_entrance.connect(self.region_name_to_data[starting_area_region]) + if self.starting_area_item != "": #if area hasn't been set, then we shouldn't connect it + if self.starting_area_item in chunksanity_special_region_names: + starting_area_region = chunksanity_special_region_names[self.starting_area_item] + else: + starting_area_region = self.starting_area_item[6:] # len("Area: ") + starting_entrance = menu_region.create_exit(f"Start->{starting_area_region}") + starting_entrance.access_rule = lambda state: state.has(self.starting_area_item, self.player) + starting_entrance.connect(self.region_name_to_data[starting_area_region]) # Create entrances between regions for region_row in region_rows: From fced9050a477d0d66d0342a405b71987ec5bc3be Mon Sep 17 00:00:00 2001 From: Doug Hoskisson Date: Wed, 18 Sep 2024 12:09:47 -0700 Subject: [PATCH 066/212] Zillion: fix logic cache (#3719) --- worlds/zillion/__init__.py | 27 ++++-------- worlds/zillion/logic.py | 85 ++++++++++++++++++++++---------------- 2 files changed, 57 insertions(+), 55 deletions(-) diff --git a/worlds/zillion/__init__.py b/worlds/zillion/__init__.py index cf61d93ca4ce..d5e86bb33292 100644 --- a/worlds/zillion/__init__.py +++ b/worlds/zillion/__init__.py @@ -4,7 +4,7 @@ import settings import threading import typing -from typing import Any, Dict, List, Set, Tuple, Optional +from typing import Any, Dict, List, Set, Tuple, Optional, Union import os import logging @@ -12,7 +12,7 @@ MultiWorld, Item, CollectionState, Entrance, Tutorial from .gen_data import GenData -from .logic import cs_to_zz_locs +from .logic import ZillionLogicCache from .region import ZillionLocation, ZillionRegion from .options import ZillionOptions, validate, z_option_groups from .id_maps import ZillionSlotInfo, get_slot_info, item_name_to_id as _item_name_to_id, \ @@ -21,7 +21,6 @@ from .item import ZillionItem from .patch import ZillionPatch -from zilliandomizer.randomizer import Randomizer as ZzRandomizer from zilliandomizer.system import System from zilliandomizer.logic_components.items import RESCUE, items as zz_items, Item as ZzItem from zilliandomizer.logic_components.locations import Location as ZzLocation, Req @@ -121,6 +120,7 @@ def flush(self) -> None: """ This is kind of a cache to avoid iterating through all the multiworld locations in logic. """ slot_data_ready: threading.Event """ This event is set in `generate_output` when the data is ready for `fill_slot_data` """ + logic_cache: Union[ZillionLogicCache, None] = None def __init__(self, world: MultiWorld, player: int): super().__init__(world, player) @@ -134,9 +134,6 @@ def _make_item_maps(self, start_char: Chars) -> None: self.id_to_zz_item = id_to_zz_item def generate_early(self) -> None: - if not hasattr(self.multiworld, "zillion_logic_cache"): - setattr(self.multiworld, "zillion_logic_cache", {}) - zz_op, item_counts = validate(self.options) if zz_op.early_scope: @@ -163,6 +160,8 @@ def create_regions(self) -> None: assert self.zz_system.randomizer, "generate_early hasn't been called" assert self.id_to_zz_item, "generate_early hasn't been called" p = self.player + logic_cache = ZillionLogicCache(p, self.zz_system.randomizer, self.id_to_zz_item) + self.logic_cache = logic_cache w = self.multiworld self.my_locations = [] @@ -201,15 +200,12 @@ def create_regions(self) -> None: if not zz_loc.item: def access_rule_wrapped(zz_loc_local: ZzLocation, - p: int, - zz_r: ZzRandomizer, - id_to_zz_item: Dict[int, ZzItem], + lc: ZillionLogicCache, cs: CollectionState) -> bool: - accessible = cs_to_zz_locs(cs, p, zz_r, id_to_zz_item) + accessible = lc.cs_to_zz_locs(cs) return zz_loc_local in accessible - access_rule = functools.partial(access_rule_wrapped, - zz_loc, self.player, self.zz_system.randomizer, self.id_to_zz_item) + access_rule = functools.partial(access_rule_wrapped, zz_loc, logic_cache) loc_name = self.zz_system.randomizer.loc_name_2_pretty[zz_loc.name] loc = ZillionLocation(zz_loc, self.player, loc_name, here) @@ -402,13 +398,6 @@ def fill_slot_data(self) -> ZillionSlotInfo: # json of WebHostLib.models.Slot game = self.zz_system.get_game() return get_slot_info(game.regions, game.char_order[0], game.loc_name_2_pretty) - # def modify_multidata(self, multidata: Dict[str, Any]) -> None: - # """For deeper modification of server multidata.""" - # # not modifying multidata, just want to call this at the end of the generation process - # cache = getattr(self.multiworld, "zillion_logic_cache") - # import sys - # print(sys.getsizeof(cache)) - # end of ordered Main.py calls def create_item(self, name: str) -> Item: diff --git a/worlds/zillion/logic.py b/worlds/zillion/logic.py index dcbc6131f1a9..a14910a200e5 100644 --- a/worlds/zillion/logic.py +++ b/worlds/zillion/logic.py @@ -1,4 +1,4 @@ -from typing import Dict, FrozenSet, Tuple, List, Counter as _Counter +from typing import Dict, FrozenSet, Mapping, Tuple, List, Counter as _Counter from BaseClasses import CollectionState @@ -44,38 +44,51 @@ def item_counts(cs: CollectionState, p: int) -> Tuple[Tuple[str, int], ...]: return tuple((item_name, cs.count(item_name, p)) for item_name in item_name_to_id) -LogicCacheType = Dict[int, Tuple[Dict[int, _Counter[str]], FrozenSet[Location]]] -""" { hash: (cs.prog_items, accessible_locations) } """ - - -def cs_to_zz_locs(cs: CollectionState, p: int, zz_r: Randomizer, id_to_zz_item: Dict[int, Item]) -> FrozenSet[Location]: - """ - given an Archipelago `CollectionState`, - returns frozenset of accessible zilliandomizer locations - """ - # caching this function because it would be slow - logic_cache: LogicCacheType = getattr(cs.multiworld, "zillion_logic_cache", {}) - _hash = set_randomizer_locs(cs, p, zz_r) - counts = item_counts(cs, p) - _hash += hash(counts) - - if _hash in logic_cache and logic_cache[_hash][0] == cs.prog_items: - # print("cache hit") - return logic_cache[_hash][1] - - # print("cache miss") - have_items: List[Item] = [] - for name, count in counts: - have_items.extend([id_to_zz_item[item_name_to_id[name]]] * count) - # have_req is the result of converting AP CollectionState to zilliandomizer collection state - have_req = zz_r.make_ability(have_items) - - # This `get_locations` is where the core of the logic comes in. - # It takes a zilliandomizer collection state (a set of the abilities that I have) - # and returns list of all the zilliandomizer locations I can access with those abilities. - tr = frozenset(zz_r.get_locations(have_req)) - - # save result in cache - logic_cache[_hash] = (cs.prog_items.copy(), tr) - - return tr +_cache_miss: Tuple[None, FrozenSet[Location]] = (None, frozenset()) + + +class ZillionLogicCache: + _cache: Dict[int, Tuple[_Counter[str], FrozenSet[Location]]] + """ `{ hash: (counter_from_prog_items, accessible_zz_locations) }` """ + _player: int + _zz_r: Randomizer + _id_to_zz_item: Mapping[int, Item] + + def __init__(self, player: int, zz_r: Randomizer, id_to_zz_item: Mapping[int, Item]) -> None: + self._cache = {} + self._player = player + self._zz_r = zz_r + self._id_to_zz_item = id_to_zz_item + + def cs_to_zz_locs(self, cs: CollectionState) -> FrozenSet[Location]: + """ + given an Archipelago `CollectionState`, + returns frozenset of accessible zilliandomizer locations + """ + # caching this function because it would be slow + _hash = set_randomizer_locs(cs, self._player, self._zz_r) + counts = item_counts(cs, self._player) + _hash += hash(counts) + + cntr, locs = self._cache.get(_hash, _cache_miss) + if cntr == cs.prog_items[self._player]: + # print("cache hit") + return locs + + # print("cache miss") + have_items: List[Item] = [] + for name, count in counts: + have_items.extend([self._id_to_zz_item[item_name_to_id[name]]] * count) + # have_req is the result of converting AP CollectionState to zilliandomizer collection state + have_req = self._zz_r.make_ability(have_items) + # print(f"{have_req=}") + + # This `get_locations` is where the core of the logic comes in. + # It takes a zilliandomizer collection state (a set of the abilities that I have) + # and returns list of all the zilliandomizer locations I can access with those abilities. + tr = frozenset(self._zz_r.get_locations(have_req)) + + # save result in cache + self._cache[_hash] = (cs.prog_items[self._player].copy(), tr) + + return tr From 025c5509916158d19ee22ee884754c56ab8958c0 Mon Sep 17 00:00:00 2001 From: Silvris <58583688+Silvris@users.noreply.github.com> Date: Wed, 18 Sep 2024 14:26:59 -0500 Subject: [PATCH 067/212] Ocarina of Time: options and general cleanup (#3767) * working? * missed one * fix old start inventory usage * missed global random usage --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- worlds/oot/Cosmetics.py | 41 ++++---- worlds/oot/Entrance.py | 4 +- worlds/oot/EntranceShuffle.py | 40 ++++---- worlds/oot/HintList.py | 24 ++--- worlds/oot/Hints.py | 66 ++++++------ worlds/oot/ItemPool.py | 46 ++++----- worlds/oot/Messages.py | 5 +- worlds/oot/Music.py | 17 ++-- worlds/oot/N64Patch.py | 5 +- worlds/oot/Options.py | 185 ++++++++++++++++++++++++++++++---- worlds/oot/Patches.py | 26 ++--- worlds/oot/RuleParser.py | 28 ++--- worlds/oot/Rules.py | 18 ++-- worlds/oot/TextBox.py | 2 +- worlds/oot/__init__.py | 86 ++++++++-------- 15 files changed, 367 insertions(+), 226 deletions(-) diff --git a/worlds/oot/Cosmetics.py b/worlds/oot/Cosmetics.py index f40f8a1ebb06..4a748c60aa9e 100644 --- a/worlds/oot/Cosmetics.py +++ b/worlds/oot/Cosmetics.py @@ -1,9 +1,9 @@ from .Utils import data_path, __version__ from .Colors import * import logging -import worlds.oot.Music as music -import worlds.oot.Sounds as sfx -import worlds.oot.IconManip as icon +from . import Music as music +from . import Sounds as sfx +from . import IconManip as icon from .JSONDump import dump_obj, CollapseList, CollapseDict, AlignedDict, SortedDict import json @@ -105,7 +105,7 @@ def patch_tunic_colors(rom, ootworld, symbols): # handle random if tunic_option == 'Random Choice': - tunic_option = random.choice(tunic_color_list) + tunic_option = ootworld.random.choice(tunic_color_list) # handle completely random if tunic_option == 'Completely Random': color = generate_random_color() @@ -156,9 +156,9 @@ def patch_navi_colors(rom, ootworld, symbols): # choose a random choice for the whole group if navi_option_inner == 'Random Choice': - navi_option_inner = random.choice(navi_color_list) + navi_option_inner = ootworld.random.choice(navi_color_list) if navi_option_outer == 'Random Choice': - navi_option_outer = random.choice(navi_color_list) + navi_option_outer = ootworld.random.choice(navi_color_list) if navi_option_outer == 'Match Inner': navi_option_outer = navi_option_inner @@ -233,9 +233,9 @@ def patch_sword_trails(rom, ootworld, symbols): # handle random choice if option_inner == 'Random Choice': - option_inner = random.choice(sword_trail_color_list) + option_inner = ootworld.random.choice(sword_trail_color_list) if option_outer == 'Random Choice': - option_outer = random.choice(sword_trail_color_list) + option_outer = ootworld.random.choice(sword_trail_color_list) if option_outer == 'Match Inner': option_outer = option_inner @@ -326,9 +326,9 @@ def patch_trails(rom, ootworld, trails): # handle random choice if option_inner == 'Random Choice': - option_inner = random.choice(trail_color_list) + option_inner = ootworld.random.choice(trail_color_list) if option_outer == 'Random Choice': - option_outer = random.choice(trail_color_list) + option_outer = ootworld.random.choice(trail_color_list) if option_outer == 'Match Inner': option_outer = option_inner @@ -393,7 +393,7 @@ def patch_gauntlet_colors(rom, ootworld, symbols): # handle random if gauntlet_option == 'Random Choice': - gauntlet_option = random.choice(gauntlet_color_list) + gauntlet_option = ootworld.random.choice(gauntlet_color_list) # handle completely random if gauntlet_option == 'Completely Random': color = generate_random_color() @@ -424,10 +424,10 @@ def patch_shield_frame_colors(rom, ootworld, symbols): # handle random if shield_frame_option == 'Random Choice': - shield_frame_option = random.choice(shield_frame_color_list) + shield_frame_option = ootworld.random.choice(shield_frame_color_list) # handle completely random if shield_frame_option == 'Completely Random': - color = [random.getrandbits(8), random.getrandbits(8), random.getrandbits(8)] + color = [ootworld.random.getrandbits(8), ootworld.random.getrandbits(8), ootworld.random.getrandbits(8)] # grab the color from the list elif shield_frame_option in shield_frame_colors: color = list(shield_frame_colors[shield_frame_option]) @@ -458,7 +458,7 @@ def patch_heart_colors(rom, ootworld, symbols): # handle random if heart_option == 'Random Choice': - heart_option = random.choice(heart_color_list) + heart_option = ootworld.random.choice(heart_color_list) # handle completely random if heart_option == 'Completely Random': color = generate_random_color() @@ -495,7 +495,7 @@ def patch_magic_colors(rom, ootworld, symbols): magic_option = format_cosmetic_option_result(ootworld.__dict__[magic_setting]) if magic_option == 'Random Choice': - magic_option = random.choice(magic_color_list) + magic_option = ootworld.random.choice(magic_color_list) if magic_option == 'Completely Random': color = generate_random_color() @@ -559,7 +559,7 @@ def patch_button_colors(rom, ootworld, symbols): # handle random if button_option == 'Random Choice': - button_option = random.choice(list(button_colors.keys())) + button_option = ootworld.random.choice(list(button_colors.keys())) # handle completely random if button_option == 'Completely Random': fixed_font_color = [10, 10, 10] @@ -618,11 +618,11 @@ def patch_sfx(rom, ootworld, symbols): rom.write_int16(loc, sound_id) else: if selection == 'random-choice': - selection = random.choice(sfx.get_hook_pool(hook)).value.keyword + selection = ootworld.random.choice(sfx.get_hook_pool(hook)).value.keyword elif selection == 'random-ear-safe': - selection = random.choice(sfx.get_hook_pool(hook, "TRUE")).value.keyword + selection = ootworld.random.choice(sfx.get_hook_pool(hook, "TRUE")).value.keyword elif selection == 'completely-random': - selection = random.choice(sfx.standard).value.keyword + selection = ootworld.random.choice(sfx.standard).value.keyword sound_id = sound_dict[selection] for loc in hook.value.locations: rom.write_int16(loc, sound_id) @@ -644,7 +644,7 @@ def patch_instrument(rom, ootworld, symbols): choice = ootworld.sfx_ocarina if choice == 'random-choice': - choice = random.choice(list(instruments.keys())) + choice = ootworld.random.choice(list(instruments.keys())) rom.write_byte(0x00B53C7B, instruments[choice]) rom.write_byte(0x00B4BF6F, instruments[choice]) # For Lost Woods Skull Kids' minigame in Lost Woods @@ -769,7 +769,6 @@ def patch_instrument(rom, ootworld, symbols): def patch_cosmetics(ootworld, rom): # Use the world's slot seed for cosmetics - random.seed(ootworld.multiworld.per_slot_randoms[ootworld.player].random()) # try to detect the cosmetic patch data format versioned_patch_set = None diff --git a/worlds/oot/Entrance.py b/worlds/oot/Entrance.py index 6c4b6428f53e..8b041f045dcf 100644 --- a/worlds/oot/Entrance.py +++ b/worlds/oot/Entrance.py @@ -3,9 +3,9 @@ class OOTEntrance(Entrance): game: str = 'Ocarina of Time' - def __init__(self, player, world, name='', parent=None): + def __init__(self, player, multiworld, name='', parent=None): super(OOTEntrance, self).__init__(player, name, parent) - self.multiworld = world + self.multiworld = multiworld self.access_rules = [] self.reverse = None self.replaces = None diff --git a/worlds/oot/EntranceShuffle.py b/worlds/oot/EntranceShuffle.py index cda442ffb109..66c5df804cb4 100644 --- a/worlds/oot/EntranceShuffle.py +++ b/worlds/oot/EntranceShuffle.py @@ -440,16 +440,16 @@ class EntranceShuffleError(Exception): def shuffle_random_entrances(ootworld): - world = ootworld.multiworld + multiworld = ootworld.multiworld player = ootworld.player # Gather locations to keep reachable for validation all_state = ootworld.get_state_with_complete_itempool() all_state.sweep_for_advancements(locations=ootworld.get_locations()) - locations_to_ensure_reachable = {loc for loc in world.get_reachable_locations(all_state, player) if not (loc.type == 'Drop' or (loc.type == 'Event' and 'Subrule' in loc.name))} + locations_to_ensure_reachable = {loc for loc in multiworld.get_reachable_locations(all_state, player) if not (loc.type == 'Drop' or (loc.type == 'Event' and 'Subrule' in loc.name))} # Set entrance data for all entrances - set_all_entrances_data(world, player) + set_all_entrances_data(multiworld, player) # Determine entrance pools based on settings one_way_entrance_pools = {} @@ -547,10 +547,10 @@ def shuffle_random_entrances(ootworld): none_state = CollectionState(ootworld.multiworld) # Plando entrances - if world.plando_connections[player]: + if ootworld.options.plando_connections: rollbacks = [] all_targets = {**one_way_target_entrance_pools, **target_entrance_pools} - for conn in world.plando_connections[player]: + for conn in ootworld.options.plando_connections: try: entrance = ootworld.get_entrance(conn.entrance) exit = ootworld.get_entrance(conn.exit) @@ -628,7 +628,7 @@ def shuffle_random_entrances(ootworld): logging.getLogger('').error(f'Root has too many entrances left after shuffling entrances') # Game is beatable new_all_state = ootworld.get_state_with_complete_itempool() - if not world.has_beaten_game(new_all_state, player): + if not multiworld.has_beaten_game(new_all_state, player): raise EntranceShuffleError('Cannot beat game') # Validate world validate_world(ootworld, None, locations_to_ensure_reachable, all_state, none_state) @@ -675,7 +675,7 @@ def place_one_way_priority_entrance(ootworld, priority_name, allowed_regions, al all_state, none_state, one_way_entrance_pools, one_way_target_entrance_pools): avail_pool = list(chain.from_iterable(one_way_entrance_pools[t] for t in allowed_types if t in one_way_entrance_pools)) - ootworld.multiworld.random.shuffle(avail_pool) + ootworld.random.shuffle(avail_pool) for entrance in avail_pool: if entrance.replaces: @@ -725,11 +725,11 @@ def shuffle_entrance_pool(ootworld, pool_type, entrance_pool, target_entrances, raise EntranceShuffleError(f'Entrance placement attempt count exceeded for world {ootworld.player}') def shuffle_entrances(ootworld, pool_type, entrances, target_entrances, rollbacks, locations_to_ensure_reachable, all_state, none_state): - ootworld.multiworld.random.shuffle(entrances) + ootworld.random.shuffle(entrances) for entrance in entrances: if entrance.connected_region != None: continue - ootworld.multiworld.random.shuffle(target_entrances) + ootworld.random.shuffle(target_entrances) # Here we deliberately introduce bias by prioritizing certain interiors, i.e. the ones most likely to cause problems. # success rate over randomization if pool_type in {'InteriorSoft', 'MixedSoft'}: @@ -785,7 +785,7 @@ def split_entrances_by_requirements(ootworld, entrances_to_split, assumed_entran # TODO: improve this function def validate_world(ootworld, entrance_placed, locations_to_ensure_reachable, all_state_orig, none_state_orig): - world = ootworld.multiworld + multiworld = ootworld.multiworld player = ootworld.player all_state = all_state_orig.copy() @@ -828,8 +828,8 @@ def validate_world(ootworld, entrance_placed, locations_to_ensure_reachable, all if ootworld.shuffle_interior_entrances and (ootworld.misc_hints or ootworld.hints != 'none') and \ (entrance_placed == None or entrance_placed.type in ['Interior', 'SpecialInterior']): # Ensure Kak Potion Shop entrances are in the same hint area so there is no ambiguity as to which entrance is used for hints - potion_front = get_entrance_replacing(world.get_region('Kak Potion Shop Front', player), 'Kakariko Village -> Kak Potion Shop Front', player) - potion_back = get_entrance_replacing(world.get_region('Kak Potion Shop Back', player), 'Kak Backyard -> Kak Potion Shop Back', player) + potion_front = get_entrance_replacing(multiworld.get_region('Kak Potion Shop Front', player), 'Kakariko Village -> Kak Potion Shop Front', player) + potion_back = get_entrance_replacing(multiworld.get_region('Kak Potion Shop Back', player), 'Kak Backyard -> Kak Potion Shop Back', player) if potion_front is not None and potion_back is not None and not same_hint_area(potion_front, potion_back): raise EntranceShuffleError('Kak Potion Shop entrances are not in the same hint area') elif (potion_front and not potion_back) or (not potion_front and potion_back): @@ -840,8 +840,8 @@ def validate_world(ootworld, entrance_placed, locations_to_ensure_reachable, all # When cows are shuffled, ensure the same thing for Impa's House, since the cow is reachable from both sides if ootworld.shuffle_cows: - impas_front = get_entrance_replacing(world.get_region('Kak Impas House', player), 'Kakariko Village -> Kak Impas House', player) - impas_back = get_entrance_replacing(world.get_region('Kak Impas House Back', player), 'Kak Impas Ledge -> Kak Impas House Back', player) + impas_front = get_entrance_replacing(multiworld.get_region('Kak Impas House', player), 'Kakariko Village -> Kak Impas House', player) + impas_back = get_entrance_replacing(multiworld.get_region('Kak Impas House Back', player), 'Kak Impas Ledge -> Kak Impas House Back', player) if impas_front is not None and impas_back is not None and not same_hint_area(impas_front, impas_back): raise EntranceShuffleError('Kak Impas House entrances are not in the same hint area') elif (impas_front and not impas_back) or (not impas_front and impas_back): @@ -861,25 +861,25 @@ def validate_world(ootworld, entrance_placed, locations_to_ensure_reachable, all any(region for region in time_travel_state.adult_reachable_regions[player] if region.time_passes)): raise EntranceShuffleError('Time passing is not guaranteed as both ages') - if ootworld.starting_age == 'child' and (world.get_region('Temple of Time', player) not in time_travel_state.adult_reachable_regions[player]): + if ootworld.starting_age == 'child' and (multiworld.get_region('Temple of Time', player) not in time_travel_state.adult_reachable_regions[player]): raise EntranceShuffleError('Path to ToT as adult not guaranteed') - if ootworld.starting_age == 'adult' and (world.get_region('Temple of Time', player) not in time_travel_state.child_reachable_regions[player]): + if ootworld.starting_age == 'adult' and (multiworld.get_region('Temple of Time', player) not in time_travel_state.child_reachable_regions[player]): raise EntranceShuffleError('Path to ToT as child not guaranteed') if (ootworld.shuffle_interior_entrances or ootworld.shuffle_overworld_entrances) and \ (entrance_placed == None or entrance_placed.type in ['Interior', 'SpecialInterior', 'Overworld', 'Spawn', 'WarpSong', 'OwlDrop']): # Ensure big poe shop is always reachable as adult - if world.get_region('Market Guard House', player) not in time_travel_state.adult_reachable_regions[player]: + if multiworld.get_region('Market Guard House', player) not in time_travel_state.adult_reachable_regions[player]: raise EntranceShuffleError('Big Poe Shop access not guaranteed as adult') if ootworld.shopsanity == 'off': # Ensure that Goron and Zora shops are accessible as adult - if world.get_region('GC Shop', player) not in all_state.adult_reachable_regions[player]: + if multiworld.get_region('GC Shop', player) not in all_state.adult_reachable_regions[player]: raise EntranceShuffleError('Goron City Shop not accessible as adult') - if world.get_region('ZD Shop', player) not in all_state.adult_reachable_regions[player]: + if multiworld.get_region('ZD Shop', player) not in all_state.adult_reachable_regions[player]: raise EntranceShuffleError('Zora\'s Domain Shop not accessible as adult') if ootworld.open_forest == 'closed': # Ensure that Kokiri Shop is reachable as child with no items - if world.get_region('KF Kokiri Shop', player) not in none_state.child_reachable_regions[player]: + if multiworld.get_region('KF Kokiri Shop', player) not in none_state.child_reachable_regions[player]: raise EntranceShuffleError('Kokiri Forest Shop not accessible as child in closed forest') diff --git a/worlds/oot/HintList.py b/worlds/oot/HintList.py index b0f20858e747..28a5d37a516a 100644 --- a/worlds/oot/HintList.py +++ b/worlds/oot/HintList.py @@ -1,5 +1,3 @@ -import random - from BaseClasses import LocationProgressType from .Items import OOTItem @@ -28,7 +26,7 @@ class Hint(object): text = "" type = [] - def __init__(self, name, text, type, choice=None): + def __init__(self, name, text, type, rand, choice=None): self.name = name self.type = [type] if not isinstance(type, list) else type @@ -36,31 +34,31 @@ def __init__(self, name, text, type, choice=None): self.text = text else: if choice == None: - self.text = random.choice(text) + self.text = rand.choice(text) else: self.text = text[choice] -def getHint(item, clearer_hint=False): +def getHint(item, rand, clearer_hint=False): if item in hintTable: textOptions, clearText, hintType = hintTable[item] if clearer_hint: if clearText == None: - return Hint(item, textOptions, hintType, 0) - return Hint(item, clearText, hintType) + return Hint(item, textOptions, hintType, rand, 0) + return Hint(item, clearText, hintType, rand) else: - return Hint(item, textOptions, hintType) + return Hint(item, textOptions, hintType, rand) elif isinstance(item, str): - return Hint(item, item, 'generic') + return Hint(item, item, 'generic', rand) else: # is an Item - return Hint(item.name, item.hint_text, 'item') + return Hint(item.name, item.hint_text, 'item', rand) def getHintGroup(group, world): ret = [] for name in hintTable: - hint = getHint(name, world.clearer_hints) + hint = getHint(name, world.random, world.clearer_hints) if hint.name in world.always_hints and group == 'always': hint.type = 'always' @@ -95,7 +93,7 @@ def getHintGroup(group, world): def getRequiredHints(world): ret = [] for name in hintTable: - hint = getHint(name) + hint = getHint(name, world.random) if 'always' in hint.type or hint.name in conditional_always and conditional_always[hint.name](world): ret.append(hint) return ret @@ -1689,7 +1687,7 @@ def hintExclusions(world, clear_cache=False): location_hints = [] for name in hintTable: - hint = getHint(name, world.clearer_hints) + hint = getHint(name, world.random, world.clearer_hints) if any(item in hint.type for item in ['always', 'dual_always', diff --git a/worlds/oot/Hints.py b/worlds/oot/Hints.py index e63e135e5045..c01241d04832 100644 --- a/worlds/oot/Hints.py +++ b/worlds/oot/Hints.py @@ -136,13 +136,13 @@ def getItemGenericName(item): def isRestrictedDungeonItem(dungeon, item): if not isinstance(item, OOTItem): return False - if (item.map or item.compass) and dungeon.multiworld.shuffle_mapcompass == 'dungeon': + if (item.map or item.compass) and dungeon.world.options.shuffle_mapcompass == 'dungeon': return item in dungeon.dungeon_items - if item.type == 'SmallKey' and dungeon.multiworld.shuffle_smallkeys == 'dungeon': + if item.type == 'SmallKey' and dungeon.world.options.shuffle_smallkeys == 'dungeon': return item in dungeon.small_keys - if item.type == 'BossKey' and dungeon.multiworld.shuffle_bosskeys == 'dungeon': + if item.type == 'BossKey' and dungeon.world.options.shuffle_bosskeys == 'dungeon': return item in dungeon.boss_key - if item.type == 'GanonBossKey' and dungeon.multiworld.shuffle_ganon_bosskey == 'dungeon': + if item.type == 'GanonBossKey' and dungeon.world.options.shuffle_ganon_bosskey == 'dungeon': return item in dungeon.boss_key return False @@ -261,8 +261,8 @@ def filterTrailingSpace(text): '', ] -def getSimpleHintNoPrefix(item): - hint = getHint(item.name, True).text +def getSimpleHintNoPrefix(item, rand): + hint = getHint(item.name, rand, True).text for prefix in hintPrefixes: if hint.startswith(prefix): @@ -417,9 +417,9 @@ def is_dungeon_item(self, item): # Formats the hint text for this area with proper grammar. # Dungeons are hinted differently depending on the clearer_hints setting. - def text(self, clearer_hints, preposition=False, world=None): + def text(self, rand, clearer_hints, preposition=False, world=None): if self.is_dungeon: - text = getHint(self.dungeon_name, clearer_hints).text + text = getHint(self.dungeon_name, rand, clearer_hints).text else: text = str(self) prefix, suffix = text.replace('#', '').split(' ', 1) @@ -489,7 +489,7 @@ def get_woth_hint(world, checked): if getattr(location.parent_region, "dungeon", None): world.woth_dungeon += 1 - location_text = getHint(location.parent_region.dungeon.name, world.clearer_hints).text + location_text = getHint(location.parent_region.dungeon.name, world.random, world.clearer_hints).text else: location_text = get_hint_area(location) @@ -570,9 +570,9 @@ def get_good_item_hint(world, checked): location = world.hint_rng.choice(locations) checked[location.player].add(location.name) - item_text = getHint(getItemGenericName(location.item), world.clearer_hints).text + item_text = getHint(getItemGenericName(location.item), world.hint_rng, world.clearer_hints).text if getattr(location.parent_region, "dungeon", None): - location_text = getHint(location.parent_region.dungeon.name, world.clearer_hints).text + location_text = getHint(location.parent_region.dungeon.name, world.hint_rng, world.clearer_hints).text return (GossipText('#%s# hoards #%s#.' % (attach_name(location_text, location, world), attach_name(item_text, location.item, world)), ['Green', 'Red']), location) else: @@ -613,10 +613,10 @@ def get_specific_item_hint(world, checked): location = world.hint_rng.choice(locations) checked[location.player].add(location.name) - item_text = getHint(getItemGenericName(location.item), world.clearer_hints).text + item_text = getHint(getItemGenericName(location.item), world.hint_rng, world.clearer_hints).text if getattr(location.parent_region, "dungeon", None): - location_text = getHint(location.parent_region.dungeon.name, world.clearer_hints).text + location_text = getHint(location.parent_region.dungeon.name, world.hint_rng, world.clearer_hints).text if world.hint_dist_user.get('vague_named_items', False): return (GossipText('#%s# may be on the hero\'s path.' % (location_text), ['Green']), location) else: @@ -648,9 +648,9 @@ def get_random_location_hint(world, checked): checked[location.player].add(location.name) dungeon = location.parent_region.dungeon - item_text = getHint(getItemGenericName(location.item), world.clearer_hints).text + item_text = getHint(getItemGenericName(location.item), world.hint_rng, world.clearer_hints).text if dungeon: - location_text = getHint(dungeon.name, world.clearer_hints).text + location_text = getHint(dungeon.name, world.hint_rng, world.clearer_hints).text return (GossipText('#%s# hoards #%s#.' % (attach_name(location_text, location, world), attach_name(item_text, location.item, world)), ['Green', 'Red']), location) else: @@ -675,7 +675,7 @@ def get_specific_hint(world, checked, type): location_text = hint.text if '#' not in location_text: location_text = '#%s#' % location_text - item_text = getHint(getItemGenericName(location.item), world.clearer_hints).text + item_text = getHint(getItemGenericName(location.item), world.hint_rng, world.clearer_hints).text return (GossipText('%s #%s#.' % (attach_name(location_text, location, world), attach_name(item_text, location.item, world)), ['Green', 'Red']), location) @@ -724,9 +724,9 @@ def get_entrance_hint(world, checked): connected_region = entrance.connected_region if connected_region.dungeon: - region_text = getHint(connected_region.dungeon.name, world.clearer_hints).text + region_text = getHint(connected_region.dungeon.name, world.hint_rng, world.clearer_hints).text else: - region_text = getHint(connected_region.name, world.clearer_hints).text + region_text = getHint(connected_region.name, world.hint_rng, world.clearer_hints).text if '#' not in region_text: region_text = '#%s#' % region_text @@ -882,10 +882,10 @@ def buildWorldGossipHints(world, checkedLocations=None): if location.name in world.hint_text_overrides: location_text = world.hint_text_overrides[location.name] else: - location_text = getHint(location.name, world.clearer_hints).text + location_text = getHint(location.name, world.hint_rng, world.clearer_hints).text if '#' not in location_text: location_text = '#%s#' % location_text - item_text = getHint(getItemGenericName(location.item), world.clearer_hints).text + item_text = getHint(getItemGenericName(location.item), world.hint_rng, world.clearer_hints).text add_hint(world, stoneGroups, GossipText('%s #%s#.' % (attach_name(location_text, location, world), attach_name(item_text, location.item, world)), ['Green', 'Red']), hint_dist['always'][1], location, force_reachable=True) logging.getLogger('').debug('Placed always hint for %s.', location.name) @@ -1003,16 +1003,16 @@ def buildAltarHints(world, messages, include_rewards=True, include_wincons=True) ('Goron Ruby', 'Red'), ('Zora Sapphire', 'Blue'), ] - child_text += getHint('Spiritual Stone Text Start', world.clearer_hints).text + '\x04' + child_text += getHint('Spiritual Stone Text Start', world.hint_rng, world.clearer_hints).text + '\x04' for (reward, color) in bossRewardsSpiritualStones: child_text += buildBossString(reward, color, world) - child_text += getHint('Child Altar Text End', world.clearer_hints).text + child_text += getHint('Child Altar Text End', world.hint_rng, world.clearer_hints).text child_text += '\x0B' update_message_by_id(messages, 0x707A, get_raw_text(child_text), 0x20) # text that appears at altar as an adult. adult_text = '\x08' - adult_text += getHint('Adult Altar Text Start', world.clearer_hints).text + '\x04' + adult_text += getHint('Adult Altar Text Start', world.hint_rng, world.clearer_hints).text + '\x04' if include_rewards: bossRewardsMedallions = [ ('Light Medallion', 'Light Blue'), @@ -1029,7 +1029,7 @@ def buildAltarHints(world, messages, include_rewards=True, include_wincons=True) adult_text += '\x04' adult_text += buildGanonBossKeyString(world) else: - adult_text += getHint('Adult Altar Text End', world.clearer_hints).text + adult_text += getHint('Adult Altar Text End', world.hint_rng, world.clearer_hints).text adult_text += '\x0B' update_message_by_id(messages, 0x7057, get_raw_text(adult_text), 0x20) @@ -1044,7 +1044,7 @@ def buildBossString(reward, color, world): text = GossipText(f"\x08\x13{item_icon}One in #@'s pocket#...", [color], prefix='') else: location = world.hinted_dungeon_reward_locations[reward] - location_text = HintArea.at(location).text(world.clearer_hints, preposition=True) + location_text = HintArea.at(location).text(world.hint_rng, world.clearer_hints, preposition=True) text = GossipText(f"\x08\x13{item_icon}One {location_text}...", [color], prefix='') return str(text) + '\x04' @@ -1054,7 +1054,7 @@ def buildBridgeReqsString(world): if world.bridge == 'open': string += "The awakened ones will have #already created a bridge# to the castle where the evil dwells." else: - item_req_string = getHint('bridge_' + world.bridge, world.clearer_hints).text + item_req_string = getHint('bridge_' + world.bridge, world.hint_rng, world.clearer_hints).text if world.bridge == 'medallions': item_req_string = str(world.bridge_medallions) + ' ' + item_req_string elif world.bridge == 'stones': @@ -1077,7 +1077,7 @@ def buildGanonBossKeyString(world): string += "And the door to the \x05\x41evil one\x05\x40's chamber will be left #unlocked#." else: if world.shuffle_ganon_bosskey == 'on_lacs': - item_req_string = getHint('lacs_' + world.lacs_condition, world.clearer_hints).text + item_req_string = getHint('lacs_' + world.lacs_condition, world.hint_rng, world.clearer_hints).text if world.lacs_condition == 'medallions': item_req_string = str(world.lacs_medallions) + ' ' + item_req_string elif world.lacs_condition == 'stones': @@ -1092,7 +1092,7 @@ def buildGanonBossKeyString(world): item_req_string = '#%s#' % item_req_string bk_location_string = "provided by Zelda once %s are retrieved" % item_req_string elif world.shuffle_ganon_bosskey in ['stones', 'medallions', 'dungeons', 'tokens', 'hearts']: - item_req_string = getHint('ganonBK_' + world.shuffle_ganon_bosskey, world.clearer_hints).text + item_req_string = getHint('ganonBK_' + world.shuffle_ganon_bosskey, world.hint_rng, world.clearer_hints).text if world.shuffle_ganon_bosskey == 'medallions': item_req_string = str(world.ganon_bosskey_medallions) + ' ' + item_req_string elif world.shuffle_ganon_bosskey == 'stones': @@ -1107,7 +1107,7 @@ def buildGanonBossKeyString(world): item_req_string = '#%s#' % item_req_string bk_location_string = "automatically granted once %s are retrieved" % item_req_string else: - bk_location_string = getHint('ganonBK_' + world.shuffle_ganon_bosskey, world.clearer_hints).text + bk_location_string = getHint('ganonBK_' + world.shuffle_ganon_bosskey, world.hint_rng, world.clearer_hints).text string += "And the \x05\x41evil one\x05\x40's key will be %s." % bk_location_string return str(GossipText(string, ['Yellow'], prefix='')) @@ -1142,16 +1142,16 @@ def buildMiscItemHints(world, messages): if location.player != world.player: player_text = world.multiworld.get_player_name(location.player) + "'s " if location.game == 'Ocarina of Time': - area = HintArea.at(location, use_alt_hint=data['use_alt_hint']).text(world.clearer_hints, world=None) + area = HintArea.at(location, use_alt_hint=data['use_alt_hint']).text(world.hint_rng, world.clearer_hints, world=None) else: area = location.name text = data['default_item_text'].format(area=rom_safe_text(player_text + area)) elif 'default_item_fallback' in data: text = data['default_item_fallback'] else: - text = getHint('Validation Line', world.clearer_hints).text + text = getHint('Validation Line', world.hint_rng, world.clearer_hints).text location = world.get_location('Ganons Tower Boss Key Chest') - text += f"#{getHint(getItemGenericName(location.item), world.clearer_hints).text}#" + text += f"#{getHint(getItemGenericName(location.item), world.hint_rng, world.clearer_hints).text}#" for find, replace in data.get('replace', {}).items(): text = text.replace(find, replace) @@ -1165,7 +1165,7 @@ def buildMiscLocationHints(world, messages): if hint_type in world.misc_hints: location = world.get_location(data['item_location']) item = location.item - item_text = getHint(getItemGenericName(item), world.clearer_hints).text + item_text = getHint(getItemGenericName(item), world.hint_rng, world.clearer_hints).text if item.player != world.player: item_text += f' for {world.multiworld.get_player_name(item.player)}' text = data['location_text'].format(item=rom_safe_text(item_text)) diff --git a/worlds/oot/ItemPool.py b/worlds/oot/ItemPool.py index 6ca6bc9268a9..805d1fc72dd2 100644 --- a/worlds/oot/ItemPool.py +++ b/worlds/oot/ItemPool.py @@ -295,16 +295,14 @@ def get_spec(tup, key, default): def get_junk_pool(ootworld): junk_pool[:] = list(junk_pool_base) - if ootworld.junk_ice_traps == 'on': + if ootworld.options.junk_ice_traps == 'on': junk_pool.append(('Ice Trap', 10)) - elif ootworld.junk_ice_traps in ['mayhem', 'onslaught']: + elif ootworld.options.junk_ice_traps in ['mayhem', 'onslaught']: junk_pool[:] = [('Ice Trap', 1)] return junk_pool -def get_junk_item(count=1, pool=None, plando_pool=None): - global random - +def get_junk_item(rand, count=1, pool=None, plando_pool=None): if count < 1: raise ValueError("get_junk_item argument 'count' must be greater than 0.") @@ -323,17 +321,17 @@ def get_junk_item(count=1, pool=None, plando_pool=None): raise RuntimeError("Not enough junk is available in the item pool to replace removed items.") else: junk_items, junk_weights = zip(*junk_pool) - return_pool.extend(random.choices(junk_items, weights=junk_weights, k=count)) + return_pool.extend(rand.choices(junk_items, weights=junk_weights, k=count)) return return_pool -def replace_max_item(items, item, max): +def replace_max_item(items, item, max, rand): count = 0 for i,val in enumerate(items): if val == item: if count >= max: - items[i] = get_junk_item()[0] + items[i] = get_junk_item(rand)[0] count += 1 @@ -375,7 +373,7 @@ def get_pool_core(world): pending_junk_pool.append('Kokiri Sword') if world.shuffle_ocarinas: pending_junk_pool.append('Ocarina') - if world.shuffle_beans and world.multiworld.start_inventory[world.player].value.get('Magic Bean Pack', 0): + if world.shuffle_beans and world.options.start_inventory.value.get('Magic Bean Pack', 0): pending_junk_pool.append('Magic Bean Pack') if (world.gerudo_fortress != "open" and world.shuffle_hideoutkeys in ['any_dungeon', 'overworld', 'keysanity', 'regional']): @@ -450,7 +448,7 @@ def get_pool_core(world): else: item = deku_scrubs_items[location.vanilla_item] if isinstance(item, list): - item = random.choices([i[0] for i in item], weights=[i[1] for i in item], k=1)[0] + item = world.random.choices([i[0] for i in item], weights=[i[1] for i in item], k=1)[0] shuffle_item = True # Kokiri Sword @@ -489,7 +487,7 @@ def get_pool_core(world): # Cows elif location.vanilla_item == 'Milk': if world.shuffle_cows: - item = get_junk_item()[0] + item = get_junk_item(world.random)[0] shuffle_item = world.shuffle_cows if not shuffle_item: location.show_in_spoiler = False @@ -508,13 +506,13 @@ def get_pool_core(world): item = 'Rutos Letter' ruto_bottles -= 1 else: - item = random.choice(normal_bottles) + item = world.random.choice(normal_bottles) shuffle_item = True # Magic Beans elif location.vanilla_item == 'Buy Magic Bean': if world.shuffle_beans: - item = 'Magic Bean Pack' if not world.multiworld.start_inventory[world.player].value.get('Magic Bean Pack', 0) else get_junk_item()[0] + item = 'Magic Bean Pack' if not world.options.start_inventory.value.get('Magic Bean Pack', 0) else get_junk_item(world.random)[0] shuffle_item = world.shuffle_beans if not shuffle_item: location.show_in_spoiler = False @@ -528,7 +526,7 @@ def get_pool_core(world): # Adult Trade Item elif location.vanilla_item == 'Pocket Egg': potential_trade_items = world.adult_trade_start if world.adult_trade_start else trade_items - item = random.choice(sorted(potential_trade_items)) + item = world.random.choice(sorted(potential_trade_items)) world.selected_adult_trade_item = item shuffle_item = True @@ -541,7 +539,7 @@ def get_pool_core(world): shuffle_item = False location.show_in_spoiler = False if shuffle_item and world.gerudo_fortress == 'normal' and 'Thieves Hideout' in world.key_rings: - item = get_junk_item()[0] if location.name != 'Hideout 1 Torch Jail Gerudo Key' else 'Small Key Ring (Thieves Hideout)' + item = get_junk_item(world.random)[0] if location.name != 'Hideout 1 Torch Jail Gerudo Key' else 'Small Key Ring (Thieves Hideout)' # Freestanding Rupees and Hearts elif location.type in ['ActorOverride', 'Freestanding', 'RupeeTower']: @@ -618,7 +616,7 @@ def get_pool_core(world): elif dungeon.name in world.key_rings and not dungeon.small_keys: item = dungeon.item_name("Small Key Ring") elif dungeon.name in world.key_rings: - item = get_junk_item()[0] + item = get_junk_item(world.random)[0] shuffle_item = True # Any other item in a dungeon. elif location.type in ["Chest", "NPC", "Song", "Collectable", "Cutscene", "BossHeart"]: @@ -630,7 +628,7 @@ def get_pool_core(world): if shuffle_setting in ['remove', 'startwith']: world.multiworld.push_precollected(dungeon_collection[-1]) world.remove_from_start_inventory.append(dungeon_collection[-1].name) - item = get_junk_item()[0] + item = get_junk_item(world.random)[0] shuffle_item = True elif shuffle_setting in ['any_dungeon', 'overworld', 'regional']: dungeon_collection[-1].priority = True @@ -658,9 +656,9 @@ def get_pool_core(world): shop_non_item_count = len(world.shop_prices) shop_item_count = shop_slots_count - shop_non_item_count - pool.extend(random.sample(remain_shop_items, shop_item_count)) + pool.extend(world.random.sample(remain_shop_items, shop_item_count)) if shop_non_item_count: - pool.extend(get_junk_item(shop_non_item_count)) + pool.extend(get_junk_item(world.random, shop_non_item_count)) # Extra rupees for shopsanity. if world.shopsanity not in ['off', '0']: @@ -706,19 +704,19 @@ def get_pool_core(world): if world.shuffle_ganon_bosskey in ['stones', 'medallions', 'dungeons', 'tokens', 'hearts', 'triforce']: placed_items['Gift from Sages'] = 'Boss Key (Ganons Castle)' - pool.extend(get_junk_item()) + pool.extend(get_junk_item(world.random)) else: placed_items['Gift from Sages'] = IGNORE_LOCATION world.get_location('Gift from Sages').show_in_spoiler = False if world.junk_ice_traps == 'off': - replace_max_item(pool, 'Ice Trap', 0) + replace_max_item(pool, 'Ice Trap', 0, world.random) elif world.junk_ice_traps == 'onslaught': for item in [item for item, weight in junk_pool_base] + ['Recovery Heart', 'Bombs (20)', 'Arrows (30)']: - replace_max_item(pool, item, 0) + replace_max_item(pool, item, 0, world.random) for item, maximum in item_difficulty_max[world.item_pool_value].items(): - replace_max_item(pool, item, maximum) + replace_max_item(pool, item, maximum, world.random) # world.distribution.alter_pool(world, pool) @@ -748,7 +746,7 @@ def get_pool_core(world): pending_item = pending_junk_pool.pop() if not junk_candidates: raise RuntimeError("Not enough junk exists in item pool for %s (+%d others) to be added." % (pending_item, len(pending_junk_pool) - 1)) - junk_item = random.choice(junk_candidates) + junk_item = world.random.choice(junk_candidates) junk_candidates.remove(junk_item) pool.remove(junk_item) pool.append(pending_item) diff --git a/worlds/oot/Messages.py b/worlds/oot/Messages.py index 25c2a9934dd4..5059c01f3c8d 100644 --- a/worlds/oot/Messages.py +++ b/worlds/oot/Messages.py @@ -1,6 +1,5 @@ # text details: https://wiki.cloudmodding.com/oot/Text_Format -import random from .HintList import misc_item_hint_table, misc_location_hint_table from .TextBox import line_wrap from .Utils import find_last @@ -969,7 +968,7 @@ def repack_messages(rom, messages, permutation=None, always_allow_skip=True, spe rom.write_bytes(entry_offset, [0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) # shuffles the messages in the game, making sure to keep various message types in their own group -def shuffle_messages(messages, except_hints=True, always_allow_skip=True): +def shuffle_messages(messages, rand, except_hints=True, always_allow_skip=True): permutation = [i for i, _ in enumerate(messages)] @@ -1002,7 +1001,7 @@ def is_exempt(m): def shuffle_group(group): group_permutation = [i for i, _ in enumerate(group)] - random.shuffle(group_permutation) + rand.shuffle(group_permutation) for index_from, index_to in enumerate(group_permutation): permutation[group[index_to].index] = group[index_from].index diff --git a/worlds/oot/Music.py b/worlds/oot/Music.py index 6ed1ab54ae5d..1bb3b65aac3f 100644 --- a/worlds/oot/Music.py +++ b/worlds/oot/Music.py @@ -1,6 +1,5 @@ #Much of this is heavily inspired from and/or based on az64's / Deathbasket's MM randomizer -import random import os from .Utils import compare_version, data_path @@ -175,7 +174,7 @@ def process_sequences(rom, sequences, target_sequences, disabled_source_sequence return sequences, target_sequences -def shuffle_music(sequences, target_sequences, music_mapping, log): +def shuffle_music(sequences, target_sequences, music_mapping, log, rand): sequence_dict = {} sequence_ids = [] @@ -191,7 +190,7 @@ def shuffle_music(sequences, target_sequences, music_mapping, log): # Shuffle the sequences if len(sequences) < len(target_sequences): raise Exception(f"Not enough custom music/fanfares ({len(sequences)}) to omit base Ocarina of Time sequences ({len(target_sequences)}).") - random.shuffle(sequence_ids) + rand.shuffle(sequence_ids) sequences = [] for target_sequence in target_sequences: @@ -328,7 +327,7 @@ def rebuild_sequences(rom, sequences): rom.write_byte(base, j.instrument_set) -def shuffle_pointers_table(rom, ids, music_mapping, log): +def shuffle_pointers_table(rom, ids, music_mapping, log, rand): # Read in all the Music data bgm_data = {} bgm_ids = [] @@ -341,7 +340,7 @@ def shuffle_pointers_table(rom, ids, music_mapping, log): bgm_ids.append(bgm[0]) # shuffle data - random.shuffle(bgm_ids) + rand.shuffle(bgm_ids) # Write Music data back in random ordering for bgm in ids: @@ -424,13 +423,13 @@ def randomize_music(rom, ootworld, music_mapping): # process_sequences(rom, sequences, target_sequences, disabled_source_sequences, disabled_target_sequences, bgm_ids) # if ootworld.background_music == 'random_custom_only': # sequences = [seq for seq in sequences if seq.cosmetic_name not in [x[0] for x in bgm_ids] or seq.cosmetic_name in music_mapping.values()] - # sequences, log = shuffle_music(sequences, target_sequences, music_mapping, log) + # sequences, log = shuffle_music(sequences, target_sequences, music_mapping, log, ootworld.random) # if ootworld.fanfares in ['random', 'random_custom_only'] or ff_mapped or ocarina_mapped: # process_sequences(rom, fanfare_sequences, fanfare_target_sequences, disabled_source_sequences, disabled_target_sequences, ff_ids, 'fanfare') # if ootworld.fanfares == 'random_custom_only': # fanfare_sequences = [seq for seq in fanfare_sequences if seq.cosmetic_name not in [x[0] for x in fanfare_sequence_ids] or seq.cosmetic_name in music_mapping.values()] - # fanfare_sequences, log = shuffle_music(fanfare_sequences, fanfare_target_sequences, music_mapping, log) + # fanfare_sequences, log = shuffle_music(fanfare_sequences, fanfare_target_sequences, music_mapping, log, ootworld.random) # if disabled_source_sequences: # log = disable_music(rom, disabled_source_sequences.values(), log) @@ -438,10 +437,10 @@ def randomize_music(rom, ootworld, music_mapping): # rebuild_sequences(rom, sequences + fanfare_sequences) # else: if ootworld.background_music == 'randomized' or bgm_mapped: - log = shuffle_pointers_table(rom, bgm_ids, music_mapping, log) + log = shuffle_pointers_table(rom, bgm_ids, music_mapping, log, ootworld.random) if ootworld.fanfares == 'randomized' or ff_mapped or ocarina_mapped: - log = shuffle_pointers_table(rom, ff_ids, music_mapping, log) + log = shuffle_pointers_table(rom, ff_ids, music_mapping, log, ootworld.random) # end_else if disabled_target_sequences: log = disable_music(rom, disabled_target_sequences.values(), log) diff --git a/worlds/oot/N64Patch.py b/worlds/oot/N64Patch.py index 5af3279e8077..3013a94a8e3b 100644 --- a/worlds/oot/N64Patch.py +++ b/worlds/oot/N64Patch.py @@ -1,5 +1,4 @@ import struct -import random import io import array import zlib @@ -88,7 +87,7 @@ def write_block_section(start, key_skip, in_data, patch_data, is_continue): # xor_range is the range the XOR key will read from. This range is not # too important, but I tried to choose from a section that didn't really # have big gaps of 0s which we want to avoid. -def create_patch_file(rom, xor_range=(0x00B8AD30, 0x00F029A0)): +def create_patch_file(rom, rand, xor_range=(0x00B8AD30, 0x00F029A0)): dma_start, dma_end = rom.get_dma_table_range() # add header @@ -100,7 +99,7 @@ def create_patch_file(rom, xor_range=(0x00B8AD30, 0x00F029A0)): # get random xor key. This range is chosen because it generally # doesn't have many sections of 0s - xor_address = random.Random().randint(*xor_range) + xor_address = rand.randint(*xor_range) patch_data.append_int32(xor_address) new_buffer = copy.copy(rom.original.buffer) diff --git a/worlds/oot/Options.py b/worlds/oot/Options.py index daf072adb59c..613c5d01b381 100644 --- a/worlds/oot/Options.py +++ b/worlds/oot/Options.py @@ -1,6 +1,8 @@ import typing import random -from Options import Option, DefaultOnToggle, Toggle, Range, OptionList, OptionSet, DeathLink, PlandoConnections +from dataclasses import dataclass +from Options import Option, DefaultOnToggle, Toggle, Range, OptionList, OptionSet, DeathLink, PlandoConnections, \ + PerGameCommonOptions, OptionGroup from .EntranceShuffle import entrance_shuffle_table from .LogicTricks import normalized_name_tricks from .ColorSFXOptions import * @@ -1281,21 +1283,166 @@ class LogicTricks(OptionList): valid_keys_casefold = True -# All options assembled into a single dict -oot_options: typing.Dict[str, type(Option)] = { - "plando_connections": OoTPlandoConnections, - "logic_rules": Logic, - "logic_no_night_tokens_without_suns_song": NightTokens, - **open_options, - **world_options, - **bridge_options, - **dungeon_items_options, - **shuffle_options, - **timesavers_options, - **misc_options, - **itempool_options, - **cosmetic_options, - **sfx_options, - "logic_tricks": LogicTricks, - "death_link": DeathLink, -} +@dataclass +class OoTOptions(PerGameCommonOptions): + plando_connections: OoTPlandoConnections + death_link: DeathLink + logic_rules: Logic + logic_no_night_tokens_without_suns_song: NightTokens + logic_tricks: LogicTricks + open_forest: Forest + open_kakariko: Gate + open_door_of_time: DoorOfTime + zora_fountain: Fountain + gerudo_fortress: Fortress + bridge: Bridge + trials: Trials + starting_age: StartingAge + shuffle_interior_entrances: InteriorEntrances + shuffle_grotto_entrances: GrottoEntrances + shuffle_dungeon_entrances: DungeonEntrances + shuffle_overworld_entrances: OverworldEntrances + owl_drops: OwlDrops + warp_songs: WarpSongs + spawn_positions: SpawnPositions + shuffle_bosses: BossEntrances + # mix_entrance_pools: MixEntrancePools + # decouple_entrances: DecoupleEntrances + triforce_hunt: TriforceHunt + triforce_goal: TriforceGoal + extra_triforce_percentage: ExtraTriforces + bombchus_in_logic: LogicalChus + dungeon_shortcuts: DungeonShortcuts + dungeon_shortcuts_list: DungeonShortcutsList + mq_dungeons_mode: MQDungeons + mq_dungeons_list: MQDungeonList + mq_dungeons_count: MQDungeonCount + # empty_dungeons_mode: EmptyDungeons + # empty_dungeons_list: EmptyDungeonList + # empty_dungeon_count: EmptyDungeonCount + bridge_stones: BridgeStones + bridge_medallions: BridgeMedallions + bridge_rewards: BridgeRewards + bridge_tokens: BridgeTokens + bridge_hearts: BridgeHearts + shuffle_mapcompass: ShuffleMapCompass + shuffle_smallkeys: ShuffleKeys + shuffle_hideoutkeys: ShuffleGerudoKeys + shuffle_bosskeys: ShuffleBossKeys + enhance_map_compass: EnhanceMC + shuffle_ganon_bosskey: ShuffleGanonBK + ganon_bosskey_medallions: GanonBKMedallions + ganon_bosskey_stones: GanonBKStones + ganon_bosskey_rewards: GanonBKRewards + ganon_bosskey_tokens: GanonBKTokens + ganon_bosskey_hearts: GanonBKHearts + key_rings: KeyRings + key_rings_list: KeyRingList + shuffle_song_items: SongShuffle + shopsanity: ShopShuffle + shop_slots: ShopSlots + shopsanity_prices: ShopPrices + tokensanity: TokenShuffle + shuffle_scrubs: ScrubShuffle + shuffle_child_trade: ShuffleChildTrade + shuffle_freestanding_items: ShuffleFreestanding + shuffle_pots: ShufflePots + shuffle_crates: ShuffleCrates + shuffle_cows: ShuffleCows + shuffle_beehives: ShuffleBeehives + shuffle_kokiri_sword: ShuffleSword + shuffle_ocarinas: ShuffleOcarinas + shuffle_gerudo_card: ShuffleCard + shuffle_beans: ShuffleBeans + shuffle_medigoron_carpet_salesman: ShuffleMedigoronCarpet + shuffle_frog_song_rupees: ShuffleFrogRupees + no_escape_sequence: SkipEscape + no_guard_stealth: SkipStealth + no_epona_race: SkipEponaRace + skip_some_minigame_phases: SkipMinigamePhases + complete_mask_quest: CompleteMaskQuest + useful_cutscenes: UsefulCutscenes + fast_chests: FastChests + free_scarecrow: FreeScarecrow + fast_bunny_hood: FastBunny + plant_beans: PlantBeans + chicken_count: ChickenCount + big_poe_count: BigPoeCount + fae_torch_count: FAETorchCount + correct_chest_appearances: CorrectChestAppearance + minor_items_as_major_chest: MinorInMajor + invisible_chests: InvisibleChests + correct_potcrate_appearances: CorrectPotCrateAppearance + hints: Hints + misc_hints: MiscHints + hint_dist: HintDistribution + text_shuffle: TextShuffle + damage_multiplier: DamageMultiplier + deadly_bonks: DeadlyBonks + no_collectible_hearts: HeroMode + starting_tod: StartingToD + blue_fire_arrows: BlueFireArrows + fix_broken_drops: FixBrokenDrops + start_with_consumables: ConsumableStart + start_with_rupees: RupeeStart + item_pool_value: ItemPoolValue + junk_ice_traps: IceTraps + ice_trap_appearance: IceTrapVisual + adult_trade_start: AdultTradeStart + default_targeting: Targeting + display_dpad: DisplayDpad + dpad_dungeon_menu: DpadDungeonMenu + correct_model_colors: CorrectColors + background_music: BackgroundMusic + fanfares: Fanfares + ocarina_fanfares: OcarinaFanfares + kokiri_color: kokiri_color + goron_color: goron_color + zora_color: zora_color + silver_gauntlets_color: silver_gauntlets_color + golden_gauntlets_color: golden_gauntlets_color + mirror_shield_frame_color: mirror_shield_frame_color + navi_color_default_inner: navi_color_default_inner + navi_color_default_outer: navi_color_default_outer + navi_color_enemy_inner: navi_color_enemy_inner + navi_color_enemy_outer: navi_color_enemy_outer + navi_color_npc_inner: navi_color_npc_inner + navi_color_npc_outer: navi_color_npc_outer + navi_color_prop_inner: navi_color_prop_inner + navi_color_prop_outer: navi_color_prop_outer + sword_trail_duration: SwordTrailDuration + sword_trail_color_inner: sword_trail_color_inner + sword_trail_color_outer: sword_trail_color_outer + bombchu_trail_color_inner: bombchu_trail_color_inner + bombchu_trail_color_outer: bombchu_trail_color_outer + boomerang_trail_color_inner: boomerang_trail_color_inner + boomerang_trail_color_outer: boomerang_trail_color_outer + heart_color: heart_color + magic_color: magic_color + a_button_color: a_button_color + b_button_color: b_button_color + c_button_color: c_button_color + start_button_color: start_button_color + sfx_navi_overworld: sfx_navi_overworld + sfx_navi_enemy: sfx_navi_enemy + sfx_low_hp: sfx_low_hp + sfx_menu_cursor: sfx_menu_cursor + sfx_menu_select: sfx_menu_select + sfx_nightfall: sfx_nightfall + sfx_horse_neigh: sfx_horse_neigh + sfx_hover_boots: sfx_hover_boots + sfx_ocarina: SfxOcarina + + +oot_option_groups: typing.List[OptionGroup] = [ + OptionGroup("Open", [option for option in open_options.values()]), + OptionGroup("World", [*[option for option in world_options.values()], + *[option for option in bridge_options.values()]]), + OptionGroup("Shuffle", [option for option in shuffle_options.values()]), + OptionGroup("Dungeon Items", [option for option in dungeon_items_options.values()]), + OptionGroup("Timesavers", [option for option in timesavers_options.values()]), + OptionGroup("Misc", [option for option in misc_options.values()]), + OptionGroup("Item Pool", [option for option in itempool_options.values()]), + OptionGroup("Cosmetics", [option for option in cosmetic_options.values()]), + OptionGroup("SFX", [option for option in sfx_options.values()]) +] diff --git a/worlds/oot/Patches.py b/worlds/oot/Patches.py index 2219d7bb95a8..561d7c3f7b6e 100644 --- a/worlds/oot/Patches.py +++ b/worlds/oot/Patches.py @@ -208,8 +208,8 @@ def patch_rom(world, rom): # Fix Ice Cavern Alcove Camera if not world.dungeon_mq['Ice Cavern']: - rom.write_byte(0x2BECA25,0x01); - rom.write_byte(0x2BECA2D,0x01); + rom.write_byte(0x2BECA25,0x01) + rom.write_byte(0x2BECA2D,0x01) # Fix GS rewards to be static rom.write_int32(0xEA3934, 0) @@ -944,7 +944,7 @@ def add_scene_exits(scene_start, offset = 0): scene_table = 0x00B71440 for scene in range(0x00, 0x65): - scene_start = rom.read_int32(scene_table + (scene * 0x14)); + scene_start = rom.read_int32(scene_table + (scene * 0x14)) add_scene_exits(scene_start) return exit_table @@ -1632,10 +1632,10 @@ def set_entrance_updates(entrances): reward_text = None elif getattr(location.item, 'looks_like_item', None) is not None: jabu_item = location.item.looks_like_item - reward_text = create_fake_name(getHint(getItemGenericName(location.item.looks_like_item), True).text) + reward_text = create_fake_name(getHint(getItemGenericName(location.item.looks_like_item), world.hint_rng, True).text) else: jabu_item = location.item - reward_text = getHint(getItemGenericName(location.item), True).text + reward_text = getHint(getItemGenericName(location.item), world.hint_rng, True).text # Update "Princess Ruto got the Spiritual Stone!" text before the midboss in Jabu if reward_text is None: @@ -1687,7 +1687,7 @@ def set_entrance_updates(entrances): # Sets hooks for gossip stone changes - symbol = rom.sym("GOSSIP_HINT_CONDITION"); + symbol = rom.sym("GOSSIP_HINT_CONDITION") if world.hints == 'none': rom.write_int32(symbol, 0) @@ -2264,9 +2264,9 @@ def update_scrub_text(message, text_replacement, default_price, price, item_name # text shuffle if world.text_shuffle == 'except_hints': - permutation = shuffle_messages(messages, except_hints=True) + permutation = shuffle_messages(messages, world.random, except_hints=True) elif world.text_shuffle == 'complete': - permutation = shuffle_messages(messages, except_hints=False) + permutation = shuffle_messages(messages, world.random, except_hints=False) # update warp song preview text boxes update_warp_song_text(messages, world) @@ -2358,7 +2358,7 @@ def update_scrub_text(message, text_replacement, default_price, price, item_name # Write numeric seed truncated to 32 bits for rng seeding # Overwritten with new seed every time a new rng value is generated - rng_seed = world.multiworld.per_slot_randoms[world.player].getrandbits(32) + rng_seed = world.random.getrandbits(32) rom.write_int32(rom.sym('RNG_SEED_INT'), rng_seed) # Static initial seed value for one-time random actions like the Hylian Shield discount rom.write_int32(rom.sym('RANDOMIZER_RNG_SEED'), rng_seed) @@ -2560,7 +2560,7 @@ def scene_get_actors(rom, actor_func, scene_data, scene, alternate=None, process room_count = rom.read_byte(scene_data + 1) room_list = scene_start + (rom.read_int32(scene_data + 4) & 0x00FFFFFF) for _ in range(0, room_count): - room_data = rom.read_int32(room_list); + room_data = rom.read_int32(room_list) if not room_data in processed_rooms: actors.update(room_get_actors(rom, actor_func, room_data, scene)) @@ -2591,7 +2591,7 @@ def get_actor_list(rom, actor_func): actors = {} scene_table = 0x00B71440 for scene in range(0x00, 0x65): - scene_data = rom.read_int32(scene_table + (scene * 0x14)); + scene_data = rom.read_int32(scene_table + (scene * 0x14)) actors.update(scene_get_actors(rom, actor_func, scene_data, scene)) return actors @@ -2605,7 +2605,7 @@ def get_override_itemid(override_table, scene, type, flags): def remove_entrance_blockers(rom): def remove_entrance_blockers_do(rom, actor_id, actor, scene): if actor_id == 0x014E and scene == 97: - actor_var = rom.read_int16(actor + 14); + actor_var = rom.read_int16(actor + 14) if actor_var == 0xFF01: rom.write_int16(actor + 14, 0x0700) get_actor_list(rom, remove_entrance_blockers_do) @@ -2789,7 +2789,7 @@ def place_shop_items(rom, world, shop_items, messages, locations, init_shop_id=F purchase_text = '\x08%s %d Rupees\x09\x01%s\x01\x1B\x05\x42Buy\x01Don\'t buy\x05\x40\x02' % (split_item_name[0], location.price, split_item_name[1]) else: if item_display.game == "Ocarina of Time": - shop_item_name = getSimpleHintNoPrefix(item_display) + shop_item_name = getSimpleHintNoPrefix(item_display, world.random) else: shop_item_name = item_display.name diff --git a/worlds/oot/RuleParser.py b/worlds/oot/RuleParser.py index 0791ad5d1a3f..e5390474b779 100644 --- a/worlds/oot/RuleParser.py +++ b/worlds/oot/RuleParser.py @@ -53,7 +53,7 @@ def isliteral(expr): class Rule_AST_Transformer(ast.NodeTransformer): def __init__(self, world, player): - self.multiworld = world + self.world = world self.player = player self.events = set() # map Region -> rule ast string -> item name @@ -86,9 +86,9 @@ def visit_Name(self, node): ctx=ast.Load()), args=[ast.Str(escaped_items[node.id]), ast.Constant(self.player)], keywords=[]) - elif node.id in self.multiworld.__dict__: + elif node.id in self.world.__dict__: # Settings are constant - return ast.parse('%r' % self.multiworld.__dict__[node.id], mode='eval').body + return ast.parse('%r' % self.world.__dict__[node.id], mode='eval').body elif node.id in State.__dict__: return self.make_call(node, node.id, [], []) elif node.id in self.kwarg_defaults or node.id in allowed_globals: @@ -137,7 +137,7 @@ def visit_Tuple(self, node): if isinstance(count, ast.Name): # Must be a settings constant - count = ast.parse('%r' % self.multiworld.__dict__[count.id], mode='eval').body + count = ast.parse('%r' % self.world.__dict__[count.id], mode='eval').body if iname in escaped_items: iname = escaped_items[iname] @@ -182,7 +182,7 @@ def visit_Call(self, node): new_args = [] for child in node.args: if isinstance(child, ast.Name): - if child.id in self.multiworld.__dict__: + if child.id in self.world.__dict__: # child = ast.Attribute( # value=ast.Attribute( # value=ast.Name(id='state', ctx=ast.Load()), @@ -190,7 +190,7 @@ def visit_Call(self, node): # ctx=ast.Load()), # attr=child.id, # ctx=ast.Load()) - child = ast.Constant(getattr(self.multiworld, child.id)) + child = ast.Constant(getattr(self.world, child.id)) elif child.id in rule_aliases: child = self.visit(child) elif child.id in escaped_items: @@ -242,7 +242,7 @@ def escape_or_string(n): # Fast check for json can_use if (len(node.ops) == 1 and isinstance(node.ops[0], ast.Eq) and isinstance(node.left, ast.Name) and isinstance(node.comparators[0], ast.Name) - and node.left.id not in self.multiworld.__dict__ and node.comparators[0].id not in self.multiworld.__dict__): + and node.left.id not in self.world.__dict__ and node.comparators[0].id not in self.world.__dict__): return ast.NameConstant(node.left.id == node.comparators[0].id) node.left = escape_or_string(node.left) @@ -378,7 +378,7 @@ def replace_subrule(self, target, node): # Requires the target regions have been defined in the world. def create_delayed_rules(self): for region_name, node, subrule_name in self.delayed_rules: - region = self.multiworld.multiworld.get_region(region_name, self.player) + region = self.world.multiworld.get_region(region_name, self.player) event = OOTLocation(self.player, subrule_name, type='Event', parent=region, internal=True) event.show_in_spoiler = False @@ -395,7 +395,7 @@ def create_delayed_rules(self): set_rule(event, access_rule) region.locations.append(event) - self.multiworld.make_event_item(subrule_name, event) + self.world.make_event_item(subrule_name, event) # Safeguard in case this is called multiple times per world self.delayed_rules.clear() @@ -448,7 +448,7 @@ def here(self, node): ## Handlers for compile-time optimizations (former State functions) def at_day(self, node): - if self.multiworld.ensure_tod_access: + if self.world.ensure_tod_access: # tod has DAY or (tod == NONE and (ss or find a path from a provider)) # parsing is better than constructing this expression by hand r = self.current_spot if type(self.current_spot) == OOTRegion else self.current_spot.parent_region @@ -456,7 +456,7 @@ def at_day(self, node): return ast.NameConstant(True) def at_dampe_time(self, node): - if self.multiworld.ensure_tod_access: + if self.world.ensure_tod_access: # tod has DAMPE or (tod == NONE and (find a path from a provider)) # parsing is better than constructing this expression by hand r = self.current_spot if type(self.current_spot) == OOTRegion else self.current_spot.parent_region @@ -464,10 +464,10 @@ def at_dampe_time(self, node): return ast.NameConstant(True) def at_night(self, node): - if self.current_spot.type == 'GS Token' and self.multiworld.logic_no_night_tokens_without_suns_song: + if self.current_spot.type == 'GS Token' and self.world.logic_no_night_tokens_without_suns_song: # Using visit here to resolve 'can_play' rule return self.visit(ast.parse('can_play(Suns_Song)', mode='eval').body) - if self.multiworld.ensure_tod_access: + if self.world.ensure_tod_access: # tod has DAMPE or (tod == NONE and (ss or find a path from a provider)) # parsing is better than constructing this expression by hand r = self.current_spot if type(self.current_spot) == OOTRegion else self.current_spot.parent_region @@ -501,7 +501,7 @@ def current_spot_adult_access(self, node): return ast.parse(f"state._oot_reach_as_age('{r.name}', 'adult', {self.player})", mode='eval').body def current_spot_starting_age_access(self, node): - return self.current_spot_child_access(node) if self.multiworld.starting_age == 'child' else self.current_spot_adult_access(node) + return self.current_spot_child_access(node) if self.world.starting_age == 'child' else self.current_spot_adult_access(node) def has_bottle(self, node): return ast.parse(f"state._oot_has_bottle({self.player})", mode='eval').body diff --git a/worlds/oot/Rules.py b/worlds/oot/Rules.py index 36563a3f9f27..00f4aeb4b7d5 100644 --- a/worlds/oot/Rules.py +++ b/worlds/oot/Rules.py @@ -10,7 +10,7 @@ from BaseClasses import CollectionState, MultiWorld from worlds.generic.Rules import set_rule, add_rule, add_item_rule, forbid_item -from ..AutoWorld import LogicMixin +from worlds.AutoWorld import LogicMixin class OOTLogic(LogicMixin): @@ -132,17 +132,17 @@ def _oot_update_age_reachable_regions(self, player): def set_rules(ootworld): logger = logging.getLogger('') - world = ootworld.multiworld + multiworld = ootworld.multiworld player = ootworld.player if ootworld.logic_rules != 'no_logic': if ootworld.triforce_hunt: - world.completion_condition[player] = lambda state: state.has('Triforce Piece', player, ootworld.triforce_goal) + multiworld.completion_condition[player] = lambda state: state.has('Triforce Piece', player, ootworld.triforce_goal) else: - world.completion_condition[player] = lambda state: state.has('Triforce', player) + multiworld.completion_condition[player] = lambda state: state.has('Triforce', player) # ganon can only carry triforce - world.get_location('Ganon', player).item_rule = lambda item: item.name == 'Triforce' + multiworld.get_location('Ganon', player).item_rule = lambda item: item.name == 'Triforce' # is_child = ootworld.parser.parse_rule('is_child') guarantee_hint = ootworld.parser.parse_rule('guarantee_hint') @@ -156,22 +156,22 @@ def set_rules(ootworld): if (ootworld.dungeon_mq['Forest Temple'] and ootworld.shuffle_bosskeys == 'dungeon' and ootworld.shuffle_smallkeys == 'dungeon' and ootworld.tokensanity == 'off'): # First room chest needs to be a small key. Make sure the boss key isn't placed here. - location = world.get_location('Forest Temple MQ First Room Chest', player) + location = multiworld.get_location('Forest Temple MQ First Room Chest', player) forbid_item(location, 'Boss Key (Forest Temple)', ootworld.player) if ootworld.shuffle_song_items in {'song', 'dungeon'} and not ootworld.songs_as_items: # Sheik in Ice Cavern is the only song location in a dungeon; need to ensure that it cannot be anything else. # This is required if map/compass included, or any_dungeon shuffle. - location = world.get_location('Sheik in Ice Cavern', player) + location = multiworld.get_location('Sheik in Ice Cavern', player) add_item_rule(location, lambda item: oot_is_item_of_type(item, 'Song')) if ootworld.shuffle_child_trade == 'skip_child_zelda': # Song from Impa must be local - location = world.get_location('Song from Impa', player) + location = multiworld.get_location('Song from Impa', player) add_item_rule(location, lambda item: item.player == player) for name in ootworld.always_hints: - add_rule(world.get_location(name, player), guarantee_hint) + add_rule(multiworld.get_location(name, player), guarantee_hint) # TODO: re-add hints once they are working # if location.type == 'HintStone' and ootworld.hints == 'mask': diff --git a/worlds/oot/TextBox.py b/worlds/oot/TextBox.py index a9db47996299..e502d739048f 100644 --- a/worlds/oot/TextBox.py +++ b/worlds/oot/TextBox.py @@ -1,4 +1,4 @@ -import worlds.oot.Messages as Messages +from . import Messages # Least common multiple of all possible character widths. A line wrap must occur when the combined widths of all of the # characters on a line reach this value. diff --git a/worlds/oot/__init__.py b/worlds/oot/__init__.py index 94587a41a0f2..b93f60b2a08e 100644 --- a/worlds/oot/__init__.py +++ b/worlds/oot/__init__.py @@ -20,7 +20,7 @@ from .Regions import OOTRegion, TimeOfDay from .Rules import set_rules, set_shop_rules, set_entrances_based_rules from .RuleParser import Rule_AST_Transformer -from .Options import oot_options +from .Options import OoTOptions, oot_option_groups from .Utils import data_path, read_json from .LocationList import business_scrubs, set_drop_location_names, dungeon_song_locations from .DungeonList import dungeon_table, create_dungeons @@ -30,12 +30,12 @@ from .N64Patch import create_patch_file from .Cosmetics import patch_cosmetics -from Utils import get_options +from settings import get_settings from BaseClasses import MultiWorld, CollectionState, Tutorial, LocationProgressType from Options import Range, Toggle, VerifyKeys, Accessibility, PlandoConnections from Fill import fill_restrictive, fast_fill, FillError from worlds.generic.Rules import exclusion_rules, add_item_rule -from ..AutoWorld import World, AutoLogicRegister, WebWorld +from worlds.AutoWorld import World, AutoLogicRegister, WebWorld # OoT's generate_output doesn't benefit from more than 2 threads, instead it uses a lot of memory. i_o_limiter = threading.Semaphore(2) @@ -128,6 +128,7 @@ class OOTWeb(WebWorld): ) tutorials = [setup, setup_es, setup_fr, setup_de] + option_groups = oot_option_groups class OOTWorld(World): @@ -137,7 +138,8 @@ class OOTWorld(World): to rescue the Seven Sages, and then confront Ganondorf to save Hyrule! """ game: str = "Ocarina of Time" - option_definitions: dict = oot_options + options_dataclass = OoTOptions + options: OoTOptions settings: typing.ClassVar[OOTSettings] topology_present: bool = True item_name_to_id = {item_name: oot_data_to_ap_id(data, False) for item_name, data in item_table.items() if @@ -195,15 +197,15 @@ def __init__(self, world, player): @classmethod def stage_assert_generate(cls, multiworld: MultiWorld): - rom = Rom(file=get_options()['oot_options']['rom_file']) + rom = Rom(file=get_settings()['oot_options']['rom_file']) # Option parsing, handling incompatible options, building useful-item table def generate_early(self): self.parser = Rule_AST_Transformer(self, self.player) - for (option_name, option) in oot_options.items(): - result = getattr(self.multiworld, option_name)[self.player] + for option_name in self.options_dataclass.type_hints: + result = getattr(self.options, option_name) if isinstance(result, Range): option_value = int(result) elif isinstance(result, Toggle): @@ -223,8 +225,8 @@ def generate_early(self): self.remove_from_start_inventory = [] # some items will be precollected but not in the inventory self.starting_items = Counter() self.songs_as_items = False - self.file_hash = [self.multiworld.random.randint(0, 31) for i in range(5)] - self.connect_name = ''.join(self.multiworld.random.choices(printable, k=16)) + self.file_hash = [self.random.randint(0, 31) for i in range(5)] + self.connect_name = ''.join(self.random.choices(printable, k=16)) self.collectible_flag_addresses = {} # Incompatible option handling @@ -283,7 +285,7 @@ def generate_early(self): local_types.append('BossKey') if self.shuffle_ganon_bosskey != 'keysanity': local_types.append('GanonBossKey') - self.multiworld.local_items[self.player].value |= set(name for name, data in item_table.items() if data[0] in local_types) + self.options.local_items.value |= set(name for name, data in item_table.items() if data[0] in local_types) # If any songs are itemlinked, set songs_as_items for group in self.multiworld.groups.values(): @@ -297,7 +299,7 @@ def generate_early(self): # Determine skipped trials in GT # This needs to be done before the logic rules in GT are parsed trial_list = ['Forest', 'Fire', 'Water', 'Spirit', 'Shadow', 'Light'] - chosen_trials = self.multiworld.random.sample(trial_list, self.trials) # chooses a list of trials to NOT skip + chosen_trials = self.random.sample(trial_list, self.trials) # chooses a list of trials to NOT skip self.skipped_trials = {trial: (trial not in chosen_trials) for trial in trial_list} # Determine tricks in logic @@ -311,8 +313,8 @@ def generate_early(self): # No Logic forces all tricks on, prog balancing off and beatable-only elif self.logic_rules == 'no_logic': - self.multiworld.progression_balancing[self.player].value = False - self.multiworld.accessibility[self.player].value = Accessibility.option_minimal + self.options.progression_balancing.value = False + self.options.accessibility.value = Accessibility.option_minimal for trick in normalized_name_tricks.values(): setattr(self, trick['name'], True) @@ -333,8 +335,8 @@ def generate_early(self): # Set internal names used by the OoT generator self.keysanity = self.shuffle_smallkeys in ['keysanity', 'remove', 'any_dungeon', 'overworld'] - self.trials_random = self.multiworld.trials[self.player].randomized - self.mq_dungeons_random = self.multiworld.mq_dungeons_count[self.player].randomized + self.trials_random = self.options.trials.randomized + self.mq_dungeons_random = self.options.mq_dungeons_count.randomized self.easier_fire_arrow_entry = self.fae_torch_count < 24 if self.misc_hints: @@ -393,8 +395,8 @@ def generate_early(self): elif self.key_rings == 'choose': self.key_rings = self.key_rings_list elif self.key_rings == 'random_dungeons': - self.key_rings = self.multiworld.random.sample(keyring_dungeons, - self.multiworld.random.randint(0, len(keyring_dungeons))) + self.key_rings = self.random.sample(keyring_dungeons, + self.random.randint(0, len(keyring_dungeons))) # Determine which dungeons are MQ. Not compatible with glitched logic. mq_dungeons = set() @@ -405,7 +407,7 @@ def generate_early(self): elif self.mq_dungeons_mode == 'specific': mq_dungeons = self.mq_dungeons_specific elif self.mq_dungeons_mode == 'count': - mq_dungeons = self.multiworld.random.sample(all_dungeons, self.mq_dungeons_count) + mq_dungeons = self.random.sample(all_dungeons, self.mq_dungeons_count) else: self.mq_dungeons_mode = 'count' self.mq_dungeons_count = 0 @@ -425,8 +427,8 @@ def generate_early(self): elif self.dungeon_shortcuts_choice == 'all': self.dungeon_shortcuts = set(shortcut_dungeons) elif self.dungeon_shortcuts_choice == 'random': - self.dungeon_shortcuts = self.multiworld.random.sample(shortcut_dungeons, - self.multiworld.random.randint(0, len(shortcut_dungeons))) + self.dungeon_shortcuts = self.random.sample(shortcut_dungeons, + self.random.randint(0, len(shortcut_dungeons))) # == 'choice', leave as previous else: self.dungeon_shortcuts = set() @@ -576,7 +578,7 @@ def load_regions_from_json(self, file_path): new_exit = OOTEntrance(self.player, self.multiworld, '%s -> %s' % (new_region.name, exit), new_region) new_exit.vanilla_connected_region = exit new_exit.rule_string = rule - if self.multiworld.logic_rules != 'none': + if self.options.logic_rules != 'no_logic': self.parser.parse_spot_rule(new_exit) if new_exit.never: logger.debug('Dropping unreachable exit: %s', new_exit.name) @@ -607,7 +609,7 @@ def set_scrub_prices(self): elif self.shuffle_scrubs == 'random': # this is a random value between 0-99 # average value is ~33 rupees - price = int(self.multiworld.random.betavariate(1, 2) * 99) + price = int(self.random.betavariate(1, 2) * 99) # Set price in the dictionary as well as the location. self.scrub_prices[scrub_item] = price @@ -624,7 +626,7 @@ def random_shop_prices(self): self.shop_prices = {} for region in self.regions: if self.shopsanity == 'random': - shop_item_count = self.multiworld.random.randint(0, 4) + shop_item_count = self.random.randint(0, 4) else: shop_item_count = int(self.shopsanity) @@ -632,17 +634,17 @@ def random_shop_prices(self): if location.type == 'Shop': if location.name[-1:] in shop_item_indexes[:shop_item_count]: if self.shopsanity_prices == 'normal': - self.shop_prices[location.name] = int(self.multiworld.random.betavariate(1.5, 2) * 60) * 5 + self.shop_prices[location.name] = int(self.random.betavariate(1.5, 2) * 60) * 5 elif self.shopsanity_prices == 'affordable': self.shop_prices[location.name] = 10 elif self.shopsanity_prices == 'starting_wallet': - self.shop_prices[location.name] = self.multiworld.random.randrange(0,100,5) + self.shop_prices[location.name] = self.random.randrange(0,100,5) elif self.shopsanity_prices == 'adults_wallet': - self.shop_prices[location.name] = self.multiworld.random.randrange(0,201,5) + self.shop_prices[location.name] = self.random.randrange(0,201,5) elif self.shopsanity_prices == 'giants_wallet': - self.shop_prices[location.name] = self.multiworld.random.randrange(0,501,5) + self.shop_prices[location.name] = self.random.randrange(0,501,5) elif self.shopsanity_prices == 'tycoons_wallet': - self.shop_prices[location.name] = self.multiworld.random.randrange(0,1000,5) + self.shop_prices[location.name] = self.random.randrange(0,1000,5) # Fill boss prizes @@ -667,8 +669,8 @@ def fill_bosses(self, bossCount=9): while bossCount: bossCount -= 1 - self.multiworld.random.shuffle(prizepool) - self.multiworld.random.shuffle(prize_locs) + self.random.shuffle(prizepool) + self.random.shuffle(prize_locs) item = prizepool.pop() loc = prize_locs.pop() loc.place_locked_item(item) @@ -778,7 +780,7 @@ def create_items(self): # Call the junk fill and get a replacement if item in self.itempool: self.itempool.remove(item) - self.itempool.append(self.create_item(*get_junk_item(pool=junk_pool))) + self.itempool.append(self.create_item(*get_junk_item(self.random, pool=junk_pool))) if self.start_with_consumables: self.starting_items['Deku Sticks'] = 30 self.starting_items['Deku Nuts'] = 40 @@ -881,7 +883,7 @@ def prefill_state(base_state): # Prefill shops, songs, and dungeon items items = self.get_pre_fill_items() locations = list(self.multiworld.get_unfilled_locations(self.player)) - self.multiworld.random.shuffle(locations) + self.random.shuffle(locations) # Set up initial state state = CollectionState(self.multiworld) @@ -910,7 +912,7 @@ def prefill_state(base_state): if isinstance(locations, list): for item in stage_items: self.pre_fill_items.remove(item) - self.multiworld.random.shuffle(locations) + self.random.shuffle(locations) fill_restrictive(self.multiworld, prefill_state(state), locations, stage_items, single_player_placement=True, lock=True, allow_excluded=True) else: @@ -923,7 +925,7 @@ def prefill_state(base_state): if isinstance(locations, list): for item in dungeon_items: self.pre_fill_items.remove(item) - self.multiworld.random.shuffle(locations) + self.random.shuffle(locations) fill_restrictive(self.multiworld, prefill_state(state), locations, dungeon_items, single_player_placement=True, lock=True, allow_excluded=True) @@ -964,7 +966,7 @@ def prefill_state(base_state): while tries: try: - self.multiworld.random.shuffle(song_locations) + self.random.shuffle(song_locations) fill_restrictive(self.multiworld, prefill_state(state), song_locations[:], songs[:], single_player_placement=True, lock=True, allow_excluded=True) logger.debug(f"Successfully placed songs for player {self.player} after {6 - tries} attempt(s)") @@ -996,7 +998,7 @@ def prefill_state(base_state): 'Buy Goron Tunic': 1, 'Buy Zora Tunic': 1, }.get(item.name, 0)) # place Deku Shields if needed, then tunics, then other advancement - self.multiworld.random.shuffle(shop_locations) + self.random.shuffle(shop_locations) self.pre_fill_items = [] # all prefill should be done fill_restrictive(self.multiworld, prefill_state(state), shop_locations, shop_prog, single_player_placement=True, lock=True, allow_excluded=True) @@ -1028,7 +1030,7 @@ def prefill_state(base_state): ganon_junk_fill = min(1, ganon_junk_fill) gc = next(filter(lambda dungeon: dungeon.name == 'Ganons Castle', self.dungeons)) locations = [loc.name for region in gc.regions for loc in region.locations if loc.item is None] - junk_fill_locations = self.multiworld.random.sample(locations, round(len(locations) * ganon_junk_fill)) + junk_fill_locations = self.random.sample(locations, round(len(locations) * ganon_junk_fill)) exclusion_rules(self.multiworld, self.player, junk_fill_locations) # Locations which are not sendable must be converted to events @@ -1074,13 +1076,13 @@ def generate_output(self, output_directory: str): trap_location_ids = [loc.address for loc in self.get_locations() if loc.item.trap] self.trap_appearances = {} for loc_id in trap_location_ids: - self.trap_appearances[loc_id] = self.create_item(self.multiworld.per_slot_randoms[self.player].choice(self.fake_items).name) + self.trap_appearances[loc_id] = self.create_item(self.random.choice(self.fake_items).name) # Seed hint RNG, used for ganon text lines also - self.hint_rng = self.multiworld.per_slot_randoms[self.player] + self.hint_rng = self.random outfile_name = self.multiworld.get_out_file_name_base(self.player) - rom = Rom(file=get_options()['oot_options']['rom_file']) + rom = Rom(file=get_settings()['oot_options']['rom_file']) try: if self.hints != 'none': buildWorldGossipHints(self) @@ -1092,7 +1094,7 @@ def generate_output(self, output_directory: str): finally: self.collectible_flags_available.set() rom.update_header() - patch_data = create_patch_file(rom) + patch_data = create_patch_file(rom, self.random) rom.restore() apz5 = OoTContainer(patch_data, outfile_name, output_directory, @@ -1399,7 +1401,7 @@ def get_state_with_complete_itempool(self): return all_state def get_filler_item_name(self) -> str: - return get_junk_item(count=1, pool=get_junk_pool(self))[0] + return get_junk_item(self.random, count=1, pool=get_junk_pool(self))[0] def valid_dungeon_item_location(world: OOTWorld, option: str, dungeon: str, loc: OOTLocation) -> bool: From 926e08513c8b7fb2995b713d560fa165061e49a4 Mon Sep 17 00:00:00 2001 From: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Date: Thu, 19 Sep 2024 01:57:59 +0200 Subject: [PATCH 068/212] The Witness: Remove some unused code #3852 --- worlds/witness/rules.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/worlds/witness/rules.py b/worlds/witness/rules.py index 2f3210a21467..74ea2aef5740 100644 --- a/worlds/witness/rules.py +++ b/worlds/witness/rules.py @@ -214,7 +214,7 @@ def optimize_requirement_option(requirement_option: List[Union[CollectionRule, S This optimises out a requirement like [("Progressive Dots": 1), ("Progressive Dots": 2)] to only the "2" version. """ - direct_items = [rule for rule in requirement_option if isinstance(rule, tuple)] + direct_items = [rule for rule in requirement_option if isinstance(rule, SimpleItemRepresentation)] if not direct_items: return requirement_option @@ -224,7 +224,7 @@ def optimize_requirement_option(requirement_option: List[Union[CollectionRule, S return [ rule for rule in requirement_option - if not (isinstance(rule, tuple) and rule[1] < max_per_item[rule[0]]) + if not (isinstance(rule, SimpleItemRepresentation) and rule[1] < max_per_item[rule[0]]) ] @@ -234,12 +234,6 @@ def convert_requirement_option(requirement: List[Union[CollectionRule, SimpleIte Converts a list of CollectionRules and SimpleItemRepresentations to just a list of CollectionRules. If the list is ONLY SimpleItemRepresentations, we can just return a CollectionRule based on state.has_all_counts() """ - converted_sublist = [] - - for rule in requirement: - if not isinstance(rule, tuple): - converted_sublist.append(rule) - continue collection_rules = [rule for rule in requirement if not isinstance(rule, SimpleItemRepresentation)] item_rules = [rule for rule in requirement if isinstance(rule, SimpleItemRepresentation)] From 499d79f08954ca00e2b8b8876da01f52b24ca86f Mon Sep 17 00:00:00 2001 From: gaithern <36639398+gaithern@users.noreply.github.com> Date: Thu, 19 Sep 2024 15:32:47 -0500 Subject: [PATCH 069/212] Kingdom Hearts: Fix Hint Spam and Add Setting Queries #3899 --- worlds/kh1/Client.py | 52 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/worlds/kh1/Client.py b/worlds/kh1/Client.py index acfd5dba3825..33fba85f6c54 100644 --- a/worlds/kh1/Client.py +++ b/worlds/kh1/Client.py @@ -31,6 +31,9 @@ def check_stdin() -> None: print("WARNING: Console input is not routed reliably on Windows, use the GUI instead.") class KH1ClientCommandProcessor(ClientCommandProcessor): + def __init__(self, ctx): + super().__init__(ctx) + def _cmd_deathlink(self): """Toggles Deathlink""" global death_link @@ -40,6 +43,40 @@ def _cmd_deathlink(self): else: death_link = True self.output(f"Death Link turned on") + + def _cmd_goal(self): + """Prints goal setting""" + if "goal" in self.ctx.slot_data.keys(): + self.output(str(self.ctx.slot_data["goal"])) + else: + self.output("Unknown") + + def _cmd_eotw_unlock(self): + """Prints End of the World Unlock setting""" + if "required_reports_door" in self.ctx.slot_data.keys(): + if self.ctx.slot_data["required_reports_door"] > 13: + self.output("Item") + else: + self.output(str(self.ctx.slot_data["required_reports_eotw"]) + " reports") + else: + self.output("Unknown") + + def _cmd_door_unlock(self): + """Prints Final Rest Door Unlock setting""" + if "door" in self.ctx.slot_data.keys(): + if self.ctx.slot_data["door"] == "reports": + self.output(str(self.ctx.slot_data["required_reports_door"]) + " reports") + else: + self.output(str(self.ctx.slot_data["door"])) + else: + self.output("Unknown") + + def _cmd_advanced_logic(self): + """Prints advanced logic setting""" + if "advanced_logic" in self.ctx.slot_data.keys(): + self.output(str(self.ctx.slot_data["advanced_logic"])) + else: + self.output("Unknown") class KH1Context(CommonContext): command_processor: int = KH1ClientCommandProcessor @@ -51,6 +88,8 @@ def __init__(self, server_address, password): self.send_index: int = 0 self.syncing = False self.awaiting_bridge = False + self.hinted_synth_location_ids = False + self.slot_data = {} # self.game_communication_path: files go in this path to pass data between us and the actual game if "localappdata" in os.environ: self.game_communication_path = os.path.expandvars(r"%localappdata%/KH1FM") @@ -104,6 +143,7 @@ def on_package(self, cmd: str, args: dict): f.close() #Handle Slot Data + self.slot_data = args['slot_data'] for key in list(args['slot_data'].keys()): with open(os.path.join(self.game_communication_path, key + ".cfg"), 'w') as f: f.write(str(args['slot_data'][key])) @@ -217,11 +257,13 @@ async def game_watcher(ctx: KH1Context): if timegm(time.strptime(st, '%Y%m%d%H%M%S')) > ctx.last_death_link and int(time.time()) % int(timegm(time.strptime(st, '%Y%m%d%H%M%S'))) < 10: await ctx.send_death(death_text = "Sora was defeated!") if file.find("insynthshop") > -1: - await ctx.send_msgs([{ - "cmd": "LocationScouts", - "locations": [2656401,2656402,2656403,2656404,2656405,2656406], - "create_as_hint": 2 - }]) + if not ctx.hinted_synth_location_ids: + await ctx.send_msgs([{ + "cmd": "LocationScouts", + "locations": [2656401,2656402,2656403,2656404,2656405,2656406], + "create_as_hint": 2 + }]) + ctx.hinted_synth_location_ids = True ctx.locations_checked = sending message = [{"cmd": 'LocationChecks', "locations": sending}] await ctx.send_msgs(message) From 1b15c6920d88d333ba14dd33af75d42a59dfd826 Mon Sep 17 00:00:00 2001 From: digiholic Date: Fri, 20 Sep 2024 08:15:30 -0600 Subject: [PATCH 070/212] [OSRS] Adds display names to Options #3954 --- worlds/osrs/Options.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/worlds/osrs/Options.py b/worlds/osrs/Options.py index 520cd8e8b06b..81e017eddb34 100644 --- a/worlds/osrs/Options.py +++ b/worlds/osrs/Options.py @@ -63,6 +63,7 @@ class MaxCombatLevel(Range): The highest combat level of monster to possibly be assigned as a task. If set to 0, no combat tasks will be generated. """ + display_name = "Max Required Enemy Combat Level" range_start = 0 range_end = 1520 default = 50 @@ -74,6 +75,7 @@ class MaxCombatTasks(Range): If set to 0, no combat tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Combat Task Count" range_start = 0 range_end = MAX_COMBAT_TASKS default = MAX_COMBAT_TASKS @@ -85,6 +87,7 @@ class CombatTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Combat Task Weight" range_start = 0 range_end = 99 default = 50 @@ -95,6 +98,7 @@ class MaxPrayerLevel(Range): The highest Prayer requirement of any task generated. If set to 0, no Prayer tasks will be generated. """ + display_name = "Max Required Prayer Level" range_start = 0 range_end = 99 default = 50 @@ -106,6 +110,7 @@ class MaxPrayerTasks(Range): If set to 0, no Prayer tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Prayer Task Count" range_start = 0 range_end = MAX_PRAYER_TASKS default = MAX_PRAYER_TASKS @@ -117,6 +122,7 @@ class PrayerTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Prayer Task Weight" range_start = 0 range_end = 99 default = 50 @@ -127,6 +133,7 @@ class MaxMagicLevel(Range): The highest Magic requirement of any task generated. If set to 0, no Magic tasks will be generated. """ + display_name = "Max Required Magic Level" range_start = 0 range_end = 99 default = 50 @@ -138,6 +145,7 @@ class MaxMagicTasks(Range): If set to 0, no Magic tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Magic Task Count" range_start = 0 range_end = MAX_MAGIC_TASKS default = MAX_MAGIC_TASKS @@ -149,6 +157,7 @@ class MagicTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Magic Task Weight" range_start = 0 range_end = 99 default = 50 @@ -159,6 +168,7 @@ class MaxRunecraftLevel(Range): The highest Runecraft requirement of any task generated. If set to 0, no Runecraft tasks will be generated. """ + display_name = "Max Required Runecraft Level" range_start = 0 range_end = 99 default = 50 @@ -170,6 +180,7 @@ class MaxRunecraftTasks(Range): If set to 0, no Runecraft tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Runecraft Task Count" range_start = 0 range_end = MAX_RUNECRAFT_TASKS default = MAX_RUNECRAFT_TASKS @@ -181,6 +192,7 @@ class RunecraftTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Runecraft Task Weight" range_start = 0 range_end = 99 default = 50 @@ -191,6 +203,7 @@ class MaxCraftingLevel(Range): The highest Crafting requirement of any task generated. If set to 0, no Crafting tasks will be generated. """ + display_name = "Max Required Crafting Level" range_start = 0 range_end = 99 default = 50 @@ -202,6 +215,7 @@ class MaxCraftingTasks(Range): If set to 0, no Crafting tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Crafting Task Count" range_start = 0 range_end = MAX_CRAFTING_TASKS default = MAX_CRAFTING_TASKS @@ -213,6 +227,7 @@ class CraftingTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Crafting Task Weight" range_start = 0 range_end = 99 default = 50 @@ -223,6 +238,7 @@ class MaxMiningLevel(Range): The highest Mining requirement of any task generated. If set to 0, no Mining tasks will be generated. """ + display_name = "Max Required Mining Level" range_start = 0 range_end = 99 default = 50 @@ -234,6 +250,7 @@ class MaxMiningTasks(Range): If set to 0, no Mining tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Mining Task Count" range_start = 0 range_end = MAX_MINING_TASKS default = MAX_MINING_TASKS @@ -245,6 +262,7 @@ class MiningTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Mining Task Weight" range_start = 0 range_end = 99 default = 50 @@ -255,6 +273,7 @@ class MaxSmithingLevel(Range): The highest Smithing requirement of any task generated. If set to 0, no Smithing tasks will be generated. """ + display_name = "Max Required Smithing Level" range_start = 0 range_end = 99 default = 50 @@ -266,6 +285,7 @@ class MaxSmithingTasks(Range): If set to 0, no Smithing tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Smithing Task Count" range_start = 0 range_end = MAX_SMITHING_TASKS default = MAX_SMITHING_TASKS @@ -277,6 +297,7 @@ class SmithingTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Smithing Task Weight" range_start = 0 range_end = 99 default = 50 @@ -287,6 +308,7 @@ class MaxFishingLevel(Range): The highest Fishing requirement of any task generated. If set to 0, no Fishing tasks will be generated. """ + display_name = "Max Required Fishing Level" range_start = 0 range_end = 99 default = 50 @@ -298,6 +320,7 @@ class MaxFishingTasks(Range): If set to 0, no Fishing tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Fishing Task Count" range_start = 0 range_end = MAX_FISHING_TASKS default = MAX_FISHING_TASKS @@ -309,6 +332,7 @@ class FishingTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Fishing Task Weight" range_start = 0 range_end = 99 default = 50 @@ -319,6 +343,7 @@ class MaxCookingLevel(Range): The highest Cooking requirement of any task generated. If set to 0, no Cooking tasks will be generated. """ + display_name = "Max Required Cooking Level" range_start = 0 range_end = 99 default = 50 @@ -330,6 +355,7 @@ class MaxCookingTasks(Range): If set to 0, no Cooking tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Cooking Task Count" range_start = 0 range_end = MAX_COOKING_TASKS default = MAX_COOKING_TASKS @@ -341,6 +367,7 @@ class CookingTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Cooking Task Weight" range_start = 0 range_end = 99 default = 50 @@ -351,6 +378,7 @@ class MaxFiremakingLevel(Range): The highest Firemaking requirement of any task generated. If set to 0, no Firemaking tasks will be generated. """ + display_name = "Max Required Firemaking Level" range_start = 0 range_end = 99 default = 50 @@ -362,6 +390,7 @@ class MaxFiremakingTasks(Range): If set to 0, no Firemaking tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Firemaking Task Count" range_start = 0 range_end = MAX_FIREMAKING_TASKS default = MAX_FIREMAKING_TASKS @@ -373,6 +402,7 @@ class FiremakingTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Firemaking Task Weight" range_start = 0 range_end = 99 default = 50 @@ -383,6 +413,7 @@ class MaxWoodcuttingLevel(Range): The highest Woodcutting requirement of any task generated. If set to 0, no Woodcutting tasks will be generated. """ + display_name = "Max Required Woodcutting Level" range_start = 0 range_end = 99 default = 50 @@ -394,6 +425,7 @@ class MaxWoodcuttingTasks(Range): If set to 0, no Woodcutting tasks will be generated. This only determines the maximum possible, fewer than the maximum could be assigned. """ + display_name = "Max Woodcutting Task Count" range_start = 0 range_end = MAX_WOODCUTTING_TASKS default = MAX_WOODCUTTING_TASKS @@ -405,6 +437,7 @@ class WoodcuttingTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "Woodcutting Task Weight" range_start = 0 range_end = 99 default = 50 @@ -416,6 +449,7 @@ class MinimumGeneralTasks(Range): General progression tasks will be used to fill out any holes caused by having fewer possible tasks than needed, so there is no maximum. """ + display_name = "Minimum General Task Count" range_start = 0 range_end = NON_QUEST_LOCATION_COUNT default = 10 @@ -427,6 +461,7 @@ class GeneralTaskWeight(Range): Weights of all Task Types will be compared against each other, a task with 50 weight is twice as likely to appear as one with 25. """ + display_name = "General Task Weight" range_start = 0 range_end = 99 default = 50 From 79942c09c2c082d2825af77d56369eb6fdc10b08 Mon Sep 17 00:00:00 2001 From: Alex Nordstrom Date: Fri, 20 Sep 2024 10:18:09 -0400 Subject: [PATCH 071/212] LADX: define filler item, fix for extra golden leaves (#3918) * set filler item also rename "Master Stalfos' Message" to "Nothing" as it shows up in game, and "Gel" to "Zol Attack" * fix for extra gold leaves * fix for start_inventory --- worlds/ladx/Items.py | 4 ++-- worlds/ladx/LADXR/patches/goldenLeaf.py | 3 ++- worlds/ladx/__init__.py | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/worlds/ladx/Items.py b/worlds/ladx/Items.py index 9f4784f74995..1f9358a4f5a6 100644 --- a/worlds/ladx/Items.py +++ b/worlds/ladx/Items.py @@ -83,8 +83,8 @@ class ItemName: RUPEES_200 = "200 Rupees" RUPEES_500 = "500 Rupees" SEASHELL = "Seashell" - MESSAGE = "Master Stalfos' Message" - GEL = "Gel" + MESSAGE = "Nothing" + GEL = "Zol Attack" BOOMERANG = "Boomerang" HEART_PIECE = "Heart Piece" BOWWOW = "BowWow" diff --git a/worlds/ladx/LADXR/patches/goldenLeaf.py b/worlds/ladx/LADXR/patches/goldenLeaf.py index 87cefae0f6d8..b35c722a4316 100644 --- a/worlds/ladx/LADXR/patches/goldenLeaf.py +++ b/worlds/ladx/LADXR/patches/goldenLeaf.py @@ -29,6 +29,7 @@ def fixGoldenLeaf(rom): rom.patch(0x03, 0x0980, ASM("ld a, [$DB15]"), ASM("ld a, [wGoldenLeaves]")) # If leaves >= 6 move richard rom.patch(0x06, 0x0059, ASM("ld a, [$DB15]"), ASM("ld a, [wGoldenLeaves]")) # If leaves >= 6 move richard rom.patch(0x06, 0x007D, ASM("ld a, [$DB15]"), ASM("ld a, [wGoldenLeaves]")) # Richard message if no leaves - rom.patch(0x06, 0x00B8, ASM("ld [$DB15], a"), ASM("ld [wGoldenLeaves], a")) # Stores FF in the leaf counter if we opened the path + rom.patch(0x06, 0x00B6, ASM("ld a, $FF"), ASM("ld a, $06")) + rom.patch(0x06, 0x00B8, ASM("ld [$DB15], a"), ASM("ld [wGoldenLeaves], a")) # Stores 6 in the leaf counter if we opened the path (instead of FF, so that nothing breaks if we get more for some reason) # 6:40EE uses leaves == 6 to check if we have collected the key, but only to change the message. # rom.patch(0x06, 0x2AEF, ASM("ld a, [$DB15]"), ASM("ld a, [wGoldenLeaves]")) # Telephone message handler diff --git a/worlds/ladx/__init__.py b/worlds/ladx/__init__.py index 79f1fe470f81..2846b40e67d9 100644 --- a/worlds/ladx/__init__.py +++ b/worlds/ladx/__init__.py @@ -216,7 +216,7 @@ def create_items(self) -> None: for _ in range(count): if item_name in exclude: exclude.remove(item_name) # this is destructive. create unique list above - self.multiworld.itempool.append(self.create_item("Master Stalfos' Message")) + self.multiworld.itempool.append(self.create_item("Nothing")) else: item = self.create_item(item_name) @@ -513,6 +513,9 @@ def remove(self, state, item: Item) -> bool: state.prog_items[self.player]["RUPEES"] -= self.rupees[item.name] return change + def get_filler_item_name(self) -> str: + return "Nothing" + def fill_slot_data(self): slot_data = {} From 0095eecf2b5c02f15e9121a238980cbd9e66ee3c Mon Sep 17 00:00:00 2001 From: Spineraks Date: Fri, 20 Sep 2024 19:07:45 +0200 Subject: [PATCH 072/212] Yacht Dice: Remove Victory item and make it an event instead (#3968) * Add the yacht dice (from other git) world to the yacht dice fork * Update .gitignore * Removed zillion because it doesn't work * Update .gitignore * added zillion again... * Now you can have 0 extra fragments * Added alt categories, also options * Added item categories * Extra categories are now working! :dog: * changed options and added exceptions * Testing if I change the generate.py * Revert "Testing if I change the generate.py" This reverts commit 7c2b3df6170dcf8d8f36a1de9fcbc9dccdec81f8. * ignore gitignore * Delete .gitignore * Update .gitignore * Update .gitignore * Update logic, added multiplicative categories * Changed difficulties * Update offline mode so that it works again * Adjusted difficulty * New version of the apworld, with 1000 as final score, always Will still need to check difficulty and weights of adding items. Website is not ready yet, so this version is not usable yet :) * Changed yaml and small bug fixes Fix when goal and max are same Options: changed chance to weight * no changes, just whitespaces * changed how logic works Now you put an array of mults and the cpu gets a couple of tries * Changed logic, tweaked a bit too * Preparation for 2.0 * logic tweak * Logic for alt categories properly now * Update setup_en.md * Update en_YachtDice.md * Improve performance of add_distributions * Formatting style * restore gitignore to APMW * Tweaked generation parameters and methods * Version 2.0.3 manual input option max score in logic always 2.0.3 faster gen * Comments and editing * Renamed setup guide * Improved create_items code * init of locations: remove self.event line * Moved setting early items to generate_early * Add my name to CODEOWNERS * Added Yacht Dice to the readme in list of games * Improve performance of Yacht Dice * newline * Improve typing * This is actually just slower lol * Update worlds/yachtdice/Items.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Update Options.py * Styling * finished text whichstory option * removed roll and rollfragments; not used * import; worlds not world :) * Option groups! * ruff styling, fix * ruff format styling! * styling and capitalization of options * small comment * Cleaned up the "state_is_a_list" a little bit * RUFF :dog: * Changed filling the itempool for efficiency Now, we start with 17 extra items in the item pool, it's quite likely you need at least 17 items (~80%?). And then afterwards, we delete items if we overshoot the target of 1000, and add items if we haven't reached an achievable score of 1000 yet. Also, no need to recompute the entire logic when adding points. * :dog: * Removed plando "fix" * Changed indent of score multiplier * faster location function * Comments to docstrings * fixed making location closest to goal_score be goal_score * options format * iterate keys and values of a dict together * small optimization ListState * faster collection of categories * return arguments instead of making a list (will :dog: later) * Instead of turning it into a tuple, you can just make a tuple literal * remove .keys() * change .random and used enumerate * some readability improvements * Remove location "0", we don't use that one * Remove lookup_id_to_name entirely I for sure don't use it, and as far as I know it's not one of the mandatory functions for AP, these are item_name_to_id and location_name_to_id. * .append instead of += for single items, percentile function changed Also an extra comment for location ids. * remove ) too many * Removed sorted from category list * Hash categories (which makes it slower :( ) Maybe I messed up or misunderstood... I'll revert this right away since it is 2x slower, probably because of sorted instead of sort? * Revert "Hash categories (which makes it slower :( )" This reverts commit 34f2c1aed8c8813b2d9c58896650b82a810d3578. * temporary push: 40% faster generation test Small changes in logic make the generation 40% faster. I'll have to think about how big the changes are. I suspect they are rather limited. If this is the way to go, I'll remove the temp file and redo the YachtWeights file, I'll remove the functions there and just put the new weights here. * Add Points item category * Reverse changes of bad idea :) * ruff :dog: * Use numpy and pmf function to speed up gen Numpy has a built-in way to sum probability mass functions (pmf). This shaves of 60% of the generation time :D * Revert "Use numpy and pmf function to speed up gen" This reverts commit 9290191cb323ae92321d6c2cfcfe8c27370f439b. * Step inbetween to change the weights * Changed the weights to make it faster 135 -> 81 seconds on 100 random yamls * Adjusted max_dist, split dice_simulation function * Removed nonlocal and pass arguments instead * Change "weight-lists" to Dict[str, float] * Removed the return from ini_locations. Also added explanations to cat_weights * Choice options; dont'use .value (will ruff later) * Only put important options in slotdata * :dog: * Add Dict import * Split the cache per player, limit size to 400. * :dog: * added , because of style * Update apworld version to 2.0.6 2.0.5 is the apworld I released on github to be tested I never separately released 2.0.4. * Multiple smaller code improvements - changed names in YachtWeights so we don't need to translate them in Rules anymore - we now remember which categories are present in the game, and also put this in slotdata. This we do because only one of two categories is present in a game. If for some reason both are present (plando/getitem/startinventory), we now know which category to ignore - * :dog: ruff * Mostly minimize_extra_items improvements - Change logic, generation is now even faster (0.6s per default yaml). - Made the option 'minimize_extra_items' do a lot more, hopefully this makes the impact of Yacht Dice a little bit less, if you want that. Here's what is also does now: - you start with 2 dice and 2 rolls - there will be less locations/items at the start of you game * ruff :dog: * Removed printing options * Reworded some option descriptions * Yacht Dice: setup: change release-link to latest On the installation page, link to the latest release, instead of the page with all releases * Several fixes and changes -change apworld version -Removed the extra roll (this was not intended) -change extra_points_added to a mutable list to that it actually does something -removed variables multipliers_added and items_added -Rules, don't order by quantity, just by mean_score -Changed the weights in general to make it faster * :dog: * Revert setup to what it was (latest, without S) * remove temp weights file, shouldn't be here * Made sure that there is not too many step score multipliers. Too many step score multipliers lead to gen fails too, probably because you need many categories for them to actually help a lot. So it's hard to use them at the start of the game. * add filler item name * Textual fixes and changes * Remove Victory item and use event instead. * Revert "Remove Victory item and use event instead." This reverts commit c2f7d674d392a3acbc1db8614411164ba3b28bff. * Revert "Textual fixes and changes" This reverts commit e9432f92454979fcd5a31f8517586585362a7ab7. * Remove Victory item and make it an event instead --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- worlds/yachtdice/Items.py | 2 -- worlds/yachtdice/__init__.py | 12 +++++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/worlds/yachtdice/Items.py b/worlds/yachtdice/Items.py index fa52c93ad6f2..c76dc538146e 100644 --- a/worlds/yachtdice/Items.py +++ b/worlds/yachtdice/Items.py @@ -16,8 +16,6 @@ class YachtDiceItem(Item): item_table = { - # victory item, always placed manually at goal location - "Victory": ItemData(16871244000 - 1, ItemClassification.progression), "Dice": ItemData(16871244000, ItemClassification.progression), "Dice Fragment": ItemData(16871244001, ItemClassification.progression), "Roll": ItemData(16871244002, ItemClassification.progression), diff --git a/worlds/yachtdice/__init__.py b/worlds/yachtdice/__init__.py index d86ee3382d33..75993fd39443 100644 --- a/worlds/yachtdice/__init__.py +++ b/worlds/yachtdice/__init__.py @@ -1,7 +1,7 @@ import math from typing import Dict -from BaseClasses import CollectionState, Entrance, Item, Region, Tutorial +from BaseClasses import CollectionState, Entrance, Item, ItemClassification, Location, Region, Tutorial from worlds.AutoWorld import WebWorld, World @@ -56,7 +56,7 @@ class YachtDiceWorld(World): item_name_groups = item_groups - ap_world_version = "2.1.2" + ap_world_version = "2.1.3" def _get_yachtdice_data(self): return { @@ -456,10 +456,12 @@ def create_regions(self): if loc_data.region == board.name ] - # Add the victory item to the correct location. - # The website declares that the game is complete when the victory item is obtained. + # Change the victory location to an event and place the Victory item there. victory_location_name = f"{self.goal_score} score" - self.get_location(victory_location_name).place_locked_item(self.create_item("Victory")) + self.get_location(victory_location_name).address = None + self.get_location(victory_location_name).place_locked_item( + Item("Victory", ItemClassification.progression, None, self.player) + ) # add the regions connection = Entrance(self.player, "New Board", menu) From ba8f03516e4d5453d9c148f89f0215611a4ef0db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Victor?= <67028894+JoaoVictor-FA@users.noreply.github.com> Date: Fri, 20 Sep 2024 14:19:48 -0300 Subject: [PATCH 073/212] Docs: added Brazilian Portuguese Translation for Hollow Knight setup guide (#3909) * add neww pt-br translation * setup file * Update setup_pt_br.md * add ` to paths * correct grammar * add space .-. * add more spaces .-. .-. .-. * capitalize HK * Update setup_pt_br.md * accent not the same as punctuation * small changes * Update setup_pt_br.md --- worlds/hk/__init__.py | 15 ++++++++-- worlds/hk/docs/setup_pt_br.md | 52 +++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 worlds/hk/docs/setup_pt_br.md diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index 860243ee952e..6ecdacb1156d 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -124,14 +124,25 @@ class HKWeb(WebWorld): - tutorials = [Tutorial( + setup_en = Tutorial( "Mod Setup and Use Guide", "A guide to playing Hollow Knight with Archipelago.", "English", "setup_en.md", "setup/en", ["Ijwu"] - )] + ) + + setup_pt_br = Tutorial( + setup_en.tutorial_name, + setup_en.description, + "PortuguÃĒs Brasileiro", + "setup_pt_br.md", + "setup/pt_br", + ["JoaoVictor-FA"] + ) + + tutorials = [setup_en, setup_pt_br] bug_report_page = "https://github.com/Ijwu/Archipelago.HollowKnight/issues/new?assignees=&labels=bug%2C+needs+investigation&template=bug_report.md&title=" diff --git a/worlds/hk/docs/setup_pt_br.md b/worlds/hk/docs/setup_pt_br.md new file mode 100644 index 000000000000..9ae1ea89d566 --- /dev/null +++ b/worlds/hk/docs/setup_pt_br.md @@ -0,0 +1,52 @@ +# Guia de configuraçÃŖo para Hollow Knight no Archipelago + +## Programas obrigatÃŗrios +* Baixe e extraia o Lumafly Mod Manager (gerenciador de mods Lumafly) do [Site Lumafly](https://themulhima.github.io/Lumafly/). +* Uma cÃŗpia legal de Hollow Knight. + * VersÃĩes Steam, Gog, e Xbox Game Pass do jogo sÃŖo suportadas. + * Windows, Mac, e Linux (incluindo Steam Deck) sÃŖo suportados. + +## Instalando o mod Archipelago Mod usando Lumafly +1. Abra o Lumafly e confirme que ele localizou sua pasta de instalaçÃŖo do Hollow Knight. +2. Clique em "Install (instalar)" perto da opçÃŖo "Archipelago" mod. + * Se quiser, instale tambÊm o "Archipelago Map Mod (mod do mapa do archipelago)" para usÃĄ-lo como rastreador dentro do jogo. +3. Abra o jogo, tudo preparado! + +### O que fazer se o Lumafly falha em encontrar a sua pasta de instalaçÃŖo +1. Encontre a pasta manualmente. + * Xbox Game Pass: + 1. Entre no seu aplicativo Xbox e mova seu mouse em cima de "Hollow Knight" na sua barra da esquerda. + 2. Clique nos 3 pontos depois clique gerenciar. + 3. VÃĄ nos arquivos e selecione procurar. + 4. Clique em "Hollow Knight", depois em "Content (ConteÃēdo)", depois clique na barra com o endereço e a copie. + * Steam: + 1. VocÃĒ provavelmente colocou sua biblioteca Steam num local nÃŖo padrÃŖo. Se esse for o caso vocÃĒ provavelmente sabe onde estÃĄ. + . Encontre sua biblioteca Steam, depois encontre a pasta do Hollow Knight e copie seu endereço. + * Windows - `C:\Program Files (x86)\Steam\steamapps\common\Hollow Knight` + * Linux/Steam Deck - `~/.local/share/Steam/steamapps/common/Hollow Knight` + * Mac - `~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app` +2. Rode o Lumafly como administrador e, quando ele perguntar pelo endereço do arquivo, cole o endereço do arquivo que vocÃĒ copiou. + +## Configurando seu arquivo YAML +### O que Ê um YAML e por que eu preciso de um? +Um arquivo YAML Ê a forma que vocÃĒ informa suas configuraçÃĩes do jogador para o Archipelago. +Olhe o [guia de configuraçÃŖo bÃĄsica de um multiworld](/tutorial/Archipelago/setup/en) aqui no site do Archipelago para aprender mais. + +### Onde eu consigo o YAML? +VocÃĒ pode usar a [pÃĄgina de configuraçÃĩes do jogador para Hollow Knight](/games/Hollow%20Knight/player-options) aqui no site do Archipelago +para gerar o YAML usando a interface grÃĄfica. + +### Entrando numa partida de Archipelago no Hollow Knight +1. Começe o jogo depois de instalar todos os mods necessÃĄrios. +2. Crie um **novo jogo salvo.** +3. Selecione o modo de jogo **Archipelago** do menu de seleçÃŖo. +4. Coloque as configuraçÃĩes corretas do seu servidor Archipelago. +5. Aperte em **Começar**. O jogo vai travar por uns segundos enquanto ele coloca todos itens. +6. O jogo vai te colocar imediatamente numa partida randomizada. + * Se vocÃĒ estÃĄ esperando uma contagem entÃŖo espere ele cair antes de apertar começar. + * Ou clique em começar e pause o jogo enquanto estiver nele. + +## Dicas e outros comandos +Enquanto jogar um multiworld, vocÃĒ pode interagir com o servidor usando vÃĄrios comandos listados no +[Guia de comandos](/tutorial/Archipelago/commands/en). VocÃĒ pode usar o cliente de texto do Archipelago para isso, +que estÃĄ incluido na ultima versÃŖo do [Archipelago software](https://github.com/ArchipelagoMW/Archipelago/releases/latest). From 41ddb96b24cdec7886a4fa01cf42ef7e6e90e7bc Mon Sep 17 00:00:00 2001 From: qwint Date: Sat, 21 Sep 2024 09:45:22 -0500 Subject: [PATCH 074/212] HK: add race bool to slot data (#3971) --- worlds/hk/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index 6ecdacb1156d..15addefef50a 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -21,6 +21,16 @@ from BaseClasses import Region, Location, MultiWorld, Item, LocationProgressType, Tutorial, ItemClassification, CollectionState from worlds.AutoWorld import World, LogicMixin, WebWorld +from settings import Group, Bool + + +class HollowKnightSettings(Group): + class DisableMapModSpoilers(Bool): + """Disallows the APMapMod from showing spoiler placements.""" + + disable_spoilers: typing.Union[DisableMapModSpoilers, bool] = False + + path_of_pain_locations = { "Soul_Totem-Path_of_Pain_Below_Thornskip", "Lore_Tablet-Path_of_Pain_Entrance", @@ -156,6 +166,7 @@ class HKWorld(World): game: str = "Hollow Knight" options_dataclass = HKOptions options: HKOptions + settings: typing.ClassVar[HollowKnightSettings] web = HKWeb() @@ -555,6 +566,8 @@ def fill_slot_data(self): slot_data["grub_count"] = self.grub_count + slot_data["is_race"] = int(self.settings.disable_spoilers or self.multiworld.is_race) + return slot_data def create_item(self, name: str) -> HKItem: From 69d3db21df580ba488f36a475d5ea98a34a3cf3b Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Sat, 21 Sep 2024 17:02:58 -0400 Subject: [PATCH 075/212] TUNIC: Deal with the boxes blocking the entrance to Beneath the Vault --- worlds/tunic/er_rules.py | 5 ++++- worlds/tunic/rules.py | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/worlds/tunic/er_rules.py b/worlds/tunic/er_rules.py index ee48f60eaca4..2677ec409b3b 100644 --- a/worlds/tunic/er_rules.py +++ b/worlds/tunic/er_rules.py @@ -762,7 +762,10 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ regions["Beneath the Vault Ladder Exit"].connect( connecting_region=regions["Beneath the Vault Main"], rule=lambda state: has_ladder("Ladder to Beneath the Vault", state, world) - and has_lantern(state, world)) + and has_lantern(state, world) + # there's some boxes in the way + and (has_stick(state, player) or state.has_any((gun, grapple, fire_wand), player))) + # on the reverse trip, you can lure an enemy over to break the boxes if needed regions["Beneath the Vault Main"].connect( connecting_region=regions["Beneath the Vault Ladder Exit"], rule=lambda state: has_ladder("Ladder to Beneath the Vault", state, world)) diff --git a/worlds/tunic/rules.py b/worlds/tunic/rules.py index 14ed84d44964..aa69666daeb6 100644 --- a/worlds/tunic/rules.py +++ b/worlds/tunic/rules.py @@ -114,7 +114,9 @@ def set_region_rules(world: "TunicWorld") -> None: or can_ladder_storage(state, world) # using laurels or ls to get in is covered by the -> Eastern Vault Fortress rules world.get_entrance("Overworld -> Beneath the Vault").access_rule = \ - lambda state: has_lantern(state, world) and has_ability(prayer, state, world) + lambda state: (has_lantern(state, world) and has_ability(prayer, state, world) + # there's some boxes in the way + and (has_stick(state, player) or state.has_any((gun, grapple, fire_wand), player))) world.get_entrance("Ruined Atoll -> Library").access_rule = \ lambda state: state.has_any({grapple, laurels}, player) and has_ability(prayer, state, world) world.get_entrance("Overworld -> Quarry").access_rule = \ From 204e940f4741544eef50f12967cd177737d4023d Mon Sep 17 00:00:00 2001 From: agilbert1412 Date: Sat, 21 Sep 2024 17:05:00 -0400 Subject: [PATCH 076/212] Stardew Valley: Fix Art Of Crabbing Logic and Extract Festival Logic (#3625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * here you go kaito kid * here you go kaito kid * move reward logic in its own method --------- Co-authored-by: Jouramie Co-authored-by: JÊrÊmie Bolduc <16137441+Jouramie@users.noreply.github.com> --- .../content/vanilla/pelican_town.py | 7 +- worlds/stardew_valley/data/items.csv | 2 +- worlds/stardew_valley/logic/festival_logic.py | 186 ++++++++++++++++++ worlds/stardew_valley/logic/logic.py | 141 +------------ 4 files changed, 192 insertions(+), 144 deletions(-) create mode 100644 worlds/stardew_valley/logic/festival_logic.py diff --git a/worlds/stardew_valley/content/vanilla/pelican_town.py b/worlds/stardew_valley/content/vanilla/pelican_town.py index 73cc8f119a3e..913fe4b8ad96 100644 --- a/worlds/stardew_valley/content/vanilla/pelican_town.py +++ b/worlds/stardew_valley/content/vanilla/pelican_town.py @@ -2,7 +2,7 @@ from ...data import villagers_data, fish_data from ...data.game_item import GenericSource, ItemTag, Tag, CustomRuleSource, CompoundSource from ...data.harvest import ForagingSource, SeasonalForagingSource, ArtifactSpotSource -from ...data.requirement import ToolRequirement, BookRequirement, SkillRequirement, SeasonRequirement +from ...data.requirement import ToolRequirement, BookRequirement, SkillRequirement from ...data.shop import ShopSource, MysteryBoxSource, ArtifactTroveSource, PrizeMachineSource, FishingTreasureChestSource from ...strings.book_names import Book from ...strings.crop_names import Fruit @@ -250,10 +250,7 @@ ShopSource(money_price=20000, shop_region=LogicRegion.bookseller_3),), Book.the_art_o_crabbing: ( Tag(ItemTag.BOOK, ItemTag.BOOK_POWER), - GenericSource(regions=(Region.beach,), - other_requirements=(ToolRequirement(Tool.fishing_rod, ToolMaterial.iridium), - SkillRequirement(Skill.fishing, 6), - SeasonRequirement(Season.winter))), + CustomRuleSource(create_rule=lambda logic: logic.festival.has_squidfest_day_1_iridium_reward()), ShopSource(money_price=20000, shop_region=LogicRegion.bookseller_3),), Book.treasure_appraisal_guide: ( Tag(ItemTag.BOOK, ItemTag.BOOK_POWER), diff --git a/worlds/stardew_valley/data/items.csv b/worlds/stardew_valley/data/items.csv index e026090f8659..64c14e9f678a 100644 --- a/worlds/stardew_valley/data/items.csv +++ b/worlds/stardew_valley/data/items.csv @@ -474,7 +474,7 @@ id,name,classification,groups,mod_name 507,Resource Pack: 40 Calico Egg,useful,"FESTIVAL", 508,Resource Pack: 35 Calico Egg,useful,"FESTIVAL", 509,Resource Pack: 30 Calico Egg,useful,"FESTIVAL", -510,Book: The Art O' Crabbing,useful,"FESTIVAL", +510,Book: The Art O' Crabbing,progression,"FESTIVAL", 511,Mr Qi's Plane Ride,progression,, 521,Power: Price Catalogue,useful,"BOOK_POWER", 522,Power: Mapping Cave Systems,useful,"BOOK_POWER", diff --git a/worlds/stardew_valley/logic/festival_logic.py b/worlds/stardew_valley/logic/festival_logic.py new file mode 100644 index 000000000000..2b22617202d8 --- /dev/null +++ b/worlds/stardew_valley/logic/festival_logic.py @@ -0,0 +1,186 @@ +from typing import Union + +from .action_logic import ActionLogicMixin +from .animal_logic import AnimalLogicMixin +from .artisan_logic import ArtisanLogicMixin +from .base_logic import BaseLogicMixin, BaseLogic +from .fishing_logic import FishingLogicMixin +from .gift_logic import GiftLogicMixin +from .has_logic import HasLogicMixin +from .money_logic import MoneyLogicMixin +from .monster_logic import MonsterLogicMixin +from .museum_logic import MuseumLogicMixin +from .received_logic import ReceivedLogicMixin +from .region_logic import RegionLogicMixin +from .relationship_logic import RelationshipLogicMixin +from .skill_logic import SkillLogicMixin +from .time_logic import TimeLogicMixin +from ..options import FestivalLocations +from ..stardew_rule import StardewRule +from ..strings.book_names import Book +from ..strings.craftable_names import Fishing +from ..strings.crop_names import Fruit, Vegetable +from ..strings.festival_check_names import FestivalCheck +from ..strings.fish_names import Fish +from ..strings.forageable_names import Forageable +from ..strings.generic_names import Generic +from ..strings.machine_names import Machine +from ..strings.monster_names import Monster +from ..strings.region_names import Region + + +class FestivalLogicMixin(BaseLogicMixin): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.festival = FestivalLogic(*args, **kwargs) + + +class FestivalLogic(BaseLogic[Union[HasLogicMixin, ReceivedLogicMixin, FestivalLogicMixin, ArtisanLogicMixin, AnimalLogicMixin, MoneyLogicMixin, TimeLogicMixin, +SkillLogicMixin, RegionLogicMixin, ActionLogicMixin, MonsterLogicMixin, RelationshipLogicMixin, FishingLogicMixin, MuseumLogicMixin, GiftLogicMixin]]): + + def initialize_rules(self): + self.registry.festival_rules.update({ + FestivalCheck.egg_hunt: self.logic.festival.can_win_egg_hunt(), + FestivalCheck.strawberry_seeds: self.logic.money.can_spend(1000), + FestivalCheck.dance: self.logic.relationship.has_hearts_with_any_bachelor(4), + FestivalCheck.tub_o_flowers: self.logic.money.can_spend(2000), + FestivalCheck.rarecrow_5: self.logic.money.can_spend(2500), + FestivalCheck.luau_soup: self.logic.festival.can_succeed_luau_soup(), + FestivalCheck.moonlight_jellies: self.logic.true_, + FestivalCheck.moonlight_jellies_banner: self.logic.money.can_spend(800), + FestivalCheck.starport_decal: self.logic.money.can_spend(1000), + FestivalCheck.smashing_stone: self.logic.true_, + FestivalCheck.grange_display: self.logic.festival.can_succeed_grange_display(), + FestivalCheck.rarecrow_1: self.logic.true_, # only cost star tokens + FestivalCheck.fair_stardrop: self.logic.true_, # only cost star tokens + FestivalCheck.spirit_eve_maze: self.logic.true_, + FestivalCheck.jack_o_lantern: self.logic.money.can_spend(2000), + FestivalCheck.rarecrow_2: self.logic.money.can_spend(5000), + FestivalCheck.fishing_competition: self.logic.festival.can_win_fishing_competition(), + FestivalCheck.rarecrow_4: self.logic.money.can_spend(5000), + FestivalCheck.mermaid_pearl: self.logic.has(Forageable.secret_note), + FestivalCheck.cone_hat: self.logic.money.can_spend(2500), + FestivalCheck.iridium_fireplace: self.logic.money.can_spend(15000), + FestivalCheck.rarecrow_7: self.logic.money.can_spend(5000) & self.logic.museum.can_donate_museum_artifacts(20), + FestivalCheck.rarecrow_8: self.logic.money.can_spend(5000) & self.logic.museum.can_donate_museum_items(40), + FestivalCheck.lupini_red_eagle: self.logic.money.can_spend(1200), + FestivalCheck.lupini_portrait_mermaid: self.logic.money.can_spend(1200), + FestivalCheck.lupini_solar_kingdom: self.logic.money.can_spend(1200), + FestivalCheck.lupini_clouds: self.logic.time.has_year_two & self.logic.money.can_spend(1200), + FestivalCheck.lupini_1000_years: self.logic.time.has_year_two & self.logic.money.can_spend(1200), + FestivalCheck.lupini_three_trees: self.logic.time.has_year_two & self.logic.money.can_spend(1200), + FestivalCheck.lupini_the_serpent: self.logic.time.has_year_three & self.logic.money.can_spend(1200), + FestivalCheck.lupini_tropical_fish: self.logic.time.has_year_three & self.logic.money.can_spend(1200), + FestivalCheck.lupini_land_of_clay: self.logic.time.has_year_three & self.logic.money.can_spend(1200), + FestivalCheck.secret_santa: self.logic.gifts.has_any_universal_love, + FestivalCheck.legend_of_the_winter_star: self.logic.true_, + FestivalCheck.rarecrow_3: self.logic.true_, + FestivalCheck.all_rarecrows: self.logic.region.can_reach(Region.farm) & self.logic.festival.has_all_rarecrows(), + FestivalCheck.calico_race: self.logic.true_, + FestivalCheck.mummy_mask: self.logic.true_, + FestivalCheck.calico_statue: self.logic.true_, + FestivalCheck.emily_outfit_service: self.logic.true_, + FestivalCheck.earthy_mousse: self.logic.true_, + FestivalCheck.sweet_bean_cake: self.logic.true_, + FestivalCheck.skull_cave_casserole: self.logic.true_, + FestivalCheck.spicy_tacos: self.logic.true_, + FestivalCheck.mountain_chili: self.logic.true_, + FestivalCheck.crystal_cake: self.logic.true_, + FestivalCheck.cave_kebab: self.logic.true_, + FestivalCheck.hot_log: self.logic.true_, + FestivalCheck.sour_salad: self.logic.true_, + FestivalCheck.superfood_cake: self.logic.true_, + FestivalCheck.warrior_smoothie: self.logic.true_, + FestivalCheck.rumpled_fruit_skin: self.logic.true_, + FestivalCheck.calico_pizza: self.logic.true_, + FestivalCheck.stuffed_mushrooms: self.logic.true_, + FestivalCheck.elf_quesadilla: self.logic.true_, + FestivalCheck.nachos_of_the_desert: self.logic.true_, + FestivalCheck.cloppino: self.logic.true_, + FestivalCheck.rainforest_shrimp: self.logic.true_, + FestivalCheck.shrimp_donut: self.logic.true_, + FestivalCheck.smell_of_the_sea: self.logic.true_, + FestivalCheck.desert_gumbo: self.logic.true_, + FestivalCheck.free_cactis: self.logic.true_, + FestivalCheck.monster_hunt: self.logic.monster.can_kill(Monster.serpent), + FestivalCheck.deep_dive: self.logic.region.can_reach(Region.skull_cavern_50), + FestivalCheck.treasure_hunt: self.logic.region.can_reach(Region.skull_cavern_25), + FestivalCheck.touch_calico_statue: self.logic.region.can_reach(Region.skull_cavern_25), + FestivalCheck.real_calico_egg_hunter: self.logic.region.can_reach(Region.skull_cavern_100), + FestivalCheck.willy_challenge: self.logic.fishing.can_catch_fish(self.content.fishes[Fish.scorpion_carp]), + FestivalCheck.desert_scholar: self.logic.true_, + FestivalCheck.squidfest_day_1_copper: self.logic.fishing.can_catch_fish(self.content.fishes[Fish.squid]), + FestivalCheck.squidfest_day_1_iron: self.logic.fishing.can_catch_fish(self.content.fishes[Fish.squid]) & self.logic.has(Fishing.bait), + FestivalCheck.squidfest_day_1_gold: self.logic.fishing.can_catch_fish(self.content.fishes[Fish.squid]) & self.logic.has(Fishing.deluxe_bait), + FestivalCheck.squidfest_day_1_iridium: self.logic.festival.can_squidfest_day_1_iridium_reward(), + FestivalCheck.squidfest_day_2_copper: self.logic.fishing.can_catch_fish(self.content.fishes[Fish.squid]), + FestivalCheck.squidfest_day_2_iron: self.logic.fishing.can_catch_fish(self.content.fishes[Fish.squid]) & self.logic.has(Fishing.bait), + FestivalCheck.squidfest_day_2_gold: self.logic.fishing.can_catch_fish(self.content.fishes[Fish.squid]) & self.logic.has(Fishing.deluxe_bait), + FestivalCheck.squidfest_day_2_iridium: self.logic.fishing.can_catch_fish(self.content.fishes[Fish.squid]) & + self.logic.fishing.has_specific_bait(self.content.fishes[Fish.squid]), + }) + for i in range(1, 11): + check_name = f"{FestivalCheck.trout_derby_reward_pattern}{i}" + self.registry.festival_rules[check_name] = self.logic.fishing.can_catch_fish(self.content.fishes[Fish.rainbow_trout]) + + def can_squidfest_day_1_iridium_reward(self) -> StardewRule: + return self.logic.fishing.can_catch_fish(self.content.fishes[Fish.squid]) & self.logic.fishing.has_specific_bait(self.content.fishes[Fish.squid]) + + def has_squidfest_day_1_iridium_reward(self) -> StardewRule: + if self.options.festival_locations == FestivalLocations.option_disabled: + return self.logic.festival.can_squidfest_day_1_iridium_reward() + else: + return self.logic.received(f"Book: {Book.the_art_o_crabbing}") + + def can_win_egg_hunt(self) -> StardewRule: + return self.logic.true_ + + def can_succeed_luau_soup(self) -> StardewRule: + if self.options.festival_locations != FestivalLocations.option_hard: + return self.logic.true_ + eligible_fish = (Fish.blobfish, Fish.crimsonfish, Fish.ice_pip, Fish.lava_eel, Fish.legend, Fish.angler, Fish.catfish, Fish.glacierfish, + Fish.mutant_carp, Fish.spookfish, Fish.stingray, Fish.sturgeon, Fish.super_cucumber) + fish_rule = self.logic.has_any(*(f for f in eligible_fish if f in self.content.fishes)) # To filter stingray + eligible_kegables = (Fruit.ancient_fruit, Fruit.apple, Fruit.banana, Forageable.coconut, Forageable.crystal_fruit, Fruit.mango, Fruit.melon, + Fruit.orange, Fruit.peach, Fruit.pineapple, Fruit.pomegranate, Fruit.rhubarb, Fruit.starfruit, Fruit.strawberry, + Forageable.cactus_fruit, Fruit.cherry, Fruit.cranberries, Fruit.grape, Forageable.spice_berry, Forageable.wild_plum, + Vegetable.hops, Vegetable.wheat) + keg_rules = [self.logic.artisan.can_keg(kegable) for kegable in eligible_kegables if kegable in self.content.game_items] + aged_rule = self.logic.has(Machine.cask) & self.logic.or_(*keg_rules) + # There are a few other valid items, but I don't feel like coding them all + return fish_rule | aged_rule + + def can_succeed_grange_display(self) -> StardewRule: + if self.options.festival_locations != FestivalLocations.option_hard: + return self.logic.true_ + + animal_rule = self.logic.animal.has_animal(Generic.any) + artisan_rule = self.logic.artisan.can_keg(Generic.any) | self.logic.artisan.can_preserves_jar(Generic.any) + cooking_rule = self.logic.money.can_spend_at(Region.saloon, 220) # Salads at the bar are good enough + fish_rule = self.logic.skill.can_fish(difficulty=50) + forage_rule = self.logic.region.can_reach_any((Region.forest, Region.backwoods)) # Hazelnut always available since the grange display is in fall + mineral_rule = self.logic.action.can_open_geode(Generic.any) # More than half the minerals are good enough + good_fruits = (fruit + for fruit in + (Fruit.apple, Fruit.banana, Forageable.coconut, Forageable.crystal_fruit, Fruit.mango, Fruit.orange, Fruit.peach, Fruit.pomegranate, + Fruit.strawberry, Fruit.melon, Fruit.rhubarb, Fruit.pineapple, Fruit.ancient_fruit, Fruit.starfruit) + if fruit in self.content.game_items) + fruit_rule = self.logic.has_any(*good_fruits) + good_vegetables = (vegeteable + for vegeteable in + (Vegetable.amaranth, Vegetable.artichoke, Vegetable.beet, Vegetable.cauliflower, Forageable.fiddlehead_fern, Vegetable.kale, + Vegetable.radish, Vegetable.taro_root, Vegetable.yam, Vegetable.red_cabbage, Vegetable.pumpkin) + if vegeteable in self.content.game_items) + vegetable_rule = self.logic.has_any(*good_vegetables) + + return animal_rule & artisan_rule & cooking_rule & fish_rule & \ + forage_rule & fruit_rule & mineral_rule & vegetable_rule + + def can_win_fishing_competition(self) -> StardewRule: + return self.logic.skill.can_fish(difficulty=60) + + def has_all_rarecrows(self) -> StardewRule: + rules = [] + for rarecrow_number in range(1, 9): + rules.append(self.logic.received(f"Rarecrow #{rarecrow_number}")) + return self.logic.and_(*rules) diff --git a/worlds/stardew_valley/logic/logic.py b/worlds/stardew_valley/logic/logic.py index fb0d938fbb1e..9d4447439f7b 100644 --- a/worlds/stardew_valley/logic/logic.py +++ b/worlds/stardew_valley/logic/logic.py @@ -16,6 +16,7 @@ from .cooking_logic import CookingLogicMixin from .crafting_logic import CraftingLogicMixin from .farming_logic import FarmingLogicMixin +from .festival_logic import FestivalLogicMixin from .fishing_logic import FishingLogicMixin from .gift_logic import GiftLogicMixin from .grind_logic import GrindLogicMixin @@ -62,7 +63,6 @@ from ..strings.currency_names import Currency from ..strings.decoration_names import Decoration from ..strings.fertilizer_names import Fertilizer, SpeedGro, RetainingSoil -from ..strings.festival_check_names import FestivalCheck from ..strings.fish_names import Fish, Trash, WaterItem, WaterChest from ..strings.flower_names import Flower from ..strings.food_names import Meal, Beverage @@ -94,7 +94,7 @@ class StardewLogic(ReceivedLogicMixin, HasLogicMixin, RegionLogicMixin, Travelin CombatLogicMixin, MagicLogicMixin, MonsterLogicMixin, ToolLogicMixin, PetLogicMixin, QualityLogicMixin, SkillLogicMixin, FarmingLogicMixin, BundleLogicMixin, FishingLogicMixin, MineLogicMixin, CookingLogicMixin, AbilityLogicMixin, SpecialOrderLogicMixin, QuestLogicMixin, CraftingLogicMixin, ModLogicMixin, HarvestingLogicMixin, SourceLogicMixin, - RequirementLogicMixin, BookLogicMixin, GrindLogicMixin, WalnutLogicMixin): + RequirementLogicMixin, BookLogicMixin, GrindLogicMixin, FestivalLogicMixin, WalnutLogicMixin): player: int options: StardewValleyOptions content: StardewContent @@ -363,89 +363,7 @@ def __init__(self, player: int, options: StardewValleyOptions, content: StardewC self.quest.initialize_rules() self.quest.update_rules(self.mod.quest.get_modded_quest_rules()) - self.registry.festival_rules.update({ - FestivalCheck.egg_hunt: self.can_win_egg_hunt(), - FestivalCheck.strawberry_seeds: self.money.can_spend(1000), - FestivalCheck.dance: self.relationship.has_hearts_with_any_bachelor(4), - FestivalCheck.tub_o_flowers: self.money.can_spend(2000), - FestivalCheck.rarecrow_5: self.money.can_spend(2500), - FestivalCheck.luau_soup: self.can_succeed_luau_soup(), - FestivalCheck.moonlight_jellies: True_(), - FestivalCheck.moonlight_jellies_banner: self.money.can_spend(800), - FestivalCheck.starport_decal: self.money.can_spend(1000), - FestivalCheck.smashing_stone: True_(), - FestivalCheck.grange_display: self.can_succeed_grange_display(), - FestivalCheck.rarecrow_1: True_(), # only cost star tokens - FestivalCheck.fair_stardrop: True_(), # only cost star tokens - FestivalCheck.spirit_eve_maze: True_(), - FestivalCheck.jack_o_lantern: self.money.can_spend(2000), - FestivalCheck.rarecrow_2: self.money.can_spend(5000), - FestivalCheck.fishing_competition: self.can_win_fishing_competition(), - FestivalCheck.rarecrow_4: self.money.can_spend(5000), - FestivalCheck.mermaid_pearl: self.has(Forageable.secret_note), - FestivalCheck.cone_hat: self.money.can_spend(2500), - FestivalCheck.iridium_fireplace: self.money.can_spend(15000), - FestivalCheck.rarecrow_7: self.money.can_spend(5000) & self.museum.can_donate_museum_artifacts(20), - FestivalCheck.rarecrow_8: self.money.can_spend(5000) & self.museum.can_donate_museum_items(40), - FestivalCheck.lupini_red_eagle: self.money.can_spend(1200), - FestivalCheck.lupini_portrait_mermaid: self.money.can_spend(1200), - FestivalCheck.lupini_solar_kingdom: self.money.can_spend(1200), - FestivalCheck.lupini_clouds: self.time.has_year_two & self.money.can_spend(1200), - FestivalCheck.lupini_1000_years: self.time.has_year_two & self.money.can_spend(1200), - FestivalCheck.lupini_three_trees: self.time.has_year_two & self.money.can_spend(1200), - FestivalCheck.lupini_the_serpent: self.time.has_year_three & self.money.can_spend(1200), - FestivalCheck.lupini_tropical_fish: self.time.has_year_three & self.money.can_spend(1200), - FestivalCheck.lupini_land_of_clay: self.time.has_year_three & self.money.can_spend(1200), - FestivalCheck.secret_santa: self.gifts.has_any_universal_love, - FestivalCheck.legend_of_the_winter_star: True_(), - FestivalCheck.rarecrow_3: True_(), - FestivalCheck.all_rarecrows: self.region.can_reach(Region.farm) & self.has_all_rarecrows(), - FestivalCheck.calico_race: True_(), - FestivalCheck.mummy_mask: True_(), - FestivalCheck.calico_statue: True_(), - FestivalCheck.emily_outfit_service: True_(), - FestivalCheck.earthy_mousse: True_(), - FestivalCheck.sweet_bean_cake: True_(), - FestivalCheck.skull_cave_casserole: True_(), - FestivalCheck.spicy_tacos: True_(), - FestivalCheck.mountain_chili: True_(), - FestivalCheck.crystal_cake: True_(), - FestivalCheck.cave_kebab: True_(), - FestivalCheck.hot_log: True_(), - FestivalCheck.sour_salad: True_(), - FestivalCheck.superfood_cake: True_(), - FestivalCheck.warrior_smoothie: True_(), - FestivalCheck.rumpled_fruit_skin: True_(), - FestivalCheck.calico_pizza: True_(), - FestivalCheck.stuffed_mushrooms: True_(), - FestivalCheck.elf_quesadilla: True_(), - FestivalCheck.nachos_of_the_desert: True_(), - FestivalCheck.cloppino: True_(), - FestivalCheck.rainforest_shrimp: True_(), - FestivalCheck.shrimp_donut: True_(), - FestivalCheck.smell_of_the_sea: True_(), - FestivalCheck.desert_gumbo: True_(), - FestivalCheck.free_cactis: True_(), - FestivalCheck.monster_hunt: self.monster.can_kill(Monster.serpent), - FestivalCheck.deep_dive: self.region.can_reach(Region.skull_cavern_50), - FestivalCheck.treasure_hunt: self.region.can_reach(Region.skull_cavern_25), - FestivalCheck.touch_calico_statue: self.region.can_reach(Region.skull_cavern_25), - FestivalCheck.real_calico_egg_hunter: self.region.can_reach(Region.skull_cavern_100), - FestivalCheck.willy_challenge: self.fishing.can_catch_fish(content.fishes[Fish.scorpion_carp]), - FestivalCheck.desert_scholar: True_(), - FestivalCheck.squidfest_day_1_copper: self.fishing.can_catch_fish(content.fishes[Fish.squid]), - FestivalCheck.squidfest_day_1_iron: self.fishing.can_catch_fish(content.fishes[Fish.squid]) & self.has(Fishing.bait), - FestivalCheck.squidfest_day_1_gold: self.fishing.can_catch_fish(content.fishes[Fish.squid]) & self.has(Fishing.deluxe_bait), - FestivalCheck.squidfest_day_1_iridium: self.fishing.can_catch_fish(content.fishes[Fish.squid]) & - self.fishing.has_specific_bait(content.fishes[Fish.squid]), - FestivalCheck.squidfest_day_2_copper: self.fishing.can_catch_fish(content.fishes[Fish.squid]), - FestivalCheck.squidfest_day_2_iron: self.fishing.can_catch_fish(content.fishes[Fish.squid]) & self.has(Fishing.bait), - FestivalCheck.squidfest_day_2_gold: self.fishing.can_catch_fish(content.fishes[Fish.squid]) & self.has(Fishing.deluxe_bait), - FestivalCheck.squidfest_day_2_iridium: self.fishing.can_catch_fish(content.fishes[Fish.squid]) & - self.fishing.has_specific_bait(content.fishes[Fish.squid]), - }) - for i in range(1, 11): - self.registry.festival_rules[f"{FestivalCheck.trout_derby_reward_pattern}{i}"] = self.fishing.can_catch_fish(content.fishes[Fish.rainbow_trout]) + self.festival.initialize_rules() self.special_order.initialize_rules() self.special_order.update_rules(self.mod.special_order.get_modded_special_orders_rules()) @@ -486,53 +404,6 @@ def can_finish_grandpa_evaluation(self) -> StardewRule: ] return self.count(12, *rules_worth_a_point) - def can_win_egg_hunt(self) -> StardewRule: - return True_() - - def can_succeed_luau_soup(self) -> StardewRule: - if self.options.festival_locations != FestivalLocations.option_hard: - return True_() - eligible_fish = (Fish.blobfish, Fish.crimsonfish, Fish.ice_pip, Fish.lava_eel, Fish.legend, Fish.angler, Fish.catfish, Fish.glacierfish, - Fish.mutant_carp, Fish.spookfish, Fish.stingray, Fish.sturgeon, Fish.super_cucumber) - fish_rule = self.has_any(*(f for f in eligible_fish if f in self.content.fishes)) # To filter stingray - eligible_kegables = (Fruit.ancient_fruit, Fruit.apple, Fruit.banana, Forageable.coconut, Forageable.crystal_fruit, Fruit.mango, Fruit.melon, - Fruit.orange, Fruit.peach, Fruit.pineapple, Fruit.pomegranate, Fruit.rhubarb, Fruit.starfruit, Fruit.strawberry, - Forageable.cactus_fruit, Fruit.cherry, Fruit.cranberries, Fruit.grape, Forageable.spice_berry, Forageable.wild_plum, - Vegetable.hops, Vegetable.wheat) - keg_rules = [self.artisan.can_keg(kegable) for kegable in eligible_kegables if kegable in self.content.game_items] - aged_rule = self.has(Machine.cask) & self.logic.or_(*keg_rules) - # There are a few other valid items, but I don't feel like coding them all - return fish_rule | aged_rule - - def can_succeed_grange_display(self) -> StardewRule: - if self.options.festival_locations != FestivalLocations.option_hard: - return True_() - - animal_rule = self.animal.has_animal(Generic.any) - artisan_rule = self.artisan.can_keg(Generic.any) | self.artisan.can_preserves_jar(Generic.any) - cooking_rule = self.money.can_spend_at(Region.saloon, 220) # Salads at the bar are good enough - fish_rule = self.skill.can_fish(difficulty=50) - forage_rule = self.region.can_reach_any((Region.forest, Region.backwoods)) # Hazelnut always available since the grange display is in fall - mineral_rule = self.action.can_open_geode(Generic.any) # More than half the minerals are good enough - good_fruits = (fruit - for fruit in - (Fruit.apple, Fruit.banana, Forageable.coconut, Forageable.crystal_fruit, Fruit.mango, Fruit.orange, Fruit.peach, Fruit.pomegranate, - Fruit.strawberry, Fruit.melon, Fruit.rhubarb, Fruit.pineapple, Fruit.ancient_fruit, Fruit.starfruit) - if fruit in self.content.game_items) - fruit_rule = self.has_any(*good_fruits) - good_vegetables = (vegeteable - for vegeteable in - (Vegetable.amaranth, Vegetable.artichoke, Vegetable.beet, Vegetable.cauliflower, Forageable.fiddlehead_fern, Vegetable.kale, - Vegetable.radish, Vegetable.taro_root, Vegetable.yam, Vegetable.red_cabbage, Vegetable.pumpkin) - if vegeteable in self.content.game_items) - vegetable_rule = self.has_any(*good_vegetables) - - return animal_rule & artisan_rule & cooking_rule & fish_rule & \ - forage_rule & fruit_rule & mineral_rule & vegetable_rule - - def can_win_fishing_competition(self) -> StardewRule: - return self.skill.can_fish(difficulty=60) - def has_island_trader(self) -> StardewRule: if self.options.exclude_ginger_island == ExcludeGingerIsland.option_true: return False_() @@ -571,12 +442,6 @@ def has_all_stardrops(self) -> StardewRule: return self.received("Stardrop", number_of_stardrops_to_receive) & self.logic.and_(*other_rules) - def has_all_rarecrows(self) -> StardewRule: - rules = [] - for rarecrow_number in range(1, 9): - rules.append(self.received(f"Rarecrow #{rarecrow_number}")) - return self.logic.and_(*rules) - def has_abandoned_jojamart(self) -> StardewRule: return self.received(CommunityUpgrade.movie_theater, 1) From 2b88be5791ae260048850ba652f2ba0aadeaeed9 Mon Sep 17 00:00:00 2001 From: Kaito Sinclaire Date: Sat, 21 Sep 2024 14:06:31 -0700 Subject: [PATCH 077/212] Doom 1993 (auto-generated files): Update E4 logic (#3957) --- worlds/doom_1993/Locations.py | 4 ++-- worlds/doom_1993/Regions.py | 15 ++++++++++----- worlds/doom_1993/Rules.py | 5 ++--- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/worlds/doom_1993/Locations.py b/worlds/doom_1993/Locations.py index 2cbb9b9d150e..90a6916cd716 100644 --- a/worlds/doom_1993/Locations.py +++ b/worlds/doom_1993/Locations.py @@ -2214,13 +2214,13 @@ class LocationDict(TypedDict, total=False): 'map': 2, 'index': 217, 'doom_type': 2006, - 'region': "Perfect Hatred (E4M2) Blue"}, + 'region': "Perfect Hatred (E4M2) Upper"}, 351367: {'name': 'Perfect Hatred (E4M2) - Exit', 'episode': 4, 'map': 2, 'index': -1, 'doom_type': -1, - 'region': "Perfect Hatred (E4M2) Blue"}, + 'region': "Perfect Hatred (E4M2) Upper"}, 351368: {'name': 'Sever the Wicked (E4M3) - Invulnerability', 'episode': 4, 'map': 3, diff --git a/worlds/doom_1993/Regions.py b/worlds/doom_1993/Regions.py index f013bdceaf07..c32f7b470101 100644 --- a/worlds/doom_1993/Regions.py +++ b/worlds/doom_1993/Regions.py @@ -502,13 +502,12 @@ class RegionDict(TypedDict, total=False): "episode":4, "connections":[ {"target":"Perfect Hatred (E4M2) Blue","pro":False}, - {"target":"Perfect Hatred (E4M2) Yellow","pro":False}]}, + {"target":"Perfect Hatred (E4M2) Yellow","pro":False}, + {"target":"Perfect Hatred (E4M2) Upper","pro":True}]}, {"name":"Perfect Hatred (E4M2) Blue", "connects_to_hub":False, "episode":4, - "connections":[ - {"target":"Perfect Hatred (E4M2) Main","pro":False}, - {"target":"Perfect Hatred (E4M2) Cave","pro":False}]}, + "connections":[{"target":"Perfect Hatred (E4M2) Upper","pro":False}]}, {"name":"Perfect Hatred (E4M2) Yellow", "connects_to_hub":False, "episode":4, @@ -518,7 +517,13 @@ class RegionDict(TypedDict, total=False): {"name":"Perfect Hatred (E4M2) Cave", "connects_to_hub":False, "episode":4, - "connections":[]}, + "connections":[{"target":"Perfect Hatred (E4M2) Main","pro":False}]}, + {"name":"Perfect Hatred (E4M2) Upper", + "connects_to_hub":False, + "episode":4, + "connections":[ + {"target":"Perfect Hatred (E4M2) Cave","pro":False}, + {"target":"Perfect Hatred (E4M2) Main","pro":False}]}, # Sever the Wicked (E4M3) {"name":"Sever the Wicked (E4M3) Main", diff --git a/worlds/doom_1993/Rules.py b/worlds/doom_1993/Rules.py index 4faeb4a27dbd..89b09ff9f250 100644 --- a/worlds/doom_1993/Rules.py +++ b/worlds/doom_1993/Rules.py @@ -403,9 +403,8 @@ def set_episode4_rules(player, multiworld, pro): state.has("Chaingun", player, 1)) and (state.has("Plasma gun", player, 1) or state.has("BFG9000", player, 1))) 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)) + (state.has("Hell Beneath (E4M1) - Blue skull key", player, 1)) and (state.has("Shotgun", player, 1) or + state.has("Chaingun", player, 1))) # Perfect Hatred (E4M2) set_rule(multiworld.get_entrance("Hub -> Perfect Hatred (E4M2) Main", player), lambda state: From 97ca2ad258de7b4ea1f477ba409d36f5a15a0101 Mon Sep 17 00:00:00 2001 From: CookieCat <81494827+CookieCat45@users.noreply.github.com> Date: Sat, 21 Sep 2024 17:10:18 -0400 Subject: [PATCH 078/212] AHIT: Fix massive lag spikes in extremely large multiworlds, add extra security to prevent loading the wrong save file for a seed (#3718) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * duh * Fuck it * Major fixes * a * b * Even more fixes * New option - NoFreeRoamFinale * a * Hat Logic Fix * Just to be safe * multiworld.random to world.random * KeyError fix * Update .gitignore * Update __init__.py * Zoinks Scoob * ffs * Ruh Roh Raggy, more r-r-r-random bugs! * 0.9b - cleanup + expanded logic difficulty * Update Rules.py * Update Regions.py * AttributeError fix * 0.10b - New Options * 1.0 Preparations * Docs * Docs 2 * Fixes * Update __init__.py * Fixes * variable capture my beloathed * Fixes * a * 10 Seconds logic fix * 1.1 * 1.2 * a * New client * More client changes * 1.3 * Final touch-ups for 1.3 * 1.3.1 * 1.3.3 * Zero Jumps gen error fix * more fixes * Formatting improvements * typo * Update __init__.py * Revert "Update __init__.py" This reverts commit e178a7c0a6904ace803241cab3021d7b97177e90. * init * Update to new options API * Missed some * Snatcher Coins fix * Missed some more * some slight touch ups * rewind * a * fix things * Revert "Merge branch 'main' of https://github.com/CookieCat45/Archipelago-ahit" This reverts commit a2360fe197e77a723bb70006c5eb5725c7ed3826, reversing changes made to b8948bc4958855c6e342e18bdb8dc81cfcf09455. * Update .gitignore * 1.3.6 * Final touch-ups * Fix client and leftover old options api * Delete setup-ahitclient.py * Update .gitignore * old python version fix * proper warnings for invalid act plandos * Update worlds/ahit/docs/en_A Hat in Time.md Co-authored-by: DanaÃĢl V. <104455676+ReverM@users.noreply.github.com> * Update worlds/ahit/docs/setup_en.md Co-authored-by: DanaÃĢl V. <104455676+ReverM@users.noreply.github.com> * 120 char per line * "settings" to "options" * Update DeathWishRules.py * Update worlds/ahit/docs/en_A Hat in Time.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * No more loading the data package * cleanup + act plando fixes * almost forgot * Update Rules.py * a * Update worlds/ahit/Options.py Co-authored-by: Ixrec * Options stuff * oop * no unnecessary type hints * warn about depot download length in setup guide * Update worlds/ahit/Options.py Co-authored-by: Ixrec * typo Co-authored-by: Ixrec * Update worlds/ahit/Rules.py Co-authored-by: Ixrec * review stuff * More stuff from review * comment * 1.5 Update * link fix? * link fix 2 * Update setup_en.md * Update setup_en.md * Update setup_en.md * Evil * Good fucking lord * Review stuff again + Logic fixes * More review stuff * Even more review stuff - we're almost done * DW review stuff * Finish up review stuff * remove leftover stuff * a * assert item * add A Hat in Time to readme/codeowners files * Fix range options not being corrected properly * 120 chars per line in docs * Update worlds/ahit/Regions.py Co-authored-by: Aaron Wagener * Update worlds/ahit/DeathWishLocations.py Co-authored-by: Aaron Wagener * Remove some unnecessary option.class.value * Remove data_version and more option.class.value * Update worlds/ahit/Items.py Co-authored-by: Aaron Wagener * Remove the rest of option.class.value * Update worlds/ahit/DeathWishLocations.py Co-authored-by: Aaron Wagener * review stuff * Replace connect_regions with Region.connect * review stuff * Remove unnecessary Optional from LocData * Remove HatType.NONE * Update worlds/ahit/test/TestActs.py Co-authored-by: Aaron Wagener * fix so default tests actually don't run * Improve performance for death wish rules * rename test file * change test imports * 1000 is probably unnecessary * a * change state.count to state.has * stuff * starting inventory hats fix * shouldn't have done this lol * make ship shape task goal equal to number of tasksanity checks if set to 0 * a * change act shuffle starting acts + logic updates * dumb * option groups + lambda capture cringe + typo * a * b * missing option in groups * c * Fix Your Contract Has Expired being placed on first level when it shouldn't * yche fix * formatting * major logic bug fix for death wish * Update Regions.py * Add missing indirect connections * Fix generation error from chapter 2 start with act shuffle off * a * Revert "a" This reverts commit df58bbcd998585760cc6ac9ea54b6fdf142b4fd1. * Revert "Fix generation error from chapter 2 start with act shuffle off" This reverts commit 0f4d441824af34bf7a7cff19f5f14161752d8661. * fix async lag * Update Client.py * shop item names need this now * fix indentation --------- Co-authored-by: DanaÃĢl V. <104455676+ReverM@users.noreply.github.com> Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> Co-authored-by: Ixrec Co-authored-by: Aaron Wagener Co-authored-by: Fabian Dill --- worlds/ahit/Client.py | 38 ++++++++++++++++++++++++++++++++++++-- worlds/ahit/__init__.py | 3 ++- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/worlds/ahit/Client.py b/worlds/ahit/Client.py index 2cd67e468294..cbb5f2a13d1f 100644 --- a/worlds/ahit/Client.py +++ b/worlds/ahit/Client.py @@ -4,7 +4,7 @@ import functools from copy import deepcopy from typing import List, Any, Iterable -from NetUtils import decode, encode, JSONtoTextParser, JSONMessagePart, NetworkItem +from NetUtils import decode, encode, JSONtoTextParser, JSONMessagePart, NetworkItem, NetworkPlayer from MultiServer import Endpoint from CommonClient import CommonContext, gui_enabled, ClientCommandProcessor, logger, get_base_parser @@ -101,12 +101,35 @@ def update_items(self): def on_package(self, cmd: str, args: dict): if cmd == "Connected": - self.connected_msg = encode([args]) + json = args + # This data is not needed and causes the game to freeze for long periods of time in large asyncs. + if "slot_info" in json.keys(): + json["slot_info"] = {} + if "players" in json.keys(): + me: NetworkPlayer + for n in json["players"]: + if n.slot == json["slot"] and n.team == json["team"]: + me = n + break + + # Only put our player info in there as we actually need it + json["players"] = [me] + if DEBUG: + print(json) + self.connected_msg = encode([json]) if self.awaiting_info: self.server_msgs.append(self.room_info) self.update_items() self.awaiting_info = False + elif cmd == "RoomUpdate": + # Same story as above + json = args + if "players" in json.keys(): + json["players"] = [] + + self.server_msgs.append(encode(json)) + elif cmd == "ReceivedItems": if args["index"] == 0: self.full_inventory.clear() @@ -166,6 +189,17 @@ async def proxy(websocket, path: str = "/", ctx: AHITContext = None): await ctx.disconnect_proxy() break + if ctx.auth: + name = msg.get("name", "") + if name != "" and name != ctx.auth: + logger.info("Aborting proxy connection: player name mismatch from save file") + logger.info(f"Expected: {ctx.auth}, got: {name}") + text = encode([{"cmd": "PrintJSON", + "data": [{"text": "Connection aborted - player name mismatch"}]}]) + await ctx.send_msgs_proxy(text) + await ctx.disconnect_proxy() + break + if ctx.connected_msg and ctx.is_connected(): await ctx.send_msgs_proxy(ctx.connected_msg) ctx.update_items() diff --git a/worlds/ahit/__init__.py b/worlds/ahit/__init__.py index dd5e88abbc66..14cf13ec346d 100644 --- a/worlds/ahit/__init__.py +++ b/worlds/ahit/__init__.py @@ -253,7 +253,8 @@ def fill_slot_data(self) -> dict: else: item_name = loc.item.name - shop_item_names.setdefault(str(loc.address), item_name) + shop_item_names.setdefault(str(loc.address), + f"{item_name} ({self.multiworld.get_player_name(loc.item.player)})") slot_data["ShopItemNames"] = shop_item_names From 449782a4d89303ed03759a14e6b9ef92fc9ae07b Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Sun, 22 Sep 2024 10:21:10 -0400 Subject: [PATCH 079/212] TUNIC: Add forgotten Laurels rule for Beneath the Vault Boxes #3981 --- worlds/tunic/er_rules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/tunic/er_rules.py b/worlds/tunic/er_rules.py index 2677ec409b3b..bd2498a56a35 100644 --- a/worlds/tunic/er_rules.py +++ b/worlds/tunic/er_rules.py @@ -764,7 +764,7 @@ def set_er_region_rules(world: "TunicWorld", regions: Dict[str, Region], portal_ rule=lambda state: has_ladder("Ladder to Beneath the Vault", state, world) and has_lantern(state, world) # there's some boxes in the way - and (has_stick(state, player) or state.has_any((gun, grapple, fire_wand), player))) + and (has_stick(state, player) or state.has_any((gun, grapple, fire_wand, laurels), player))) # on the reverse trip, you can lure an enemy over to break the boxes if needed regions["Beneath the Vault Main"].connect( connecting_region=regions["Beneath the Vault Ladder Exit"], From 99c02a3eb3157dfc345f770197372c59313d77d0 Mon Sep 17 00:00:00 2001 From: CookieCat <81494827+CookieCat45@users.noreply.github.com> Date: Sun, 22 Sep 2024 10:22:11 -0400 Subject: [PATCH 080/212] AHIT: Fix Death Wish option check typo (#3978) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * duh * Fuck it * Major fixes * a * b * Even more fixes * New option - NoFreeRoamFinale * a * Hat Logic Fix * Just to be safe * multiworld.random to world.random * KeyError fix * Update .gitignore * Update __init__.py * Zoinks Scoob * ffs * Ruh Roh Raggy, more r-r-r-random bugs! * 0.9b - cleanup + expanded logic difficulty * Update Rules.py * Update Regions.py * AttributeError fix * 0.10b - New Options * 1.0 Preparations * Docs * Docs 2 * Fixes * Update __init__.py * Fixes * variable capture my beloathed * Fixes * a * 10 Seconds logic fix * 1.1 * 1.2 * a * New client * More client changes * 1.3 * Final touch-ups for 1.3 * 1.3.1 * 1.3.3 * Zero Jumps gen error fix * more fixes * Formatting improvements * typo * Update __init__.py * Revert "Update __init__.py" This reverts commit e178a7c0a6904ace803241cab3021d7b97177e90. * init * Update to new options API * Missed some * Snatcher Coins fix * Missed some more * some slight touch ups * rewind * a * fix things * Revert "Merge branch 'main' of https://github.com/CookieCat45/Archipelago-ahit" This reverts commit a2360fe197e77a723bb70006c5eb5725c7ed3826, reversing changes made to b8948bc4958855c6e342e18bdb8dc81cfcf09455. * Update .gitignore * 1.3.6 * Final touch-ups * Fix client and leftover old options api * Delete setup-ahitclient.py * Update .gitignore * old python version fix * proper warnings for invalid act plandos * Update worlds/ahit/docs/en_A Hat in Time.md Co-authored-by: DanaÃĢl V. <104455676+ReverM@users.noreply.github.com> * Update worlds/ahit/docs/setup_en.md Co-authored-by: DanaÃĢl V. <104455676+ReverM@users.noreply.github.com> * 120 char per line * "settings" to "options" * Update DeathWishRules.py * Update worlds/ahit/docs/en_A Hat in Time.md Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> * No more loading the data package * cleanup + act plando fixes * almost forgot * Update Rules.py * a * Update worlds/ahit/Options.py Co-authored-by: Ixrec * Options stuff * oop * no unnecessary type hints * warn about depot download length in setup guide * Update worlds/ahit/Options.py Co-authored-by: Ixrec * typo Co-authored-by: Ixrec * Update worlds/ahit/Rules.py Co-authored-by: Ixrec * review stuff * More stuff from review * comment * 1.5 Update * link fix? * link fix 2 * Update setup_en.md * Update setup_en.md * Update setup_en.md * Evil * Good fucking lord * Review stuff again + Logic fixes * More review stuff * Even more review stuff - we're almost done * DW review stuff * Finish up review stuff * remove leftover stuff * a * assert item * add A Hat in Time to readme/codeowners files * Fix range options not being corrected properly * 120 chars per line in docs * Update worlds/ahit/Regions.py Co-authored-by: Aaron Wagener * Update worlds/ahit/DeathWishLocations.py Co-authored-by: Aaron Wagener * Remove some unnecessary option.class.value * Remove data_version and more option.class.value * Update worlds/ahit/Items.py Co-authored-by: Aaron Wagener * Remove the rest of option.class.value * Update worlds/ahit/DeathWishLocations.py Co-authored-by: Aaron Wagener * review stuff * Replace connect_regions with Region.connect * review stuff * Remove unnecessary Optional from LocData * Remove HatType.NONE * Update worlds/ahit/test/TestActs.py Co-authored-by: Aaron Wagener * fix so default tests actually don't run * Improve performance for death wish rules * rename test file * change test imports * 1000 is probably unnecessary * a * change state.count to state.has * stuff * starting inventory hats fix * shouldn't have done this lol * make ship shape task goal equal to number of tasksanity checks if set to 0 * a * change act shuffle starting acts + logic updates * dumb * option groups + lambda capture cringe + typo * a * b * missing option in groups * c * Fix Your Contract Has Expired being placed on first level when it shouldn't * yche fix * formatting * major logic bug fix for death wish * Update Regions.py * Add missing indirect connections * Fix generation error from chapter 2 start with act shuffle off * a * Revert "a" This reverts commit df58bbcd998585760cc6ac9ea54b6fdf142b4fd1. * Revert "Fix generation error from chapter 2 start with act shuffle off" This reverts commit 0f4d441824af34bf7a7cff19f5f14161752d8661. * Fix option typo * I lied, it's actually two lines --------- Co-authored-by: DanaÃĢl V. <104455676+ReverM@users.noreply.github.com> Co-authored-by: Nicholas Saylor <79181893+nicholassaylor@users.noreply.github.com> Co-authored-by: Ixrec Co-authored-by: Aaron Wagener Co-authored-by: Fabian Dill --- worlds/ahit/DeathWishLocations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worlds/ahit/DeathWishLocations.py b/worlds/ahit/DeathWishLocations.py index ef74cadcaa53..ce339c7c19bb 100644 --- a/worlds/ahit/DeathWishLocations.py +++ b/worlds/ahit/DeathWishLocations.py @@ -152,10 +152,10 @@ def create_dw_regions(world: "HatInTimeWorld"): for name in annoying_dws: world.excluded_dws.append(name) - if not world.options.DWEnableBonus or world.options.DWAutoCompleteBonuses: + if not world.options.DWEnableBonus and world.options.DWAutoCompleteBonuses: for name in death_wishes: world.excluded_bonuses.append(name) - elif world.options.DWExcludeAnnoyingBonuses: + if world.options.DWExcludeAnnoyingBonuses and not world.options.DWAutoCompleteBonuses: for name in annoying_bonuses: world.excluded_bonuses.append(name) From f7ec3d750873324fce6d671418d89ccb7439a5e4 Mon Sep 17 00:00:00 2001 From: Silvris <58583688+Silvris@users.noreply.github.com> Date: Sun, 22 Sep 2024 09:24:14 -0500 Subject: [PATCH 081/212] kvui: abstract away client tab additions #3950 --- WargrooveClient.py | 4 +--- kvui.py | 13 ++++++++++--- worlds/sc2/ClientGui.py | 5 +---- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/WargrooveClient.py b/WargrooveClient.py index 39da044d659c..f9971f7a6c05 100644 --- a/WargrooveClient.py +++ b/WargrooveClient.py @@ -267,9 +267,7 @@ class WargrooveManager(GameManager): def build(self): container = super().build() - panel = TabbedPanelItem(text="Wargroove") - panel.content = self.build_tracker() - self.tabs.add_widget(panel) + self.add_client_tab("Wargroove", self.build_tracker()) return container def build_tracker(self) -> TrackerLayout: diff --git a/kvui.py b/kvui.py index 65cf52c7a4aa..536dce12208e 100644 --- a/kvui.py +++ b/kvui.py @@ -536,9 +536,8 @@ def connect_bar_validate(sender): # show Archipelago tab if other logging is present self.tabs.add_widget(panel) - hint_panel = TabbedPanelItem(text="Hints") - self.log_panels["Hints"] = hint_panel.content = HintLog(self.json_to_kivy_parser) - self.tabs.add_widget(hint_panel) + hint_panel = self.add_client_tab("Hints", HintLog(self.json_to_kivy_parser)) + self.log_panels["Hints"] = hint_panel.content if len(self.logging_pairs) == 1: self.tabs.default_tab_text = "Archipelago" @@ -572,6 +571,14 @@ def connect_bar_validate(sender): return self.container + def add_client_tab(self, title: str, content: Widget) -> Widget: + """Adds a new tab to the client window with a given title, and provides a given Widget as its content. + Returns the new tab widget, with the provided content being placed on the tab as content.""" + new_tab = TabbedPanelItem(text=title) + new_tab.content = content + self.tabs.add_widget(new_tab) + return new_tab + def update_texts(self, dt): if hasattr(self.tabs.content.children[0], "fix_heights"): self.tabs.content.children[0].fix_heights() # TODO: remove this when Kivy fixes this upstream diff --git a/worlds/sc2/ClientGui.py b/worlds/sc2/ClientGui.py index fe62e6162457..51c55b437d92 100644 --- a/worlds/sc2/ClientGui.py +++ b/worlds/sc2/ClientGui.py @@ -111,13 +111,10 @@ def clear_tooltip(self) -> None: def build(self): container = super().build() - panel = TabbedPanelItem(text="Starcraft 2 Launcher") - panel.content = CampaignScroll() + panel = self.add_client_tab("Starcraft 2 Launcher", CampaignScroll()) self.campaign_panel = MultiCampaignLayout() panel.content.add_widget(self.campaign_panel) - self.tabs.add_widget(panel) - Clock.schedule_interval(self.build_mission_table, 0.5) return container From d43dc6248506d3936a35063fa357352ad85f423b Mon Sep 17 00:00:00 2001 From: agilbert1412 Date: Sun, 22 Sep 2024 18:14:04 -0400 Subject: [PATCH 082/212] Stardew Valley: Improve Junimo Kart Regions #3984 --- worlds/stardew_valley/data/locations.csv | 4 ++-- worlds/stardew_valley/regions.py | 4 +++- worlds/stardew_valley/rules.py | 2 +- worlds/stardew_valley/strings/entrance_names.py | 1 + worlds/stardew_valley/strings/region_names.py | 1 + 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/worlds/stardew_valley/data/locations.csv b/worlds/stardew_valley/data/locations.csv index 608b6a5f576a..680ddfcbacbf 100644 --- a/worlds/stardew_valley/data/locations.csv +++ b/worlds/stardew_valley/data/locations.csv @@ -313,14 +313,14 @@ id,region,name,tags,mod_name 611,JotPK World 2,JotPK: Cowboy 2,"ARCADE_MACHINE,JOTPK", 612,Junimo Kart 1,Junimo Kart: Crumble Cavern,"ARCADE_MACHINE,JUNIMO_KART", 613,Junimo Kart 1,Junimo Kart: Slippery Slopes,"ARCADE_MACHINE,JUNIMO_KART", -614,Junimo Kart 2,Junimo Kart: Secret Level,"ARCADE_MACHINE,JUNIMO_KART", +614,Junimo Kart 4,Junimo Kart: Secret Level,"ARCADE_MACHINE,JUNIMO_KART", 615,Junimo Kart 2,Junimo Kart: The Gem Sea Giant,"ARCADE_MACHINE,JUNIMO_KART", 616,Junimo Kart 2,Junimo Kart: Slomp's Stomp,"ARCADE_MACHINE,JUNIMO_KART", 617,Junimo Kart 2,Junimo Kart: Ghastly Galleon,"ARCADE_MACHINE,JUNIMO_KART", 618,Junimo Kart 3,Junimo Kart: Glowshroom Grotto,"ARCADE_MACHINE,JUNIMO_KART", 619,Junimo Kart 3,Junimo Kart: Red Hot Rollercoaster,"ARCADE_MACHINE,JUNIMO_KART", 620,JotPK World 3,Journey of the Prairie King Victory,"ARCADE_MACHINE_VICTORY,JOTPK", -621,Junimo Kart 3,Junimo Kart: Sunset Speedway (Victory),"ARCADE_MACHINE_VICTORY,JUNIMO_KART", +621,Junimo Kart 4,Junimo Kart: Sunset Speedway (Victory),"ARCADE_MACHINE_VICTORY,JUNIMO_KART", 701,Secret Woods,Old Master Cannoli,MANDATORY, 702,Beach,Beach Bridge Repair,MANDATORY, 703,Desert,Galaxy Sword Shrine,MANDATORY, diff --git a/worlds/stardew_valley/regions.py b/worlds/stardew_valley/regions.py index b0fc7fa0ea52..5b7db5ac79d1 100644 --- a/worlds/stardew_valley/regions.py +++ b/worlds/stardew_valley/regions.py @@ -87,7 +87,8 @@ def __call__(self, name: str, regions: Iterable[str]) -> Region: RegionData(Region.jotpk_world_3), RegionData(Region.junimo_kart_1, [Entrance.reach_junimo_kart_2]), RegionData(Region.junimo_kart_2, [Entrance.reach_junimo_kart_3]), - RegionData(Region.junimo_kart_3), + RegionData(Region.junimo_kart_3, [Entrance.reach_junimo_kart_4]), + RegionData(Region.junimo_kart_4), RegionData(Region.alex_house), RegionData(Region.trailer), RegionData(Region.mayor_house), @@ -330,6 +331,7 @@ def __call__(self, name: str, regions: Iterable[str]) -> Region: ConnectionData(Entrance.play_junimo_kart, Region.junimo_kart_1), ConnectionData(Entrance.reach_junimo_kart_2, Region.junimo_kart_2), ConnectionData(Entrance.reach_junimo_kart_3, Region.junimo_kart_3), + ConnectionData(Entrance.reach_junimo_kart_4, Region.junimo_kart_4), ConnectionData(Entrance.town_to_sam_house, Region.sam_house, flag=RandomizationFlag.PELICAN_TOWN | RandomizationFlag.LEAD_TO_OPEN_AREA), ConnectionData(Entrance.town_to_haley_house, Region.haley_house, diff --git a/worlds/stardew_valley/rules.py b/worlds/stardew_valley/rules.py index 7f39ee1ac2d4..eda2d4377e09 100644 --- a/worlds/stardew_valley/rules.py +++ b/worlds/stardew_valley/rules.py @@ -891,7 +891,7 @@ def set_arcade_machine_rules(logic: StardewLogic, multiworld: MultiWorld, player logic.has("Junimo Kart Medium Buff")) MultiWorldRules.add_rule(multiworld.get_entrance(Entrance.reach_junimo_kart_3, player), logic.has("Junimo Kart Big Buff")) - MultiWorldRules.add_rule(multiworld.get_location("Junimo Kart: Sunset Speedway (Victory)", player), + MultiWorldRules.add_rule(multiworld.get_entrance(Entrance.reach_junimo_kart_4, player), logic.has("Junimo Kart Max Buff")) MultiWorldRules.add_rule(multiworld.get_entrance(Entrance.play_journey_of_the_prairie_king, player), logic.has("JotPK Small Buff")) diff --git a/worlds/stardew_valley/strings/entrance_names.py b/worlds/stardew_valley/strings/entrance_names.py index 58a919f2a8a4..b1c84004eb7a 100644 --- a/worlds/stardew_valley/strings/entrance_names.py +++ b/worlds/stardew_valley/strings/entrance_names.py @@ -94,6 +94,7 @@ class Entrance: play_junimo_kart = "Play Junimo Kart" reach_junimo_kart_2 = "Reach Junimo Kart 2" reach_junimo_kart_3 = "Reach Junimo Kart 3" + reach_junimo_kart_4 = "Reach Junimo Kart 4" enter_locker_room = "Bathhouse Entrance to Locker Room" enter_public_bath = "Locker Room to Public Bath" enter_witch_swamp = "Witch Warp Cave to Witch's Swamp" diff --git a/worlds/stardew_valley/strings/region_names.py b/worlds/stardew_valley/strings/region_names.py index 58763b6fcb80..2bbc6228ab19 100644 --- a/worlds/stardew_valley/strings/region_names.py +++ b/worlds/stardew_valley/strings/region_names.py @@ -114,6 +114,7 @@ class Region: junimo_kart_1 = "Junimo Kart 1" junimo_kart_2 = "Junimo Kart 2" junimo_kart_3 = "Junimo Kart 3" + junimo_kart_4 = "Junimo Kart 4" mines_floor_5 = "The Mines - Floor 5" mines_floor_10 = "The Mines - Floor 10" mines_floor_15 = "The Mines - Floor 15" From 8021b457b6e0193b047f90de196963ee6460eaf1 Mon Sep 17 00:00:00 2001 From: Mrks <68022469+mrkssr@users.noreply.github.com> Date: Mon, 23 Sep 2024 23:19:26 +0200 Subject: [PATCH 083/212] WebHost: Added Games Of A Seed To The User Content Page (#3585) * Added contained games of a seed to the user content page as tooltip. * Changed sort handling. * Limited amount of shown games. * Added missing dashes. Co-authored-by: Kory Dondzila * Closing a-tags. Co-authored-by: Kory Dondzila * Closing a-tags. Co-authored-by: Kory Dondzila * Moved games list to table cell level. Co-authored-by: Kory Dondzila * Moved games list to table cell level. --------- Co-authored-by: Kory Dondzila --- WebHostLib/templates/userContent.html | 31 +++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/WebHostLib/templates/userContent.html b/WebHostLib/templates/userContent.html index 71a0f6747bc3..4e3747f4f952 100644 --- a/WebHostLib/templates/userContent.html +++ b/WebHostLib/templates/userContent.html @@ -1,5 +1,21 @@ {% extends 'tablepage.html' %} +{%- macro games(slots) -%} + {%- set gameList = [] -%} + {%- set maxGamesToShow = 10 -%} + + {%- for slot in (slots|list|sort(attribute="player_id"))[:maxGamesToShow] -%} + {% set player = "#" + slot["player_id"]|string + " " + slot["player_name"] + " : " + slot["game"] -%} + {% set _ = gameList.append(player) -%} + {%- endfor -%} + + {%- if slots|length > maxGamesToShow -%} + {% set _ = gameList.append("... and " + (slots|length - maxGamesToShow)|string + " more") -%} + {%- endif -%} + + {{ gameList|join('\n') }} +{%- endmacro -%} + {% block head %} {{ super() }} User Content @@ -33,10 +49,12 @@

Your Rooms

{{ room.seed.id|suuid }} {{ room.id|suuid }} - {{ room.seed.slots|length }} + + {{ room.seed.slots|length }} + {{ room.creation_time.strftime("%Y-%m-%d %H:%M") }} {{ room.last_activity.strftime("%Y-%m-%d %H:%M") }} - Delete next maintenance. + Delete next maintenance. {% endfor %} @@ -60,10 +78,15 @@

Your Seeds

{% for seed in seeds %} {{ seed.id|suuid }} - {% if seed.multidata %}{{ seed.slots|length }}{% else %}1{% endif %} + + {% if seed.multidata %} + {{ seed.slots|length }} + {% else %} + 1 + {% endif %} {{ seed.creation_time.strftime("%Y-%m-%d %H:%M") }} - Delete next maintenance. + Delete next maintenance. {% endfor %} From f06d4503d83209b8fae6897eef500493d57826e8 Mon Sep 17 00:00:00 2001 From: Kory Dondzila Date: Mon, 23 Sep 2024 16:21:03 -0500 Subject: [PATCH 084/212] Adds link to other players' trackers in player hints. (#3569) --- WebHostLib/templates/genericTracker.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/WebHostLib/templates/genericTracker.html b/WebHostLib/templates/genericTracker.html index 5a533204083b..947cf2837278 100644 --- a/WebHostLib/templates/genericTracker.html +++ b/WebHostLib/templates/genericTracker.html @@ -99,14 +99,18 @@ {% if hint.finding_player == player %} {{ player_names_with_alias[(team, hint.finding_player)] }} {% else %} - {{ player_names_with_alias[(team, hint.finding_player)] }} + + {{ player_names_with_alias[(team, hint.finding_player)] }} + {% endif %} {% if hint.receiving_player == player %} {{ player_names_with_alias[(team, hint.receiving_player)] }} {% else %} - {{ player_names_with_alias[(team, hint.receiving_player)] }} + + {{ player_names_with_alias[(team, hint.receiving_player)] }} + {% endif %} {{ item_id_to_name[games[(team, hint.receiving_player)]][hint.item] }} From e910a372733aee02d37cd784ca2398874bea1a04 Mon Sep 17 00:00:00 2001 From: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Date: Wed, 25 Sep 2024 17:47:38 +0200 Subject: [PATCH 085/212] Core: Put an assert for parent region in Entrance.can_reach just like the one in Location.can_reach (#3998) * Core: Move connection.parent_region assert to can_reach This is how it already works for locations and it feels more correct to me to check in the place where the crash would happen. Also update location error to be a bit more verbose * Bring back the other assert * Update BaseClasses.py --- BaseClasses.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index a5de1689a7fe..916a5b18042d 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -720,7 +720,7 @@ def _update_reachable_regions_explicit_indirect_conditions(self, player: int, qu if new_region in reachable_regions: blocked_connections.remove(connection) elif connection.can_reach(self): - assert new_region, f"tried to search through an Entrance \"{connection}\" with no Region" + assert new_region, f"tried to search through an Entrance \"{connection}\" with no connected Region" reachable_regions.add(new_region) blocked_connections.remove(connection) blocked_connections.update(new_region.exits) @@ -946,6 +946,7 @@ def __init__(self, player: int, name: str = "", parent: Optional[Region] = None) self.player = player def can_reach(self, state: CollectionState) -> bool: + assert self.parent_region, f"called can_reach on an Entrance \"{self}\" with no parent_region" if self.parent_region.can_reach(state) and self.access_rule(state): if not self.hide_path and not self in state.path: state.path[self] = (self.name, state.path.get(self.parent_region, (self.parent_region.name, None))) @@ -1166,7 +1167,7 @@ def can_fill(self, state: CollectionState, item: Item, check_access: bool = True def can_reach(self, state: CollectionState) -> bool: # Region.can_reach is just a cache lookup, so placing it first for faster abort on average - assert self.parent_region, "Can't reach location without region" + assert self.parent_region, f"called can_reach on a Location \"{self}\" with no parent_region" return self.parent_region.can_reach(state) and self.access_rule(state) def place_locked_item(self, item: Item): From 9a9fea0ca2d686ca350c93ae246e02da44a36b77 Mon Sep 17 00:00:00 2001 From: Felix R <50271878+FelicitusNeko@users.noreply.github.com> Date: Thu, 26 Sep 2024 15:47:03 -0300 Subject: [PATCH 086/212] bumpstik: add hazard bumpers to completion (#3991) * bumpstik: add hazard bumpers to completion * bumpstik: update to use has_all_counts for completion as suggested by ScipioWright --- worlds/bumpstik/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worlds/bumpstik/__init__.py b/worlds/bumpstik/__init__.py index fe261dc94d30..ffe9efd2de87 100644 --- a/worlds/bumpstik/__init__.py +++ b/worlds/bumpstik/__init__.py @@ -125,6 +125,6 @@ def set_rules(self): lambda state: state.has("Hazard Bumper", self.player, 25) self.multiworld.completion_condition[self.player] = \ - lambda state: state.has("Booster Bumper", self.player, 5) and \ - state.has("Treasure Bumper", self.player, 32) + lambda state: state.has_all_counts({"Booster Bumper": 5, "Treasure Bumper": 32, "Hazard Bumper": 25}, \ + self.player) From e85a835b47b082936b8fb7233d8857d6a0c81a17 Mon Sep 17 00:00:00 2001 From: qwint Date: Thu, 26 Sep 2024 18:02:10 -0400 Subject: [PATCH 087/212] Core: use base collect/remove for item link groups (#3999) * use base collect/remove for item link groups * Update BaseClasses.py --------- Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- BaseClasses.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/BaseClasses.py b/BaseClasses.py index 916a5b18042d..0d4f34e51445 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -194,7 +194,9 @@ def add_group(self, name: str, game: str, players: AbstractSet[int] = frozenset( self.player_types[new_id] = NetUtils.SlotType.group world_type = AutoWorld.AutoWorldRegister.world_types[game] self.worlds[new_id] = world_type.create_group(self, new_id, players) - self.worlds[new_id].collect_item = classmethod(AutoWorld.World.collect_item).__get__(self.worlds[new_id]) + self.worlds[new_id].collect_item = AutoWorld.World.collect_item.__get__(self.worlds[new_id]) + self.worlds[new_id].collect = AutoWorld.World.collect.__get__(self.worlds[new_id]) + self.worlds[new_id].remove = AutoWorld.World.remove.__get__(self.worlds[new_id]) self.player_name[new_id] = name new_group = self.groups[new_id] = Group(name=name, game=game, players=players, From a043ed50a6af54dd1b80efb06d251bc83e6ab2ad Mon Sep 17 00:00:00 2001 From: Benny D <78334662+benny-dreamly@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:56:36 -0600 Subject: [PATCH 088/212] Timespinner: Fix Typo in Download Location #3997 --- worlds/timespinner/Locations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/timespinner/Locations.py b/worlds/timespinner/Locations.py index f99dd7615571..2423e06bb010 100644 --- a/worlds/timespinner/Locations.py +++ b/worlds/timespinner/Locations.py @@ -207,7 +207,7 @@ def get_location_datas(player: Optional[int], options: Optional[TimespinnerOptio LocationData('Library', 'Library: Terminal 2 (Lachiem)', 1337156, lambda state: state.has('Tablet', player)), LocationData('Library', 'Library: Terminal 1 (Windaria)', 1337157, lambda state: state.has('Tablet', player)), # 1337158 Is lost in time - LocationData('Library', 'Library: Terminal 3 (Emporer Nuvius)', 1337159, lambda state: state.has('Tablet', player)), + LocationData('Library', 'Library: Terminal 3 (Emperor Nuvius)', 1337159, lambda state: state.has('Tablet', player)), LocationData('Library', 'Library: V terminal 1 (War of the Sisters)', 1337160, lambda state: state.has_all({'Tablet', 'Library Keycard V'}, player)), LocationData('Library', 'Library: V terminal 2 (Lake Desolation Map)', 1337161, lambda state: state.has_all({'Tablet', 'Library Keycard V'}, player)), LocationData('Library', 'Library: V terminal 3 (Vilete)', 1337162, lambda state: state.has_all({'Tablet', 'Library Keycard V'}, player)), From ab8caea8be1d8b38a1de8560c66cb66fb0e2873b Mon Sep 17 00:00:00 2001 From: Ziktofel Date: Fri, 27 Sep 2024 00:57:21 +0200 Subject: [PATCH 089/212] SC2: Fix item origins, so including/excluding NCO/BW/EXT items works properly (#3990) --- worlds/sc2/Items.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/worlds/sc2/Items.py b/worlds/sc2/Items.py index 8277d0e7e13d..ee1f34d75be9 100644 --- a/worlds/sc2/Items.py +++ b/worlds/sc2/Items.py @@ -1274,16 +1274,16 @@ def get_full_item_list(): description="Defensive structure. Slows the attack and movement speeds of all nearby Zerg units."), ItemNames.STRUCTURE_ARMOR: ItemData(620 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 9, SC2Race.TERRAN, - description="Increases armor of all Terran structures by 2."), + description="Increases armor of all Terran structures by 2.", origin={"ext"}), ItemNames.HI_SEC_AUTO_TRACKING: ItemData(621 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 10, SC2Race.TERRAN, - description="Increases attack range of all Terran structures by 1."), + description="Increases attack range of all Terran structures by 1.", origin={"ext"}), ItemNames.ADVANCED_OPTICS: ItemData(622 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 11, SC2Race.TERRAN, - description="Increases attack range of all Terran mechanical units by 1."), + description="Increases attack range of all Terran mechanical units by 1.", origin={"ext"}), ItemNames.ROGUE_FORCES: ItemData(623 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 12, SC2Race.TERRAN, - description="Mercenary calldowns are no longer limited by charges."), + description="Mercenary calldowns are no longer limited by charges.", origin={"ext"}), ItemNames.ZEALOT: ItemData(700 + SC2WOL_ITEM_ID_OFFSET, "Unit", 0, SC2Race.PROTOSS, @@ -2369,7 +2369,8 @@ def get_basic_units(world: World, race: SC2Race) -> typing.Set[str]: ItemNames.BATTLECRUISER_PROGRESSIVE_MISSILE_PODS, ItemNames.THOR_PROGRESSIVE_IMMORTALITY_PROTOCOL, ItemNames.PROGRESSIVE_FIRE_SUPPRESSION_SYSTEM, - ItemNames.DIAMONDBACK_PROGRESSIVE_TRI_LITHIUM_POWER_CELL + ItemNames.DIAMONDBACK_PROGRESSIVE_TRI_LITHIUM_POWER_CELL, + ItemNames.PROGRESSIVE_ORBITAL_COMMAND } kerrigan_actives: typing.List[typing.Set[str]] = [ From 5ea55d77b0d2fbe5850c4b08665af64d75f75fa3 Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Thu, 26 Sep 2024 18:25:41 -0500 Subject: [PATCH 090/212] The Messenger: add webhost auto connection steps to guide (#3904) * The Messenger: add webhost auto connection steps to guide and fix doc spacing * rever comments * add notes about potential steam popup * medic's feedback Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- worlds/messenger/docs/en_The Messenger.md | 18 ++++++++++-------- worlds/messenger/docs/setup_en.md | 17 +++++++++++++++-- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/worlds/messenger/docs/en_The Messenger.md b/worlds/messenger/docs/en_The Messenger.md index 8248a4755d3f..a68ee5ba4c7a 100644 --- a/worlds/messenger/docs/en_The Messenger.md +++ b/worlds/messenger/docs/en_The Messenger.md @@ -39,7 +39,9 @@ You can find items wherever items can be picked up in the original game. This in When you attempt to hint for items in Archipelago you can use either the name for the specific item, or the name of a group of items. Hinting for a group will choose a random item from the group that you do not currently have and hint -for it. The groups you can use for The Messenger are: +for it. + +The groups you can use for The Messenger are: * Notes - This covers the music notes * Keys - An alternative name for the music notes * Crest - The Sun and Moon Crests @@ -50,26 +52,26 @@ for it. The groups you can use for The Messenger are: * The player can return to the Tower of Time HQ at any point by selecting the button from the options menu * This can cause issues if used at specific times. If used in any of these known problematic areas, immediately -quit to title and reload the save. The currently known areas include: + quit to title and reload the save. The currently known areas include: * During Boss fights * After Courage Note collection (Corrupted Future chase) * After reaching ninja village a teleport option is added to the menu to reach it quickly * Toggle Windmill Shuriken button is added to option menu once the item is received * The mod option menu will also have a hint item button, as well as a release and collect button that are all placed -when the player fulfills the necessary conditions. + when the player fulfills the necessary conditions. * After running the game with the mod, a config file (APConfig.toml) will be generated in your game folder that can be -used to modify certain settings such as text size and color. This can also be used to specify a player name that can't -be entered in game. + used to modify certain settings such as text size and color. This can also be used to specify a player name that can't + be entered in game. ## Known issues * Ruxxtin Coffin cutscene will sometimes not play correctly, but will still reward the item * If you receive the Magic Firefly while in Quillshroom Marsh, The De-curse Queen cutscene will not play. You can exit -to Searing Crags and re-enter to get it to play correctly. + to Searing Crags and re-enter to get it to play correctly. * Teleporting back to HQ, then returning to the same level you just left through a Portal can cause Ninja to run left -and enter a different portal than the one entered by the player or lead to other incorrect inputs, causing a soft lock + and enter a different portal than the one entered by the player or lead to other incorrect inputs, causing a soft lock * Text entry menus don't accept controller input * In power seal hunt mode, the chest must be opened by entering the shop from a level. Teleporting to HQ and opening the -chest will not work. + chest will not work. ## What do I do if I have a problem? diff --git a/worlds/messenger/docs/setup_en.md b/worlds/messenger/docs/setup_en.md index c1770e747442..64b706c2643a 100644 --- a/worlds/messenger/docs/setup_en.md +++ b/worlds/messenger/docs/setup_en.md @@ -41,14 +41,27 @@ These steps can also be followed to launch the game and check for mod updates af ## Joining a MultiWorld Game +### Automatic Connection on archipelago.gg + +1. Go to the room page of the MultiWorld you are going to join. +2. Click on your slot name on the left side. +3. Click the "The Messenger" button in the prompt. +4. Follow the remaining prompts. This process will check that you have the mod installed and will also check for updates + before launching The Messenger. If you are using the Steam version of The Messenger you may also get a prompt from + Steam asking if the game should be launched with arguments. These arguments are the URI which the mod uses to + connect. +5. Start a new save. You will already be connected in The Messenger and do not need to go through the menus. + +### Manual Connection + 1. Launch the game 2. Navigate to `Options > Archipelago Options` 3. Enter connection info using the relevant option buttons * **The game is limited to alphanumerical characters, `.`, and `-`.** * This defaults to `archipelago.gg` and does not need to be manually changed if connecting to a game hosted on the -website. + website. * If using a name that cannot be entered in the in game menus, there is a config file (APConfig.toml) in the game -directory. When using this, all connection information must be entered in the file. + directory. When using this, all connection information must be entered in the file. 4. Select the `Connect to Archipelago` button 5. Navigate to save file selection 6. Start a new game From a2d585ba5cffd6e843e5355acb25a9be65c365b5 Mon Sep 17 00:00:00 2001 From: agilbert1412 Date: Thu, 26 Sep 2024 19:26:06 -0400 Subject: [PATCH 091/212] Stardew Valley: Add Cinder Shard resource pack (#4001) * - Add Cinder Shard resource pack * - Make it ginger island exclusive --- worlds/stardew_valley/data/items.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/worlds/stardew_valley/data/items.csv b/worlds/stardew_valley/data/items.csv index 64c14e9f678a..ffcae223e251 100644 --- a/worlds/stardew_valley/data/items.csv +++ b/worlds/stardew_valley/data/items.csv @@ -819,6 +819,7 @@ id,name,classification,groups,mod_name 5289,Prismatic Shard,filler,"RESOURCE_PACK", 5290,Stardrop Tea,filler,"RESOURCE_PACK", 5291,Resource Pack: 2 Artifact Trove,filler,"RESOURCE_PACK", +5292,Resource Pack: 20 Cinder Shard,filler,"GINGER_ISLAND,RESOURCE_PACK", 10001,Luck Level,progression,SKILL_LEVEL_UP,Luck Skill 10002,Magic Level,progression,SKILL_LEVEL_UP,Magic 10003,Socializing Level,progression,SKILL_LEVEL_UP,Socializing Skill From 5c4e81d04600ab4a2162bc19b11762ba055caaaa Mon Sep 17 00:00:00 2001 From: BadMagic100 Date: Thu, 26 Sep 2024 16:27:22 -0700 Subject: [PATCH 092/212] Hollow Knight: Clean outdated slot data code and comments #3988 --- worlds/hk/__init__.py | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index 15addefef50a..9ec77e6bf0cd 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -534,26 +534,16 @@ def fill_slot_data(self): for option_name in hollow_knight_options: option = getattr(self.options, option_name) try: + # exclude more complex types - we only care about int, bool, enum for player options; the client + # can get them back to the necessary type. optionvalue = int(option.value) - except TypeError: - pass # C# side is currently typed as dict[str, int], drop what doesn't fit - else: options[option_name] = optionvalue + except TypeError: + pass # 32 bit int slot_data["seed"] = self.random.randint(-2147483647, 2147483646) - # Backwards compatibility for shop cost data (HKAP < 0.1.0) - if not self.options.CostSanity: - for shop, terms in shop_cost_types.items(): - unit = cost_terms[next(iter(terms))].option - if unit == "Geo": - continue - slot_data[f"{unit}_costs"] = { - loc.name: next(iter(loc.costs.values())) - for loc in self.created_multi_locations[shop] - } - # HKAP 0.1.0 and later cost data. location_costs = {} for region in self.multiworld.get_regions(self.player): @@ -566,7 +556,7 @@ def fill_slot_data(self): slot_data["grub_count"] = self.grub_count - slot_data["is_race"] = int(self.settings.disable_spoilers or self.multiworld.is_race) + slot_data["is_race"] = self.settings.disable_spoilers or self.multiworld.is_race return slot_data From 177c0fef52a7ebdde6778195ed5ed6acc1238207 Mon Sep 17 00:00:00 2001 From: soopercool101 Date: Thu, 26 Sep 2024 18:29:26 -0500 Subject: [PATCH 093/212] SM64: Remove outdated information on save bugs from setup guide (#3879) * Remove outdated information from SM64 setup guide Recent build changes have made it so that old saves no longer remove logical gates or prevent Toads from granting stars, remove info highlighting these issues. * Better line break location --- worlds/sm64ex/docs/setup_en.md | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/worlds/sm64ex/docs/setup_en.md b/worlds/sm64ex/docs/setup_en.md index 5983057f7d7a..7456bcb70b62 100644 --- a/worlds/sm64ex/docs/setup_en.md +++ b/worlds/sm64ex/docs/setup_en.md @@ -77,9 +77,6 @@ Should your name or password have spaces, enclose it in quotes: `"YourPassword"` Should the connection fail (for example when using the wrong name or IP/Port combination) the game will inform you of that. Additionally, any time the game is not connected (for example when the connection is unstable) it will attempt to reconnect and display a status text. -**Important:** You must start a new file for every new seed you play. Using `⭐x0` files is **not** sufficient. -Failing to use a new file may make some locations unavailable. However, this can be fixed without losing any progress by exiting and starting a new file. - ### Playing offline To play offline, first generate a seed on the game's options page. @@ -129,18 +126,6 @@ To use this batch file, double-click it. A window will open. Type the five-digi Once you provide those two bits of information, the game will open. - If the game only says `Connecting`, try again. Double-check the port number and slot name; even a single typo will cause your connection to fail. -### Addendum - Deleting old saves - -Loading an old Mario save alongside a new seed is a bad idea, as it can cause locked doors and castle secret stars to already be unlocked / obtained. You should avoid opening a save that says "Stars x 0" as opposed to one that simply says "New". - -You can manually delete these old saves in-game before starting a new game, but that can be tedious. With a small edit to the batch files, you can delete these old saves automatically. Just add the line `del %AppData%\sm64ex\*.bin` to the batch file, above the `start` command. For example, here is `offline.bat` with the additional line: - -`del %AppData%\sm64ex\*.bin` - -`start sm64.us.f3dex2e.exe --sm64ap_file %1` - -This extra line deletes any previous save data before opening the game. Don't worry about lost stars or checks - the AP server (or in the case of offline, the `.save` file) keeps track of your star count, unlocked keys/caps/cannons, and which locations have already been checked, so you won't have to redo them. At worst you'll have to rewatch the door unlocking animations, and catch the rabbit Mips twice for his first star again if you haven't yet collected the second one. - ## Installation Troubleshooting Start the game from the command line to view helpful messages regarding SM64EX. @@ -166,8 +151,9 @@ The Japanese Version should have no problem displaying these. ### Toad does not have an item for me. -This happens when you load an existing file that had already received an item from that toad. +This happens on older builds when you load an existing file that had already received an item from that toad. To resolve this, exit and start from a `NEW` file. The server will automatically restore your progress. +Alternatively, updating your build will prevent this issue in the future. ### What happens if I lose connection? From 05439012dcd45cefd5ad99159024fb92d1213b8b Mon Sep 17 00:00:00 2001 From: palex00 <32203971+palex00@users.noreply.github.com> Date: Fri, 27 Sep 2024 01:30:23 +0200 Subject: [PATCH 094/212] Adjusts Whitespaces in the Plando Doc to be able to be copied directly (#3902) * Update plando_en.md * Also adjusts plando_connections indentation * ughh --- worlds/generic/docs/plando_en.md | 186 +++++++++++++++---------------- 1 file changed, 93 insertions(+), 93 deletions(-) diff --git a/worlds/generic/docs/plando_en.md b/worlds/generic/docs/plando_en.md index 161b1e465b33..1980e81cbcc4 100644 --- a/worlds/generic/docs/plando_en.md +++ b/worlds/generic/docs/plando_en.md @@ -22,9 +22,9 @@ enabled (opt-in). * You can add the necessary plando modules for your settings to the `requires` section of your YAML. Doing so will throw an error if the options that you need to generate properly are not enabled to ensure you will get the results you desire. Only enter in the plando modules that you are using here but it should look like: ```yaml - requires: - version: current.version.number - plando: bosses, items, texts, connections +requires: + version: current.version.number + plando: bosses, items, texts, connections ``` ## Item Plando @@ -74,77 +74,77 @@ A list of all available items and locations can be found in the [website's datap ### Examples ```yaml -plando_items: - # example block 1 - Timespinner - - item: - Empire Orb: 1 - Radiant Orb: 1 - location: Starter Chest 1 - from_pool: true - world: true - percentage: 50 - - # example block 2 - Ocarina of Time - - items: - Kokiri Sword: 1 - Biggoron Sword: 1 - Bow: 1 - Magic Meter: 1 - Progressive Strength Upgrade: 3 - Progressive Hookshot: 2 - locations: - - Deku Tree Slingshot Chest - - Dodongos Cavern Bomb Bag Chest - - Jabu Jabus Belly Boomerang Chest - - Bottom of the Well Lens of Truth Chest - - Forest Temple Bow Chest - - Fire Temple Megaton Hammer Chest - - Water Temple Longshot Chest - - Shadow Temple Hover Boots Chest - - Spirit Temple Silver Gauntlets Chest - world: false - - # example block 3 - Slay the Spire - - items: - Boss Relic: 3 - locations: - - Boss Relic 1 - - Boss Relic 2 - - Boss Relic 3 - - # example block 4 - Factorio - - items: - progressive-electric-energy-distribution: 2 - electric-energy-accumulators: 1 - progressive-turret: 2 - locations: - - military - - gun-turret - - logistic-science-pack - - steel-processing - percentage: 80 - force: true - -# example block 5 - Secret of Evermore - - items: - Levitate: 1 - Revealer: 1 - Energize: 1 - locations: - - Master Sword Pedestal - - Boss Relic 1 - world: true - count: 2 - -# example block 6 - A Link to the Past - - items: - Progressive Sword: 4 - world: - - BobsSlaytheSpire - - BobsRogueLegacy - count: - min: 1 - max: 4 + plando_items: + # example block 1 - Timespinner + - item: + Empire Orb: 1 + Radiant Orb: 1 + location: Starter Chest 1 + from_pool: true + world: true + percentage: 50 + + # example block 2 - Ocarina of Time + - items: + Kokiri Sword: 1 + Biggoron Sword: 1 + Bow: 1 + Magic Meter: 1 + Progressive Strength Upgrade: 3 + Progressive Hookshot: 2 + locations: + - Deku Tree Slingshot Chest + - Dodongos Cavern Bomb Bag Chest + - Jabu Jabus Belly Boomerang Chest + - Bottom of the Well Lens of Truth Chest + - Forest Temple Bow Chest + - Fire Temple Megaton Hammer Chest + - Water Temple Longshot Chest + - Shadow Temple Hover Boots Chest + - Spirit Temple Silver Gauntlets Chest + world: false + + # example block 3 - Slay the Spire + - items: + Boss Relic: 3 + locations: + - Boss Relic 1 + - Boss Relic 2 + - Boss Relic 3 + + # example block 4 - Factorio + - items: + progressive-electric-energy-distribution: 2 + electric-energy-accumulators: 1 + progressive-turret: 2 + locations: + - military + - gun-turret + - logistic-science-pack + - steel-processing + percentage: 80 + force: true + + # example block 5 - Secret of Evermore + - items: + Levitate: 1 + Revealer: 1 + Energize: 1 + locations: + - Master Sword Pedestal + - Boss Relic 1 + world: true + count: 2 + + # example block 6 - A Link to the Past + - items: + Progressive Sword: 4 + world: + - BobsSlaytheSpire + - BobsRogueLegacy + count: + min: 1 + max: 4 ``` 1. This block has a 50% chance to occur, and if it does, it will place either the Empire Orb or Radiant Orb on another player's Starter Chest 1 and removes the chosen item from the item pool. @@ -221,25 +221,25 @@ its [plando guide](/tutorial/A%20Link%20to%20the%20Past/plando/en#connections). ### Examples ```yaml -plando_connections: - # example block 1 - A Link to the Past - - entrance: Cave Shop (Lake Hylia) - exit: Cave 45 - direction: entrance - - entrance: Cave 45 - exit: Cave Shop (Lake Hylia) - direction: entrance - - entrance: Agahnims Tower - exit: Old Man Cave Exit (West) - direction: exit - - # example block 2 - Minecraft - - entrance: Overworld Structure 1 - exit: Nether Fortress - direction: both - - entrance: Overworld Structure 2 - exit: Village - direction: both + plando_connections: + # example block 1 - A Link to the Past + - entrance: Cave Shop (Lake Hylia) + exit: Cave 45 + direction: entrance + - entrance: Cave 45 + exit: Cave Shop (Lake Hylia) + direction: entrance + - entrance: Agahnims Tower + exit: Old Man Cave Exit (West) + direction: exit + + # example block 2 - Minecraft + - entrance: Overworld Structure 1 + exit: Nether Fortress + direction: both + - entrance: Overworld Structure 2 + exit: Village + direction: both ``` 1. These connections are decoupled, so going into the Lake Hylia Cave Shop will take you to the inside of Cave 45, and From 3205e9b3a00763460af9481c78ac7124c19e09e0 Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Thu, 26 Sep 2024 23:31:50 +0000 Subject: [PATCH 095/212] DS3: Update setup instructions (#3817) * DS3: Point the DS3 client link to my GitHub It's not clear if/when my PR will land for the upstream fork, or if we'll just start using my fork as the primary source of truth. For now, it's the only one with 3.0.0-compatible releases. * DS3: Document Proton support * DS3: Document another way to get a YAML template * DS3: Don't say that the mod will force offline mode ModEngine2 is *supposed to* do this, but in practice it does not * Code review * Update Linux instructions per user experiences --- worlds/dark_souls_3/docs/setup_en.md | 31 ++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/worlds/dark_souls_3/docs/setup_en.md b/worlds/dark_souls_3/docs/setup_en.md index ed90289a8baf..9755cce1c6a8 100644 --- a/worlds/dark_souls_3/docs/setup_en.md +++ b/worlds/dark_souls_3/docs/setup_en.md @@ -3,7 +3,7 @@ ## Required Software - [Dark Souls III](https://store.steampowered.com/app/374320/DARK_SOULS_III/) -- [Dark Souls III AP Client](https://github.com/Marechal-L/Dark-Souls-III-Archipelago-client/releases) +- [Dark Souls III AP Client](https://github.com/nex3/Dark-Souls-III-Archipelago-client/releases/latest) ## Optional Software @@ -11,8 +11,9 @@ ## Setting Up -First, download the client from the link above. It doesn't need to go into any particular directory; -it'll automatically locate _Dark Souls III_ in your Steam installation folder. +First, download the client from the link above (`DS3.Archipelago.*.zip`). It doesn't need to go +into any particular directory; it'll automatically locate _Dark Souls III_ in your Steam +installation folder. Version 3.0.0 of the randomizer _only_ supports the latest version of _Dark Souls III_, 1.15.2. This is the latest version, so you don't need to do any downpatching! However, if you've already @@ -35,8 +36,9 @@ randomized item and (optionally) enemy locations. You only need to do this once To run _Dark Souls III_ in Archipelago mode: -1. Start Steam. **Do not run in offline mode.** The mod will make sure you don't connect to the - DS3 servers, and running Steam in offline mode will make certain scripted invaders fail to spawn. +1. Start Steam. **Do not run in offline mode.** Running Steam in offline mode will make certain + scripted invaders fail to spawn. Instead, change the game itself to offline mode on the menu + screen. 2. Run `launchmod_darksouls3.bat`. This will start _Dark Souls III_ as well as a command prompt that you can use to interact with the Archipelago server. @@ -52,4 +54,21 @@ To run _Dark Souls III_ in Archipelago mode: ### Where do I get a config file? The [Player Options](/games/Dark%20Souls%20III/player-options) page on the website allows you to -configure your personal options and export them into a config file. +configure your personal options and export them into a config file. The [AP client archive] also +includes an options template. + +[AP client archive]: https://github.com/nex3/Dark-Souls-III-Archipelago-client/releases/latest + +### Does this work with Proton? + +The *Dark Souls III* Archipelago randomizer supports running on Linux under Proton. There are a few +things to keep in mind: + +* Because `DS3Randomizer.exe` relies on the .NET runtime, you'll need to install + the [.NET Runtime] under **plain [WINE]**, then run `DS3Randomizer.exe` under + plain WINE as well. It won't work as a Proton app! + +* To run the game itself, just run `launchmod_darksouls3.bat` under Proton. + +[.NET Runtime]: https://dotnet.microsoft.com/en-us/download/dotnet/8.0 +[WINE]: https://www.winehq.org/ From 7337309426a247ff824b702389df6bfc87e381a6 Mon Sep 17 00:00:00 2001 From: qwint Date: Thu, 26 Sep 2024 19:34:54 -0400 Subject: [PATCH 096/212] CommonClient: add more docstrings and comments #3821 --- CommonClient.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index 6bdd8fc819da..1aedd518b4f8 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -45,10 +45,21 @@ def get_ssl_context(): class ClientCommandProcessor(CommandProcessor): + """ + The Command Processor will parse every method of the class that starts with "_cmd_" as a command to be called + when parsing user input, i.e. _cmd_exit will be called when the user sends the command "/exit". + + The decorator @mark_raw can be imported from MultiServer and tells the parser to only split on the first + space after the command i.e. "/exit one two three" will be passed in as method("one two three") with mark_raw + and method("one", "two", "three") without. + + In addition all docstrings for command methods will be displayed to the user on launch and when using "/help" + """ def __init__(self, ctx: CommonContext): self.ctx = ctx def output(self, text: str): + """Helper function to abstract logging to the CommonClient UI""" logger.info(text) def _cmd_exit(self) -> bool: @@ -164,13 +175,14 @@ def _cmd_ready(self): async_start(self.ctx.send_msgs([{"cmd": "StatusUpdate", "status": state}]), name="send StatusUpdate") def default(self, raw: str): + """The default message parser to be used when parsing any messages that do not match a command""" raw = self.ctx.on_user_say(raw) if raw: async_start(self.ctx.send_msgs([{"cmd": "Say", "text": raw}]), name="send Say") class CommonContext: - # Should be adjusted as needed in subclasses + # The following attributes are used to Connect and should be adjusted as needed in subclasses tags: typing.Set[str] = {"AP"} game: typing.Optional[str] = None items_handling: typing.Optional[int] = None @@ -429,7 +441,10 @@ async def get_username(self): self.auth = await self.console_input() async def send_connect(self, **kwargs: typing.Any) -> None: - """ send `Connect` packet to log in to server """ + """ + Send a `Connect` packet to log in to the server, + additional keyword args can override any value in the connection packet + """ payload = { 'cmd': 'Connect', 'password': self.password, 'name': self.auth, 'version': Utils.version_tuple, @@ -459,6 +474,7 @@ def cancel_autoreconnect(self) -> bool: return False def slot_concerns_self(self, slot) -> bool: + """Helper function to abstract player groups, should be used instead of checking slot == self.slot directly.""" if slot == self.slot: return True if slot in self.slot_info: @@ -466,6 +482,7 @@ def slot_concerns_self(self, slot) -> bool: return False def is_echoed_chat(self, print_json_packet: dict) -> bool: + """Helper function for filtering out messages sent by self.""" return print_json_packet.get("type", "") == "Chat" \ and print_json_packet.get("team", None) == self.team \ and print_json_packet.get("slot", None) == self.slot @@ -497,13 +514,14 @@ def on_user_say(self, text: str) -> typing.Optional[str]: """Gets called before sending a Say to the server from the user. Returned text is sent, or sending is aborted if None is returned.""" return text - + def on_ui_command(self, text: str) -> None: """Gets called by kivy when the user executes a command starting with `/` or `!`. The command processor is still called; this is just intended for command echoing.""" self.ui.print_json([{"text": text, "type": "color", "color": "orange"}]) def update_permissions(self, permissions: typing.Dict[str, int]): + """Internal method to parse and save server permissions from RoomInfo""" for permission_name, permission_flag in permissions.items(): try: flag = Permission(permission_flag) @@ -613,6 +631,7 @@ def on_deathlink(self, data: typing.Dict[str, typing.Any]) -> None: logger.info(f"DeathLink: Received from {data['source']}") async def send_death(self, death_text: str = ""): + """Helper function to send a deathlink using death_text as the unique death cause string.""" if self.server and self.server.socket: logger.info("DeathLink: Sending death to your friends...") self.last_death_link = time.time() @@ -626,6 +645,7 @@ async def send_death(self, death_text: str = ""): }]) async def update_death_link(self, death_link: bool): + """Helper function to set Death Link connection tag on/off and update the connection if already connected.""" old_tags = self.tags.copy() if death_link: self.tags.add("DeathLink") @@ -635,7 +655,7 @@ async def update_death_link(self, death_link: bool): await self.send_msgs([{"cmd": "ConnectUpdate", "tags": self.tags}]) def gui_error(self, title: str, text: typing.Union[Exception, str]) -> typing.Optional["kvui.MessageBox"]: - """Displays an error messagebox""" + """Displays an error messagebox in the loaded Kivy UI. Override if using a different UI framework""" if not self.ui: return None title = title or "Error" @@ -987,6 +1007,7 @@ async def console_loop(ctx: CommonContext): def get_base_parser(description: typing.Optional[str] = None): + """Base argument parser to be reused for components subclassing off of CommonClient""" import argparse parser = argparse.ArgumentParser(description=description) parser.add_argument('--connect', default=None, help='Address of the multiworld host.') @@ -1037,6 +1058,7 @@ async def main(args): parser.add_argument("url", nargs="?", help="Archipelago connection url") args = parser.parse_args(args) + # handle if text client is launched using the "archipelago://name:pass@host:port" url from webhost if args.url: url = urllib.parse.urlparse(args.url) if url.scheme == "archipelago": @@ -1048,6 +1070,7 @@ async def main(args): else: parser.error(f"bad url, found {args.url}, expected url in form of archipelago://archipelago.gg:38281") + # use colorama to display colored text highlighting on windows colorama.init() asyncio.run(main(args)) From de0c4984708cdfa7bea1f17d36a7ca15d34243d5 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sat, 28 Sep 2024 22:37:42 +0200 Subject: [PATCH 097/212] Core: update World method comment (#3866) --- worlds/AutoWorld.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/AutoWorld.py b/worlds/AutoWorld.py index 19ec9a14a8c7..f7dae2b92750 100644 --- a/worlds/AutoWorld.py +++ b/worlds/AutoWorld.py @@ -342,7 +342,7 @@ def __getattr__(self, item: str) -> Any: # overridable methods that get called by Main.py, sorted by execution order # can also be implemented as a classmethod and called "stage_", - # in that case the MultiWorld object is passed as an argument, and it gets called once for the entire multiworld. + # in that case the MultiWorld object is passed as the first argument, and it gets called once for the entire multiworld. # An example of this can be found in alttp as stage_pre_fill @classmethod From 8193fa12b205f21bcfb1083961a6131962797dda Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Sat, 28 Sep 2024 13:49:11 -0700 Subject: [PATCH 098/212] BizHawkClient: Fix typing mistake (#3938) --- worlds/_bizhawk/__init__.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/worlds/_bizhawk/__init__.py b/worlds/_bizhawk/__init__.py index 74f2954b984b..3627f385c2d3 100644 --- a/worlds/_bizhawk/__init__.py +++ b/worlds/_bizhawk/__init__.py @@ -223,8 +223,8 @@ async def set_message_interval(ctx: BizHawkContext, value: float) -> None: raise SyncError(f"Expected response of type SET_MESSAGE_INTERVAL_RESPONSE but got {res['type']}") -async def guarded_read(ctx: BizHawkContext, read_list: typing.List[typing.Tuple[int, int, str]], - guard_list: typing.List[typing.Tuple[int, typing.Iterable[int], str]]) -> typing.Optional[typing.List[bytes]]: +async def guarded_read(ctx: BizHawkContext, read_list: typing.Sequence[typing.Tuple[int, int, str]], + guard_list: typing.Sequence[typing.Tuple[int, typing.Sequence[int], str]]) -> typing.Optional[typing.List[bytes]]: """Reads an array of bytes at 1 or more addresses if and only if every byte in guard_list matches its expected value. @@ -266,7 +266,7 @@ async def guarded_read(ctx: BizHawkContext, read_list: typing.List[typing.Tuple[ return ret -async def read(ctx: BizHawkContext, read_list: typing.List[typing.Tuple[int, int, str]]) -> typing.List[bytes]: +async def read(ctx: BizHawkContext, read_list: typing.Sequence[typing.Tuple[int, int, str]]) -> typing.List[bytes]: """Reads data at 1 or more addresses. Items in `read_list` should be organized `(address, size, domain)` where @@ -278,8 +278,8 @@ async def read(ctx: BizHawkContext, read_list: typing.List[typing.Tuple[int, int return await guarded_read(ctx, read_list, []) -async def guarded_write(ctx: BizHawkContext, write_list: typing.List[typing.Tuple[int, typing.Iterable[int], str]], - guard_list: typing.List[typing.Tuple[int, typing.Iterable[int], str]]) -> bool: +async def guarded_write(ctx: BizHawkContext, write_list: typing.Sequence[typing.Tuple[int, typing.Sequence[int], str]], + guard_list: typing.Sequence[typing.Tuple[int, typing.Sequence[int], str]]) -> bool: """Writes data to 1 or more addresses if and only if every byte in guard_list matches its expected value. Items in `write_list` should be organized `(address, value, domain)` where @@ -316,7 +316,7 @@ async def guarded_write(ctx: BizHawkContext, write_list: typing.List[typing.Tupl return True -async def write(ctx: BizHawkContext, write_list: typing.List[typing.Tuple[int, typing.Iterable[int], str]]) -> None: +async def write(ctx: BizHawkContext, write_list: typing.Sequence[typing.Tuple[int, typing.Sequence[int], str]]) -> None: """Writes data to 1 or more addresses. Items in write_list should be organized `(address, value, domain)` where From 67f6b458d7292c44a2a3870523d28868fbbb056c Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Tue, 1 Oct 2024 14:08:13 -0500 Subject: [PATCH 099/212] Core: add race mode to multidata and datastore (#4017) * add race mode to multidata and datastore * have commonclient check race mode on connect and add it to the tooltip ui --- CommonClient.py | 2 ++ Main.py | 1 + MultiServer.py | 2 ++ kvui.py | 2 ++ 4 files changed, 7 insertions(+) diff --git a/CommonClient.py b/CommonClient.py index 1aedd518b4f8..8325227d5e5c 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -325,6 +325,7 @@ def __init__(self, server_address: typing.Optional[str] = None, password: typing "collect": "disabled", "remaining": "disabled", } + self.race_mode: int = 0 # own state self.finished_game = False @@ -454,6 +455,7 @@ async def send_connect(self, **kwargs: typing.Any) -> None: if kwargs: payload.update(kwargs) await self.send_msgs([payload]) + await self.send_msgs([{"cmd": "Get", "keys": ["race_mode"]}]) async def console_input(self) -> str: if self.ui: diff --git a/Main.py b/Main.py index 5a0f5c98bcc4..4008ca5e9017 100644 --- a/Main.py +++ b/Main.py @@ -338,6 +338,7 @@ def precollect_hint(location): "seed_name": multiworld.seed_name, "spheres": spheres, "datapackage": data_package, + "race_mode": int(multiworld.is_race), } AutoWorld.call_all(multiworld, "modify_multidata", multidata) diff --git a/MultiServer.py b/MultiServer.py index e0b137fd68ce..91f4eec61574 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -427,6 +427,8 @@ def _load(self, decoded_obj: dict, game_data_packages: typing.Dict[str, typing.A use_embedded_server_options: bool): self.read_data = {} + # there might be a better place to put this. + self.stored_data["race_mode"] = decoded_obj.get("race_mode", 0) mdata_ver = decoded_obj["minimum_versions"]["server"] if mdata_ver > version_tuple: raise RuntimeError(f"Supplied Multidata (.archipelago) requires a server of at least version {mdata_ver}," diff --git a/kvui.py b/kvui.py index 536dce12208e..d58af3ed0e78 100644 --- a/kvui.py +++ b/kvui.py @@ -243,6 +243,8 @@ def get_text(self): f"\nYou currently have {ctx.hint_points} points." elif ctx.hint_cost == 0: text += "\n!hint is free to use." + if ctx.stored_data and "race_mode" in ctx.stored_data: + text += "\nRace mode is enabled." if ctx.stored_data["race_mode"] else "\nRace mode is disabled." else: text += f"\nYou are not authenticated yet." From dc1da4e88b4268ba12f6fd8b4a1ce362b4e9eebf Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Tue, 1 Oct 2024 12:08:43 -0700 Subject: [PATCH 100/212] Pokemon Emerald: Another wonder trade fix (#4014) * Pokemon Emerald: Another guarded write on wonder trades * Pokemon Emerald: Reorder sending wonder trade and erasing data In case the guarded write fails --- worlds/pokemon_emerald/client.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/worlds/pokemon_emerald/client.py b/worlds/pokemon_emerald/client.py index c91b7d3e26b0..4405b34074e0 100644 --- a/worlds/pokemon_emerald/client.py +++ b/worlds/pokemon_emerald/client.py @@ -545,11 +545,12 @@ async def handle_wonder_trade(self, ctx: "BizHawkClientContext", guards: Dict[st if trade_is_sent == 0 and wonder_trade_pokemon_data[19] == 2: # Game has wonder trade data to send. Send it to data storage, remove it from the game's memory, # and mark that the game is waiting on receiving a trade - Utils.async_start(self.wonder_trade_send(ctx, pokemon_data_to_json(wonder_trade_pokemon_data))) - await bizhawk.write(ctx.bizhawk_ctx, [ + success = await bizhawk.guarded_write(ctx.bizhawk_ctx, [ (sb1_address + 0x377C, bytes(0x50), "System Bus"), (sb1_address + 0x37CC, [1], "System Bus"), - ]) + ], [guards["SAVE BLOCK 1"]]) + if success: + Utils.async_start(self.wonder_trade_send(ctx, pokemon_data_to_json(wonder_trade_pokemon_data))) elif trade_is_sent != 0 and wonder_trade_pokemon_data[19] != 2: # Game is waiting on receiving a trade. if self.queued_received_trade is not None: From 23469fa5c3113f83d21d608c25535aa1da95370b Mon Sep 17 00:00:00 2001 From: Alex Nordstrom Date: Tue, 1 Oct 2024 15:09:23 -0400 Subject: [PATCH 101/212] LADX: ghost fills ammo to initial max (#4005) * ghost fills ammo to max * Revert "ghost fills ammo to max" This reverts commit 68804fef1403197f2192e4c7d02f8793ac1c7ca0. * fill to first max --- worlds/ladx/LADXR/patches/owl.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/worlds/ladx/LADXR/patches/owl.py b/worlds/ladx/LADXR/patches/owl.py index 47e575191a31..20b8221604c6 100644 --- a/worlds/ladx/LADXR/patches/owl.py +++ b/worlds/ladx/LADXR/patches/owl.py @@ -81,23 +81,23 @@ def removeOwlEvents(rom): ; Give powder ld a, [$DB4C] - cp $10 + cp $20 jr nc, doNotGivePowder - ld a, $10 + ld a, $20 ld [$DB4C], a doNotGivePowder: ld a, [$DB4D] - cp $10 + cp $30 jr nc, doNotGiveBombs - ld a, $10 + ld a, $30 ld [$DB4D], a doNotGiveBombs: ld a, [$DB45] - cp $10 + cp $30 jr nc, doNotGiveArrows - ld a, $10 + ld a, $30 ld [$DB45], a doNotGiveArrows: From 5a853dfccdfe138e00dff7dc55890980e71b7e05 Mon Sep 17 00:00:00 2001 From: Mysteryem Date: Tue, 1 Oct 2024 20:30:45 +0100 Subject: [PATCH 102/212] Tests: Fix indentation in TestTwoPlayerMulti (#4010) The "filling multiworld" subtest was at the wrong indentation, so was only running for the last world_type. "games" has additionally been added to the subtest to help better identify failures. Now that the subtest is actually being run for each world type, this adds about 20 seconds to the duration of the test on my machine. --- test/multiworld/test_multiworlds.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/multiworld/test_multiworlds.py b/test/multiworld/test_multiworlds.py index 8415ac4c8429..3c1d0e4544eb 100644 --- a/test/multiworld/test_multiworlds.py +++ b/test/multiworld/test_multiworlds.py @@ -71,7 +71,7 @@ def test_two_player_single_game_fills(self) -> None: for world in self.multiworld.worlds.values(): world.options.accessibility.value = Accessibility.option_full self.assertSteps(gen_steps) - with self.subTest("filling multiworld", seed=self.multiworld.seed): - distribute_items_restrictive(self.multiworld) - call_all(self.multiworld, "post_fill") - self.assertTrue(self.fulfills_accessibility(), "Collected all locations, but can't beat the game") + with self.subTest("filling multiworld", games=world_type.game, seed=self.multiworld.seed): + distribute_items_restrictive(self.multiworld) + call_all(self.multiworld, "post_fill") + self.assertTrue(self.fulfills_accessibility(), "Collected all locations, but can't beat the game") From f06f95d03dd88f4a8aa35a88d2b75eedc7526a24 Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Tue, 1 Oct 2024 16:55:34 -0500 Subject: [PATCH 103/212] Core: move race_mode to read_data instead of stored_data (#4020) * move race_mode to read_data * add race_mode to docs --- CommonClient.py | 3 +-- MultiServer.py | 2 +- docs/network protocol.md | 1 + kvui.py | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index 8325227d5e5c..296c10ed4b4e 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -325,7 +325,6 @@ def __init__(self, server_address: typing.Optional[str] = None, password: typing "collect": "disabled", "remaining": "disabled", } - self.race_mode: int = 0 # own state self.finished_game = False @@ -455,7 +454,7 @@ async def send_connect(self, **kwargs: typing.Any) -> None: if kwargs: payload.update(kwargs) await self.send_msgs([payload]) - await self.send_msgs([{"cmd": "Get", "keys": ["race_mode"]}]) + await self.send_msgs([{"cmd": "Get", "keys": ["_read_race_mode"]}]) async def console_input(self) -> str: if self.ui: diff --git a/MultiServer.py b/MultiServer.py index 91f4eec61574..c3e377e9a29d 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -428,7 +428,7 @@ def _load(self, decoded_obj: dict, game_data_packages: typing.Dict[str, typing.A self.read_data = {} # there might be a better place to put this. - self.stored_data["race_mode"] = decoded_obj.get("race_mode", 0) + self.read_data["race_mode"] = lambda: decoded_obj.get("race_mode", 0) mdata_ver = decoded_obj["minimum_versions"]["server"] if mdata_ver > version_tuple: raise RuntimeError(f"Supplied Multidata (.archipelago) requires a server of at least version {mdata_ver}," diff --git a/docs/network protocol.md b/docs/network protocol.md index f8080fecc879..1c4579c4066f 100644 --- a/docs/network protocol.md +++ b/docs/network protocol.md @@ -395,6 +395,7 @@ Some special keys exist with specific return data, all of them have the prefix ` | item_name_groups_{game_name} | dict\[str, list\[str\]\] | item_name_groups belonging to the requested game. | | location_name_groups_{game_name} | dict\[str, list\[str\]\] | location_name_groups belonging to the requested game. | | client_status_{team}_{slot} | [ClientStatus](#ClientStatus) | The current game status of the requested player. | +| race_mode | int | 0 if race mode is disabled, and 1 if it's enabled. | ### Set Used to write data to the server's data storage, that data can then be shared across worlds or just saved for later. Values for keys in the data storage can be retrieved with a [Get](#Get) package, or monitored with a [SetNotify](#SetNotify) package. diff --git a/kvui.py b/kvui.py index d58af3ed0e78..74d8ad06734a 100644 --- a/kvui.py +++ b/kvui.py @@ -243,8 +243,9 @@ def get_text(self): f"\nYou currently have {ctx.hint_points} points." elif ctx.hint_cost == 0: text += "\n!hint is free to use." - if ctx.stored_data and "race_mode" in ctx.stored_data: - text += "\nRace mode is enabled." if ctx.stored_data["race_mode"] else "\nRace mode is disabled." + if ctx.stored_data and "_read_race_mode" in ctx.stored_data: + text += "\nRace mode is enabled." \ + if ctx.stored_data["_read_race_mode"] else "\nRace mode is disabled." else: text += f"\nYou are not authenticated yet." From 0ec9039ca6955129ba0fd15b0ba5a48cc71108da Mon Sep 17 00:00:00 2001 From: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Date: Wed, 2 Oct 2024 00:02:17 +0200 Subject: [PATCH 104/212] The Witness: Small code refactor (cast_not_none) (#3798) * cast not none * ruff * Missed a spot --- worlds/witness/__init__.py | 6 +++--- worlds/witness/data/utils.py | 7 ++++++- worlds/witness/player_items.py | 8 ++++---- worlds/witness/test/__init__.py | 5 +++-- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/worlds/witness/__init__.py b/worlds/witness/__init__.py index b4b38c883e7d..c9848f2ffe47 100644 --- a/worlds/witness/__init__.py +++ b/worlds/witness/__init__.py @@ -14,7 +14,7 @@ from .data import static_locations as static_witness_locations from .data import static_logic as static_witness_logic from .data.item_definition_classes import DoorItemDefinition, ItemData -from .data.utils import get_audio_logs +from .data.utils import cast_not_none, get_audio_logs from .hints import CompactHintData, create_all_hints, make_compact_hint_data, make_laser_hints from .locations import WitnessPlayerLocations from .options import TheWitnessOptions, witness_option_groups @@ -55,7 +55,7 @@ class WitnessWorld(World): item_name_to_id = { # ITEM_DATA doesn't have any event items in it - name: cast(int, data.ap_code) for name, data in static_witness_items.ITEM_DATA.items() + name: cast_not_none(data.ap_code) for name, data in static_witness_items.ITEM_DATA.items() } location_name_to_id = static_witness_locations.ALL_LOCATIONS_TO_ID item_name_groups = static_witness_items.ITEM_GROUPS @@ -336,7 +336,7 @@ def fill_slot_data(self) -> Dict[str, Any]: for item_name, hint in laser_hints.items(): item_def = cast(DoorItemDefinition, static_witness_logic.ALL_ITEMS[item_name]) self.laser_ids_to_hints[int(item_def.panel_id_hexes[0], 16)] = make_compact_hint_data(hint, self.player) - already_hinted_locations.add(cast(Location, hint.location)) + already_hinted_locations.add(cast_not_none(hint.location)) # Audio Log Hints diff --git a/worlds/witness/data/utils.py b/worlds/witness/data/utils.py index 84eca5afc43f..737daff70fae 100644 --- a/worlds/witness/data/utils.py +++ b/worlds/witness/data/utils.py @@ -1,7 +1,7 @@ from math import floor from pkgutil import get_data from random import Random -from typing import Any, Collection, Dict, FrozenSet, Iterable, List, Set, Tuple, TypeVar +from typing import Any, Collection, Dict, FrozenSet, Iterable, List, Optional, Set, Tuple, TypeVar T = TypeVar("T") @@ -13,6 +13,11 @@ WitnessRule = FrozenSet[FrozenSet[str]] +def cast_not_none(value: Optional[T]) -> T: + assert value is not None + return value + + def weighted_sample(world_random: Random, population: List[T], weights: List[float], k: int) -> List[T]: positions = range(len(population)) indices: List[int] = [] diff --git a/worlds/witness/player_items.py b/worlds/witness/player_items.py index 72dfc2b7ee54..4c98cb78495e 100644 --- a/worlds/witness/player_items.py +++ b/worlds/witness/player_items.py @@ -15,7 +15,7 @@ ProgressiveItemDefinition, WeightedItemDefinition, ) -from .data.utils import build_weighted_int_list +from .data.utils import build_weighted_int_list, cast_not_none from .locations import WitnessPlayerLocations from .player_logic import WitnessPlayerLogic @@ -200,7 +200,7 @@ def get_symbol_ids_not_in_pool(self) -> List[int]: """ return [ # data.ap_code is guaranteed for a symbol definition - cast(int, data.ap_code) for name, data in static_witness_items.ITEM_DATA.items() + cast_not_none(data.ap_code) for name, data in static_witness_items.ITEM_DATA.items() if name not in self.item_data.keys() and data.definition.category is ItemCategory.SYMBOL ] @@ -211,8 +211,8 @@ def get_progressive_item_ids_in_pool(self) -> Dict[int, List[int]]: if isinstance(item.definition, ProgressiveItemDefinition): # Note: we need to reference the static table here rather than the player-specific one because the child # items were removed from the pool when we pruned out all progression items not in the options. - output[cast(int, item.ap_code)] = [cast(int, static_witness_items.ITEM_DATA[child_item].ap_code) - for child_item in item.definition.child_item_names] + output[cast_not_none(item.ap_code)] = [cast_not_none(static_witness_items.ITEM_DATA[child_item].ap_code) + for child_item in item.definition.child_item_names] return output diff --git a/worlds/witness/test/__init__.py b/worlds/witness/test/__init__.py index 4453609ddcdb..c3b427851af0 100644 --- a/worlds/witness/test/__init__.py +++ b/worlds/witness/test/__init__.py @@ -1,4 +1,4 @@ -from typing import Any, ClassVar, Dict, Iterable, List, Mapping, Union, cast +from typing import Any, ClassVar, Dict, Iterable, List, Mapping, Union from BaseClasses import CollectionState, Entrance, Item, Location, Region @@ -7,6 +7,7 @@ from test.multiworld.test_multiworlds import MultiworldTestBase from .. import WitnessWorld +from ..data.utils import cast_not_none class WitnessTestBase(WorldTestBase): @@ -32,7 +33,7 @@ def assert_dependency_on_event_item(self, spot: Union[Location, Region, Entrance event_items = [item for item in self.multiworld.get_items() if item.name == item_name] self.assertTrue(event_items, f"Event item {item_name} does not exist.") - event_locations = [cast(Location, event_item.location) for event_item in event_items] + event_locations = [cast_not_none(event_item.location) for event_item in event_items] # Checking for an access dependency on an event item requires a bit of extra work, # as state.remove forces a sweep, which will pick up the event item again right after we tried to remove it. From 05a67386c61c4be699b8a54067b84a72ea004126 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 2 Oct 2024 03:09:43 +0200 Subject: [PATCH 105/212] Core: use shlex splitting instead of whitespace splitting for client and server commands (#4011) --- MultiServer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MultiServer.py b/MultiServer.py index c3e377e9a29d..0fe950b5e4f3 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -15,6 +15,7 @@ import operator import pickle import random +import shlex import threading import time import typing @@ -1152,7 +1153,7 @@ def __call__(self, raw: str) -> typing.Optional[bool]: if not raw: return try: - command = raw.split() + command = shlex.split(raw, comments=False) basecommand = command[0] if basecommand[0] == self.marker: method = self.commands.get(basecommand[1:].lower(), None) From 216e0603e1bcc4fea9985338212b333e38f1d468 Mon Sep 17 00:00:00 2001 From: Silvris <58583688+Silvris@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:27:23 -0500 Subject: [PATCH 106/212] KDL3: Fix webhost not giving a patch #4023 --- worlds/kdl3/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/kdl3/__init__.py b/worlds/kdl3/__init__.py index f01c82dd16a3..1b5acbe97a3c 100644 --- a/worlds/kdl3/__init__.py +++ b/worlds/kdl3/__init__.py @@ -325,7 +325,7 @@ def generate_basic(self) -> None: def generate_output(self, output_directory: str) -> None: try: - patch = KDL3ProcedurePatch() + patch = KDL3ProcedurePatch(player=self.player, player_name=self.player_name) patch_rom(self, patch) self.rom_name = patch.name From e5a0ef799f513d3d6231140e5a4ba561b0bfdcd8 Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Fri, 4 Oct 2024 12:28:43 -0700 Subject: [PATCH 107/212] Pokemon Emerald: Update changelog (#4003) --- worlds/pokemon_emerald/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/worlds/pokemon_emerald/CHANGELOG.md b/worlds/pokemon_emerald/CHANGELOG.md index 6a1844e79fde..2d7db0dad4d5 100644 --- a/worlds/pokemon_emerald/CHANGELOG.md +++ b/worlds/pokemon_emerald/CHANGELOG.md @@ -8,6 +8,9 @@ ### Fixes +- Fixed a rare issue where receiving a wonder trade could partially corrupt the save data, preventing the player from +receiving new items. +- Fixed the client spamming the "goal complete" status update to the server instead of sending it once. - Fixed a logic issue where the "Mauville City - Coin Case from Lady in House" location only required a Harbor Mail if the player randomized NPC gifts. - The Dig tutor has its compatibility percentage raised to 50% if the player's TM/tutor compatibility is set lower. From 97f2c25924b0b75f9dcb74e9dc28e5546a22b3e9 Mon Sep 17 00:00:00 2001 From: palex00 <32203971+palex00@users.noreply.github.com> Date: Sat, 5 Oct 2024 02:13:04 +0200 Subject: [PATCH 108/212] [KH2] Adds more options to slot data #4031 --- worlds/kh2/__init__.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/worlds/kh2/__init__.py b/worlds/kh2/__init__.py index faf0bed88567..2809460aed6a 100644 --- a/worlds/kh2/__init__.py +++ b/worlds/kh2/__init__.py @@ -101,7 +101,18 @@ def fill_slot_data(self) -> dict: if ability in self.goofy_ability_dict and self.goofy_ability_dict[ability] >= 1: self.goofy_ability_dict[ability] -= 1 - slot_data = self.options.as_dict("Goal", "FinalXemnas", "LuckyEmblemsRequired", "BountyRequired") + slot_data = self.options.as_dict( + "Goal", + "FinalXemnas", + "LuckyEmblemsRequired", + "BountyRequired", + "FightLogic", + "FinalFormLogic", + "AutoFormLogic", + "LevelDepth", + "DonaldGoofyStatsanity", + "CorSkipToggle" + ) slot_data.update({ "hitlist": [], # remove this after next update "PoptrackerVersionCheck": 4.3, From 6287bc27a68ace32679fe8a41a580df7180cd9d8 Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Sat, 5 Oct 2024 18:14:22 +0200 Subject: [PATCH 109/212] WebHost: Fix too-many-players error not showing (#4033) * WebHost: fix 'too many players' error not showing * WebHost, Tests: add basic tests for generate endpoint * WebHost: hopefully make CodeQL happy with MAX_ROLL redirect --- WebHostLib/generate.py | 1 + test/webhost/test_generate.py | 73 +++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 test/webhost/test_generate.py diff --git a/WebHostLib/generate.py b/WebHostLib/generate.py index dbe7dd958910..b19f3d483515 100644 --- a/WebHostLib/generate.py +++ b/WebHostLib/generate.py @@ -81,6 +81,7 @@ def start_generation(options: Dict[str, Union[dict, str]], meta: Dict[str, Any]) elif len(gen_options) > app.config["MAX_ROLL"]: flash(f"Sorry, generating of multiworlds is limited to {app.config['MAX_ROLL']} players. " f"If you have a larger group, please generate it yourself and upload it.") + return redirect(url_for(request.endpoint, **(request.view_args or {}))) elif len(gen_options) >= app.config["JOB_THRESHOLD"]: gen = Generation( options=pickle.dumps({name: vars(options) for name, options in gen_options.items()}), diff --git a/test/webhost/test_generate.py b/test/webhost/test_generate.py new file mode 100644 index 000000000000..5440f6e02bec --- /dev/null +++ b/test/webhost/test_generate.py @@ -0,0 +1,73 @@ +import zipfile +from io import BytesIO + +from flask import url_for + +from . import TestBase + + +class TestGenerate(TestBase): + def test_valid_yaml(self) -> None: + """ + Verify that posting a valid yaml will start generating a game. + """ + with self.app.app_context(), self.app.test_request_context(): + yaml_data = """ + name: Player1 + game: Archipelago + Archipelago: {} + """ + response = self.client.post(url_for("generate"), + data={"file": (BytesIO(yaml_data.encode("utf-8")), "test.yaml")}, + follow_redirects=True) + self.assertEqual(response.status_code, 200) + self.assertTrue("/seed/" in response.request.path or + "/wait/" in response.request.path, + f"Response did not properly redirect ({response.request.path})") + + def test_empty_zip(self) -> None: + """ + Verify that posting an empty zip will give an error. + """ + with self.app.app_context(), self.app.test_request_context(): + zip_data = BytesIO() + zipfile.ZipFile(zip_data, "w").close() + zip_data.seek(0) + self.assertGreater(len(zip_data.read()), 0) + zip_data.seek(0) + response = self.client.post(url_for("generate"), + data={"file": (zip_data, "test.zip")}, + follow_redirects=True) + self.assertIn("user-message", response.text, + "Request did not call flash()") + self.assertIn("not find any valid files", response.text, + "Response shows unexpected error") + self.assertIn("generate-game-form", response.text, + "Response did not get user back to the form") + + def test_too_many_players(self) -> None: + """ + Verify that posting too many players will give an error. + """ + max_roll = self.app.config["MAX_ROLL"] + # validate that max roll has a sensible value, otherwise we probably changed how it works + self.assertIsInstance(max_roll, int) + self.assertGreater(max_roll, 1) + self.assertLess(max_roll, 100) + # create a yaml with max_roll+1 players and watch it fail + with self.app.app_context(), self.app.test_request_context(): + yaml_data = "---\n".join([ + f"name: Player{n}\n" + "game: Archipelago\n" + "Archipelago: {}\n" + for n in range(1, max_roll + 2) + ]) + response = self.client.post(url_for("generate"), + data={"file": (BytesIO(yaml_data.encode("utf-8")), "test.yaml")}, + follow_redirects=True) + self.assertIn("user-message", response.text, + "Request did not call flash()") + self.assertIn("limited to", response.text, + "Response shows unexpected error") + self.assertIn("generate-game-form", response.text, + "Response did not get user back to the form") From 2751ccdaabc7e55fdfaa68cbb1d6ea9bb1d666ce Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Thu, 10 Oct 2024 21:02:31 -0400 Subject: [PATCH 110/212] DS3: Make your own region cache (#4040) * Make your own region cache * Using a string --- worlds/dark_souls_3/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/worlds/dark_souls_3/__init__.py b/worlds/dark_souls_3/__init__.py index b51668539be2..1aec6945eb8b 100644 --- a/worlds/dark_souls_3/__init__.py +++ b/worlds/dark_souls_3/__init__.py @@ -89,6 +89,7 @@ def __init__(self, multiworld: MultiWorld, player: int): self.all_excluded_locations = set() def generate_early(self) -> None: + self.created_regions = set() self.all_excluded_locations.update(self.options.exclude_locations.value) # Inform Universal Tracker where Yhorm is being randomized to. @@ -294,6 +295,7 @@ def create_region(self, region_name, location_table) -> Region: new_region.locations.append(new_location) self.multiworld.regions.append(new_region) + self.created_regions.add(region_name) return new_region def create_items(self) -> None: @@ -1305,7 +1307,7 @@ def _add_location_rule(self, location: Union[str, List[str]], rule: Union[Collec def _add_entrance_rule(self, region: str, rule: Union[CollectionRule, str]) -> None: """Sets a rule for the entrance to the given region.""" assert region in location_tables - if not any(region == reg for reg in self.multiworld.regions.region_cache[self.player]): return + if region not in self.created_regions: return if isinstance(rule, str): if " -> " not in rule: assert item_dictionary[rule].classification == ItemClassification.progression From f495bf726101e5125e73a1aabb23ee9ab6518d04 Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Thu, 10 Oct 2024 20:05:21 -0500 Subject: [PATCH 111/212] The Messenger: fix missing money wrench rule (#4041) * The Messenger: fix missing money wrench rule * add a unit test for money wrench --- worlds/messenger/rules.py | 2 ++ worlds/messenger/test/test_shop.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/worlds/messenger/rules.py b/worlds/messenger/rules.py index 85b73dec4147..c354ad70aba6 100644 --- a/worlds/messenger/rules.py +++ b/worlds/messenger/rules.py @@ -220,6 +220,8 @@ def __init__(self, world: "MessengerWorld") -> None: } self.location_rules = { + # hq + "Money Wrench": self.can_shop, # ninja village "Ninja Village Seal - Tree House": self.has_dart, diff --git a/worlds/messenger/test/test_shop.py b/worlds/messenger/test/test_shop.py index 971ff1763b47..ce6fd19e33c8 100644 --- a/worlds/messenger/test/test_shop.py +++ b/worlds/messenger/test/test_shop.py @@ -1,5 +1,6 @@ from typing import Dict +from BaseClasses import CollectionState from . import MessengerTestBase from ..shop import SHOP_ITEMS, FIGURINES @@ -89,3 +90,15 @@ def test_costs(self) -> None: self.assertTrue(loc in FIGURINES) self.assertEqual(len(figures), len(FIGURINES)) + + max_cost_state = CollectionState(self.multiworld) + self.assertFalse(self.world.get_location("Money Wrench").can_reach(max_cost_state)) + prog_shards = [] + for item in self.multiworld.itempool: + if "Time Shard " in item.name: + value = int(item.name.strip("Time Shard ()")) + if value >= 100: + prog_shards.append(item) + for shard in prog_shards: + max_cost_state.collect(shard, True) + self.assertTrue(self.world.get_location("Money Wrench").can_reach(max_cost_state)) From 861c3328a7ebac43a1567c8f200312586eb9963e Mon Sep 17 00:00:00 2001 From: FlySniper Date: Thu, 10 Oct 2024 21:32:07 -0400 Subject: [PATCH 112/212] Wargroove 2: 4 new maps. Random terrain generation in mod. --- worlds/wargroove2/Levels.py | 90 +++++++++++++----- worlds/wargroove2/Locations.py | 60 ++++++++++++ .../data/mods/ArchipelagoMod/maps.dat | Bin 350032 -> 350099 bytes .../data/mods/ArchipelagoMod/mod.dat | Bin 692 -> 692 bytes .../data/mods/ArchipelagoMod/modAssets.dat | Bin 305148 -> 367117 bytes ...paign-45747c660b6a2f09601327a18d662a7d.cmp | Bin 220976 -> 221008 bytes ...n-45747c660b6a2f09601327a18d662a7d.cmp.bak | Bin 221024 -> 220960 bytes .../levels/Ancient_Discoveries.json | 1 + .../wargroove2/levels/Majestic_Mountain.json | 1 + .../wargroove2/levels/Observation_Isle.json | 1 + .../levels/Swimming_at_the_Docks.json | 1 + 11 files changed, 132 insertions(+), 22 deletions(-) create mode 100644 worlds/wargroove2/levels/Ancient_Discoveries.json create mode 100644 worlds/wargroove2/levels/Majestic_Mountain.json create mode 100644 worlds/wargroove2/levels/Observation_Isle.json create mode 100644 worlds/wargroove2/levels/Swimming_at_the_Docks.json diff --git a/worlds/wargroove2/Levels.py b/worlds/wargroove2/Levels.py index f0ad6acbb375..947de286890a 100644 --- a/worlds/wargroove2/Levels.py +++ b/worlds/wargroove2/Levels.py @@ -114,8 +114,6 @@ def define_region(self, name: str, multiworld: MultiWorld, player: int, exits=No ["Barge", "Landing Event", "Golem"], player) } ), -] -low_victory_checks_levels = [ Wargroove2Level( name="Spire Fire", file_name="Spire_Fire.json", @@ -269,18 +267,6 @@ def define_region(self, name: str, multiworld: MultiWorld, player: int, exits=No }, has_ocean=False ), - Wargroove2Level( - name="Wagon Freeway", - file_name="Wagon_Freeway.json", - location_rules={ - "Wagon Freeway: Victory": lambda state, player: lambda state=state: state.has_all( - ["Wagon", "Spearman"], player), - "Wagon Freeway: All Mine Now": lambda state, player: lambda state=state: True, - "Wagon Freeway: Pigeon Carrier": lambda state, player: lambda state=state: - state.has("Air Trooper", player), - }, - has_ocean=False - ), Wargroove2Level( name="Kraken Strait", file_name="Kraken_Strait.json", @@ -419,6 +405,19 @@ def define_region(self, name: str, multiworld: MultiWorld, player: int, exits=No player), } ), + Wargroove2Level( + name="Bridge Brigade", + file_name="Bridge_Brigade.json", + location_rules={ + "Bridge Brigade: Victory": lambda state, player: lambda state=state: state.has_all( + ["Warship", "Spearman"], player), + "Bridge Brigade: From the Depths": lambda state, player: lambda + state=state: state.has("Kraken", player), + "Bridge Brigade: Back to the Depths": lambda state, player: lambda state=state: + state.has_all(["Warship", "Spearman", "Kraken"], player), + }, + has_ocean=False + ), Wargroove2Level( name="Grand Theft Village", file_name="Grand_Theft_Village.json", @@ -432,15 +431,14 @@ def define_region(self, name: str, multiworld: MultiWorld, player: int, exits=No has_ocean=False ), Wargroove2Level( - name="Bridge Brigade", - file_name="Bridge_Brigade.json", + name="Wagon Freeway", + file_name="Wagon_Freeway.json", location_rules={ - "Bridge Brigade: Victory": lambda state, player: lambda state=state: state.has_all( - ["Warship", "Spearman"], player), - "Bridge Brigade: From the Depths": lambda state, player: lambda - state=state: state.has("Kraken", player), - "Bridge Brigade: Back to the Depths": lambda state, player: lambda state=state: - state.has_all(["Warship", "Spearman", "Kraken"], player), + "Wagon Freeway: Victory": lambda state, player: lambda state=state: state.has_all( + ["Wagon", "Spearman"], player), + "Wagon Freeway: All Mine Now": lambda state, player: lambda state=state: True, + "Wagon Freeway: Pigeon Carrier": lambda state, player: lambda state=state: + state.has("Air Trooper", player), }, has_ocean=False ), @@ -483,6 +481,54 @@ def define_region(self, name: str, multiworld: MultiWorld, player: int, exits=No ), ] +low_victory_checks_levels = [ + + Wargroove2Level( + name="Swimming at the Docks", + file_name="Swimming_at_the_Docks.json", + location_rules={ + "Swimming at the Docks: Victory": lambda state, player: lambda state=state: True, + "Swimming at the Docks: Dogs Counter Knights": lambda state, player: lambda + state=state: True, + "Swimming at the Docks: Kayaking": lambda state, player: lambda + state=state: state.has("River Boat", player), + } + ), + Wargroove2Level( + name="Ancient Discoveries", + file_name="Ancient_Discoveries.json", + location_rules={ + "Ancient Discoveries: Victory": lambda state, player: lambda state=state: True, + "Ancient Discoveries: So many Choices": lambda state, player: lambda + state=state: True, + "Ancient Discoveries: Height Advantage": lambda state, player: lambda + state=state: state.has("Golem", player), + } + ), + Wargroove2Level( + name="Observation Isle", + file_name="Observation_Isle.json", + location_rules={ + "Observation Isle: Victory": lambda state, player: lambda state=state: True, + "Observation Isle: Become the Watcher": lambda state, player: lambda + state=state: True, + "Observation Isle: Execute the Watcher": lambda state, player: lambda + state=state: state.has("Walls Event", player), + } + ), + Wargroove2Level( + name="Majestic Mountain", + file_name="Majestic_Mountain.json", + location_rules={ + "Majestic Mountain: Victory": lambda state, player: lambda state=state: True, + "Majestic Mountain: Mountain Climbing": lambda state, player: lambda + state=state: True, + "Majestic Mountain: Legend of the Mountains": lambda state, player: lambda + state=state: state.has("Air Trooper", player), + } + ), +] + first_level = Wargroove2Level( name="Humble Beginnings Rebirth", file_name="", diff --git a/worlds/wargroove2/Locations.py b/worlds/wargroove2/Locations.py index 63120258bc05..83ec9d73196a 100644 --- a/worlds/wargroove2/Locations.py +++ b/worlds/wargroove2/Locations.py @@ -43,6 +43,18 @@ "Bridge Brigade: Victory": 253039, "Bridge Brigade: From the Depths": 253040, "Bridge Brigade: Back to the Depths": 253041, + "Swimming at the Docks: Victory": 253042, + "Swimming at the Docks: Dogs Counter Knights": 253043, + "Swimming at the Docks: Kayaking": 253044, + "Ancient Discoveries: Victory": 253045, + "Ancient Discoveries: So many Choices": 253046, + "Ancient Discoveries: Height Advantage": 253047, + "Observation Isle: Victory": 253048, + "Observation Isle: Become the Watcher": 253049, + "Observation Isle: Execute the Watcher": 253050, + "Majestic Mountain: Victory": 253051, + "Majestic Mountain: Mountain Climbing": 253052, + "Majestic Mountain: Legend of the Mountains": 253053, ######################################################### "Slippery Bridge: Victory": 253300, "Slippery Bridge: Control all Sea Villages": 253301, @@ -439,6 +451,54 @@ "Split Valley: Ranged Trinity Extra 2": 260333, "Split Valley: Ranged Trinity Extra 3": 260334, "Split Valley: Ranged Trinity Extra 4": 260335, + "Swimming at the Docks: Victory Extra 1": 260336, + "Swimming at the Docks: Victory Extra 2": 260337, + "Swimming at the Docks: Victory Extra 3": 260338, + "Swimming at the Docks: Victory Extra 4": 260339, + "Swimming at the Docks: Dogs Counter Knights Extra 1": 260340, + "Swimming at the Docks: Dogs Counter Knights Extra 2": 260341, + "Swimming at the Docks: Dogs Counter Knights Extra 3": 260342, + "Swimming at the Docks: Dogs Counter Knights Extra 4": 260343, + "Swimming at the Docks: Kayaking Extra 1": 260344, + "Swimming at the Docks: Kayaking Extra 2": 260345, + "Swimming at the Docks: Kayaking Extra 3": 260346, + "Swimming at the Docks: Kayaking Extra 4": 260347, + "Ancient Discoveries: Victory Extra 1": 260348, + "Ancient Discoveries: Victory Extra 2": 260349, + "Ancient Discoveries: Victory Extra 3": 260350, + "Ancient Discoveries: Victory Extra 4": 260351, + "Ancient Discoveries: So many Choices Extra 1": 260352, + "Ancient Discoveries: So many Choices Extra 2": 260353, + "Ancient Discoveries: So many Choices Extra 3": 260354, + "Ancient Discoveries: So many Choices Extra 4": 260355, + "Ancient Discoveries: Height Advantage Extra 1": 260356, + "Ancient Discoveries: Height Advantage Extra 2": 260357, + "Ancient Discoveries: Height Advantage Extra 3": 260358, + "Ancient Discoveries: Height Advantage Extra 4": 260359, + "Observation Isle: Victory Extra 1": 260360, + "Observation Isle: Victory Extra 2": 260361, + "Observation Isle: Victory Extra 3": 260362, + "Observation Isle: Victory Extra 4": 260363, + "Observation Isle: Become the Watcher Extra 1": 260364, + "Observation Isle: Become the Watcher Extra 2": 260365, + "Observation Isle: Become the Watcher Extra 3": 260366, + "Observation Isle: Become the Watcher Extra 4": 260367, + "Observation Isle: Execute the Watcher Extra 1": 260368, + "Observation Isle: Execute the Watcher Extra 2": 260369, + "Observation Isle: Execute the Watcher Extra 3": 260370, + "Observation Isle: Execute the Watcher Extra 4": 260371, + "Majestic Mountain: Victory Extra 1": 260372, + "Majestic Mountain: Victory Extra 2": 260373, + "Majestic Mountain: Victory Extra 3": 260374, + "Majestic Mountain: Victory Extra 4": 260375, + "Majestic Mountain: Mountain Climbing Extra 1": 260376, + "Majestic Mountain: Mountain Climbing Extra 2": 260377, + "Majestic Mountain: Mountain Climbing Extra 3": 260378, + "Majestic Mountain: Mountain Climbing Extra 4": 260379, + "Majestic Mountain: Legend of the Mountains Extra 1": 260380, + "Majestic Mountain: Legend of the Mountains Extra 2": 260381, + "Majestic Mountain: Legend of the Mountains Extra 3": 260382, + "Majestic Mountain: Legend of the Mountains Extra 4": 260383, ######################################################### "Disastrous Crossing: Victory": None, "Dark Mirror: Victory": None, diff --git a/worlds/wargroove2/data/mods/ArchipelagoMod/maps.dat b/worlds/wargroove2/data/mods/ArchipelagoMod/maps.dat index 77045915f58d6aec809ed61c000d337cbcd43526..41f791718eb278421b36ad63030edacdb2d67b50 100644 GIT binary patch delta 259502 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

1H>L7l@TaV7Br*UQb5GM-^j5wtAMor=j5JTj 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

BgFJ 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

qOIjPK5 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

tC06!)~@L{j%Rupq_w9SR`TJ)n-`aGM>&5E z3HZ(#Qnd3NU+FRE?R1bg0tz#m0i7vrTkxXp)_Sj{SlQ*3m@XCv> zK|ak{xAiOBecnh^Wv@&(a`@UfJNvw6_<&r%WS12GVq34eI&N&@td{*viu0q^OM!gs zWLGZL+i3+-Kz(q=!Rq|C^Al%u_a@@}Q9I72b4*9c%DR}J-P3qd;KaX=HYNe^k;KYHunfLt`&2Y>7(^2jKW3#4Tjq@R^ z2VZw*@6YCc7Kd&ce#&YInI{33QeXhk_s6(O+409zIVwEizm>TGA7xA0L|Ojx-aek1 zOc-xD$zXYyS%QA$-)}W1#mZ3qpre*`ezO$qJ^6G3afHg8=B~3*ys`Z?euetTZg=JA zuSfQ^6HEN&j`wqy?Dm%1?FJ9^5~_mS560Fvi)S;ZWHv`zzuv41;xvp}opG?Z9I%V| zC7b?fJ1{wst!Db~+sBe-a30B#iEG=+I0m~>XA2hGYDR+m)hpp0dX*vLvlEBcU2`nt z9FL#g2=u%jDufwp(XVX$xE35Mq8IF557U}EYj20;` zWA^hI@Y6w)RrX79Gf$j>cggZ*rzOuLRIN&?^Dx7y*$Eku{x>%%9(UE;KEMGW(zSsf zwg$?peoPD0^9VX~lpj$Mxvf|0YI(Ml2dwAHKPwNM9Qdf;8bLog{`e1dFKS7b&P7M2 z@!x5&MzuTe@Y?T&hS}cRfC+Ei43Weva5oMEy7K8H|CC&4oLSTs<7c^?uH0>9V9fO7 zffGfumb-HnzBXyDSW-2_rdFf+4yS8Mz>`Dy8k(Gw{JO4_Ch$+)-JRcNLZF4pBNtmH zCV6gAKTZ(1h6?SM3;6ypyr<{uD%>t%_X3oTM~fanj9b?l+$U04Ut;NVs4+avQRfI$ z&~74Q>jQtt`HygW?&hd)uJTI$A~6V@u<#KO0$Nr4N_NrNcWD;UIs5R?{-YJ3CnB;= z2Z5_AC5qvTWJhkojUL$e_$qFn>HhB2+*N~4wm~`bT{Pw@tQz1;4Zf6AECcMOeOuT3 zVMW}o_N23!(doJmS9rTINRD7K29FlhNS<$uo)n_HTuh(i+M_HZW1;2Wmhn2;Pk$l! zBDF!@Il!ap7=Kcx=D%?Im7kS~oHmWARqCM6ZBC^uX`TJ_-^r@9DK0eHI!v!IS16qM zUACD+uWDglR^t&@r;W8;it2w`5_Z>lT$j@tm_{W9XRf9+V#+{6jvyGg;`;|JCRKnj z^6ZcEz7NmA0WMLpNhYHSnzX`IOlZTz;01X1&MqJ%+&>7o&Ru*i1i)idUkNP$6t=^U zzuj|YD@fT(#WJ+`Dac()R#zPI&Ppf+a8wStPOEMy3TogHB~=!gqi5l(mpJeJ4T0g4 zIWjN$K06I(R^Yz_ zOiKwyW;^S*s(hSH);OK_E94c-S(E)LY(io!G9y3231^RnJi}~>Wv4nJKap-JCZyK% z?g^Y9?*lI1Zc{?U8HELY;=G+1J*YA{qX7M&tMJOh%Iu&B;G}z9{GJnqmW~!+H38P> zuR#iIx1(v%oC_4wxe-mKickYK;Q7|StX?0`I1R?O3n_vnHs1sO+XBi^Ce->fs-o(~ zCA9@F+j)xzb$%cknHl5=DGGv&FOCd=ts^~ zBuGwE;=&%wgTnpW?|N zEd;1`6I;19ykc0QSMi_Vy%S2v@svRaGZ*lJ1=q(69p#|Xhjhk|iB;wYR=sD_xVwsGW88

5jIr7piv0Y5u_z&D37*E00 z$Xp!I5R4BTF)t`p|AU9cop<51G3UB=lXj$&ariM{TAw9@%G6$Bhc8u-T8ui%rTt{c z!B(m_9Ek+%;?4(Jq0OaU3E^ZCnueyPT2_s3VnrfvYA_%S>PeMvc9Msj=wJhSCZP+u!Kt}sh@X?L z4{5zmB7Vs+3$4U&dh5(K#!11oF)tu0mFP}IgJmnJ-c&(gj6e%}mIxvQ%?mN|!qguE z6l4W5aINR8F~%fDK70aaf7d4m!GR&3TdNdZQCUrTMulJfsP8OylNOj{-Ab4P`Q#5E zqEe5Um;UdQ&k{dU3RiM#H8nGf4XvJocCfwz^N>Ei%9!mlT}Ni2O(iyPhf2MZGcm`(?=0YfVz%_nR1Wu`WL}o!oda17z)VDqV2v-10TF+1a zYp*S^Ij5loKNDpm4ES|%oLTTx?i+Od2AS_&v5T_^;wqvypO$SjGRXSIoo6= zIb&yY0s!Ye^8%urY}_s6I|+n}nSxdEQt5OZ9!?cYv73oc7G)$AJvemmz*$UFk4z5~ zX2~JDH2U8vJOlZlES3)XAZ!<$K~Rru1#pfxq#(HG1hON6_>UZpYmxLY{EzCIbI}OK-&vNbp{C7RSMf~+ zj#P(pE@omEsYOSN;4Xct$>$XMRQ0c!(A!Kq&Rh~V>bQ)uy)_k*#JD7`s0D36|t6#UiTB|nebX8-~yh12S#ko;f-w^h5OvSu39--VBEB{0U_WE3_3z3|bUoVm$V)TR

(Q8oww>teywML0-d8|WNUUcj3}3g-h} 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

5}QxaioP6Sr3u`%LUy{G+(t-s!K{ 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 pwx+?05q(45>%?OF+O4pJ4i5Sg4 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 j}PnDNwEIQ0EvKuLAX8Ni*ZV7}=*`QRe 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 diff --git a/worlds/wargroove2/data/mods/ArchipelagoMod/mod.dat b/worlds/wargroove2/data/mods/ArchipelagoMod/mod.dat index ee816dee3bb3fd488844bcc24526f92690959e73..7265709ce689f2c0d7f90b3538b034fe3e2d9ccf 100644 GIT binary patch delta 36 mcmdnOx`lPa3?`Yx)FdNgV-vG9Gjo$Pa}#5G2G#}!C;$My)(6r6 delta 36 mcmdnOx`lPa3?>;fV{Gm@U9XN_j$ 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
    DGKT$L?G- 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 ZDw0yuuB7Dah-nj2(-Mz#6yPQ4Ujd-%th)dJ delta 1608 zcmX9+3s6&M7C!&I|9vDHZ%DGi_#l^1t5DQnkf2mbc=+gwyj7?OA-Tb5$i>_M+8Bec z($?}^F=EmBnr>Z+OB+E!``GU4I(FS1wP-sP7uh<6`j}N&X=~fv?CzO4^UXJB=6v5b z=QN(y{`5Ch3m*^(_+LfS|HmzzjfG#kzc4EI82;3oZ;4Cif82>R=-vnaNPaZ^{J3oQ z_d70Szn|FBxTdcz;^$W{ewF;nz|oga{t}_Z1~2*#h-0?>*}e&k!Q_f`|w-$b!S0$b7+7suu4IF-K z%>6Ji*dnDmk~{eJce@S-wiG_6dEs+e=IwjV+e=?5OTNCkv9I+n?D38hEqBdDC1dTI z8=F@fFIz5oZw~F1HQgTl>qJ(nTtiQOZdU*Dn6V*zvhSkHd#9#r*U1b0t3O{Gms8Km zVg+-1U}KH*=GXZ?RpeWjCSSYSdA9GRLt}rh5mghkKa5?9xps1DPRQzx<+gck0X|o9=&5y?*OQ zRAKzbfxXH%WQh`tD|hu66(J%9?_qEMw~%O3PT%MfK#nolmoz`(Nlflu`111UwKP zTl4+qiJR(M882S`^|0Oj=ERx;TsbtduDI)R*_6_=hxyZ;BUJaMf7n(_iW7G~`l0(lV7&OXCxktvLK@FG_1%P& zEcn{4W?tKUrO3a>++eys=stR`xw7ok-lvrjNBzCT=(?d#)VsE4uPjM~_hi4>N6b>n z!%t-ZP=d*6M_M=+xI&#%F#}P)>7=K4V?KaO!fKnNlN{Bq2-ku1&t z#U89t{X4t~V)&JM;9dr$;#I5;V}60)17i*m>&gET`7jwK=o>PNFLFEc zkv=Lc%j_W4lhT0nk$4H{6P5txR*_SnA8-!BgP`G`5^#%PkAr@W14=Mg3Y1#c4Uh?n zQsC+_8}JBLyS2i_kf4ms2i|VaA(0Ny-{}$FXY}({x1E=~qDSavQhf=2f#fQHq@O3X zjV4xEY+^OpCYDZMg9-borMcatR%K)11VpdM>;Y~QQgZ89qkhhMn56iE)J(MkTf~wf z;0i&bxJ|0G0}NZhf`ZT+6@-=^BQ=??%Xz_L0b&8>7&iFl{Z!2S*;wOaSeQnjVFJBQ z7;U2K00AQ`F%MaN=CDQYHc&Zs5ox@`YHMVJx*!!D*hf>_k#b2bL7xV_;WSKQ4q#1$ zj%BB^cp2yyE(4l7hL!0_;d7?oO4n9CTdeglFclH^$#h<d9TyqUBa;J*$5{ z9SD{p*rgD$cqtI=KpdfFiH^gR!70s0XazP_3$|hfJqwr~$}%II=s-DQe}#G~tR9cm zwn-|pR&RvdjPRhyC4WSFMcyOWJT*=)AO3s3(j(Tm?eEKuNb~p%t2-P|ih**c+aY>v zQFP|U8joNAd>-qkOMs*ePP-u1c!T{N)V$dpm~+ESz0M7&z$?}X9uf3uBH;N}XBFrf K1i4{Nfd2sRZw+Yx diff --git a/worlds/wargroove2/data/save/campaign-45747c660b6a2f09601327a18d662a7d.cmp b/worlds/wargroove2/data/save/campaign-45747c660b6a2f09601327a18d662a7d.cmp index fc3f4aa5813d6cdd25040a6c8bbfc495854e8bbb..f10c2e0ecb83be423a02cbc8fabea69a8caf4eb1 100644 GIT binary patch literal 221008 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
    W-jgbir8Q1% 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

    This page is out of logic!

    -

    Click here to return to safety.

    `; - }); -}); diff --git a/WebHostLib/static/assets/faq/faq_en.md b/WebHostLib/static/assets/faq/en.md similarity index 100% rename from WebHostLib/static/assets/faq/faq_en.md rename to WebHostLib/static/assets/faq/en.md diff --git a/WebHostLib/static/assets/glossary.js b/WebHostLib/static/assets/glossary.js deleted file mode 100644 index 04a292008655..000000000000 --- a/WebHostLib/static/assets/glossary.js +++ /dev/null @@ -1,51 +0,0 @@ -window.addEventListener('load', () => { - const tutorialWrapper = document.getElementById('glossary-wrapper'); - new Promise((resolve, reject) => { - const ajax = new XMLHttpRequest(); - ajax.onreadystatechange = () => { - if (ajax.readyState !== 4) { return; } - if (ajax.status === 404) { - reject("Sorry, the glossary page is not available in that language yet."); - return; - } - if (ajax.status !== 200) { - reject("Something went wrong while loading the glossary."); - return; - } - resolve(ajax.responseText); - }; - ajax.open('GET', `${window.location.origin}/static/assets/faq/` + - `glossary_${tutorialWrapper.getAttribute('data-lang')}.md`, true); - ajax.send(); - }).then((results) => { - // Populate page with HTML generated from markdown - showdown.setOption('tables', true); - showdown.setOption('strikethrough', true); - showdown.setOption('literalMidWordUnderscores', true); - tutorialWrapper.innerHTML += (new showdown.Converter()).makeHtml(results); - adjustHeaderWidth(); - - // Reset the id of all header divs to something nicer - for (const header of document.querySelectorAll('h1, h2, h3, h4, h5, h6')) { - const headerId = header.innerText.replace(/\s+/g, '-').toLowerCase(); - header.setAttribute('id', headerId); - header.addEventListener('click', () => { - window.location.hash = `#${headerId}`; - header.scrollIntoView(); - }); - } - - // Manually scroll the user to the appropriate header if anchor navigation is used - document.fonts.ready.finally(() => { - if (window.location.hash) { - const scrollTarget = document.getElementById(window.location.hash.substring(1)); - scrollTarget?.scrollIntoView(); - } - }); - }).catch((error) => { - console.error(error); - tutorialWrapper.innerHTML = - `

    This page is out of logic!

    -

    Click here to return to safety.

    `; - }); -}); diff --git a/WebHostLib/static/assets/faq/glossary_en.md b/WebHostLib/static/assets/glossary/en.md similarity index 100% rename from WebHostLib/static/assets/faq/glossary_en.md rename to WebHostLib/static/assets/glossary/en.md diff --git a/WebHostLib/templates/faq.html b/WebHostLib/templates/faq.html deleted file mode 100644 index 76bdb96d2ef8..000000000000 --- a/WebHostLib/templates/faq.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends 'pageWrapper.html' %} - -{% block head %} - {% include 'header/grassHeader.html' %} - Frequently Asked Questions - - - -{% endblock %} - -{% block body %} -
    - -
    -{% endblock %} diff --git a/WebHostLib/templates/glossary.html b/WebHostLib/templates/glossary.html deleted file mode 100644 index 921f678157fc..000000000000 --- a/WebHostLib/templates/glossary.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends 'pageWrapper.html' %} - -{% block head %} - {% include 'header/grassHeader.html' %} - Glossary - - - -{% endblock %} - -{% block body %} -
    - -
    -{% endblock %} diff --git a/WebHostLib/templates/markdown_document.html b/WebHostLib/templates/markdown_document.html new file mode 100644 index 000000000000..07b3c8354d0d --- /dev/null +++ b/WebHostLib/templates/markdown_document.html @@ -0,0 +1,13 @@ +{% extends 'pageWrapper.html' %} + +{% block head %} + {% include 'header/grassHeader.html' %} + {{ title }} + +{% endblock %} + +{% block body %} +
    + {{ html_from_markdown | safe}} +
    +{% endblock %} From 48822227b5e082d7aa9aaf1f06cdc6504113a509 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 16 Oct 2024 23:31:36 +0200 Subject: [PATCH 125/212] Test: option instances have to be pickleable (#4006) --- test/general/test_options.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/general/test_options.py b/test/general/test_options.py index 2229b7ea7e66..ee2f22a6dc71 100644 --- a/test/general/test_options.py +++ b/test/general/test_options.py @@ -59,3 +59,12 @@ def test_item_links_resolve(self): item_links = {1: ItemLinks.from_any(item_link_group), 2: ItemLinks.from_any(item_link_group)} for link in item_links.values(): self.assertEqual(link.value[0], item_link_group[0]) + + def test_pickle_dumps(self): + """Test options can be pickled into database for WebHost generation""" + import pickle + for gamename, world_type in AutoWorldRegister.world_types.items(): + if not world_type.hidden: + for option_key, option in world_type.options_dataclass.type_hints.items(): + with self.subTest(game=gamename, option=option_key): + pickle.dumps(option(option.default)) From 2b0cab82fa7779a1ec2ed0f114437c9efc3acd22 Mon Sep 17 00:00:00 2001 From: Ishigh1 Date: Thu, 17 Oct 2024 00:14:27 +0200 Subject: [PATCH 126/212] CommonClient: Making local datapackage load correctly if it was overriden by a custom one (#3722) * Added versions and checksums dict * Added load of local datapackage * Fixed typo --- CommonClient.py | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index 296c10ed4b4e..77ed85b5c652 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -355,6 +355,8 @@ def __init__(self, server_address: typing.Optional[str] = None, password: typing self.item_names = self.NameLookupDict(self, "item") self.location_names = self.NameLookupDict(self, "location") + self.versions = {} + self.checksums = {} self.jsontotextparser = JSONtoTextParser(self) self.rawjsontotextparser = RawJSONtoTextParser(self) @@ -571,26 +573,34 @@ async def prepare_data_package(self, relevant_games: typing.Set[str], needed_updates.add(game) continue - local_version: int = network_data_package["games"].get(game, {}).get("version", 0) - local_checksum: typing.Optional[str] = network_data_package["games"].get(game, {}).get("checksum") - # no action required if local version is new enough - if (not remote_checksum and (remote_version > local_version or remote_version == 0)) \ - or remote_checksum != local_checksum: - cached_game = Utils.load_data_package_for_checksum(game, remote_checksum) - cache_version: int = cached_game.get("version", 0) - cache_checksum: typing.Optional[str] = cached_game.get("checksum") - # download remote version if cache is not new enough - if (not remote_checksum and (remote_version > cache_version or remote_version == 0)) \ - or remote_checksum != cache_checksum: - needed_updates.add(game) + cached_version: int = self.versions.get(game, 0) + cached_checksum: typing.Optional[str] = self.checksums.get(game) + # no action required if cached version is new enough + if (not remote_checksum and (remote_version > cached_version or remote_version == 0)) \ + or remote_checksum != cached_checksum: + local_version: int = network_data_package["games"].get(game, {}).get("version", 0) + local_checksum: typing.Optional[str] = network_data_package["games"].get(game, {}).get("checksum") + if ((remote_checksum or remote_version <= local_version and remote_version != 0) + and remote_checksum == local_checksum): + self.update_game(network_data_package["games"][game], game) else: - self.update_game(cached_game, game) + cached_game = Utils.load_data_package_for_checksum(game, remote_checksum) + cache_version: int = cached_game.get("version", 0) + cache_checksum: typing.Optional[str] = cached_game.get("checksum") + # download remote version if cache is not new enough + if (not remote_checksum and (remote_version > cache_version or remote_version == 0)) \ + or remote_checksum != cache_checksum: + needed_updates.add(game) + else: + self.update_game(cached_game, game) if needed_updates: await self.send_msgs([{"cmd": "GetDataPackage", "games": [game_name]} for game_name in needed_updates]) def update_game(self, game_package: dict, game: str): self.item_names.update_game(game, game_package["item_name_to_id"]) self.location_names.update_game(game, game_package["location_name_to_id"]) + self.versions[game] = game_package.get("version", 0) + self.checksums[game] = game_package.get("checksum") def update_data_package(self, data_package: dict): for game, game_data in data_package["games"].items(): From 79cec89e242e370bf2756d5a4ead971965939aa6 Mon Sep 17 00:00:00 2001 From: qwint Date: Wed, 16 Oct 2024 18:27:50 -0400 Subject: [PATCH 127/212] Launcher: save default settings before opening file for users (#4042) --- Launcher.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Launcher.py b/Launcher.py index 42f93547cc9d..85e49da7e551 100644 --- a/Launcher.py +++ b/Launcher.py @@ -35,7 +35,9 @@ def open_host_yaml(): - file = settings.get_settings().filename + s = settings.get_settings() + file = s.filename + s.save() assert file, "host.yaml missing" if is_linux: exe = which('sensible-editor') or which('gedit') or \ From a0f49dd7d95d352d8da2b4a8b03335be7f77d5b3 Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Wed, 16 Oct 2024 21:31:53 -0400 Subject: [PATCH 128/212] Noita: Add the useful classification to important perks, making them progression + useful #4030 --- worlds/noita/items.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/worlds/noita/items.py b/worlds/noita/items.py index 6b662fbee692..1cb7d9601386 100644 --- a/worlds/noita/items.py +++ b/worlds/noita/items.py @@ -100,13 +100,13 @@ def create_all_items(world: NoitaWorld) -> None: "Wand (Tier 5)": ItemData(110010, "Wands", ItemClassification.useful, 1), "Wand (Tier 6)": ItemData(110011, "Wands", ItemClassification.useful, 1), "Kantele": ItemData(110012, "Wands", ItemClassification.useful), - "Fire Immunity Perk": ItemData(110013, "Perks", ItemClassification.progression, 1), - "Toxic Immunity Perk": ItemData(110014, "Perks", ItemClassification.progression, 1), - "Explosion Immunity Perk": ItemData(110015, "Perks", ItemClassification.progression, 1), - "Melee Immunity Perk": ItemData(110016, "Perks", ItemClassification.progression, 1), - "Electricity Immunity Perk": ItemData(110017, "Perks", ItemClassification.progression, 1), - "Tinker with Wands Everywhere Perk": ItemData(110018, "Perks", ItemClassification.progression, 1), - "All-Seeing Eye Perk": ItemData(110019, "Perks", ItemClassification.progression, 1), + "Fire Immunity Perk": ItemData(110013, "Perks", ItemClassification.progression | ItemClassification.useful, 1), + "Toxic Immunity Perk": ItemData(110014, "Perks", ItemClassification.progression | ItemClassification.useful, 1), + "Explosion Immunity Perk": ItemData(110015, "Perks", ItemClassification.progression | ItemClassification.useful, 1), + "Melee Immunity Perk": ItemData(110016, "Perks", ItemClassification.progression | ItemClassification.useful, 1), + "Electricity Immunity Perk": ItemData(110017, "Perks", ItemClassification.progression | ItemClassification.useful, 1), + "Tinker with Wands Everywhere Perk": ItemData(110018, "Perks", ItemClassification.progression | ItemClassification.useful, 1), + "All-Seeing Eye Perk": ItemData(110019, "Perks", ItemClassification.progression | ItemClassification.useful, 1), "Spatial Awareness Perk": ItemData(110020, "Perks", ItemClassification.progression), "Extra Life Perk": ItemData(110021, "Repeatable Perks", ItemClassification.useful, 1), "Orb": ItemData(110022, "Orbs", ItemClassification.progression_skip_balancing), From ff297f29517f52b29335a00f740a74b50c7d6662 Mon Sep 17 00:00:00 2001 From: palex00 <32203971+palex00@users.noreply.github.com> Date: Thu, 17 Oct 2024 03:34:10 +0200 Subject: [PATCH 129/212] [Aquaria] Adds Poptracker Pack to the Aquaria Setup Guides (#4037) * Adds Poptracker Pack to the Aquaria Setup Guides * Updates French Update Guide * Update worlds/aquaria/docs/setup_fr.md Co-authored-by: Cipocreep <65617616+Cipocreep@users.noreply.github.com> * Update worlds/aquaria/docs/setup_fr.md Co-authored-by: Benny D <78334662+benny-dreamly@users.noreply.github.com> * Update setup_fr.md * Update setup_fr.md --------- Co-authored-by: Cipocreep <65617616+Cipocreep@users.noreply.github.com> Co-authored-by: Benny D <78334662+benny-dreamly@users.noreply.github.com> --- worlds/aquaria/docs/setup_en.md | 15 +++++++++++++++ worlds/aquaria/docs/setup_fr.md | 21 +++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/worlds/aquaria/docs/setup_en.md b/worlds/aquaria/docs/setup_en.md index 34196757a31c..8177725ded64 100644 --- a/worlds/aquaria/docs/setup_en.md +++ b/worlds/aquaria/docs/setup_en.md @@ -8,6 +8,8 @@ ## Optional Software - For sending [commands](/tutorial/Archipelago/commands/en) like `!hint`: the TextClient from [the most recent Archipelago release](https://github.com/ArchipelagoMW/Archipelago/releases) +- [Aquaria AP Tracker](https://github.com/palex00/aquaria-ap-tracker/releases/latest), for use with +[PopTracker](https://github.com/black-sliver/PopTracker/releases/latest) ## Installation and execution Procedures @@ -113,3 +115,16 @@ sure that your executable has executable permission: ```bash chmod +x aquaria_randomizer ``` + +## Auto-Tracking + +Aquaria has a fully functional map tracker that supports auto-tracking. + +1. Download [Aquaria AP Tracker](https://github.com/palex00/aquaria-ap-tracker/releases/latest) and +[PopTracker](https://github.com/black-sliver/PopTracker/releases/latest). +2. Put the tracker pack into /packs/ in your PopTracker install. +3. Open PopTracker, and load the Aquaria pack. +4. For autotracking, click on the "AP" symbol at the top. +5. Enter the Archipelago server address (the one you connected your client to), slot name, and password. + +This pack will automatically prompt you to update if one is available. diff --git a/worlds/aquaria/docs/setup_fr.md b/worlds/aquaria/docs/setup_fr.md index 2c34f1e6a50f..66b6d6119708 100644 --- a/worlds/aquaria/docs/setup_fr.md +++ b/worlds/aquaria/docs/setup_fr.md @@ -2,9 +2,14 @@ ## Logiciels nÊcessaires -- Le jeu Aquaria original (trouvable sur la majoritÊ des sites de ventes de jeux vidÊo en ligne) -- Le client Randomizer d'Aquaria [Aquaria randomizer](https://github.com/tioui/Aquaria_Randomizer/releases) +- Une copie du jeu Aquaria non-modifiÊe (disponible sur la majoritÊ des sites de ventes de jeux vidÊos en ligne) +- Le client du Randomizer d'Aquaria [Aquaria randomizer] +(https://github.com/tioui/Aquaria_Randomizer/releases) + +## Logiciels optionnels + - De manière optionnel, pour pouvoir envoyer des [commandes](/tutorial/Archipelago/commands/en) comme `!hint`: utilisez le client texte de [la version la plus rÊcente d'Archipelago](https://github.com/ArchipelagoMW/Archipelago/releases) +- [Aquaria AP Tracker](https://github.com/palex00/aquaria-ap-tracker/releases/latest), pour utiliser avec [PopTracker](https://github.com/black-sliver/PopTracker/releases/latest) ## ProcÊdures d'installation et d'exÊcution @@ -116,3 +121,15 @@ pour vous assurer que votre fichier est exÊcutable: ```bash chmod +x aquaria_randomizer ``` + +## Tracking automatique + +Aquaria a un tracker complet qui supporte le tracking automatique. + +1. TÊlÊchargez [Aquaria AP Tracker](https://github.com/palex00/aquaria-ap-tracker/releases/latest) et [PopTracker](https://github.com/black-sliver/PopTracker/releases/latest). +2. Mettre le fichier compressÊ du tracker dans le sous-rÊpertoire /packs/ du rÊpertoire d'installation de PopTracker. +3. Lancez PopTracker, et ouvrez le pack d'Aquaria. +4. Pour activer le tracking automatique, cliquez sur le symbole "AP" dans le haut de la fenÃĒtre. +5. Entrez l'adresse du serveur Archipelago (le serveur auquel vous avez connectÊ le client), le nom de votre slot, et le mot de passe (si un mot de passe est nÊcessaire). + +Le logiciel vous indiquera si une mise à jour du pack est disponible. From 63d471514f05ccd4ccacc20807068400020f8bcc Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Wed, 16 Oct 2024 18:37:41 -0700 Subject: [PATCH 130/212] Pokemon Emerald: Add flag for shoal cave to bounces (#4021) * Pokemon Emerald: Add shoal cave state to map updates * Pokemon Emerald: Fix shoal cave flag wrong byte, delay bounce to end of map transition --- worlds/pokemon_emerald/client.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/worlds/pokemon_emerald/client.py b/worlds/pokemon_emerald/client.py index 4405b34074e0..5add7b3fca40 100644 --- a/worlds/pokemon_emerald/client.py +++ b/worlds/pokemon_emerald/client.py @@ -117,6 +117,11 @@ DEFEATED_LEGENDARY_FLAG_MAP = {data.constants[f"FLAG_DEFEATED_{name}"]: name for name in LEGENDARY_NAMES.values()} CAUGHT_LEGENDARY_FLAG_MAP = {data.constants[f"FLAG_CAUGHT_{name}"]: name for name in LEGENDARY_NAMES.values()} +SHOAL_CAVE_MAPS = tuple(data.constants[map_name] for map_name in [ + "MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", + "MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", +]) + class PokemonEmeraldClient(BizHawkClient): game = "Pokemon Emerald" @@ -414,13 +419,17 @@ async def handle_tracker_info(self, ctx: "BizHawkClientContext", guards: Dict[st read_result = await bizhawk.guarded_read( ctx.bizhawk_ctx, - [(sb1_address + 0x4, 2, "System Bus")], - [guards["SAVE BLOCK 1"]] + [ + (sb1_address + 0x4, 2, "System Bus"), # Current map + (sb1_address + 0x1450 + (data.constants["FLAG_SYS_SHOAL_TIDE"] // 8), 1, "System Bus"), + ], + [guards["IN OVERWORLD"], guards["SAVE BLOCK 1"]] ) if read_result is None: # Save block moved return current_map = int.from_bytes(read_result[0], "big") + shoal_cave = int(read_result[1][0] & (1 << (data.constants["FLAG_SYS_SHOAL_TIDE"] % 8)) > 0) if current_map != self.current_map: self.current_map = current_map await ctx.send_msgs([{ @@ -429,6 +438,7 @@ async def handle_tracker_info(self, ctx: "BizHawkClientContext", guards: Dict[st "data": { "type": "MapUpdate", "mapId": current_map, + **({"tide": shoal_cave} if current_map in SHOAL_CAVE_MAPS else {}), }, }]) From ede59ef5a1c0d06e8eae0c7ad18b6d731f36450b Mon Sep 17 00:00:00 2001 From: Remy Jette Date: Thu, 17 Oct 2024 09:40:46 -0700 Subject: [PATCH 131/212] WebHost: Fix NamedRange option dropdown being blank instead of custom when applying presets (#4063) --- WebHostLib/static/assets/playerOptions.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WebHostLib/static/assets/playerOptions.js b/WebHostLib/static/assets/playerOptions.js index d0f2e388c2a6..fbf96a3a71c2 100644 --- a/WebHostLib/static/assets/playerOptions.js +++ b/WebHostLib/static/assets/playerOptions.js @@ -288,6 +288,11 @@ const applyPresets = (presetName) => { } }); namedRangeSelect.value = trueValue; + // It is also possible for a preset to use an unnamed value. If this happens, set the dropdown to "Custom" + if (namedRangeSelect.selectedIndex == -1) + { + namedRangeSelect.value = "custom"; + } } // Handle options whose presets are "random" From af14045c3af1bc8d62cc02c953ef16ff016515e9 Mon Sep 17 00:00:00 2001 From: Spineraks Date: Sat, 19 Oct 2024 16:53:02 +0200 Subject: [PATCH 132/212] Yacht Dice: Proguseful items: Dice and 100 Points #4070 --- worlds/yachtdice/Items.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worlds/yachtdice/Items.py b/worlds/yachtdice/Items.py index c76dc538146e..d6488498f51a 100644 --- a/worlds/yachtdice/Items.py +++ b/worlds/yachtdice/Items.py @@ -16,7 +16,7 @@ class YachtDiceItem(Item): item_table = { - "Dice": ItemData(16871244000, ItemClassification.progression), + "Dice": ItemData(16871244000, ItemClassification.progression | ItemClassification.useful), "Dice Fragment": ItemData(16871244001, ItemClassification.progression), "Roll": ItemData(16871244002, ItemClassification.progression), "Roll Fragment": ItemData(16871244003, ItemClassification.progression), @@ -64,7 +64,7 @@ class YachtDiceItem(Item): # These points are included in the logic and might be necessary to progress. "1 Point": ItemData(16871244301, ItemClassification.progression_skip_balancing), "10 Points": ItemData(16871244302, ItemClassification.progression), - "100 Points": ItemData(16871244303, ItemClassification.progression), + "100 Points": ItemData(16871244303, ItemClassification.progression | ItemClassification.useful), } # item groups for better hinting From c6d2971d67c48cbf14ec05e384fb044f4fe60a63 Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Mon, 21 Oct 2024 01:51:14 +0200 Subject: [PATCH 133/212] WebHost: optimize WebHost theme PNGs (#4071) using zopfli, saving 30% --- .../cliffs/grass/cliff-bottom-left-corner.png | Bin 80038 -> 47918 bytes .../grass/cliff-bottom-right-corner.png | Bin 72277 -> 51317 bytes .../backgrounds/cliffs/grass/cliff-bottom.png | Bin 5516 -> 1831 bytes .../backgrounds/cliffs/grass/cliff-left.png | Bin 4876 -> 2956 bytes .../backgrounds/cliffs/grass/cliff-right.png | Bin 3873 -> 1477 bytes .../cliffs/grass/cliff-top-left-corner.png | Bin 57962 -> 36503 bytes .../cliffs/grass/cliff-top-right-corner.png | Bin 65049 -> 36421 bytes .../backgrounds/cliffs/grass/cliff-top.png | Bin 4225 -> 1454 bytes .../static/backgrounds/clouds/cloud-0001.png | Bin 20604 -> 7940 bytes .../static/backgrounds/clouds/cloud-0002.png | Bin 9739 -> 3922 bytes .../static/backgrounds/clouds/cloud-0003.png | Bin 6833 -> 2889 bytes WebHostLib/static/static/backgrounds/dirt.png | Bin 10341 -> 6068 bytes .../static/backgrounds/footer/footer-0001.png | Bin 16797 -> 14558 bytes .../static/backgrounds/footer/footer-0002.png | Bin 18888 -> 16269 bytes .../static/backgrounds/footer/footer-0003.png | Bin 19166 -> 16436 bytes .../static/backgrounds/footer/footer-0004.png | Bin 20304 -> 17307 bytes .../static/backgrounds/footer/footer-0005.png | Bin 19681 -> 16769 bytes .../static/backgrounds/grass-flowers.png | Bin 8827 -> 4811 bytes .../static/static/backgrounds/grass.png | Bin 8411 -> 4277 bytes .../static/backgrounds/header/dirt-header.png | Bin 40256 -> 26002 bytes .../backgrounds/header/grass-header.png | Bin 40084 -> 25892 bytes .../backgrounds/header/ocean-header.png | Bin 24424 -> 9215 bytes .../backgrounds/header/party-time-header.png | Bin 25186 -> 9844 bytes .../backgrounds/header/stone-header.png | Bin 68049 -> 44849 bytes WebHostLib/static/static/backgrounds/ice.png | Bin 10301 -> 6329 bytes .../static/static/backgrounds/jungle.png | Bin 36475 -> 21381 bytes .../static/static/backgrounds/ocean.png | Bin 32733 -> 8768 bytes .../static/static/backgrounds/party-time.png | Bin 41482 -> 35971 bytes .../static/static/backgrounds/stone.png | Bin 234931 -> 121442 bytes .../static/static/branding/header-logo.png | Bin 6999 -> 3381 bytes .../static/static/branding/landing-logo.png | Bin 44905 -> 39769 bytes .../button-images/hamburger-menu-icon.png | Bin 5659 -> 1577 bytes .../static/button-images/island-button-a.png | Bin 255717 -> 209015 bytes .../static/button-images/island-button-b.png | Bin 214542 -> 174114 bytes .../static/button-images/island-button-c.png | Bin 298988 -> 255053 bytes .../static/static/button-images/popover.png | Bin 9836 -> 3957 bytes .../static/static/decorations/island-a.png | Bin 165403 -> 127644 bytes .../static/static/decorations/island-b.png | Bin 164508 -> 126746 bytes .../static/static/decorations/island-c.png | Bin 166466 -> 128501 bytes .../static/decorations/rock-in-water.png | Bin 1949 -> 1298 bytes .../static/static/decorations/rock-single.png | Bin 1793 -> 258 bytes 41 files changed, 0 insertions(+), 0 deletions(-) diff --git a/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-bottom-left-corner.png b/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-bottom-left-corner.png index 326670b7ebc46ebacaf61636af6255986f2be2a4..2435222d24f2000f673d3434fdcbb80831ad5928 100644 GIT binary patch literal 47918 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Ð|6}r9d?L|;_cd3 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 z

    tu#znSA*ds|$t+=nyfcCm1OZQwdSJ7>DVY1%2A6 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 afRtRbCm6}E5(oSa$a5(LSfzwv;Qt2)!E7A> literal 72277 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 diff --git a/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-bottom.png b/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-bottom.png index 2a28958e09311fb4699fb815870f36d7e22dcd26..7e58e4b0ce48ea3e8b3f34269c61e3de75eab933 100644 GIT binary patch literal 1831 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 a|I07LPbH_d+X#OzH8wncFx}wH#s33@v0lpn diff --git a/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-left.png b/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-left.png index 9bc84ff603ec6340a6ad03c6840cb160a9a24ebf..2dabbf298678f5d76e33d7e8d18bbea65950c07d 100644 GIT binary patch literal 2956 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 N44$rjF6*2UngAG$MbrQQ literal 3873 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 V^eSJHYXRWL%G}nhXtT$Ge**qlK{@~c diff --git a/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-top-left-corner.png b/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-top-left-corner.png index a40bca60f0808721bf393572a082dc68027dc083..2b5865573ad8fae6b88ee8958c61c5d5525bb141 100644 GIT binary patch literal 36503 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 RKY7Uj1fH&bF6*2UngG+uGK2sC literal 57962 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

    C-Yg49>I6R`bGA!0Tyo}|(s z0sZvckE%ovZ5CPe!q(lZfl~wEP>Y#hS#=ZC4#{#ZVVi2`Xuq#f;*wDkr4b-UO*qfR zQPe$baL=oNB-U;*B%y{-HI3sTTzks2QguRk`#Cqmp^5^ySBy(Z{`wzH{T*wsi}%cc zOQ#F}(KQAPCM1a2#A8S#41F)xX!u~mHG`-xLQ8Rj3yF?;v4b!JW+9M62t%60T6oGZ^=Y z?1lJgg9{29(=8;x(C(#QX6v0-vj+f5Tq-{Qco@=Ihl15A*quYA{ESk+F01Dt>Ul>1 z9<08$=OxGSnXs7s{%e2l?QHO;MJpLLGZs^mUrOUCYpSBPGXC_k*?BLs@9FX}L>5UE zj@4->aLWE4P2U|)_51#>LRsM$$sXr~gUlis(ZO+yjB|`+OSWtg%0BkNL1d5Yk(Hgj zSN6`z-g|#v-oMY!za9_w%XMG(HJ{Jx3T|Phd4}Ow4*GT3^@&o@FRUMeaox)SQtg7} zJ{ofLTHu)oK%Q4qBPMXeYK-(bxu?$8_ z!i6e6*KoNY&)P4I9m9u)8z_JyCycrqtRW!p;s)VV8g@)dkW#Aq)vl7AC%|XJ>u$+b zefp}~RQHqWePssox3a1PTrS7>jg7B~e(k{=(p(!vsIVzaHE5ZoE#-+&-`8sG85_ME zepZ}_d7!HJoebdInF26n3mt~#(4~J5r46y3Flm&fwT$#YfeO&*RB6o`5Px@$HT>@X z-l*jx50wAq*EPC_+gh@!=eE*(Afi$x1%{YMWSO&Jl{`=puiyAr_n@_j=SKN~jEEH@ z`6?LH(v;y1FTPT`7wyle&h_vq z3UX7h!QNX>U>_O7AP*VGtBSMc{{+fHM*EZ7TmUZ&47hAgZmhh%nww*x;`Q2c0jPmf zWw8ma;?ThdN;TTkL23ie02I-Z?$fZv6~Pxx86y^(B4R>c_=6tb+g6qN=|FS)UTT2t z6g6Q{jF;{&bJC@1FbfweOGoAbM=TcrI|{`04RHyyN%2v!3Wf!H@_Vb25!{sY8oyGH z@jl_$RT63lxK(Ci{7-W;$>-cm7vw3?a_?IcIh6x;UZMvMhr`}m79}^YpIP2}8RmZ6 zO8)SEM89yXdF|c+E92$3k9g4q@AXi_@AE%Yi+yul%S5hwHTtsu{%CVgyHd`bCwc|j z57wIz_j)CTjPp`Zs6NINJLne+@ufv(U?NBxae{pxH#39031wb*2tK&~%!F&N5VqjK zBxW(q5C*#^>zkH!PjatbM{Gh)dXMXYlB_EHUr6wHE*z|(E^@UfoGKh0Sq=r^>Kb!( ze$VtgL|*=0iBf^;dmW1a$*>x@BUoaU?%6Ojp=d69+%cA^UK?nx+0og&6=wZ~<>KcT zHmAk@+Mk^Ac^LuPO-=UTb)G4vD-u6~CY{X&Yw5}d2kib$KRK$k2tw4J?K`}TF&}{{ zOP+bu?jMqhD)X$yaNdVCb!NlFg|bxf`6R25BtS3!6&Hp~#WxMP`x;gAh@f%vGbQPD z##LtA7MO;>XfMX2&3!@%lhQZlcAq>ufR*wrEeuiqe3X?X;x5SBg^NS7$VS;(v=u!{ zEXbktME0v1W4way7t-&dqh(fGN0lmF+FVhqxRvxXfR(koyryXD=L%15Q=fAuAKIfi zo~dnEDY)JZzxGft1bQDFP;!;chCIMTu;ZtP5-;>QXpbc|XD3QGZdCH%43Zq?g{qtLz`s)t&3l`rYn=TB!lwNmVQx`B} zw5GCOjU}uUxBz{0FX9@wR%RlcEM89#Y^eD;EmP%?4dnOdUoTPowh#pYv!OtyI^V

    ~vHERXxv+bf9Lvejb*gR3vp#5u*|c9yXCJ1p{!~ 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 literal 65049 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 LLm}m0lc4_(0*P(+ diff --git a/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-top.png b/WebHostLib/static/static/backgrounds/cliffs/grass/cliff-top.png index bb6ccec3d583e95d190abad4691af7ebda8203fe..1eb072ac085897650622ffbd0859dcc07b261842 100644 GIT binary patch literal 1454 zcmb`GdsNbA7{^Jbt|qRnRT~{OGxHW83I-?$3f?c}C2vWJH$u%WXu`rG(n?d8AUX~G zc|)z#oMmOUny%9cvry2PrJkjkmc~+xy!>Rp&e>W2?9YAvc;4^xoacPc`@GM2&+QKI zM65%ugTY`3Z!dZfbn;=aHNr39kgBK)y$L0kcKd}e2uZE>)NBkzg!MYVYrotn62Q2g z#xl-121*?Li?H-_p6vRlv%kejAG0e4LXO{z7560ktW3J7N+^BuPb}+8kUmN|)mGj$ zUfuJiq;oVq|8{+!rb;ormt86QeWK$2OZgLxT&aPILGc$OlB+`#EB3^F5*dY^83mm} zv5btzq;fL_c@pdn(?m{6jbf6OkQfpaD7!Z#yE~X)+s1Gu`7me>R%STst&Y}aq@CLW zi8k(7OETJm;b7^Fw~C;mvg646J?tah&;=Ye%GrHG0^~B)k*8fed%0DX_~n)lH|;O@`fB+uB>uW!A68W|0t+wS5M7aYG)LeL&_PQ`3 zKeidLIOuTY=?^1rIoSYBv}t-$e&Wv7Zl=?Hve@`xN7#Uy$N*f*_ei^=)JQy!UH#6s zQP>~Rxn+J$Zaw7SZ_F<;&SbKgCQ5*2*!fGJ;;0ckni9EDY%ua_d-2+9FL-r4U^b*m z0noI?C?!BPK;qa+VA(KJG`OHV^xUgb-S8s+{lomPJ^dwsRp@g`Fh7#ftF}ZS7iRW7 zm#8oaS!j+>HH<0%)8rUc|B!Bzi=ejW^@(ml!2{wHwA3Z0at%lpRYPx}`r$ zPy%)66ktOU9J&X)g!>cMyW-8-exU(kcneBR%ZSzw0`lZ7DqdY$Gf%(&22fdD{&t4r zR0ZlIxoXh8L)$)d#!%`tPZ{p7Y@UavS$Kt!3h)5gu)}yNjfX$pvzA+|8iU?iRtY*9 ie45q=IPtyQQ>Qn#oJ^zx*mUSC!@L;*^k%o1Q-1?y4fh2A literal 4225 zcmbVQ2{=^iA9h=>B&k~|%biArG-k06L(JHc<)TnZW9AqWW@nh(`rj0ZNOY4**BTMG zMUt&Vvadxnh$J*)$u9iQ*jw(s&%N_J=Q-c`&hPsz@Av-R?>rM=X>KICX4@JeAt6x{ zW1JOu=LiY?@Y|28z){kP`19aRm}YFx6cQ5ID7bzQio7l%B(!of*~X4#XSN?rpt>vJ ziBu;*$;+JvS_=tj>w3}f1Xq9saRNwW3I^Jnl?R28i5RG@su{wJh6P;6#vBG<%`vwj za9jzRM5wL~MB57uI&cSAc!-y~8-l4cBvgatdA2g7Y9IFSGc+yHlg z!eWB9$OT)P3zbD>x={bZ^}_2f0)Wt(nJvWlZZ7Wb3n7>+15dDwIY7Q^&9w2R0dOmT zN%de500U1jO<6%TG&Gh0;8|3L4VCIPzfqR+DML^wB?Ls?mP{d1*-V8c3jiFR1z@0p zU4tQ!FqEbZ3W-)lqLFGaga#Ucm^C${63NcqUz#c-1g0vQXcd(&OhL*J@htp58WRa< zXDY)T4;D;z$CCg!jY5J#7GOkUscuvT7#Pe>dFi|f7Hi3%I+NYN7fdT7eTazxRt>4C zrUpYPA!pJxGeetDm@GVn0GQw~P!Jp?GMR{WMk*5kB*6)$hIe*?sXMCxFgyW|gb`HL zotz0s4ZJ$hX?{J9O7IX+V17OEU#_=ckiizjyZvWBg2ohZ2W?Ddg1hQH*E-e!eQxAN zhRo0fjVB1&00Sim_8%ZZ=cdX38G%{1Y!?7@`Zv6oHDgkpS!_H5&?A9p{Uh(-VDfN5 z!_L+L|GLDPcT1Xk-W*g6!EiyUz=s8~11O-vF+eE`k+0SVrBd7kr)T4JoyRqElOjnM z^-n7+PaIFD~HOA~ruAuo1TsC2z_~k}QH}J*=NlgG)gb)7ytCCbZjIdYPsuxW#amvX=4$ zs#~OG%2zIuoX57-t}o|E{I>Pw`EYZ`7aR$H)IAxYc;9F}gvyV8tDaUtB(|-<`u>?; z_AdQe+t6crNXOFw49}c5NtdE$sBb)+{fm}3r`a-^H}2PPt$5OZpoGVY|MZsORGOwO zuA{={&N?{evVN`T=^3xdBh|bo%9(c#F2hFaRx-S29=kkTC1G9c{0TtC0)! zoOwJtDE44XIzYrix5GRNe(JQ`rM2#6$HjdJjjvbG~bL{uFMq7ea>ZigLCOh0{$--NR- z?x^bKD(+kN9RRGWB^PEvk|ub+Tg@ z3rO7aEcTf!6m@CH4u`ufi)G)J!LEPf;k$_UYy_tXa-aofEJAxCzrNirTs}UVk^cDp zG(0{g{9xx~RA)&=YjOS8SA=vwaQcBZSZ3_FXY>!ii6 zo0vYb^-;DgJi@0}u08iKem?!< zU`>AT%pct|4&SS7DC0(M$th+^w^T{p)p zrGIz*bo1KJKTKV@nH5oBcWi%!_O6vbtDni6iftvyPrhs8Cbv7gcRZ`BFaEj*qBU+CSomJYh|LSeg z+!H|+o{bOPRJ82H+P5!(aYj2rySpyq<$tM})_$!r@asAl)Ja~vwl8B+BlTLJi;S`A zpk2KDGvJOnmtYICw}OdI>3X``>QEk7NmT#(g|BlCQp;>jfA<-GWB2M=1Bvc^xVvdQ z$MmIzlD;C=BtEXbLXO(`nSQ(l?YxZm!8O%)$QuxK`>YGtQ{EiwzH|J^8j+E8H`h!dzaF?T=3Q>y!A%~kREoPB`DU!uF)-;)U=~G?bek)6YK;5>CQ$uz zlZn@i8m6R&?RI+XsF;}ooosfr9=c>BMydWr*}p{}Bm$2Twc#wctN2xp;fFC%Y;nU! zT##&ye{WU!c(7Zu{U=r4$Bj%UiLTx~oEuRpe9D<9$E}75(e;#;%fsfbt*rRtCJFCJ z%V14xmyAy1H13f4-Ly1bwVrw9@Q{S$c1mVJ{o>g&lY!68qYAa_lm8eQx~!iBiLGsq z?oWN<2o4r=jyFPjnJ90W?Zz&u+kD3^Dh#UHtLM?8r z=?<;6F}#iXm7-R|S*Psrp7^o!P3*|7ag!*ys1t)c{*lfPr$*AZvHLg$r7fGb=Nf*a zm35}|Ij~qss;IgB57W9*eL61L+>SqE^y!J?^k8M(tII3+kH0*e!998Pxp-sJofK|501&j& zhq`u`7x{=~2yoHQGX3MEYKCVa|FylCtU5z-ocmL6j*k>=MtS3Md(>?H?1f}$etsVl zY$bX`=@5g%DH|CK?kTQ0j=9@kfIrSM_ERiO@kg!)>6X&O?zszd%RU%-=={xbjbMk$ zu#T5~d8EdWO`Wa~N3-_O0=n=LS{`!jQ4`&HE5Y!-%=6HDQ{w16CsE#`s0Q&>vfl(*kSA0hpa~E$^SdKHh$R=&D!emSE(wK%}Ef0u|@}Zl|_F2 z`TIdmu3VHvIx#Uah~tBATz+teyl8p1W^Ws_O{4pdn$rgBEJ++UY5k z`4D#T$(_q9>oWWER`}@~S(PaK%5(T|LV+1rAq;E_r9_kqKEQC@j#ow#n>V-Cekh|z zhjLtsI!12Zf3kQ^;1YfB)+m#(T!liHrW%f`LfP(+3j_J#Udrip^^*L=rZpL|eQx}{ z1uD2TUApUh-hD|R;~_KAG#BHsfmm{?l`i(|{)5-}S+)t=n{hi|9;jIm<7GWpY?(3R zZVJP|Av&BjQhCGficx>-oVb)ngoWl_tllysG)r)p*jbfm+c_#vR&T@l@OQqQmU_7`!8)B18`IRq8YCL>M%b3qqAqIrDuSz5?sAbvthvH zgBD%@&3^hG+r1=)+F_pAql_M1Kgrh@zcHA+9vr2f{(iHJe#y@t$NC?s@%%m?ex%Fb znPu>JYQ*dR04d48_2cng^DgeveLXul)pPh_#<$P!LrqB}<-I#B%C+=kXt~%0YmIA#l1rE=<8?=nCY=CAp0h2b{hr|d6IZK zwL?rRBF9S&W8xzt5Olpx*4j7L3#cD&Dlo}}75~2Dt3{25VSzG=Kg}W5vSOLBB*7R$ zDKpl;wh}Ly1xsJPnKWbRs^icQLM7)R9d0s}N8#ze!7e*c3B zSuqY%Bt@857Tu(i<+5Covda=zig<*N7EkNDc61>4zXZO&)0Ae$qL~Y#nOQ&0w$Cxq zz&1U{QQAtVOWfd^!%ZaH`EA!}HS9G*!Nl10_W0@u;>=+ka&NXfJ1E|pon9}w_QgU17j?<{eKL#G`~k)#A^r#JHMq=t=OGW1?1?v;FVn}K&zC)QXyar~ zP$`$U%o}c)-{!ioG}8Tj;p@b2k8Y}XjVgGLtWtnQV{j4he{pWNOYPo9RhO)!O{^eR zaIJJ#8J46~e0MbtBe7Hrnab%JmUDgjvS7$c>2C>dm)aw5bIKB=&1{t%#4?h8vD)I9 z;VU;1Gs$L=Iry1yIn{1w>Ox(AR&Fuy643a?26e#)ZPq1{6g56^luR)F;*H3r$utr% zq(vKhWFld)gZ1dZMIblMz8JD!8B*+`?MpQ_+XvdZ`UM9E%b7(TJskHdrWk4jr#lNB z^Q#4~tj9W*Itnnki(%$m++@5YMOXPJ$ChJemxJ$)ZMt;djVe5m<)eiaHVut;qXMAw zdgaH@6Cg19vQnI=Ify`M#4?<{3c^I-jzQQxOjw5pVaZ?(7osR>;6GOVH^)ccPzbg{ zuxC84j7H2COI@w$Z+sxfKw1aL9GV*TGYC7oJ3Hs3AE~=Vf4Ge!r)5iDM)9*}{wKNt zfLBvBd`R(x#1T!us-5_kEc0K}0U!OWrl3F4^-#gx%|FqXqC8raNEJ@c`#0_2E4D1! z!{R3xR1nZ+6bux4)`*5EYW&hipejv<(o^E5FN&|U=^ipy;iAoxrbx17XV+k_)lh|7 zLFhU&mWTj&2G64W3?w0lyF7EubH_z$keMxYYJBuTjpSqEH$i(e7Ly>LZI4U4M4slnJA!>vt6 z%%6M;bPq^_1Q>zdOhpKfQ}-|saopkWLYyanYPqe~Rcb`jmSZ>eb#vTFsDhXoYoeMr zE{8_;O~0`-e0S4|m7)HFzWHjvE++2v`ww3rVx{BMS_9JLd2$nnciw1nnYI=4Sh&O3?~)v zc_u?h<&XO-0dSkL&ipgOiZ+Y9UjEnx+VmJ3pn~aVSeG^f3BCTdjwQeDJ-CxP=5^0` zPC8kTQ&-;1yL+b3+ec|Y@IsCMw)NiWD$7D%el|Y2ufgZyv0cGCsCSG~Lo0a3hJTo+ z>OxxC^XJx}ZeHhxyR+$uUIS}dx)9~vvhw01w9y5ygfk`sKkP2(96tbLN;6bSto4=i zUcgKWE;MH)~9dBc~`?}&|pO~aWjb<#B=F_1XSkW=6{W+V8&ofnI zps>=Iht$ypy3vT!NqiqJT1C|tEAOAK3fBZw4f{D-E7dTuk_G%|U$-?NeNqorNm+o_ zt1`K2I&Gz)PNbNJ<#I9H?Cv~)h3p7TySjbSm3JXApo@NZ6FH8NRasnJ%~M9(=q!f% z!e-pzq|i^mAsT~y%%0?}iA60l(?o;rCvZet=q!7ZfDa{_%Lq{FI z+?o_wYzYyH^U%&@AOS>|;y5Bx^v5>48g=(9*!tCaQGK=3iX3}AO-^MoO5IrV; zXOCQF+W%m9Zq$(@T2)PO@qtbQ*TFyBRh%cUD-&bqh^EQQO+GIO&s2iBQ1uMv<=Osi zYwYV;pT#7b9vVBGVx??qSsq~7V8zmv@!5b;^(oloA}|lChRtaf5t>0cE>Iz{If6ot zX0hZA&%ulsJ7*v#UNBsUdKu5r3Ww}(#qy)A!<;z%d6kYIZ~L_8k9t3(wNH2?tpeLb zv_>yIZU*1iIxGWBs87&5q3=QH^hT7b6NGzaW%{n1hP&quO@;31(aih{reqHv(ujhb zF*MD_9j=&QCsVc5wR`eafC)zBgq4J%cM>O#Z@#Z#>%0HS2h)VaKxgd_1N1yg@LL;G z`}s^<(`=dlrv_!b3L>XQGy8-B;@@RKP1z1JOZ9OyW4Lhv*;AT2?Yw|{egiz48*9fq zp2+a#^cI}4U}-ftncQ3QMl+}&(IXD9#p^aYcSEfeOb3t7h%en|nyfJ2A#mVBEbNn1 zizFccNvn)PwUBd7afh;tnZ2A%6nll=e+jsD#&zHCr$K^mqiS3>xXwb= zp!cODTxi%Xnjk`LaFAqU@d!=dC; zqtRj6r6~Bd5bCoTw*B9u-@I&CE!HX&&n)Xx4w2_1Hs&wu-r1*6e za(gQ)&8EAW{zp#-e&qPw){@B``PeqZKvw*whB=yb6*eY%hq+v~{w)p;H5}Tba&G?n zCb+9xWW`s@c_4q59@@RJ_wcLfsvF@Qed*%i9pC*HznbZ9xSmL+x*H8P85h%!Ffl&t z=gEXUTFo|d^d~P}r~3n!q7Rh9hF4(Jly^_Z`W7{z(L#mZ%E2Wda+o^>B zL5m!_0(=E<<8-~zT3VX<>FTu$4lY1r1bwXt+;|pcPmGkNaQX{~Guv2MUS6_U6NkCv zA=x)@R<(hA>~s?1BVV0+bc`sFz_8Hd8t#V;Jl1_iaM0hKe#VbZ5hx-MA9d`W_#BfgU58)OAS?28itCgSd9tfJGm7a7M%Jn;S+ z$CZ_$?6R`_pcq^6^z2Js4A)kQ9a!VazV@9xBgOvk%zf18xD+h<;;q0@OT3PVTpyo5 zVOiMR-G;;R8pffzX!X| zYZ-G5Up;Tx%R+pVL8;?|maO$^*bl%Y37NBpe1^yDs`!P5aLTn}oh*((l=nHTureOJ zQ*O?Zm1cj;!)sY;$zl$3Wy8Q&Veff-S157W#q#RIqBW)1H5{#SI0OJeeALk(?!n+y z7B@jYHf zXrXW=Dn)AZE;jq*6WpEQc7ZqescGzlYqRRPPHam96mrxQ9zFVc$x*64-c^uwTTC2> zmt%?fS`1{JCN{7@ip*Yv*2f_4_S`Ezmk`L09;=J|6lR5k!Q}eZ+7){oOsM_9ULTD6 z_^zuX>k=Ac`{X=vOfOiXPX7r4O{uk_+6f=iqP+%to|_M4v2omYz`=^O;Z^e#88_5b z4ciB`UR&h%%qQ!0V6eEZflRLrt8S|_z~o_`f-jDbA}Xu*Vbf==hmQgNv}_n=4XMW@ z#!lq#6Pa<^c#2>u=~MN66_kk()F$x_pncaoveG|&q5~`#=W~TjIe7!hj+wb2{oVXj zL4dg>aqxkum~o86RUOw9D!q1oqUl<7)>6A!<9XBi12X${jE@y^`X{#47k&?q)5Jci zumu{D;@oP8EMMPPtf*q>d*ZAmt8@icU3Fysp%!mI6c`-!N@d=E%%E#^vv*25k`&5X zTC2CciNNrM?RG#5jzOdo#j@=7bj8Z0u%D$w7%>o^*=?`4*h*@EW}X|3Wu1Z=OTR1z zEUv3zdR>`dA^O?c`vzWskPZ85Xg6aY{!t`0#LKt`&OHkB+i_4mHXU9kRfe^Ht<*jW z_|#p2YDGlwxikfxevv3AFFw(vwndh`K$3mehXuQ!2&#}#xle}+Ljm^8SV4SySG&kW zTxH}pNkb{&1n7qNYHIK|irmbGqK2~L1yG@Nzh6HS&T9Ew+59?&dw_j=1C z!MQ8(tQdNI_Wtu&yQK-CT}(ABynbMGn{VUcGj3xaxR)TsX+_!0`6kwW*oKRyH8gO` zSe*WYS1ob`ILzb2mFGSCsQQp6?2?B&`W=#N6_vptA38UjmfMl6b zG#rf5zwBZ?D46M^)iTKwu_iY3CvNSf`+9ZNqrFP3AwtqpKk3N;f=SY-(aoXh5$5c} z1C}d~C@J2?%s9-J1~$Ol5tLd zNi61GAj=MCSLdLEfB%lT+p_AkFrD_&P(V@>FEc)@mtx;u$?t-RG41w4{R2_ef86N0 z?ETTz^Dz*M6m$`_B;XjqKzvbhrv8pOUrQp2*vH1wk?l5&m-2tFWQsS9r`WkBJ zlV?H0-XSK=PZeZqxZ};~y~^zDuQS%D^COiugDnMJ9J=M@GpuPzT$Ln5yz?z@;(die zjVQX)iskwAIfNHy#C^S?cvL0SwDbNqf;Z3lCt~-%(WK_q6y5o*S+9qE)wemd3d?3k z@NAl+R5w0aUZfKEG}r0$8w|HT%sBlNIFY+GdDW` z`kX>{7R@JR|Fh#tYb=nGX*Z7(dNbH>bhGO52fI%Q68o;$YD8~IZD8~1SM^I==yp~) zDjo@H*w~M1i}pLjB)sy_5Am0Emt3BHrn#%T#mSDIUc1w-P7R~W@3H_))G@!60IBUY z#VkvibB*5~Ce|C%x%w|IT&;=~*=1Q(-+c}bT#o2^5S1co&pozZ+{V5u;%I317Kt-o z>7!Y%uxF2!-%2pa&K%RkTYUHiYDm=={;Rubw{+#+>;{XzBj4u@Dm*mExm&w#F_x4U z9T3KSj(2+D!pV)=_*^IE$WBa-aZ#h?62wo!DGcObTape7o{wb9^?4HoYKz zm(cqnUL?NDC@8ot43UnQD~p)HF_lO&94(o%pFL|ssAI>vCofkhQAFLzY|SM^btJ3^ zV(ELD$Juu4bz|mbL_XX}byBx5ye3z!Ej%e#UY#o;L=-9JBB0#w5wET(`mDv|Y#Ln7 z-y3lhZy-B$P}kvX#!skxMO;~RJ?qkN!0`@0p|yv|8nuDUI3?`_8PFN~k78n?PyD)E zgB`=7;d25ti{{C>yGp}eupu$E8}0F62Q>MDIp4!x@_X%s z0?~;7R~t`TAvm4n{+*@B{1e2__k>P3_wjS{zc0%?WufK4@3aG>B8!BH4*Rc` zz4?E&<1=Dyw~0tnuJFf1vOw75;#2JFbY};L&4LYN#SQZOZyxSSl&RyRS23KFHs3d+e$s3wpeydrO!&LWeSp!;0 zu{((VLz0Af^D&+ZPCf7`en5VgvFM*b*YNn{BCE}PTw27Lp;X{xcJ!3a7jd`q~~O6S^oPPhSR~3ysb{ zO2W<_*u8othh)+_X$Bq73{zAv)@l8zL%Tg+{UiG*UtXnOh#2Z1xYjVnPK+VxK;pNm zndF{T)eEQjAKw^AHNz6F6T}o9IC<~r*-#jS9Z+vk?{k$BRB%*T**McJ{ z6`wa{>j=2~)`sAlIm{MsDJyNw61kFae2D<3e<7$A}3e&LzN=$rZ^mraM( z5=otyaYBG9teZW4BShKlVQr_t6~Jrt0!a$P)F)g{qdShVXk(!ev^=4E&S;XTX1!_3 zIlF{0tN|)ElBmKhZ>#r}HHzxGEGL99c3yhOeZOl;#E!GaOJ@t62cK|BJGR?e6l^^l F`9Desy>0*i literal 20604 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 diff --git a/WebHostLib/static/static/backgrounds/clouds/cloud-0002.png b/WebHostLib/static/static/backgrounds/clouds/cloud-0002.png index 33f09b19ce8615db5e1849f8baa65c2c8b290be7..7b479bfe7b0b38253f01ee99b9abbd01fc0c6e54 100644 GIT binary patch literal 3922 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 diff --git a/WebHostLib/static/static/backgrounds/clouds/cloud-0003.png b/WebHostLib/static/static/backgrounds/clouds/cloud-0003.png index f665015b0d01628b726abc0f10854ec70a55e620..59844e31ac42dbc5717e3875c7ae76bd2c4e4578 100644 GIT binary patch literal 2889 zcmb7GdpuO>8=r1+t8DH{DkZ-#D`l}o+Hwyy*invLk~WItGL%rtq}B@cvu@Fav@>$# z5(l{rqar0@77a73m>Ji`ka3xP&#<50{`)(h_jBew&->h;@B2J+=Y)gR25B{E91gd^ z#`+imhg*fi=XeZyp!D_6>S;gpPyL3>B>*#==s{dwtMY|F!J)R(6I$ zx;!4DJw2~=|Lt{XD7WxUN^@odQ8E=SpzVfeWF0>=Rz?|c46Ty~LOSNC^Y23?CKb&! zKWToRET;iwcnHu#&}k^WQW`N3L_VI9WmVh6+M!R#GATxPU@2g7$JfyqJ2aTwa$uHx zGT79AJoB2@DX$gPDc?g8zQtU6PzW>odGlLe7uC)|VA-5wq(c~*to67{aPvZ8HjRuq zf^7tm-OB&v(TjB-hBP?k+F~@dfwPO{H$$q8IaTa~50iTumYJJWFbP%OKywmfZxFEP z9qJ#*EDNeGE$7~vtJ3oo>m%8lK4hPDC`&8QgV5ku8De@w7!f_A?ernd$inZ2j+@xJ zG-D~$h3wCQ*+LnlcQJaXV5j9Zy5f*?UH{DNtmv+eG^0LL9hsWl1gTCazpVUfBt;Vh zcZRPgN+Qk)GQ?6*efDcbih(qPS&4Ym8~WmPWQj>wT>h;k`97Epl5u7$OlJ2u?nPnx zCgQ7bb(ky-g8mQG(_rX|F4;&D^Wat~cC#EpggK3dcgw}Nmup)^8xePh^fST5o@5?QTI69Gm5;xgx+GRWnHJ4%6er)j!hMgH|9ndE&7gaCbCSd495VZh_}rC zJc(41)a{>-&%??UgnBfO@*SKNPDxx1v;Dec4>pT&r}2#W1_z-(xSvAdb&`x%6NZrE z%+;6U)&6YTPSoJJwitF~oA-ZC@gYa#pKbFMC^S%aXh?~nN=y1)d{c6;a2 zugsv4isk~95Kc#El1SSS51p*|!h=nZ@SWAY?AfPF05o)*&Xc&(l`}WLG{kLy{>GpCM6pt8bhaN{FfW z(!EC&LyDn!`2K4CiKl(94MSa;TJPyQUB-e?`}%IgUqE$*rpnT+rgotLxZL;|5eaSj zKytSR=gs}S&nSgu2|D&64Ek{8X9G#%Qd}L*6+7zVd~4dmU)a)wJ_#Dq@MO_aye@xJ zL!iYy4I)o|{+A4a`Z$j0r}`jYg$f{C)1-J)r=gif=Jk0Oee*R&{LCKKR+%`NdbnKr zVb39BW0h6JNvlRKHCysL-P}Fb{f!*k))|F|=GKq)xn3hb?%Viz5})%UbA$!q z@@-X}LwT7q4HrATd=Ol@b!*&}-M{>tyUdNa4+@KTm5Hzgn>%2~{*|#9`p%a{71V!t zHeU7W*@ffA+p^SsK>F6DX+-aDb-rcdC4qOmUGY#N2&>)E!+H*|h2I^_tVIkjw1T@f z^?c)N(fJ2Gk7iO1iNLiB8(EE^ksQauIvH)#d z&5~BZhqep^qwtO`cl|XOFWBv%7u4om7*9LsH(!}GEBxb9Z_Z9@%dPI;VfSrlWM_Mz zGGds5CEqSeOYM!g8Q$&kL3jrf4}=qLVlIfQh()~8Isx-PZ4>=x)}39MTUdGl;QBQA zaTzs<)uY^VL=$-j&$$~E(w&+rc4{|4RqFJJx# z;2vkAfV{9yi^qzYrt&~!Wx$_l{UxzGa+=j~z~F5iNKgC1i~W0KExufk!?HF+2U9p! z$9tGbO@vJiHmSQ`rR25wLP`q2#;3?j%I)&iQJW!};#c3%!ordFT)ubOq3x$Zdt?(j z5TUlR%iWIs+~Wq~bdyc2b^um^W|7C>ug*6?DS!{`=52U3;cRKV9kAnSb#45)eYjp= zZ}*w97qC=nbR@NRRn2JS_!AU)@FuKAEfuD8k3@egtge>3KsF@9QjD&!k6@xCK8+~h zRr0+RC`Djmro!Y`EG^O;K7*v8Jb3(zeH0pNSMa@wX{l(n(p$?PIgAcF@V5|WW8rWN I`N{Lf-{*H16aWAK literal 6833 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 literal 16797 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 literal 18888 zcmeIacUY5I*EbrS8J!swL=mJbqJT6h(u;*E0)o;@6r^_uy@VM?MCu^Y2?(JmRhrZg zlqOw3I!O?uh7cfxKthsp2X%bjbH4Yv-t+zOe%CqIyZ#_|+4o-S-h1t}erv6L^X#6! z)~Vk)e+Pj;r*yQ{jXK*gi1nv!22o)^oIyrfx#zCH$Ol`E%`Z&tWjh08rc`0N{^;B<Oqh0yNEBapFNAlfk zyNmbRwV=$9>W~P3K%W1h|Hcup3jS|o_CKutKQaPsg~$ItBI*C1#UvEH(L8*=96XV} zXWA>9w?9h9flXsiPrvn!{v}2u+1%F8-1Z32X8GnVZbs8KUpKUQr3EQ3wKKB(DYKkJ zaHt%mf511N$Qf4AuhpJqoiDG2G;b9B#Wm}Wh!XRCh_SPP4uvCo4qcO zO6CMigiZ`hje4{79?Q_%xAm3W^$8&Xagk+v`?HPFU%_ z$0t}N{o2U8g4P>-t&@zl&Y1%@-Rhr#9?c$RadBayuZGFj{{@hWV($*AzgQc-2-n#qobmAg6iV0OCd?y4y| zE>bRcF-HFHpMZf9ZF-?PS^HNXAA$wNmGR~E*=xAsU~-C_r9CR%#xj;xzPK>-GRt-c zd%Z^$uS?PBxEY3-8#KivAaJB=g4zD3zHU!D^>vj{ZY40~rmRUH(nmxQz7W99-mViD zj!;c?u8f)7zv0ho(0YKH-^3y8Do67zyVi=g{gi3jVAh5D084i{k=#(>8O#jARD*64 zPN~d6$MKKJ*)5lPvWLvzd75FUl<+cI%FL8hB61Ig-rEY7%`5Mj24g#JbEnaE!}Gk>UW5y_@sv?6{2 z&G}5X)P&221>|{rRw||D(~V-&(uzj*kv@Mjl}yGF4?YapZ;b&qOfB3Y{!iUoKWvfX z<*d>XbDoZs+pg^4_79pDR-@o!<{-`3<-vZ~aX^Mmw`#txF~G=p~c{Fo$p7-b+bcf)^4V`P$iu zjQ+hf-u|@Gx+sv*@Q@s}ZdpajRH){P0EVJ-L;~?QOb1^Vy}h<|e4&)rz_w+~Bb_=w zEg#H9H6fT~TE)H#F?B6Y#7sX!l?UM8mM~ULMB{kl2o}7*XgPI-DZHE=krq zgqVVzuP4&5s1-zT6ONnuv_1O8+KIBVuFVaXQpKi94Ouj5!X%$QBBYe)^QlK4AJ!7R zF>p7)Cj%cM8f70BUV3p{L_(ct(yDDD!HE?z1;^Be9JG$-gVmR9SR{1}@7^94;V&vB z6_0y2N;zc@jd(KEj4JW9@QN6Ca#I5`?gF=G zp=sBM+fBvsJtYR-+3VJB$wFKVj7^ z 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 diff --git a/WebHostLib/static/static/backgrounds/footer/footer-0003.png b/WebHostLib/static/static/backgrounds/footer/footer-0003.png index 5fc31d1ee970b40fe59c1a5d42c0f638b87be42f..9c4d9a4632b05dd7b026119103058566778fa2e9 100644 GIT binary patch literal 16436 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 literal 19166 zcmeIaXIPV2v@jZ-QN}?;6zN655flXJNQ;F44hn+OOB4m9_g;eI2uwm5q)CY=y(7Jb z;LxNSA~l52dk8&{kmSC>Dd+t7<~jHL`0jJ=bM}vz{kq?^)?R(By~A%0^|aZ3 z0qU<6V!IMVGTa{DRj$?sxZmX zt=Fu-eDOq?>t23PSk!3V6e&07ZWq|Fnv~)ZCD{+3shHKQ$docOLkmB=l{Nc3{XBF+ zKiESAAm@L_|3wZ+ssCR@_P?n9hj3tO@VoyZl>Yyi%rM9!Q_-XS4UostR9)M&FNX(= zJ?SFbA6#(CZRgrEyVS}XB+G#%VcQokonbDWx>>XC`nZJpuxDm^FH75kTfN!BPstD$ z;0&Iu=cHl0+8yuJAg;L7re#{tmDp>9>9cYUlE90)S-Tb?Ob8%Q-jwa_69A~ipT5Cl zJ`2nF6TyFf^3XIo&uw*G%N%~=lriVTO;Tr^VRk#`Sl>j`xltl}!T86T2wOxknAm@Nwh(W$W++4-{5QV2IU zaGl!cMxEqx$4Sm&r0>2x(`|Ap7xK^FaLj!IKJpBBScBhHg# zLDGcZzhmh*;+IjlQ=hy0t}tuvlkq8!2R^5vW{62*;Q}{>|W*>0q8s*1w+q_v8tPkT`*^J(!n&kkQqbE#Q+Z@^#t$ zoI`2_q(+#eQ}I0j-qgk-EsYR$EkwEYSLALeC#t{T9n%*~$h zU6D*vqc!-IY^G_S()6-PC?}SDr5amgKbya|nm4fHdZrTl=voCnw(`JapkplDw~SrI zVAzisT~i7ny*9{=y9$45MCfp6iwB3wjr{sn}E zuDn5JP169{w<2wgSZAfJslB6D3U_#yHS-QtdKB)7mDm_~_c%)qR`F?b5;S}TD;-tZ zQ4>4W`h*yOzl-|CB7?VU&^IR!X3;Lej)E?vu;)(G)F#=1obHwwD3`pPr26?0m}o z$&xnOw=~&%Ssxi@1|GteHDj)=y6(iSV$i6-LtgJkQK2PQ#uh`C-$yDJllUiS;}+%U zZC76*r;N~peV3?6nzp_Tc@^B-;kcXZs%`ImxISZ}9E~X(>Xap#a5M^k?w>`K1()%l zt6^(C=H5M~4DaR`G3Y^&&DOAW5z&tLNZOVf)JQH`A`G}OhOia}*%Z6AP-2Mmv-RmoU;U5I_P>iOA_wb*WbQiNj)qYTPBgs z?5R1bO5xGCb~As*+r*-K3>6TljdHkii>50yzKih|#&0@DgZ%AZ~r}b)m zKae+Xw47x>e6dbbiteYzv_8<2+mBhaAV3@o+rIp#Bh!NiGwnjzmf2m%U;#53#%%4u3Mc3^ct5Ee*ego*uuZ<23YOxd$~

    hveUL-7vxYjA9pP|Gw;w@QMekObCA#-Hp+-04bd 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 if87`cT4I`Q43?n+=caR!d2p*&p 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 literal 20304 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 diff --git a/WebHostLib/static/static/backgrounds/footer/footer-0005.png b/WebHostLib/static/static/backgrounds/footer/footer-0005.png index 7b7cd502f36c69a79b4efb210c30d7b87236998b..58093f7efcf25cb5383caeb2e2668daf03841da2 100644 GIT binary patch literal 16769 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 L>pJ4vo!|c#MTA_F literal 19681 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 P0?A1!NtTNn|Mh!uV~L znXce#%&J3hJ#NKrwYIEVwe5~hzeZ8KvZE6h$k#hKaL{?2@MxIt+B4LCcf;KWet!M& zJf3Uf@7h_fctHKPIE1dyig%}Rc@kipW3VhnlSNr8wtf@w0e6btcM~;^v*k>2jFt(U z&K4G}kNHi8;-C(x39)F?kilahgsq zu&+&@gz6Cj3){AivtCS2H_w{ct|1mT(3^Ppe7CS6qsD$_YoHKxa+euzF+Ke2FZGaX zJ&S{0^%!xGR+p(x-QB{eswB0FrWCBHc7AIMd16ELm8=U8!ORGQ-9A^sR1Z_?PUvxD z&a4?OdFVP_oo24l+8Enp_}%Q(<;`%Lv8nvz2C-zGa?P$#>QU_ zgV%mYgFxKc3M+2lAI*xnPCQ|oIB1+)ZIC5QaejJqqP}@TH-EB1=r0mvjD5~6+*GG8 z-?9Dh1@#m`K4b40vKmH;+y$2#3XT+cN+h2`@B$*N>NAu>_3$3rP1Wm`3ePf|<(=CI z^cNfP{<`+tEKxeksf@Pzr)G#Tt4 zq#quDSGFbkRPSfBw$^#sdSjnfnL9fjMwG(#R$reX;hJc~V860OKchRP+jDVTOG`*| zEw|2R!1Qjtkoi)Q0Y-Wx`3T&A5M4OAS@@i0jk)8=v|=0hF4t)X;)?cAE6Z)2XC{G~ z%(k6n(5HcVSg%piK-Zvh~`p_JKP{@uxo z{0G6-*p*m0ynyp`Lae7i0R!(m{V4R;HBuBOhpLFsQLvwN4yvZxg8x>!KPIQvA~l*d zsl~xw^Hsw62Qd!y=HZBd3P=T#CgEV-RMgKBYxd*2@Ik-2Tu2T}M2D&X}S+`VDBLzkAg)wRc{G0YH*I5qeKA!YDYH}W0q3JuV%@UnUX zY%ss^66QNr0x`4RA?>~>$(c3pu@T^DUQ+!~0n1d~lyGM`vCTg&w39wLiKY05=1Fkl zg6skoj*>fQfw_z?24Z4$O3Mp=?$?O32~%ca7H7X!uSI`FG$`iPUJ8(K{X75ffc(X0 z$lys=THuJb{gU!IOcHACrCaGmqtLc3NfoTh!p*<)qoX&oMAE%+WqE3G@wTL&WAA{O%^-Q|yM9FwBWEU&w z5oFO#VH%e%=gxS!^*Xv2HaNQ?cnl!7)fiN{`NqRR5?~D|@Q;n%;unGSMs7R{X{0OP zOtUy@>_nkPmV;o^B#4P@Sy)=XpF+PL<0`gKkzBXD*kVo`amFJBiy0b2KMAz2a{_8I zAGnLn5V0@Hc}Kbu2?!U*<`SDb{*EGM0})T70_P%;gmW7vI2@8heBg5Drw9_w1Fvf@%&qcyb-T2ra^@P1bZd__+lV7(ur6vC<^wP2slIoF_6s8A z)W=a9eKzuWK-eV(;z%M{t69Z#s^c;GzQpwtdHLSYA7ND8bGJeA`ivmf4>xSz4P2RJ zruLxM^M+NM_Dj&o{gJo~9lto2I@&vt-B$wk=8DTcz%)=I<$C~N>NpqXv{m+&fVp$W zdFp+4`+mNY#gA-D!TXo|gqj(lcDZ~2(BGBCb~U(jXjCG6fQ?XBGgJM5C0QZp)>t&J zW9~LJ4-GKh<5le}t=kEf!HmIj?6^UPb&FPlLK9YDCJNz1V)johm)i1bcbj+YSQ&7H8nzzFDzicc{K zLhTCf0Pv_#Rw;bL(nCvtNnBAn_nRcgQ}{gGH24G^-uUpvG?euYB}-^1#o~1oXJ3rG zmfgxUYOLCs`t8O9%G`?Ck&@1C@5VxO4);TZc*Y)ohY-cm&D^rcXitP(>l7CVz|wMn z)GC0}EY#&cG1c(fewu~j|2qDW{NEY>==ewSzctH`Ry&1ZyYh}Iu{fuLK{!T&a-ZA- z*WB#=3g=lfv%EQF|2VM#87uyAj}OkLVRDlYl#^lrO}<+(*Q&POf>!a(lKPiB8w8zpl!{9E2Z?P33@rSF?yBZ_ zUr6)rWZG9a{`+31VIO>}X2^tGX(F1k)n^+{Mg)cLAdibRGGE{J3x476_thXzMWw!m zO=1{EwB-c75p=3FHwxc*IyMk-r@wTPCGw|o>w}hKIe5#VTuRgS7`$n9tQdXL8HZOm zPDNApY|B^8NXemf6{{)5 z@{BUH?a_lyuI6pi9Q_Nyt7wQV`LMMM&tR*1{PjtG@|1weEppVsOsjJEz!QVAi{Wh3 zA(cp8kGde6nb9~tr{%Xd^IsS0j(%{>V~jO$0-l*Cvp>r4o_jsl$Vz9 zmR@9aQ>$OYt5r6u$5)|h_1_YgvGg(D#7=&U;Z+XjpP*qpqUO{_n+hRykd7Y;nX&B! zy@+TkF-V=v%ADHss)8r{aM%xPBrae_N%p?dAS~_fXsKz&h|QOyx7vY+LU?83H?2^( zt=D?xOpsC)zH>jC+|<{M*o}hA4s8a5OqEb3V5Q-gfkk$~vEU?m%bPH|><1t?jx}8) zEplL`Ika;&5Sx0Kry7o@>s;I+^9e~DIJ-V-$j%J)exw*2WVY#VS1e{~pET?fU*}BGs z{m4=I8uXusG>p8|1x6c)F(dD9947ZmL;omhet&d5WB1)Om{ zyxHI)CesGvlyD*G3&sUKK@@ww<8<+e?NZ4+XObXCd0)v}Vb)P>NX5;($7OL-yNIiK zMj6-jrNFM^5qx=WJ)+0mZ^ik-L)^e9o%d=Ll(KZ!dO7ym>a^SzrIDE9hTZxiLF0N% zo@=S)%CaG33u6fv9$1w272_z^c-dQ(V)}B$N+a_LPKO8bxo59&p$QdI!tS7ap<$t@ zp`jw4uh(*YAx0sR`Lo1_dwS~BAem8uMGW8i0?C|YH5`q@^0nya}sEJv4V4GylkTV;C18j4JCr zUd2&B;I+x1GV~UK{i*?^7N_OGJhAv;cfynK^s3b$_5F7DukV;x&vx8?KrOxRbyBB2 zGNCdhpRR)^yzaZ^_*%kd0M8qh4Y?h&pgK0bgL!OqybJ|uHKKpe(0%D9ePUy_Pch4s z|G4K+RHjTCVW>)K`zq3hfd)JIY~%(SH7eE^+TgXT>0gC5EONpDF^P@qSaGEx!`MY{ zXt^a(^Fp3WZ=;zsx_8A@A)v}AO2V@}%^y1K?RndLCE0?)6!p-fKZIN3oRN)^jmoH} z_1CkR7(3DQYs`wOXN6oAUtR81$tdAx&to2wSvKUxOvyOa-V}dg-`YcNu=1Gcaaa(R z%mZLGx;Xxk%6o|04!J64Y`(;#NkKh`ouY$zv3z?H{QbRJ=cQk+2aw&``rV|0TziI6 z$to&}=EDSdQua@4bq-LE9i~*@0=vv(4}w?$v3f@fZvz_S*hBqE_tP?h$}CAW5dFcW zSn-VmyW+&s-eddE^Lh(&N-9P*0CqB|Nke(HNMHq_S;n)l?wN`2>|AtXFjEW;WzP5n zBD`Dkq_mGOXCM!4a8l=IhX5GvQC1*i#7>EFAXwU~+(V47HIug-Xq{Ypo>G60l)7ILSYCf0s#RL z5LOzUO-hB(S(ZOa@CI09CN-H&WzfwH5=k)(4%^cLH1(MewB!}Bbk_4Yff0kIl9Hit z2bjU9WgvyTf=lKwla`fJ$WR~&paFC?3&g@#uwa<{{8r$7{x(ExUG`URLlp~j}Y z6iOkZVi`;t2}~T7Mv4QV$@I8oZGL_z44uU$(a8YD+tUIx)qzT-px`h^XE>7V3PF&a zogr={Cszo`F@_95Ae`YYNVizPk%IVfy*Go*F_6lz{#k)h7-Ue!N;XhPm=in};ev#? zIg(-_E+i)k#0`#ggE+gv;jRb-4C&~G{83r}lM2>2De31@4OUS=i7-bez=`AnK-}CA za0r|NS{38s>|xaWhQ@?~*BBwBJ3z}g2e_fb;;kY7J)4>eR&66cu+$7g;(;fCMmE5lv} z_-Q_vP6fjO+F>9zY8UuL0GO<0<6sC!(3IuzS;i?g$%^Yig#!$Q5OVA`Lp zSq{eXlI5wezne02V?&cc?V+;3vPpa1E`xvr&+n3`=F5ErMIt|Qk8CI~fMW4{nEERm z{cUV`CYBoy7{dPI!g~f|F=E+V5)*ho4ou5S3mf_(<5{GXe{8z56B6!1ae_e{U7W}e zN-X#lLk8dwBoKpej)B2koylO*|AFbQDCd=)@gFh$xomPgi5>@l8!6P{h0c%}^b~;k zvs@&Tm?V(aAYD8yVwnt@IVm|giAr8(F*JovdA=*Hl%YABVg9V?BqRfIFIGeWnAD%e z?dNJ%Y%u??RQS>~k;pL!SgfNf#F-2Sa~0zh3n4khxI*BL6h}BE))7H*bNZi>rk6TH zhPxrij*c;q*jQLB*m}Vx9D{HHJ#s@(D6w!C7iY5T3!M44ThBk8b3YO4Cwdw7v=`F& zx3lZtE&8RQ|82YJua^6NXXv4Z1Lm_H4E_7|{OsBLSxN3TRQdA34fSh{__s0(JjtQJ zqruA#3nW)J0ETph03?J91V(lOAV?Q7xaT7Q5*&u0IFa4R2A&$EG5)iM1p{4{H{B1Y zY{QQGZ14S*?FsGXu^g@>>Ppjp+0f6!`>Q&Z0Y5wNgOZnrz_$p)?aKQL_^|Q@1kk~5 z%>>_X${7wEBcnH`G2ZXvQ;Rf1*qWODwBE;KX?-F3q8@3zhJEj=&b3U=Czk6zGT*%o zerzj@eCUwz-lJPv*KhyC2%hudrsF67d~)mI0^{H9MSS4B>dmjLPJUo-UbnZq_>wY1 z8#KZ*dxg_DbnFjGnv^|HTgocSnC_S1qcD20gdk$@z4WOW!XoW}Che+G=$FD4>-0rd8@Xx+B`=DmoP^TVcfF zU2CtoubTCurpc$(6*F~wU#6CKaQrXY#2GtrOQbFQ>Z(6&^|C4`&@oXv@gKN(wjI=DkOU$GR5p zb$LvTJ<>g{d^aCgp^w*Cwq>f%cIk0TKD8H2<;W#Mc}lE{HGvGA8KZHB5vn&WAvhZq2PabG&7I48I_ zc;Ou;zdqe8MaP)PVR>=QMA`HZn;d0;t_s!Ic`iu>sr0Sp%i?RqEvVPcs%i%9_E-Mt$2x zi!w51YfLWd$Lr2*hFv)wJ>=rsPuL%rQP+uHXrJzR{3KYOUer=+eGq+f^42lmj0k?t z{Y9yK+U`IE&I%*qXsw|QDaAxVjOAN~<(fU1%l@Nv2fw#9)nzE?QS(hR`$jI$oFY~h z_e4q*Z7Q_C)MP~8vjuZ3$@;=(Zp>Wg5ce@Z(%3AOe8dVsYVfu)$;1P8c}?d0{s3|D z=%w=R@g3EC%YkeHFAD2Jph^X!ZvGhm#s}HCqOw*a@)1Bbs?4}a)DC~NDN(0neGO$8 z`Gw^Zu#+gJ{+5z>G|fH0Cajcj+V&O=ZaFvU`84ZJqEcwmp0=HQWbGY0h*!s{7K>nQ zue8h;ktr&SHa<%8^5vTas{>CAQ+os(MjIGon%_^8E(tcx7V6@?H(R&6tGCmKCSud| z?$ip=@uhULEaO&b-Oli1Jq;sa^}g_xctfx> zT5`|iTBG}wRj*vkV-M?g-z}S2BjPA^LDL$~ss6+ehGl4LwA$Houn*NVVP>mUHu6P1 z8FUQCMlcnx_eXf_U$f!#os_RB9Vuh`!}A+B=n-y|Tc@?e>#lCEIDMEf{9Rg0FN4@v zY8G(jLP35*4W(bB9823R{VU5e*6v<*^xMCmeS~%3=SW!LK8eKxc~i$wB{rV7AHOs1 zN)J@3pHxRaN;~P*&%63KZ(6fdIDS?v&Bn)3zd_LiufGMm`eko8W4ENiU#dR$Zul0} z9%hlCx1|pyk_620@IC?Cvu{rqru*>EjemP>^9VZcqHkh#_D16Rw_t}fw7HNW{ds@= z4`bzVGOv{R%R37rlN74!sBn=`_YiG%ol(TQf1M$T^xRJ;EX?7C+z4b5wM?b;eS7G| zKGo?F96~!WE^Ih&e21zLZ|nKp;<0*rs_vE)6OFl5Ct;+IuG@-Wt!=qxm6Kk)nIp2& zUkPgqpE>bFr9s`Rq6=#iv3112yhMJHf=i3wxQ9$Ml&EhFS7)*Zzub5nG})HVj1d-e zE<}1|KIEWK^$pwz$&JcUwrUEUnJRi$NtItl<j(F2bvOb#ZVA41(w4Pb+1jWtQu z(lSb3Go!+>hHd9V7*tZNFp3LhXD*yyRBW=3K2&HQoFGjR-l*sjZq~DF0I}4h)fQtV ziWK2h*H3OAK9d!>8f5u(%^$k%SA|n61V!Ex9QXZSU~$0`N?f9LfDjVVotJR^>yN~F z&i2tq_CG+IRx9)Eg@7bUQktLf4k=AYH_IKv@!ITi_GA3a&hE`xY?Xc(IhGPZ@=v%0*I}RRQ z|JI{zmx2@{%`NwRN*0DY9?$18TBg#)U-?+&h0mR=Xo-W!r@wzE?pk19UPL-^DOWo& z@aXA@$l#%{_Nw7H{bz$Y%IUKL_8DRzx@F;j zJ2vKR^*isMKQvPs6bx;i7H)~m~M#+c@`JJXwr@Q4iw|_=d&(H z_-Kh;l_ke36|Nm63)f202D^;6mdQ?3^=0Y4S!j~!w`5Le2W5j|O+kdRQa)|6bmc~$ ztEs0h&Mc{fsAg7WaTF|-wxzLfcu*z0@fVo{A3<{`u$!lViz9cdV?JElv_-&w(zIl0 zGHv2fFrntvaFVp+G*c{RCa7&8qry_guIDC-I|GOdS9d{0!<}RMg9ozZqIq{*7bi~i z-Q_INlLo6*S#KU$+q6zS?x1SN`=U-2ajGEg{9;!feh8phBfG+@`+6OS^Gnwm?X|w6 z$MJJGJ+{M#Fp}t#^KMVII1i-K;p)+yrUJY95cyMW^#e3c!`|O#-Pv4jDpnk85(%NB zscJXLiFoS+5#1H{Tnlm&L)v8x5PJXIxFLZ_#8YGp#6~SZ&y*ZYc|*Uav+Djtz(6<( zN9-N8<@XRx1{m`n)$mb;p!xPd=Kx>tl~&2D z=UbU}q6K!M6!*vBCrcNvKYmm;Hgv;Be#c|XgCjZt5!T+QuI^UmF{Ebb3A?A!;7KMu zFg#Gb2Zie&qKTFJYnvw;q?RKMB%vf6S#Fu=wb@HFOJeq+f|(6?X*##6YxcA60_PPl z(ksJ9gVL=xU&i^rp=_tw_FZVO0MRIrK1kM4}22wn%NYVe}4X(iLY0S*IC*dkvIM8 z`sc);#%G);-Zd<|N4S>eVe=unPQg*#4+rR$7d`US#_0X0YYx69o4=V>iIoI!^GC7y-Ql;GMblM1 zWBvnj20P{c9>3Z{GsahV4@{z{%n{vt;wOq(D{-H2vNJ_^TRGl5`SH^nMXkNCbRpa0 zW(a;`tLq_~yOvV^7hJ)$hWgUTjHwO!ryq#cJ+{Vo?cSng%1_>4h!4JB)mid`$54Ka zkgKqHRkCUrdi?yhv@t(VjDJx9{=h>~&xolPOR;m5HCb)PFC#{M66q!>Kf(1pr^JRG zz+~!)SGmw^5B)LzOsPI1R1tHKL6_e13g(K%g=X`fK@Kk8UhRU8pKa z%*d|4tv)Vl)Y$13&rbJL%fD-56hyk05t(NO(h?%-g2Jyw+TU4dU9UcADTr*w1x}S! zWO7xmeK>47RhK20snUjIHR>bHD%o@Cvdv2=I=jgTAL~w%Ok2EocJ^>BnqSvs`quDa z#G1#D;|d-_pLqCRE?x2)8l)Ty@`M5Z}8*AU{XJ3d{8Evz;ww zB1t3JS|m|4-EMWw1ryaElGqUgBLdY(`;B&Cl&i!U9c@Qxh$x$ z)sFX=@&%ps<#ne%847K6{WRLMyKo?qfD6O1JU{#4p^Q9>IIicECR?sYKL6rjcx z{<;K=qM^yI&~CV+d*J);OW#2$a&_+lbzxn xgaYM^@&bW{U;PM8x@FqBbcbHUZRhZL=6)%Q6pN6GD<|0AnGv6F$NKd zUSkkl3W6DlGK4{XBloV~I%lnW&${cb```Uz@Aa(r`S$aEd++!8TD*zT4Q2)&1^@t< z_4Tfs0>G(fCl@^xCBiyakP8585B0BWnLjv1z-yfa02<)(;Nkm>XFNk2na-*9VgNlO z8y5l%IG>_t)U!L`b(4FyrA@No{j5&#Q$fCe~|sH{|~&T z)qj!pZ?XvV3*Ox!Z6!Z}xK7q(QF=)oY2=YS%6GMO&(8Q43ZEo;|N9Zk)joJDd@?(G zVE}T0{%y$$FQUXXhAddo>#-Z##he;D%_6fTcQ;N%$_?~*)b@T|GCoeOCi`obAQd23 zNxY_XZq7WMUB9_w#yE(iK0;?4CIOZSxwTcd6&I_1U0u~1Gn<5CF%=F~0f0u3^x}bQ ztP@6HDMMHd8qBq7Qx=i$X^}AW^!-4Z`B2#XqHBT|Hx?!7| z{ARoVP26Kg`1XjQhTHsu$tDH-!x}I*$3n`62M88WgKOm{s-8)+zBl;Ia~@z9`u!SDI`yQ!QEA%Qt*GjfnFb_|<5Eg1)zu8Rl^G`X;1%4G0#L zMn63y>*BOA;Wjim;6U)`co!~yIbo$!5S(6gv`Bm4%Ly4Jl|iSZE!#hq_CHpqB@ccv zW=HVRGm7k`DVQ|0Oz3sHE=vkSl6KuBOY6nqwxSP+-LEoqj=>>3L&g0x4zem zUj?Mkz<$qY16`{u#1Muu4_=dg-Z@Q6aSbn-9>=mImscoc522kx$;fEQ@2pU7^fG5L zgis^Un!9e_iU`fTBy;|W(c;;)qC)TuzU=D9Erl4*5Nd#p>wK$O<9LuN(`-dmx%%sZ zK)^iVOnMrpnZWb;r#b;Ps>g!1rzu@23&ES*NE&~ZSpBMrAssA{9%}OR71G>e^KKvE zhXw#p977QU0E$y7wQ>reSoL>|(!+npC|3V>j3W8F-Ctv%Sm{kino%#4k%!GeNQx5T zVi9!Um(9(emoBkQgwP}2A74@rJyBjNEH=M$g=Q@Vi6?<10zUUrJD);i_DQ6Y1=B@x zr0LhmRGJp);aV}{D9irbg5!RkW=^Azc9aexR9=coZjd~GPUq&fR|L_Cn*u+*(M=Z} z=~Ypdh8K##ySH3qLz_H*>Yx{J_F`)m_bh52^FTpqUq!`_DMKL8eM7xs*+vJ$uw$Y6 zsu3v?lDa|bK*&vqUwDFmiMfRc=il`@`!k5MBOWO^I#FIwvj%EperLwFV~bNw+ILinec7p+17+Wp^uQZhwn|4r2|BB zj7odfn&yW-yIO7+riQ^qKXevrzcNDU(}oNP3sL@hk3)B>Y}SGo%5_C%u+^`^@fV{9 zv(e=m%8PB~ME?b7QJ&6=hO|joez~!!JKk?vbFq#alSSs<48ihG7 zX+DUdj;4LHS(s!2d6Ca91)cC9^^7-k*~OR25_7#faPjH=EZEbcC1UeKtc1ExZuL#! zp}IVjlsmxOoVL|SoM}o_Kj9;Cbl?*jNR0t*o0)H#EE6O zBRctBUdW(L!4i2E6+imUuGr5YmyU@f|Gm63l2StDuYD9DjK`_yzVh3Vv&{KCb zc+Q2i-#tlV>jp{}^E&niF6@;aoBwF4(c#zFy0J?@oXq`BR=*}#w`!TA4V2 zr|7u^t$;{cL95@Gay!A4z;E)e_#YeoBl-VO#ijPH05(b31L$6mTJgdrT!qf#2K4Kj z_BM82__W;VT)*i5e2=mH4_m#OX>gywPc1<`1EBg)PC#iwJ1grm>Eo(%fck4WY?zNB zl6U&P+MoPDM*zzB4gGI3iB08%4N~rT>%Z zYrG?(Ku zcUkGVBJSOyYaR16{%V#l0?!PL59TBGm-*?ofG`ETNS@9iL;Wo4P|_}Jp;LcEEMe6w zd}momA4fQXCnwis<9qGJsjOyP=mRvb-FO`qx(l)+Xm{-`(hy^SY z*$8nlSU!RPX5Y+Xa#Rfp!xB|{)>c{PBl64zEI`=-A(-$#26bR*FRN=fq1oHU58#?; z6Nv1`D`!T0LbYoO?V(eBYg!-nFk$O+_vO87X1Yd;n)lVS9qIPujc?m7x>v+Vw~5w!6Sf@}pf~n7%pOGQtt?di5SC8p z7Z?5-LlE}edlX4$1$127B+7-tYal8c0}=QNAIn=ZQTr|<+V#F1mhpF<$RFsB);Z|x zdERCXRhEF@o1%kd+O7M+A?w7WUKUOCOGBTGRGF9D0c5#sI>rD{A4?^?xs7?Ju{sw& zP91cl+}v8Whnyp)Mr@7Wgo(~RoBcMJWkVApyX>1lt%(LG;|tJ1^}hg=G3h^^`o9H- z-|gHa)uNdpBH+{ZI9dH_BRUt4uHv|FiV##-+t2p>4aZ~o4yqr$uWJLeKZrK-2sdS> z1uH)@bjHG#kTqu*pPu7F47+3GVcmn3BH)3bO+P&u=iK4202pH}7Po4~3@EoYtdu^S&%b zG@`@n$oE%T_BCwl&Q=ns&!7G!Z^~gE!2H_2PE1Q*Lh zeyh#X=*y1%{biy%_JT@e0~FX{BVzf#-@puD_rfv;rSAUvb7UpYe03>MqDA9tzs}fp z+4t*brb6<||uy zRKSf%HZ^U&)^ThoM=8AR0)~KQ4Gk?)93hyk9XEufyF; zL%K?X9az3{|NOF|(PY-GKv^^Zkq1qRF#^1QP&N*~clLif9H6XOP7VY#PfiB@#v@Yx aI|iWA4PNw?)9XT>sO#$(U9Z086!|aYv1i!; literal 8411 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

    FK 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�?m6 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 literal 40084 zcmeGD_ghoj^9BrK1?12~=|x0ArArMh(t=V&RFo>B6lp?$&;oi4O`1w41cV3?l_s4K zqO?d20i;8OP!d{%0D(Z@$@yN-^GCez^~o=L@9ehrteIK&%srEM*V>Hxoai|=Ha6}% zw@vP`v7ISqV>>a*ahCN@tlNBawSgyjwX=P&-}J6US* zzjfq)YwG{N!T%osr5x{^dk(9iL+gljbzvSG28A`N^pA__(I?s1@?F~1Ex#fV+ign` zE8J%(n?Dz~f5lo*`i6$?05#ay{zyJGV}VDzOuh&d(SkX5$$4t>wsJr~X%T{uf0H?< z;b08S)8<1#GTJ5oj;+mxl*j7X1WA!*Bx>g;T65RuqH z9|&yF6h=_?uU!5vk>=8vk(ELDbGkFErL`{C-#1`EbV>P>Tf}AOJK6RFh;6%5Y)_IU zSfF;g2sSt+U_>s~75=n3#eZ~t_-A*wZczh>q;doR&3iPYyNo;7i0SJhPq101mlWx; z-w>WTt8n!I$@b?@kNSFJs5lPd=)-T6=4b$x)ekj1Wt{4|2215*MAQgGI3;%^^~zJa zdwEMNdgbMI#ZRz}%OouQ3SnnDX>A=&)KH4RLem*1f1KDp`^Jf?X<%B|7_7nGs?m9Q z>r>vKU%s!M!Td7M z#{C>1v)ja|`~qW4UFmK$;P5%BmamXee7TF3enV51i;t%|+mA#$nLL?cF|Hy~*fV8+ zbFH!AeuQ70%!!XB)>zgHCVxo>M@4seuB;=<4@JaIgm8aFte=V>H04CPK2&48KJUI& zvfdwDlY3lu(fwJ7r>^oVh2jyIzkrbtAbIxD12s{$Kd=e@{`U!DX+CfQ(L5-D}^J#&fDt!u-b?w1&BLkyM{>f^__#<9;Fd8V2(oVuruh^TUKgB1tOn z~V)YW4g;>_L++0x#iA` z@|_kA)%Czt)s6a5TBCeg@~w!6!ie5LmMLJhjHvB;RF-%vmL-OMV3ZAnklWV2Z{MD& z&@MXhgHop+4Eb@QvmZ45V>S;wtmhw2v5Ytz%5*AiCtQEku6w(tveCn=s-~s(Q*hgL zzMqpdt6%qN!Tg(#84HVFDQiPd56%_ywYiB3C|xda%s3yu{fhe^i8=%5(-s3Q&tr*&|0t3UZ>W5Rl+?069n`DX? z(wvVDmUDG)>lqK}SZ4o0aW_+Ezj>pfy7evx!n~h6{o`eIoaW2Bs!KfQYfWwop-Y>Y zIw?Q@TAnEggv!UiujrJMcWLL?S<1Ycb0rk2kF72^POVQ>gIT*T ziWR?}D|S~j*K{K46fED-RUIuLIu)Y5&KF`Lb#u%%2OUsq|6M3Y_BZ=HqTX7;Z-g59 z@e*v6%hPDq>1i@;KfAFJJ4oT9m$8ZS_MdzF$lH>(b)tRYJV;ps-L%$)%nC9ILlJG# zTwC&$D)N2m!0P^aGU|z{(a#s1BG%d#YlC*lqHlg)L3j{IPQBHFu2Ll3lW=?2#tg}( zm)8{wb1|)YzM`|88rl_|%yPrlkVx`$I6BVy2U%nKm-M!weq!kNhbro zZ==v`qD}wXl(e5fY=W0YJ+1D|XNdXu@jfpU|CSLy(DlO;8Ei;$YDVMsIw zeIBzpxKHyRNwtmUZqOQ9zy6=LgnD1cY#nwwos%{fvlNgH9?3E&ljyQ7B_$@=56K95 z#B7*xNRZHL<7t(c=Ah`>k6}Nm-nCC~6*UM|5X7JB%nyC{deg7%B9$icFsX=c5}qmy zPs*Z>r#8h46VsfVKS%;%HpdI3*lG~al`>R;4n^)K z#%(0$ua^;di{9DqaT+RwSK>kfZdMP|I{SB8kWI-WIJviXdFU}o;0sIW0g$Oo!6cv2(8_F}meQkNr?pk9-%D@k;uR3K zGI^mO>Fvq)v4f@)Zs3|lRht|XP|zqX?Kj7*VxDJ~E~qoATDz>Xhx+^smI0QIikrPa zjcEDit#urC_CGj855O1;Go{fhpPX;0`d6~>f!NeRS9FblPDLH!dL4`uu7_^Q8r6MK zGCCR{7!n|1%b|ZnPwlCgh9YiAZ|`3JTsPfM3cjx!cDx+zuk(B4VES0C{Nq?`lDFn1^10xTn+vC64o`>eCkJoRI9G(yBlCa)%leKz?g=hNb3Bw7mbzfvozQ?)wQ8!=()7z^T!@sR(Qhr&5=ZTd)wx4f2XArt+ zt~AUy&wT0U3P|;yS7XV2|B>Xp`xtQI_ z)vxl)L#q`nPnRh2PgGUo!=v3bW?l%!@DyiI?yBYGUH+7G)64CBler`bj$HbkmXFP# zo>=f2QTMfmDK6?&%;Y~uj&;Ln^Q}+s?~;c)(sM`=?(nbT*QVWhy==f1Y?-9g-NjLT79s!W8cr>}q!$^&Jqu;65S zwkXekSYW|$+E93GM%YzVYR0uxreX%~UokMPAwk_~+y#B~BZ%@S3(mWn(bkP&gWlgP z&7%DC?FB!`X!;tFb1Ew#y2vK;%50^|zGH=Ja4UbU+}_DlB?@JM5X45qenbGz@7j@+0d9B@BXX8nyv_K$BL zD+|*Ed`q+IK`E{Cf&4BuU(eijep9+RnPi39LU?3Hz*U-cA8L}cQ$@P0yg89VWg-$n zD`CbN?gO^K@BROBqRdXCn}UDrcKNf_Cq#`zeg&+|Y^m;pz=Qa7*fkQNKJgwW(!Hfi z+xg1rL@K}GzQ^>RyhqbD5mrASgJa5LumS<2v>3lAY`=d)2#51Gy3W2@BlZchvN5%b z?%ZnDM$T!$bzBP_FBqlYFI$D`j_nvoZi<4+Uezb@$+?Zg2&*%Qhl_k&A@Egt?5Q|t zJXESd!`Fb6l^S^BW^~2Clb3(^f*VxbJa;Kc2ah?Cq@$8G-&roWqI^eac zOCAqD8F#9(I;3(2mM5-SD&%y;svPAPR&jZ+kmBFyot<2R%_>*esm2MG&uRD?6&Sjd z`D+0Z=p!jkScqD=sq?3jXPF0*7u;pLUYu@O=6#8{-d`?wy}xR>MVV**qdhf8J41zW zs0t$>!`tQ!gDS4K)MeRdbb#|mJ_pW|7|fPSwLwdLMnFezo~B>#X9?V03(d22GhEV7 z53PAcvmgv)m2wyP@^ikYzPL8eiJi&N>CTXr7D%>ZhK_tle88ITlC7H0Y{>mMtFki3 z{fzOa*lcx4BPrS;RlNti6b($PG*lZ)z*F6NArGAjBf_JUBtf{AD-{xS^MrCeNsVB+ z)4^tLQJ&kT-2VVhsus+TII_MuV8pkn5XiL~Ba0U$Z9Y~zhqUA2Krog*e>1g7hGN{e zmQZt-3WbS{_QxdMv%nU&F z-_6XMK>?z2`9Qe-@GG-3P+hM0e$xEcSON}N2r&v+Kv2>}9Twr0vdOc`t*zox28sVg zEcD3m{Ju#MXVw}mlj+$c214zgke2hj-{pD1D7*73A;ncWtv}o?IN+P=TwvM=VSwzy zGgSF4zcBpN!%!nLVcV10>q|zGq!EqH*+HMsS>p7BwIkDCvIZGD5jvK8-l$U2*gFo% z=N_UPU*}1?lkV_z$l!()pE=3Dv4eE5dz-0AVq4?p+tvFc zFqcmXKdPF}cI>s(PDjt(#LvO)T&nMW|Ni58^}5GV)VsUd$IsX~GTf89^c1X16wc>o z$F-ON*xweqVQOmbiWsdVCQBc6=y?c3LfbOC)c0(x=>lTVaaBMIus9UmZrI!sIoisU_=&kgrj%7 z=t*O`p>Le0g?16aER>-a>H#CDX1R=u{&t;=vAa9V5g3?uxBbjPaF5)zVoe(C>}$U^ z@=+KE)W}^!`TJrXfm!Aj%rgZJ3tT>^Rv0XK=DCfz)V0dxo}yxrnAP|`nmoN0o4_&! zEtJ;A#gc*un6!pyyPvwD^O~qczv9{QHnJ@TCeNR`#x!7m9zQ&kE1qw|(4F@wn0VA5 zB1eNsZ;=5 z0)(aaE!+z=7P}g(_CJL6alw&6;$5qV2&>$bH^Q2)eNJ=Q+YjKG--w9zfPkgWjTUlX zXvqU%iL3cfqi{K`-+vUlOzLwswK`fqd%qP{GBR>GWD3%ix8u?c-a$@ipFa^joyL=Q zMwSkj^NiA(4oie<&Wmn4fq@R-RM)MgG^rGPVCf9Hr+3JW(pR=>363MoPEzc5+adsw;*2VBbJ)sa#o|?oF%cSd0)Q z0V2 z&lE{=A?X&`MAs@Qb!~uXj{`GG&IFAu_G99NBEd;N`<$gpD8%)F0q06H81E*13Eq>L zsaxQ~DUEZDZ#*&y1N(=E-~abnkByL)Fy421V65b(=UbJnm8R~W_YMc5f4Smt)je!1A5FJ^7n2l+<)k(*P&P3%|TH#|X z!ni}Xz&N=fOc{~e`b(53-R0$^X3qIJEIQmRI{f)OheR^s-zjXBqtT#+S{vC-veGBK z0lVp7rlmE$Ht-M90=&5ih)S+0zn&t1>&)M4T8e0%5wFBdZ@GLWI#u>~7miO%v#fJ- z|FG-YD-m@d3FPvzNriTh8Y7!37!qMuS>nfS!GWn$WjNC#`lro>q32mJeZBus6nD~J zVYhBVRcdU7#8E^qSar!w<+7`&KIja&8KGi=8EN_X#LKQ5b1lI75f)JiO)4rlOE;HB&N5tt=ch6|PGORDCQOOGsi@-skW* z{=@xf!&8;gLQt1&x><7b|EmS?MF+^ZG&rRL6c^9L!co4J z6E>&)s=+BFwO_ihh9NNgE4Wf)bFybJsn7HXlrQ|$OsjR}EJ8WsdOb%za}vmE zH(09Vg3ZL?u7nHR!iFoa%S-WTiKv1q{mK`sUH-|7-M_~UJyd0u9^YDvE2yuU^8UAJ zZ(HfD1$zlavhJ7d}!9g$j{RO12?C+i#)SQIiowjCD{vl1kq}hl>8sAS(+{zb8<4h)?q`RR zq({C}e9gZ~JkPd^-~KED{XQSTzo=cY*zJw3ez-D{DjRp5TBU6z9c0 z?=vM5%CCk^bV_A@`9G#r|S zOMtk>kbDu7tM9~q@h~6?PyUH-FYP*-(akrPO4`fwrV+!KW{Yn&4wK)8)0dLF=FoBi zs6Jfe8-mgy*TG7<&AB2RD_S_rLAR5mZlI>Riy(cKT`^hFv#^>Fvpad4M8oN+j$t8? zRGKh~l{hZ$lLomFbJ3x}p^QlVi`K;pvl|+rAYtbh@3Q$KoD@`K7k4)}(<`8hq8SHP zecd@hgV?Ic&Z)YApmOPomib3ZEez$3kVKS&HI`ndQK_JN8$?1 zfG3`(nD>QtX!>}mrP;T8OL;#K2;JsK4Ug+|{1=xrl47df- z9o0c|uM67Bk~W(=Oz9srK5FMTx=CutwxDIV^)Mb|k6Wlyuz%%BlIwyTo)L!60FwO$ z$(B6Uqt{@weYl;;medk!Kc&YZp@6i_12?(t=&QFJ4W0<=E5nrH&;si$Ks%jN>s>s$ z>#T7DI@}9R;jmo7q$0z+KYIlCDbA}cPcAtqZK_*5h9yj`Jh~zl8-d!nvGatiiB2&W z`Ai^CLaC&^e34A0)lXuIy}%IoAH`Pux8_JvP}MjU1@^=*JPE87h=8tGuhdq?fcjns zSdxJ%789`-!9{yz70a=RVcYo?!+WB>E?$D;X56yN_&M<1^GTAPAUY7OvAe9a!VNdw z!0ZPkV^*(j!~Y^Ige8ccddW&DZOdm=057FBG?s3l9zWC_1`6m_AKW;08Cb&SjQFl~ zyB#deDoq5Pa$(^@wTKJc!(J#Ky-2g6)wlaLWt{pUh9%e04G>;nguXckbV&a#!`*HB z=%z%ITcD?0p+SzOa!zf+0OjWDq`lyG_b6-m*x($*pjk=Z0}vW6msYpl5>DFaS3%-q z37(*}Zy{ECGf(xp=3O#^L^So^>hv>h;j4Y0#c>p_qTxGd3EmAYW;OTpWx^6UJCYnB zqeM!IRoA3C6rj{zD`bRIt=R%$oxHb(iRE04gl2Kv8!x&Qd@b34Gq6VGT#**<^j{R~ zXg#iTQ-gsd)wYfX<{(N zHMsH9ID$}e$M?EKE)oC6mJ^l@(WDV|snG0pa%pXfN^|Nx0R|{ZASqI; z2lSkeVZ~WHJT%@glI$YsbKcR2>@D~3?e_$wWCO&c(?ORF?|ML0(^$^m1taoPb$b!T zM%QWk7w%fH4NDgo(fN~QyHhJGW($5BnZ)u#Qz|OHU0YAI(T5MqIH3--bOG*SyWE9s zGx^`?ZR9PG1H1}dwRS6!i+LFl<|FdEM1008TPTW}620xV?eDo>zHfH3sm7x~)CDIu z+hChYVkAq*uU#KYUI-&5Cir+ydrj-y`jOsMp{C3JjTu@==BBSS;0nV>A&?D4&2SGq>{}03>GcfO;IQA)cbbh6KwDJy`3u>?tDhvEW@6$ydB%N6oFQ4;Y z-`MAd?#iP&CP#%8QFU8^vo)SzKvsQ`>*Kuy>P7S}Qm^asa{(Qze)9PJk=>@Q%lGyt zcE>D~fflFt2qtCgArVpjbzZ{yzM7mJRHL+F^bTCWBJlEOzjygU_Zi47&PxTG>PM2-9ArdLm3GGx@F_2%mo-W;;iMzNzk zKu|*Ju**9V`QhZuOe$5j8Yc&N0lAOK46_L^LDtvEtJ%oQ3x5>e!y?i$k=_U9+$LcNrOfLTX?u9>HJYiQ|64oJxp*-S^wn2>)cr|0?Md`UKo&f zy8*MC$(_az!pYX#azGi@I$70%Tt=#+=2qm;#b0s1H7$c)s=5^VFy{LmEfZGnMM)Z{ zXZf(WQ^(bEi%vvF32)2xVOi4_u5x43!hQ%Tq_nsc^j~-&b=S`XiqUd`YD)wXryb^QxR@@q)`KFYzXrT+IbX(X{8I}ew_^;UbSpF)oM_@A~(ZP!& z%1@>%pGF^VGhR3#2CvkmOp9wOE~faRX10dz%}S#`BYQq;w+L5O|84Rbrr8%@b1Dz2 zpNP_(lN9n18Ftk&5l)9&^Zk;}Kc?aa%O2MyUp%_A6E&Ie0Qn~B5ieXeqFNwgcC!lO z?#52Nuk)f$8fI{=x<@4ab5av&ZC+@mgX9)Xmuw&lNbYG{KhJ8ay$CUMjgH)Xxn>)Q+u<<~e zv#3CQIlF^SCa9{`OYJ)=YVF^iFMUb<+_5?;r77Vllyi4ufs`_}AL3*%9Q|!^b7rEO zNS~hAwQ9XbW0(Q5a!waYtv;CrH8g1>^lNGdb9za>KTY$(q(JU%IUjG}0@aH@{UqlF zR^3@M6q@9b$+8r5Ed@lgcx;?`CP_O#diX~bj1Y(kx8~sfab5kz6YX%x0w)-d#3cr~ArXfNI$Y09m$Bocp714%N~jwy8(mXJ1CQ%ZI2 zBHWdcz3BI_G2UHzyBKk;S4{sQVsezkqO>Xx27&jGrPq*g`hI9JT!)eiT};<;zuHf( zcrk%kSNi&g`7j$YWhjNg*!^rAak|H^ojjB;-8RQ@7T@5+mbi?bSYJR&Zx(pbTCYh5 z!c#TR$EcD zF`JLEG*EAvE;H!kAJx063_JU$mK8rDn;w*j%R4w}!Oe_BhH{GDt7S+RLSRGy#J5~TYBpTLVZ z(3f;lLUb^LYsm#3D&n7(HAjcmH>_I&Qw{k9k}P_cmqz{(W6jxZ)@lk#ZX;`U&VgAm z_xpgg*sErhFv2DpqwQJJ3>WjNSibYZ>Dqiu054--Bmd%PCSq_bZ=(b=;|`{^lW$Vc zgkYp3bwN)#d7yJc>mf~8NN<_kQ#ebRJwFsalg}FSxsaMwYPkfCQ zK)8NZL?V6G6Yjyjnb)z<;P+WPiO<&IYL9$JPuLVLbM?0u;Smg5$>JOI5vT0kR&4%DhgR218tXD|Pm;}#O zVte{IBv_=yV^-gfX4XVZ&}oQYM_wROJ4;oI9uLpQS>4h(hg?stC>i#>nLkEO>E8GU zsiE@Cul9QA1tXvrfCv>aL3wxvw60w~l(}cZc7V6qec^P<*6Gjkr#keQ)=HW~~3kz&`Kb2dn z>91z|96y-9xU6I;j%uIIc^Rzm*G1=iP^CzSmZUR;^%zwpU`@2{SdL^CN#~7WbL~y6 zEW@J#?f9^0*vX>uTc1n9ZGj4Vk_2jb=F=iy1SzzYQ{45lcMT2LwjiWAHUz4K57cs0 zk?6un3R+TCnaiYkt#dyxPv3!{JWpFMfR};-MnQefPb&=Eh8hv`RJz#vQ;+VXap_`Q7%V~+9r|X0Zd#dLQIX&4M%a6hg1R5adADK9c=EAHpc6pO@W zABIYppk^NY8Q2&gYa3m}_1mLa>GjLmPGmYn?&4au$L zo3BNrnwv~|hwkwZSfw^_QC3=EyR*~DGpd$!smIae(l{c}Qa^jrtBpK#_miL2iW8)H zsyj{I%^4*^YFJL*%z39&*aW6~Stif#Td&qPH?)UrxBgnxX0dD^V|N}qRS;)ZH6@62 zS@x0&8n}Ps&z&Cb;ZG_$F2^jr$(zjgRBxrW5^k_cM%>}`ch$?Tq2~>6)L`?En3h z^VJl&;B-{c>0PHj`i2x+UKd;Fo@VRJ`+eU#W9^jKBw8ahYT12M5LA0oT zUT-tI&bv?Xc+(TRWKd^Cei%{KA)BtvZ}3HHRw;QyosPH7+L}I@)_e7?E+UEuEqd;n zA69_ZDB%F;kaUsC3M`tcPL|;|Gds~uhjQ&)d!c!;q@*O)r_78p#1Tpgua_W25^LZ% z+x#x);OeUiqe!oJM6m|Rznc+6c7pdegNLxU{7$v{6}G94ot@yXO*x}qpy;u(;OjA1 zLZH0#_MOB#Zb0m)MR=Rm4Vk!*hiNtVSKc5kLq+E-tv^*FQtmo+M0}g}g|^$~?s5O^6LpVCtr`VZ z%~RXK*1ykB1vSOFXaUEDZda!m3cOnG_VYZbxW_Y`fspdSq)sl%`O-DSO7+~F0-C(; zwUIgE%+MdkXiq!zp1-cJ{KsPdV?D8Em_>*crQF$BN#<)7UY{3{SWn{o%c>5J0;~JD zRjo-TA_&#Rk^~XxiK5#Xs2V7~l;ADu^|24i7`N4zPfo2&98=Z2*14xZFB5Wr5f%;V6+podYT&Z+ z2&RQ62-ficaMCh#e4|r z(X?LP1wT~p!@|dZ0u_@}aSMDAo)+z6U8gRZoSIJSY5QR)DWqk|9`4&vrU8BDSp0nm z^Ev2K@O$3BIn&94kE6(^*mgpY$<8s#m)10`@TeW?ZFjfe$}%zW*U$Rgf;c4l=TpN} z_5Urpr?wX*(3ru;c%H(U_B%}2xhHs`3%1&@oMqVueRLL6-TDyuO0li!G2F7pBjfAx z05y)t+~i|rtz3;37fUeb!&F@gSPa?2NJLrMx)$8LEAql(-e5I2(#LO}LOUOYQ&X^- zw7_TAFFpi_BDoEaDL&csGZjsz`;tF=Li$Y2xNTRh!H7=S)#`TLo;$M=*I4nuZiazN zdRJJrD)P#rOZSKxB$lvAe7a@|J>IOg@1hLBRCJ;@!U_bfHm>~FpZQAWUMK>@wl&@L z;_DU!dFwk-T}3b32GPmW?x0IPYn5KX;W!@-ny3*oA`4WbNx?Zmcj>u1j(}|+nJ$Nx zRNnIZ08zJ!`Uqbo!^zcBdHH1;Jx!uanOZ9^HYk-E`WhrG@p?v0>?`1I0sU8)Q~v#A z(M8*bSF9CMUp&I!XwX^_60m)$kk>Ir94KKX50eD3Gy>?8o6<0U|65iKzXxe|`a@!% zpBPa@BE}x}3*S#}*YsT>XZt+m%&-8Y{sz=#L2!GIgq^#lzqQ_G&e+NH^BgUCrr|oR z$#>iXRHmmyphc`29-=M(3jYyE#q)4Ce1F? z$mTqdC?Hf>+AA*~ZVy%%=@WQOcNbDd#Sb9xSh%C2B<<4w+ZPM&93ak}pzphMqv^U_ zg}Vv3&Nkd->EK5_MO&ZyKrFUK_&2M_!KSX3yC1J9cP5n4V{9$+|90Pg=~le*e{Hva z5;*>UqyP5z)*T>g#MTW!1`8#o9n~~!98m-I;KY2%m^BSKMm|exBYTI~T_U2xhHOr< zy&Cq+iKDc~9KPQ6Bhq+>UN&ky*Q*JZg;E=iA4MGgw#g^cSS`vM692Uu%f3Yn5?SoD z$|hDnc;_O8$_yZWnB9xhk~pCKd&l4?5ooQ8Kpf(Ev0H@g$+4EBPle~%*xdi?X`WuB z1OFCmzoG7J)K)hc?D)9Q_I!rzk25Q+T=&9VBfjCecO#GEXW`Lg1To#ea<=FAfNS=! zlM-`CZI#8$?G%ECY`EE8#d*ZC9yX^>Jt*H!g<$+VI3x6N zilH7Owg*_JwO~9_`+M=jHivz@D7+r6OaSW7#Y1)ug~S{aQH6)u)Z1Dvt+Oku zGUS8J!sti_x$w|-XZh>_^N2l~rEY~x!uI@*&;}zQW}5)C1TyfgG4nB}*#7KY??1tI zYxgxTMj6AzVYOyjcDCBmpgUhBZ36biY)ZzkyW9^7#F8WDI+url;RitThB1Fsc0j8- z&8IMGK7=yWx>@)sNk~a@iY4Pe{{MQV-me_9!0yHzf89=^9_7x&(4oX5_ogC#w!wkj zfrpG)DaP*hrcKl{I+5vlOmVe5X2#I$hnq6NW=G7pb~nafGlQH~TDeV$_3+yIC8d1q zyH--n@z3oJ_e#LfGCRqCw)y?hs8)2y~6r(gNQLahE#D}kEuZ%k&#lC zg|vwP>ooM`bN2sVEr8zP7lH6-wwKCbl*QF>Lpn>T=mN(Fg;85bfI>7)3=4u7OU?HMJmOd$#;=I>N^f$*ZU$Nrui@I&iyJXU5V$L_6rUfs?VMWB!o z#+cTMc8ORtUjH|MjV(3xQl8A_SL|kzfHC=L$a*Ma#M9ut3w=^+0r{To2f}|Q8o*q@ zA3b95V(G{Ihs|j*^J%op)NClhzEsVVXAGiqk}7r3-B6m6vSZBDKj`%T4cs42E0HS< zgGQ|Vwh^Zg`zclRt$EQ~p2YVyttkh8;)&Uk;d_MbxUral5nS||Kumu0Au9SBbcJHG zbSyyvo}u($t}aCZ_Xeoe zSbaCbm7ZT61B<=cl}l9+tWER^iGl#`)E^$>$^*WYu#Rnl_%OiafuB1zSg2N`!MAMx zmYjmVjZ)q)LH%?Lh6CAQy(VGY~^i{ zV|L&VUq(?8h+HNd}P8HJ6_7(y8I|Xz(DGt!z?KABTi%BjCROrg81zb*wJs|UTn+Ov?fex zUREY_@NhY1LpgU3{GwBsx)ZT~j3dzNQ?mbP??lXuPT!6dF)xbc?P^js1%{~fAxP^^+4fJ~LdC+v9QuHQS73t`nalttJUozU(fSwv z3A+hAMu^|QZ?V>yA;+URSDUFRN66s;b{7bBX3&l|T~)f$CRQfPx9cI%HW9~Ct@Oc| zv6y|Kqaa4W@hbL%l5>k5ZPj4UEaqJ+GxF$X5teA!@f1goo=USWKcTm==%_UWfgamY zY=E@HLo9ZWt5pxWZjXJwA&e@htDB;j9Zfh6Q<;Y7EmczMZp?n%c52MgDZn#>6v@cn z0u=b{R@#p0>qrxYU{foyYZ%=I&zwXZZ9qzt!)QWMy|j~040MYh-(G9geaqK;=p6XZ zK5dp|PjmJLL09m+Z_}a=+bMADfmo1CKXET+7IEzB7f`B&*`y8ci|B5;v(JWcNJLY4 zqjk0J=KT)ic%h3Q4x)A^Q zv8X*6DeY>$<}iF@j6C!Rj=iR@gS0nkVUOO!VU@GJu05SwjPRsygY~=eJ7&=c;_ARo+$hObz8xD;*2?V1-LpQ{0nTWDe?|!dlm*EH`g82na z-A~5+Rno{9>&5Db`4QFTmz#PIDjuZ-Et`v64jWE zctTFMu@x7lB$mleziaeV@Aqd1xlG}>_OlnV(G-HU{P+`|E<@=SUH;e?r`>}W_FmVz zk7eDjoDm@{hb1QoOWgQlY~bIc;!qtL*odB&7gBbKzTk%dFp+(F^FDNCuYysqVbAPem$q5@%iA^ z7T8Ct;-jqqJE6ovD5|N{{)wCbbm3CwHCvrn;gnxTZte$!`p;Hbe$w{~0g$|vkw&~G z+LVLmb_`Bh@bWpeQ`ct0*G&F-@a1l&=1oz;%pO{}GyI#t6GOWi2L#{tL%y3*e_^|q zjeLH5@I9Wx+;6PuHZ(6b>hs}ndV4~^i!q&8_7*`-v`MfhsoSSI zT^`}|KI{F5?@D=bhAK!}Z>;?HEs0mRp2ZdZos(hrjZrEFsao6e3EB=bk+8Hb7KJ&>BXJj29z6s4a{JHc#5a`beYIAXVfk!#<+4rZ zBB$pe9Ne#4BZ<4UK2#oDyifL3 z!@?@RXxO6TOh8;lDk8uT*p2VW#bvKw9sIMQTXk99_S^lz133=1&L}f0VUw?;iVxCC zQydzV>h;_vIWiGRp&a+#|058l?#-}&ESC|))b8x8mpwNyGFNqvzlQ!b&&eugGg z9Q6Fg>7r#LkA?9>fbU}#-OjF*CrnB z=b+EHi^l^L;rbgsQfg|>2lYrR$1yjPShTz}J25xKadc3C7ia~U$^4$+gFk`rVlF*c ziS#&Y^1a=Rcd*`PtQzupVMb%y5lK= z;mmd>bXdo^jr!1md6-Rso^T;(xaeQr;9)jc+s~#dN=`?MIcR50?>b1Y&x4eB8!|Xe z>#%ZSGXzVPNcn%Tol=Ycg>4&gU5rX z*F=#lP)jHgj*7=ysbArFa9{Y!puJByx36oV6F5rZ{`tO`IzePqIZjB|^>FrE$`NcR zUE9rr+gTAhlY5;cgXc}ZpGph~pU-JAkg>wBQ)=E`PwADXO`&}ZKjpn{<6E5F`Yj%1 zfDFGklHI!ErQiVMbbMYU8;Mv%T&FfosZDAl+&8E*GNtUd%-3D``0=a;pXF)ye)r}b zM{n#{HI7okM%%ZiSd1bM>^oDz8Bydw<=lW9sTkxsYkv)?SQyf8gB9hesxwYhQy1t~ z>g5XLovTtlx8e>>t}jG4q?ZXL(MBH|EbvhA=;TS4uT{B8=eH}0-zT7_YqdVM8bx0` zPqR!rb-r<|`rHXo9#j&Z*SvO&?tQB1_r1G!y8c6MP+#8|K=3xPSIIybe4lwfU~R89 zYN4duU^9n6NZGdywAmQS9G>*KG4?9aAa(utqnpBg+u~VaVl0DT<^g%Td7L(5MhFD_ zqlhJWvM6@a>SNw=Dm8ca^{jzQzqGHEO*o)nGBwUBs`P1yJa-IH`+A#b$MV|SLhpD4& z_IKRL{t~UIt;4;)a-Y?C#eFd6#nTwJvf$7TFx2#vE*>w5h}aBzMmRsD3xPj(eI&CQOL#A`Xz8rn}>e z8M12B{UQb5Ki>{c&WL5)S&HlGe{;N4-?%ny!ujRm2>yGPaA-T7Xw1bB#!zhEYY zAmn%>7v`bt=9~XAv5V$&3@*`fRYafZ%Gr38@Ji?$e7M}L#hv?6>9Wa4D*Ro!zT3Ds z9WJeQPf6_>B2hB_fc8~gGi|-A@P2Gj?J(_r&hyhT@&#t*CHNi}yk)0Xc%qVCY<9u^ z`Ga=tnr?uKH{N26d11s3L+M*65s2Z2=su6XYW{5RmUN|@b2DP6RQ2|__{rtNZWUG~ zWrub4>aOikQj(&Fi;@iKSm0fmcCEH~|6ygL_l+>pAuP9%)GxIm6` zv<6y{-T0$wo{S7f>z!mV-?Wub&=Sj#da34b*NDI^f^81c0p3&U#oAQ`+z~CudQD7t zT4g0E7IEy!@T#RE)nd<*AxrI7pZOi9h}t2t!K>vw?&AFyud7|PN#oTE{XL~w<6J@= zH+}FUUSv?pHbgyV#Xf|Of=(isJ8&YGfFKy(M)77$pEpQyf5r%cu|9lh&QP4_+HDB5 z5HWJca6vUj0M)Vo9!bNq=~D1JPBa$2`$NR|e0RM5oBpRR6M(e|Df-yzDH{wwhf;fiGV;sFX6 zq8)c{E*X^ApV8V-(oB-8UyNnGdSg9GbjX#hhFU2DW{_>PFCD@z?dQh>F=(==&iBHR zRoUf!W6|SRvgRq1vD3odJME(g~0T<=0ISyfJg-S)8TmZ^nAT4BTI@b^hu@kQ- z7g)j5V}LHjVN5D#%77wS$r8mSneDMCWF;P2^4u5qYNRJw|5Q!=VP32*>t-qlq@Z}4 z+4K6+^1Y*l<}tbpj>q(Q>-QC>>xjdbdb@D@7r9uYiGg)2DshVArPhoZi&3drhI!{5 z>KxynwWtH>YOC;Mh?rcwq&SF)t0f|RAsTl1kk4>MT~pxyrk z=FX+?3x_sC_YcHJbWWLL4;K9n%ZJx8$&#PSWRUYEiJ;FrrBjDDqe+$~NfV_d6J#qA zl94z{2J+bsT??`jpN45_fGT){G2}Tl=Ja5K6Kd_Q7y=&Ahv~(DItRuWV~lKkh()MQ z@LUs?mn`lAy?zM^E;q7ESS(ro<~Gtw_Q7d1tlIb<@74fP(%^3LBFiX8oG7`x!~zDjp&> z-)t*Iy?Xz1?M-))E|{za_bEAMbKlF1gEz0h{X6JqHR7s;LXPHpKQu?V$?enl+R zW?b$u?9+Kxe(8(~jXnD6i5&9O6P@m;Ua2TC-LOrAk>{uuR(iAxrQ>10GAUm3f#BXA3C2hwZx6* z%GC3$NT*$SIs5lI?WXNjdd>+#2+%Pn--ASqGiqer-l3osWq36dTUyb+xtLW@vLnoQ z!}XJn@+1EMgZl4e$*TkFh5GibG>!*(k4?`7DsV8D@LkVVa{&BS8jW|4!N^fu&pqZ& zGlI1~^LV)We`nJPVY!8sNEVg@&}qsDRB*JOcmTQ?pgYpmMtaKMst+Z@lid@JefO`Q zMLFT9&;c80xQr!pLW=LxF_26pCCog6_?yt(~ixuK~Tl zO38Ve7xuJ*aiTNbH%_BS|1jyHkpC)D9FmPU^Wekp0Cx~S})ntQr z;`T@uQZ+yYk`qi)CvDsYh!<*lfC3>S&>?6rq+o(X8YO(9ctA#_AH{F>GnbkN82KBL z-*R`JCxeq0&xVs!KEE&;7;?VRqaea2njT~nG;Vku4@aLS9U0XRFYMs1v}8{$Zfz8` zg{I!Amjm!^bT2-pr{GF z0KyB$J$D@JM*ZWuiAzb^@*BU=^Q5nT#w1$YXq;2>~E%p?Y1q8-6gMfHJj zTHZ?M{vUy5zebX|@$-IG>g2OWG3(2c`UH-@du2vH;;CjNTQe0!nub%ObT*_vD~Uo{Nl5AlfH-LAj^>-pw*Bo`je+9)XcS9hk zEN%q1^b;GP|L-sMnTkPuEo&!``f|80@aslu#QJ8}W_zN5n*px5`CuPmo;o}eAo)C_ z+n~s-TD9a|0`LpPF@SVh$=q_IwySeisCn*%`3rV*7Js0{3qRKe5x#-gIzaMFEmcvo zAxR2wl}SvfbWa+uzgDIq7p|!wZ6tikQ53lpyA{vym09Tu;WX8h2K|BrC#3%KShXdt z`ld@%Y1vsHNC`=xy834l0*$XUNsE_|1138n?*b{Gah!QW0vY_ZQF+AEr@2^zF0n`m z(LxlCIA?Xl$y_Uz$#tfW!0acZUlmg+*x)FsbQ<(@Ik9Gnz(fo6d}l9{oPbHY^?=nn z&))C2KE}8Ooe1xRhkh`*UeA?lQ5#lcaqe&;Uis=6tj)9HJ0Hn!*BfT*)^^ z<1##!7}=k)E2gguB}TSfFca6CqH<%^bZc2aHkcc5&yZ4eV1PXkDyrqruD|pNQudD) zRIMx}vf($P48A?!!um3q!PWttbO97`4MUco7ahBI@5K_o~-G zvJl@7;9&=0n1*;FBg$zpRjpj-#G$eeS9MQI6T9rc)_GNoE!hd-c%^q;6wuqk40UKR}#oIPG)e7D4c zWxaJ!>JlEMqcSpGsGr0ru)a^f;7PpqAF`|+GP+*@kSxkce%KE1Bad1;YcXtU+%&R% zsu-vLG0eo9A0X4_I{n#2xeyoK4c3HwO4VPGLXFO2SXDM=lvPijDkI0q2b zKKDn4f#4@FF}_*9OvZ8fj>>(qX)hEP8_=!G>A?x#jvFXeNVZOQ0%y%9=&)X)TAfz< z0Gk@4twmu<4RlZf{LPkZjqOWckuLMcXPslaC%q#Bv)3=+Qe`pwbQCUL71A3oSjT;= zsdeG+I3<%rK*;Tw>r|9QgJ_i^9ZI;{3k1voUId6}B5k1HXEqE3jB>RVtCI zl%N5Q@m1LB%J5?oA}pQ<@EHs4o>8KE)>=y=XUrqgS4B9(peq<%43@Z#pX;!hp83N) zTyR)yiPmLNoUR&WK`<^&?3F~FQK zCzxm`iYC6byo5DG5}O^_taXU}wqKVmS5yr_!Aw1z!zQ~`(=Ic874>{<>*ugNb8Kqd zcv`*=2vb*K1Bgc>2x}?C!O9z@Do!;0NgqFL-*%$ zqmwRcEgtT_^o{!?x1Vj0-855O67x>mO`f#){02$TvJS*E!6`Y9 z3va~O8%mF|#ncl4Bu9Q0=cDedeWGhg_9eSasA>Jawbg%B$7IF9B}cZ+Q|#3VD0!EW zQJ)DEjAP1~Wh*Wa%&RTw-B((AopeR7EN3y=4tZpz!vXWz?X>*nbXO<;7-~cs8wvv?so}!-E%JOI? z3GxncLcRpg`Oo>&of2tSe`5PnX7{ecklfF-V{br=4nRn5IVB%4BFWnH=6d*`P*R2o z8Yq3pRg|EQoAmDJ^1(my0S9Uuh6aH;VvW`YNUStCNyFBlYx-AiW^$SrPo-wqUI^1b z6Hv#f&Gl$m(R`Rv1}2Mkm(onD8B))x$$x9P{aD4Tp05K|MAK&NdIQ9lcwDVmKN-j$ zgFko63fU?0LR30pG_0nDFn0&xA)5=sDSr_t|4?oq?c>XwS+1T2RVjq#z($UX0))W! zL^23{uy6(yZtEwf=Muswz(FDr`3{_K7GZqwUvjp3`4$W^J z1H-sqL(ct)pQ{{SG$724+qfn-P%1MKdWus$U7rP`Uiv4IZUX6?E|UTFfQA`Q_y?!&2)3?Ru4r0gNW_TUcXOctc2Do_q7f=9 zn)oGDPIZtmz-utLM97Uks6?WXj?J=;wlFMeBmIJ|J!`X2^98gI47vymvRa`%ZKkD# zBK2?v%=?K)6E0i^)gPae=_IV@Sk%IPy9*1!s*qWefqzsXgCJh_ce)l#D=oiOM=3$u zaads?Mb<%Ed9Gpo+B_yN3st^qhIgi^q$C}F54~Q8U1O*#VRsCXY3}9+xd?e;BJBC*b_wHE}ryIShZRY*QKcp$(q9Kn$mO{oaTkOp^=w4B8)?Y53dR! zfFvA6ujrH-3waHyGMvU#m}AdG3Mr=p$R+cAfBYVBy6NqB43=I?uknnjw!KgR^=VX-H1U|>s5A{C%o(&oqk&$o|}tW zbZ!-bo2Q=(VB$m1D}uv*Z^(yl{oXJ4^EuXjr*w`)k|v+Rt%^H^ef+TADXgmUZ0D~J zYxDV62{T$C1@dj%>qz=Y0Ufo&09dGBYKldLB-*Qo3C%)>ny8WLPAVna&V2tF*n!FuWpeuI$5lW|*RlY_G zxvl4{>dik{E)^lPKW-7LMhOOX-IEA?1Di%u)ugac81#-D77V@zc6uDdRzhma4dn4Y zs64^nh1uenv?4}W`(C>emyDX~ff<1dtga)C)bn)NlVY;dhHUOdc}o2J@Q`V$@rFo+s9Rh z8>_M!98vWGMk5I{ySbFXo3QXeF1i84b;Uv|RqgjV%6d}gBY5y)$UKCfu3+OQG=+~f zDXzwbxd)N^sNuPASv1)f0n#!8RXhaz1(n~%kpw6VsIA{;4PWzNdmkBQchMvE7ewNH zs-VhN(R(Ng6XFT%Q|85)L*aA!ds$x@$T5USB=oI{0W;0{3Sk#@jIgSffV0F6WRY#k z9Ndp6n0Fxr5^E`EK1`(ejJLj?EBRRlrWYAbCz&qz8?87t{`i1)xqhud#Cr|*tloyB z8d;bl8A_^P%dKIUfn^!4vB^xqg{mHSGO7wvnQ$Se(+^x7ogNF`c0j6iH%qP2ZrDjm z99BBjAs;RS0S9_C%r6W-sNLcGM8H1i`TjYT8;D^&figmPZ2`xq?&-bBq7l#|W;-NW z{*2Vi^{hra!>Pil+{34rL2-Fn2NK%f&22P83Pm#5SA<)rZht*TQ#m&f3m6^<{o$T@KQ z@^8jMGcd{ctcIf2VjJ5~K&k!`E@OTcuu8w}F#BjeLNmow)!$9PqFz;1qC**+b${=E z$WtazzPx`r1uq%Irdbc=n}wkfkU|5<@gtmoGL6@VoF~uIg^1p`(dq0gu`-<4;Sh{X z0fub8I~ZVXY=py{J}(ZgOw~!UZ0yP^xyvU1h{YdG63$nKssQB_$YqcMvT}d~z&yu4 z#SgTouiw9t{glA2H0loSZU4pRRN8AMq`h)WKBqtH2K56l*dZuT;R$e}ITt61ieKx) z5+Uk(HgAB76+#d)2rXxlJ|_KqM9#^TgW5vQ-PVZt&CcA5@IA%Yt(qn-;nOQ1U@upJ zQiV2KDO*tm+9W}!Hw^URzp=4CKskZmMe{ye#eoOVPEAZH&1hVq4%|c8$t13Pv&dj_ zcdtCwdVKZrv{8JG_!&x5Uw|b^a2gmZH+=e@5}r|;KTOd>{({fTN0P*9b9X@5%{D^JB{}~s$z@wiL@cO0+^*XR zsQb3O1(=f3C{EeSqI}bSJJ@tr8!w_NQQa-`|J|JqS7Xo-K>2w0Kp? zP|6uToB}y8?!o`O2HIiWi7qkUA_|Y~l+9{*$)Zm#Me3huI9-sz;PGQO>9Z_rg(f$} z6Sit;P`3?;0iRhrcqEaY{8|WrdigT7gVx;H`gg2(nx5dKdw}VaT=EbBM=A`?_mhPe zYx8QV1-NKbBs&d;S)lF^Yk)_aT-Mp_ONby|{D1+TSjo^*b7E*vtumIQIHzd+DlyNN zU}KO!&}j=fgBLgN+3&35iR|Zmq*~;AWa0Bv*K~fkSc>5B%GG^^Hn0-7@FRntMn49s zmrV0u&(=2gTeOUQ?lo#h9eAM?%PYJ@t2jxoeGx@|PFvk*EIUPVuI#kEz*r(^-|sm} zu=%RRE=+QLhvDZ87vzkD><{ckhPYQHl-zTO&O&<2|C0rpK?9s~8df=T3oYCmf2tug zW6jDXx`1+EW^D!WeSPpZ?a~OR$BVVo(uQxeTc|D2ekC$&^;Da~qMmuWGKJq~Hlk0b zS-wxnsG4kWm^J4Ib`FNyRm;v4GR1@bF^mS!h^NEn^&x|fsXulCY0^wZF1mld6+j_O z;N=xN+I=hKAx^i_-AV%W%IfgB(d5d_o@?gI9tX!%k@C@dm;_1E8p+^|K##V)F2y?Y zC&WprI>c*A@6dw~Fi!3?sty0Sv1Wz#xJp?NvXIjn&LI@8j2p5?{$nGPpe!@ap~D|m zi%Zro^~??|5Dn{}MJ%3}_=Sq+9K9&Ao_w1!_7vvyl#~JV8bych{xF+Xmn^3Hdz2!@ zYzaI{1|`ZJ5v2%Zf98Q6;UgP#Yg&0$wpy>9GG1p>?danv0xJ60NX!}xa}FQPB!V+< z7zW(K1WW}>m)U&dUC)+t*s;$=DIqpGwTle_UBaGQMlQV6@c8-Kb}KE(C0Z4~BYK-* z$X4lS3VlM03VtzsJuGSIMm$J^NMjUP4-6Q@XvbPdT{xuA9!ao`toA4&bxyQin{zH!SpJADRjJDog6%F&<2DZ5AA zk#!P{m9wup=YT%T`v%Qob)gSO7h|aGu*!OW++Om~+0-8ktn^CWs6BKItzl7LL1 zv1tK9RWKsmrOVBuMv{S%%OO}T=u_1pE1+tF&yrQRw9#svWKoI~|3oKTXSU-#c!vsI7lCnXvhwokDhb-L zrb2Aa&W8NnGy2B-W#g30n)F&BmryqMuH#TFbO)-=(4TD(y(lq}j8JQ4$A#@6yJcL6 z{UyY58}|)HOqRE=2#S@#5Mh6tP__ibQk!>_tZ|ePQL#VzKYz;je2xKs5uG8Ze$vcA zOsEM)WVIO#Th6wlR)aC$ic;b9xeZpIl%Natb0|N&`|XJ?z7q!#nU3I!4E!Ul9hXf( z4f@FFAC;}Vcz*Gs0jk>&0oGI)wC1Xwj1h1*bk@kQ!jf|@c&eA`P1lj)k@gPW$nB_v zAe?nmKPAa%wOJk>uDXj*kt(|^B1agC##N}419obFc(hOo0jgY3x)B`U^#&Umn|=rw zy#L-y5GIOj45ZDMVvPxlI>-x_?lz>L$)gZE__1TtZwcy-&Egg(b^q2!5?kPeKcT$( z1zp{_4tGHv9ZGpg)|*fUBGHHC#g&oLaSM1qzjFZ=!Ca8s@+jgSszeh(uIcQG^*MI? zRG?j%ALUh1y~&hNIZRY@f;zGHJn+I^YlV%HEdVk0Fu^M7Ujh3s9q5zQV5l6uLwYsf zg%$!O;mYlwZAUT~ID4pWF|E^2yn+ozJX1qta9ZDHoC84nZvDX0=7~4dvtp8L= zM(klWhl7Q{juu92uyR5CTxzH;P$>l9(MZL_>{|FE=#V1l zTKO&jXVNrR^rIC=;{5fd4>G5w!L+BtVRT?J@L){TjAkkMlSWJg9&_fiAk7<;09G5j zn1Mz|ypFKkJC$iEjNcK^jgKz8&Uo`SAt%`j2VxbG3`wXV@mjMQ&W7-x#3T5mLT)L5{Z0(Y}k zqRoul!RM@#QM8l)hJqpm?no$K1_>5cqKeGk+s{dZy4&9O@T#4@VIKiLjfA%?7TVT0 zkd2a3#sQp-2bu(T@j0?fA*2b-99KhYYYBh4HK>+A1K}=sBO3u*EGuqke*+HVN@2Oo zHi?~|&;X1`t4OLw+oV9mt@W14Y8(7nr;+0-)Ey~y8d}7C4D`>0%uIie}ChS)g77RGXf+hX6#30-zpLG*VEe4eYk* zPpvIX>{@QS=q)y|UOk1IPE?OVA&KcXXqUgSD#XcSLlkhfR-m2yRn=BNwB6dMT5jc{ z2Hpe4ODmCyYgHPs*&-P}LwjwIUJT(>E2nvTOP(*ycCsZG5f9j=mlw&MN=fKJY#pw7 zHw5_590MSm!UbQt>UYX_(2&vnI#pMag;TlCqj|5|O&-hX_eUdL^xJxQ{U6of4OliJzxjxr z5-2jEfXzTkZA(pMJ`e-9rqhv%S%%86^3~RaQrGWYwKlu@(4kgVv)bBbfv&LD^P( zr7|GH(rac{Uc`Vy5>$s6VSl3WI(aJM+=g%Ka7cja(Ehs=PkZSTat;D*x4}#E1)<$~ zeaJ3jN`YO>+R~b4|MWE)dLu<3@%#$*5P?WlWQ^Cjj|B0``9~9xXQQ&NbOEmh8%`({ zrj#Y5D!XZ$B4P+b#M)Lkx+N$}e@V_`2cmO>wgp-+p*k+_#gY*Et2`(>Q}GlT!b_Dm zn#`;OU22CV+Kli=wkqj~jf-`B*!{hF{{|c0Fu;eX?AS`PT%y_OjfRn`%kp(ghtuK` zI9-oXITBU(g|bN#cCj9J1}V+pk(n;d~d)={bhlfkQ0Wg6E-K2|dpF3PGM@*k&z zke^rVp^WF}V44PZF`=JO!n{-zgL>gfF_TZzJS(AMvS>L($R)a@UI78RdG-10Qkzc( ze?Ek4NHr$9U0#EJRvCuXGcLrR0{dAQ+96$`h{WA;h!@|Dhg8*Pv>VYYyqe2LOhN(o zZ}mnCpAk2En9(c@>;Bi?meNPu+1$ipA#gv9b^t(O82 z%K^*EMXr!b4^D5rH=Gy!4o}KettVeyV?w7Jup^v$R!%3Q4qMh?Zglj9@8*^V5q|-O z?NYOP`wYc0fx3eQkfV>y7JtASU_tUHii3(3$oo#GXR8b z+{JKPtj+!>c_DWr=As62ZSGTBtZogR?7fuT+orN5Jp;yZfW~uq~I4Q5sGh_5+Gs7HrM-#Qzd_ zRrN2B)%Vws9_wHJok*~uEruZ$0)1RYP}6U9)tF^3QLezkoe6gV1E7xiRRhBYx5ax5 z!=O==M#cW(hzvGHpVALFVZH+V08RxdJ&SFfb@BEe&}K(a;t(7$Q06EUkw^2ah8**Z%s zW7c;PIWRu%Mz{XE!t^?VCI>Jlnu5X^+BsLRkVlwal0tqB(wG>jk4(r4l01qjVzOdp zGBGg@WQ!@=;UZqaOBufh1DXCI$^U-DU?JW>Z3=qoOmg1hkZvC$RL&_Wz<=^cM7}{#fK5WjLlqtE4+m*V7&08)ZGFdyN*I#yiB$ zfv;2lPo9e8(jS>D?@NZnnUbKj53+o*raMKBCtIX>TqiXpF*xY4|NlD)-h{IZL9<+U zYuK8wKPNT|tRlWVQ2vSsFWm_sS<1^*g!ZpNY=bA(A;_={;m z*GoDs>lsxY6iO^2s%tjH%MYM;MdU(RT4Qw z*MWf$rndf;OIC}A&;cUe2ccs%XGO@Xl_~!x{QW26!HYG)QArsi!OEqI`YVUgS%F49 zVel}dV@Uz~Y2x>vw6o(bRirXLEr41OFbA?a-$-xB=Ynp@z?aVBh%V&WKVR>OT%g35 zgjrw4zOiu3gnqOyj>QzBgOb^SKCSIR=P3tsX+x!tupenU^ z-G8U*TXqR8z49vVY0Up-t~jqhYZTa$Mdj^X{5aqDzsf3$1_5E7c+4b6xHxhkW97o4 zGaTFRyQ;4X27ZHMfi|K4DX)OfA49=kFd^4C=6@0X`*xJrFiKaV@Jspm%P`?n`OoFs za9BCvLV4}rsXja!DskQa&j`O`+T1rFru>cpMXq7bD&_yY10@0}{?ASk5{led@YHKYQ}kfX0G>;1WzoXESp8dN%9k`n~XJ z5(LrU&HP>}*zybEfF4&!!@SGs{av1|3)?ocsbW(Usxo5;n0 zdI|M1H(2Y?BSiyEKG~bNU3PBs!v4m=oJDn7|Ih2TPyGZ78(RaSR~bPf;vkPe?{;d? zH8Z}a99pEKHS4Y?H8=yu5Nshq-!|vx<_z)2z!}yDI;Ys$?rC zc*NXZYopahz%Y0M}5xmc42z|;UZ{_mOoLx1K#&fU90=Me^Cph~2JwDE9D z+c@83DaNN;%|wa)_v3U_kBO3&Tj2X~Mm&+NsateAzjO?iI5DlB{>^@BybzSt@0l3- zWK_97zTNXd2PMaX+-uEr!kcv^0~20sXbd`X2Dyu_y>`>`-o3&0W~Njnq97gd8IgbH zft|6ymUNiy{g}TMNzB5K&|VX_bxa3U zw?(`yCxUB;4LV2G_Nc@6lTRObZ@riYO$P`r{Nll67^;wNZD#mK&d7DBIq`t9W-Dxn zEY+8uJ72SSGc>nB=-{$b*HojBFW)1&PwzZ!x;&@@r~RPIpIu-NmeI&9G0%$SX^OU+ z7JKI;B8^u$BTz;6p4G4f4m2$WpG~KWG@op2TT(qzo3b<;nr6 z0?>{>3a0VU*$v)PQaz@Cg}0A!YKtT(o!^^d@&f@?GV@?CYLg9I*1;Xv(%66geefrn zNsV3!Vw*ZYs$2kQ#vhFwZBrUMXVsr-&dup|MKdP%^elJP`L)f>p_NRGF8>>1->HtC zwwhobf*2T7wdb1zj!ADrtbA^>nWkJEfZ9t53f`Zp4d$tCg|o@(%7mCN%t-*BVdI_8 zoN$DxvQS%W!p5&!^@35hZ&0$HJ|Tl~j{95@?EnW`I`XH3CVwd#gufGQ^9nvI}bzR;@zSpe@kxu1zqJ^F)p3pPCi;`(~rWHAulQ;Ifja{eXt z_GdD2b|-{hY~qe#TeX(n9g9x3H2$Z4nOM|tH4uEl1yT8Z@$*P zH0omNPdd1RO&cE`mAhC4bS+KQGPou5wW(|KnL>{RxYa~wLK!1k4|miO!yoWUP)M^~ z^;;YHkv`wz9sZv-g43A$E`)~tA}mpr6Ut||#lBlgsMou@Ml-!|-x@=y>&Dlp+IMT0Bs zF~zEq+MT0ek*dM-fwq7siXWBu_Pp)+AJ76x3AFq+aGZs}yMCcOxSmEi7xs8LadMhWg>K{4KM!6B7KwLe6xU-tYm_S(yZp^jI)G9FRy^&vNX zM2ZP+h`?I!og>o{pP3(~-`YHS62Vfdhf^6$mM_VH;J2`BMeJ&Ay8^E1eGla?yK-NTq?UQix=c zg}j%%KL;DUnv~<#6Z!=+6Ja;8>>K0|o0Y^LsnSA(3OTv&CGWTd=U2qDxnbEJ8N!FK z{|tSL(aStN@8IGu4S7A*Jq;ZoaX}L{&vI_`9)QHM4+O~xdJVtwz|VUoqP+w(@}lx# zr54qSr;KM#+0hNJ^%~gXz~6oNZrtM++)8b1!a;6D+}yu?Tgh!}NR=xLQlA;L@~kv@ z_l|@?79^(rin6P>JBG&Mdx`JyqCFwOgei6&WOULjfDKuOIetLsW=i46+Ih3Pj$7@J z#%I0q0!+|tIvFBt(jmQ@-J)7j{ACt7-+Vm#R<)Q80=v?r6>K zx=1h6!(Fwu;sx#B9>*^!&}S9u`Wo9WOT*ca_xG%gP~45aM}`-0%Qb%?^rC~|#URFNiayCC9dv!g@8r03 z{4XMBL*ud5hL8ewn5#w0A32hKdvj?z+ASe2FD_RGm)O91G85*#kpcKo(>hk z+>`K4OWqTVX7F2zT?8THW?k=#@SO@A)oP_+>a6o3O(ykS%T*6YC^gL0(~1^lQ5VJgmxE%waz zIqFqdG_+;MW5x*#ZI+6VKKu;7qPx2onBOr*11KEJN>fVQU9PLBhX~%GY<1<$#(;Wir#3NCI$}8 z^Qx1_A^U{CD(J4}QRwa?vv*9p ztw*G*X3HPu1}j_o)RaIB(css(J&7&ky&v3SjDzl3!m@XIRMtgF;G&k-aVn6mQ@jsB zAz`NBa8Hi}x9!i154F>K!bHsz5Cj=W(aF{ed5v4;09i-42qoH^bFXL&b4O3?4I`a~ z8zlKY^cHV@Lwwk3ExUl9v^JZVJWX$l)1&d9$|SVb1)=Tfb-((=Me!>2?^b(!7tvag z$mW&HxzM2zmdAc5x}JtF{NzjdebsC@q2Ri^>^e<@^rutD>Xr1o(S9E8dy+i`6}Z^q z3~b&dV`6+X7q5jsL3{pR1@%hNbYnii^A5Cs_vi5fuNC2M5WG=|t`9~HNHV`G^>e>4 zSRF7(Y0@&gazD8uX`Y@jZ5cMR(yyEV9R%bYe~@%8h-U5%dy746OLQ<6XDfo)E|&R~?9uH7;Q@XXoT zCKgAFa}=*POd=R`^t{(3(0`p@@~gRbSg>1?e?Z2X~vE2c2l98BIrPOGJ4%P*@tcSGTK5AXVIM5-e0;0BJl zY!t(^aXzni-y&;~?+_$sC;dtu5{kT7=tG;J55v z!Gu2IrA55-H5pnYX1#U#x;zA(AN%cp|1uULIEB zy0Un?=jo+(koB*B%?G$614x`YrDPscrPcrHnzN2%V;8Y-ge3dD(UEQs$Sen z?F$2D9qe8lA3O1`6ezG5nCj08Wkq7terZkNI5o{dv#xI->9(EU`q+` zki%L=Xt#Az!h@xS-nSzEovrcX1xbOqM|a_yG@jzg(ty*_K7t~H?U8YZ;?@(i)vCY6 z?a3ZqdBagTn6;tsD}DWfuLA8#U_u$?@7j;Pu+J|fw{T4FF}=^upGoYeX$02Skq93{ zy%Z&w&CI0i09E&6{b$ahLK+v1`-hwM?;Kz3pBvqX@B=$7y-t4v?l3t3)wWV}w=2zy zZ_lQ&+aJU8>c3v54ce7|05Qux4`FS12i!<%#C&m;aMX7-`4z^N8PcibH0_{7k&4YB z^vG35dPlTdXIY6CfrXjzqqc3>;CQPYrR~$`K%wSBiUylaT8}JA7B}avpW%kIZcLlQ zC9`19x5P=Xf;1?;i+F9Ggc~sLk$0XV8!?H37udrjjx9}Gwsoe!kzvp3+t@+k@vVNb zn}B@0&@pLefG~c=gk=$5p$yl~vF}`^qQE*?(KWMwZt-A&T$^~iT5w?1{VRV!^K&KR zxwYR<_zpMo&9h*QKF9Yg;7Q#!U-0z1Ebg(FQuk>${X0EIKPAIjAS-s0PJ!{G<= zM4`b0ea|hvG0R$*=+ZSJ$<1@KGm$`}NQ{<^*FDU#05UZ%Ht+Pc%{d9!qc56$>?uSkb&FS880`h*$Om>48m~DHW zul9o9Ov#;-)e>&j(l5N<=!P^IETCO}KGH{czsynhHM`^71i5-*#@?coXn>hw+RJ|LBxj zh34O+xad|Xx?NfF`G9nmwPNP1Z@k%p5zEv11O_(i?a8Nx!Tn;X6Kd4OOmo*W+zOj# zJKYsFaT%|4H?-inLyd>taz;yVr)kGlk#o{iOkDUAwmAhE(&-qC|HGAX$AZz=xG`4g ze4LpO@Yy65{~HyJ)%NqxJE>^}Qq?re;7@H7&HKdqVQq#BVQ5BtkDib|O`4TkYLu z>Bbma+@;@8{01y?*YWUlt{a?>9p{{53MQp3*#l9+d0>yqxAlsrF8%jR=>!C<+tuRY{uU*N3$}PA51X5`h|E-`lOtF zvw+S6W~Vs|{Pg-Cz=yu804?d>wGk#)YfD4086{DCjEjVGxuqf;2gm#bG<6OINl{6K zWmJ>6?0jUu=Jxw}9lI@j%f?hTbK_Vs*ub%9)i;5!kIaO9AG(XfC+R)iI=}FoXC}do=ZovBl0H8+C|ohF)OE(>J$We+o&^> zblTRah7gi(jcRwTF4gB<9J#ZGO-eii(pN${$fN=bL^3Q=f zuTqhBEas4w-y!>~{>$lXk@M8E?6t0& z=6BQLho}rN_S-#FdUr*hdDv^x_R4o@wr&_>q_`rPXZkEnH$Qfh=RQ2~k8j=B3a)c= z4G-y$aNA3ZPbo3rIn)_DMb1|`Hi)?;%#Y1|7XN#hrx-k!vi-edVFKyGZVunKD*cQ) znzU~}-COBV`1mJP#z7<*$xzNoIgw}4_O=B&sWa6q^&>5_;v6%4`k(2x;So9& zH{T1S+js^-C@@e(bR;UoIjJeYu|G9Hag&DMd3j8wG#N&J`wLe|kPcpt>KgRUx)Nu! z?;7;7yvk7o8(;>iol3QY904yzamD?)2iz7wy@&~+{KoPF?)UCGjbuVY!ozk$-SH`X zfpNs~+35B&H`gY{3ziyrg(P11o!MTe5^Ibtn;secVar}ya*T1-0o0}LPR+wRT-4Ew z&pgxGyIXD^^T2Taq_buSx9xWa(8klZ<4U90{};dxKk=76_g{JMqh-o1=EKcM$mq<< zSq-0=y!JLnCE9_tQcn+sRE5yfiLENkbh4Zrb!s(V?B;Q>#Nzc(@+Y=Pvnsm$sl|Te zE*|5b``kYvICSMer3Bq`t#~eSvI;xE>!MJsp;HivLUc#|@?T*uo;E%%3=%k1ZIMqu zKcn#od#X8kcL~8|Ab$_egu5f@fU@l6^_OsWBoi~77jIU@h=e=QTJQ40!7a~u5L*O6 z5QN~6gEw?~mbnZJD9@gv8nbks(0=ixPP{whU^|l$$;$P9G`4Ysm=gs!`q9Z6NC=ET z_T0bMS>x>UkkJ(i^0E;9weGohS@>~dK~s;{%lG-%MqZfzb1k;an->oY_`|Ll;}Lp;X6bmcK< zCPHh}XB#{-YK8NF4?=WxR>8d*S_hMxIx~2)QYN^WvAe_j(0W`PoHpa?2K?n^u_5ClOGLIU=g@3AeOQ*`SU&gAXP z;?)iI|J@p*zIsL5bC+NNk%wM6Mz5o z{d6lr6aP)V;`#=W{5xhAZmDR7G2!l*AP9mWWJ2b0lxky(*RQiLX9vUc3GByO-(cGiZj5{G z^&C9VgniJ1jqJJI6U!DI_lr$O$Vuc#=+@!xNIGC4`$jjDY~!$z#0LVOgu5fbKog>g zZy5Vo=kqp2p-q@nR$pj)A9qtYZf*=S&CT0N#+dN?MT5I-_H3Jz=>xif-5moZJ zk8bH^68N>2qq?6oDP)!wj&T~l?77`@h9l`~^PWWr4V?@HCk1;JvBgL8aCan=l3_$> zG6>PcV%-iRdeo)=?>rWFr?4pbXAdVN9ocWjtJMZl30CvzZ4;Mm^gf$HaM{Zy=g%0t zhpd>yhYwh!tl`h!tr-0!M;<`1xz|HvJSu{|PDH~vH30%&DVJ@3)s68z9Qo;XjCbPH zzUN)Oe*iCRFS&fb;Erp&At+8nbv(A6!G$Yo@&T9^+VX*!8;?Of|KxF#H-PMqC7fzg z)nmIr7{;kuXG3tU%)&bMQQQ&kjtGJv2tp=Dvm?BlgKjjw;3!Hvy9pF+-o$><6++Ng zJM8w{8@aE+D)1f4S)H=y_Ra|wqwnVoaKT@`=RKZRJC4lGYM%QZ3U@~`8J&2{W|&|_ zqYzCT;fe^te>fBdT*<`)HE(GMlG}*rWf#}&Itw<1Tt-H>lE6Ia2- z7=OjZHGkxBj&Zu%g>}IY7NJGd^M@;Z@KMo25gA0nyvcLjQvM9x7IyiDGd`B{TYIIi~m_{N8)zlgTtZ!BckdavIWL)WX&m;?-v9?5ClO;Z@?#d0|zDy z;l~V@V!&BmLpJje026H7?76qI2>MJAt|xo$v~iO64y^*Tz7*U6LGLH=JPwFNK4iNk zVsyyRbfrMG(}*NXjpr`8O;+rj=ZrYV>c5 zlp+Y$zn3BjApzA`A7t^)=rxwasT?n`AZR293(c)f4nGofqMos6NN$cIe%a#lk7E&f zgUM?JIdZhP#qYC~Bel)O`0sg)n|Z1wvIR&R-5AfxQPHDKz8AMxczlz^N5Nn6vhBfB zHj(XG1k5vr0&*qUzR1p=C4r;%JMsLJg~!os2M@lRe2_E2a59fE-k%RY?9wLp@J8n% z|2rRNtTg66m~or?^(x=k@^eIWJ)7&?=2XjnvW18s2!bF8f?!R4jv{m$2%+bCfVO~% zymxBra?hQe*P%TF$mAp0a|fM*9LVIgc2^RA7H+bXjc5_`c7cdi#PJ?C(!GNdS=4JM zwt{IU2hT5`NX;+bzqG^W+S`r|PR5t_JCbPX03jcnyeYpXFnlgIdJ!)tLm@18hAo5>uls*iY1Ht)eWZeb9iiN|#v_R}}xDvQwH>J~RioMG|@o|DWt#}Ub9WzGB@v+oK@bE%5L|JIE#CHcY==E} zU7K~M6>+-4gl_lT2^{$Ffnh!A2HA55A8ns{z{Pv@%;zAi7#Hu=6U%{LU)k)}tH}-wW4Rg#KDY=%8?eZBx6XA+mgTko%O8h~tC7k29hOO%~Q1dQP)- zLOvcSn#F+AA7hVBbkW+)Hz|@3ED+UKf+t<=dL09t5QVgHge@#`=st_*TrNzOal7-} zZi-1YYBQ#@4Z&gEHQVy3yd5_5fb_*PeZ$|L}&24`FI*u$ALeDrB zYAYL_U(8t@R^Ig&Ia(V2^u=_~$8mN>TZ?vw_|e$lzkiw+M8h2VJDvM_pW%5ea@#6Z zXCnWe#>(xOGyiDOW-|YNXhHmp0X zNZ<&%K=<4md4KeP%cxrHz21{Ow=cx8e$vFHXY>LdGsn2rNMo1vZ4g}2nfKhQ`MC!y zvfGUypzD9U=eF8gS+SfmRLAr0=(b2>0^4=A=XP$Q#&58w*V^SZ1otfBjN?WgBcruI zt%fH1R6F80C@_xoKQA2O1GD_xXD_Vc`LVi9wsEk)81Ivj3KN=PXU!o9f{>9Z$S1ja zx|>Awo6+1LR^H+0Q9E0ZBOI+aB?#9O ztZBf93lG}7X9};|^_jQ7<9$svn|8N(FVxxa{KuS;Y$q&2g#L(Y(`Xdr$a<&RNC*Ub zOE<=AvbgM2Gm6;TSquDngtL+BI<)zLBfbUyXwMP#ZkWNJ{|Vj`_w`UP^&9>?AK*E$ ziOY6}d0bB;qSrZ++s#1@vG4smyyu23?0;OgBYuB&t~=(It{Gi~CJ~|qK@dXDvmAwg znWG0n0iqKg=l}o3rPwYAf*=TjAOx3MED)NB(Q{bbGYc|k&LUqei=W$xg9gm(3Z~jx9i~EDnX>kexGwoubaC@^Gf*=S&aM{PHJv&2q%?o_ZjTx=tt{@14AP7P_;w;@T6sbr;xY5G ziQx7bM_OA6w3~SU@RZ^CI2H`8EHL3Qy`D2NjfW;nININAjGy7(@c|ClF`^ZNH)dxZ z;olLNs(B2ream8ch8OiBfZJS~D}fIO%$UuhuF?1Y0)O`KMXzMh_G=b)<8{v+=XQ_U zL^t2&`D&5j`6#wp{j<&Q1UruZ8vOm^d3@jF5RKiH=jAIr{xqs17{kVr(d zAP9mW2!bF8f*^#B;w(Pb;KGEhSd4R`3=52!ZNg6+DdBfA;0 zWZ(D5z7Ka)pU?e#@4er9e&_uDz3(&UykGNrKc0`}`Fzcp`C~%S8aEk$Y(NSM3I-Kr z1#JonKoAAR2^cLEc_-oeJ`MS{j=rUhAWzA!%uQYjJC1Ykz-ZZ+B&PJ0`j6 zl59}>%#^O_tFrb!)jKb)DuqNQlsArz=YQ$6amAN+elPFrH?~di49;yD8+Z0jPbq08 zBa@4p8-_=7YY5gZNzPvB@|uyaGV5ei!}9Bhp4eRchsKEbvaiD7((9kYqJq9lVh9BPXLcJf{r zme;}WTBcs~y~LJ^Vt91&k)$%#_Dr<3SviU%svRp^j1=h3IjwRZj}%Zyj1#9a#?Cx{ z@o^)IK^t%4tL#coX44B|MQ+62qK^&e9WOK4adk^_x}F`7!Dhs)RyKG^F0Q zEX1h>2q{mAImueYi&ZU-{}4l)^2`A6Vok%Y%Ja+Fa>&P%`e8`kU9XH?wHESE(1z3Kk1IR4>44t{*b3nD=uBATcx(2nE&MskT(mCO2ezhKe+yfsf<}_R#lZINT zNW}LF6Sc_*c8~74`Qiv`T;fhUns&V+6^+bl!|P7D1L1M6;!dTB%*tVWr9WSPZUgq# z@$Bi6)gy4b2&t}?Jt|Yy8tJ`bN!){If3CCRXMD!!-RB@BJ*l*i+4;?ZwG}3_nve{h zd8C35)P8*98AUa?bv~X)$vA64*M0*W$-|5)#eaG{D`y-a8 zA}mL_NI%20v{auW9ki8Kff)@7SCxJk=TDDCu&Zz$N1udR@%csjTg8o@#{yN=rLn*1 zR~7M>W_%K@zKvg?OkwSQ-I8P1ZFxH0rEO~yW3?k|7%KP4|4_!wj3e5-y;@Kym~&;R z0&t>mV?o1WKat&tDRw7!0ZRE?D^cJ%c!Kcuoop=Xey^%Xlg4#IDh_or?ZR8s@6PPh zp-;Pw_$8hyrGvI6b?BO?r*L@_BP>huxp}{A_p8Pr1uoNk6*Xn77W}HQ;slF-m+vZp z1qT(<;hOwCnh zJp|~>cB4F?UtV0!^sPEP2pDsAe3aqrJyGo(}*-K16^a3Pbzk;+`)ZnH&?Fr^>fCBwIL7ExbTpt zQF~1`nj5?_ry7DvlHAvd!fvsA(`MZj=uRi`&*RTrVSNN$-&Zr);Jh~O~ zIH9|-d*?g9`_d9&nQfEs?oVw?XxwA^wAQO`4{Te@{!yE!hNlc5CRh+T_a~>82m}>C z8kLMx0*aOivFNt7$X& zvsPfVa+&tSVT;?g|5k@tsS}ho8Dw`}K>F2I_uR@!cVrp1v0dhEG) z0iO@MBU;6pkZ>v(1W*aZhHcF*(3}^>96;DKGpdgyxQsaLZAM&vV(SC?maa6-#b)#JA^3-nTqXhn=P*}BUpFB}*48YZSJST63=Sgln?X>%vbv(T6iofM;6UPTK^GcV^t8A zVWQmNv0be!AO^ZTjIy%SRA6GH8=L}-HNkh$IWq1P|pT!X9<3#RelDKhmA39d0AQ|TA`U&E{B*r z6gV-b2(D&Hr)_LV;vJ{|u61#@sXfW!S!7STw?yiP#c% zrAq)NH^)4QVgI^OLq)0TDg&pk&j-AjtYd?fu%Ia3KPax>DBs1P%F-}bKh9s7&UAxT zmQ2o|RHAr&DAf$5&(UDQq#icff0O(p+xg2avb|tsX%8O5t74JwzW3dK;8m#)((v8) z`!nbc;k@JK{2~Gz^E6Xc=sK_4N2gQm4{Eog_aDmj=R~synZqaoxbKWJTxIX_k5rgw zc+K6bDyAM0M3Je0qEM!#prZ^3qQHUww`GkTiUJ0w;H9QGb3*=qS_X~`LIQ%4ZtBzW zQWu{32v(+@;nelRPrEw7;0Q1DDmIoe2a5yiUY{eXaYL9S#k#*_2JwewUWF=%#*1e#3zYVp6^LS`$jyb^ysd(P6@ACIW6S z0|%S%3VI(2GRvp)5@%0}$?qV?976CYjvsdrO)dKlIN)nqV{v8ddw4L=rN9^u6TEvL znu@xBVgYHxe*^UpO{%>KfGlG7z9{2f3R1v|N)%0tSpuHC+wAoX#uTqweGWzQ3;qNJ zeg8LHcaM`%+KgzA{o#3ujT$TRJr9k0`JViX8K1Qw!{gqPB<#J7pKNJyqos2HDlYd&*7ue`6uy^PP3d9GubkQFK-bWo1~thZKuI#hBY8#2!DON zIqsu{x*^B_xcQ|wqYx}jNMdCgkZgYaNZwAU_n8)*vWT({46GBvy2$*J$zjj}eFx7} zBKsCgd<~#{(*bLKt)p#_xD<&DxMB%8aR$@{q20jvg&SN-n`XCjmRE*PUbf{g0!x2` z1w^y*O1Y`3I@Fd(0w{YUTnbP@!Kw1Fbg)>j5D&x`3mW?ys&foYM;0wOdRv0c+M!Pc z6l|4&)E2;b=3*&OluzF{kHpPN*M`F-YFbv2YSjJ(DYv|1_`b(tGVxIY7+3Mw+53S< z#%QucBr@u!v{8M)E>m{=`t~Dv{w%>1I+Xgs1A2BJhB#BaZ}c0fVHlf72`Sq{t0^cT zqQOuHb^=+g=yV1nZt5LTwmEqKXwO9pMHQ;6%xg;bWeHARL0NYVE6pxS?y!NiLpCok zM7@!Mr$tH+`q_;qW)Z$2 zIY;nsdnc2&P~e61rLPEW$+cz*&qQ^SIoDI%v)A_CFPHjJ@9pV4)v_OZz$lujH7h@O zSc4M(mE>V{7_iZP&AJIgw(@A-Us&jeVKHTdP%kC=EAcm0uSBr7#~w61IR)Fc24 z;gONUw5NWN9fBq4ynJQjkt=5HNuv9L@Mq&i3>|C|09O_`J{9GI;uYXjGj}qXoBL_&au}s2aIfhM)HmM4mM&Jx)03uS`b`xs>affKO`{)b-VZuT@ zyI4Z{XTNR{#1O}k6*{HkNr|thGSgm#Z^A60(SN+^CtJ7HT*aWcvTI2{;CBioc1kn0`3%#N1);caMQAq2fj@Gz|MQo9Q#oG_pPmurk-qKe zsn<6Y*DpT3Y55eNxb9Lsoh#au|9JXUIC5=(DpH#8 zGoPFFF#;|4_k=yXng=@ZP7)BQ+jJ*S$i%c=FXR%&zyk9rR0lC1Ys3?P*2jOU*e@Iq zn+w98>w_g7aB=o-lPBc}uK9#C#>PmIwjDh5{Sl1kl7Ah!_Q=;xI;L{*+N3wn!;!V0 zK5xmVbhw!np{iV+R`={nQ0}bVXV~l2-=I`Vr_MZ&1YcapgX-9iCY3Q|pX3WV&rU5O zTkxI9?FVUp$>W>3H+FSAXYIVJJ|_RtE7b@FGHcv_?~2xC+V|(Qzp392x!-)AiyN-r zZ7iDJjR$0*b^+~punWpPFK(aV5wv>PPjxh=(JO!UpFRDT>JE8YW{*1&{2ocjY+@0B zQlb)B?y$RTi51xBBV_oGw@qyJIARg3)V+*Z^XUQ#hN;GuQAeXu-mp47>a}u z*l_Vdy#>F!8NGn+wpi5z?caT^DM(FE$OMxo_Xhhr_X3Q3hO-z>IC^2+`_`hv(ukDQ zOxgDaX?(_AnUV=G>Gvm61%GM4slCr~e1PgKfXNlje^s3QQ_&EeQ@t13D)jp*{4LYN1@Pq(){&%`65gr^H$U5Ps< zVV5I%7=;P4#I+}Ko|oG6`poVKHmgl|RCKfIxDTQA+HwPX0&-sb|7pf7X}g$OKa_;a7@`*=v_ zw?+fVx(`kR8Ru!6L(~WCBdVuh^H8gGo0}>cZ@JP=NzfLIoGfx=SS#5Jf1q)w{azo) zIexy1dDJvxYXivmi3S_u9%NO2!Rf6K*>KSx!yaBS(%)eP-8bYFZoCqKWRu z%q9~Korfby{~{@EcyOL3v=NpdC!^}Ruz~O>Kn84HO6pnPyRG5R*m2p`@%j!g998^GDuQ{_TgN&lcKx@n2q zYPwn)7Ff~Jzwp!h(=1j+6v2Y`TiWgc&{a;sNKh-W*Pf=%AGoHSYR8T{`M*(ZC`PDb1og=arfeje_p&5`Nwa-TZ^A?KL%0KpVkY9ADNng(|bwYWsYj@-(kL9`U zU9XyX$8x`O{I(ms$fBW9Gm%f%_Wu#hx?!h^)!PWKe;4Gdrok8kxdn(7YSk-=M6)K=o&TmS_x00anEIbA(+%+lh?pNn*x^ z$lG2oGgPCg&x{wj3zwwD(gv}C%JE=MaEe7;qhL|h(&_wd03Q4VjX@$5ZjxcdeDsIL zdoy#9{GcZsK8Ies#0y23USwD*ugYbauMQE{^Fr}U#KWy0bOJa>*8GtUsSa}2k z3N8?$bp>yVw|L&#*8iLxGEq+d1jibL;vTXWL+Jc|BG|s_5{@!@1P5QnPS5Yj9Gr+*VE&DoI;)EPL3xEWhQGc4 zxgn$uc32IY0<>#2jSvX;WPFlPQHfnEt%jY}=nIKx0jtxQ%}GDD{jQbh`m7N{gVtbH zvu;VKEx!@LRC76=J3?}42WR?bT+t3m_C6{Bd1M9WH5`kNZjr zF)BWY2{s)GlfYcw4bp~t%cp=oZtn3BvdFEF&%Bzr?G%gj#)_}poXVcg5IJDSB2HDsGD3EV|No5;45I+j5XH67ev#6p1*nZ>0;nCR8}M?H_Nlzn;zP z@%3Qlvi9YGt3FCxvM1nf>Kjri#KprKtle75pb2r~FoDQRU)3R9@A(&7;@C}ytf1uT zYio{TA;R^_OBVs1?i`pgH;z#4b$KxlZzyV~Dy{*7)%D*Aucg|UedrL_CA>fB!JpkN ztncGP@Cb|hDQI)}mFjH`Y_Ihk;Zn*@;BLjB%dAk`DNC@=Gq=F80h;)%!7t#t?U!8{ z?DiS)DAC7e?@V;ESQZyGN)K)WU*G(wcb)PKp)-YEvxGFzJb{H*F3<;~HTHlCQP1EJi>+Q+x?ERUjjG;Tl5`zTe(k@E{|hokZ2lj76jI;BtHK|cl4G$p$=II$Kh zHP@=swKd?P;oZ~H*bu4ZviNf}pLBYPTgCe~T^H|h8!b)m546H&ST6wtBiqW@sn0Kj zPb|v3D_54fN|SL08jphUBVcEuY$h;ic`Y#Gs)| z!!BO8*WQUN7?yk9y3fWG+S+kB0X;s=^5ZV;hr7SCFdS#`F(=F5{;Q0P`afhM|5c_g za$=um_eLtITN8Ev#ihFN?vPyMhJbU=lLF>TGC6Hk*1AbTH*D7&-VLn~5f#JC7@8S1 z2Z8(dKo+IGv8a0Tl-plW4P`A1IK=<(D%<>cI&W*u*U1vR24cayRGJxL2t2dNG$}Vo z<6SzM;djP0#huZFJQ0TEJG-C2Acy&ng%>~!ntJeo{CDcfdBqPe3&5v=DX9Y zi|KJlhNIl;oc;daJ+GHmrOtXGWuNL-jP%)ftrj1Xk=52N!X=`gJl}mq#)1sRh04EI|lxfvKEreb~+8Gbh;N4a&!>t zoH#uuO&qw*-NQ?;NP8jm!&;r#hw9l+I3A(@piIh;gatHYfvb{%33{onsOrdWZ*VTl zI`nZCIBwSvtxx2h|Dt!JgTXXE_A_75(L|ANgq)ynzb7;;Hn~puDfC)aX(|}norsbU z1{<}GYIP0nx4fBVEtk7=j`z@gG~e{ql*HM~2c3g1`*G_w)50>RQ@StfLba-EOSu-_ z@+$zYB%>)|MxdxQ|8mp*L!Sz-dx_UO2p=pQMEvv)Kdy_b3L&wKTkJlI_>osAD>NVQ zHbq@S(t8E?ErD4S2-y3TD;<2a>N8aB)qhtL9{2Dt5qNG{a;Nu3r69H`$pn&35fqNR z8;Xk4?Z85*H@6`6PID84fJnYxv+6eb@lvkEG{{7HCcE2yhgb;2z616t)>0)IeBq@V z9DuB(!!9rwJE5hC!t1EO$f}bdi|{z1uR)N9c2ch{>RqOVSWpOU`o$q*!jala9Eu+u zLy%}^Rs4w?ch1I~+6ey)u1bW{^o0pol*FCY9!i_mjJ>#b5j=LkR=j{PSHEU^)3`N; z*9Fr2@mP!>3j`ToM@z^0y5}J)_Pz5-R-Pg=`;v38t2SBKd zs{M-`eay2o(<$s22_%I88%#Nh@}+)KYb~?-5QSv_G#G7XmbglnPT8v#6_uhKYXR;^ z8Hqui49+`+;7r_8G@%_O;4r`siXF^usIZEnH)_m+tVK^MNN#N3Z62Sn3t-??IpC88 ziJDcGHzamWEw$f&VVpfe?4eAX)TwTwuia;LMe`Ol^;>8tyS$2ZYqmI#k$51fK_zSj z(hy-lM|o*ArJsy2uPjjvreJH+ifcE{RW@l$`mT4Ymfg1^9_e;4EWCzV@eAgNp%Zfb z(<}XtbA`GA6;9;HUw=hr;J0cOWBuag8Lpg;l?p2?Ykesc$kH(o_S&d=Rq5N~16Svb z#~<%4w6FRFadiJ7G9t+N-u<`}*KlIUNsQr#m~5@Myo$Xt-0)p9w0F_a>atLqmWa%F z3v(?!jZ?#|ybMV%n`?e$l3s20DghPd)<4`5nqD9~Ll{Q%!#HE-$tUJ~| zb*!!FyfN~a!#idFhVtG^Ik?L8KQ?{CZ;@>Rt@(`lc^;1^<;FE{ZYceXY}`yzLZRGm-wvIvR8_7%~o~>;&@e}6bwHIxtk&s$+wb; dQQ;f&+=<_u#jG4B9v%OQKt)kQArEC1_#eNxtd{@) literal 24424 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∨LyJx3l>e+$VJz@5@^tX(@ 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 Sm)2_M1buxv;E~@y|NVcum}rv# diff --git a/WebHostLib/static/static/backgrounds/header/party-time-header.png b/WebHostLib/static/static/backgrounds/header/party-time-header.png index 799f32f2282ebbea85bfc5cfc233d4582a9f751b..b033486b2aea1e3703bf6bd87e1b39685e9f7547 100644 GIT binary patch literal 9844 zcmcI~XIK;M)-_;+0VxTH(u5?0B8ZAKL0Uo!sDOwdMLNFMLS|qQ7r*`&sm&hB#OADjRKff;jT;JXTBVZhS^)3APwMAar-UNSN*(A?ztdVzi zzyvUOKawZ_(`cC(Qw=G1iDyq$JlJx04)I*I#}nwBL8afy-^(p8tUkwr+xJ< zg}lB_p)71rD8JTzEl}1db1UQx%F_7eFzDjk0%e`DK%uO!{GyOI<|vEcso$?T@NMZ} zxwd=owzTs5#KF(GUvsxe7F5u+CFQesztyDa!r#S4U?R^`QK9@bRnhuB)bqV)YAPxS z1kJ4Vvm3oQenXe=hIh!6K^j0GRtPmmngTKt~NG z{QD(HdB6_l{`=*BBJba8`a9A8Uen)+{`Z=Gi~bKR`|as}RUR|V|7qF(2YLU&M1Q;Y z-<0<+ciG=f^!M_=Dephoa0eI6e^uUpvf&OcnEy*2?u&K*&ujdlA;OVJ$-%b8?P}NA zq+6xp1wzmAs-jwJ9OO~r*zy;~EPy6seD2#m9O;@SBP(u;e>H%c6`vjrS<{%=ta2>6 zXcY_X0f@>ZoNjd;9PyS769NaMw87MK7$yK0%TZLhDc(4$c`c8=8CXLC7%S5E@3lI` z44-r7h4fL9e!yFeTbmgxLC!yACqQ-Ak-{Hn7H8jS!u|f70iG5L{Oy<#+-GaPWu8F-clq zhtfFw+=V^lSQy;Osc*}P6E1*%uEG(%_%M?m2@{%x`dt${IZxC;*+-K!No8_x&>Kkm zi-bXw2+rV;^cMkd^e;o{pU0{Is$yu=Jn=r8q{a+t#x$inZ5vjEz~q>;4(RDQpu!#= z0FJSp13tDGsBtaM6N5)T(_@0tn>0xeNDibCV338_Cw9~MWCk`061S3~Cxu2iV`vci z55<-mLVjW6bfvTj+W4Pn(rcjDRowa|it)tn#K48n%Srq;G8UpZ>@$t<0h;-{Bw1q# zyfhpXYFwI>e~mRXS{;Yo)Xu2#sugU76>z^}N2A*L)tsrlG-mL2Yva#%8>`zytle}t zR&NL1eg2)LJNkg+qNWs-Uy=EDrO>6nRR&O(sACCs#pbN-z`#?(h8F8^x1sYNO4o{w zmo2prtFykWHsaO?<-GS5hYpzkv0hpoyFC1QH~yBoa)C@%WTHyA;z9Y|*;i1^t{}a5 zj`(+-By8q-D?L&mdg6$$DCW6a-U#niSJP47FN5K5*6BE871ardiI92 zK|_nU+VhbiN8I?EDo%oKwdM-&3|^pvV)vKDoZ+>y`b=D1cM4ocWo(sOdEU@suF!Og z64+hin;v$i<~49Kb*ShHYkQc&TqV<^I`3V!B?E)oz z@75kA!s?7P%qpW2r9@-i=cSV+FX*M8H1GB1w+|*9ZFdgt!u z9DydqwaW;?*5!DOZ;&<^t5Gx*v%vZbpDcPj2x8(yK2JSIpX@QIwk~aEu;YKbI`}qM zRr|5=(nSe(i^#yhq-uj~uAIxjARFS|ou^(GKXK;URhFvQR>aD^o+!|N$G<$2r=L_Txs4ZmS?ZrP!>p3}>(i5c!yyI;9@1ud>DqpX+`;7-eD(t>k_yqbBRDVX2X!tx>SCv#|UjIt9MV`vw5)ljw_&iC*Jmx3px_|WN ztlJaKbDdKR7C=+-y&L4BY0yx$7LLb9L}W*7y(yF@PdlvNxHy>_Pi8*UjD7dKM{?~F z6p70{jG*H?3aR8KgjY?E(+Qlx?LZyR+^?ocrw(%(3w~WHKh{TMR(hOov3H|n`=>@M zA7-7)@i5wrmiT5n^)NDNPs)QD!U?yjj}}G>awKmkBBt|9Z!@h(T#;%lJEqzR zkwdW*c>$kkgRk0*7Gfd&)uE?D;dBJX()>#)+pcqD%P~*yW%2D-#$S{L;vWO&F!oBu z_v_7}h_~cRi5RA^M!V%T8?b;sV`-JbKY=8bi_#q$zKw>NIRezCY9L<^q7j`nz0 zORo&W(LSd?GIG2y0mVIp$P80mieB^-0Qn|CzIBjK18i{nPri^M14!pbW+5sy;FH}a z=qLy5A&N8{%!)?gyaPHA(xu6nY^VPy-umB)KYrBytC$RZhzi&o4BzD~gXuHom-Tuy z(m#Qz0-C)B30_HS&ZryTI|54|v0S`8Vj9pIlwlyPOP^kh0GQYB{DqMOV)P8FM71|X zq*;Zv<-Go&O>W7w81MJV(%k);;L7x3-7wC>_v5hlc5q||<-$&V<9y-^2kO9`rCFj_ z3rud{2ju*5#LT3GC2{*xENZO9Ftd|Wc3)3^ug4<2zY+W89WEECj8T8q8;nJBgPad{ zDmPW=E~HTL!*J_|PSbjrpN|LI(2|nl=fi~~q)U>2Dp{V%dhx(~)a|dbP_!MrU<}`p zu0IIMpa%r2O}`1YTo2UFSf$;NVbqGBbo?#D_m8ZB-&t~_j(XJ_sB#YbekOc8s?3bM z^2pIcof*QeGS6;unI-jI;LG16tK3xZKCYrww{x7+3BPu2wr=HYF%w1Xp zx*G|xhqCr4VkT~xD&y1aaLF3>&t`{DVbajCe%Lw4wL&0-7CoybCxj)C;P!%Rf+=h$ zj6DgGc&Zw$Z7quC>ykku3AC4QZF+OZX08FRs?u-cQ~{>sSUAk;)!8@s;sb$%6{AOU z-UrddzoNeT(Uwi}6F3ZmzbS|%TtC?wRk=;_OjmnBCC?BPeaFw<(Y-x?qeFI@yyuqh z8z(DeT$eXwA^#BR>U?c;FyLGwZH(^hSt^X~wNq}QXf~prscdT!?F}Aq$*E>}l-OfQ zMM%rM-ggYw479!5{CNrQ1-C~|TC=7D4)>{{xJ)Y}6F`JtviAE238r!^j#k;ep}<1` z3)4D5s|;j@+qxj$Mv@qxF1AbB)8X0yV%D_GXjS%H*AsXQv`LNtEr+5G-~};Lzv21q zRSA!;xi@fPxn4|3Wm260x{fOMAqc#+$Mo4-hA<@6w;a-=DGsD)NE}Br{4=MD7T4)B zoal60sqlm38h2>WZDVuI2`Ps>8+J^nCP~$vtB40x`gmf1`RBl7niRjNnFkP5WgIrO>+?d3L*xW|sp;ZR}X$-C^-rRQC!aH!EE!+Mi_1CXc~ z-LUvVrjtKhcC%G98u;<8>7~Wm{dx0J1q=v60t#&GZv4%e?2GD92X6!RwC#b)uZOc} zKzb^OW>v87#W?>BKAVO6F)Qn1A1C4fEfPJU<=v2?{4&j)28QZ4s1o#KPnpo z>{75}noG8})JIWFGTP7J?txrS)KKiiN;kK|N0teXmRng&_@SsxE~6My<@A|z9=uge zL-*-o%;b3z)0UwOSKLcN!lCM`h0y^v6-DW+#okVYon|v@@o%L8^Shl7&@Cc|R|V$l zZn`{5bMHaw2m6b@53c(ZS@HFS|A=8)$7pdRhe*j$7;YaKyP!&nKts>D2M{n1pSiq6 z5@5U8{M?*paxRKo@h??t+V_BG$wYB|Z>BEI_7Tk%Yv1lmydN$TO2eRpYfG=~0>6}> zm-tFd&8#v=0!^Qys_RIJNfZAIz6SXacJ^?zM#DwZMEw`5uHmuf zU!1^AG(*u~xN;6_%l;R<2$XedC&q&Ra6O*aQ%+Gd3Dgg!L0+d}hQhmTzkAu39>@gLGHjNtm zAcYCC&AS%VsJyN&tl9>Dbd7oD;`NOf=4MDQe|q!h?ewd)D-sz$25uz9C7O7&^+xve zOv{L=e4S<_vM62PF$>)L7;)4*z;}S$OV_widw+Q*F7G#g4;Mno#ichPYd#8UN{g7S zx||!KzI(>0y-O#Xcb}c#|xxX_ou{QAE20wwb+TvzmdQ+2uD_3jx z>{tho3=%8u5xHf_aZ*#8E-kSevWQj7$@MlrR4bi%z0+hhFLr@NDN-XQphax^d1oUh z+6A`K-DjXwHpq>5&xpwu9@qCuRb|XQ8^wS(9r!xCl`mHyLRBDxL1@wH8HlHyu}sF}8W zxN%N7<`SbVt^u6pPiP-#WbeIeslxX^+*7J{{`fAad40@o(z@*!Q;?%9?K_v5?Fs>0 z{8@~);~R~t%N--pm;8iaJ*@kKTT95QgyCA?b>T>D+iA`Bh~pKv@b<;C4C3OF;O%`@ zhr|JdTu>cTEfbQj^>N=ic_RWD8UHKrt6*@Gx#*MC_6s)PRbN!xtCPE~4xGkAMZ?cO zN)Z|hHN8dmCk_e=<9ZD53Kha8iax*DN}d%pP(P=s0`uE-+&J^hXm`@ljqvRpke?aW zJ>bgr!_S|5#KaB6Ac}XJ@WG= zbfK{scQ1(}8JZ3-X+s@q+0t7c*;S|kE;a%fgdc2mYY8BJY`CP*9M)g<5_qOG%pm+j?QBNKl5mTs4ESxj+`1uC{ zWs-9aa1N>#{+!V>G2H-(Gw|(-UZ2s4J#Cn}{1{$zEoKR^wdWV;Lr_jVgt4&07g;2f zuukYm%@i!>Z|=T8y}`tAaIvWx|9Ee7w0*pDh_LpJJF*mPj|y<<i7t(bX{U(D-&`UXpux|rK|J89jgMDqDYsFJI} zaRYWg!mCTV=6{n?aUkV!@oNpnD0*a$$M7k4oP5sSx2Kw<$k$hr5$n5ae!q^=SKs`+ zfwj!lh-u4&dx<`i-OIgSeVIcSC&#Uyw6WX6#{Y)PW0XALQT;Z{=|&9ss?Ef^uG@u8 z^eaVMcsD_`M6$X==m2P9+f~#~vcN(d45d)+Y;ZW=WULk1#k(hM8Qb*q1mi59M7GCp zwks*`7FbrpDPjCiWk45irF0fs;?iAkr0fTs}1!9g<~A7M~~`r6d7NoUb^oM$PkNbmEqr z9tXtW%Xk%J4)C{nE5Ez3wYQ=j-MJ*KSy#7J?McFIP=6R^{@IJC-=z`Q$2T=&6rWy0 z&l{ZIoi+PaN^kcaF7*a2A&9oSOUkQ`m1vfzbCR!g_^D)=_-d}xzfdG>gyD_(h|`|* zSSwHZcS-vOl)VojXm?^`^t^S0E9}TEkhK3r&DP06pN8OfPIO$rVN2*eK99!>ecRP4 zG#ts0?rK@O0mkcDET?HZMFA1GKHUC91QbRKgV++jvw57wsB)-6AHtG#puieG<6x?9G zp3&r(`shJeFSeN!hC(m|v?oqEEdFdWJ_Ok0PKW3GF1Qx8QK?7#%})|lLVrt@=z-?GIvaJxgp zSs{o+zm_)+5sSMds#x&$9SzU|%0kjN*U_5vkJctvbcNu{p*#e_@uRJ`sb$HP5KPQ! z&w8E;3p%^Y33*W%cU?RdJKlO?SIJNh9Jy9!R2G=7wH!0tfJkN_3o5% zbK2x~rk(^U7bwD@DAss;yMGpC42oKbuuHM8f=U$M1aLjf=rCF1_#S!POC!0qP_r}4 zRt%U-%4!6H=Haw;KOtRd;d$vRd%e-L_m!2NT1lfO+It~K97EuBEoV}%z1YM}l=3Yo zmcpe}pjOd}n(syr)%PqI(~hlaed&(6`i27|u4<9$s*|xXJCvGB&cigx$9s+kIe3k4 z_J3J>UdR({7752DxgJ?i{#8Hf6PsZo0YN+7gV*t-#9LI;g=Y*EGk%(TRPcuTwYC_+ zDy&9+G*$0s?`?$)u^jA`=!KkhZtJD?y9U?<-ZQ0zbJo)Jo?!1ux}-(ZCBh}~eEO!fz7eH6 zLN^BCfVf5}YG5(MYSv2(zvTC7{zquWRXULVeCrv~_;vF-$tokV%_3?SOV~ ziB|HePg%+hzWJG{U&ayeXbB8syCl+1$wIi(TynJR8~u~i{vF69>m0HYo9YpQS*zJZ ziq-M#Vw;0lj$W0y(G0IJ12>7~tUg*8O5N35{N{ZxGOT`G4~TPjc9Ux4u()t-NY0^a zV#>=a@ZHPA4yTj2v+aQR`R=f1yLXAI!3!@B256qQN#8WpccMR6>nBV-P)#Q0^XZq! z{7$2nvg}_2@TYB|PQ}073eknrq(5@ext*m3jaaw`MNSQTb&M9T@yaZD)Ro@YvM|48 zp>gJUKL%p?3}$ufHB5G!TIInWgG}-wO9RW3)V>|6NvpYNCqsb^0B_jL94(%+qi&Zo zKOM<1l)}hGX-!Bu!F8k5_#=>HPy%|!j215G$Amq!_Ro@Spc={;?9=)^Y5a-G0JAJ; z9XOJYPt^BkBCsVI%D?bZF*SfhVmo5t zq^lZ$$q&>NfA!4r*;gLxy9@d*S+Bsc2lF;@?o&AZBSl1^V)b_+_;F)z(+?tL8XOgR z0k`0|7P7V_WIMN|jsO#5_f#own+s=$7 zp>icF**7Onfm`N&{XBGM?Njy!3ypi3XPjC3u>r12d0TjEYvUhL?T+!`hGurq<9>G_ zo&+eY=NM+t^-AmB3$vJ=lqT7mds}z7;dFCVqv2`Q4B%W|R^17^ka0=0y3^>gp6%Nu zYu?kx{d^%(Az<_Hzb5>gkku7t3Az?)m1Mc#Nqmzb3SK zbR)8l200UGB!NqvUKFAb3l(%*E82B3-q|OPNAPYms)PZ_hlvb|&In;qG(h+8PR`+v zdp z?}r(>v58JcUAS@Gg%7_752F0p=b#>t5|dkik5VVW#Q2V>Q9PUnUEu75ey0S%Fd5}? zqHeUG-a?aoO1SjHjxD$Ul()2+Fss*tge*X&^F2O<3+nFmi)zLH$;AkG+LWosdW?8| zVfoZp*qeqe3iI}wrf1{c5P6IYbEZ2V^J?gt-= zB?zj>n?q~+Lan0kf=<%Fd&7KYw8e!QUn9BPPxKEdOtGkCrGNqBnq9|;nVs#G)K(p` zr^aI^D$RZu(2)RnVD|)U)}w^Q=zdn!N7*x-OSHPXCyq*`*9TF<}!QK2s9b zuB6h9dp@9eujpx^Y4+1spPH7pQ8yCz{a?115M}02ObUwMrHz;&+IG`KPi}P-_r*>z%-)Q7r9Vkt(_by0-wKM2YJAz7rd`y; zRxi(SZ=3u)P;lw0XG)FN1i~Vyb_&u=K{=oZtvL@ke#%@|Wf4n07JKK@w6Rl@`(e+* zMm<6I9X}C2h5Gm!uUf>nT>_ghB_TZydahK^>iwt{Orgl$Sh=14xl<0Jg}tYZ_u`YL z+ezW69q=FCR+xBom8Rk3u(6;7wN(=M09sZkAh$U5l%cMS|0w}vBUVkvHWsD1-vz98 zR~qa>t((SOn{4XDWOTZx?Zspp9mhM$@+&tV^E;`l_uG-J2~J^(v^uw-ZGs` z%9zE%LUVgwt(uFm!2Lf_AWm-p literal 25186 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 H&xHR0AT-nh diff --git a/WebHostLib/static/static/backgrounds/header/stone-header.png b/WebHostLib/static/static/backgrounds/header/stone-header.png index e0c9787e5735952a8fcde76945a95be7e347f142..6e93a54b78852607bea17e7e2cf1fb0371cb4b31 100644 GIT binary patch literal 44849 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 literal 68049 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 diff --git a/WebHostLib/static/static/backgrounds/ice.png b/WebHostLib/static/static/backgrounds/ice.png index fcf7299b35827fc8aa3672f01c77ae26252985e0..c64f1b20f3b0781a113e6250f03238d2ffc3b7e3 100644 GIT binary patch literal 6329 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 literal 10301 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 diff --git a/WebHostLib/static/static/backgrounds/jungle.png b/WebHostLib/static/static/backgrounds/jungle.png index e27d7e992086bc20039c271ccf4deac7aa5b1b66..c4ec5b9648479da161c68d8a9a3b3080df30424b 100644 GIT binary patch literal 21381 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

    gp$uzmg#uw3eVMqt`rYmWJFoFV!T1`Z24q!``XL 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¯yc4%x>rW!Wt_N#0OMq(aR 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 diff --git a/worlds/wargroove2/levels/Ancient_Discoveries.json b/worlds/wargroove2/levels/Ancient_Discoveries.json new file mode 100644 index 000000000000..64cdf46e7ccf --- /dev/null +++ b/worlds/wargroove2/levels/Ancient_Discoveries.json @@ -0,0 +1 @@ +{"Map_Tile_8_17":{"terrain":"abyss"}, "Map_Tile_15_12":{"terrain":"abyss"}, "Map_Tile_26_7":{"terrain":"abyss"}, "Map_Tile_2_10":{"terrain":"abyss"}, "Map_Tile_13_9":{"terrain":"plains"}, "Map_Tile_22_6":{"terrain":"abyss"}, "Map_Tile_10_13":{"terrain":"abyss"}, "Map_Tile_28_10":{"terrain":"abyss"}, "Map_Tile_29_2":{"terrain":"abyss"}, "Map_Tile_11_5":{"terrain":"abyss"}, "Map_Tile_24_14":{"terrain":"abyss"}, "Map_Tile_26_5":{"terrain":"abyss"}, "Map_Tile_14_2":{"terrain":"abyss"}, "Map_Tile_17_7":{"terrain":"abyss"}, "Map_Tile_24_17":{"terrain":"abyss"}, "Map_Tile_27_19":{"terrain":"abyss"}, "Map_Tile_18_16":{"terrain":"abyss"}, "Map_Tile_9_5":{"terrain":"abyss"}, "Map_Tile_18_4":{"terrain":"abyss"}, "Map_Tile_8_6":{"terrain":"abyss"}, "Map_Tile_1_18":{"terrain":"abyss"}, "Map_Tile_2_14":{"terrain":"abyss"}, "Map_Tile_17_9":{"terrain":"abyss"}, "Map_Tile_18_18":{"terrain":"abyss"}, "Map_Tile_25_16":{"terrain":"abyss"}, "Map_Tile_18_9":{"terrain":"abyss"}, "Map_Tile_15_2":{"terrain":"abyss"}, "Map_Tile_6_16":{"terrain":"abyss"}, "Map_Tile_8_16":{"terrain":"abyss"}, "Map_Tile_6_2":{"terrain":"abyss"}, "Map_Tile_9_10":{"terrain":"abyss"}, "Map_Tile_17_6":{"terrain":"abyss"}, "Map_Tile_10_10":{"terrain":"abyss"}, "Map_Tile_12_16":{"terrain":"abyss"}, "Map_Tile_3_2":{"terrain":"abyss"}, "Map_Tile_11_18":{"terrain":"abyss"}, "Player_2":{"recruit_knight":false, "recruit_soldier":true, "recruit_frog":true, "recruit_travelboat":false, "recruit_dog":true, "recruit_griffin_walking":true, "recruit_caravel":true, "team":1, "recruit_giant":false, "recruit_harpoonship":true, "recruit_mage":true, "recruit_balloon":false, "gold":100, "recruit_kraken":false, "recruit_wagon":false, "recruit_ballista":false, "recruit_turtle":true, "recruit_warship":false, "recruit_archer":true, "recruit_rifleman":true, "recruit_merman":true, "recruit_spearman":true, "recruit_harpy":false, "recruit_dragon":false, "recruit_thief":true, "recruit_witch":true, "recruit_trebuchet":false}, "Map_Tile_10_14":{"terrain":"abyss"}, "Map_Tile_23_11":{"terrain":"abyss"}, "Map_Tile_19_3":{"terrain":"abyss"}, "Map_Tile_25_19":{"terrain":"abyss"}, "Map_Tile_21_4":{"terrain":"abyss"}, "Map_Tile_1_8":{"terrain":"abyss"}, "Map_Tile_5_7":{"terrain":"abyss"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_17_19":{"terrain":"abyss"}, "Map_Tile_29_3":{"terrain":"abyss"}, "Map_Tile_28_16":{"terrain":"abyss"}, "Map_Tile_12_19":{"terrain":"abyss"}, "Map_Tile_16_6":{"terrain":"abyss"}, "Map_Tile_14_12":{"terrain":"abyss"}, "Map_Tile_4_14":{"terrain":"abyss"}, "Map_Tile_22_13":{"terrain":"abyss"}, "Map_Tile_15_15":{"terrain":"abyss"}, "Map_Tile_3_3":{"terrain":"abyss"}, "Map_Tile_13_14":{"terrain":"abyss"}, "Map_Tile_17_17":{"terrain":"abyss"}, "Map_Tile_18_6":{"terrain":"abyss"}, "Map_Tile_5_16":{"terrain":"abyss"}, "Map_Tile_16_7":{"terrain":"abyss"}, "Map_Tile_28_0":{"terrain":"abyss"}, "Map_Tile_3_7":{"terrain":"abyss"}, "Map_Tile_14_18":{"terrain":"abyss"}, "Map_Tile_20_16":{"terrain":"abyss"}, "Map_Tile_7_16":{"terrain":"abyss"}, "Map_Tile_13_2":{"terrain":"abyss"}, "Map_Tile_0_4":{"terrain":"abyss"}, "Map_Tile_19_6":{"terrain":"abyss"}, "Map_Tile_14_5":{"terrain":"abyss"}, "Map_Tile_13_18":{"terrain":"abyss"}, "Map_Tile_15_18":{"terrain":"abyss"}, "Map_Tile_5_14":{"terrain":"abyss"}, "Map_Tile_29_0":{"terrain":"abyss"}, "Map_Tile_9_13":{"terrain":"abyss"}, "Map_Tile_11_19":{"terrain":"abyss"}, "Map_Tile_19_10":{"terrain":"abyss"}, "Map_Tile_27_18":{"terrain":"abyss"}, "Map_Tile_24_16":{"terrain":"abyss"}, "Map_Tile_26_4":{"terrain":"abyss"}, "Map_Tile_29_16":{"terrain":"abyss"}, "Map_Tile_17_3":{"terrain":"abyss"}, "Map_Tile_20_17":{"terrain":"abyss"}, "Map_Tile_20_7":{"terrain":"abyss"}, "Map_Tile_28_13":{"terrain":"abyss"}, "Map_Tile_6_12":{"terrain":"abyss"}, "Map_Tile_10_19":{"terrain":"abyss"}, "Map_Tile_17_0":{"terrain":"abyss"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_1_14":{"terrain":"abyss"}, "Map_Tile_16_17":{"terrain":"abyss"}, "Map_Tile_12_3":{"terrain":"abyss"}, "Map_Tile_27_17":{"terrain":"abyss"}, "Map_Tile_3_15":{"terrain":"abyss"}, "Map_Tile_9_11":{"terrain":"abyss"}, "Map_Tile_21_2":{"terrain":"abyss"}, "Map_Tile_11_3":{"terrain":"abyss"}, "Map_Tile_6_14":{"terrain":"abyss"}, "Map_Tile_1_4":{"terrain":"abyss"}, "Map_Tile_5_13":{"terrain":"abyss"}, "Map_Tile_9_17":{"terrain":"abyss"}, "Map_Tile_29_7":{"terrain":"abyss"}, "Map_Tile_7_12":{"terrain":"abyss"}, "Map_Tile_13_8":{"terrain":"plains"}, "Map_Tile_24_6":{"terrain":"abyss"}, "Map_Tile_1_15":{"terrain":"abyss"}, "Map_Tile_17_1":{"terrain":"abyss"}, "Map_Tile_7_10":{"terrain":"abyss"}, "Map_Tile_18_0":{"terrain":"abyss"}, "Map_Tile_25_14":{"terrain":"abyss"}, "Map_Tile_24_5":{"terrain":"abyss"}, "Map_Name":"Ancient Discoveries", "Map_Tile_14_19":{"terrain":"abyss"}, "Map_Tile_5_18":{"terrain":"abyss"}, "Map_Tile_29_1":{"terrain":"abyss"}, "Map_Tile_0_17":{"terrain":"abyss"}, "Map_Tile_5_5":{"terrain":"abyss"}, "Map_Tile_11_10":{"terrain":"abyss"}, "Map_Tile_10_12":{"terrain":"abyss"}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"abyss"}, "Map_Tile_2_9":{"terrain":"abyss"}, "Counters":{}, "Map_Tile_3_0":{"terrain":"abyss"}, "Map_Tile_8_2":{"terrain":"abyss"}, "Map_Tile_5_6":{"terrain":"abyss"}, "Map_Tile_7_11":{"terrain":"abyss"}, "Map_Tile_22_0":{"terrain":"abyss"}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_16_2":{"terrain":"abyss"}, "Map_Tile_27_1":{"terrain":"abyss"}, "Map_Tile_9_4":{"terrain":"abyss"}, "Map_Tile_21_11":{"terrain":"abyss"}, "Map_Tile_1_16":{"terrain":"abyss"}, "Map_Tile_4_13":{"terrain":"abyss"}, "Map_Tile_4_0":{"terrain":"abyss"}, "Map_Tile_4_12":{"terrain":"abyss"}, "Map_Tile_9_16":{"terrain":"abyss"}, "Map_Tile_13_4":{"terrain":"abyss"}, "Map_Tile_8_1":{"terrain":"abyss"}, "Map_Tile_25_17":{"terrain":"abyss"}, "Map_Tile_20_0":{"terrain":"abyss"}, "Map_Tile_6_19":{"terrain":"abyss"}, "Map_Tile_26_3":{"terrain":"abyss"}, "Map_Tile_19_18":{"terrain":"abyss"}, "Map_Tile_3_9":{"terrain":"abyss"}, "Map_Tile_1_3":{"terrain":"abyss"}, "Map_Tile_27_12":{"terrain":"abyss"}, "Map_Tile_4_15":{"terrain":"abyss"}, "Map_Tile_10_18":{"terrain":"abyss"}, "Map_Tile_29_4":{"terrain":"abyss"}, "Map_Tile_26_2":{"terrain":"abyss"}, "Map_Tile_12_13":{"terrain":"abyss"}, "Map_Tile_24_18":{"terrain":"abyss"}, "Map_Tile_28_11":{"terrain":"abyss"}, "Map_Tile_1_7":{"terrain":"abyss"}, "Map_Tile_22_17":{"terrain":"abyss"}, "Map_Tile_5_15":{"terrain":"abyss"}, "Map_Tile_23_0":{"terrain":"abyss"}, "Map_Tile_20_4":{"terrain":"abyss"}, "Map_Tile_21_6":{"terrain":"abyss"}, "Map_Tile_10_3":{"terrain":"abyss"}, "Map_Tile_1_2":{"terrain":"abyss"}, "Map_Tile_1_11":{"terrain":"abyss"}, "Map_Tile_8_9":{"terrain":"abyss"}, "Map_Tile_14_17":{"terrain":"abyss"}, "Map_Tile_29_17":{"terrain":"abyss"}, "Map_Tile_5_2":{"terrain":"abyss"}, "Map_Tile_4_1":{"terrain":"abyss"}, "Map_Tile_18_14":{"terrain":"abyss"}, "Map_Tile_11_17":{"terrain":"abyss"}, "Map_Tile_22_5":{"terrain":"abyss"}, "Map_Tile_13_5":{"terrain":"abyss"}, "Map_Tile_5_0":{"terrain":"abyss"}, "Map_Tile_0_14":{"terrain":"abyss"}, "Map_Tile_23_3":{"terrain":"abyss"}, "Map_Tile_23_1":{"terrain":"abyss"}, "Map_Tile_19_17":{"terrain":"abyss"}, "Map_Tile_7_17":{"terrain":"abyss"}, "Map_Tile_5_17":{"terrain":"abyss"}, "Map_Tile_18_10":{"terrain":"abyss"}, "Map_Tile_23_7":{"terrain":"abyss"}, "Map_Tile_12_4":{"terrain":"abyss"}, "Map_Tile_21_18":{"terrain":"abyss"}, "Map_Tile_14_16":{"terrain":"abyss"}, "Objectives":["Spawn 3 enemy strongholds.", "Kill an enemy stronghold with a golem.", "Win by eliminating an enemy stronghold."], "Map_Tile_28_9":{"terrain":"abyss"}, "Map_Tile_13_10":{"terrain":"plains"}, "Map_Tile_23_4":{"terrain":"abyss"}, "Map_Tile_11_9":{"terrain":"abyss"}, "Map_Tile_2_1":{"terrain":"abyss"}, "Map_Tile_27_11":{"terrain":"abyss"}, "Map_Tile_4_8":{"terrain":"abyss"}, "Map_Tile_0_9":{"terrain":"abyss"}, "Map_Tile_7_0":{"terrain":"abyss"}, "Map_Tile_19_16":{"terrain":"abyss"}, "Map_Tile_25_7":{"terrain":"abyss"}, "Map_Tile_4_3":{"terrain":"abyss"}, "Map_Tile_6_3":{"terrain":"abyss"}, "Map_Tile_2_17":{"terrain":"abyss"}, "Map_Tile_10_16":{"terrain":"abyss"}, "Map_Tile_26_10":{"terrain":"abyss"}, "Map_Tile_0_13":{"terrain":"abyss"}, "Map_Tile_20_11":{"terrain":"abyss"}, "Map_Tile_2_13":{"terrain":"abyss"}, "Map_Tile_28_17":{"terrain":"abyss"}, "Map_Tile_13_0":{"terrain":"abyss"}, "Map_Tile_17_4":{"terrain":"abyss"}, "Map_Tile_6_13":{"terrain":"abyss"}, "Map_Tile_29_5":{"terrain":"abyss"}, "Map_Tile_2_12":{"terrain":"abyss"}, "Map_Tile_22_1":{"terrain":"abyss"}, "Map_Tile_4_18":{"terrain":"abyss"}, "Map_Tile_7_8":{"terrain":"abyss"}, "Map_Tile_14_15":{"terrain":"abyss"}, "Map_Tile_12_10":{"terrain":"abyss"}, "Map_Tile_27_8":{"terrain":"abyss"}, "Map_Tile_2_11":{"terrain":"abyss"}, "Map_Tile_2_16":{"terrain":"abyss"}, "Map_Tile_12_7":{"terrain":"abyss"}, "Map_Tile_11_2":{"terrain":"abyss"}, "Map_Tile_7_15":{"terrain":"abyss"}, "Map_Tile_10_0":{"terrain":"abyss"}, "Map_Tile_17_5":{"terrain":"abyss"}, "Map_Tile_21_0":{"terrain":"abyss"}, "Map_Tile_5_4":{"terrain":"abyss"}, "Map_Tile_21_14":{"terrain":"abyss"}, "Map_Tile_11_8":{"terrain":"abyss"}, "Map_Tile_15_9":{"terrain":"plains"}, "Map_Tile_9_12":{"terrain":"abyss"}, "Map_Tile_11_1":{"terrain":"abyss"}, "Map_Tile_6_18":{"terrain":"abyss"}, "Map_Tile_17_13":{"terrain":"abyss"}, "Map_Tile_24_11":{"terrain":"abyss"}, "Map_Tile_27_10":{"terrain":"abyss"}, "Map_Tile_20_10":{"terrain":"abyss"}, "Map_Tile_24_1":{"terrain":"abyss"}, "Map_Tile_14_10":{"terrain":"plains"}, "Map_Tile_24_3":{"terrain":"abyss"}, "Map_Tile_4_6":{"terrain":"abyss"}, "Map_Tile_19_4":{"terrain":"abyss"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Tile_16_9":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"abyss"}, "Map_Tile_0_6":{"terrain":"abyss"}, "Map_Tile_13_13":{"terrain":"abyss"}, "Map_Tile_16_15":{"terrain":"abyss"}, "Map_Tile_5_10":{"terrain":"abyss"}, "Map_Tile_17_12":{"terrain":"abyss"}, "Map_Tile_15_1":{"terrain":"abyss"}, "Map_Tile_16_18":{"terrain":"abyss"}, "Map_Tile_0_12":{"terrain":"abyss"}, "Flags":{}, "Author":"Fly Sniper", "Map_Tile_26_9":{"terrain":"abyss"}, "Map_Tile_0_1":{"terrain":"abyss"}, "Map_Tile_29_14":{"terrain":"abyss"}, "Map_Tile_16_19":{"terrain":"abyss"}, "Map_Tile_7_19":{"terrain":"abyss"}, "Map_Tile_17_8":{"terrain":"abyss"}, "Map_Tile_29_9":{"terrain":"abyss"}, "Map_Tile_27_16":{"terrain":"abyss"}, "Map_Tile_22_18":{"terrain":"abyss"}, "Map_Tile_23_16":{"terrain":"abyss"}, "Map_Tile_6_10":{"terrain":"abyss"}, "Map_Tile_8_14":{"terrain":"abyss"}, "Map_Tile_23_14":{"terrain":"abyss"}, "Map_Tile_0_8":{"terrain":"abyss"}, "Map_Tile_6_8":{"terrain":"abyss"}, "Map_Tile_15_19":{"terrain":"abyss"}, "Map_Tile_11_14":{"terrain":"abyss"}, "Map_Tile_29_15":{"terrain":"abyss"}, "Map_Tile_2_18":{"terrain":"abyss"}, "Map_Tile_1_1":{"terrain":"abyss"}, "Map_Tile_19_2":{"terrain":"abyss"}, "Map_Tile_21_3":{"terrain":"abyss"}, "Map_Tile_7_6":{"terrain":"abyss"}, "Map_Tile_4_2":{"terrain":"abyss"}, "Map_Tile_24_8":{"terrain":"abyss"}, "Map_Tile_21_15":{"terrain":"abyss"}, "Map_Tile_17_14":{"terrain":"abyss"}, "Map_Tile_26_16":{"terrain":"abyss"}, "Map_Tile_10_17":{"terrain":"abyss"}, "Map_Tile_28_2":{"terrain":"abyss"}, "Map_Tile_21_12":{"terrain":"abyss"}, "Map_Tile_22_8":{"terrain":"abyss"}, "Map_Tile_3_4":{"terrain":"abyss"}, "Map_Tile_15_8":{"terrain":"plains"}, "Map_Tile_10_15":{"terrain":"abyss"}, "Map_Tile_3_1":{"terrain":"abyss"}, "Map_Tile_12_14":{"terrain":"abyss"}, "Map_Tile_24_19":{"terrain":"abyss"}, "Map_Tile_6_9":{"terrain":"abyss"}, "Map_Tile_25_13":{"terrain":"abyss"}, "Map_Tile_4_11":{"terrain":"abyss"}, "Map_Tile_5_11":{"terrain":"abyss"}, "Map_Tile_27_0":{"terrain":"abyss"}, "Map_Tile_25_4":{"terrain":"abyss"}, "Map_Tile_19_7":{"terrain":"abyss"}, "Map_Tile_15_14":{"terrain":"abyss"}, "Map_Tile_29_19":{"terrain":"abyss"}, "Map_Tile_29_12":{"terrain":"abyss"}, "Map_Tile_11_7":{"terrain":"abyss"}, "Map_Tile_8_18":{"terrain":"abyss"}, "Player_1":{"recruit_knight":true, "recruit_soldier":true, "recruit_frog":true, "recruit_travelboat":true, "recruit_dog":true, "recruit_griffin_walking":true, "recruit_caravel":true, "team":0, "recruit_giant":true, "recruit_harpoonship":true, "recruit_mage":true, "recruit_balloon":true, "gold":100, "recruit_kraken":true, "recruit_wagon":true, "recruit_ballista":true, "recruit_turtle":true, "recruit_warship":true, "recruit_archer":true, "recruit_rifleman":true, "recruit_merman":true, "recruit_spearman":true, "recruit_harpy":true, "recruit_dragon":true, "recruit_thief":true, "recruit_witch":true, "recruit_trebuchet":true}, "Map_Tile_16_0":{"terrain":"abyss"}, "Map_Tile_16_4":{"terrain":"abyss"}, "Map_Tile_16_10":{"terrain":"plains"}, "Map_Tile_16_5":{"terrain":"abyss"}, "Map_Tile_18_12":{"terrain":"abyss"}, "Map_Tile_20_8":{"terrain":"abyss"}, "Map_Tile_18_11":{"terrain":"abyss"}, "Map_Tile_27_5":{"terrain":"abyss"}, "Map_Tile_16_8":{"terrain":"plains"}, "Map_Tile_14_3":{"terrain":"abyss"}, "Map_Tile_2_7":{"terrain":"abyss"}, "Map_Tile_19_14":{"terrain":"abyss"}, "Map_Tile_19_19":{"terrain":"abyss"}, "Map_Tile_19_13":{"terrain":"abyss"}, "Map_Tile_25_12":{"terrain":"abyss"}, "Map_Tile_27_4":{"terrain":"abyss"}, "Map_Tile_26_6":{"terrain":"abyss"}, "Map_Tile_2_3":{"terrain":"abyss"}, "Map_Tile_7_3":{"terrain":"abyss"}, "Map_Tile_7_9":{"terrain":"abyss"}, "Map_Tile_9_0":{"terrain":"abyss"}, "Map_Tile_19_11":{"terrain":"abyss"}, "Map_Tile_5_1":{"terrain":"abyss"}, "Map_Tile_13_7":{"terrain":"abyss"}, "Map_Tile_8_11":{"terrain":"abyss"}, "Map_Tile_13_19":{"terrain":"abyss"}, "Map_Tile_15_10":{"terrain":"plains"}, "Map_Tile_28_15":{"terrain":"abyss"}, "Map_Tile_29_18":{"terrain":"abyss"}, "Map_Tile_20_3":{"terrain":"abyss"}, "Map_Tile_15_3":{"terrain":"abyss"}, "Map_Tile_26_17":{"terrain":"abyss"}, "Map_Tile_2_4":{"terrain":"abyss"}, "Map_Tile_18_5":{"terrain":"abyss"}, "Map_Tile_10_6":{"terrain":"abyss"}, "Map_Tile_6_15":{"terrain":"abyss"}, "Map_Tile_1_10":{"terrain":"abyss"}, "Map_Tile_4_9":{"terrain":"abyss"}, "Map_Tile_2_19":{"terrain":"abyss"}, "Map_Tile_9_8":{"terrain":"abyss"}, "Map_Tile_11_15":{"terrain":"abyss"}, "Map_Tile_22_14":{"terrain":"abyss"}, "Map_Tile_18_15":{"terrain":"abyss"}, "Map_Tile_15_7":{"terrain":"abyss"}, "Map_Tile_22_12":{"terrain":"abyss"}, "Locations":{"1":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":8, "x":16}, {"y":9, "x":16}, {"y":10, "x":16}, {"y":11, "x":16}, {"y":11, "x":17}, {"y":11, "x":18}, {"y":11, "x":19}, {"y":11, "x":20}, {"y":11, "x":21}, {"y":10, "x":21}, {"y":9, "x":21}, {"y":8, "x":21}, {"y":8, "x":20}, {"y":8, "x":19}, {"y":8, "x":18}, {"y":8, "x":17}, {"y":9, "x":17}, {"y":10, "x":17}, {"y":10, "x":18}, {"y":9, "x":18}, {"y":9, "x":19}, {"y":9, "x":20}, {"y":10, "x":20}, {"y":10, "x":19}, {"y":7, "x":18}, {"y":7, "x":19}, {"y":7, "x":20}, {"y":7, "x":21}, {"y":12, "x":21}, {"y":12, "x":20}, {"y":12, "x":19}, {"y":12, "x":18}, {"y":12, "x":17}, {"y":7, "x":17}], "name":"Challenge 1", "id":1, "centre":{"y":10, "x":19}}, "2":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":10, "x":15}, {"y":10, "x":14}, {"y":9, "x":14}, {"y":9, "x":15}], "name":"Spawn", "id":2, "centre":{"y":10, "x":15}}, "3":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":12, "x":12}, {"y":12, "x":13}, {"y":12, "x":14}, {"y":12, "x":15}, {"y":12, "x":16}, {"y":12, "x":17}, {"y":13, "x":17}, {"y":14, "x":17}, {"y":15, "x":17}, {"y":15, "x":16}, {"y":15, "x":15}, {"y":15, "x":14}, {"y":15, "x":13}, {"y":15, "x":12}, {"y":14, "x":12}, {"y":13, "x":12}, {"y":13, "x":13}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":13, "x":16}, {"y":14, "x":16}, {"y":14, "x":15}, {"y":14, "x":14}, {"y":14, "x":13}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}, {"y":11, "x":13}], "name":"Challenge 2", "id":3, "centre":{"y":13, "x":15}}, "4":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":11, "x":12}, {"y":10, "x":12}, {"y":9, "x":12}, {"y":8, "x":12}, {"y":8, "x":11}, {"y":9, "x":11}, {"y":10, "x":11}, {"y":11, "x":11}, {"y":12, "x":11}, {"y":7, "x":11}, {"y":7, "x":10}, {"y":7, "x":9}, {"y":7, "x":8}, {"y":8, "x":8}, {"y":9, "x":8}, {"y":10, "x":8}, {"y":11, "x":8}, {"y":12, "x":8}, {"y":12, "x":9}, {"y":12, "x":10}, {"y":11, "x":10}, {"y":10, "x":10}, {"y":9, "x":10}, {"y":8, "x":10}, {"y":8, "x":9}, {"y":9, "x":9}, {"y":10, "x":9}, {"y":11, "x":9}, {"y":8, "x":13}, {"y":9, "x":13}, {"y":10, "x":13}, {"y":11, "x":13}, {"y":7, "x":12}, {"y":12, "x":12}], "name":"Challenge 3", "id":4, "centre":{"y":9, "x":10}}, "5":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":8, "x":16}, {"y":8, "x":15}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":7, "x":13}, {"y":7, "x":12}, {"y":7, "x":14}, {"y":7, "x":15}, {"y":7, "x":16}, {"y":7, "x":17}, {"y":6, "x":17}, {"y":6, "x":16}, {"y":6, "x":15}, {"y":6, "x":14}, {"y":6, "x":13}, {"y":6, "x":12}, {"y":5, "x":17}, {"y":5, "x":12}, {"y":5, "x":13}, {"y":5, "x":14}, {"y":5, "x":15}, {"y":5, "x":16}, {"y":4, "x":17}, {"y":4, "x":16}, {"y":4, "x":15}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":4, "x":12}], "name":"Challenge 4", "id":5, "centre":{"y":6, "x":15}}, "6":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":13, "x":17}, {"y":12, "x":18}, {"y":14, "x":17}, {"y":15, "x":17}, {"y":15, "x":18}, {"y":14, "x":18}, {"y":13, "x":18}, {"y":13, "x":19}, {"y":12, "x":19}, {"y":12, "x":20}, {"y":12, "x":21}, {"y":12, "x":22}, {"y":12, "x":23}, {"y":13, "x":23}, {"y":14, "x":23}, {"y":14, "x":22}, {"y":15, "x":22}, {"y":15, "x":21}, {"y":15, "x":20}, {"y":15, "x":19}, {"y":14, "x":19}, {"y":13, "x":20}, {"y":13, "x":21}, {"y":13, "x":22}, {"y":14, "x":21}, {"y":14, "x":20}, {"y":15, "x":23}], "name":"Challenge 5", "id":6, "centre":{"y":14, "x":20}}, "7":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":13, "x":12}, {"y":13, "x":11}, {"y":12, "x":11}, {"y":14, "x":11}, {"y":14, "x":12}, {"y":14, "x":10}, {"y":13, "x":10}, {"y":12, "x":10}, {"y":15, "x":11}, {"y":15, "x":12}, {"y":15, "x":10}, {"y":15, "x":9}, {"y":14, "x":9}, {"y":13, "x":9}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":13, "x":8}, {"y":14, "x":8}, {"y":15, "x":8}, {"y":12, "x":7}, {"y":13, "x":7}, {"y":14, "x":7}, {"y":15, "x":7}, {"y":12, "x":6}, {"y":13, "x":6}, {"y":14, "x":6}, {"y":15, "x":6}], "name":"Challenge 6", "id":7, "centre":{"y":14, "x":9}}, "8":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":7, "x":11}, {"y":6, "x":12}, {"y":6, "x":11}, {"y":6, "x":10}, {"y":6, "x":9}, {"y":6, "x":8}, {"y":6, "x":7}, {"y":6, "x":6}, {"y":5, "x":6}, {"y":4, "x":6}, {"y":5, "x":11}, {"y":4, "x":11}, {"y":4, "x":10}, {"y":4, "x":9}, {"y":4, "x":8}, {"y":4, "x":7}, {"y":5, "x":7}, {"y":5, "x":8}, {"y":5, "x":9}, {"y":5, "x":10}, {"y":5, "x":12}, {"y":4, "x":12}, {"y":7, "x":10}, {"y":7, "x":9}, {"y":7, "x":8}, {"y":7, "x":7}], "name":"Challenge 7", "id":8, "centre":{"y":5, "x":9}}, "9":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":6, "x":17}, {"y":7, "x":18}, {"y":6, "x":18}, {"y":5, "x":18}, {"y":4, "x":18}, {"y":5, "x":19}, {"y":6, "x":19}, {"y":6, "x":20}, {"y":6, "x":21}, {"y":6, "x":22}, {"y":6, "x":23}, {"y":5, "x":23}, {"y":5, "x":22}, {"y":5, "x":21}, {"y":5, "x":20}, {"y":4, "x":19}, {"y":4, "x":20}, {"y":4, "x":21}, {"y":4, "x":22}, {"y":4, "x":23}, {"y":4, "x":17}, {"y":5, "x":17}, {"y":7, "x":19}, {"y":7, "x":20}, {"y":7, "x":21}, {"y":7, "x":22}], "name":"Challenge 8", "id":9, "centre":{"y":5, "x":20}}, "10":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":7, "x":8}, {"y":8, "x":8}, {"y":9, "x":8}, {"y":10, "x":8}, {"y":11, "x":8}, {"y":12, "x":7}, {"y":12, "x":6}, {"y":12, "x":5}, {"y":12, "x":4}, {"y":12, "x":3}, {"y":12, "x":2}, {"y":12, "x":1}, {"y":12, "x":0}, {"y":11, "x":0}, {"y":10, "x":0}, {"y":9, "x":0}, {"y":8, "x":0}, {"y":7, "x":0}, {"y":6, "x":0}, {"y":6, "x":1}, {"y":6, "x":2}, {"y":6, "x":3}, {"y":6, "x":4}, {"y":6, "x":5}, {"y":6, "x":6}, {"y":6, "x":7}, {"y":7, "x":7}, {"y":8, "x":7}, {"y":9, "x":7}, {"y":10, "x":7}, {"y":11, "x":7}, {"y":11, "x":6}, {"y":11, "x":5}, {"y":11, "x":4}, {"y":11, "x":3}, {"y":11, "x":2}, {"y":11, "x":1}, {"y":10, "x":1}, {"y":9, "x":1}, {"y":8, "x":1}, {"y":7, "x":1}, {"y":7, "x":2}, {"y":7, "x":3}, {"y":7, "x":4}, {"y":7, "x":5}, {"y":7, "x":6}, {"y":8, "x":6}, {"y":9, "x":6}, {"y":10, "x":6}, {"y":10, "x":5}, {"y":10, "x":4}, {"y":10, "x":3}, {"y":10, "x":2}, {"y":9, "x":2}, {"y":8, "x":2}, {"y":8, "x":3}, {"y":8, "x":4}, {"y":8, "x":5}, {"y":9, "x":5}, {"y":9, "x":4}, {"y":9, "x":3}, {"y":5, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":5, "x":2}, {"y":5, "x":1}, {"y":5, "x":0}, {"y":13, "x":5}, {"y":13, "x":4}, {"y":13, "x":3}, {"y":13, "x":2}, {"y":13, "x":1}, {"y":13, "x":0}, {"y":13, "x":6}, {"y":5, "x":6}], "name":"Challenge 9", "id":10, "centre":{"y":9, "x":4}}, "11":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":4, "x":6}, {"y":4, "x":7}, {"y":4, "x":8}, {"y":4, "x":9}, {"y":4, "x":10}, {"y":4, "x":11}, {"y":4, "x":12}, {"y":4, "x":13}, {"y":4, "x":14}, {"y":1, "x":14}, {"y":0, "x":14}, {"y":0, "x":13}, {"y":0, "x":12}, {"y":0, "x":11}, {"y":0, "x":10}, {"y":0, "x":9}, {"y":0, "x":8}, {"y":0, "x":7}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":2, "x":6}, {"y":3, "x":6}, {"y":3, "x":7}, {"y":3, "x":8}, {"y":3, "x":9}, {"y":3, "x":10}, {"y":3, "x":11}, {"y":3, "x":12}, {"y":3, "x":13}, {"y":2, "x":13}, {"y":1, "x":13}, {"y":1, "x":12}, {"y":1, "x":11}, {"y":1, "x":10}, {"y":1, "x":9}, {"y":1, "x":8}, {"y":1, "x":7}, {"y":2, "x":7}, {"y":2, "x":8}, {"y":2, "x":9}, {"y":2, "x":10}, {"y":2, "x":11}, {"y":2, "x":12}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":5}, {"y":4, "x":4}, {"y":4, "x":3}, {"y":4, "x":2}, {"y":4, "x":1}, {"y":4, "x":0}, {"y":3, "x":0}, {"y":2, "x":0}, {"y":1, "x":0}, {"y":0, "x":0}, {"y":0, "x":1}, {"y":0, "x":2}, {"y":0, "x":3}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":1, "x":5}, {"y":2, "x":5}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":2}, {"y":3, "x":1}, {"y":2, "x":1}, {"y":1, "x":1}, {"y":1, "x":2}, {"y":1, "x":3}, {"y":1, "x":4}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":2, "x":2}, {"y":5, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":5, "x":2}, {"y":5, "x":1}, {"y":5, "x":0}], "name":"Challenge 10", "id":11, "centre":{"y":2, "x":7}}, "12":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":4, "x":15}, {"y":3, "x":15}, {"y":2, "x":15}, {"y":1, "x":15}, {"y":0, "x":15}, {"y":0, "x":14}, {"y":1, "x":14}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":16}, {"y":4, "x":17}, {"y":4, "x":18}, {"y":4, "x":19}, {"y":4, "x":20}, {"y":4, "x":21}, {"y":4, "x":22}, {"y":4, "x":23}, {"y":4, "x":24}, {"y":4, "x":25}, {"y":4, "x":26}, {"y":4, "x":27}, {"y":4, "x":28}, {"y":4, "x":29}, {"y":5, "x":24}, {"y":5, "x":25}, {"y":5, "x":26}, {"y":5, "x":27}, {"y":5, "x":28}, {"y":5, "x":29}, {"y":3, "x":29}, {"y":3, "x":28}, {"y":3, "x":27}, {"y":3, "x":26}, {"y":3, "x":25}, {"y":3, "x":24}, {"y":3, "x":23}, {"y":3, "x":22}, {"y":3, "x":21}, {"y":3, "x":20}, {"y":3, "x":19}, {"y":3, "x":18}, {"y":3, "x":17}, {"y":3, "x":16}, {"y":2, "x":16}, {"y":1, "x":16}, {"y":0, "x":16}, {"y":0, "x":17}, {"y":0, "x":18}, {"y":0, "x":19}, {"y":0, "x":20}, {"y":0, "x":21}, {"y":0, "x":22}, {"y":0, "x":23}, {"y":0, "x":24}, {"y":0, "x":25}, {"y":0, "x":26}, {"y":0, "x":27}, {"y":0, "x":28}, {"y":0, "x":29}, {"y":2, "x":29}, {"y":2, "x":28}, {"y":2, "x":27}, {"y":2, "x":26}, {"y":2, "x":25}, {"y":2, "x":24}, {"y":2, "x":23}, {"y":2, "x":22}, {"y":2, "x":21}, {"y":2, "x":20}, {"y":2, "x":19}, {"y":2, "x":18}, {"y":2, "x":17}, {"y":1, "x":17}, {"y":1, "x":18}, {"y":1, "x":19}, {"y":1, "x":20}, {"y":1, "x":21}, {"y":1, "x":22}, {"y":1, "x":23}, {"y":1, "x":24}, {"y":1, "x":25}, {"y":1, "x":26}, {"y":1, "x":27}, {"y":1, "x":28}, {"y":1, "x":29}], "name":"Challenge 11", "id":12, "centre":{"y":2, "x":22}}, "13":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":7, "x":21}, {"y":8, "x":21}, {"y":9, "x":21}, {"y":10, "x":21}, {"y":11, "x":21}, {"y":12, "x":22}, {"y":6, "x":22}, {"y":5, "x":23}, {"y":5, "x":24}, {"y":5, "x":25}, {"y":5, "x":26}, {"y":5, "x":27}, {"y":5, "x":28}, {"y":5, "x":29}, {"y":13, "x":23}, {"y":13, "x":24}, {"y":13, "x":25}, {"y":13, "x":26}, {"y":13, "x":27}, {"y":13, "x":28}, {"y":13, "x":29}, {"y":12, "x":29}, {"y":12, "x":28}, {"y":12, "x":27}, {"y":12, "x":26}, {"y":12, "x":25}, {"y":12, "x":24}, {"y":12, "x":23}, {"y":11, "x":23}, {"y":11, "x":22}, {"y":10, "x":22}, {"y":9, "x":22}, {"y":8, "x":22}, {"y":7, "x":22}, {"y":6, "x":23}, {"y":7, "x":23}, {"y":8, "x":23}, {"y":9, "x":23}, {"y":10, "x":23}, {"y":10, "x":24}, {"y":9, "x":24}, {"y":8, "x":24}, {"y":7, "x":24}, {"y":7, "x":25}, {"y":6, "x":24}, {"y":11, "x":24}, {"y":10, "x":25}, {"y":9, "x":25}, {"y":8, "x":25}, {"y":6, "x":25}, {"y":11, "x":25}, {"y":8, "x":26}, {"y":9, "x":26}, {"y":10, "x":26}, {"y":11, "x":26}, {"y":7, "x":26}, {"y":6, "x":26}, {"y":8, "x":27}, {"y":9, "x":27}, {"y":10, "x":27}, {"y":10, "x":28}, {"y":9, "x":28}, {"y":8, "x":28}, {"y":7, "x":28}, {"y":6, "x":28}, {"y":11, "x":27}, {"y":7, "x":27}, {"y":6, "x":27}, {"y":11, "x":28}, {"y":11, "x":29}, {"y":10, "x":29}, {"y":9, "x":29}, {"y":8, "x":29}, {"y":7, "x":29}, {"y":6, "x":29}], "name":"Challenge 12", "id":13, "centre":{"y":9, "x":25}}, "14":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":15, "x":14}, {"y":16, "x":14}, {"y":17, "x":14}, {"y":18, "x":14}, {"y":19, "x":14}, {"y":15, "x":13}, {"y":15, "x":12}, {"y":15, "x":11}, {"y":15, "x":10}, {"y":15, "x":9}, {"y":15, "x":8}, {"y":15, "x":7}, {"y":15, "x":6}, {"y":15, "x":5}, {"y":15, "x":4}, {"y":15, "x":3}, {"y":15, "x":2}, {"y":15, "x":1}, {"y":15, "x":0}, {"y":14, "x":5}, {"y":13, "x":5}, {"y":13, "x":4}, {"y":13, "x":3}, {"y":13, "x":2}, {"y":13, "x":1}, {"y":13, "x":0}, {"y":14, "x":0}, {"y":14, "x":1}, {"y":14, "x":2}, {"y":14, "x":3}, {"y":14, "x":4}, {"y":14, "x":6}, {"y":16, "x":13}, {"y":16, "x":12}, {"y":16, "x":11}, {"y":16, "x":10}, {"y":16, "x":9}, {"y":16, "x":8}, {"y":16, "x":7}, {"y":16, "x":6}, {"y":16, "x":5}, {"y":16, "x":4}, {"y":16, "x":3}, {"y":16, "x":2}, {"y":16, "x":1}, {"y":16, "x":0}, {"y":17, "x":0}, {"y":18, "x":0}, {"y":19, "x":0}, {"y":19, "x":1}, {"y":19, "x":2}, {"y":19, "x":3}, {"y":19, "x":4}, {"y":19, "x":5}, {"y":19, "x":6}, {"y":19, "x":7}, {"y":19, "x":8}, {"y":19, "x":9}, {"y":19, "x":10}, {"y":19, "x":11}, {"y":19, "x":12}, {"y":19, "x":13}, {"y":18, "x":13}, {"y":17, "x":13}, {"y":17, "x":12}, {"y":17, "x":11}, {"y":17, "x":10}, {"y":17, "x":9}, {"y":17, "x":8}, {"y":17, "x":7}, {"y":17, "x":6}, {"y":17, "x":5}, {"y":17, "x":4}, {"y":17, "x":3}, {"y":17, "x":2}, {"y":17, "x":1}, {"y":18, "x":1}, {"y":18, "x":2}, {"y":18, "x":3}, {"y":18, "x":4}, {"y":18, "x":5}, {"y":18, "x":6}, {"y":18, "x":7}, {"y":18, "x":8}, {"y":18, "x":9}, {"y":18, "x":10}, {"y":18, "x":11}, {"y":18, "x":12}], "name":"Challenge 13", "id":14, "centre":{"y":16, "x":6}}, "15":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":15, "x":15}, {"y":16, "x":15}, {"y":16, "x":14}, {"y":17, "x":14}, {"y":18, "x":14}, {"y":19, "x":14}, {"y":19, "x":15}, {"y":18, "x":15}, {"y":17, "x":15}, {"y":16, "x":16}, {"y":16, "x":17}, {"y":16, "x":18}, {"y":16, "x":19}, {"y":16, "x":20}, {"y":16, "x":21}, {"y":16, "x":22}, {"y":16, "x":23}, {"y":16, "x":24}, {"y":16, "x":25}, {"y":16, "x":26}, {"y":16, "x":27}, {"y":16, "x":28}, {"y":16, "x":29}, {"y":17, "x":29}, {"y":18, "x":29}, {"y":19, "x":29}, {"y":19, "x":28}, {"y":19, "x":27}, {"y":19, "x":26}, {"y":19, "x":25}, {"y":19, "x":24}, {"y":19, "x":23}, {"y":19, "x":22}, {"y":19, "x":21}, {"y":19, "x":20}, {"y":19, "x":19}, {"y":19, "x":18}, {"y":19, "x":17}, {"y":19, "x":16}, {"y":18, "x":16}, {"y":17, "x":16}, {"y":17, "x":17}, {"y":17, "x":18}, {"y":17, "x":19}, {"y":17, "x":20}, {"y":17, "x":21}, {"y":17, "x":22}, {"y":17, "x":23}, {"y":17, "x":24}, {"y":17, "x":25}, {"y":17, "x":26}, {"y":17, "x":27}, {"y":17, "x":28}, {"y":18, "x":28}, {"y":18, "x":18}, {"y":18, "x":17}, {"y":18, "x":19}, {"y":18, "x":20}, {"y":18, "x":21}, {"y":18, "x":22}, {"y":18, "x":23}, {"y":18, "x":24}, {"y":18, "x":25}, {"y":18, "x":26}, {"y":18, "x":27}, {"y":15, "x":16}, {"y":15, "x":17}, {"y":15, "x":18}, {"y":15, "x":19}, {"y":15, "x":20}, {"y":15, "x":21}, {"y":15, "x":22}, {"y":15, "x":23}, {"y":15, "x":24}, {"y":15, "x":25}, {"y":15, "x":26}, {"y":15, "x":27}, {"y":15, "x":28}, {"y":15, "x":29}, {"y":14, "x":29}, {"y":14, "x":28}, {"y":14, "x":27}, {"y":14, "x":26}, {"y":14, "x":25}, {"y":14, "x":24}, {"y":14, "x":23}, {"y":13, "x":24}, {"y":13, "x":29}, {"y":13, "x":28}, {"y":13, "x":27}, {"y":13, "x":26}, {"y":13, "x":25}], "name":"Challenge 14", "id":15, "centre":{"y":17, "x":22}}, "0":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":8, "x":13}, {"y":8, "x":14}, {"y":8, "x":15}, {"y":8, "x":16}, {"y":9, "x":16}, {"y":10, "x":16}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}, {"y":11, "x":13}, {"y":10, "x":13}, {"y":9, "x":13}], "name":"Start", "id":0, "centre":{"y":9, "x":15}}}, "Map_Tile_25_11":{"terrain":"abyss"}, "Map_Tile_28_19":{"terrain":"abyss"}, "Map_Tile_3_17":{"terrain":"abyss"}, "Map_Tile_29_13":{"terrain":"abyss"}, "Map_Tile_27_2":{"terrain":"abyss"}, "Map_Tile_29_11":{"terrain":"abyss"}, "Map_Tile_29_10":{"terrain":"abyss"}, "Map_Tile_22_11":{"terrain":"abyss"}, "Map_Tile_26_0":{"terrain":"abyss"}, "Map_Tile_25_8":{"terrain":"abyss"}, "Map_Tile_14_13":{"terrain":"abyss"}, "Map_Tile_9_18":{"terrain":"abyss"}, "Map_Tile_29_6":{"terrain":"abyss"}, "Map_Tile_26_12":{"terrain":"abyss"}, "Map_Tile_28_18":{"terrain":"abyss"}, "Map_Tile_28_14":{"terrain":"abyss"}, "Map_Tile_28_12":{"terrain":"abyss"}, "Map_Tile_28_8":{"terrain":"abyss"}, "Map_Tile_28_7":{"terrain":"abyss"}, "Map_Tile_28_6":{"terrain":"abyss"}, "Map_Tile_22_9":{"terrain":"abyss"}, "Map_Tile_1_13":{"terrain":"abyss"}, "Map_Tile_28_5":{"terrain":"abyss"}, "Map_Tile_28_4":{"terrain":"abyss"}, "Map_Tile_28_3":{"terrain":"abyss"}, "Map_Tile_9_14":{"terrain":"abyss"}, "Map_Tile_14_7":{"terrain":"abyss"}, "Map_Tile_18_7":{"terrain":"abyss"}, "Map_Tile_12_1":{"terrain":"abyss"}, "Map_Tile_7_7":{"terrain":"abyss"}, "Map_Tile_27_7":{"terrain":"abyss"}, "Map_Tile_27_15":{"terrain":"abyss"}, "Map_Tile_27_14":{"terrain":"abyss"}, "Map_Tile_20_15":{"terrain":"abyss"}, "Map_Tile_0_5":{"terrain":"abyss"}, "Map_Tile_24_2":{"terrain":"abyss"}, "Map_Tile_7_18":{"terrain":"abyss"}, "Map_Tile_21_1":{"terrain":"abyss"}, "Map_Tile_23_8":{"terrain":"abyss"}, "Map_Tile_27_3":{"terrain":"abyss"}, "Map_Tile_19_1":{"terrain":"abyss"}, "Map_Tile_16_3":{"terrain":"abyss"}, "Map_Tile_26_19":{"terrain":"abyss"}, "Map_Tile_16_16":{"terrain":"abyss"}, "Map_Tile_26_15":{"terrain":"abyss"}, "Map_Tile_26_14":{"terrain":"abyss"}, "Map_Tile_3_16":{"terrain":"abyss"}, "Map_Tile_6_1":{"terrain":"abyss"}, "Map_Tile_26_11":{"terrain":"abyss"}, "Map_Tile_10_11":{"terrain":"abyss"}, "Map_Tile_17_11":{"terrain":"abyss"}, "Map_Tile_25_18":{"terrain":"abyss"}, "Map_Tile_24_15":{"terrain":"abyss"}, "Map_Tile_25_15":{"terrain":"abyss"}, "Map_Tile_19_0":{"terrain":"abyss"}, "Map_Tile_25_10":{"terrain":"abyss"}, "Map_Tile_5_19":{"terrain":"abyss"}, "Map_Tile_2_8":{"terrain":"abyss"}, "Map_Tile_8_4":{"terrain":"abyss"}, "Map_Tile_25_9":{"terrain":"abyss"}, "Map_Tile_29_8":{"terrain":"abyss"}, "Map_Tile_3_5":{"terrain":"abyss"}, "Map_Tile_0_15":{"terrain":"abyss"}, "Map_Tile_25_5":{"terrain":"abyss"}, "Map_Tile_5_12":{"terrain":"abyss"}, "Map_Tile_19_9":{"terrain":"abyss"}, "Map_Tile_8_19":{"terrain":"abyss"}, "Map_Tile_2_5":{"terrain":"abyss"}, "Map_Tile_12_18":{"terrain":"abyss"}, "Map_Tile_6_0":{"terrain":"abyss"}, "Map_Tile_15_13":{"terrain":"abyss"}, "Map_Tile_13_6":{"terrain":"abyss"}, "Map_Tile_18_2":{"terrain":"abyss"}, "Map_Tile_25_1":{"terrain":"abyss"}, "Map_Tile_25_0":{"terrain":"abyss"}, "Map_Tile_26_8":{"terrain":"abyss"}, "Map_Tile_16_14":{"terrain":"abyss"}, "Map_Tile_4_16":{"terrain":"abyss"}, "Map_Tile_16_13":{"terrain":"abyss"}, "Map_Tile_16_1":{"terrain":"abyss"}, "Map_Tile_1_0":{"terrain":"abyss"}, "Map_Tile_22_10":{"terrain":"abyss"}, "Map_Tile_1_5":{"terrain":"abyss"}, "Map_Tile_3_8":{"terrain":"abyss"}, "Map_Tile_15_16":{"terrain":"abyss"}, "Map_Tile_6_7":{"terrain":"abyss"}, "Map_Tile_7_1":{"terrain":"abyss"}, "Map_Tile_10_1":{"terrain":"abyss"}, "Map_Tile_24_12":{"terrain":"abyss"}, "Map_Tile_7_5":{"terrain":"abyss"}, "Map_Tile_24_9":{"terrain":"abyss"}, "Map_Tile_8_8":{"terrain":"abyss"}, "Map_Tile_11_6":{"terrain":"abyss"}, "Map_Tile_24_7":{"terrain":"abyss"}, "Map_Tile_27_13":{"terrain":"abyss"}, "Map_Tile_15_6":{"terrain":"abyss"}, "Map_Tile_8_10":{"terrain":"abyss"}, "Map_Tile_13_15":{"terrain":"abyss"}, "Map_Tile_12_5":{"terrain":"abyss"}, "Map_Tile_11_11":{"terrain":"abyss"}, "Map_Tile_24_4":{"terrain":"abyss"}, "Map_Tile_21_5":{"terrain":"abyss"}, "Map_Tile_24_13":{"terrain":"abyss"}, "Map_Tile_25_2":{"terrain":"abyss"}, "Map_Tile_24_0":{"terrain":"abyss"}, "Map_Tile_3_14":{"terrain":"abyss"}, "Map_Tile_0_10":{"terrain":"abyss"}, "Map_Tile_23_18":{"terrain":"abyss"}, "Map_Tile_17_2":{"terrain":"abyss"}, "Map_Tile_14_1":{"terrain":"abyss"}, "Map_Tile_12_9":{"terrain":"abyss"}, "Map_Tile_2_0":{"terrain":"abyss"}, "Map_Tile_13_1":{"terrain":"abyss"}, "Map_Tile_23_15":{"terrain":"abyss"}, "Map_Tile_9_7":{"terrain":"abyss"}, "Map_Tile_12_15":{"terrain":"abyss"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_27_6":{"terrain":"abyss"}, "Map_Tile_9_3":{"terrain":"abyss"}, "Map_Tile_16_12":{"terrain":"abyss"}, "Map_Tile_10_2":{"terrain":"abyss"}, "Map_Tile_23_13":{"terrain":"abyss"}, "Map_Tile_23_12":{"terrain":"abyss"}, "Map_Tile_23_10":{"terrain":"abyss"}, "Map_Tile_20_13":{"terrain":"abyss"}, "Map_Tile_23_9":{"terrain":"abyss"}, "Map_Tile_28_1":{"terrain":"abyss"}, "Map_Tile_10_8":{"terrain":"abyss"}, "Map_Tile_8_13":{"terrain":"abyss"}, "Map_Tile_23_6":{"terrain":"abyss"}, "Map_Tile_1_9":{"terrain":"abyss"}, "Map_Tile_9_19":{"terrain":"abyss"}, "Map_Tile_6_6":{"terrain":"abyss"}, "Map_Tile_1_19":{"terrain":"abyss"}, "Map_Tile_9_15":{"terrain":"abyss"}, "Map_Tile_1_6":{"terrain":"abyss"}, "Map_Tile_4_17":{"terrain":"abyss"}, "Map_Tile_11_4":{"terrain":"abyss"}, "Map_Tile_7_14":{"terrain":"abyss"}, "Map_Tile_13_16":{"terrain":"abyss"}, "Map_Tile_22_19":{"terrain":"abyss"}, "Map_Tile_8_3":{"terrain":"abyss"}, "Map_Tile_12_11":{"terrain":"abyss"}, "Map_Tile_22_16":{"terrain":"abyss"}, "Map_Tile_11_0":{"terrain":"abyss"}, "Map_Size":{"y":20, "x":30}, "Map_Tile_6_4":{"terrain":"abyss"}, "Map_Tile_14_6":{"terrain":"abyss"}, "Map_Tile_2_2":{"terrain":"abyss"}, "Map_Tile_21_7":{"terrain":"abyss"}, "Map_Tile_4_4":{"terrain":"abyss"}, "Map_Tile_22_15":{"terrain":"abyss"}, "Triggers":[{"isIntro":false, "enabled":true, "conditions":{}, "recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"AP: Export", "actions":[{"enabled":true, "id":"ap_export", "parameters":["926328", "Ancient Discoveries", "Fly Sniper", "Spawn 3 enemy strongholds.", "Kill an enemy stronghold with a golem.", "", "Win by eliminating an enemy stronghold."]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_presence", "parameters":["current", "0", "0", "*unit_structure", "-1"]}], "recurring":"oncePerPlayer", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"$trigger_default_defeat_no_units", "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_lost", "parameters":["*commander", "current", "-1"]}], "recurring":"oncePerPlayer", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Defeat (Lost Commander)", "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_lost", "parameters":["hq", "current", "-1"]}], "recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "id":"$trigger_default_defeat_hq", "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"number_of_opponents", "parameters":["current", "0", "0"]}], "recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "id":"$trigger_default_victory", "actions":[{"enabled":true, "id":"victory", "parameters":["current"]}]}, {"isIntro":false, "enabled":true, "conditions":{}, "recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Generate Map", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["0", "-5", "0", "0", "0", "50", "0", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "2", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "2", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "2", "P1", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "1"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 1", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["1", "-7", "0", "0", "0", "95", "0", "0", "5"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "1", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "1", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["dog", "1", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "3"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 2", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["3", "-7", "0", "0", "0", "95", "0", "0", "5"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "3", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "3", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "4"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 3", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["4", "-7", "0", "0", "0", "0", "95", "5", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "4", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["mage", "4", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "5"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 4", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["5", "-7", "0", "0", "0", "50", "50", "5", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "5", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["griffin_walking", "5", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["soldier", "5", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "6"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 5", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["6", "-7", "0", "50", "5", "0", "0", "0", "5"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "6", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["caravel", "6", "P2", "1", "1", "3", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["dog", "6", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["mage", "6", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "7"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 6", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["7", "-7", "0", "0", "0", "20", "40", "40", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "7", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["archer", "7", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "7", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "8"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 7", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["8", "-7", "0", "0", "0", "60", "40", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "8", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "8", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["soldier", "8", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "9"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 8", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["9", "-10", "0", "50", "0", "0", "0", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["knight", "9", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["fortified_city", "9", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["griffin_walking", "9", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "10"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 9", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["10", "-13", "0", "0", "50", "10", "0", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "10", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["merman", "10", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["port", "10", "P1", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "11"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 10", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["11", "-13", "0", "0", "0", "50", "0", "5", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "11", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "11", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "11", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "12"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 11", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["12", "-10", "0", "0", "0", "5", "10", "5", "80"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "12", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "12", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "13"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 12", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["13", "-13", "0", "0", "0", "60", "10", "5", "5"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "13", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["knight", "13", "P2", "1", "1", "3", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "14"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 13", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["14", "-13", "0", "50", "5", "20", "0", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "14", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["mage", "14", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["giant", "14", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "15"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 14", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["15", "-13", "0", "0", "0", "50", "20", "0", "10"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "15", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["soldier", "15", "P2", "1", "1", "5", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["dog", "15", "P2", "1", "1", "3", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_victorious", "parameters":["current"]}], "recurring":"end_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"P1 Victorious (253045)", "actions":[{"enabled":true, "id":"ap_location_send", "parameters":["253045"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_presence", "parameters":["current", "2", "2", "hq", "-1"]}], "recurring":"once", "players":[0, 1, 0, 0, 0, 0, 0, 0], "id":"Spawn 3 Enemy Strongholds (253046)", "actions":[{"enabled":true, "id":"ap_location_send", "parameters":["253046"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_killed", "parameters":["giant", "P1", "hq", "P2", "-1"]}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"P1 Giant kills stronghold (253047)", "actions":[{"enabled":true, "id":"ap_location_send", "parameters":["253047"]}]}], "Map_Tile_27_9":{"terrain":"abyss"}, "Map_Tile_25_6":{"terrain":"abyss"}, "Map_Tile_0_7":{"terrain":"abyss"}, "Map_Tile_22_7":{"terrain":"abyss"}, "Map_Tile_10_7":{"terrain":"abyss"}, "Map_Tile_9_1":{"terrain":"abyss"}, "Map_Tile_13_3":{"terrain":"abyss"}, "Map_Tile_22_4":{"terrain":"abyss"}, "Map_Tile_6_17":{"terrain":"abyss"}, "Map_Tile_22_2":{"terrain":"abyss"}, "Map_Tile_1_17":{"terrain":"abyss"}, "Map_Tile_17_10":{"terrain":"abyss"}, "Map_Tile_23_17":{"terrain":"abyss"}, "Map_Tile_15_0":{"terrain":"abyss"}, "Map_Tile_23_2":{"terrain":"abyss"}, "Map_Tile_26_13":{"terrain":"abyss"}, "Map_Tile_8_5":{"terrain":"abyss"}, "Map_Tile_9_9":{"terrain":"abyss"}, "Map_Tile_21_19":{"terrain":"abyss"}, "Map_Tile_5_9":{"terrain":"abyss"}, "Map_Tile_4_10":{"terrain":"abyss"}, "Map_Tile_12_12":{"terrain":"abyss"}, "Map_Tile_21_17":{"terrain":"abyss"}, "Map_Tile_21_16":{"terrain":"abyss"}, "Map_Tile_23_5":{"terrain":"abyss"}, "Map_Tile_21_13":{"terrain":"abyss"}, "Map_Tile_18_19":{"terrain":"abyss"}, "Map_Tile_6_5":{"terrain":"abyss"}, "Map_Tile_21_10":{"terrain":"abyss"}, "Map_Tile_21_9":{"terrain":"abyss"}, "Map_Tile_21_8":{"terrain":"abyss"}, "Map_Tile_20_19":{"terrain":"abyss"}, "Map_Tile_2_6":{"terrain":"abyss"}, "Map_Tile_18_1":{"terrain":"abyss"}, "Map_Tile_18_8":{"terrain":"abyss"}, "Map_Tile_20_12":{"terrain":"abyss"}, "Map_Tile_8_0":{"terrain":"abyss"}, "Map_Tile_20_18":{"terrain":"abyss"}, "Map_Tile_3_6":{"terrain":"abyss"}, "Map_Tile_20_14":{"terrain":"abyss"}, "Map_Tile_12_2":{"terrain":"abyss"}, "Map_Tile_26_18":{"terrain":"abyss"}, "Map_Tile_8_15":{"terrain":"abyss"}, "Map_Tile_3_11":{"terrain":"abyss"}, "Map_Tile_20_9":{"terrain":"abyss"}, "Map_Tile_3_13":{"terrain":"abyss"}, "Map_Tile_20_6":{"terrain":"abyss"}, "Map_Tile_20_5":{"terrain":"abyss"}, "Map_Tile_11_12":{"terrain":"abyss"}, "Map_Tile_15_17":{"terrain":"abyss"}, "Map_Tile_3_19":{"terrain":"abyss"}, "Map_Tile_0_2":{"terrain":"abyss"}, "Map_Tile_20_2":{"terrain":"abyss"}, "Map_Tile_8_7":{"terrain":"abyss"}, "Map_Tile_11_13":{"terrain":"abyss"}, "Map_Tile_10_5":{"terrain":"abyss"}, "Map_Tile_6_11":{"terrain":"abyss"}, "Map_Tile_12_8":{"terrain":"abyss"}, "Map_Tile_3_18":{"terrain":"abyss"}, "Map_Tile_20_1":{"terrain":"abyss"}, "Map_Tile_0_18":{"terrain":"abyss"}, "Map_Tile_18_17":{"terrain":"abyss"}, "Map_Tile_10_9":{"terrain":"abyss"}, "Map_Tile_13_17":{"terrain":"abyss"}, "Map_Tile_19_15":{"terrain":"abyss"}, "Map_Tile_7_2":{"terrain":"abyss"}, "Map_Tile_9_6":{"terrain":"abyss"}, "Map_Tile_19_8":{"terrain":"abyss"}, "Map_Tile_14_0":{"terrain":"abyss"}, "Map_Tile_19_5":{"terrain":"abyss"}, "Map_Tile_18_3":{"terrain":"abyss"}, "Map_Tile_4_19":{"terrain":"abyss"}, "Map_Tile_26_1":{"terrain":"abyss"}, "Map_Tile_5_3":{"terrain":"abyss"}, "Map_Tile_18_13":{"terrain":"abyss"}, "Map_Tile_8_12":{"terrain":"abyss"}, "Map_Tile_17_18":{"terrain":"abyss"}, "Player_Count":2, "Map_Tile_15_5":{"terrain":"abyss"}, "Map_Tile_17_16":{"terrain":"abyss"}, "Map_Tile_4_5":{"terrain":"abyss"}, "Map_Tile_17_15":{"terrain":"abyss"}, "Map_Tile_19_12":{"terrain":"abyss"}, "Map_Tile_0_11":{"terrain":"abyss"}, "Map_Tile_7_13":{"terrain":"abyss"}, "Map_Tile_14_4":{"terrain":"abyss"}, "Map_Tile_0_19":{"terrain":"abyss"}, "Map_Tile_1_12":{"terrain":"abyss"}, "Map_Tile_0_3":{"terrain":"abyss"}, "Map_Tile_7_4":{"terrain":"abyss"}, "Map_Tile_15_4":{"terrain":"abyss"}, "Map_Tile_5_8":{"terrain":"abyss"}, "Map_Tile_14_14":{"terrain":"abyss"}, "Map_Tile_23_19":{"terrain":"abyss"}, "Map_Tile_13_12":{"terrain":"abyss"}, "Map_Tile_24_10":{"terrain":"abyss"}, "Map_Tile_9_2":{"terrain":"abyss"}, "Map_Tile_12_6":{"terrain":"abyss"}, "Map_Tile_4_7":{"terrain":"abyss"}, "Map_Tile_0_0":{"terrain":"abyss"}, "Map_Tile_0_16":{"terrain":"abyss"}, "Map_Tile_25_3":{"terrain":"abyss"}, "Map_Tile_22_3":{"terrain":"abyss"}, "Map_Tile_12_0":{"terrain":"abyss"}, "Map_Tile_11_16":{"terrain":"abyss"}, "Map_Tile_2_15":{"terrain":"abyss"}, "Map_Tile_3_12":{"terrain":"abyss"}, "Map_Tile_12_17":{"terrain":"abyss"}} \ No newline at end of file diff --git a/worlds/wargroove2/levels/Majestic_Mountain.json b/worlds/wargroove2/levels/Majestic_Mountain.json new file mode 100644 index 000000000000..f36c7e0d3f44 --- /dev/null +++ b/worlds/wargroove2/levels/Majestic_Mountain.json @@ -0,0 +1 @@ +{"Map_Tile_5_14":{"terrain":"plains"}, "Map_Tile_15_6":{"terrain":"plains"}, "Map_Tile_13_3":{"terrain":"plains"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_16_12":{"terrain":"plains"}, "Map_Tile_9_11":{"terrain":"plains"}, "Map_Tile_10_11":{"terrain":"plains"}, "Map_Tile_15_13":{"terrain":"plains"}, "Map_Tile_12_13":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_12_11":{"terrain":"plains"}, "Map_Tile_6_12":{"terrain":"plains"}, "Map_Tile_16_10":{"terrain":"plains"}, "Map_Tile_7_3":{"terrain":"plains"}, "Map_Tile_8_1":{"terrain":"plains"}, "Map_Tile_14_0":{"terrain":"mountain"}, "Map_Tile_6_13":{"terrain":"plains"}, "Map_Tile_1_5":{"terrain":"plains"}, "Map_Tile_2_14":{"terrain":"plains"}, "Map_Tile_11_0":{"terrain":"plains"}, "Map_Tile_4_12":{"terrain":"plains"}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_5_11":{"terrain":"plains"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_4_11":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"mountain"}, "Map_Tile_16_4":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"plains"}, "Map_Tile_12_14":{"terrain":"plains"}, "Map_Tile_14_6":{"terrain":"plains"}, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_12_5":{"terrain":"plains"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_14_2":{"terrain":"plains"}, "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_10_5":{"terrain":"mountain"}, "Map_Tile_14_3":{"terrain":"plains"}, "Map_Tile_10_13":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"plains"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Tile_8_12":{"terrain":"plains"}, "Map_Tile_3_11":{"terrain":"plains"}, "Map_Tile_9_3":{"terrain":"mountain"}, "Map_Tile_15_9":{"terrain":"plains"}, "Map_Tile_4_0":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"mountain"}, "Map_Tile_9_0":{"terrain":"plains"}, "Map_Tile_4_7":{"terrain":"plains"}, "Map_Tile_12_0":{"terrain":"mountain"}, "Map_Tile_8_11":{"terrain":"plains"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_11_5":{"terrain":"plains"}, "Map_Tile_2_13":{"terrain":"plains"}, "Map_Tile_5_13":{"terrain":"plains"}, "Map_Tile_3_4":{"terrain":"plains"}, "Map_Tile_9_14":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"mountain"}, "Map_Tile_8_0":{"terrain":"plains"}, "Map_Tile_12_10":{"terrain":"plains"}, "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_16_8":{"terrain":"plains"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_7_13":{"terrain":"plains"}, "Map_Tile_10_0":{"terrain":"plains"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_7_14":{"terrain":"plains"}, "Map_Tile_7_10":{"terrain":"plains"}, "Map_Tile_6_7":{"terrain":"plains"}, "Objectives":["Grab the hiking boots.", "Get a legendary Air Trooper crit.", "Win with standard conditions."], "Map_Tile_8_4":{"terrain":"plains"}, "Map_Tile_2_0":{"terrain":"plains"}, "Map_Tile_15_3":{"terrain":"plains"}, "Map_Tile_12_2":{"terrain":"mountain", "item":{"itemId":1, "isConsumable":false, "pos":{"y":2, "x":12}, "type":"hiking_boots", "unitTypeRestriction":{}}}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"plains"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_7_1":{"terrain":"plains"}, "Map_Tile_12_9":{"terrain":"plains"}, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_13_6":{"terrain":"plains"}, "Map_Tile_7_9":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_7_4":{"terrain":"plains"}, "Map_Tile_10_7":{"terrain":"plains"}, "Map_Tile_13_14":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"plains"}, "Map_Tile_16_5":{"terrain":"plains"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"plains"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_0_8":{"terrain":"plains"}, "Map_Tile_3_13":{"terrain":"plains"}, "Map_Tile_11_3":{"terrain":"mountain"}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_11_9":{"terrain":"plains"}, "Map_Tile_1_14":{"terrain":"plains"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_13_0":{"terrain":"mountain"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_15_4":{"terrain":"plains"}, "Map_Tile_16_7":{"terrain":"plains"}, "Map_Tile_14_4":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_8_7":{"terrain":"mountain"}, "Map_Tile_3_14":{"terrain":"plains"}, "Map_Tile_16_9":{"terrain":"plains"}, "Map_Tile_1_9":{"terrain":"plains"}, "Flags":{}, "Map_Tile_7_5":{"terrain":"plains"}, "Map_Tile_1_4":{"terrain":"plains"}, "Map_Tile_1_10":{"terrain":"plains"}, "Map_Tile_7_11":{"terrain":"plains"}, "Map_Tile_15_12":{"terrain":"plains"}, "Map_Tile_6_11":{"terrain":"plains"}, "Map_Tile_12_1":{"terrain":"mountain"}, "Map_Tile_5_2":{"terrain":"plains"}, "Map_Tile_3_2":{"terrain":"plains"}, "Player_1":{"recruit_frog":true, "recruit_spearman":true, "recruit_archer":true, "recruit_turtle":true, "recruit_wagon":true, "gold":100, "recruit_knight":true, "recruit_witch":true, "recruit_warship":true, "recruit_griffin_walking":true, "recruit_trebuchet":true, "recruit_caravel":true, "team":0, "recruit_kraken":true, "recruit_merman":true, "recruit_travelboat":true, "recruit_soldier":true, "recruit_dragon":true, "recruit_ballista":true, "recruit_harpy":true, "recruit_harpoonship":true, "recruit_balloon":true, "recruit_dog":true, "recruit_thief":true, "recruit_rifleman":true, "recruit_giant":true, "recruit_mage":true}, "Map_Tile_15_1":{"terrain":"plains"}, "Map_Size":{"y":15, "x":17}, "Map_Tile_8_8":{"terrain":"plains"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_15_14":{"terrain":"plains"}, "Map_Tile_13_13":{"terrain":"plains"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_11_11":{"terrain":"plains"}, "Map_Tile_8_6":{"terrain":"mountain"}, "Map_Tile_16_0":{"terrain":"plains"}, "Map_Tile_16_6":{"terrain":"plains"}, "Map_Tile_1_2":{"terrain":"plains"}, "Map_Tile_14_5":{"terrain":"plains"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_4_14":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"plains"}, "Map_Tile_14_13":{"terrain":"plains"}, "Map_Name":"Majestic Mountain", "Map_Tile_3_5":{"terrain":"plains"}, "Map_Tile_10_14":{"terrain":"plains"}, "Map_Tile_15_2":{"terrain":"plains"}, "Map_Tile_12_3":{"terrain":"mountain"}, "Map_Tile_10_6":{"terrain":"mountain"}, "Map_Tile_8_5":{"terrain":"plains"}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_14_1":{"terrain":"mountain"}, "Map_Tile_8_14":{"terrain":"plains"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_7_0":{"terrain":"plains"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"mountain"}, "Map_Tile_8_9":{"terrain":"plains"}, "Map_Tile_9_5":{"terrain":"mountain"}, "Map_Tile_9_6":{"terrain":"mountain"}, "Map_Tile_9_2":{"terrain":"plains"}, "Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_0_5":{"terrain":"plains"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"mountain"}, "Map_Tile_11_8":{"terrain":"plains"}, "Map_Tile_16_13":{"terrain":"plains"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"plains"}, "Map_Tile_11_10":{"terrain":"plains"}, "Map_Tile_2_11":{"terrain":"plains"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_12_8":{"terrain":"plains"}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_2_1":{"terrain":"plains"}, "Map_Tile_10_8":{"terrain":"plains"}, "Map_Tile_1_1":{"terrain":"plains"}, "Map_Tile_9_9":{"terrain":"plains"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"plains"}, "Map_Tile_10_1":{"terrain":"plains"}, "Map_Tile_10_3":{"terrain":"mountain"}, "Map_Tile_5_3":{"terrain":"plains"}, "Map_Tile_1_11":{"terrain":"plains"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_2_12":{"terrain":"plains"}, "Counters":{}, "Map_Tile_13_8":{"terrain":"plains"}, "Map_Tile_4_13":{"terrain":"plains"}, "Map_Tile_5_4":{"terrain":"plains"}, "Triggers":[{"actions":[{"enabled":true, "parameters":["98476", "Majestic Mountain", "Fly Sniper", "Grab the hiking boots.", "Get a legendary Air Trooper crit.", "", "Win with standard conditions."], "id":"ap_export"}], "conditions":{}, "recurring":"start_of_match", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"AP: Export"}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "conditions":[{"enabled":true, "parameters":["current", "0", "0", "*unit_structure", "-1"], "id":"unit_presence"}], "recurring":"oncePerPlayer", "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"$trigger_default_defeat_no_units"}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "conditions":[{"enabled":true, "parameters":["*commander", "current", "-1"], "id":"unit_lost"}], "recurring":"oncePerPlayer", "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"$trigger_default_defeat_commander"}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "conditions":[{"enabled":true, "parameters":["hq", "current", "-1"], "id":"unit_lost"}], "recurring":"oncePerPlayer", "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"$trigger_default_defeat_hq"}, {"actions":[{"enabled":true, "parameters":["current"], "id":"victory"}], "conditions":[{"enabled":true, "parameters":["current", "0", "0"], "id":"number_of_opponents"}], "recurring":"oncePerPlayer", "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"$trigger_default_victory"}, {"actions":[{"enabled":true, "parameters":["0", "-10", "0", "0", "0", "50", "4", "2", "0"], "id":"map_randomize"}, {"enabled":true, "parameters":["3", "0", "0", "0", "0", "0", "2", "5", "0"], "id":"position_asymmetric_randomize"}, {"enabled":true, "parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["spearman", "3", "P1", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["mage", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["spearman", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["mage", "4", "P2", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["frog", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["harpy", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["barracks", "3", "P1", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["barracks", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["tower", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["tower", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}], "conditions":{}, "recurring":"start_of_match", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"Generate Map"}, {"actions":[{"enabled":true, "parameters":["253051"], "id":"ap_location_send"}], "conditions":[{"enabled":true, "parameters":["current"], "id":"player_victorious"}], "recurring":"end_of_match", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"P1 Victorious (253051)"}, {"actions":[{"enabled":true, "parameters":["253052"], "id":"ap_location_send"}], "conditions":[{"enabled":true, "parameters":["current", "*unit", "*item", "-1"], "id":"unit_item_presence"}], "recurring":"once", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"Dog Kills Knight (253052)"}, {"actions":[{"enabled":true, "parameters":["253053"], "id":"ap_location_send"}], "conditions":[{"enabled":true, "parameters":["current", "1", "0", "griffin_walking", "-10"], "id":"unit_presence"}], "recurring":"once", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"P1 Air Trooper crit (253053)"}], "Locations":{"1":{"getArea":null, "name":"P1 Stronghold Location", "positions":[{"y":10, "x":6}, {"y":11, "x":6}, {"y":10, "x":5}, {"y":9, "x":5}, {"y":9, "x":6}, {"y":11, "x":5}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":10, "x":4}, {"y":9, "x":4}, {"y":8, "x":4}], "setArea":null, "interactable":false, "centre":{"y":9, "x":5}, "id":1}, "2":{"getArea":null, "name":"P2 Stronghold Location", "positions":[{"y":7, "x":12}, {"y":7, "x":13}, {"y":7, "x":14}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":9, "x":13}, {"y":8, "x":12}, {"y":9, "x":14}, {"y":8, "x":15}], "setArea":null, "interactable":false, "centre":{"y":8, "x":13}, "id":2}, "3":{"getArea":null, "name":"P1 Starting Zone", "positions":[{"y":0, "x":3}, {"y":1, "x":3}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":1, "x":5}, {"y":0, "x":5}, {"y":0, "x":4}, {"y":1, "x":4}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":7}, {"y":2, "x":6}, {"y":0, "x":7}, {"y":2, "x":7}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":5}, {"y":3, "x":6}, {"y":3, "x":7}, {"y":3, "x":2}, {"y":0, "x":2}, {"y":1, "x":2}, {"y":2, "x":2}, {"y":12, "x":2}, {"y":12, "x":1}, {"y":13, "x":1}, {"y":13, "x":2}, {"y":14, "x":1}, {"y":14, "x":0}, {"y":13, "x":0}, {"y":12, "x":0}, {"y":14, "x":2}], "setArea":null, "interactable":false, "centre":{"y":5, "x":4}, "id":3}, "4":{"getArea":null, "name":"P2 Starting Zone", "positions":[{"y":0, "x":15}, {"y":0, "x":16}, {"y":1, "x":16}, {"y":2, "x":16}, {"y":3, "x":16}, {"y":3, "x":15}, {"y":4, "x":15}, {"y":2, "x":15}, {"y":1, "x":15}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":3, "x":13}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":16}, {"y":14, "x":16}, {"y":14, "x":15}, {"y":14, "x":14}, {"y":14, "x":13}, {"y":13, "x":13}, {"y":12, "x":13}, {"y":12, "x":14}, {"y":12, "x":15}, {"y":12, "x":16}, {"y":13, "x":16}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}], "setArea":null, "interactable":false, "centre":{"y":8, "x":15}, "id":4}, "0":{"getArea":null, "name":"Land", "positions":[{"y":0, "x":11}, {"y":0, "x":10}, {"y":1, "x":10}, {"y":1, "x":9}, {"y":2, "x":9}, {"y":2, "x":8}, {"y":2, "x":7}, {"y":2, "x":6}, {"y":2, "x":5}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":2, "x":2}, {"y":2, "x":1}, {"y":2, "x":0}, {"y":1, "x":0}, {"y":0, "x":0}, {"y":0, "x":1}, {"y":0, "x":2}, {"y":0, "x":3}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":0, "x":6}, {"y":0, "x":7}, {"y":0, "x":8}, {"y":0, "x":9}, {"y":1, "x":8}, {"y":1, "x":7}, {"y":1, "x":6}, {"y":1, "x":5}, {"y":1, "x":4}, {"y":1, "x":3}, {"y":1, "x":2}, {"y":1, "x":1}, {"y":3, "x":0}, {"y":4, "x":0}, {"y":5, "x":0}, {"y":6, "x":0}, {"y":7, "x":0}, {"y":8, "x":0}, {"y":9, "x":0}, {"y":10, "x":0}, {"y":11, "x":0}, {"y":12, "x":0}, {"y":13, "x":0}, {"y":14, "x":0}, {"y":14, "x":1}, {"y":14, "x":2}, {"y":14, "x":3}, {"y":14, "x":4}, {"y":14, "x":5}, {"y":14, "x":6}, {"y":14, "x":7}, {"y":14, "x":8}, {"y":14, "x":9}, {"y":14, "x":10}, {"y":14, "x":11}, {"y":14, "x":12}, {"y":14, "x":13}, {"y":14, "x":14}, {"y":14, "x":15}, {"y":14, "x":16}, {"y":13, "x":16}, {"y":12, "x":16}, {"y":11, "x":16}, {"y":10, "x":16}, {"y":9, "x":16}, {"y":8, "x":16}, {"y":7, "x":16}, {"y":6, "x":16}, {"y":5, "x":16}, {"y":4, "x":16}, {"y":3, "x":16}, {"y":2, "x":16}, {"y":1, "x":16}, {"y":0, "x":16}, {"y":0, "x":15}, {"y":1, "x":15}, {"y":2, "x":15}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":3, "x":15}, {"y":3, "x":13}, {"y":4, "x":13}, {"y":4, "x":14}, {"y":4, "x":15}, {"y":5, "x":13}, {"y":4, "x":12}, {"y":5, "x":12}, {"y":5, "x":11}, {"y":5, "x":14}, {"y":5, "x":15}, {"y":6, "x":15}, {"y":7, "x":15}, {"y":7, "x":14}, {"y":7, "x":13}, {"y":7, "x":12}, {"y":6, "x":12}, {"y":6, "x":11}, {"y":6, "x":13}, {"y":6, "x":14}, {"y":7, "x":11}, {"y":7, "x":10}, {"y":8, "x":10}, {"y":8, "x":9}, {"y":8, "x":8}, {"y":8, "x":7}, {"y":7, "x":7}, {"y":6, "x":7}, {"y":5, "x":7}, {"y":5, "x":8}, {"y":4, "x":8}, {"y":3, "x":8}, {"y":3, "x":7}, {"y":3, "x":6}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":2}, {"y":3, "x":1}, {"y":4, "x":1}, {"y":5, "x":1}, {"y":6, "x":1}, {"y":7, "x":1}, {"y":8, "x":1}, {"y":9, "x":1}, {"y":10, "x":1}, {"y":11, "x":1}, {"y":12, "x":1}, {"y":13, "x":1}, {"y":13, "x":2}, {"y":13, "x":3}, {"y":13, "x":4}, {"y":13, "x":5}, {"y":13, "x":6}, {"y":13, "x":7}, {"y":13, "x":8}, {"y":13, "x":9}, {"y":13, "x":10}, {"y":13, "x":11}, {"y":13, "x":12}, {"y":13, "x":13}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":12, "x":15}, {"y":11, "x":15}, {"y":10, "x":15}, {"y":9, "x":15}, {"y":8, "x":15}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":8, "x":12}, {"y":8, "x":11}, {"y":9, "x":7}, {"y":9, "x":8}, {"y":9, "x":9}, {"y":9, "x":10}, {"y":9, "x":11}, {"y":9, "x":12}, {"y":9, "x":13}, {"y":9, "x":14}, {"y":10, "x":14}, {"y":11, "x":14}, {"y":12, "x":14}, {"y":12, "x":13}, {"y":12, "x":12}, {"y":12, "x":11}, {"y":12, "x":10}, {"y":11, "x":10}, {"y":11, "x":11}, {"y":10, "x":12}, {"y":10, "x":13}, {"y":11, "x":13}, {"y":11, "x":12}, {"y":10, "x":11}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":11, "x":9}, {"y":10, "x":10}, {"y":11, "x":8}, {"y":12, "x":7}, {"y":12, "x":6}, {"y":11, "x":7}, {"y":10, "x":9}, {"y":11, "x":6}, {"y":10, "x":7}, {"y":10, "x":8}, {"y":11, "x":5}, {"y":10, "x":6}, {"y":12, "x":5}, {"y":12, "x":4}, {"y":12, "x":3}, {"y":11, "x":4}, {"y":11, "x":3}, {"y":11, "x":2}, {"y":10, "x":2}, {"y":10, "x":3}, {"y":10, "x":4}, {"y":10, "x":5}, {"y":12, "x":2}, {"y":9, "x":6}, {"y":9, "x":2}, {"y":9, "x":3}, {"y":9, "x":4}, {"y":9, "x":5}, {"y":8, "x":2}, {"y":7, "x":2}, {"y":6, "x":2}, {"y":5, "x":2}, {"y":4, "x":2}, {"y":4, "x":3}, {"y":4, "x":4}, {"y":4, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":6, "x":3}, {"y":7, "x":3}, {"y":8, "x":3}, {"y":8, "x":4}, {"y":7, "x":4}, {"y":6, "x":4}, {"y":5, "x":5}, {"y":6, "x":5}, {"y":7, "x":5}, {"y":6, "x":6}, {"y":5, "x":6}, {"y":7, "x":6}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":4, "x":7}, {"y":4, "x":6}], "setArea":null, "interactable":false, "centre":{"y":7, "x":8}, "id":0}}, "Map_Tile_16_14":{"terrain":"plains"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_7_2":{"terrain":"plains"}, "Map_Tile_16_3":{"terrain":"plains"}, "Map_Tile_16_2":{"terrain":"plains"}, "Map_Tile_3_1":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"plains"}, "Map_Tile_16_1":{"terrain":"plains"}, "Map_Tile_15_0":{"terrain":"plains"}, "Map_Tile_15_5":{"terrain":"plains"}, "Map_Tile_13_10":{"terrain":"plains"}, "Map_Tile_9_13":{"terrain":"plains"}, "Map_Tile_8_3":{"terrain":"plains"}, "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_7_6":{"terrain":"plains"}, "Map_Tile_15_10":{"terrain":"plains"}, "Map_Tile_15_8":{"terrain":"plains"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Tile_9_1":{"terrain":"plains"}, "Map_Tile_8_10":{"terrain":"plains"}, "Map_Tile_1_3":{"terrain":"plains"}, "Player_Count":2, "Map_Tile_13_2":{"terrain":"mountain"}, "Map_Tile_14_14":{"terrain":"plains"}, "Map_Tile_8_2":{"terrain":"plains"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"plains"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_1_8":{"terrain":"plains"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_6_14":{"terrain":"plains"}, "Map_Tile_13_5":{"terrain":"plains"}, "Map_Tile_11_13":{"terrain":"plains"}, "Player_2":{"recruit_frog":true, "recruit_spearman":true, "recruit_archer":true, "recruit_turtle":true, "recruit_wagon":false, "gold":100, "recruit_knight":true, "recruit_witch":true, "recruit_warship":false, "recruit_griffin_walking":true, "recruit_trebuchet":false, "recruit_caravel":true, "team":1, "recruit_kraken":false, "recruit_merman":true, "recruit_travelboat":false, "recruit_soldier":true, "recruit_dragon":true, "recruit_ballista":false, "recruit_harpy":true, "recruit_harpoonship":true, "recruit_balloon":true, "recruit_dog":true, "recruit_thief":true, "recruit_rifleman":true, "recruit_giant":true, "recruit_mage":true}, "Author":"Fly Sniper", "Map_Tile_13_7":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_13_4":{"terrain":"plains"}, "Map_Tile_2_9":{"terrain":"plains"}, "Map_Tile_4_1":{"terrain":"plains"}, "Map_Tile_13_1":{"terrain":"mountain"}, "Map_Tile_14_10":{"terrain":"plains"}, "Map_Tile_9_8":{"terrain":"plains"}, "Map_Tile_15_7":{"terrain":"plains"}, "Map_Tile_11_6":{"terrain":"plains"}, "Map_Tile_1_13":{"terrain":"plains"}, "Map_Tile_3_12":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_0_13":{"terrain":"plains"}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_6_2":{"terrain":"plains"}, "Map_Tile_6_10":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_11_14":{"terrain":"plains"}, "Map_Tile_6_1":{"terrain":"plains"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_8_13":{"terrain":"plains"}, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_0_14":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"mountain"}, "Map_Tile_10_9":{"terrain":"plains"}, "Map_Tile_10_10":{"terrain":"plains"}, "Map_Tile_14_7":{"terrain":"plains"}, "Map_Tile_1_6":{"terrain":"plains"}, "Map_Tile_9_10":{"terrain":"plains"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_11_4":{"terrain":"mountain"}} \ No newline at end of file diff --git a/worlds/wargroove2/levels/Observation_Isle.json b/worlds/wargroove2/levels/Observation_Isle.json new file mode 100644 index 000000000000..391276690115 --- /dev/null +++ b/worlds/wargroove2/levels/Observation_Isle.json @@ -0,0 +1 @@ +{"Map_Tile_10_16":{"terrain":"plains"}, "Map_Tile_8_2":{"terrain":"sea"}, "Map_Tile_8_4":{"terrain":"sea"}, "Map_Tile_7_11":{"terrain":"beach"}, "Map_Tile_11_14":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"sea"}, "Map_Tile_10_15":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"sea"}, "Map_Tile_9_1":{"terrain":"sea"}, "Map_Tile_6_16":{"terrain":"plains"}, "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_9_9":{"terrain":"sea"}, "Map_Tile_18_8":{"terrain":"sea"}, "Map_Tile_12_9":{"terrain":"sea"}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_1_3":{"terrain":"plains"}, "Map_Tile_7_16":{"terrain":"plains"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_11_16":{"terrain":"plains"}, "Triggers":[{"recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"AP: Export", "enabled":true, "actions":[{"id":"ap_export", "enabled":true, "parameters":["161792", "Observation Isle", "Fly Sniper", "Step on Observation Isle (No Requirements).", "Kill player 3's commander (Requires Walls event).", "", "Win with standard conditions."]}], "conditions":{}}, {"recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"$trigger_default_defeat_no_units", "enabled":true, "actions":[{"id":"eliminate", "enabled":true, "parameters":["current"]}], "conditions":[{"id":"unit_presence", "enabled":true, "parameters":["current", "0", "0", "*unit_structure", "-1"]}]}, {"recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"$trigger_default_defeat_commander", "enabled":true, "actions":[{"id":"eliminate", "enabled":true, "parameters":["current"]}], "conditions":[{"id":"unit_lost", "enabled":true, "parameters":["*commander", "current", "-1"]}]}, {"recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"$trigger_default_defeat_hq", "enabled":true, "actions":[{"id":"eliminate", "enabled":true, "parameters":["current"]}], "conditions":[{"id":"unit_lost", "enabled":true, "parameters":["hq", "current", "-1"]}]}, {"recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Victory (One Opponent Left)", "enabled":true, "actions":[{"id":"victory", "enabled":true, "parameters":["current"]}], "conditions":[{"id":"number_of_opponents", "enabled":true, "parameters":["current", "3", "2"]}]}, {"recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Generate Map", "enabled":true, "actions":[{"id":"map_randomize", "enabled":true, "parameters":["0", "-10", "0", "0", "50", "0", "0", "0", "0"]}, {"id":"map_randomize", "enabled":true, "parameters":["5", "-12", "0", "0", "0", "50", "10", "5", "0"]}, {"id":"position_asymmetric_randomize", "enabled":true, "parameters":["3", "0", "0", "0", "0", "0", "0", "8", "0"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["barracks", "3", "P1", "1", "1", "2", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["barracks", "4", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"id":"modify_health", "enabled":true, "parameters":["*structure", "-1", "any", "0", "100"]}], "conditions":{}}, {"recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Walls Crumble", "enabled":true, "actions":[{"id":"play_sound_effect", "enabled":true, "parameters":["bellToll", "6"]}, {"id":"screenshake", "enabled":true, "parameters":["3000", "2", "2", "5"]}, {"id":"wait", "enabled":true, "parameters":["3000"]}, {"id":"map_randomize", "enabled":true, "parameters":["6", "-10", "0", "0", "0", "50", "0", "0", "0"]}], "conditions":[{"id":"ap_has_item", "enabled":true, "parameters":["252024", "0", "1"]}]}, {"recurring":"end_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"P1 Victorious (253048)", "enabled":true, "actions":[{"id":"ap_location_send", "enabled":true, "parameters":["253048"]}], "conditions":[{"id":"player_victorious", "enabled":true, "parameters":["current"]}]}, {"recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Become the Watcher (253049)", "enabled":true, "actions":[{"id":"ap_location_send", "enabled":true, "parameters":["253049"]}], "conditions":[{"id":"unit_presence", "enabled":true, "parameters":["P1", "1", "0", "*unit_structure", "6"]}]}, {"recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Execute the Watcher (253050)", "enabled":true, "actions":[{"id":"ap_location_send", "enabled":true, "parameters":["253050"]}], "conditions":[{"id":"unit_killed", "enabled":true, "parameters":["*unit", "P1", "*commander", "P3", "-1"]}]}], "Map_Tile_16_13":{"terrain":"plains"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_0_15":{"terrain":"bridge"}, "Map_Tile_13_6":{"terrain":"bridge"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_15_0":{"terrain":"wall"}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_18_16":{"terrain":"plains"}, "Map_Tile_14_15":{"terrain":"plains"}, "Map_Tile_11_10":{"terrain":"sea"}, "Map_Tile_8_6":{"terrain":"sea"}, "Map_Tile_10_14":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"sea"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_5_15":{"terrain":"plains"}, "Map_Tile_3_16":{"terrain":"bridge"}, "Map_Tile_15_9":{"terrain":"sea"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_9_0":{"terrain":"sea"}, "Map_Tile_4_7":{"terrain":"plains"}, "Map_Tile_9_2":{"terrain":"sea"}, "Map_Tile_12_2":{"terrain":"beach"}, "Map_Tile_12_1":{"terrain":"beach"}, "Map_Tile_3_1":{"terrain":"plains"}, "Map_Tile_10_3":{"terrain":"sea"}, "Map_Tile_18_4":{"terrain":"wall"}, "Map_Tile_4_12":{"terrain":"beach"}, "Map_Tile_0_5":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_10_0":{"terrain":"sea"}, "Map_Tile_9_5":{"terrain":"bridge"}, "Map_Tile_7_0":{"terrain":"sea"}, "Map_Tile_4_15":{"terrain":"beach"}, "Map_Tile_4_0":{"terrain":"plains"}, "Map_Tile_17_7":{"terrain":"sea"}, "Map_Tile_17_1":{"terrain":"wall"}, "Map_Tile_8_15":{"terrain":"plains"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_0_13":{"terrain":"beach"}, "Map_Tile_16_0":{"terrain":"wall"}, "Map_Tile_5_11":{"terrain":"beach"}, "Map_Tile_6_2":{"terrain":"plains"}, "Map_Tile_11_8":{"terrain":"sea"}, "Author":"Fly Sniper", "Map_Tile_5_13":{"terrain":"beach"}, "Map_Tile_10_10":{"terrain":"sea"}, "Map_Tile_17_3":{"terrain":"wall"}, "Map_Tile_11_15":{"terrain":"plains"}, "Map_Tile_15_2":{"terrain":"wall"}, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_2_13":{"terrain":"beach"}, "Map_Tile_8_9":{"terrain":"sea"}, "Map_Tile_15_13":{"terrain":"plains"}, "Map_Tile_14_8":{"terrain":"sea"}, "Map_Tile_15_15":{"terrain":"plains"}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_17_10":{"terrain":"sea"}, "Map_Tile_15_4":{"terrain":"wall"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_8_5":{"terrain":"bridge"}, "Map_Tile_1_11":{"terrain":"plains"}, "Map_Tile_13_4":{"terrain":"wall"}, "Map_Tile_4_13":{"terrain":"beach"}, "Map_Tile_7_3":{"terrain":"sea"}, "Map_Tile_5_2":{"terrain":"plains"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_1_10":{"terrain":"plains"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_11_3":{"terrain":"sea"}, "Player_2":{"team":1, "recruit_thief":true, "recruit_rifleman":false, "recruit_witch":false, "recruit_caravel":true, "recruit_frog":true, "recruit_wagon":false, "recruit_dog":true, "recruit_soldier":true, "recruit_trebuchet":false, "recruit_knight":false, "recruit_spearman":true, "recruit_harpy":false, "recruit_warship":false, "recruit_kraken":false, "recruit_turtle":true, "recruit_merman":false, "recruit_ballista":false, "recruit_harpoonship":false, "recruit_mage":true, "recruit_travelboat":false, "recruit_archer":true, "recruit_griffin_walking":true, "recruit_balloon":false, "recruit_giant":false, "recruit_dragon":false, "gold":100}, "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_13_0":{"terrain":"wall"}, "Map_Tile_12_16":{"terrain":"plains"}, "Map_Tile_15_8":{"terrain":"sea"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_2_16":{"terrain":"bridge"}, "Map_Tile_2_0":{"terrain":"plains"}, "Map_Tile_8_7":{"terrain":"sea"}, "Map_Tile_0_14":{"terrain":"bridge"}, "Map_Tile_11_4":{"terrain":"sea"}, "Map_Tile_10_13":{"terrain":"plains"}, "Map_Tile_11_11":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"sea"}, "Map_Tile_6_13":{"terrain":"plains"}, "Player_3":{"team":2, "recruit_thief":true, "recruit_rifleman":false, "recruit_witch":false, "recruit_caravel":false, "recruit_frog":true, "recruit_wagon":false, "recruit_dog":true, "recruit_soldier":true, "recruit_trebuchet":false, "recruit_knight":false, "recruit_spearman":true, "recruit_harpy":false, "recruit_warship":false, "recruit_kraken":false, "recruit_turtle":true, "recruit_merman":false, "recruit_ballista":false, "recruit_harpoonship":false, "recruit_mage":true, "recruit_travelboat":false, "recruit_archer":true, "recruit_griffin_walking":true, "recruit_balloon":false, "recruit_giant":false, "recruit_dragon":false, "gold":0}, "Map_Tile_16_7":{"terrain":"sea"}, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_14_0":{"terrain":"wall"}, "Map_Tile_9_3":{"terrain":"sea"}, "Map_Tile_9_16":{"terrain":"plains"}, "Map_Tile_18_9":{"terrain":"sea"}, "Map_Tile_12_10":{"terrain":"sea"}, "Map_Tile_16_9":{"terrain":"sea"}, "Map_Tile_8_1":{"terrain":"sea"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_6_11":{"terrain":"beach"}, "Map_Tile_13_10":{"terrain":"bridge"}, "Map_Tile_14_5":{"terrain":"beach"}, "Map_Tile_7_1":{"terrain":"sea"}, "Map_Tile_16_10":{"terrain":"sea"}, "Map_Tile_10_1":{"terrain":"sea"}, "Map_Tile_5_16":{"terrain":"plains"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_12_14":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"bridge"}, "Map_Tile_12_0":{"terrain":"beach"}, "Map_Tile_7_4":{"terrain":"sea"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_13_7":{"terrain":"bridge"}, "Map_Tile_14_2":{"terrain":"wall"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_14_7":{"terrain":"sea"}, "Map_Tile_3_12":{"terrain":"plains"}, "Player_1":{"team":0, "recruit_thief":true, "recruit_rifleman":true, "recruit_witch":true, "recruit_caravel":true, "recruit_frog":true, "recruit_wagon":true, "recruit_dog":true, "recruit_soldier":true, "recruit_trebuchet":true, "recruit_knight":true, "recruit_spearman":true, "recruit_harpy":true, "recruit_warship":true, "recruit_kraken":true, "recruit_turtle":true, "recruit_merman":true, "recruit_ballista":true, "recruit_harpoonship":true, "recruit_mage":true, "recruit_travelboat":true, "recruit_archer":true, "recruit_griffin_walking":true, "recruit_balloon":true, "recruit_giant":true, "recruit_dragon":true, "gold":100}, "Map_Tile_4_1":{"terrain":"plains"}, "Map_Tile_10_8":{"terrain":"sea"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_10_11":{"terrain":"plains"}, "Map_Tile_9_8":{"terrain":"sea"}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_18_10":{"terrain":"sea"}, "Map_Tile_4_11":{"terrain":"plains"}, "Map_Tile_16_8":{"terrain":"sea"}, "Map_Tile_11_9":{"terrain":"sea"}, "Map_Tile_15_6":{"terrain":"sea"}, "Map_Tile_18_7":{"terrain":"sea"}, "Map_Tile_8_13":{"terrain":"plains"}, "Map_Tile_2_11":{"terrain":"plains"}, "Map_Tile_18_14":{"terrain":"plains"}, "Map_Tile_12_13":{"terrain":"plains"}, "Map_Tile_8_14":{"terrain":"plains"}, "Map_Tile_3_14":{"terrain":"sea"}, "Map_Tile_13_8":{"terrain":"bridge"}, "Map_Tile_9_10":{"terrain":"sea"}, "Map_Tile_7_14":{"terrain":"plains"}, "Map_Tile_14_10":{"terrain":"sea"}, "Map_Tile_18_11":{"terrain":"plains"}, "Locations":{"1":{"interactable":false, "getArea":null, "name":"P1 Stronghold Location", "id":1, "setArea":null, "centre":{"y":9, "x":4}, "positions":[{"y":9, "x":4}, {"y":9, "x":3}, {"y":9, "x":2}, {"y":8, "x":2}, {"y":8, "x":4}, {"y":8, "x":3}, {"y":8, "x":5}, {"y":9, "x":5}]}, "2":{"interactable":false, "getArea":null, "name":"P2 Stronghold Location", "id":2, "setArea":null, "centre":{"y":13, "x":9}, "positions":[{"y":13, "x":10}, {"y":14, "x":9}, {"y":14, "x":8}, {"y":12, "x":10}, {"y":13, "x":9}, {"y":14, "x":7}, {"y":15, "x":7}, {"y":11, "x":10}]}, "3":{"interactable":false, "getArea":null, "name":"P1 Starting Zone", "id":3, "setArea":null, "centre":{"y":1, "x":3}, "positions":[{"y":0, "x":0}, {"y":1, "x":0}, {"y":1, "x":1}, {"y":1, "x":2}, {"y":1, "x":3}, {"y":0, "x":3}, {"y":1, "x":4}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":0, "x":2}, {"y":0, "x":1}, {"y":2, "x":0}, {"y":2, "x":1}, {"y":2, "x":2}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":5}, {"y":2, "x":5}, {"y":2, "x":6}]}, "4":{"interactable":false, "getArea":null, "name":"P2 Starting Zone", "id":4, "setArea":null, "centre":{"y":14, "x":12}, "positions":[{"y":12, "x":12}, {"y":11, "x":12}, {"y":11, "x":13}, {"y":12, "x":13}, {"y":13, "x":13}, {"y":14, "x":13}, {"y":15, "x":13}, {"y":16, "x":13}, {"y":16, "x":12}, {"y":15, "x":12}, {"y":14, "x":12}, {"y":13, "x":12}, {"y":11, "x":11}, {"y":12, "x":11}, {"y":13, "x":11}, {"y":14, "x":11}, {"y":15, "x":11}, {"y":16, "x":11}]}, "5":{"interactable":false, "getArea":null, "name":"Land", "id":5, "setArea":null, "centre":{"y":9, "x":7}, "positions":[{"y":0, "x":0}, {"y":0, "x":1}, {"y":0, "x":2}, {"y":0, "x":3}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":5}, {"y":1, "x":4}, {"y":1, "x":3}, {"y":1, "x":2}, {"y":1, "x":1}, {"y":1, "x":0}, {"y":2, "x":0}, {"y":3, "x":0}, {"y":4, "x":0}, {"y":5, "x":0}, {"y":6, "x":0}, {"y":7, "x":0}, {"y":8, "x":0}, {"y":9, "x":0}, {"y":10, "x":0}, {"y":11, "x":0}, {"y":12, "x":0}, {"y":12, "x":1}, {"y":12, "x":2}, {"y":12, "x":3}, {"y":11, "x":3}, {"y":11, "x":2}, {"y":11, "x":1}, {"y":10, "x":1}, {"y":9, "x":1}, {"y":8, "x":1}, {"y":7, "x":1}, {"y":6, "x":1}, {"y":5, "x":1}, {"y":4, "x":1}, {"y":3, "x":1}, {"y":2, "x":6}, {"y":2, "x":5}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":2, "x":2}, {"y":3, "x":2}, {"y":4, "x":2}, {"y":5, "x":2}, {"y":6, "x":2}, {"y":7, "x":2}, {"y":9, "x":2}, {"y":10, "x":2}, {"y":10, "x":3}, {"y":10, "x":4}, {"y":11, "x":4}, {"y":10, "x":5}, {"y":9, "x":5}, {"y":9, "x":6}, {"y":9, "x":4}, {"y":9, "x":3}, {"y":8, "x":3}, {"y":8, "x":4}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":7, "x":6}, {"y":6, "x":6}, {"y":5, "x":6}, {"y":4, "x":6}, {"y":3, "x":6}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":4, "x":3}, {"y":4, "x":4}, {"y":5, "x":4}, {"y":6, "x":4}, {"y":7, "x":4}, {"y":7, "x":3}, {"y":5, "x":3}, {"y":4, "x":5}, {"y":5, "x":5}, {"y":6, "x":5}, {"y":6, "x":3}, {"y":7, "x":5}, {"y":14, "x":5}, {"y":14, "x":6}, {"y":13, "x":6}, {"y":13, "x":7}, {"y":12, "x":7}, {"y":12, "x":8}, {"y":11, "x":8}, {"y":11, "x":9}, {"y":12, "x":9}, {"y":13, "x":8}, {"y":15, "x":6}, {"y":15, "x":5}, {"y":16, "x":5}, {"y":16, "x":6}, {"y":16, "x":7}, {"y":16, "x":8}, {"y":16, "x":9}, {"y":16, "x":10}, {"y":16, "x":11}, {"y":16, "x":12}, {"y":16, "x":13}, {"y":16, "x":14}, {"y":16, "x":15}, {"y":16, "x":16}, {"y":16, "x":17}, {"y":16, "x":18}, {"y":15, "x":18}, {"y":14, "x":18}, {"y":13, "x":18}, {"y":12, "x":18}, {"y":11, "x":18}, {"y":11, "x":17}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}, {"y":11, "x":13}, {"y":11, "x":12}, {"y":11, "x":11}, {"y":11, "x":10}, {"y":14, "x":7}, {"y":15, "x":7}, {"y":15, "x":8}, {"y":14, "x":8}, {"y":14, "x":9}, {"y":13, "x":9}, {"y":12, "x":10}, {"y":12, "x":11}, {"y":14, "x":10}, {"y":15, "x":9}, {"y":12, "x":12}, {"y":13, "x":12}, {"y":14, "x":12}, {"y":15, "x":11}, {"y":15, "x":10}, {"y":13, "x":11}, {"y":13, "x":13}, {"y":12, "x":14}, {"y":12, "x":15}, {"y":12, "x":16}, {"y":13, "x":15}, {"y":13, "x":14}, {"y":14, "x":14}, {"y":15, "x":13}, {"y":14, "x":13}, {"y":12, "x":13}, {"y":15, "x":12}, {"y":15, "x":14}, {"y":14, "x":15}, {"y":13, "x":16}, {"y":13, "x":17}, {"y":12, "x":17}, {"y":14, "x":16}, {"y":15, "x":16}, {"y":15, "x":17}, {"y":14, "x":17}, {"y":15, "x":15}, {"y":16, "x":0}, {"y":14, "x":11}, {"y":2, "x":1}]}, "6":{"interactable":false, "getArea":null, "name":"Watcher Area", "id":6, "setArea":null, "centre":{"y":3, "x":15}, "positions":[{"y":4, "x":13}, {"y":4, "x":14}, {"y":4, "x":15}, {"y":4, "x":16}, {"y":4, "x":17}, {"y":4, "x":18}, {"y":3, "x":18}, {"y":3, "x":17}, {"y":3, "x":16}, {"y":3, "x":15}, {"y":3, "x":14}, {"y":3, "x":13}, {"y":2, "x":13}, {"y":2, "x":14}, {"y":2, "x":15}, {"y":2, "x":16}, {"y":2, "x":17}, {"y":2, "x":18}, {"y":1, "x":18}, {"y":1, "x":17}, {"y":1, "x":16}, {"y":1, "x":15}, {"y":1, "x":14}, {"y":1, "x":13}, {"y":0, "x":13}, {"y":0, "x":14}, {"y":0, "x":15}, {"y":0, "x":16}, {"y":0, "x":18}, {"y":0, "x":12}, {"y":1, "x":12}, {"y":2, "x":12}, {"y":3, "x":12}, {"y":4, "x":12}, {"y":5, "x":12}, {"y":5, "x":13}, {"y":5, "x":14}, {"y":5, "x":15}, {"y":5, "x":16}, {"y":5, "x":17}, {"y":5, "x":18}]}, "0":{"interactable":false, "getArea":null, "name":"Sea", "id":0, "setArea":null, "centre":{"y":7, "x":11}, "positions":[{"y":10, "x":12}, {"y":10, "x":11}, {"y":10, "x":10}, {"y":10, "x":9}, {"y":10, "x":8}, {"y":2, "x":7}, {"y":2, "x":8}, {"y":2, "x":9}, {"y":2, "x":10}, {"y":2, "x":11}, {"y":6, "x":12}, {"y":7, "x":12}, {"y":8, "x":12}, {"y":9, "x":12}, {"y":9, "x":10}, {"y":9, "x":9}, {"y":9, "x":8}, {"y":9, "x":7}, {"y":8, "x":10}, {"y":8, "x":11}, {"y":9, "x":11}, {"y":7, "x":11}, {"y":6, "x":11}, {"y":4, "x":11}, {"y":3, "x":11}, {"y":3, "x":8}, {"y":3, "x":7}, {"y":4, "x":7}, {"y":3, "x":10}, {"y":3, "x":9}, {"y":8, "x":7}, {"y":8, "x":8}, {"y":7, "x":8}, {"y":7, "x":9}, {"y":7, "x":10}, {"y":8, "x":9}, {"y":6, "x":10}, {"y":4, "x":10}, {"y":4, "x":9}, {"y":4, "x":8}, {"y":6, "x":9}, {"y":6, "x":8}, {"y":6, "x":7}, {"y":7, "x":7}, {"y":6, "x":14}, {"y":6, "x":15}, {"y":6, "x":16}, {"y":6, "x":17}, {"y":6, "x":18}, {"y":7, "x":18}, {"y":8, "x":18}, {"y":9, "x":18}, {"y":10, "x":18}, {"y":10, "x":17}, {"y":10, "x":16}, {"y":10, "x":15}, {"y":10, "x":14}, {"y":7, "x":14}, {"y":7, "x":15}, {"y":7, "x":16}, {"y":7, "x":17}, {"y":9, "x":17}, {"y":9, "x":16}, {"y":9, "x":15}, {"y":9, "x":14}, {"y":8, "x":14}, {"y":8, "x":15}, {"y":8, "x":16}, {"y":1, "x":11}, {"y":0, "x":11}, {"y":0, "x":10}, {"y":0, "x":9}, {"y":0, "x":8}, {"y":0, "x":7}, {"y":1, "x":7}, {"y":1, "x":9}, {"y":1, "x":10}, {"y":1, "x":8}, {"y":14, "x":3}, {"y":14, "x":2}, {"y":14, "x":1}, {"y":15, "x":1}, {"y":15, "x":2}, {"y":15, "x":3}, {"y":8, "x":17}]}}, "Map_Tile_17_15":{"terrain":"plains"}, "Map_Tile_12_15":{"terrain":"plains"}, "Map_Tile_1_14":{"terrain":"sea"}, "Map_Tile_8_12":{"terrain":"plains"}, "Map_Tile_18_5":{"terrain":"beach"}, "Map_Tile_18_6":{"terrain":"sea"}, "Map_Tile_18_2":{"terrain":"wall"}, "Map_Tile_0_16":{"terrain":"plains"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_18_1":{"terrain":"wall"}, "Map_Tile_10_6":{"terrain":"sea"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_17_16":{"terrain":"plains"}, "Map_Tile_17_14":{"terrain":"plains"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_12_8":{"terrain":"sea"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_16_6":{"terrain":"sea"}, "Map_Tile_6_12":{"terrain":"beach"}, "Map_Tile_17_12":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"beach"}, "Map_Tile_5_3":{"terrain":"plains"}, "Objectives":["Step on Observation Isle (No Requirements).", "Kill player 3's commander (Requires Walls event).", "Win with standard conditions."], "Map_Tile_17_11":{"terrain":"plains"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Tile_13_13":{"terrain":"plains"}, "Map_Tile_17_8":{"unit":{"state":{}, "rangedDamageTakenPercent":100, "tentacled":false, "items":{}, "grooveId":"", "attackerPlayerId":-1, "attackerUnitClass":"", "factionOverride":"", "stunned":false, "health":100, "canChargeGroove":true, "recruitDiscounts":{}, "attackerId":-1, "killedByLosing":false, "canBeAttacked":true, "loadedUnits":{}, "startPos":{"facing":3, "y":8, "x":17}, "merchantDiscounts":{}, "itemDropNumber":0, "recruits":{}, "hasBeenKilled":false, "setGroove":null, "setHealth":null, "unitClass":{"weaponIds":["caravelWeapon"], "verbCostMultiplier":1.0, "loadCapacity":0, "weapons":[{"canMoveAndAttack":true, "canAttackAir":false, "minRange":1, "horizontalAndVerticalExtraWidth":0, "blockedByEnemies":false, "directionality":"omni", "horizontalAndVerticalOnly":false, "terrainExclusion":{}, "unitIdWhenAttacking":"", "id":"caravelWeapon", "maxRange":1, "canAttackSubmerged":false, "canCounterAttack":true}], "isDamagingParentUnit":false, "inAir":false, "isAttackable":true, "critConditionId":"", "moveRange":5, "movementType":"river_sailing", "transportTags":{}, "isRecruitable":true, "aliasId":"", "isCommander":false, "inWater":true, "canBeActivated":false, "cost":250, "canReinforce":false, "passiveMultiplier":1.5, "maxHealth":100, "isStructure":false, "reinforceMultiplier":1.0, "tags":["caravel", "type.sea.light"], "maxGroove":0, "canAttack":true, "id":"caravel", "resourceCost":1, "canBeCaptured":false, "recruitingCostMultiplier":1.0}, "canBeAttackedFromDistance":true, "itemId":"", "underwater":false, "attachedFlagId":-1, "playerId":1, "unitClassId":"caravel", "hadTurn":false, "blessings":{}, "merchantDiscountMultiplier":0.0, "inTransport":false, "damageTakenPercent":100, "transportedBy":-1, "recruitDiscountMultiplier":0.0, "pos":{"facing":3, "y":8, "x":17}, "id":1, "garrisonClassId":"", "miniGrooveId":"", "grooveCharge":0}, "terrain":"sea"}, "Map_Tile_12_5":{"terrain":"beach"}, "Map_Tile_17_6":{"terrain":"sea"}, "Map_Tile_17_5":{"terrain":"beach"}, "Map_Tile_7_6":{"terrain":"sea"}, "Map_Tile_18_13":{"terrain":"plains"}, "Map_Tile_7_9":{"terrain":"sea"}, "Map_Tile_17_2":{"terrain":"wall"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Tile_13_5":{"terrain":"beach"}, "Map_Tile_4_14":{"terrain":"beach"}, "Map_Tile_7_10":{"terrain":"beach"}, "Map_Tile_16_15":{"terrain":"plains"}, "Map_Tile_16_14":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"sea"}, "Map_Tile_6_10":{"terrain":"beach"}, "Counters":{}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_1_16":{"terrain":"bridge"}, "Map_Tile_16_2":{"terrain":"wall"}, "Map_Tile_16_4":{"terrain":"wall"}, "Map_Tile_16_3":{"terrain":"wall"}, "Map_Tile_16_5":{"terrain":"beach"}, "Map_Tile_13_2":{"terrain":"wall"}, "Map_Tile_8_16":{"terrain":"plains"}, "Map_Tile_15_16":{"terrain":"plains"}, "Map_Tile_15_14":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"plains"}, "Map_Tile_15_12":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"sea"}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_3_2":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_15_10":{"terrain":"sea"}, "Map_Tile_15_7":{"terrain":"sea"}, "Map_Tile_9_6":{"terrain":"sea"}, "Map_Tile_15_5":{"terrain":"beach"}, "Map_Tile_14_14":{"terrain":"plains"}, "Flags":{}, "Map_Tile_14_4":{"terrain":"wall"}, "Map_Tile_15_3":{"terrain":"wall"}, "Map_Tile_10_5":{"terrain":"bridge"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_14_13":{"terrain":"plains"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_11_13":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"beach"}, "Map_Tile_6_15":{"terrain":"plains"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_14_9":{"terrain":"sea"}, "Map_Tile_9_13":{"terrain":"plains"}, "Map_Tile_1_2":{"terrain":"plains"}, "Map_Tile_13_3":{"terrain":"wall"}, "Map_Tile_2_15":{"terrain":"sea"}, "Map_Tile_12_11":{"terrain":"plains"}, "Map_Tile_8_8":{"terrain":"sea"}, "Map_Tile_14_6":{"terrain":"sea"}, "Map_Tile_14_1":{"terrain":"wall"}, "Map_Tile_14_16":{"terrain":"plains"}, "Map_Tile_6_14":{"terrain":"plains"}, "Map_Tile_18_12":{"terrain":"plains"}, "Map_Tile_1_8":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"sea"}, "Map_Tile_9_14":{"terrain":"plains"}, "Map_Tile_1_13":{"terrain":"beach"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_13_16":{"terrain":"plains"}, "Map_Tile_16_12":{"terrain":"plains"}, "Map_Tile_11_6":{"terrain":"sea"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_13_14":{"terrain":"plains"}, "Map_Tile_10_9":{"terrain":"sea"}, "Map_Tile_17_9":{"terrain":"sea"}, "Map_Tile_1_6":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"sea"}, "Map_Tile_8_3":{"terrain":"sea"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_5_4":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_16_16":{"terrain":"plains"}, "Map_Tile_16_1":{"terrain":"wall"}, "Map_Tile_2_9":{"terrain":"plains"}, "Map_Tile_3_13":{"terrain":"beach"}, "Map_Tile_13_1":{"terrain":"wall"}, "Map_Tile_8_10":{"terrain":"sea"}, "Map_Tile_3_5":{"terrain":"plains"}, "Player_Count":3, "Map_Tile_17_0":{"unit":{"state":{}, "rangedDamageTakenPercent":100, "tentacled":false, "items":{}, "grooveId":"smoke_screen", "attackerPlayerId":-1, "attackerUnitClass":"", "factionOverride":"", "stunned":false, "health":100, "canChargeGroove":true, "recruitDiscounts":{}, "attackerId":-1, "killedByLosing":false, "canBeAttacked":true, "loadedUnits":{}, "startPos":{"facing":3, "y":0, "x":17}, "merchantDiscounts":{}, "itemDropNumber":0, "recruits":{}, "hasBeenKilled":false, "setGroove":null, "setHealth":null, "unitClass":{"weaponIds":["vesperWhip"], "verbCostMultiplier":1.0, "loadCapacity":0, "weapons":[{"canMoveAndAttack":true, "canAttackAir":false, "minRange":1, "horizontalAndVerticalExtraWidth":0, "blockedByEnemies":false, "directionality":"omni", "horizontalAndVerticalOnly":false, "terrainExclusion":{}, "unitIdWhenAttacking":"", "id":"vesperWhip", "maxRange":1, "canAttackSubmerged":false, "canCounterAttack":true}], "isDamagingParentUnit":false, "inAir":false, "isAttackable":true, "critConditionId":"", "moveRange":4, "movementType":"walking", "transportTags":{}, "isRecruitable":false, "aliasId":"", "isCommander":true, "inWater":false, "canBeActivated":false, "cost":500, "canReinforce":false, "passiveMultiplier":1.0, "maxHealth":100, "isStructure":false, "reinforceMultiplier":1.0, "tags":["commander", "type.ground.light"], "maxGroove":400, "canAttack":true, "id":"commander_vesper", "resourceCost":3, "canBeCaptured":false, "recruitingCostMultiplier":1.0}, "canBeAttackedFromDistance":true, "itemId":"", "underwater":false, "attachedFlagId":-1, "playerId":2, "unitClassId":"commander_vesper", "hadTurn":false, "blessings":{}, "merchantDiscountMultiplier":0.0, "inTransport":false, "damageTakenPercent":100, "transportedBy":-1, "recruitDiscountMultiplier":0.0, "pos":{"facing":3, "y":0, "x":17}, "id":2, "garrisonClassId":"", "miniGrooveId":"", "grooveCharge":0}, "terrain":"plains"}, "Map_Tile_1_4":{"terrain":"plains"}, "Map_Tile_17_4":{"terrain":"wall"}, "Map_Tile_0_8":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"sea"}, "Map_Tile_3_4":{"terrain":"plains"}, "Map_Tile_12_3":{"terrain":"beach"}, "Map_Tile_18_15":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_1_1":{"terrain":"plains"}, "Map_Tile_17_13":{"terrain":"plains"}, "Map_Tile_2_14":{"terrain":"sea"}, "Map_Tile_1_5":{"terrain":"plains"}, "Map_Size":{"y":17, "x":19}, "Map_Tile_11_5":{"terrain":"bridge"}, "Map_Tile_14_3":{"terrain":"wall"}, "Map_Tile_7_13":{"terrain":"sea"}, "Map_Name":"Observation Isle", "Map_Tile_5_14":{"terrain":"plains"}, "Map_Tile_13_15":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"sea"}, "Map_Tile_8_11":{"terrain":"plains"}, "Map_Tile_6_7":{"terrain":"plains"}, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_11_0":{"terrain":"sea"}, "Map_Tile_1_9":{"terrain":"plains"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_2_12":{"terrain":"plains"}, "Map_Tile_2_1":{"terrain":"plains"}, "Map_Tile_7_15":{"terrain":"plains"}, "Map_Tile_8_0":{"terrain":"sea"}, "Map_Tile_10_7":{"terrain":"sea"}, "Map_Tile_18_0":{"terrain":"wall"}, "Map_Tile_7_5":{"terrain":"bridge"}, "Map_Tile_9_15":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"sea"}, "Map_Tile_9_11":{"terrain":"plains"}, "Map_Tile_3_11":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"plains"}, "Map_Tile_3_15":{"terrain":"sea"}, "Map_Tile_18_3":{"terrain":"wall"}, "Map_Tile_15_1":{"terrain":"wall"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_7_2":{"terrain":"sea"}, "Map_Tile_6_1":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_1_15":{"terrain":"sea"}, "Map_Tile_4_16":{"terrain":"beach"}} \ No newline at end of file diff --git a/worlds/wargroove2/levels/Swimming_at_the_Docks.json b/worlds/wargroove2/levels/Swimming_at_the_Docks.json new file mode 100644 index 000000000000..a5d315894524 --- /dev/null +++ b/worlds/wargroove2/levels/Swimming_at_the_Docks.json @@ -0,0 +1 @@ +{"Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_1_3":{"terrain":"beach"}, "Map_Tile_8_7":{"terrain":"plains"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_8_5":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"plains"}, "Map_Tile_10_9":{"terrain":"plains"}, "Map_Tile_11_8":{"terrain":"plains"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_5_2":{"terrain":"plains"}, "Map_Tile_13_0":{"terrain":"plains"}, "Map_Name":"Swimming at the Docks", "Map_Tile_6_11":{"terrain":"beach"}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_7_11":{"terrain":"beach"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_13_8":{"terrain":"beach"}, "Map_Tile_11_5":{"terrain":"plains"}, "Map_Tile_14_0":{"terrain":"plains"}, "Map_Tile_3_1":{"terrain":"beach"}, "Map_Tile_5_4":{"terrain":"plains"}, "Map_Tile_12_0":{"terrain":"plains"}, "Map_Tile_13_3":{"terrain":"beach"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_12_8":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"plains"}, "Map_Tile_4_0":{"terrain":"plains"}, "Map_Tile_5_11":{"terrain":"beach"}, "Map_Tile_13_11":{"terrain":"beach"}, "Map_Tile_1_6":{"terrain":"beach"}, "Map_Tile_8_12":{"terrain":"plains"}, "Map_Tile_9_9":{"terrain":"plains"}, "Map_Tile_14_6":{"terrain":"plains"}, "Objectives":["Kill a knight with a dog.", "Build 2 riverboats.", "Win with standard conditions."], "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_13_4":{"terrain":"beach"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_12_1":{"terrain":"beach"}, "Map_Tile_10_6":{"terrain":"plains"}, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_8_3":{"terrain":"plains"}, "Map_Tile_12_9":{"terrain":"plains"}, "Map_Tile_14_4":{"terrain":"plains"}, "Map_Tile_7_0":{"terrain":"plains"}, "Map_Tile_2_9":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Flags":{}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_9_5":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"plains"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_8_4":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"plains"}, "Map_Tile_7_10":{"terrain":"plains"}, "Triggers":[{"actions":[{"enabled":true, "parameters":["67190", "Swimming at the Docks", "Fly Sniper", "Kill a knight with a dog.", "Build 2 riverboats.", "", "Win with standard conditions."], "id":"ap_export"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"start_of_match", "id":"AP: Export", "isIntro":false, "conditions":{}, "enabled":true}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_no_units", "isIntro":false, "conditions":[{"enabled":true, "parameters":["current", "0", "0", "*unit_structure", "-1"], "id":"unit_presence"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_commander", "isIntro":false, "conditions":[{"enabled":true, "parameters":["*commander", "current", "-1"], "id":"unit_lost"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_hq", "isIntro":false, "conditions":[{"enabled":true, "parameters":["hq", "current", "-1"], "id":"unit_lost"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["current"], "id":"victory"}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_victory", "isIntro":false, "conditions":[{"enabled":true, "parameters":["current", "0", "0"], "id":"number_of_opponents"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["0", "-3", "0", "75", "25", "0", "0", "0", "0"], "id":"map_randomize"}, {"enabled":true, "parameters":["3", "0", "0", "0", "0", "0", "2", "5", "0"], "id":"position_asymmetric_randomize"}, {"enabled":true, "parameters":["port", "0", "neutral", "1", "1", "4", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["soldier", "3", "P1", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["dog", "3", "P1", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["spearman", "3", "P1", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["mage", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["soldier", "4", "P2", "1", "1", "4", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["frog", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["merman", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["knight", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["barracks", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["barracks", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"start_of_match", "id":"Generate Map", "isIntro":false, "conditions":{}, "enabled":true}, {"actions":[{"enabled":true, "parameters":["253042"], "id":"ap_location_send"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"end_of_match", "id":"P1 Victorious (253042)", "isIntro":false, "conditions":[{"enabled":true, "parameters":["current"], "id":"player_victorious"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["happy", "caesar", "Woof!", "1", "Dog"], "id":"dialogue_box_simple"}, {"enabled":true, "parameters":["253043"], "id":"ap_location_send"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"once", "id":"Dog Kills Knight (253043)", "isIntro":false, "conditions":[{"enabled":true, "parameters":["dog", "current", "knight", "P2", "-1"], "id":"unit_killed"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["253044"], "id":"ap_location_send"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"once", "id":"P1 has 2 Riverboats (253044)", "isIntro":false, "conditions":[{"enabled":true, "parameters":["current", "4", "2", "caravel", "-1"], "id":"unit_presence"}], "enabled":true}], "Map_Tile_1_1":{"terrain":"beach"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_14_7":{"terrain":"plains"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_2_0":{"terrain":"plains"}, "Map_Tile_11_6":{"terrain":"plains"}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_8_9":{"terrain":"plains"}, "Map_Tile_9_10":{"terrain":"plains"}, "Map_Tile_10_11":{"terrain":"beach"}, "Map_Tile_9_3":{"terrain":"plains"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_11_9":{"terrain":"plains"}, "Player_Count":2, "Map_Tile_8_6":{"terrain":"plains"}, "Map_Tile_14_1":{"terrain":"plains"}, "Map_Tile_1_8":{"terrain":"beach"}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_9_2":{"terrain":"plains"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"beach"}, "Map_Tile_13_7":{"terrain":"beach"}, "Map_Size":{"y":13, "x":15}, "Map_Tile_12_11":{"terrain":"beach"}, "Map_Tile_6_1":{"terrain":"beach"}, "Map_Tile_8_8":{"terrain":"plains"}, "Map_Tile_10_10":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"plains"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_11_10":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"plains"}, "Map_Tile_13_2":{"terrain":"beach"}, "Map_Tile_13_1":{"terrain":"beach"}, "Map_Tile_13_6":{"terrain":"beach"}, "Map_Tile_10_5":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"plains"}, "Map_Tile_6_10":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"plains"}, "Map_Tile_12_5":{"terrain":"plains"}, "Map_Tile_7_5":{"terrain":"plains"}, "Map_Tile_12_3":{"terrain":"plains"}, "Map_Tile_12_2":{"terrain":"plains"}, "Map_Tile_2_1":{"terrain":"beach"}, "Map_Tile_8_1":{"terrain":"beach"}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_13_5":{"terrain":"beach"}, "Map_Tile_14_2":{"terrain":"plains"}, "Map_Tile_7_1":{"terrain":"beach"}, "Map_Tile_14_5":{"terrain":"plains"}, "Map_Tile_1_9":{"terrain":"beach"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_1_2":{"terrain":"beach"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_11_3":{"terrain":"plains"}, "Map_Tile_3_4":{"terrain":"plains"}, "Locations":{"1":{"setArea":null, "name":"P1 Stronghold Location", "getArea":null, "id":1, "centre":{"y":6, "x":1}, "interactable":false, "positions":[{"y":4, "x":0}, {"y":4, "x":1}, {"y":4, "x":2}, {"y":5, "x":2}, {"y":6, "x":2}, {"y":7, "x":2}, {"y":8, "x":2}, {"y":8, "x":1}, {"y":8, "x":0}, {"y":7, "x":0}, {"y":6, "x":0}, {"y":5, "x":0}, {"y":5, "x":1}, {"y":6, "x":1}, {"y":7, "x":1}]}, "2":{"setArea":null, "name":"P2 Stronghold Location", "getArea":null, "id":2, "centre":{"y":6, "x":13}, "interactable":false, "positions":[{"y":4, "x":12}, {"y":5, "x":12}, {"y":6, "x":12}, {"y":7, "x":12}, {"y":8, "x":12}, {"y":8, "x":13}, {"y":8, "x":14}, {"y":7, "x":14}, {"y":7, "x":13}, {"y":6, "x":13}, {"y":5, "x":13}, {"y":6, "x":14}, {"y":5, "x":14}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":4, "x":11}, {"y":5, "x":11}, {"y":6, "x":11}, {"y":7, "x":11}, {"y":8, "x":11}]}, "3":{"setArea":null, "name":"P1 Starting Zone", "getArea":null, "id":3, "centre":{"y":2, "x":5}, "interactable":false, "positions":[{"y":0, "x":3}, {"y":1, "x":3}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":1, "x":5}, {"y":0, "x":5}, {"y":0, "x":4}, {"y":1, "x":4}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":7}, {"y":2, "x":6}, {"y":0, "x":7}, {"y":2, "x":7}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":5}, {"y":3, "x":6}, {"y":3, "x":7}]}, "4":{"setArea":null, "name":"P2 Starting Zone", "getArea":null, "id":4, "centre":{"y":10, "x":12}, "interactable":false, "positions":[{"y":8, "x":11}, {"y":8, "x":12}, {"y":8, "x":13}, {"y":8, "x":14}, {"y":9, "x":14}, {"y":10, "x":14}, {"y":11, "x":14}, {"y":11, "x":13}, {"y":12, "x":13}, {"y":12, "x":12}, {"y":12, "x":11}, {"y":12, "x":14}, {"y":12, "x":10}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":9, "x":10}, {"y":9, "x":11}, {"y":9, "x":12}, {"y":10, "x":12}, {"y":10, "x":11}, {"y":9, "x":13}, {"y":10, "x":13}, {"y":11, "x":12}, {"y":11, "x":11}, {"y":11, "x":10}, {"y":10, "x":10}, {"y":11, "x":9}, {"y":12, "x":7}, {"y":7, "x":11}, {"y":7, "x":12}, {"y":7, "x":13}, {"y":7, "x":14}]}, "0":{"setArea":null, "name":"Sea", "getArea":null, "id":0, "centre":{"y":6, "x":7}, "interactable":false, "positions":[{"y":10, "x":12}, {"y":10, "x":11}, {"y":10, "x":10}, {"y":10, "x":9}, {"y":10, "x":8}, {"y":10, "x":7}, {"y":10, "x":6}, {"y":10, "x":5}, {"y":10, "x":4}, {"y":10, "x":3}, {"y":10, "x":2}, {"y":9, "x":2}, {"y":8, "x":2}, {"y":7, "x":2}, {"y":6, "x":2}, {"y":5, "x":2}, {"y":4, "x":2}, {"y":3, "x":2}, {"y":2, "x":2}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":2, "x":6}, {"y":2, "x":7}, {"y":2, "x":8}, {"y":2, "x":9}, {"y":2, "x":10}, {"y":2, "x":11}, {"y":2, "x":12}, {"y":3, "x":12}, {"y":4, "x":12}, {"y":5, "x":12}, {"y":6, "x":12}, {"y":7, "x":12}, {"y":8, "x":12}, {"y":9, "x":12}, {"y":9, "x":10}, {"y":9, "x":9}, {"y":9, "x":8}, {"y":9, "x":7}, {"y":9, "x":6}, {"y":9, "x":5}, {"y":9, "x":4}, {"y":9, "x":3}, {"y":8, "x":10}, {"y":8, "x":11}, {"y":9, "x":11}, {"y":7, "x":11}, {"y":6, "x":11}, {"y":5, "x":11}, {"y":4, "x":11}, {"y":3, "x":11}, {"y":3, "x":8}, {"y":3, "x":7}, {"y":4, "x":7}, {"y":4, "x":6}, {"y":4, "x":5}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":10}, {"y":3, "x":6}, {"y":3, "x":9}, {"y":4, "x":4}, {"y":3, "x":3}, {"y":4, "x":3}, {"y":5, "x":3}, {"y":6, "x":3}, {"y":7, "x":3}, {"y":7, "x":4}, {"y":8, "x":4}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":8, "x":7}, {"y":8, "x":8}, {"y":8, "x":3}, {"y":7, "x":8}, {"y":7, "x":9}, {"y":7, "x":10}, {"y":8, "x":9}, {"y":6, "x":10}, {"y":5, "x":10}, {"y":4, "x":10}, {"y":4, "x":9}, {"y":4, "x":8}, {"y":5, "x":8}, {"y":5, "x":9}, {"y":6, "x":9}, {"y":6, "x":8}, {"y":6, "x":7}, {"y":5, "x":7}, {"y":7, "x":7}, {"y":7, "x":6}, {"y":6, "x":6}, {"y":6, "x":5}, {"y":6, "x":4}, {"y":5, "x":4}, {"y":5, "x":5}, {"y":7, "x":5}, {"y":5, "x":6}]}}, "Map_Tile_6_7":{"terrain":"plains"}, "Map_Tile_9_11":{"terrain":"beach"}, "Map_Tile_1_11":{"terrain":"beach"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_3_11":{"terrain":"beach"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_11_0":{"terrain":"plains"}, "Map_Tile_8_10":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_10_8":{"terrain":"plains"}, "Map_Tile_10_7":{"terrain":"plains"}, "Map_Tile_12_10":{"terrain":"plains"}, "Map_Tile_13_10":{"terrain":"beach"}, "Map_Tile_10_3":{"terrain":"plains"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_10_1":{"terrain":"beach"}, "Map_Tile_10_0":{"terrain":"plains"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_14_3":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"plains"}, "Map_Tile_9_6":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"beach"}, "Map_Tile_4_1":{"terrain":"beach"}, "Map_Tile_11_4":{"terrain":"plains"}, "Map_Tile_3_5":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"beach"}, "Map_Tile_11_11":{"terrain":"beach"}, "Player_1":{"recruit_travelboat":true, "recruit_balloon":true, "recruit_frog":true, "recruit_kraken":true, "recruit_thief":true, "recruit_knight":true, "recruit_archer":true, "recruit_soldier":true, "recruit_ballista":true, "recruit_wagon":true, "recruit_turtle":true, "recruit_dog":true, "recruit_dragon":true, "team":0, "recruit_rifleman":true, "recruit_merman":true, "recruit_spearman":true, "recruit_trebuchet":true, "recruit_mage":true, "recruit_caravel":true, "recruit_witch":true, "gold":100, "recruit_giant":true, "recruit_warship":true, "recruit_harpy":true, "recruit_harpoonship":true, "recruit_griffin_walking":true}, "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_9_1":{"terrain":"beach"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_9_0":{"terrain":"plains"}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_8_11":{"terrain":"beach"}, "Map_Tile_4_7":{"terrain":"plains"}, "Map_Tile_3_2":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"beach"}, "Map_Tile_2_11":{"terrain":"beach"}, "Map_Tile_0_5":{"terrain":"plains"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_8_2":{"terrain":"plains"}, "Map_Tile_8_0":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_7_9":{"terrain":"plains"}, "Map_Tile_6_2":{"terrain":"plains"}, "Player_2":{"recruit_travelboat":false, "recruit_balloon":true, "recruit_frog":true, "recruit_kraken":false, "recruit_thief":true, "recruit_knight":true, "recruit_archer":true, "recruit_soldier":true, "recruit_ballista":false, "recruit_wagon":false, "recruit_turtle":true, "recruit_dog":true, "recruit_dragon":true, "team":1, "recruit_rifleman":true, "recruit_merman":true, "recruit_spearman":true, "recruit_trebuchet":false, "recruit_mage":true, "recruit_caravel":true, "recruit_witch":true, "gold":100, "recruit_giant":true, "recruit_warship":false, "recruit_harpy":true, "recruit_harpoonship":true, "recruit_griffin_walking":true}, "Author":"Fly Sniper", "Map_Tile_4_12":{"terrain":"plains"}, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_9_8":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"plains"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_7_6":{"terrain":"plains"}, "Map_Tile_7_4":{"terrain":"plains"}, "Map_Tile_7_3":{"terrain":"plains"}, "Map_Tile_7_2":{"terrain":"plains"}, "Map_Tile_4_11":{"terrain":"beach"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_6_12":{"terrain":"plains"}, "Map_Tile_14_10":{"terrain":"plains"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_1_4":{"terrain":"beach"}, "Map_Tile_1_10":{"terrain":"beach"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_3_12":{"terrain":"plains"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_2_12":{"terrain":"plains"}, "Map_Tile_5_3":{"terrain":"plains"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_1_5":{"terrain":"beach"}, "Counters":{}, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_0_8":{"terrain":"plains"}} \ No newline at end of file From ef4d1e77e3eec4ce0c7a4fe381b18487aedc8b40 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Fri, 11 Oct 2024 23:24:42 +0200 Subject: [PATCH 113/212] Core: make shlex split an attempt with regular split retry (#4046) --- MultiServer.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MultiServer.py b/MultiServer.py index 0fe950b5e4f3..8dfad5040de3 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -1153,7 +1153,10 @@ def __call__(self, raw: str) -> typing.Optional[bool]: if not raw: return try: - command = shlex.split(raw, comments=False) + try: + command = shlex.split(raw, comments=False) + except ValueError: # most likely: "ValueError: No closing quotation" + command = raw.split() basecommand = command[0] if basecommand[0] == self.marker: method = self.commands.get(basecommand[1:].lower(), None) From 2d0bdebaa9d58b5606dd60a773e45a3916658d71 Mon Sep 17 00:00:00 2001 From: gurglemurgle5 <95941332+gurglemurgle5@users.noreply.github.com> Date: Sat, 12 Oct 2024 19:01:28 -0500 Subject: [PATCH 114/212] Docs: Add ConnectUpdate to the list of client packets in the network protocol documentation #4045 --- docs/network protocol.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/network protocol.md b/docs/network protocol.md index 1c4579c4066f..4a96a43f818f 100644 --- a/docs/network protocol.md +++ b/docs/network protocol.md @@ -268,6 +268,7 @@ Additional arguments added to the [Set](#Set) package that triggered this [SetRe These packets are sent purely from client to server. They are not accepted by clients. * [Connect](#Connect) +* [ConnectUpdate](#ConnectUpdate) * [Sync](#Sync) * [LocationChecks](#LocationChecks) * [LocationScouts](#LocationScouts) From e8f3aa96dadef8651a05c0f070a1b8a361cb4eb9 Mon Sep 17 00:00:00 2001 From: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Date: Sun, 13 Oct 2024 17:21:36 -0400 Subject: [PATCH 115/212] Timespinner: Two typos #4051 --- worlds/timespinner/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/timespinner/__init__.py b/worlds/timespinner/__init__.py index 66744cffdf85..f241d4468162 100644 --- a/worlds/timespinner/__init__.py +++ b/worlds/timespinner/__init__.py @@ -190,7 +190,7 @@ def write_spoiler_header(self, spoiler_handle: TextIO) -> None: if self.options.has_replaced_options: warning = \ - f"NOTICE: Timespinner options for player '{self.player_name}' where renamed from PasCalCase to snake_case, " \ + f"NOTICE: Timespinner options for player '{self.player_name}' were renamed from PascalCase to snake_case, " \ "please update your yaml" spoiler_handle.write("\n") From b772d42df56d915927919bb6d4176576c19d95c0 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Mon, 14 Oct 2024 00:15:53 +0200 Subject: [PATCH 116/212] Core: turn MultiServer item_names and location_names into instance vars (#4053) --- MultiServer.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/MultiServer.py b/MultiServer.py index 8dfad5040de3..bac35648cf5a 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -185,11 +185,9 @@ class Context: slot_info: typing.Dict[int, NetworkSlot] generator_version = Version(0, 0, 0) checksums: typing.Dict[str, str] - item_names: typing.Dict[str, typing.Dict[int, str]] = ( - collections.defaultdict(lambda: Utils.KeyedDefaultDict(lambda code: f'Unknown item (ID:{code})'))) + item_names: typing.Dict[str, typing.Dict[int, str]] item_name_groups: typing.Dict[str, typing.Dict[str, typing.Set[str]]] - location_names: typing.Dict[str, typing.Dict[int, str]] = ( - collections.defaultdict(lambda: Utils.KeyedDefaultDict(lambda code: f'Unknown location (ID:{code})'))) + location_names: typing.Dict[str, typing.Dict[int, str]] location_name_groups: typing.Dict[str, typing.Dict[str, typing.Set[str]]] all_item_and_group_names: typing.Dict[str, typing.Set[str]] all_location_and_group_names: typing.Dict[str, typing.Set[str]] @@ -198,7 +196,6 @@ class Context: """ each sphere is { player: { location_id, ... } } """ logger: logging.Logger - def __init__(self, host: str, port: int, server_password: str, password: str, location_check_points: int, hint_cost: int, item_cheat: bool, release_mode: str = "disabled", collect_mode="disabled", remaining_mode: str = "disabled", auto_shutdown: typing.SupportsFloat = 0, compatibility: int = 2, @@ -269,6 +266,10 @@ def __init__(self, host: str, port: int, server_password: str, password: str, lo self.location_name_groups = {} self.all_item_and_group_names = {} self.all_location_and_group_names = {} + self.item_names = collections.defaultdict( + lambda: Utils.KeyedDefaultDict(lambda code: f'Unknown item (ID:{code})')) + self.location_names = collections.defaultdict( + lambda: Utils.KeyedDefaultDict(lambda code: f'Unknown location (ID:{code})')) self.non_hintable_names = collections.defaultdict(frozenset) self._load_game_data() From d4d777b101f1759b0164181045cd7719d6b0d8ed Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Sun, 13 Oct 2024 18:17:53 -0400 Subject: [PATCH 117/212] OoT: Add aliases for Progressive Hookshot (#4052) * Add aliases for Progressive Hookshot * Update worlds/oot/__init__.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> --- worlds/oot/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/worlds/oot/__init__.py b/worlds/oot/__init__.py index b93f60b2a08e..c3925bf2a8bf 100644 --- a/worlds/oot/__init__.py +++ b/worlds/oot/__init__.py @@ -184,6 +184,10 @@ class OOTWorld(World): "Small Key Ring (Spirit Temple)", "Small Key Ring (Thieves Hideout)", "Small Key Ring (Water Temple)", "Boss Key (Fire Temple)", "Boss Key (Forest Temple)", "Boss Key (Ganons Castle)", "Boss Key (Shadow Temple)", "Boss Key (Spirit Temple)", "Boss Key (Water Temple)"}, + + # aliases + "Longshot": {"Progressive Hookshot"}, # fuzzy hinting thought Longshot was Slingshot + "Hookshot": {"Progressive Hookshot"}, # for consistency, mostly } location_name_groups = build_location_name_groups() From f2ac937d1e6d2964ab1f5951cdb54f47bdd96e78 Mon Sep 17 00:00:00 2001 From: Seafo <92278897+Seatori@users.noreply.github.com> Date: Sun, 13 Oct 2024 18:22:37 -0400 Subject: [PATCH 118/212] Minecraft: Fix plando connections #4048 Plando connections was broken as a result of https://github.com/ArchipelagoMW/Archipelago/pull/3765 This fixes it. --- worlds/minecraft/Structures.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/minecraft/Structures.py b/worlds/minecraft/Structures.py index df3d944a6c65..d4f62f3498e9 100644 --- a/worlds/minecraft/Structures.py +++ b/worlds/minecraft/Structures.py @@ -29,7 +29,7 @@ def set_pair(exit, struct): # Connect plando structures first if self.options.plando_connections: - for conn in self.plando_connections: + for conn in self.options.plando_connections: set_pair(conn.entrance, conn.exit) # The algorithm tries to place the most restrictive structures first. This algorithm always works on the From 618564c60a1ae18d26d09688e08fc7df9e61dd8c Mon Sep 17 00:00:00 2001 From: Louis M Date: Mon, 14 Oct 2024 12:53:20 -0400 Subject: [PATCH 119/212] Aquaria: Adding slot data for poptracker (#4056) * Adds neccessary slot data for Aquaria * Comma oops --------- Co-authored-by: palex00 <32203971+palex00@users.noreply.github.com> --- worlds/aquaria/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/worlds/aquaria/__init__.py b/worlds/aquaria/__init__.py index 1fb04036d81b..dd17d09d8a6a 100644 --- a/worlds/aquaria/__init__.py +++ b/worlds/aquaria/__init__.py @@ -212,4 +212,8 @@ def fill_slot_data(self) -> Dict[str, Any]: "skip_first_vision": bool(self.options.skip_first_vision.value), "unconfine_home_water_energy_door": self.options.unconfine_home_water.value in [1, 3], "unconfine_home_water_transturtle": self.options.unconfine_home_water.value in [2, 3], + "bind_song_needed_to_get_under_rock_bulb": bool(self.options.bind_song_needed_to_get_under_rock_bulb), + "no_progression_hard_or_hidden_locations": bool(self.options.no_progression_hard_or_hidden_locations), + "light_needed_to_get_to_dark_places": bool(self.options.light_needed_to_get_to_dark_places), + "turtle_randomizer": self.options.turtle_randomizer.value, } From 118877dd751954712ae86319a2f04674941dc54c Mon Sep 17 00:00:00 2001 From: FlySniper Date: Mon, 14 Oct 2024 18:34:59 -0400 Subject: [PATCH 120/212] Wargroove 2: Adjusted several levels --- worlds/wargroove2/levels/Ancient_Discoveries.json | 2 +- worlds/wargroove2/levels/Majestic_Mountain.json | 2 +- worlds/wargroove2/levels/Observation_Isle.json | 2 +- worlds/wargroove2/levels/Swimming_at_the_Docks.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/worlds/wargroove2/levels/Ancient_Discoveries.json b/worlds/wargroove2/levels/Ancient_Discoveries.json index 64cdf46e7ccf..4ae1efc60c7b 100644 --- a/worlds/wargroove2/levels/Ancient_Discoveries.json +++ b/worlds/wargroove2/levels/Ancient_Discoveries.json @@ -1 +1 @@ -{"Map_Tile_8_17":{"terrain":"abyss"}, "Map_Tile_15_12":{"terrain":"abyss"}, "Map_Tile_26_7":{"terrain":"abyss"}, "Map_Tile_2_10":{"terrain":"abyss"}, "Map_Tile_13_9":{"terrain":"plains"}, "Map_Tile_22_6":{"terrain":"abyss"}, "Map_Tile_10_13":{"terrain":"abyss"}, "Map_Tile_28_10":{"terrain":"abyss"}, "Map_Tile_29_2":{"terrain":"abyss"}, "Map_Tile_11_5":{"terrain":"abyss"}, "Map_Tile_24_14":{"terrain":"abyss"}, "Map_Tile_26_5":{"terrain":"abyss"}, "Map_Tile_14_2":{"terrain":"abyss"}, "Map_Tile_17_7":{"terrain":"abyss"}, "Map_Tile_24_17":{"terrain":"abyss"}, "Map_Tile_27_19":{"terrain":"abyss"}, "Map_Tile_18_16":{"terrain":"abyss"}, "Map_Tile_9_5":{"terrain":"abyss"}, "Map_Tile_18_4":{"terrain":"abyss"}, "Map_Tile_8_6":{"terrain":"abyss"}, "Map_Tile_1_18":{"terrain":"abyss"}, "Map_Tile_2_14":{"terrain":"abyss"}, "Map_Tile_17_9":{"terrain":"abyss"}, "Map_Tile_18_18":{"terrain":"abyss"}, "Map_Tile_25_16":{"terrain":"abyss"}, "Map_Tile_18_9":{"terrain":"abyss"}, "Map_Tile_15_2":{"terrain":"abyss"}, "Map_Tile_6_16":{"terrain":"abyss"}, "Map_Tile_8_16":{"terrain":"abyss"}, "Map_Tile_6_2":{"terrain":"abyss"}, "Map_Tile_9_10":{"terrain":"abyss"}, "Map_Tile_17_6":{"terrain":"abyss"}, "Map_Tile_10_10":{"terrain":"abyss"}, "Map_Tile_12_16":{"terrain":"abyss"}, "Map_Tile_3_2":{"terrain":"abyss"}, "Map_Tile_11_18":{"terrain":"abyss"}, "Player_2":{"recruit_knight":false, "recruit_soldier":true, "recruit_frog":true, "recruit_travelboat":false, "recruit_dog":true, "recruit_griffin_walking":true, "recruit_caravel":true, "team":1, "recruit_giant":false, "recruit_harpoonship":true, "recruit_mage":true, "recruit_balloon":false, "gold":100, "recruit_kraken":false, "recruit_wagon":false, "recruit_ballista":false, "recruit_turtle":true, "recruit_warship":false, "recruit_archer":true, "recruit_rifleman":true, "recruit_merman":true, "recruit_spearman":true, "recruit_harpy":false, "recruit_dragon":false, "recruit_thief":true, "recruit_witch":true, "recruit_trebuchet":false}, "Map_Tile_10_14":{"terrain":"abyss"}, "Map_Tile_23_11":{"terrain":"abyss"}, "Map_Tile_19_3":{"terrain":"abyss"}, "Map_Tile_25_19":{"terrain":"abyss"}, "Map_Tile_21_4":{"terrain":"abyss"}, "Map_Tile_1_8":{"terrain":"abyss"}, "Map_Tile_5_7":{"terrain":"abyss"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_17_19":{"terrain":"abyss"}, "Map_Tile_29_3":{"terrain":"abyss"}, "Map_Tile_28_16":{"terrain":"abyss"}, "Map_Tile_12_19":{"terrain":"abyss"}, "Map_Tile_16_6":{"terrain":"abyss"}, "Map_Tile_14_12":{"terrain":"abyss"}, "Map_Tile_4_14":{"terrain":"abyss"}, "Map_Tile_22_13":{"terrain":"abyss"}, "Map_Tile_15_15":{"terrain":"abyss"}, "Map_Tile_3_3":{"terrain":"abyss"}, "Map_Tile_13_14":{"terrain":"abyss"}, "Map_Tile_17_17":{"terrain":"abyss"}, "Map_Tile_18_6":{"terrain":"abyss"}, "Map_Tile_5_16":{"terrain":"abyss"}, "Map_Tile_16_7":{"terrain":"abyss"}, "Map_Tile_28_0":{"terrain":"abyss"}, "Map_Tile_3_7":{"terrain":"abyss"}, "Map_Tile_14_18":{"terrain":"abyss"}, "Map_Tile_20_16":{"terrain":"abyss"}, "Map_Tile_7_16":{"terrain":"abyss"}, "Map_Tile_13_2":{"terrain":"abyss"}, "Map_Tile_0_4":{"terrain":"abyss"}, "Map_Tile_19_6":{"terrain":"abyss"}, "Map_Tile_14_5":{"terrain":"abyss"}, "Map_Tile_13_18":{"terrain":"abyss"}, "Map_Tile_15_18":{"terrain":"abyss"}, "Map_Tile_5_14":{"terrain":"abyss"}, "Map_Tile_29_0":{"terrain":"abyss"}, "Map_Tile_9_13":{"terrain":"abyss"}, "Map_Tile_11_19":{"terrain":"abyss"}, "Map_Tile_19_10":{"terrain":"abyss"}, "Map_Tile_27_18":{"terrain":"abyss"}, "Map_Tile_24_16":{"terrain":"abyss"}, "Map_Tile_26_4":{"terrain":"abyss"}, "Map_Tile_29_16":{"terrain":"abyss"}, "Map_Tile_17_3":{"terrain":"abyss"}, "Map_Tile_20_17":{"terrain":"abyss"}, "Map_Tile_20_7":{"terrain":"abyss"}, "Map_Tile_28_13":{"terrain":"abyss"}, "Map_Tile_6_12":{"terrain":"abyss"}, "Map_Tile_10_19":{"terrain":"abyss"}, "Map_Tile_17_0":{"terrain":"abyss"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_1_14":{"terrain":"abyss"}, "Map_Tile_16_17":{"terrain":"abyss"}, "Map_Tile_12_3":{"terrain":"abyss"}, "Map_Tile_27_17":{"terrain":"abyss"}, "Map_Tile_3_15":{"terrain":"abyss"}, "Map_Tile_9_11":{"terrain":"abyss"}, "Map_Tile_21_2":{"terrain":"abyss"}, "Map_Tile_11_3":{"terrain":"abyss"}, "Map_Tile_6_14":{"terrain":"abyss"}, "Map_Tile_1_4":{"terrain":"abyss"}, "Map_Tile_5_13":{"terrain":"abyss"}, "Map_Tile_9_17":{"terrain":"abyss"}, "Map_Tile_29_7":{"terrain":"abyss"}, "Map_Tile_7_12":{"terrain":"abyss"}, "Map_Tile_13_8":{"terrain":"plains"}, "Map_Tile_24_6":{"terrain":"abyss"}, "Map_Tile_1_15":{"terrain":"abyss"}, "Map_Tile_17_1":{"terrain":"abyss"}, "Map_Tile_7_10":{"terrain":"abyss"}, "Map_Tile_18_0":{"terrain":"abyss"}, "Map_Tile_25_14":{"terrain":"abyss"}, "Map_Tile_24_5":{"terrain":"abyss"}, "Map_Name":"Ancient Discoveries", "Map_Tile_14_19":{"terrain":"abyss"}, "Map_Tile_5_18":{"terrain":"abyss"}, "Map_Tile_29_1":{"terrain":"abyss"}, "Map_Tile_0_17":{"terrain":"abyss"}, "Map_Tile_5_5":{"terrain":"abyss"}, "Map_Tile_11_10":{"terrain":"abyss"}, "Map_Tile_10_12":{"terrain":"abyss"}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"abyss"}, "Map_Tile_2_9":{"terrain":"abyss"}, "Counters":{}, "Map_Tile_3_0":{"terrain":"abyss"}, "Map_Tile_8_2":{"terrain":"abyss"}, "Map_Tile_5_6":{"terrain":"abyss"}, "Map_Tile_7_11":{"terrain":"abyss"}, "Map_Tile_22_0":{"terrain":"abyss"}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_16_2":{"terrain":"abyss"}, "Map_Tile_27_1":{"terrain":"abyss"}, "Map_Tile_9_4":{"terrain":"abyss"}, "Map_Tile_21_11":{"terrain":"abyss"}, "Map_Tile_1_16":{"terrain":"abyss"}, "Map_Tile_4_13":{"terrain":"abyss"}, "Map_Tile_4_0":{"terrain":"abyss"}, "Map_Tile_4_12":{"terrain":"abyss"}, "Map_Tile_9_16":{"terrain":"abyss"}, "Map_Tile_13_4":{"terrain":"abyss"}, "Map_Tile_8_1":{"terrain":"abyss"}, "Map_Tile_25_17":{"terrain":"abyss"}, "Map_Tile_20_0":{"terrain":"abyss"}, "Map_Tile_6_19":{"terrain":"abyss"}, "Map_Tile_26_3":{"terrain":"abyss"}, "Map_Tile_19_18":{"terrain":"abyss"}, "Map_Tile_3_9":{"terrain":"abyss"}, "Map_Tile_1_3":{"terrain":"abyss"}, "Map_Tile_27_12":{"terrain":"abyss"}, "Map_Tile_4_15":{"terrain":"abyss"}, "Map_Tile_10_18":{"terrain":"abyss"}, "Map_Tile_29_4":{"terrain":"abyss"}, "Map_Tile_26_2":{"terrain":"abyss"}, "Map_Tile_12_13":{"terrain":"abyss"}, "Map_Tile_24_18":{"terrain":"abyss"}, "Map_Tile_28_11":{"terrain":"abyss"}, "Map_Tile_1_7":{"terrain":"abyss"}, "Map_Tile_22_17":{"terrain":"abyss"}, "Map_Tile_5_15":{"terrain":"abyss"}, "Map_Tile_23_0":{"terrain":"abyss"}, "Map_Tile_20_4":{"terrain":"abyss"}, "Map_Tile_21_6":{"terrain":"abyss"}, "Map_Tile_10_3":{"terrain":"abyss"}, "Map_Tile_1_2":{"terrain":"abyss"}, "Map_Tile_1_11":{"terrain":"abyss"}, "Map_Tile_8_9":{"terrain":"abyss"}, "Map_Tile_14_17":{"terrain":"abyss"}, "Map_Tile_29_17":{"terrain":"abyss"}, "Map_Tile_5_2":{"terrain":"abyss"}, "Map_Tile_4_1":{"terrain":"abyss"}, "Map_Tile_18_14":{"terrain":"abyss"}, "Map_Tile_11_17":{"terrain":"abyss"}, "Map_Tile_22_5":{"terrain":"abyss"}, "Map_Tile_13_5":{"terrain":"abyss"}, "Map_Tile_5_0":{"terrain":"abyss"}, "Map_Tile_0_14":{"terrain":"abyss"}, "Map_Tile_23_3":{"terrain":"abyss"}, "Map_Tile_23_1":{"terrain":"abyss"}, "Map_Tile_19_17":{"terrain":"abyss"}, "Map_Tile_7_17":{"terrain":"abyss"}, "Map_Tile_5_17":{"terrain":"abyss"}, "Map_Tile_18_10":{"terrain":"abyss"}, "Map_Tile_23_7":{"terrain":"abyss"}, "Map_Tile_12_4":{"terrain":"abyss"}, "Map_Tile_21_18":{"terrain":"abyss"}, "Map_Tile_14_16":{"terrain":"abyss"}, "Objectives":["Spawn 3 enemy strongholds.", "Kill an enemy stronghold with a golem.", "Win by eliminating an enemy stronghold."], "Map_Tile_28_9":{"terrain":"abyss"}, "Map_Tile_13_10":{"terrain":"plains"}, "Map_Tile_23_4":{"terrain":"abyss"}, "Map_Tile_11_9":{"terrain":"abyss"}, "Map_Tile_2_1":{"terrain":"abyss"}, "Map_Tile_27_11":{"terrain":"abyss"}, "Map_Tile_4_8":{"terrain":"abyss"}, "Map_Tile_0_9":{"terrain":"abyss"}, "Map_Tile_7_0":{"terrain":"abyss"}, "Map_Tile_19_16":{"terrain":"abyss"}, "Map_Tile_25_7":{"terrain":"abyss"}, "Map_Tile_4_3":{"terrain":"abyss"}, "Map_Tile_6_3":{"terrain":"abyss"}, "Map_Tile_2_17":{"terrain":"abyss"}, "Map_Tile_10_16":{"terrain":"abyss"}, "Map_Tile_26_10":{"terrain":"abyss"}, "Map_Tile_0_13":{"terrain":"abyss"}, "Map_Tile_20_11":{"terrain":"abyss"}, "Map_Tile_2_13":{"terrain":"abyss"}, "Map_Tile_28_17":{"terrain":"abyss"}, "Map_Tile_13_0":{"terrain":"abyss"}, "Map_Tile_17_4":{"terrain":"abyss"}, "Map_Tile_6_13":{"terrain":"abyss"}, "Map_Tile_29_5":{"terrain":"abyss"}, "Map_Tile_2_12":{"terrain":"abyss"}, "Map_Tile_22_1":{"terrain":"abyss"}, "Map_Tile_4_18":{"terrain":"abyss"}, "Map_Tile_7_8":{"terrain":"abyss"}, "Map_Tile_14_15":{"terrain":"abyss"}, "Map_Tile_12_10":{"terrain":"abyss"}, "Map_Tile_27_8":{"terrain":"abyss"}, "Map_Tile_2_11":{"terrain":"abyss"}, "Map_Tile_2_16":{"terrain":"abyss"}, "Map_Tile_12_7":{"terrain":"abyss"}, "Map_Tile_11_2":{"terrain":"abyss"}, "Map_Tile_7_15":{"terrain":"abyss"}, "Map_Tile_10_0":{"terrain":"abyss"}, "Map_Tile_17_5":{"terrain":"abyss"}, "Map_Tile_21_0":{"terrain":"abyss"}, "Map_Tile_5_4":{"terrain":"abyss"}, "Map_Tile_21_14":{"terrain":"abyss"}, "Map_Tile_11_8":{"terrain":"abyss"}, "Map_Tile_15_9":{"terrain":"plains"}, "Map_Tile_9_12":{"terrain":"abyss"}, "Map_Tile_11_1":{"terrain":"abyss"}, "Map_Tile_6_18":{"terrain":"abyss"}, "Map_Tile_17_13":{"terrain":"abyss"}, "Map_Tile_24_11":{"terrain":"abyss"}, "Map_Tile_27_10":{"terrain":"abyss"}, "Map_Tile_20_10":{"terrain":"abyss"}, "Map_Tile_24_1":{"terrain":"abyss"}, "Map_Tile_14_10":{"terrain":"plains"}, "Map_Tile_24_3":{"terrain":"abyss"}, "Map_Tile_4_6":{"terrain":"abyss"}, "Map_Tile_19_4":{"terrain":"abyss"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Tile_16_9":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"abyss"}, "Map_Tile_0_6":{"terrain":"abyss"}, "Map_Tile_13_13":{"terrain":"abyss"}, "Map_Tile_16_15":{"terrain":"abyss"}, "Map_Tile_5_10":{"terrain":"abyss"}, "Map_Tile_17_12":{"terrain":"abyss"}, "Map_Tile_15_1":{"terrain":"abyss"}, "Map_Tile_16_18":{"terrain":"abyss"}, "Map_Tile_0_12":{"terrain":"abyss"}, "Flags":{}, "Author":"Fly Sniper", "Map_Tile_26_9":{"terrain":"abyss"}, "Map_Tile_0_1":{"terrain":"abyss"}, "Map_Tile_29_14":{"terrain":"abyss"}, "Map_Tile_16_19":{"terrain":"abyss"}, "Map_Tile_7_19":{"terrain":"abyss"}, "Map_Tile_17_8":{"terrain":"abyss"}, "Map_Tile_29_9":{"terrain":"abyss"}, "Map_Tile_27_16":{"terrain":"abyss"}, "Map_Tile_22_18":{"terrain":"abyss"}, "Map_Tile_23_16":{"terrain":"abyss"}, "Map_Tile_6_10":{"terrain":"abyss"}, "Map_Tile_8_14":{"terrain":"abyss"}, "Map_Tile_23_14":{"terrain":"abyss"}, "Map_Tile_0_8":{"terrain":"abyss"}, "Map_Tile_6_8":{"terrain":"abyss"}, "Map_Tile_15_19":{"terrain":"abyss"}, "Map_Tile_11_14":{"terrain":"abyss"}, "Map_Tile_29_15":{"terrain":"abyss"}, "Map_Tile_2_18":{"terrain":"abyss"}, "Map_Tile_1_1":{"terrain":"abyss"}, "Map_Tile_19_2":{"terrain":"abyss"}, "Map_Tile_21_3":{"terrain":"abyss"}, "Map_Tile_7_6":{"terrain":"abyss"}, "Map_Tile_4_2":{"terrain":"abyss"}, "Map_Tile_24_8":{"terrain":"abyss"}, "Map_Tile_21_15":{"terrain":"abyss"}, "Map_Tile_17_14":{"terrain":"abyss"}, "Map_Tile_26_16":{"terrain":"abyss"}, "Map_Tile_10_17":{"terrain":"abyss"}, "Map_Tile_28_2":{"terrain":"abyss"}, "Map_Tile_21_12":{"terrain":"abyss"}, "Map_Tile_22_8":{"terrain":"abyss"}, "Map_Tile_3_4":{"terrain":"abyss"}, "Map_Tile_15_8":{"terrain":"plains"}, "Map_Tile_10_15":{"terrain":"abyss"}, "Map_Tile_3_1":{"terrain":"abyss"}, "Map_Tile_12_14":{"terrain":"abyss"}, "Map_Tile_24_19":{"terrain":"abyss"}, "Map_Tile_6_9":{"terrain":"abyss"}, "Map_Tile_25_13":{"terrain":"abyss"}, "Map_Tile_4_11":{"terrain":"abyss"}, "Map_Tile_5_11":{"terrain":"abyss"}, "Map_Tile_27_0":{"terrain":"abyss"}, "Map_Tile_25_4":{"terrain":"abyss"}, "Map_Tile_19_7":{"terrain":"abyss"}, "Map_Tile_15_14":{"terrain":"abyss"}, "Map_Tile_29_19":{"terrain":"abyss"}, "Map_Tile_29_12":{"terrain":"abyss"}, "Map_Tile_11_7":{"terrain":"abyss"}, "Map_Tile_8_18":{"terrain":"abyss"}, "Player_1":{"recruit_knight":true, "recruit_soldier":true, "recruit_frog":true, "recruit_travelboat":true, "recruit_dog":true, "recruit_griffin_walking":true, "recruit_caravel":true, "team":0, "recruit_giant":true, "recruit_harpoonship":true, "recruit_mage":true, "recruit_balloon":true, "gold":100, "recruit_kraken":true, "recruit_wagon":true, "recruit_ballista":true, "recruit_turtle":true, "recruit_warship":true, "recruit_archer":true, "recruit_rifleman":true, "recruit_merman":true, "recruit_spearman":true, "recruit_harpy":true, "recruit_dragon":true, "recruit_thief":true, "recruit_witch":true, "recruit_trebuchet":true}, "Map_Tile_16_0":{"terrain":"abyss"}, "Map_Tile_16_4":{"terrain":"abyss"}, "Map_Tile_16_10":{"terrain":"plains"}, "Map_Tile_16_5":{"terrain":"abyss"}, "Map_Tile_18_12":{"terrain":"abyss"}, "Map_Tile_20_8":{"terrain":"abyss"}, "Map_Tile_18_11":{"terrain":"abyss"}, "Map_Tile_27_5":{"terrain":"abyss"}, "Map_Tile_16_8":{"terrain":"plains"}, "Map_Tile_14_3":{"terrain":"abyss"}, "Map_Tile_2_7":{"terrain":"abyss"}, "Map_Tile_19_14":{"terrain":"abyss"}, "Map_Tile_19_19":{"terrain":"abyss"}, "Map_Tile_19_13":{"terrain":"abyss"}, "Map_Tile_25_12":{"terrain":"abyss"}, "Map_Tile_27_4":{"terrain":"abyss"}, "Map_Tile_26_6":{"terrain":"abyss"}, "Map_Tile_2_3":{"terrain":"abyss"}, "Map_Tile_7_3":{"terrain":"abyss"}, "Map_Tile_7_9":{"terrain":"abyss"}, "Map_Tile_9_0":{"terrain":"abyss"}, "Map_Tile_19_11":{"terrain":"abyss"}, "Map_Tile_5_1":{"terrain":"abyss"}, "Map_Tile_13_7":{"terrain":"abyss"}, "Map_Tile_8_11":{"terrain":"abyss"}, "Map_Tile_13_19":{"terrain":"abyss"}, "Map_Tile_15_10":{"terrain":"plains"}, "Map_Tile_28_15":{"terrain":"abyss"}, "Map_Tile_29_18":{"terrain":"abyss"}, "Map_Tile_20_3":{"terrain":"abyss"}, "Map_Tile_15_3":{"terrain":"abyss"}, "Map_Tile_26_17":{"terrain":"abyss"}, "Map_Tile_2_4":{"terrain":"abyss"}, "Map_Tile_18_5":{"terrain":"abyss"}, "Map_Tile_10_6":{"terrain":"abyss"}, "Map_Tile_6_15":{"terrain":"abyss"}, "Map_Tile_1_10":{"terrain":"abyss"}, "Map_Tile_4_9":{"terrain":"abyss"}, "Map_Tile_2_19":{"terrain":"abyss"}, "Map_Tile_9_8":{"terrain":"abyss"}, "Map_Tile_11_15":{"terrain":"abyss"}, "Map_Tile_22_14":{"terrain":"abyss"}, "Map_Tile_18_15":{"terrain":"abyss"}, "Map_Tile_15_7":{"terrain":"abyss"}, "Map_Tile_22_12":{"terrain":"abyss"}, "Locations":{"1":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":8, "x":16}, {"y":9, "x":16}, {"y":10, "x":16}, {"y":11, "x":16}, {"y":11, "x":17}, {"y":11, "x":18}, {"y":11, "x":19}, {"y":11, "x":20}, {"y":11, "x":21}, {"y":10, "x":21}, {"y":9, "x":21}, {"y":8, "x":21}, {"y":8, "x":20}, {"y":8, "x":19}, {"y":8, "x":18}, {"y":8, "x":17}, {"y":9, "x":17}, {"y":10, "x":17}, {"y":10, "x":18}, {"y":9, "x":18}, {"y":9, "x":19}, {"y":9, "x":20}, {"y":10, "x":20}, {"y":10, "x":19}, {"y":7, "x":18}, {"y":7, "x":19}, {"y":7, "x":20}, {"y":7, "x":21}, {"y":12, "x":21}, {"y":12, "x":20}, {"y":12, "x":19}, {"y":12, "x":18}, {"y":12, "x":17}, {"y":7, "x":17}], "name":"Challenge 1", "id":1, "centre":{"y":10, "x":19}}, "2":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":10, "x":15}, {"y":10, "x":14}, {"y":9, "x":14}, {"y":9, "x":15}], "name":"Spawn", "id":2, "centre":{"y":10, "x":15}}, "3":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":12, "x":12}, {"y":12, "x":13}, {"y":12, "x":14}, {"y":12, "x":15}, {"y":12, "x":16}, {"y":12, "x":17}, {"y":13, "x":17}, {"y":14, "x":17}, {"y":15, "x":17}, {"y":15, "x":16}, {"y":15, "x":15}, {"y":15, "x":14}, {"y":15, "x":13}, {"y":15, "x":12}, {"y":14, "x":12}, {"y":13, "x":12}, {"y":13, "x":13}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":13, "x":16}, {"y":14, "x":16}, {"y":14, "x":15}, {"y":14, "x":14}, {"y":14, "x":13}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}, {"y":11, "x":13}], "name":"Challenge 2", "id":3, "centre":{"y":13, "x":15}}, "4":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":11, "x":12}, {"y":10, "x":12}, {"y":9, "x":12}, {"y":8, "x":12}, {"y":8, "x":11}, {"y":9, "x":11}, {"y":10, "x":11}, {"y":11, "x":11}, {"y":12, "x":11}, {"y":7, "x":11}, {"y":7, "x":10}, {"y":7, "x":9}, {"y":7, "x":8}, {"y":8, "x":8}, {"y":9, "x":8}, {"y":10, "x":8}, {"y":11, "x":8}, {"y":12, "x":8}, {"y":12, "x":9}, {"y":12, "x":10}, {"y":11, "x":10}, {"y":10, "x":10}, {"y":9, "x":10}, {"y":8, "x":10}, {"y":8, "x":9}, {"y":9, "x":9}, {"y":10, "x":9}, {"y":11, "x":9}, {"y":8, "x":13}, {"y":9, "x":13}, {"y":10, "x":13}, {"y":11, "x":13}, {"y":7, "x":12}, {"y":12, "x":12}], "name":"Challenge 3", "id":4, "centre":{"y":9, "x":10}}, "5":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":8, "x":16}, {"y":8, "x":15}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":7, "x":13}, {"y":7, "x":12}, {"y":7, "x":14}, {"y":7, "x":15}, {"y":7, "x":16}, {"y":7, "x":17}, {"y":6, "x":17}, {"y":6, "x":16}, {"y":6, "x":15}, {"y":6, "x":14}, {"y":6, "x":13}, {"y":6, "x":12}, {"y":5, "x":17}, {"y":5, "x":12}, {"y":5, "x":13}, {"y":5, "x":14}, {"y":5, "x":15}, {"y":5, "x":16}, {"y":4, "x":17}, {"y":4, "x":16}, {"y":4, "x":15}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":4, "x":12}], "name":"Challenge 4", "id":5, "centre":{"y":6, "x":15}}, "6":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":13, "x":17}, {"y":12, "x":18}, {"y":14, "x":17}, {"y":15, "x":17}, {"y":15, "x":18}, {"y":14, "x":18}, {"y":13, "x":18}, {"y":13, "x":19}, {"y":12, "x":19}, {"y":12, "x":20}, {"y":12, "x":21}, {"y":12, "x":22}, {"y":12, "x":23}, {"y":13, "x":23}, {"y":14, "x":23}, {"y":14, "x":22}, {"y":15, "x":22}, {"y":15, "x":21}, {"y":15, "x":20}, {"y":15, "x":19}, {"y":14, "x":19}, {"y":13, "x":20}, {"y":13, "x":21}, {"y":13, "x":22}, {"y":14, "x":21}, {"y":14, "x":20}, {"y":15, "x":23}], "name":"Challenge 5", "id":6, "centre":{"y":14, "x":20}}, "7":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":13, "x":12}, {"y":13, "x":11}, {"y":12, "x":11}, {"y":14, "x":11}, {"y":14, "x":12}, {"y":14, "x":10}, {"y":13, "x":10}, {"y":12, "x":10}, {"y":15, "x":11}, {"y":15, "x":12}, {"y":15, "x":10}, {"y":15, "x":9}, {"y":14, "x":9}, {"y":13, "x":9}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":13, "x":8}, {"y":14, "x":8}, {"y":15, "x":8}, {"y":12, "x":7}, {"y":13, "x":7}, {"y":14, "x":7}, {"y":15, "x":7}, {"y":12, "x":6}, {"y":13, "x":6}, {"y":14, "x":6}, {"y":15, "x":6}], "name":"Challenge 6", "id":7, "centre":{"y":14, "x":9}}, "8":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":7, "x":11}, {"y":6, "x":12}, {"y":6, "x":11}, {"y":6, "x":10}, {"y":6, "x":9}, {"y":6, "x":8}, {"y":6, "x":7}, {"y":6, "x":6}, {"y":5, "x":6}, {"y":4, "x":6}, {"y":5, "x":11}, {"y":4, "x":11}, {"y":4, "x":10}, {"y":4, "x":9}, {"y":4, "x":8}, {"y":4, "x":7}, {"y":5, "x":7}, {"y":5, "x":8}, {"y":5, "x":9}, {"y":5, "x":10}, {"y":5, "x":12}, {"y":4, "x":12}, {"y":7, "x":10}, {"y":7, "x":9}, {"y":7, "x":8}, {"y":7, "x":7}], "name":"Challenge 7", "id":8, "centre":{"y":5, "x":9}}, "9":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":6, "x":17}, {"y":7, "x":18}, {"y":6, "x":18}, {"y":5, "x":18}, {"y":4, "x":18}, {"y":5, "x":19}, {"y":6, "x":19}, {"y":6, "x":20}, {"y":6, "x":21}, {"y":6, "x":22}, {"y":6, "x":23}, {"y":5, "x":23}, {"y":5, "x":22}, {"y":5, "x":21}, {"y":5, "x":20}, {"y":4, "x":19}, {"y":4, "x":20}, {"y":4, "x":21}, {"y":4, "x":22}, {"y":4, "x":23}, {"y":4, "x":17}, {"y":5, "x":17}, {"y":7, "x":19}, {"y":7, "x":20}, {"y":7, "x":21}, {"y":7, "x":22}], "name":"Challenge 8", "id":9, "centre":{"y":5, "x":20}}, "10":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":7, "x":8}, {"y":8, "x":8}, {"y":9, "x":8}, {"y":10, "x":8}, {"y":11, "x":8}, {"y":12, "x":7}, {"y":12, "x":6}, {"y":12, "x":5}, {"y":12, "x":4}, {"y":12, "x":3}, {"y":12, "x":2}, {"y":12, "x":1}, {"y":12, "x":0}, {"y":11, "x":0}, {"y":10, "x":0}, {"y":9, "x":0}, {"y":8, "x":0}, {"y":7, "x":0}, {"y":6, "x":0}, {"y":6, "x":1}, {"y":6, "x":2}, {"y":6, "x":3}, {"y":6, "x":4}, {"y":6, "x":5}, {"y":6, "x":6}, {"y":6, "x":7}, {"y":7, "x":7}, {"y":8, "x":7}, {"y":9, "x":7}, {"y":10, "x":7}, {"y":11, "x":7}, {"y":11, "x":6}, {"y":11, "x":5}, {"y":11, "x":4}, {"y":11, "x":3}, {"y":11, "x":2}, {"y":11, "x":1}, {"y":10, "x":1}, {"y":9, "x":1}, {"y":8, "x":1}, {"y":7, "x":1}, {"y":7, "x":2}, {"y":7, "x":3}, {"y":7, "x":4}, {"y":7, "x":5}, {"y":7, "x":6}, {"y":8, "x":6}, {"y":9, "x":6}, {"y":10, "x":6}, {"y":10, "x":5}, {"y":10, "x":4}, {"y":10, "x":3}, {"y":10, "x":2}, {"y":9, "x":2}, {"y":8, "x":2}, {"y":8, "x":3}, {"y":8, "x":4}, {"y":8, "x":5}, {"y":9, "x":5}, {"y":9, "x":4}, {"y":9, "x":3}, {"y":5, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":5, "x":2}, {"y":5, "x":1}, {"y":5, "x":0}, {"y":13, "x":5}, {"y":13, "x":4}, {"y":13, "x":3}, {"y":13, "x":2}, {"y":13, "x":1}, {"y":13, "x":0}, {"y":13, "x":6}, {"y":5, "x":6}], "name":"Challenge 9", "id":10, "centre":{"y":9, "x":4}}, "11":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":4, "x":6}, {"y":4, "x":7}, {"y":4, "x":8}, {"y":4, "x":9}, {"y":4, "x":10}, {"y":4, "x":11}, {"y":4, "x":12}, {"y":4, "x":13}, {"y":4, "x":14}, {"y":1, "x":14}, {"y":0, "x":14}, {"y":0, "x":13}, {"y":0, "x":12}, {"y":0, "x":11}, {"y":0, "x":10}, {"y":0, "x":9}, {"y":0, "x":8}, {"y":0, "x":7}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":2, "x":6}, {"y":3, "x":6}, {"y":3, "x":7}, {"y":3, "x":8}, {"y":3, "x":9}, {"y":3, "x":10}, {"y":3, "x":11}, {"y":3, "x":12}, {"y":3, "x":13}, {"y":2, "x":13}, {"y":1, "x":13}, {"y":1, "x":12}, {"y":1, "x":11}, {"y":1, "x":10}, {"y":1, "x":9}, {"y":1, "x":8}, {"y":1, "x":7}, {"y":2, "x":7}, {"y":2, "x":8}, {"y":2, "x":9}, {"y":2, "x":10}, {"y":2, "x":11}, {"y":2, "x":12}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":5}, {"y":4, "x":4}, {"y":4, "x":3}, {"y":4, "x":2}, {"y":4, "x":1}, {"y":4, "x":0}, {"y":3, "x":0}, {"y":2, "x":0}, {"y":1, "x":0}, {"y":0, "x":0}, {"y":0, "x":1}, {"y":0, "x":2}, {"y":0, "x":3}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":1, "x":5}, {"y":2, "x":5}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":2}, {"y":3, "x":1}, {"y":2, "x":1}, {"y":1, "x":1}, {"y":1, "x":2}, {"y":1, "x":3}, {"y":1, "x":4}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":2, "x":2}, {"y":5, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":5, "x":2}, {"y":5, "x":1}, {"y":5, "x":0}], "name":"Challenge 10", "id":11, "centre":{"y":2, "x":7}}, "12":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":4, "x":15}, {"y":3, "x":15}, {"y":2, "x":15}, {"y":1, "x":15}, {"y":0, "x":15}, {"y":0, "x":14}, {"y":1, "x":14}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":16}, {"y":4, "x":17}, {"y":4, "x":18}, {"y":4, "x":19}, {"y":4, "x":20}, {"y":4, "x":21}, {"y":4, "x":22}, {"y":4, "x":23}, {"y":4, "x":24}, {"y":4, "x":25}, {"y":4, "x":26}, {"y":4, "x":27}, {"y":4, "x":28}, {"y":4, "x":29}, {"y":5, "x":24}, {"y":5, "x":25}, {"y":5, "x":26}, {"y":5, "x":27}, {"y":5, "x":28}, {"y":5, "x":29}, {"y":3, "x":29}, {"y":3, "x":28}, {"y":3, "x":27}, {"y":3, "x":26}, {"y":3, "x":25}, {"y":3, "x":24}, {"y":3, "x":23}, {"y":3, "x":22}, {"y":3, "x":21}, {"y":3, "x":20}, {"y":3, "x":19}, {"y":3, "x":18}, {"y":3, "x":17}, {"y":3, "x":16}, {"y":2, "x":16}, {"y":1, "x":16}, {"y":0, "x":16}, {"y":0, "x":17}, {"y":0, "x":18}, {"y":0, "x":19}, {"y":0, "x":20}, {"y":0, "x":21}, {"y":0, "x":22}, {"y":0, "x":23}, {"y":0, "x":24}, {"y":0, "x":25}, {"y":0, "x":26}, {"y":0, "x":27}, {"y":0, "x":28}, {"y":0, "x":29}, {"y":2, "x":29}, {"y":2, "x":28}, {"y":2, "x":27}, {"y":2, "x":26}, {"y":2, "x":25}, {"y":2, "x":24}, {"y":2, "x":23}, {"y":2, "x":22}, {"y":2, "x":21}, {"y":2, "x":20}, {"y":2, "x":19}, {"y":2, "x":18}, {"y":2, "x":17}, {"y":1, "x":17}, {"y":1, "x":18}, {"y":1, "x":19}, {"y":1, "x":20}, {"y":1, "x":21}, {"y":1, "x":22}, {"y":1, "x":23}, {"y":1, "x":24}, {"y":1, "x":25}, {"y":1, "x":26}, {"y":1, "x":27}, {"y":1, "x":28}, {"y":1, "x":29}], "name":"Challenge 11", "id":12, "centre":{"y":2, "x":22}}, "13":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":7, "x":21}, {"y":8, "x":21}, {"y":9, "x":21}, {"y":10, "x":21}, {"y":11, "x":21}, {"y":12, "x":22}, {"y":6, "x":22}, {"y":5, "x":23}, {"y":5, "x":24}, {"y":5, "x":25}, {"y":5, "x":26}, {"y":5, "x":27}, {"y":5, "x":28}, {"y":5, "x":29}, {"y":13, "x":23}, {"y":13, "x":24}, {"y":13, "x":25}, {"y":13, "x":26}, {"y":13, "x":27}, {"y":13, "x":28}, {"y":13, "x":29}, {"y":12, "x":29}, {"y":12, "x":28}, {"y":12, "x":27}, {"y":12, "x":26}, {"y":12, "x":25}, {"y":12, "x":24}, {"y":12, "x":23}, {"y":11, "x":23}, {"y":11, "x":22}, {"y":10, "x":22}, {"y":9, "x":22}, {"y":8, "x":22}, {"y":7, "x":22}, {"y":6, "x":23}, {"y":7, "x":23}, {"y":8, "x":23}, {"y":9, "x":23}, {"y":10, "x":23}, {"y":10, "x":24}, {"y":9, "x":24}, {"y":8, "x":24}, {"y":7, "x":24}, {"y":7, "x":25}, {"y":6, "x":24}, {"y":11, "x":24}, {"y":10, "x":25}, {"y":9, "x":25}, {"y":8, "x":25}, {"y":6, "x":25}, {"y":11, "x":25}, {"y":8, "x":26}, {"y":9, "x":26}, {"y":10, "x":26}, {"y":11, "x":26}, {"y":7, "x":26}, {"y":6, "x":26}, {"y":8, "x":27}, {"y":9, "x":27}, {"y":10, "x":27}, {"y":10, "x":28}, {"y":9, "x":28}, {"y":8, "x":28}, {"y":7, "x":28}, {"y":6, "x":28}, {"y":11, "x":27}, {"y":7, "x":27}, {"y":6, "x":27}, {"y":11, "x":28}, {"y":11, "x":29}, {"y":10, "x":29}, {"y":9, "x":29}, {"y":8, "x":29}, {"y":7, "x":29}, {"y":6, "x":29}], "name":"Challenge 12", "id":13, "centre":{"y":9, "x":25}}, "14":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":15, "x":14}, {"y":16, "x":14}, {"y":17, "x":14}, {"y":18, "x":14}, {"y":19, "x":14}, {"y":15, "x":13}, {"y":15, "x":12}, {"y":15, "x":11}, {"y":15, "x":10}, {"y":15, "x":9}, {"y":15, "x":8}, {"y":15, "x":7}, {"y":15, "x":6}, {"y":15, "x":5}, {"y":15, "x":4}, {"y":15, "x":3}, {"y":15, "x":2}, {"y":15, "x":1}, {"y":15, "x":0}, {"y":14, "x":5}, {"y":13, "x":5}, {"y":13, "x":4}, {"y":13, "x":3}, {"y":13, "x":2}, {"y":13, "x":1}, {"y":13, "x":0}, {"y":14, "x":0}, {"y":14, "x":1}, {"y":14, "x":2}, {"y":14, "x":3}, {"y":14, "x":4}, {"y":14, "x":6}, {"y":16, "x":13}, {"y":16, "x":12}, {"y":16, "x":11}, {"y":16, "x":10}, {"y":16, "x":9}, {"y":16, "x":8}, {"y":16, "x":7}, {"y":16, "x":6}, {"y":16, "x":5}, {"y":16, "x":4}, {"y":16, "x":3}, {"y":16, "x":2}, {"y":16, "x":1}, {"y":16, "x":0}, {"y":17, "x":0}, {"y":18, "x":0}, {"y":19, "x":0}, {"y":19, "x":1}, {"y":19, "x":2}, {"y":19, "x":3}, {"y":19, "x":4}, {"y":19, "x":5}, {"y":19, "x":6}, {"y":19, "x":7}, {"y":19, "x":8}, {"y":19, "x":9}, {"y":19, "x":10}, {"y":19, "x":11}, {"y":19, "x":12}, {"y":19, "x":13}, {"y":18, "x":13}, {"y":17, "x":13}, {"y":17, "x":12}, {"y":17, "x":11}, {"y":17, "x":10}, {"y":17, "x":9}, {"y":17, "x":8}, {"y":17, "x":7}, {"y":17, "x":6}, {"y":17, "x":5}, {"y":17, "x":4}, {"y":17, "x":3}, {"y":17, "x":2}, {"y":17, "x":1}, {"y":18, "x":1}, {"y":18, "x":2}, {"y":18, "x":3}, {"y":18, "x":4}, {"y":18, "x":5}, {"y":18, "x":6}, {"y":18, "x":7}, {"y":18, "x":8}, {"y":18, "x":9}, {"y":18, "x":10}, {"y":18, "x":11}, {"y":18, "x":12}], "name":"Challenge 13", "id":14, "centre":{"y":16, "x":6}}, "15":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":15, "x":15}, {"y":16, "x":15}, {"y":16, "x":14}, {"y":17, "x":14}, {"y":18, "x":14}, {"y":19, "x":14}, {"y":19, "x":15}, {"y":18, "x":15}, {"y":17, "x":15}, {"y":16, "x":16}, {"y":16, "x":17}, {"y":16, "x":18}, {"y":16, "x":19}, {"y":16, "x":20}, {"y":16, "x":21}, {"y":16, "x":22}, {"y":16, "x":23}, {"y":16, "x":24}, {"y":16, "x":25}, {"y":16, "x":26}, {"y":16, "x":27}, {"y":16, "x":28}, {"y":16, "x":29}, {"y":17, "x":29}, {"y":18, "x":29}, {"y":19, "x":29}, {"y":19, "x":28}, {"y":19, "x":27}, {"y":19, "x":26}, {"y":19, "x":25}, {"y":19, "x":24}, {"y":19, "x":23}, {"y":19, "x":22}, {"y":19, "x":21}, {"y":19, "x":20}, {"y":19, "x":19}, {"y":19, "x":18}, {"y":19, "x":17}, {"y":19, "x":16}, {"y":18, "x":16}, {"y":17, "x":16}, {"y":17, "x":17}, {"y":17, "x":18}, {"y":17, "x":19}, {"y":17, "x":20}, {"y":17, "x":21}, {"y":17, "x":22}, {"y":17, "x":23}, {"y":17, "x":24}, {"y":17, "x":25}, {"y":17, "x":26}, {"y":17, "x":27}, {"y":17, "x":28}, {"y":18, "x":28}, {"y":18, "x":18}, {"y":18, "x":17}, {"y":18, "x":19}, {"y":18, "x":20}, {"y":18, "x":21}, {"y":18, "x":22}, {"y":18, "x":23}, {"y":18, "x":24}, {"y":18, "x":25}, {"y":18, "x":26}, {"y":18, "x":27}, {"y":15, "x":16}, {"y":15, "x":17}, {"y":15, "x":18}, {"y":15, "x":19}, {"y":15, "x":20}, {"y":15, "x":21}, {"y":15, "x":22}, {"y":15, "x":23}, {"y":15, "x":24}, {"y":15, "x":25}, {"y":15, "x":26}, {"y":15, "x":27}, {"y":15, "x":28}, {"y":15, "x":29}, {"y":14, "x":29}, {"y":14, "x":28}, {"y":14, "x":27}, {"y":14, "x":26}, {"y":14, "x":25}, {"y":14, "x":24}, {"y":14, "x":23}, {"y":13, "x":24}, {"y":13, "x":29}, {"y":13, "x":28}, {"y":13, "x":27}, {"y":13, "x":26}, {"y":13, "x":25}], "name":"Challenge 14", "id":15, "centre":{"y":17, "x":22}}, "0":{"getArea":null, "interactable":false, "setArea":null, "positions":[{"y":8, "x":13}, {"y":8, "x":14}, {"y":8, "x":15}, {"y":8, "x":16}, {"y":9, "x":16}, {"y":10, "x":16}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}, {"y":11, "x":13}, {"y":10, "x":13}, {"y":9, "x":13}], "name":"Start", "id":0, "centre":{"y":9, "x":15}}}, "Map_Tile_25_11":{"terrain":"abyss"}, "Map_Tile_28_19":{"terrain":"abyss"}, "Map_Tile_3_17":{"terrain":"abyss"}, "Map_Tile_29_13":{"terrain":"abyss"}, "Map_Tile_27_2":{"terrain":"abyss"}, "Map_Tile_29_11":{"terrain":"abyss"}, "Map_Tile_29_10":{"terrain":"abyss"}, "Map_Tile_22_11":{"terrain":"abyss"}, "Map_Tile_26_0":{"terrain":"abyss"}, "Map_Tile_25_8":{"terrain":"abyss"}, "Map_Tile_14_13":{"terrain":"abyss"}, "Map_Tile_9_18":{"terrain":"abyss"}, "Map_Tile_29_6":{"terrain":"abyss"}, "Map_Tile_26_12":{"terrain":"abyss"}, "Map_Tile_28_18":{"terrain":"abyss"}, "Map_Tile_28_14":{"terrain":"abyss"}, "Map_Tile_28_12":{"terrain":"abyss"}, "Map_Tile_28_8":{"terrain":"abyss"}, "Map_Tile_28_7":{"terrain":"abyss"}, "Map_Tile_28_6":{"terrain":"abyss"}, "Map_Tile_22_9":{"terrain":"abyss"}, "Map_Tile_1_13":{"terrain":"abyss"}, "Map_Tile_28_5":{"terrain":"abyss"}, "Map_Tile_28_4":{"terrain":"abyss"}, "Map_Tile_28_3":{"terrain":"abyss"}, "Map_Tile_9_14":{"terrain":"abyss"}, "Map_Tile_14_7":{"terrain":"abyss"}, "Map_Tile_18_7":{"terrain":"abyss"}, "Map_Tile_12_1":{"terrain":"abyss"}, "Map_Tile_7_7":{"terrain":"abyss"}, "Map_Tile_27_7":{"terrain":"abyss"}, "Map_Tile_27_15":{"terrain":"abyss"}, "Map_Tile_27_14":{"terrain":"abyss"}, "Map_Tile_20_15":{"terrain":"abyss"}, "Map_Tile_0_5":{"terrain":"abyss"}, "Map_Tile_24_2":{"terrain":"abyss"}, "Map_Tile_7_18":{"terrain":"abyss"}, "Map_Tile_21_1":{"terrain":"abyss"}, "Map_Tile_23_8":{"terrain":"abyss"}, "Map_Tile_27_3":{"terrain":"abyss"}, "Map_Tile_19_1":{"terrain":"abyss"}, "Map_Tile_16_3":{"terrain":"abyss"}, "Map_Tile_26_19":{"terrain":"abyss"}, "Map_Tile_16_16":{"terrain":"abyss"}, "Map_Tile_26_15":{"terrain":"abyss"}, "Map_Tile_26_14":{"terrain":"abyss"}, "Map_Tile_3_16":{"terrain":"abyss"}, "Map_Tile_6_1":{"terrain":"abyss"}, "Map_Tile_26_11":{"terrain":"abyss"}, "Map_Tile_10_11":{"terrain":"abyss"}, "Map_Tile_17_11":{"terrain":"abyss"}, "Map_Tile_25_18":{"terrain":"abyss"}, "Map_Tile_24_15":{"terrain":"abyss"}, "Map_Tile_25_15":{"terrain":"abyss"}, "Map_Tile_19_0":{"terrain":"abyss"}, "Map_Tile_25_10":{"terrain":"abyss"}, "Map_Tile_5_19":{"terrain":"abyss"}, "Map_Tile_2_8":{"terrain":"abyss"}, "Map_Tile_8_4":{"terrain":"abyss"}, "Map_Tile_25_9":{"terrain":"abyss"}, "Map_Tile_29_8":{"terrain":"abyss"}, "Map_Tile_3_5":{"terrain":"abyss"}, "Map_Tile_0_15":{"terrain":"abyss"}, "Map_Tile_25_5":{"terrain":"abyss"}, "Map_Tile_5_12":{"terrain":"abyss"}, "Map_Tile_19_9":{"terrain":"abyss"}, "Map_Tile_8_19":{"terrain":"abyss"}, "Map_Tile_2_5":{"terrain":"abyss"}, "Map_Tile_12_18":{"terrain":"abyss"}, "Map_Tile_6_0":{"terrain":"abyss"}, "Map_Tile_15_13":{"terrain":"abyss"}, "Map_Tile_13_6":{"terrain":"abyss"}, "Map_Tile_18_2":{"terrain":"abyss"}, "Map_Tile_25_1":{"terrain":"abyss"}, "Map_Tile_25_0":{"terrain":"abyss"}, "Map_Tile_26_8":{"terrain":"abyss"}, "Map_Tile_16_14":{"terrain":"abyss"}, "Map_Tile_4_16":{"terrain":"abyss"}, "Map_Tile_16_13":{"terrain":"abyss"}, "Map_Tile_16_1":{"terrain":"abyss"}, "Map_Tile_1_0":{"terrain":"abyss"}, "Map_Tile_22_10":{"terrain":"abyss"}, "Map_Tile_1_5":{"terrain":"abyss"}, "Map_Tile_3_8":{"terrain":"abyss"}, "Map_Tile_15_16":{"terrain":"abyss"}, "Map_Tile_6_7":{"terrain":"abyss"}, "Map_Tile_7_1":{"terrain":"abyss"}, "Map_Tile_10_1":{"terrain":"abyss"}, "Map_Tile_24_12":{"terrain":"abyss"}, "Map_Tile_7_5":{"terrain":"abyss"}, "Map_Tile_24_9":{"terrain":"abyss"}, "Map_Tile_8_8":{"terrain":"abyss"}, "Map_Tile_11_6":{"terrain":"abyss"}, "Map_Tile_24_7":{"terrain":"abyss"}, "Map_Tile_27_13":{"terrain":"abyss"}, "Map_Tile_15_6":{"terrain":"abyss"}, "Map_Tile_8_10":{"terrain":"abyss"}, "Map_Tile_13_15":{"terrain":"abyss"}, "Map_Tile_12_5":{"terrain":"abyss"}, "Map_Tile_11_11":{"terrain":"abyss"}, "Map_Tile_24_4":{"terrain":"abyss"}, "Map_Tile_21_5":{"terrain":"abyss"}, "Map_Tile_24_13":{"terrain":"abyss"}, "Map_Tile_25_2":{"terrain":"abyss"}, "Map_Tile_24_0":{"terrain":"abyss"}, "Map_Tile_3_14":{"terrain":"abyss"}, "Map_Tile_0_10":{"terrain":"abyss"}, "Map_Tile_23_18":{"terrain":"abyss"}, "Map_Tile_17_2":{"terrain":"abyss"}, "Map_Tile_14_1":{"terrain":"abyss"}, "Map_Tile_12_9":{"terrain":"abyss"}, "Map_Tile_2_0":{"terrain":"abyss"}, "Map_Tile_13_1":{"terrain":"abyss"}, "Map_Tile_23_15":{"terrain":"abyss"}, "Map_Tile_9_7":{"terrain":"abyss"}, "Map_Tile_12_15":{"terrain":"abyss"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_27_6":{"terrain":"abyss"}, "Map_Tile_9_3":{"terrain":"abyss"}, "Map_Tile_16_12":{"terrain":"abyss"}, "Map_Tile_10_2":{"terrain":"abyss"}, "Map_Tile_23_13":{"terrain":"abyss"}, "Map_Tile_23_12":{"terrain":"abyss"}, "Map_Tile_23_10":{"terrain":"abyss"}, "Map_Tile_20_13":{"terrain":"abyss"}, "Map_Tile_23_9":{"terrain":"abyss"}, "Map_Tile_28_1":{"terrain":"abyss"}, "Map_Tile_10_8":{"terrain":"abyss"}, "Map_Tile_8_13":{"terrain":"abyss"}, "Map_Tile_23_6":{"terrain":"abyss"}, "Map_Tile_1_9":{"terrain":"abyss"}, "Map_Tile_9_19":{"terrain":"abyss"}, "Map_Tile_6_6":{"terrain":"abyss"}, "Map_Tile_1_19":{"terrain":"abyss"}, "Map_Tile_9_15":{"terrain":"abyss"}, "Map_Tile_1_6":{"terrain":"abyss"}, "Map_Tile_4_17":{"terrain":"abyss"}, "Map_Tile_11_4":{"terrain":"abyss"}, "Map_Tile_7_14":{"terrain":"abyss"}, "Map_Tile_13_16":{"terrain":"abyss"}, "Map_Tile_22_19":{"terrain":"abyss"}, "Map_Tile_8_3":{"terrain":"abyss"}, "Map_Tile_12_11":{"terrain":"abyss"}, "Map_Tile_22_16":{"terrain":"abyss"}, "Map_Tile_11_0":{"terrain":"abyss"}, "Map_Size":{"y":20, "x":30}, "Map_Tile_6_4":{"terrain":"abyss"}, "Map_Tile_14_6":{"terrain":"abyss"}, "Map_Tile_2_2":{"terrain":"abyss"}, "Map_Tile_21_7":{"terrain":"abyss"}, "Map_Tile_4_4":{"terrain":"abyss"}, "Map_Tile_22_15":{"terrain":"abyss"}, "Triggers":[{"isIntro":false, "enabled":true, "conditions":{}, "recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"AP: Export", "actions":[{"enabled":true, "id":"ap_export", "parameters":["926328", "Ancient Discoveries", "Fly Sniper", "Spawn 3 enemy strongholds.", "Kill an enemy stronghold with a golem.", "", "Win by eliminating an enemy stronghold."]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_presence", "parameters":["current", "0", "0", "*unit_structure", "-1"]}], "recurring":"oncePerPlayer", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"$trigger_default_defeat_no_units", "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_lost", "parameters":["*commander", "current", "-1"]}], "recurring":"oncePerPlayer", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Defeat (Lost Commander)", "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_lost", "parameters":["hq", "current", "-1"]}], "recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "id":"$trigger_default_defeat_hq", "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"number_of_opponents", "parameters":["current", "0", "0"]}], "recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "id":"$trigger_default_victory", "actions":[{"enabled":true, "id":"victory", "parameters":["current"]}]}, {"isIntro":false, "enabled":true, "conditions":{}, "recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Generate Map", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["0", "-5", "0", "0", "0", "50", "0", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "2", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "2", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "2", "P1", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "1"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 1", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["1", "-7", "0", "0", "0", "95", "0", "0", "5"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "1", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "1", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["dog", "1", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "3"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 2", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["3", "-7", "0", "0", "0", "95", "0", "0", "5"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "3", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "3", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "4"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 3", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["4", "-7", "0", "0", "0", "0", "95", "5", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "4", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["mage", "4", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "5"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 4", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["5", "-7", "0", "0", "0", "50", "50", "5", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "5", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["griffin_walking", "5", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["soldier", "5", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "6"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 5", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["6", "-7", "0", "50", "5", "0", "0", "0", "5"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "6", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["caravel", "6", "P2", "1", "1", "3", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["dog", "6", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["mage", "6", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "7"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 6", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["7", "-7", "0", "0", "0", "20", "40", "40", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "7", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["archer", "7", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "7", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "8"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 7", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["8", "-7", "0", "0", "0", "60", "40", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "8", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["city", "8", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["soldier", "8", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "9"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 8", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["9", "-10", "0", "50", "0", "0", "0", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["knight", "9", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["fortified_city", "9", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["griffin_walking", "9", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "10"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 9", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["10", "-13", "0", "0", "50", "10", "0", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "10", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["merman", "10", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["port", "10", "P1", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "11"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 10", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["11", "-13", "0", "0", "0", "50", "0", "5", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "11", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "11", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "11", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "12"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 11", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["12", "-10", "0", "0", "0", "5", "10", "5", "80"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "12", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "12", "P2", "1", "1", "2", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "13"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 12", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["13", "-13", "0", "0", "0", "60", "10", "5", "5"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "13", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["knight", "13", "P2", "1", "1", "3", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "14"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 13", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["14", "-13", "0", "50", "5", "20", "0", "0", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "14", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["mage", "14", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["giant", "14", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_turn", "parameters":["current"]}, {"enabled":true, "id":"unit_presence", "parameters":["current", "1", "0", "*unit_structure", "15"]}, {"enabled":true, "id":"end_of_unit_turn", "parameters":{}}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"Challenge 14", "actions":[{"enabled":true, "id":"map_randomize", "parameters":["15", "-13", "0", "0", "0", "50", "20", "0", "10"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "15", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["soldier", "15", "P2", "1", "1", "5", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["dog", "15", "P2", "1", "1", "3", "1", "undefined", "centre"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"player_victorious", "parameters":["current"]}], "recurring":"end_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"P1 Victorious (253045)", "actions":[{"enabled":true, "id":"ap_location_send", "parameters":["253045"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_presence", "parameters":["current", "2", "2", "hq", "-1"]}], "recurring":"once", "players":[0, 1, 0, 0, 0, 0, 0, 0], "id":"Spawn 3 Enemy Strongholds (253046)", "actions":[{"enabled":true, "id":"ap_location_send", "parameters":["253046"]}]}, {"isIntro":false, "enabled":true, "conditions":[{"enabled":true, "id":"unit_killed", "parameters":["giant", "P1", "hq", "P2", "-1"]}], "recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "id":"P1 Giant kills stronghold (253047)", "actions":[{"enabled":true, "id":"ap_location_send", "parameters":["253047"]}]}], "Map_Tile_27_9":{"terrain":"abyss"}, "Map_Tile_25_6":{"terrain":"abyss"}, "Map_Tile_0_7":{"terrain":"abyss"}, "Map_Tile_22_7":{"terrain":"abyss"}, "Map_Tile_10_7":{"terrain":"abyss"}, "Map_Tile_9_1":{"terrain":"abyss"}, "Map_Tile_13_3":{"terrain":"abyss"}, "Map_Tile_22_4":{"terrain":"abyss"}, "Map_Tile_6_17":{"terrain":"abyss"}, "Map_Tile_22_2":{"terrain":"abyss"}, "Map_Tile_1_17":{"terrain":"abyss"}, "Map_Tile_17_10":{"terrain":"abyss"}, "Map_Tile_23_17":{"terrain":"abyss"}, "Map_Tile_15_0":{"terrain":"abyss"}, "Map_Tile_23_2":{"terrain":"abyss"}, "Map_Tile_26_13":{"terrain":"abyss"}, "Map_Tile_8_5":{"terrain":"abyss"}, "Map_Tile_9_9":{"terrain":"abyss"}, "Map_Tile_21_19":{"terrain":"abyss"}, "Map_Tile_5_9":{"terrain":"abyss"}, "Map_Tile_4_10":{"terrain":"abyss"}, "Map_Tile_12_12":{"terrain":"abyss"}, "Map_Tile_21_17":{"terrain":"abyss"}, "Map_Tile_21_16":{"terrain":"abyss"}, "Map_Tile_23_5":{"terrain":"abyss"}, "Map_Tile_21_13":{"terrain":"abyss"}, "Map_Tile_18_19":{"terrain":"abyss"}, "Map_Tile_6_5":{"terrain":"abyss"}, "Map_Tile_21_10":{"terrain":"abyss"}, "Map_Tile_21_9":{"terrain":"abyss"}, "Map_Tile_21_8":{"terrain":"abyss"}, "Map_Tile_20_19":{"terrain":"abyss"}, "Map_Tile_2_6":{"terrain":"abyss"}, "Map_Tile_18_1":{"terrain":"abyss"}, "Map_Tile_18_8":{"terrain":"abyss"}, "Map_Tile_20_12":{"terrain":"abyss"}, "Map_Tile_8_0":{"terrain":"abyss"}, "Map_Tile_20_18":{"terrain":"abyss"}, "Map_Tile_3_6":{"terrain":"abyss"}, "Map_Tile_20_14":{"terrain":"abyss"}, "Map_Tile_12_2":{"terrain":"abyss"}, "Map_Tile_26_18":{"terrain":"abyss"}, "Map_Tile_8_15":{"terrain":"abyss"}, "Map_Tile_3_11":{"terrain":"abyss"}, "Map_Tile_20_9":{"terrain":"abyss"}, "Map_Tile_3_13":{"terrain":"abyss"}, "Map_Tile_20_6":{"terrain":"abyss"}, "Map_Tile_20_5":{"terrain":"abyss"}, "Map_Tile_11_12":{"terrain":"abyss"}, "Map_Tile_15_17":{"terrain":"abyss"}, "Map_Tile_3_19":{"terrain":"abyss"}, "Map_Tile_0_2":{"terrain":"abyss"}, "Map_Tile_20_2":{"terrain":"abyss"}, "Map_Tile_8_7":{"terrain":"abyss"}, "Map_Tile_11_13":{"terrain":"abyss"}, "Map_Tile_10_5":{"terrain":"abyss"}, "Map_Tile_6_11":{"terrain":"abyss"}, "Map_Tile_12_8":{"terrain":"abyss"}, "Map_Tile_3_18":{"terrain":"abyss"}, "Map_Tile_20_1":{"terrain":"abyss"}, "Map_Tile_0_18":{"terrain":"abyss"}, "Map_Tile_18_17":{"terrain":"abyss"}, "Map_Tile_10_9":{"terrain":"abyss"}, "Map_Tile_13_17":{"terrain":"abyss"}, "Map_Tile_19_15":{"terrain":"abyss"}, "Map_Tile_7_2":{"terrain":"abyss"}, "Map_Tile_9_6":{"terrain":"abyss"}, "Map_Tile_19_8":{"terrain":"abyss"}, "Map_Tile_14_0":{"terrain":"abyss"}, "Map_Tile_19_5":{"terrain":"abyss"}, "Map_Tile_18_3":{"terrain":"abyss"}, "Map_Tile_4_19":{"terrain":"abyss"}, "Map_Tile_26_1":{"terrain":"abyss"}, "Map_Tile_5_3":{"terrain":"abyss"}, "Map_Tile_18_13":{"terrain":"abyss"}, "Map_Tile_8_12":{"terrain":"abyss"}, "Map_Tile_17_18":{"terrain":"abyss"}, "Player_Count":2, "Map_Tile_15_5":{"terrain":"abyss"}, "Map_Tile_17_16":{"terrain":"abyss"}, "Map_Tile_4_5":{"terrain":"abyss"}, "Map_Tile_17_15":{"terrain":"abyss"}, "Map_Tile_19_12":{"terrain":"abyss"}, "Map_Tile_0_11":{"terrain":"abyss"}, "Map_Tile_7_13":{"terrain":"abyss"}, "Map_Tile_14_4":{"terrain":"abyss"}, "Map_Tile_0_19":{"terrain":"abyss"}, "Map_Tile_1_12":{"terrain":"abyss"}, "Map_Tile_0_3":{"terrain":"abyss"}, "Map_Tile_7_4":{"terrain":"abyss"}, "Map_Tile_15_4":{"terrain":"abyss"}, "Map_Tile_5_8":{"terrain":"abyss"}, "Map_Tile_14_14":{"terrain":"abyss"}, "Map_Tile_23_19":{"terrain":"abyss"}, "Map_Tile_13_12":{"terrain":"abyss"}, "Map_Tile_24_10":{"terrain":"abyss"}, "Map_Tile_9_2":{"terrain":"abyss"}, "Map_Tile_12_6":{"terrain":"abyss"}, "Map_Tile_4_7":{"terrain":"abyss"}, "Map_Tile_0_0":{"terrain":"abyss"}, "Map_Tile_0_16":{"terrain":"abyss"}, "Map_Tile_25_3":{"terrain":"abyss"}, "Map_Tile_22_3":{"terrain":"abyss"}, "Map_Tile_12_0":{"terrain":"abyss"}, "Map_Tile_11_16":{"terrain":"abyss"}, "Map_Tile_2_15":{"terrain":"abyss"}, "Map_Tile_3_12":{"terrain":"abyss"}, "Map_Tile_12_17":{"terrain":"abyss"}} \ No newline at end of file +{"Map_Tile_14_18":{"terrain":"abyss"}, "Map_Tile_16_9":{"terrain":"plains"}, "Map_Tile_23_1":{"terrain":"abyss"}, "Map_Tile_11_2":{"terrain":"abyss"}, "Map_Tile_1_6":{"terrain":"abyss"}, "Map_Tile_12_10":{"terrain":"abyss"}, "Map_Tile_0_14":{"terrain":"abyss"}, "Map_Tile_10_10":{"terrain":"abyss"}, "Map_Tile_26_6":{"terrain":"abyss"}, "Map_Tile_23_10":{"terrain":"abyss"}, "Map_Tile_29_4":{"terrain":"abyss"}, "Map_Tile_14_4":{"terrain":"abyss"}, "Map_Tile_15_19":{"terrain":"abyss"}, "Map_Tile_24_9":{"terrain":"abyss"}, "Map_Tile_17_10":{"terrain":"abyss"}, "Map_Tile_20_2":{"terrain":"abyss"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"abyss"}, "Map_Tile_17_6":{"terrain":"abyss"}, "Map_Tile_12_0":{"terrain":"abyss"}, "Map_Tile_16_14":{"terrain":"abyss"}, "Map_Tile_16_10":{"terrain":"plains"}, "Map_Tile_21_19":{"terrain":"abyss"}, "Map_Tile_5_14":{"terrain":"abyss"}, "Map_Tile_4_6":{"terrain":"abyss"}, "Map_Tile_17_5":{"terrain":"abyss"}, "Map_Tile_17_8":{"terrain":"abyss"}, "Map_Tile_27_17":{"terrain":"abyss"}, "Map_Tile_17_18":{"terrain":"abyss"}, "Map_Tile_8_16":{"terrain":"abyss"}, "Map_Tile_15_17":{"terrain":"abyss"}, "Map_Tile_10_17":{"terrain":"abyss"}, "Map_Tile_17_4":{"terrain":"abyss"}, "Map_Tile_8_17":{"terrain":"abyss"}, "Map_Tile_20_1":{"terrain":"abyss"}, "Map_Tile_0_13":{"terrain":"abyss"}, "Map_Tile_12_15":{"terrain":"abyss"}, "Map_Tile_17_13":{"terrain":"abyss"}, "Map_Tile_19_5":{"terrain":"abyss"}, "Map_Tile_3_13":{"terrain":"abyss"}, "Map_Tile_15_4":{"terrain":"abyss"}, "Map_Tile_11_4":{"terrain":"abyss"}, "Map_Tile_12_12":{"terrain":"abyss"}, "Map_Tile_28_13":{"terrain":"abyss"}, "Map_Tile_21_0":{"terrain":"abyss"}, "Map_Tile_6_0":{"terrain":"abyss"}, "Map_Tile_11_3":{"terrain":"abyss"}, "Map_Tile_7_13":{"terrain":"abyss"}, "Map_Tile_22_5":{"terrain":"abyss"}, "Map_Tile_10_8":{"terrain":"abyss"}, "Map_Tile_0_15":{"terrain":"abyss"}, "Map_Tile_27_18":{"terrain":"abyss"}, "Map_Tile_9_8":{"terrain":"abyss"}, "Map_Tile_19_14":{"terrain":"abyss"}, "Map_Tile_16_6":{"terrain":"abyss"}, "Map_Tile_21_8":{"terrain":"abyss"}, "Map_Tile_11_18":{"terrain":"abyss"}, "Map_Tile_27_14":{"terrain":"abyss"}, "Map_Tile_2_0":{"terrain":"abyss"}, "Map_Tile_3_11":{"terrain":"abyss"}, "Map_Tile_3_19":{"terrain":"abyss"}, "Map_Tile_25_7":{"terrain":"abyss"}, "Map_Tile_8_5":{"terrain":"abyss"}, "Map_Tile_19_18":{"terrain":"abyss"}, "Map_Tile_5_15":{"terrain":"abyss"}, "Map_Tile_16_7":{"terrain":"abyss"}, "Triggers":[{"recurring":"start_of_match", "id":"AP: Export", "actions":[{"parameters":["926328", "Ancient Discoveries", "Fly Sniper", "Spawn 3 enemy strongholds.", "Kill an enemy stronghold with a golem.", "", "Win by eliminating an enemy stronghold."], "id":"ap_export", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":{}, "enabled":true}, {"recurring":"oncePerPlayer", "id":"$trigger_default_defeat_no_units", "actions":[{"parameters":["current"], "id":"eliminate", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current", "0", "0", "*unit_structure", "-1"], "id":"unit_presence", "enabled":true}], "enabled":true}, {"recurring":"oncePerPlayer", "id":"Defeat (Lost Commander)", "actions":[{"parameters":["current"], "id":"eliminate", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["*commander", "current", "-1"], "id":"unit_lost", "enabled":true}], "enabled":true}, {"recurring":"oncePerPlayer", "id":"$trigger_default_defeat_hq", "actions":[{"parameters":["current"], "id":"eliminate", "enabled":true}], "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["hq", "current", "-1"], "id":"unit_lost", "enabled":true}], "enabled":true}, {"recurring":"oncePerPlayer", "id":"$trigger_default_victory", "actions":[{"parameters":["current"], "id":"victory", "enabled":true}], "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current", "0", "0"], "id":"number_of_opponents", "enabled":true}], "enabled":true}, {"recurring":"start_of_match", "id":"Generate Map", "actions":[{"parameters":["0", "-5", "0", "0", "0", "50", "0", "0", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["barracks", "2", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["hq", "2", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["*commander", "2", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":{}, "enabled":true}, {"recurring":"once", "id":"Challenge 1", "actions":[{"parameters":["1", "-7", "0", "0", "0", "95", "0", "0", "5"], "id":"map_randomize", "enabled":true}, {"parameters":["barracks", "1", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["city", "1", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["dog", "1", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "1"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 2", "actions":[{"parameters":["3", "-7", "0", "0", "0", "95", "0", "0", "5"], "id":"map_randomize", "enabled":true}, {"parameters":["*commander", "3", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["city", "3", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "3"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 3", "actions":[{"parameters":["4", "-7", "0", "0", "0", "0", "95", "5", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["city", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["mage", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "4"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 4", "actions":[{"parameters":["5", "-7", "0", "0", "0", "50", "50", "5", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["city", "5", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["griffin_walking", "5", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["soldier", "5", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "5"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 5", "actions":[{"parameters":["6", "-7", "0", "50", "5", "0", "0", "0", "5"], "id":"map_randomize", "enabled":true}, {"parameters":["city", "6", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["caravel", "6", "P2", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["dog", "6", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["mage", "6", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "6"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 6", "actions":[{"parameters":["7", "-7", "0", "0", "0", "20", "40", "40", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["*commander", "7", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["archer", "7", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["city", "7", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "7"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 7", "actions":[{"parameters":["8", "-7", "0", "0", "0", "60", "40", "0", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["barracks", "8", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["city", "8", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["soldier", "8", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "8"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 8", "actions":[{"parameters":["9", "-10", "0", "50", "0", "0", "0", "0", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["knight", "9", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["fortified_city", "9", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["griffin_walking", "9", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "9"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 9", "actions":[{"parameters":["10", "-13", "0", "0", "50", "10", "0", "0", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["hq", "10", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["merman", "10", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["port", "10", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "10"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 10", "actions":[{"parameters":["11", "-13", "0", "0", "0", "50", "0", "5", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["hq", "11", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["*commander", "11", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["barracks", "11", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "11"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 11", "actions":[{"parameters":["12", "-10", "0", "0", "0", "5", "10", "5", "80"], "id":"map_randomize", "enabled":true}, {"parameters":["hq", "12", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["*commander", "12", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["port", "12", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["river_city", "12", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "12"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 12", "actions":[{"parameters":["13", "-13", "0", "0", "0", "60", "10", "5", "5"], "id":"map_randomize", "enabled":true}, {"parameters":["hq", "13", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["knight", "13", "P2", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "13"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 13", "actions":[{"parameters":["14", "-13", "0", "50", "5", "20", "0", "0", "0"], "id":"map_randomize", "enabled":true}, {"parameters":["hq", "14", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["mage", "14", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["giant", "14", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "14"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Challenge 14", "actions":[{"parameters":["15", "-13", "0", "0", "0", "50", "20", "0", "10"], "id":"map_randomize", "enabled":true}, {"parameters":["hq", "15", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["soldier", "15", "P2", "1", "1", "5", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}, {"parameters":["dog", "15", "P2", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_turn", "enabled":true}, {"parameters":["current", "1", "0", "*unit_structure", "15"], "id":"unit_presence", "enabled":true}, {"parameters":{}, "id":"end_of_unit_turn", "enabled":true}], "enabled":true}, {"recurring":"end_of_match", "id":"P1 Victorious (253045)", "actions":[{"parameters":["253045"], "id":"ap_location_send", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current"], "id":"player_victorious", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"Spawn 3 Enemy Strongholds (253046)", "actions":[{"parameters":["253046"], "id":"ap_location_send", "enabled":true}], "isIntro":false, "players":[0, 1, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["current", "2", "2", "hq", "-1"], "id":"unit_presence", "enabled":true}], "enabled":true}, {"recurring":"once", "id":"P1 Giant kills stronghold (253047)", "actions":[{"parameters":["253047"], "id":"ap_location_send", "enabled":true}], "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "conditions":[{"parameters":["giant", "P1", "hq", "P2", "-1"], "id":"unit_killed", "enabled":true}], "enabled":true}], "Map_Tile_19_12":{"terrain":"abyss"}, "Map_Tile_6_16":{"terrain":"abyss"}, "Map_Tile_8_2":{"terrain":"abyss"}, "Map_Tile_20_17":{"terrain":"abyss"}, "Map_Tile_28_4":{"terrain":"abyss"}, "Map_Tile_13_2":{"terrain":"abyss"}, "Map_Tile_1_12":{"terrain":"abyss"}, "Map_Tile_4_14":{"terrain":"abyss"}, "Map_Tile_1_1":{"terrain":"abyss"}, "Map_Tile_1_9":{"terrain":"abyss"}, "Map_Tile_24_12":{"terrain":"abyss"}, "Map_Tile_16_3":{"terrain":"abyss"}, "Map_Tile_13_13":{"terrain":"abyss"}, "Map_Tile_18_9":{"terrain":"abyss"}, "Map_Tile_25_10":{"terrain":"abyss"}, "Map_Tile_7_11":{"terrain":"abyss"}, "Map_Tile_11_13":{"terrain":"abyss"}, "Map_Tile_11_15":{"terrain":"abyss"}, "Map_Tile_7_12":{"terrain":"abyss"}, "Map_Tile_6_1":{"terrain":"abyss"}, "Map_Tile_13_15":{"terrain":"abyss"}, "Map_Tile_17_0":{"terrain":"abyss"}, "Map_Tile_14_13":{"terrain":"abyss"}, "Map_Tile_6_7":{"terrain":"abyss"}, "Map_Tile_27_7":{"terrain":"abyss"}, "Map_Tile_0_18":{"terrain":"abyss"}, "Map_Tile_11_14":{"terrain":"abyss"}, "Map_Tile_7_2":{"terrain":"abyss"}, "Map_Tile_18_1":{"terrain":"abyss"}, "Map_Tile_6_9":{"terrain":"abyss"}, "Map_Tile_2_5":{"terrain":"abyss"}, "Map_Tile_4_7":{"terrain":"abyss"}, "Map_Tile_20_8":{"terrain":"abyss"}, "Map_Tile_26_17":{"terrain":"abyss"}, "Map_Tile_9_4":{"terrain":"abyss"}, "Map_Tile_5_0":{"terrain":"abyss"}, "Map_Tile_14_0":{"terrain":"abyss"}, "Map_Tile_25_4":{"terrain":"abyss"}, "Map_Tile_22_8":{"terrain":"abyss"}, "Locations":{"1":{"centre":{"y":10, "x":19}, "id":1, "positions":[{"y":8, "x":16}, {"y":9, "x":16}, {"y":10, "x":16}, {"y":11, "x":16}, {"y":11, "x":17}, {"y":11, "x":18}, {"y":11, "x":19}, {"y":11, "x":20}, {"y":11, "x":21}, {"y":10, "x":21}, {"y":9, "x":21}, {"y":8, "x":21}, {"y":8, "x":20}, {"y":8, "x":19}, {"y":8, "x":18}, {"y":8, "x":17}, {"y":9, "x":17}, {"y":10, "x":17}, {"y":10, "x":18}, {"y":9, "x":18}, {"y":9, "x":19}, {"y":9, "x":20}, {"y":10, "x":20}, {"y":10, "x":19}, {"y":7, "x":18}, {"y":7, "x":19}, {"y":7, "x":20}, {"y":7, "x":21}, {"y":12, "x":21}, {"y":12, "x":20}, {"y":12, "x":19}, {"y":12, "x":18}, {"y":12, "x":17}, {"y":7, "x":17}], "interactable":false, "getArea":null, "name":"Challenge 1", "setArea":null}, "2":{"centre":{"y":10, "x":15}, "id":2, "positions":[{"y":10, "x":15}, {"y":10, "x":14}, {"y":9, "x":14}, {"y":9, "x":15}], "interactable":false, "getArea":null, "name":"Spawn", "setArea":null}, "3":{"centre":{"y":13, "x":15}, "id":3, "positions":[{"y":12, "x":12}, {"y":12, "x":13}, {"y":12, "x":14}, {"y":12, "x":15}, {"y":12, "x":16}, {"y":12, "x":17}, {"y":13, "x":17}, {"y":14, "x":17}, {"y":15, "x":17}, {"y":15, "x":16}, {"y":15, "x":15}, {"y":15, "x":14}, {"y":15, "x":13}, {"y":15, "x":12}, {"y":14, "x":12}, {"y":13, "x":12}, {"y":13, "x":13}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":13, "x":16}, {"y":14, "x":16}, {"y":14, "x":15}, {"y":14, "x":14}, {"y":14, "x":13}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}, {"y":11, "x":13}], "interactable":false, "getArea":null, "name":"Challenge 2", "setArea":null}, "4":{"centre":{"y":9, "x":10}, "id":4, "positions":[{"y":11, "x":12}, {"y":10, "x":12}, {"y":9, "x":12}, {"y":8, "x":12}, {"y":8, "x":11}, {"y":9, "x":11}, {"y":10, "x":11}, {"y":11, "x":11}, {"y":12, "x":11}, {"y":7, "x":11}, {"y":7, "x":10}, {"y":7, "x":9}, {"y":7, "x":8}, {"y":8, "x":8}, {"y":9, "x":8}, {"y":10, "x":8}, {"y":11, "x":8}, {"y":12, "x":8}, {"y":12, "x":9}, {"y":12, "x":10}, {"y":11, "x":10}, {"y":10, "x":10}, {"y":9, "x":10}, {"y":8, "x":10}, {"y":8, "x":9}, {"y":9, "x":9}, {"y":10, "x":9}, {"y":11, "x":9}, {"y":8, "x":13}, {"y":9, "x":13}, {"y":10, "x":13}, {"y":11, "x":13}, {"y":7, "x":12}, {"y":12, "x":12}], "interactable":false, "getArea":null, "name":"Challenge 3", "setArea":null}, "5":{"centre":{"y":6, "x":15}, "id":5, "positions":[{"y":8, "x":16}, {"y":8, "x":15}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":7, "x":13}, {"y":7, "x":12}, {"y":7, "x":14}, {"y":7, "x":15}, {"y":7, "x":16}, {"y":7, "x":17}, {"y":6, "x":17}, {"y":6, "x":16}, {"y":6, "x":15}, {"y":6, "x":14}, {"y":6, "x":13}, {"y":6, "x":12}, {"y":5, "x":17}, {"y":5, "x":12}, {"y":5, "x":13}, {"y":5, "x":14}, {"y":5, "x":15}, {"y":5, "x":16}, {"y":4, "x":17}, {"y":4, "x":16}, {"y":4, "x":15}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":4, "x":12}], "interactable":false, "getArea":null, "name":"Challenge 4", "setArea":null}, "6":{"centre":{"y":14, "x":20}, "id":6, "positions":[{"y":13, "x":17}, {"y":12, "x":18}, {"y":14, "x":17}, {"y":15, "x":17}, {"y":15, "x":18}, {"y":14, "x":18}, {"y":13, "x":18}, {"y":13, "x":19}, {"y":12, "x":19}, {"y":12, "x":20}, {"y":12, "x":21}, {"y":12, "x":22}, {"y":12, "x":23}, {"y":13, "x":23}, {"y":14, "x":23}, {"y":14, "x":22}, {"y":15, "x":22}, {"y":15, "x":21}, {"y":15, "x":20}, {"y":15, "x":19}, {"y":14, "x":19}, {"y":13, "x":20}, {"y":13, "x":21}, {"y":13, "x":22}, {"y":14, "x":21}, {"y":14, "x":20}, {"y":15, "x":23}], "interactable":false, "getArea":null, "name":"Challenge 5", "setArea":null}, "7":{"centre":{"y":14, "x":9}, "id":7, "positions":[{"y":13, "x":12}, {"y":13, "x":11}, {"y":12, "x":11}, {"y":14, "x":11}, {"y":14, "x":12}, {"y":14, "x":10}, {"y":13, "x":10}, {"y":12, "x":10}, {"y":15, "x":11}, {"y":15, "x":12}, {"y":15, "x":10}, {"y":15, "x":9}, {"y":14, "x":9}, {"y":13, "x":9}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":13, "x":8}, {"y":14, "x":8}, {"y":15, "x":8}, {"y":12, "x":7}, {"y":13, "x":7}, {"y":14, "x":7}, {"y":15, "x":7}, {"y":12, "x":6}, {"y":13, "x":6}, {"y":14, "x":6}, {"y":15, "x":6}], "interactable":false, "getArea":null, "name":"Challenge 6", "setArea":null}, "8":{"centre":{"y":5, "x":9}, "id":8, "positions":[{"y":7, "x":11}, {"y":6, "x":12}, {"y":6, "x":11}, {"y":6, "x":10}, {"y":6, "x":9}, {"y":6, "x":8}, {"y":6, "x":7}, {"y":6, "x":6}, {"y":5, "x":6}, {"y":4, "x":6}, {"y":5, "x":11}, {"y":4, "x":11}, {"y":4, "x":10}, {"y":4, "x":9}, {"y":4, "x":8}, {"y":4, "x":7}, {"y":5, "x":7}, {"y":5, "x":8}, {"y":5, "x":9}, {"y":5, "x":10}, {"y":5, "x":12}, {"y":4, "x":12}, {"y":7, "x":10}, {"y":7, "x":9}, {"y":7, "x":8}, {"y":7, "x":7}], "interactable":false, "getArea":null, "name":"Challenge 7", "setArea":null}, "9":{"centre":{"y":5, "x":20}, "id":9, "positions":[{"y":6, "x":17}, {"y":7, "x":18}, {"y":6, "x":18}, {"y":5, "x":18}, {"y":4, "x":18}, {"y":5, "x":19}, {"y":6, "x":19}, {"y":6, "x":20}, {"y":6, "x":21}, {"y":6, "x":22}, {"y":6, "x":23}, {"y":5, "x":23}, {"y":5, "x":22}, {"y":5, "x":21}, {"y":5, "x":20}, {"y":4, "x":19}, {"y":4, "x":20}, {"y":4, "x":21}, {"y":4, "x":22}, {"y":4, "x":23}, {"y":4, "x":17}, {"y":5, "x":17}, {"y":7, "x":19}, {"y":7, "x":20}, {"y":7, "x":21}, {"y":7, "x":22}], "interactable":false, "getArea":null, "name":"Challenge 8", "setArea":null}, "10":{"centre":{"y":9, "x":4}, "id":10, "positions":[{"y":7, "x":8}, {"y":8, "x":8}, {"y":9, "x":8}, {"y":10, "x":8}, {"y":11, "x":8}, {"y":12, "x":7}, {"y":12, "x":6}, {"y":12, "x":5}, {"y":12, "x":4}, {"y":12, "x":3}, {"y":12, "x":2}, {"y":12, "x":1}, {"y":12, "x":0}, {"y":11, "x":0}, {"y":10, "x":0}, {"y":9, "x":0}, {"y":8, "x":0}, {"y":7, "x":0}, {"y":6, "x":0}, {"y":6, "x":1}, {"y":6, "x":2}, {"y":6, "x":3}, {"y":6, "x":4}, {"y":6, "x":5}, {"y":6, "x":6}, {"y":6, "x":7}, {"y":7, "x":7}, {"y":8, "x":7}, {"y":9, "x":7}, {"y":10, "x":7}, {"y":11, "x":7}, {"y":11, "x":6}, {"y":11, "x":5}, {"y":11, "x":4}, {"y":11, "x":3}, {"y":11, "x":2}, {"y":11, "x":1}, {"y":10, "x":1}, {"y":9, "x":1}, {"y":8, "x":1}, {"y":7, "x":1}, {"y":7, "x":2}, {"y":7, "x":3}, {"y":7, "x":4}, {"y":7, "x":5}, {"y":7, "x":6}, {"y":8, "x":6}, {"y":9, "x":6}, {"y":10, "x":6}, {"y":10, "x":5}, {"y":10, "x":4}, {"y":10, "x":3}, {"y":10, "x":2}, {"y":9, "x":2}, {"y":8, "x":2}, {"y":8, "x":3}, {"y":8, "x":4}, {"y":8, "x":5}, {"y":9, "x":5}, {"y":9, "x":4}, {"y":9, "x":3}, {"y":5, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":5, "x":2}, {"y":5, "x":1}, {"y":5, "x":0}, {"y":13, "x":5}, {"y":13, "x":4}, {"y":13, "x":3}, {"y":13, "x":2}, {"y":13, "x":1}, {"y":13, "x":0}, {"y":13, "x":6}, {"y":5, "x":6}], "interactable":false, "getArea":null, "name":"Challenge 9", "setArea":null}, "11":{"centre":{"y":2, "x":7}, "id":11, "positions":[{"y":4, "x":6}, {"y":4, "x":7}, {"y":4, "x":8}, {"y":4, "x":9}, {"y":4, "x":10}, {"y":4, "x":11}, {"y":4, "x":12}, {"y":4, "x":13}, {"y":4, "x":14}, {"y":1, "x":14}, {"y":0, "x":14}, {"y":0, "x":13}, {"y":0, "x":12}, {"y":0, "x":11}, {"y":0, "x":10}, {"y":0, "x":9}, {"y":0, "x":8}, {"y":0, "x":7}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":2, "x":6}, {"y":3, "x":6}, {"y":3, "x":7}, {"y":3, "x":8}, {"y":3, "x":9}, {"y":3, "x":10}, {"y":3, "x":11}, {"y":3, "x":12}, {"y":3, "x":13}, {"y":2, "x":13}, {"y":1, "x":13}, {"y":1, "x":12}, {"y":1, "x":11}, {"y":1, "x":10}, {"y":1, "x":9}, {"y":1, "x":8}, {"y":1, "x":7}, {"y":2, "x":7}, {"y":2, "x":8}, {"y":2, "x":9}, {"y":2, "x":10}, {"y":2, "x":11}, {"y":2, "x":12}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":5}, {"y":4, "x":4}, {"y":4, "x":3}, {"y":4, "x":2}, {"y":4, "x":1}, {"y":4, "x":0}, {"y":3, "x":0}, {"y":2, "x":0}, {"y":1, "x":0}, {"y":0, "x":0}, {"y":0, "x":1}, {"y":0, "x":2}, {"y":0, "x":3}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":1, "x":5}, {"y":2, "x":5}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":2}, {"y":3, "x":1}, {"y":2, "x":1}, {"y":1, "x":1}, {"y":1, "x":2}, {"y":1, "x":3}, {"y":1, "x":4}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":2, "x":2}, {"y":5, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":5, "x":2}, {"y":5, "x":1}, {"y":5, "x":0}], "interactable":false, "getArea":null, "name":"Challenge 10", "setArea":null}, "12":{"centre":{"y":2, "x":22}, "id":12, "positions":[{"y":4, "x":15}, {"y":3, "x":15}, {"y":2, "x":15}, {"y":1, "x":15}, {"y":0, "x":15}, {"y":0, "x":14}, {"y":1, "x":14}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":16}, {"y":4, "x":17}, {"y":4, "x":18}, {"y":4, "x":19}, {"y":4, "x":20}, {"y":4, "x":21}, {"y":4, "x":22}, {"y":4, "x":23}, {"y":4, "x":24}, {"y":4, "x":25}, {"y":4, "x":26}, {"y":4, "x":27}, {"y":4, "x":28}, {"y":4, "x":29}, {"y":5, "x":24}, {"y":5, "x":25}, {"y":5, "x":26}, {"y":5, "x":27}, {"y":5, "x":28}, {"y":5, "x":29}, {"y":3, "x":29}, {"y":3, "x":28}, {"y":3, "x":27}, {"y":3, "x":26}, {"y":3, "x":25}, {"y":3, "x":24}, {"y":3, "x":23}, {"y":3, "x":22}, {"y":3, "x":21}, {"y":3, "x":20}, {"y":3, "x":19}, {"y":3, "x":18}, {"y":3, "x":17}, {"y":3, "x":16}, {"y":2, "x":16}, {"y":1, "x":16}, {"y":0, "x":16}, {"y":0, "x":17}, {"y":0, "x":18}, {"y":0, "x":19}, {"y":0, "x":20}, {"y":0, "x":21}, {"y":0, "x":22}, {"y":0, "x":23}, {"y":0, "x":24}, {"y":0, "x":25}, {"y":0, "x":26}, {"y":0, "x":27}, {"y":0, "x":28}, {"y":0, "x":29}, {"y":2, "x":29}, {"y":2, "x":28}, {"y":2, "x":27}, {"y":2, "x":26}, {"y":2, "x":25}, {"y":2, "x":24}, {"y":2, "x":23}, {"y":2, "x":22}, {"y":2, "x":21}, {"y":2, "x":20}, {"y":2, "x":19}, {"y":2, "x":18}, {"y":2, "x":17}, {"y":1, "x":17}, {"y":1, "x":18}, {"y":1, "x":19}, {"y":1, "x":20}, {"y":1, "x":21}, {"y":1, "x":22}, {"y":1, "x":23}, {"y":1, "x":24}, {"y":1, "x":25}, {"y":1, "x":26}, {"y":1, "x":27}, {"y":1, "x":28}, {"y":1, "x":29}], "interactable":false, "getArea":null, "name":"Challenge 11", "setArea":null}, "13":{"centre":{"y":9, "x":25}, "id":13, "positions":[{"y":7, "x":21}, {"y":8, "x":21}, {"y":9, "x":21}, {"y":10, "x":21}, {"y":11, "x":21}, {"y":12, "x":22}, {"y":6, "x":22}, {"y":5, "x":23}, {"y":5, "x":24}, {"y":5, "x":25}, {"y":5, "x":26}, {"y":5, "x":27}, {"y":5, "x":28}, {"y":5, "x":29}, {"y":13, "x":23}, {"y":13, "x":24}, {"y":13, "x":25}, {"y":13, "x":26}, {"y":13, "x":27}, {"y":13, "x":28}, {"y":13, "x":29}, {"y":12, "x":29}, {"y":12, "x":28}, {"y":12, "x":27}, {"y":12, "x":26}, {"y":12, "x":25}, {"y":12, "x":24}, {"y":12, "x":23}, {"y":11, "x":23}, {"y":11, "x":22}, {"y":10, "x":22}, {"y":9, "x":22}, {"y":8, "x":22}, {"y":7, "x":22}, {"y":6, "x":23}, {"y":7, "x":23}, {"y":8, "x":23}, {"y":9, "x":23}, {"y":10, "x":23}, {"y":10, "x":24}, {"y":9, "x":24}, {"y":8, "x":24}, {"y":7, "x":24}, {"y":7, "x":25}, {"y":6, "x":24}, {"y":11, "x":24}, {"y":10, "x":25}, {"y":9, "x":25}, {"y":8, "x":25}, {"y":6, "x":25}, {"y":11, "x":25}, {"y":8, "x":26}, {"y":9, "x":26}, {"y":10, "x":26}, {"y":11, "x":26}, {"y":7, "x":26}, {"y":6, "x":26}, {"y":8, "x":27}, {"y":9, "x":27}, {"y":10, "x":27}, {"y":10, "x":28}, {"y":9, "x":28}, {"y":8, "x":28}, {"y":7, "x":28}, {"y":6, "x":28}, {"y":11, "x":27}, {"y":7, "x":27}, {"y":6, "x":27}, {"y":11, "x":28}, {"y":11, "x":29}, {"y":10, "x":29}, {"y":9, "x":29}, {"y":8, "x":29}, {"y":7, "x":29}, {"y":6, "x":29}], "interactable":false, "getArea":null, "name":"Challenge 12", "setArea":null}, "14":{"centre":{"y":16, "x":6}, "id":14, "positions":[{"y":15, "x":14}, {"y":16, "x":14}, {"y":17, "x":14}, {"y":18, "x":14}, {"y":19, "x":14}, {"y":15, "x":13}, {"y":15, "x":12}, {"y":15, "x":11}, {"y":15, "x":10}, {"y":15, "x":9}, {"y":15, "x":8}, {"y":15, "x":7}, {"y":15, "x":6}, {"y":15, "x":5}, {"y":15, "x":4}, {"y":15, "x":3}, {"y":15, "x":2}, {"y":15, "x":1}, {"y":15, "x":0}, {"y":14, "x":5}, {"y":13, "x":5}, {"y":13, "x":4}, {"y":13, "x":3}, {"y":13, "x":2}, {"y":13, "x":1}, {"y":13, "x":0}, {"y":14, "x":0}, {"y":14, "x":1}, {"y":14, "x":2}, {"y":14, "x":3}, {"y":14, "x":4}, {"y":14, "x":6}, {"y":16, "x":13}, {"y":16, "x":12}, {"y":16, "x":11}, {"y":16, "x":10}, {"y":16, "x":9}, {"y":16, "x":8}, {"y":16, "x":7}, {"y":16, "x":6}, {"y":16, "x":5}, {"y":16, "x":4}, {"y":16, "x":3}, {"y":16, "x":2}, {"y":16, "x":1}, {"y":16, "x":0}, {"y":17, "x":0}, {"y":18, "x":0}, {"y":19, "x":0}, {"y":19, "x":1}, {"y":19, "x":2}, {"y":19, "x":3}, {"y":19, "x":4}, {"y":19, "x":5}, {"y":19, "x":6}, {"y":19, "x":7}, {"y":19, "x":8}, {"y":19, "x":9}, {"y":19, "x":10}, {"y":19, "x":11}, {"y":19, "x":12}, {"y":19, "x":13}, {"y":18, "x":13}, {"y":17, "x":13}, {"y":17, "x":12}, {"y":17, "x":11}, {"y":17, "x":10}, {"y":17, "x":9}, {"y":17, "x":8}, {"y":17, "x":7}, {"y":17, "x":6}, {"y":17, "x":5}, {"y":17, "x":4}, {"y":17, "x":3}, {"y":17, "x":2}, {"y":17, "x":1}, {"y":18, "x":1}, {"y":18, "x":2}, {"y":18, "x":3}, {"y":18, "x":4}, {"y":18, "x":5}, {"y":18, "x":6}, {"y":18, "x":7}, {"y":18, "x":8}, {"y":18, "x":9}, {"y":18, "x":10}, {"y":18, "x":11}, {"y":18, "x":12}], "interactable":false, "getArea":null, "name":"Challenge 13", "setArea":null}, "15":{"centre":{"y":17, "x":22}, "id":15, "positions":[{"y":15, "x":15}, {"y":16, "x":15}, {"y":16, "x":14}, {"y":17, "x":14}, {"y":18, "x":14}, {"y":19, "x":14}, {"y":19, "x":15}, {"y":18, "x":15}, {"y":17, "x":15}, {"y":16, "x":16}, {"y":16, "x":17}, {"y":16, "x":18}, {"y":16, "x":19}, {"y":16, "x":20}, {"y":16, "x":21}, {"y":16, "x":22}, {"y":16, "x":23}, {"y":16, "x":24}, {"y":16, "x":25}, {"y":16, "x":26}, {"y":16, "x":27}, {"y":16, "x":28}, {"y":16, "x":29}, {"y":17, "x":29}, {"y":18, "x":29}, {"y":19, "x":29}, {"y":19, "x":28}, {"y":19, "x":27}, {"y":19, "x":26}, {"y":19, "x":25}, {"y":19, "x":24}, {"y":19, "x":23}, {"y":19, "x":22}, {"y":19, "x":21}, {"y":19, "x":20}, {"y":19, "x":19}, {"y":19, "x":18}, {"y":19, "x":17}, {"y":19, "x":16}, {"y":18, "x":16}, {"y":17, "x":16}, {"y":17, "x":17}, {"y":17, "x":18}, {"y":17, "x":19}, {"y":17, "x":20}, {"y":17, "x":21}, {"y":17, "x":22}, {"y":17, "x":23}, {"y":17, "x":24}, {"y":17, "x":25}, {"y":17, "x":26}, {"y":17, "x":27}, {"y":17, "x":28}, {"y":18, "x":28}, {"y":18, "x":18}, {"y":18, "x":17}, {"y":18, "x":19}, {"y":18, "x":20}, {"y":18, "x":21}, {"y":18, "x":22}, {"y":18, "x":23}, {"y":18, "x":24}, {"y":18, "x":25}, {"y":18, "x":26}, {"y":18, "x":27}, {"y":15, "x":16}, {"y":15, "x":17}, {"y":15, "x":18}, {"y":15, "x":19}, {"y":15, "x":20}, {"y":15, "x":21}, {"y":15, "x":22}, {"y":15, "x":23}, {"y":15, "x":24}, {"y":15, "x":25}, {"y":15, "x":26}, {"y":15, "x":27}, {"y":15, "x":28}, {"y":15, "x":29}, {"y":14, "x":29}, {"y":14, "x":28}, {"y":14, "x":27}, {"y":14, "x":26}, {"y":14, "x":25}, {"y":14, "x":24}, {"y":14, "x":23}, {"y":13, "x":24}, {"y":13, "x":29}, {"y":13, "x":28}, {"y":13, "x":27}, {"y":13, "x":26}, {"y":13, "x":25}], "interactable":false, "getArea":null, "name":"Challenge 14", "setArea":null}, "0":{"centre":{"y":9, "x":15}, "id":0, "positions":[{"y":8, "x":13}, {"y":8, "x":14}, {"y":8, "x":15}, {"y":8, "x":16}, {"y":9, "x":16}, {"y":10, "x":16}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}, {"y":11, "x":13}, {"y":10, "x":13}, {"y":9, "x":13}], "interactable":false, "getArea":null, "name":"Start", "setArea":null}}, "Map_Tile_10_5":{"terrain":"abyss"}, "Map_Tile_19_3":{"terrain":"abyss"}, "Map_Tile_15_5":{"terrain":"abyss"}, "Map_Tile_1_8":{"terrain":"abyss"}, "Map_Tile_22_10":{"terrain":"abyss"}, "Map_Tile_17_19":{"terrain":"abyss"}, "Map_Tile_19_2":{"terrain":"abyss"}, "Map_Tile_0_7":{"terrain":"abyss"}, "Map_Tile_24_3":{"terrain":"abyss"}, "Map_Tile_16_5":{"terrain":"abyss"}, "Map_Tile_10_19":{"terrain":"abyss"}, "Map_Tile_2_17":{"terrain":"abyss"}, "Map_Tile_11_17":{"terrain":"abyss"}, "Map_Tile_15_13":{"terrain":"abyss"}, "Map_Tile_28_12":{"terrain":"abyss"}, "Map_Tile_18_6":{"terrain":"abyss"}, "Map_Tile_12_17":{"terrain":"abyss"}, "Map_Tile_16_15":{"terrain":"abyss"}, "Map_Tile_1_17":{"terrain":"abyss"}, "Map_Tile_22_16":{"terrain":"abyss"}, "Map_Tile_3_0":{"terrain":"abyss"}, "Map_Tile_11_6":{"terrain":"abyss"}, "Map_Tile_14_3":{"terrain":"abyss"}, "Map_Tile_2_6":{"terrain":"abyss"}, "Map_Tile_5_9":{"terrain":"abyss"}, "Map_Tile_25_17":{"terrain":"abyss"}, "Map_Tile_8_13":{"terrain":"abyss"}, "Map_Tile_19_7":{"terrain":"abyss"}, "Map_Size":{"y":20, "x":30}, "Map_Tile_13_6":{"terrain":"abyss"}, "Map_Tile_6_5":{"terrain":"abyss"}, "Map_Tile_21_9":{"terrain":"abyss"}, "Map_Tile_2_16":{"terrain":"abyss"}, "Map_Tile_22_15":{"terrain":"abyss"}, "Map_Tile_3_18":{"terrain":"abyss"}, "Map_Tile_21_4":{"terrain":"abyss"}, "Map_Tile_10_9":{"terrain":"abyss"}, "Map_Tile_5_6":{"terrain":"abyss"}, "Map_Tile_5_19":{"terrain":"abyss"}, "Map_Tile_27_5":{"terrain":"abyss"}, "Map_Tile_26_8":{"terrain":"abyss"}, "Map_Tile_2_19":{"terrain":"abyss"}, "Map_Tile_0_4":{"terrain":"abyss"}, "Map_Tile_10_13":{"terrain":"abyss"}, "Map_Tile_6_3":{"terrain":"abyss"}, "Map_Tile_26_14":{"terrain":"abyss"}, "Map_Tile_14_12":{"terrain":"abyss"}, "Map_Tile_7_1":{"terrain":"abyss"}, "Objectives":["Spawn 3 enemy strongholds.", "Kill an enemy stronghold with a golem.", "Win by eliminating an enemy stronghold."], "Map_Tile_12_9":{"terrain":"abyss"}, "Counters":{}, "Map_Tile_8_7":{"terrain":"abyss"}, "Map_Tile_3_2":{"terrain":"abyss"}, "Map_Tile_9_14":{"terrain":"abyss"}, "Map_Tile_0_9":{"terrain":"abyss"}, "Map_Tile_11_8":{"terrain":"abyss"}, "Map_Tile_26_11":{"terrain":"abyss"}, "Map_Tile_19_19":{"terrain":"abyss"}, "Map_Tile_11_10":{"terrain":"abyss"}, "Map_Tile_26_3":{"terrain":"abyss"}, "Map_Tile_15_1":{"terrain":"abyss"}, "Map_Tile_9_2":{"terrain":"abyss"}, "Map_Tile_15_6":{"terrain":"abyss"}, "Map_Tile_24_16":{"terrain":"abyss"}, "Map_Tile_13_14":{"terrain":"abyss"}, "Map_Tile_21_5":{"terrain":"abyss"}, "Map_Tile_10_12":{"terrain":"abyss"}, "Map_Tile_2_3":{"terrain":"abyss"}, "Map_Tile_4_8":{"terrain":"abyss"}, "Map_Tile_27_2":{"terrain":"abyss"}, "Map_Tile_7_19":{"terrain":"abyss"}, "Map_Tile_22_9":{"terrain":"abyss"}, "Map_Tile_3_1":{"terrain":"abyss"}, "Map_Tile_10_0":{"terrain":"abyss"}, "Map_Tile_5_2":{"terrain":"abyss"}, "Map_Tile_9_18":{"terrain":"abyss"}, "Map_Tile_6_15":{"terrain":"abyss"}, "Map_Tile_8_1":{"terrain":"abyss"}, "Map_Tile_23_19":{"terrain":"abyss"}, "Map_Tile_3_12":{"terrain":"abyss"}, "Map_Tile_5_10":{"terrain":"abyss"}, "Map_Tile_6_13":{"terrain":"abyss"}, "Map_Tile_0_3":{"terrain":"abyss"}, "Map_Tile_27_1":{"terrain":"abyss"}, "Map_Tile_10_11":{"terrain":"abyss"}, "Map_Tile_5_1":{"terrain":"abyss"}, "Map_Tile_1_7":{"terrain":"abyss"}, "Map_Tile_29_12":{"terrain":"abyss"}, "Map_Tile_2_18":{"terrain":"abyss"}, "Map_Tile_8_4":{"terrain":"abyss"}, "Player_Count":2, "Map_Tile_29_15":{"terrain":"abyss"}, "Map_Tile_9_12":{"terrain":"abyss"}, "Player_1":{"recruit_caravel":true, "recruit_spearman":true, "recruit_archer":true, "recruit_dog":true, "recruit_giant":true, "recruit_soldier":true, "recruit_knight":true, "recruit_wagon":true, "recruit_trebuchet":true, "recruit_dragon":true, "recruit_merman":true, "recruit_travelboat":true, "recruit_harpoonship":true, "recruit_ballista":true, "recruit_harpy":true, "recruit_warship":true, "gold":100, "recruit_balloon":true, "recruit_thief":true, "recruit_rifleman":true, "recruit_kraken":true, "recruit_witch":true, "recruit_turtle":true, "recruit_mage":true, "team":0, "recruit_frog":true, "recruit_griffin_walking":true}, "Map_Tile_21_12":{"terrain":"abyss"}, "Map_Tile_3_3":{"terrain":"abyss"}, "Map_Tile_12_19":{"terrain":"abyss"}, "Map_Tile_9_0":{"terrain":"abyss"}, "Map_Tile_28_8":{"terrain":"abyss"}, "Map_Tile_3_15":{"terrain":"abyss"}, "Map_Tile_8_0":{"terrain":"abyss"}, "Map_Tile_18_2":{"terrain":"abyss"}, "Map_Tile_12_2":{"terrain":"abyss"}, "Map_Tile_5_18":{"terrain":"abyss"}, "Map_Tile_10_2":{"terrain":"abyss"}, "Map_Tile_19_11":{"terrain":"abyss"}, "Map_Tile_8_14":{"terrain":"abyss"}, "Map_Tile_8_12":{"terrain":"abyss"}, "Map_Tile_22_18":{"terrain":"abyss"}, "Map_Tile_2_9":{"terrain":"abyss"}, "Map_Tile_20_18":{"terrain":"abyss"}, "Map_Tile_13_0":{"terrain":"abyss"}, "Map_Tile_1_4":{"terrain":"abyss"}, "Map_Tile_18_0":{"terrain":"abyss"}, "Map_Tile_28_15":{"terrain":"abyss"}, "Map_Tile_12_6":{"terrain":"abyss"}, "Map_Tile_0_8":{"terrain":"abyss"}, "Map_Tile_15_12":{"terrain":"abyss"}, "Map_Tile_19_9":{"terrain":"abyss"}, "Map_Tile_8_8":{"terrain":"abyss"}, "Map_Tile_19_15":{"terrain":"abyss"}, "Map_Tile_24_5":{"terrain":"abyss"}, "Map_Tile_8_9":{"terrain":"abyss"}, "Map_Tile_11_12":{"terrain":"abyss"}, "Map_Tile_14_17":{"terrain":"abyss"}, "Map_Tile_28_10":{"terrain":"abyss"}, "Map_Tile_5_11":{"terrain":"abyss"}, "Map_Tile_12_18":{"terrain":"abyss"}, "Map_Tile_23_5":{"terrain":"abyss"}, "Map_Tile_16_12":{"terrain":"abyss"}, "Map_Tile_5_12":{"terrain":"abyss"}, "Map_Tile_21_6":{"terrain":"abyss"}, "Map_Tile_7_10":{"terrain":"abyss"}, "Map_Tile_8_15":{"terrain":"abyss"}, "Map_Name":"Ancient Discoveries", "Map_Tile_3_5":{"terrain":"abyss"}, "Map_Tile_17_17":{"terrain":"abyss"}, "Map_Tile_13_12":{"terrain":"abyss"}, "Map_Tile_15_14":{"terrain":"abyss"}, "Map_Tile_18_5":{"terrain":"abyss"}, "Map_Tile_27_0":{"terrain":"abyss"}, "Map_Tile_21_2":{"terrain":"abyss"}, "Map_Tile_0_12":{"terrain":"abyss"}, "Map_Tile_16_18":{"terrain":"abyss"}, "Map_Tile_4_13":{"terrain":"abyss"}, "Map_Tile_21_7":{"terrain":"abyss"}, "Map_Tile_20_12":{"terrain":"abyss"}, "Map_Tile_20_3":{"terrain":"abyss"}, "Map_Tile_12_13":{"terrain":"abyss"}, "Map_Tile_7_14":{"terrain":"abyss"}, "Map_Tile_23_16":{"terrain":"abyss"}, "Map_Tile_22_11":{"terrain":"abyss"}, "Map_Tile_13_4":{"terrain":"abyss"}, "Map_Tile_11_19":{"terrain":"abyss"}, "Map_Tile_28_19":{"terrain":"abyss"}, "Map_Tile_24_0":{"terrain":"abyss"}, "Map_Tile_27_10":{"terrain":"abyss"}, "Map_Tile_18_11":{"terrain":"abyss"}, "Map_Tile_23_9":{"terrain":"abyss"}, "Map_Tile_24_14":{"terrain":"abyss"}, "Map_Tile_27_3":{"terrain":"abyss"}, "Map_Tile_20_6":{"terrain":"abyss"}, "Map_Tile_9_7":{"terrain":"abyss"}, "Map_Tile_18_14":{"terrain":"abyss"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_14_1":{"terrain":"abyss"}, "Map_Tile_29_14":{"terrain":"abyss"}, "Map_Tile_12_3":{"terrain":"abyss"}, "Map_Tile_23_8":{"terrain":"abyss"}, "Flags":{}, "Map_Tile_26_13":{"terrain":"abyss"}, "Map_Tile_16_16":{"terrain":"abyss"}, "Map_Tile_26_10":{"terrain":"abyss"}, "Map_Tile_11_11":{"terrain":"abyss"}, "Map_Tile_20_11":{"terrain":"abyss"}, "Map_Tile_15_15":{"terrain":"abyss"}, "Map_Tile_22_12":{"terrain":"abyss"}, "Map_Tile_20_14":{"terrain":"abyss"}, "Map_Tile_3_9":{"terrain":"abyss"}, "Map_Tile_17_9":{"terrain":"abyss"}, "Map_Tile_29_6":{"terrain":"abyss"}, "Map_Tile_13_18":{"terrain":"abyss"}, "Map_Tile_11_16":{"terrain":"abyss"}, "Map_Tile_17_15":{"terrain":"abyss"}, "Map_Tile_16_17":{"terrain":"abyss"}, "Map_Tile_4_18":{"terrain":"abyss"}, "Map_Tile_15_0":{"terrain":"abyss"}, "Map_Tile_9_9":{"terrain":"abyss"}, "Map_Tile_4_9":{"terrain":"abyss"}, "Map_Tile_8_3":{"terrain":"abyss"}, "Map_Tile_16_0":{"terrain":"abyss"}, "Map_Tile_7_9":{"terrain":"abyss"}, "Map_Tile_25_12":{"terrain":"abyss"}, "Map_Tile_11_1":{"terrain":"abyss"}, "Map_Tile_23_15":{"terrain":"abyss"}, "Map_Tile_22_2":{"terrain":"abyss"}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_17_2":{"terrain":"abyss"}, "Map_Tile_23_11":{"terrain":"abyss"}, "Map_Tile_9_11":{"terrain":"abyss"}, "Map_Tile_26_18":{"terrain":"abyss"}, "Map_Tile_21_3":{"terrain":"abyss"}, "Map_Tile_13_16":{"terrain":"abyss"}, "Map_Tile_17_14":{"terrain":"abyss"}, "Map_Tile_4_5":{"terrain":"abyss"}, "Map_Tile_26_15":{"terrain":"abyss"}, "Map_Tile_22_14":{"terrain":"abyss"}, "Map_Tile_10_16":{"terrain":"abyss"}, "Map_Tile_4_12":{"terrain":"abyss"}, "Map_Tile_2_10":{"terrain":"abyss"}, "Map_Tile_11_7":{"terrain":"abyss"}, "Map_Tile_28_14":{"terrain":"abyss"}, "Map_Tile_6_2":{"terrain":"abyss"}, "Map_Tile_6_11":{"terrain":"abyss"}, "Map_Tile_13_17":{"terrain":"abyss"}, "Map_Tile_2_13":{"terrain":"abyss"}, "Map_Tile_16_13":{"terrain":"abyss"}, "Map_Tile_16_19":{"terrain":"abyss"}, "Map_Tile_2_15":{"terrain":"abyss"}, "Map_Tile_13_10":{"terrain":"plains"}, "Author":"Fly Sniper", "Map_Tile_21_16":{"terrain":"abyss"}, "Map_Tile_24_8":{"terrain":"abyss"}, "Map_Tile_19_16":{"terrain":"abyss"}, "Map_Tile_27_15":{"terrain":"abyss"}, "Map_Tile_7_18":{"terrain":"abyss"}, "Map_Tile_20_5":{"terrain":"abyss"}, "Map_Tile_29_16":{"terrain":"abyss"}, "Map_Tile_10_15":{"terrain":"abyss"}, "Map_Tile_29_13":{"terrain":"abyss"}, "Map_Tile_29_11":{"terrain":"abyss"}, "Map_Tile_29_17":{"terrain":"abyss"}, "Map_Tile_27_8":{"terrain":"abyss"}, "Map_Tile_29_9":{"terrain":"abyss"}, "Map_Tile_21_10":{"terrain":"abyss"}, "Map_Tile_29_8":{"terrain":"abyss"}, "Map_Tile_2_8":{"terrain":"abyss"}, "Map_Tile_18_10":{"terrain":"abyss"}, "Map_Tile_29_7":{"terrain":"abyss"}, "Map_Tile_21_14":{"terrain":"abyss"}, "Map_Tile_5_5":{"terrain":"abyss"}, "Map_Tile_22_0":{"terrain":"abyss"}, "Map_Tile_29_2":{"terrain":"abyss"}, "Map_Tile_18_3":{"terrain":"abyss"}, "Map_Tile_17_12":{"terrain":"abyss"}, "Map_Tile_24_1":{"terrain":"abyss"}, "Map_Tile_29_0":{"terrain":"abyss"}, "Map_Tile_28_18":{"terrain":"abyss"}, "Map_Tile_28_17":{"terrain":"abyss"}, "Map_Tile_4_11":{"terrain":"abyss"}, "Map_Tile_1_5":{"terrain":"abyss"}, "Map_Tile_3_4":{"terrain":"abyss"}, "Map_Tile_21_15":{"terrain":"abyss"}, "Map_Tile_21_17":{"terrain":"abyss"}, "Map_Tile_8_6":{"terrain":"abyss"}, "Map_Tile_0_0":{"terrain":"abyss"}, "Map_Tile_24_18":{"terrain":"abyss"}, "Map_Tile_25_19":{"terrain":"abyss"}, "Map_Tile_23_18":{"terrain":"abyss"}, "Map_Tile_28_9":{"terrain":"abyss"}, "Map_Tile_15_18":{"terrain":"abyss"}, "Map_Tile_28_7":{"terrain":"abyss"}, "Map_Tile_18_8":{"terrain":"abyss"}, "Map_Tile_28_6":{"terrain":"abyss"}, "Map_Tile_1_11":{"terrain":"abyss"}, "Map_Tile_13_8":{"terrain":"plains"}, "Map_Tile_4_19":{"terrain":"abyss"}, "Map_Tile_28_5":{"terrain":"abyss"}, "Map_Tile_23_2":{"terrain":"abyss"}, "Map_Tile_28_3":{"terrain":"abyss"}, "Map_Tile_12_7":{"terrain":"abyss"}, "Map_Tile_28_2":{"terrain":"abyss"}, "Map_Tile_28_1":{"terrain":"abyss"}, "Map_Tile_7_3":{"terrain":"abyss"}, "Map_Tile_28_0":{"terrain":"abyss"}, "Map_Tile_9_16":{"terrain":"abyss"}, "Map_Tile_27_16":{"terrain":"abyss"}, "Map_Tile_29_18":{"terrain":"abyss"}, "Map_Tile_0_5":{"terrain":"abyss"}, "Map_Tile_27_13":{"terrain":"abyss"}, "Map_Tile_6_8":{"terrain":"abyss"}, "Map_Tile_27_12":{"terrain":"abyss"}, "Map_Tile_27_11":{"terrain":"abyss"}, "Map_Tile_27_9":{"terrain":"abyss"}, "Map_Tile_7_0":{"terrain":"abyss"}, "Map_Tile_0_17":{"terrain":"abyss"}, "Map_Tile_27_6":{"terrain":"abyss"}, "Map_Tile_18_19":{"terrain":"abyss"}, "Map_Tile_5_4":{"terrain":"abyss"}, "Map_Tile_26_16":{"terrain":"abyss"}, "Map_Tile_2_12":{"terrain":"abyss"}, "Map_Tile_6_17":{"terrain":"abyss"}, "Map_Tile_23_3":{"terrain":"abyss"}, "Map_Tile_27_19":{"terrain":"abyss"}, "Map_Tile_24_19":{"terrain":"abyss"}, "Map_Tile_5_17":{"terrain":"abyss"}, "Map_Tile_26_5":{"terrain":"abyss"}, "Map_Tile_26_4":{"terrain":"abyss"}, "Map_Tile_26_2":{"terrain":"abyss"}, "Map_Tile_9_6":{"terrain":"abyss"}, "Map_Tile_26_1":{"terrain":"abyss"}, "Map_Tile_15_16":{"terrain":"abyss"}, "Map_Tile_25_18":{"terrain":"abyss"}, "Map_Tile_25_16":{"terrain":"abyss"}, "Map_Tile_25_15":{"terrain":"abyss"}, "Map_Tile_25_14":{"terrain":"abyss"}, "Map_Tile_16_4":{"terrain":"abyss"}, "Map_Tile_25_13":{"terrain":"abyss"}, "Map_Tile_1_19":{"terrain":"abyss"}, "Map_Tile_22_19":{"terrain":"abyss"}, "Map_Tile_25_11":{"terrain":"abyss"}, "Map_Tile_13_9":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"abyss"}, "Map_Tile_25_9":{"terrain":"abyss"}, "Map_Tile_18_17":{"terrain":"abyss"}, "Map_Tile_25_8":{"terrain":"abyss"}, "Map_Tile_14_2":{"terrain":"abyss"}, "Map_Tile_13_5":{"terrain":"abyss"}, "Map_Tile_25_6":{"terrain":"abyss"}, "Map_Tile_15_8":{"terrain":"plains"}, "Map_Tile_25_5":{"terrain":"abyss"}, "Map_Tile_8_10":{"terrain":"abyss"}, "Map_Tile_2_7":{"terrain":"abyss"}, "Map_Tile_10_6":{"terrain":"abyss"}, "Map_Tile_14_19":{"terrain":"abyss"}, "Map_Tile_16_8":{"terrain":"plains"}, "Map_Tile_0_6":{"terrain":"abyss"}, "Map_Tile_10_1":{"terrain":"abyss"}, "Map_Tile_13_7":{"terrain":"abyss"}, "Map_Tile_25_1":{"terrain":"abyss"}, "Map_Tile_3_10":{"terrain":"abyss"}, "Map_Tile_20_19":{"terrain":"abyss"}, "Map_Tile_2_11":{"terrain":"abyss"}, "Map_Tile_25_0":{"terrain":"abyss"}, "Map_Tile_26_7":{"terrain":"abyss"}, "Map_Tile_28_11":{"terrain":"abyss"}, "Map_Tile_4_3":{"terrain":"abyss"}, "Map_Tile_9_1":{"terrain":"abyss"}, "Map_Tile_6_19":{"terrain":"abyss"}, "Map_Tile_0_11":{"terrain":"abyss"}, "Map_Tile_1_10":{"terrain":"abyss"}, "Map_Tile_6_18":{"terrain":"abyss"}, "Map_Tile_14_7":{"terrain":"abyss"}, "Map_Tile_4_16":{"terrain":"abyss"}, "Map_Tile_24_17":{"terrain":"abyss"}, "Map_Tile_9_3":{"terrain":"abyss"}, "Map_Tile_26_19":{"terrain":"abyss"}, "Map_Tile_3_8":{"terrain":"abyss"}, "Map_Tile_28_16":{"terrain":"abyss"}, "Map_Tile_4_2":{"terrain":"abyss"}, "Map_Tile_14_14":{"terrain":"abyss"}, "Map_Tile_12_16":{"terrain":"abyss"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Tile_9_17":{"terrain":"abyss"}, "Map_Tile_24_15":{"terrain":"abyss"}, "Map_Tile_3_16":{"terrain":"abyss"}, "Map_Tile_4_1":{"terrain":"abyss"}, "Map_Tile_29_19":{"terrain":"abyss"}, "Map_Tile_29_10":{"terrain":"abyss"}, "Map_Tile_24_11":{"terrain":"abyss"}, "Map_Tile_9_19":{"terrain":"abyss"}, "Map_Tile_24_10":{"terrain":"abyss"}, "Map_Tile_2_14":{"terrain":"abyss"}, "Map_Tile_26_9":{"terrain":"abyss"}, "Map_Tile_26_0":{"terrain":"abyss"}, "Map_Tile_24_7":{"terrain":"abyss"}, "Map_Tile_19_17":{"terrain":"abyss"}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_7_5":{"terrain":"abyss"}, "Map_Tile_23_0":{"terrain":"abyss"}, "Map_Tile_4_10":{"terrain":"abyss"}, "Map_Tile_18_7":{"terrain":"abyss"}, "Map_Tile_5_13":{"terrain":"abyss"}, "Map_Tile_24_2":{"terrain":"abyss"}, "Map_Tile_3_6":{"terrain":"abyss"}, "Map_Tile_1_0":{"terrain":"abyss"}, "Map_Tile_24_4":{"terrain":"abyss"}, "Map_Tile_2_4":{"terrain":"abyss"}, "Map_Tile_19_8":{"terrain":"abyss"}, "Map_Tile_24_6":{"terrain":"abyss"}, "Map_Tile_0_2":{"terrain":"abyss"}, "Map_Tile_12_11":{"terrain":"abyss"}, "Map_Tile_29_1":{"terrain":"abyss"}, "Map_Tile_7_7":{"terrain":"abyss"}, "Map_Tile_7_6":{"terrain":"abyss"}, "Map_Tile_19_1":{"terrain":"abyss"}, "Map_Tile_23_17":{"terrain":"abyss"}, "Map_Tile_12_5":{"terrain":"abyss"}, "Map_Tile_29_5":{"terrain":"abyss"}, "Map_Tile_9_5":{"terrain":"abyss"}, "Map_Tile_10_7":{"terrain":"abyss"}, "Map_Tile_11_9":{"terrain":"abyss"}, "Map_Tile_23_12":{"terrain":"abyss"}, "Map_Tile_7_17":{"terrain":"abyss"}, "Map_Tile_14_16":{"terrain":"abyss"}, "Map_Tile_25_2":{"terrain":"abyss"}, "Map_Tile_23_7":{"terrain":"abyss"}, "Map_Tile_23_6":{"terrain":"abyss"}, "Map_Tile_9_10":{"terrain":"abyss"}, "Map_Tile_0_1":{"terrain":"abyss"}, "Map_Tile_6_4":{"terrain":"abyss"}, "Map_Tile_19_4":{"terrain":"abyss"}, "Map_Tile_17_1":{"terrain":"abyss"}, "Map_Tile_3_17":{"terrain":"abyss"}, "Map_Tile_23_4":{"terrain":"abyss"}, "Map_Tile_1_2":{"terrain":"abyss"}, "Map_Tile_20_13":{"terrain":"abyss"}, "Map_Tile_26_12":{"terrain":"abyss"}, "Map_Tile_5_16":{"terrain":"abyss"}, "Map_Tile_5_3":{"terrain":"abyss"}, "Map_Tile_12_4":{"terrain":"abyss"}, "Map_Tile_15_9":{"terrain":"plains"}, "Map_Tile_3_7":{"terrain":"abyss"}, "Map_Tile_22_17":{"terrain":"abyss"}, "Map_Tile_21_11":{"terrain":"abyss"}, "Map_Tile_2_1":{"terrain":"abyss"}, "Map_Tile_7_16":{"terrain":"abyss"}, "Map_Tile_24_13":{"terrain":"abyss"}, "Map_Tile_22_13":{"terrain":"abyss"}, "Map_Tile_10_4":{"terrain":"abyss"}, "Map_Tile_8_18":{"terrain":"abyss"}, "Map_Tile_14_5":{"terrain":"abyss"}, "Map_Tile_19_13":{"terrain":"abyss"}, "Map_Tile_10_14":{"terrain":"abyss"}, "Map_Tile_11_5":{"terrain":"abyss"}, "Map_Tile_22_7":{"terrain":"abyss"}, "Map_Tile_9_13":{"terrain":"abyss"}, "Map_Tile_22_3":{"terrain":"abyss"}, "Map_Tile_22_1":{"terrain":"abyss"}, "Map_Tile_29_3":{"terrain":"abyss"}, "Map_Tile_8_11":{"terrain":"abyss"}, "Map_Tile_12_14":{"terrain":"abyss"}, "Map_Tile_15_3":{"terrain":"abyss"}, "Map_Tile_21_13":{"terrain":"abyss"}, "Map_Tile_10_3":{"terrain":"abyss"}, "Map_Tile_15_10":{"terrain":"plains"}, "Map_Tile_21_1":{"terrain":"abyss"}, "Map_Tile_0_19":{"terrain":"abyss"}, "Map_Tile_12_1":{"terrain":"abyss"}, "Map_Tile_6_14":{"terrain":"abyss"}, "Map_Tile_10_18":{"terrain":"abyss"}, "Map_Tile_4_15":{"terrain":"abyss"}, "Map_Tile_6_6":{"terrain":"abyss"}, "Map_Tile_13_3":{"terrain":"abyss"}, "Map_Tile_17_3":{"terrain":"abyss"}, "Map_Tile_11_0":{"terrain":"abyss"}, "Map_Tile_20_15":{"terrain":"abyss"}, "Map_Tile_20_10":{"terrain":"abyss"}, "Map_Tile_20_9":{"terrain":"abyss"}, "Map_Tile_20_7":{"terrain":"abyss"}, "Map_Tile_20_4":{"terrain":"abyss"}, "Map_Tile_20_0":{"terrain":"abyss"}, "Map_Tile_0_10":{"terrain":"abyss"}, "Map_Tile_15_2":{"terrain":"abyss"}, "Map_Tile_3_14":{"terrain":"abyss"}, "Map_Tile_1_3":{"terrain":"abyss"}, "Map_Tile_5_7":{"terrain":"abyss"}, "Map_Tile_14_6":{"terrain":"abyss"}, "Map_Tile_20_16":{"terrain":"abyss"}, "Map_Tile_6_12":{"terrain":"abyss"}, "Map_Tile_19_10":{"terrain":"abyss"}, "Map_Tile_23_14":{"terrain":"abyss"}, "Map_Tile_16_2":{"terrain":"abyss"}, "Map_Tile_1_18":{"terrain":"abyss"}, "Map_Tile_19_6":{"terrain":"abyss"}, "Map_Tile_0_16":{"terrain":"abyss"}, "Map_Tile_4_17":{"terrain":"abyss"}, "Map_Tile_4_0":{"terrain":"abyss"}, "Map_Tile_22_6":{"terrain":"abyss"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_14_10":{"terrain":"plains"}, "Player_2":{"recruit_caravel":true, "recruit_spearman":true, "recruit_archer":true, "recruit_dog":true, "recruit_giant":false, "recruit_soldier":true, "recruit_knight":false, "recruit_wagon":false, "recruit_trebuchet":false, "recruit_dragon":false, "recruit_merman":true, "recruit_travelboat":false, "recruit_harpoonship":true, "recruit_ballista":false, "recruit_harpy":false, "recruit_warship":false, "gold":100, "recruit_balloon":false, "recruit_thief":true, "recruit_rifleman":true, "recruit_kraken":false, "recruit_witch":true, "recruit_turtle":true, "recruit_mage":true, "team":1, "recruit_frog":true, "recruit_griffin_walking":true}, "Map_Tile_13_19":{"terrain":"abyss"}, "Map_Tile_19_0":{"terrain":"abyss"}, "Map_Tile_12_8":{"terrain":"abyss"}, "Map_Tile_22_4":{"terrain":"abyss"}, "Map_Tile_7_15":{"terrain":"abyss"}, "Map_Tile_27_4":{"terrain":"abyss"}, "Map_Tile_1_13":{"terrain":"abyss"}, "Map_Tile_6_10":{"terrain":"abyss"}, "Map_Tile_18_18":{"terrain":"abyss"}, "Map_Tile_18_16":{"terrain":"abyss"}, "Map_Tile_18_15":{"terrain":"abyss"}, "Map_Tile_8_19":{"terrain":"abyss"}, "Map_Tile_18_13":{"terrain":"abyss"}, "Map_Tile_18_12":{"terrain":"abyss"}, "Map_Tile_25_3":{"terrain":"abyss"}, "Map_Tile_1_15":{"terrain":"abyss"}, "Map_Tile_18_4":{"terrain":"abyss"}, "Map_Tile_17_16":{"terrain":"abyss"}, "Map_Tile_17_11":{"terrain":"abyss"}, "Map_Tile_17_7":{"terrain":"abyss"}, "Map_Tile_1_16":{"terrain":"abyss"}, "Map_Tile_16_1":{"terrain":"abyss"}, "Map_Tile_15_7":{"terrain":"abyss"}, "Map_Tile_5_8":{"terrain":"abyss"}, "Map_Tile_14_15":{"terrain":"abyss"}, "Map_Tile_7_4":{"terrain":"abyss"}, "Map_Tile_13_1":{"terrain":"abyss"}, "Map_Tile_21_18":{"terrain":"abyss"}, "Map_Tile_1_14":{"terrain":"abyss"}, "Map_Tile_9_15":{"terrain":"abyss"}, "Map_Tile_23_13":{"terrain":"abyss"}, "Map_Tile_2_2":{"terrain":"abyss"}} \ No newline at end of file diff --git a/worlds/wargroove2/levels/Majestic_Mountain.json b/worlds/wargroove2/levels/Majestic_Mountain.json index f36c7e0d3f44..1981841b5cec 100644 --- a/worlds/wargroove2/levels/Majestic_Mountain.json +++ b/worlds/wargroove2/levels/Majestic_Mountain.json @@ -1 +1 @@ -{"Map_Tile_5_14":{"terrain":"plains"}, "Map_Tile_15_6":{"terrain":"plains"}, "Map_Tile_13_3":{"terrain":"plains"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_16_12":{"terrain":"plains"}, "Map_Tile_9_11":{"terrain":"plains"}, "Map_Tile_10_11":{"terrain":"plains"}, "Map_Tile_15_13":{"terrain":"plains"}, "Map_Tile_12_13":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_12_11":{"terrain":"plains"}, "Map_Tile_6_12":{"terrain":"plains"}, "Map_Tile_16_10":{"terrain":"plains"}, "Map_Tile_7_3":{"terrain":"plains"}, "Map_Tile_8_1":{"terrain":"plains"}, "Map_Tile_14_0":{"terrain":"mountain"}, "Map_Tile_6_13":{"terrain":"plains"}, "Map_Tile_1_5":{"terrain":"plains"}, "Map_Tile_2_14":{"terrain":"plains"}, "Map_Tile_11_0":{"terrain":"plains"}, "Map_Tile_4_12":{"terrain":"plains"}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_5_11":{"terrain":"plains"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_4_11":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"mountain"}, "Map_Tile_16_4":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"plains"}, "Map_Tile_12_14":{"terrain":"plains"}, "Map_Tile_14_6":{"terrain":"plains"}, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_12_5":{"terrain":"plains"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_14_2":{"terrain":"plains"}, "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_10_5":{"terrain":"mountain"}, "Map_Tile_14_3":{"terrain":"plains"}, "Map_Tile_10_13":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"plains"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Tile_8_12":{"terrain":"plains"}, "Map_Tile_3_11":{"terrain":"plains"}, "Map_Tile_9_3":{"terrain":"mountain"}, "Map_Tile_15_9":{"terrain":"plains"}, "Map_Tile_4_0":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"mountain"}, "Map_Tile_9_0":{"terrain":"plains"}, "Map_Tile_4_7":{"terrain":"plains"}, "Map_Tile_12_0":{"terrain":"mountain"}, "Map_Tile_8_11":{"terrain":"plains"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_11_5":{"terrain":"plains"}, "Map_Tile_2_13":{"terrain":"plains"}, "Map_Tile_5_13":{"terrain":"plains"}, "Map_Tile_3_4":{"terrain":"plains"}, "Map_Tile_9_14":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"mountain"}, "Map_Tile_8_0":{"terrain":"plains"}, "Map_Tile_12_10":{"terrain":"plains"}, "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_16_8":{"terrain":"plains"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_7_13":{"terrain":"plains"}, "Map_Tile_10_0":{"terrain":"plains"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_7_14":{"terrain":"plains"}, "Map_Tile_7_10":{"terrain":"plains"}, "Map_Tile_6_7":{"terrain":"plains"}, "Objectives":["Grab the hiking boots.", "Get a legendary Air Trooper crit.", "Win with standard conditions."], "Map_Tile_8_4":{"terrain":"plains"}, "Map_Tile_2_0":{"terrain":"plains"}, "Map_Tile_15_3":{"terrain":"plains"}, "Map_Tile_12_2":{"terrain":"mountain", "item":{"itemId":1, "isConsumable":false, "pos":{"y":2, "x":12}, "type":"hiking_boots", "unitTypeRestriction":{}}}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"plains"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_7_1":{"terrain":"plains"}, "Map_Tile_12_9":{"terrain":"plains"}, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_13_6":{"terrain":"plains"}, "Map_Tile_7_9":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_7_4":{"terrain":"plains"}, "Map_Tile_10_7":{"terrain":"plains"}, "Map_Tile_13_14":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"plains"}, "Map_Tile_16_5":{"terrain":"plains"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"plains"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_0_8":{"terrain":"plains"}, "Map_Tile_3_13":{"terrain":"plains"}, "Map_Tile_11_3":{"terrain":"mountain"}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_11_9":{"terrain":"plains"}, "Map_Tile_1_14":{"terrain":"plains"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_13_0":{"terrain":"mountain"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_15_4":{"terrain":"plains"}, "Map_Tile_16_7":{"terrain":"plains"}, "Map_Tile_14_4":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_8_7":{"terrain":"mountain"}, "Map_Tile_3_14":{"terrain":"plains"}, "Map_Tile_16_9":{"terrain":"plains"}, "Map_Tile_1_9":{"terrain":"plains"}, "Flags":{}, "Map_Tile_7_5":{"terrain":"plains"}, "Map_Tile_1_4":{"terrain":"plains"}, "Map_Tile_1_10":{"terrain":"plains"}, "Map_Tile_7_11":{"terrain":"plains"}, "Map_Tile_15_12":{"terrain":"plains"}, "Map_Tile_6_11":{"terrain":"plains"}, "Map_Tile_12_1":{"terrain":"mountain"}, "Map_Tile_5_2":{"terrain":"plains"}, "Map_Tile_3_2":{"terrain":"plains"}, "Player_1":{"recruit_frog":true, "recruit_spearman":true, "recruit_archer":true, "recruit_turtle":true, "recruit_wagon":true, "gold":100, "recruit_knight":true, "recruit_witch":true, "recruit_warship":true, "recruit_griffin_walking":true, "recruit_trebuchet":true, "recruit_caravel":true, "team":0, "recruit_kraken":true, "recruit_merman":true, "recruit_travelboat":true, "recruit_soldier":true, "recruit_dragon":true, "recruit_ballista":true, "recruit_harpy":true, "recruit_harpoonship":true, "recruit_balloon":true, "recruit_dog":true, "recruit_thief":true, "recruit_rifleman":true, "recruit_giant":true, "recruit_mage":true}, "Map_Tile_15_1":{"terrain":"plains"}, "Map_Size":{"y":15, "x":17}, "Map_Tile_8_8":{"terrain":"plains"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_15_14":{"terrain":"plains"}, "Map_Tile_13_13":{"terrain":"plains"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_11_11":{"terrain":"plains"}, "Map_Tile_8_6":{"terrain":"mountain"}, "Map_Tile_16_0":{"terrain":"plains"}, "Map_Tile_16_6":{"terrain":"plains"}, "Map_Tile_1_2":{"terrain":"plains"}, "Map_Tile_14_5":{"terrain":"plains"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_4_14":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"plains"}, "Map_Tile_14_13":{"terrain":"plains"}, "Map_Name":"Majestic Mountain", "Map_Tile_3_5":{"terrain":"plains"}, "Map_Tile_10_14":{"terrain":"plains"}, "Map_Tile_15_2":{"terrain":"plains"}, "Map_Tile_12_3":{"terrain":"mountain"}, "Map_Tile_10_6":{"terrain":"mountain"}, "Map_Tile_8_5":{"terrain":"plains"}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_14_1":{"terrain":"mountain"}, "Map_Tile_8_14":{"terrain":"plains"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_7_0":{"terrain":"plains"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"mountain"}, "Map_Tile_8_9":{"terrain":"plains"}, "Map_Tile_9_5":{"terrain":"mountain"}, "Map_Tile_9_6":{"terrain":"mountain"}, "Map_Tile_9_2":{"terrain":"plains"}, "Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_0_5":{"terrain":"plains"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"mountain"}, "Map_Tile_11_8":{"terrain":"plains"}, "Map_Tile_16_13":{"terrain":"plains"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"plains"}, "Map_Tile_11_10":{"terrain":"plains"}, "Map_Tile_2_11":{"terrain":"plains"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_12_8":{"terrain":"plains"}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_2_1":{"terrain":"plains"}, "Map_Tile_10_8":{"terrain":"plains"}, "Map_Tile_1_1":{"terrain":"plains"}, "Map_Tile_9_9":{"terrain":"plains"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"plains"}, "Map_Tile_10_1":{"terrain":"plains"}, "Map_Tile_10_3":{"terrain":"mountain"}, "Map_Tile_5_3":{"terrain":"plains"}, "Map_Tile_1_11":{"terrain":"plains"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_2_12":{"terrain":"plains"}, "Counters":{}, "Map_Tile_13_8":{"terrain":"plains"}, "Map_Tile_4_13":{"terrain":"plains"}, "Map_Tile_5_4":{"terrain":"plains"}, "Triggers":[{"actions":[{"enabled":true, "parameters":["98476", "Majestic Mountain", "Fly Sniper", "Grab the hiking boots.", "Get a legendary Air Trooper crit.", "", "Win with standard conditions."], "id":"ap_export"}], "conditions":{}, "recurring":"start_of_match", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"AP: Export"}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "conditions":[{"enabled":true, "parameters":["current", "0", "0", "*unit_structure", "-1"], "id":"unit_presence"}], "recurring":"oncePerPlayer", "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"$trigger_default_defeat_no_units"}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "conditions":[{"enabled":true, "parameters":["*commander", "current", "-1"], "id":"unit_lost"}], "recurring":"oncePerPlayer", "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"$trigger_default_defeat_commander"}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "conditions":[{"enabled":true, "parameters":["hq", "current", "-1"], "id":"unit_lost"}], "recurring":"oncePerPlayer", "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"$trigger_default_defeat_hq"}, {"actions":[{"enabled":true, "parameters":["current"], "id":"victory"}], "conditions":[{"enabled":true, "parameters":["current", "0", "0"], "id":"number_of_opponents"}], "recurring":"oncePerPlayer", "isIntro":false, "players":[1, 1, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"$trigger_default_victory"}, {"actions":[{"enabled":true, "parameters":["0", "-10", "0", "0", "0", "50", "4", "2", "0"], "id":"map_randomize"}, {"enabled":true, "parameters":["3", "0", "0", "0", "0", "0", "2", "5", "0"], "id":"position_asymmetric_randomize"}, {"enabled":true, "parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["spearman", "3", "P1", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["mage", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["spearman", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["mage", "4", "P2", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["frog", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["harpy", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["barracks", "3", "P1", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["barracks", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["tower", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["tower", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}], "conditions":{}, "recurring":"start_of_match", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"Generate Map"}, {"actions":[{"enabled":true, "parameters":["253051"], "id":"ap_location_send"}], "conditions":[{"enabled":true, "parameters":["current"], "id":"player_victorious"}], "recurring":"end_of_match", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"P1 Victorious (253051)"}, {"actions":[{"enabled":true, "parameters":["253052"], "id":"ap_location_send"}], "conditions":[{"enabled":true, "parameters":["current", "*unit", "*item", "-1"], "id":"unit_item_presence"}], "recurring":"once", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"Dog Kills Knight (253052)"}, {"actions":[{"enabled":true, "parameters":["253053"], "id":"ap_location_send"}], "conditions":[{"enabled":true, "parameters":["current", "1", "0", "griffin_walking", "-10"], "id":"unit_presence"}], "recurring":"once", "isIntro":false, "players":[1, 0, 0, 0, 0, 0, 0, 0], "enabled":true, "id":"P1 Air Trooper crit (253053)"}], "Locations":{"1":{"getArea":null, "name":"P1 Stronghold Location", "positions":[{"y":10, "x":6}, {"y":11, "x":6}, {"y":10, "x":5}, {"y":9, "x":5}, {"y":9, "x":6}, {"y":11, "x":5}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":10, "x":4}, {"y":9, "x":4}, {"y":8, "x":4}], "setArea":null, "interactable":false, "centre":{"y":9, "x":5}, "id":1}, "2":{"getArea":null, "name":"P2 Stronghold Location", "positions":[{"y":7, "x":12}, {"y":7, "x":13}, {"y":7, "x":14}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":9, "x":13}, {"y":8, "x":12}, {"y":9, "x":14}, {"y":8, "x":15}], "setArea":null, "interactable":false, "centre":{"y":8, "x":13}, "id":2}, "3":{"getArea":null, "name":"P1 Starting Zone", "positions":[{"y":0, "x":3}, {"y":1, "x":3}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":1, "x":5}, {"y":0, "x":5}, {"y":0, "x":4}, {"y":1, "x":4}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":7}, {"y":2, "x":6}, {"y":0, "x":7}, {"y":2, "x":7}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":5}, {"y":3, "x":6}, {"y":3, "x":7}, {"y":3, "x":2}, {"y":0, "x":2}, {"y":1, "x":2}, {"y":2, "x":2}, {"y":12, "x":2}, {"y":12, "x":1}, {"y":13, "x":1}, {"y":13, "x":2}, {"y":14, "x":1}, {"y":14, "x":0}, {"y":13, "x":0}, {"y":12, "x":0}, {"y":14, "x":2}], "setArea":null, "interactable":false, "centre":{"y":5, "x":4}, "id":3}, "4":{"getArea":null, "name":"P2 Starting Zone", "positions":[{"y":0, "x":15}, {"y":0, "x":16}, {"y":1, "x":16}, {"y":2, "x":16}, {"y":3, "x":16}, {"y":3, "x":15}, {"y":4, "x":15}, {"y":2, "x":15}, {"y":1, "x":15}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":3, "x":13}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":16}, {"y":14, "x":16}, {"y":14, "x":15}, {"y":14, "x":14}, {"y":14, "x":13}, {"y":13, "x":13}, {"y":12, "x":13}, {"y":12, "x":14}, {"y":12, "x":15}, {"y":12, "x":16}, {"y":13, "x":16}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}], "setArea":null, "interactable":false, "centre":{"y":8, "x":15}, "id":4}, "0":{"getArea":null, "name":"Land", "positions":[{"y":0, "x":11}, {"y":0, "x":10}, {"y":1, "x":10}, {"y":1, "x":9}, {"y":2, "x":9}, {"y":2, "x":8}, {"y":2, "x":7}, {"y":2, "x":6}, {"y":2, "x":5}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":2, "x":2}, {"y":2, "x":1}, {"y":2, "x":0}, {"y":1, "x":0}, {"y":0, "x":0}, {"y":0, "x":1}, {"y":0, "x":2}, {"y":0, "x":3}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":0, "x":6}, {"y":0, "x":7}, {"y":0, "x":8}, {"y":0, "x":9}, {"y":1, "x":8}, {"y":1, "x":7}, {"y":1, "x":6}, {"y":1, "x":5}, {"y":1, "x":4}, {"y":1, "x":3}, {"y":1, "x":2}, {"y":1, "x":1}, {"y":3, "x":0}, {"y":4, "x":0}, {"y":5, "x":0}, {"y":6, "x":0}, {"y":7, "x":0}, {"y":8, "x":0}, {"y":9, "x":0}, {"y":10, "x":0}, {"y":11, "x":0}, {"y":12, "x":0}, {"y":13, "x":0}, {"y":14, "x":0}, {"y":14, "x":1}, {"y":14, "x":2}, {"y":14, "x":3}, {"y":14, "x":4}, {"y":14, "x":5}, {"y":14, "x":6}, {"y":14, "x":7}, {"y":14, "x":8}, {"y":14, "x":9}, {"y":14, "x":10}, {"y":14, "x":11}, {"y":14, "x":12}, {"y":14, "x":13}, {"y":14, "x":14}, {"y":14, "x":15}, {"y":14, "x":16}, {"y":13, "x":16}, {"y":12, "x":16}, {"y":11, "x":16}, {"y":10, "x":16}, {"y":9, "x":16}, {"y":8, "x":16}, {"y":7, "x":16}, {"y":6, "x":16}, {"y":5, "x":16}, {"y":4, "x":16}, {"y":3, "x":16}, {"y":2, "x":16}, {"y":1, "x":16}, {"y":0, "x":16}, {"y":0, "x":15}, {"y":1, "x":15}, {"y":2, "x":15}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":3, "x":15}, {"y":3, "x":13}, {"y":4, "x":13}, {"y":4, "x":14}, {"y":4, "x":15}, {"y":5, "x":13}, {"y":4, "x":12}, {"y":5, "x":12}, {"y":5, "x":11}, {"y":5, "x":14}, {"y":5, "x":15}, {"y":6, "x":15}, {"y":7, "x":15}, {"y":7, "x":14}, {"y":7, "x":13}, {"y":7, "x":12}, {"y":6, "x":12}, {"y":6, "x":11}, {"y":6, "x":13}, {"y":6, "x":14}, {"y":7, "x":11}, {"y":7, "x":10}, {"y":8, "x":10}, {"y":8, "x":9}, {"y":8, "x":8}, {"y":8, "x":7}, {"y":7, "x":7}, {"y":6, "x":7}, {"y":5, "x":7}, {"y":5, "x":8}, {"y":4, "x":8}, {"y":3, "x":8}, {"y":3, "x":7}, {"y":3, "x":6}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":2}, {"y":3, "x":1}, {"y":4, "x":1}, {"y":5, "x":1}, {"y":6, "x":1}, {"y":7, "x":1}, {"y":8, "x":1}, {"y":9, "x":1}, {"y":10, "x":1}, {"y":11, "x":1}, {"y":12, "x":1}, {"y":13, "x":1}, {"y":13, "x":2}, {"y":13, "x":3}, {"y":13, "x":4}, {"y":13, "x":5}, {"y":13, "x":6}, {"y":13, "x":7}, {"y":13, "x":8}, {"y":13, "x":9}, {"y":13, "x":10}, {"y":13, "x":11}, {"y":13, "x":12}, {"y":13, "x":13}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":12, "x":15}, {"y":11, "x":15}, {"y":10, "x":15}, {"y":9, "x":15}, {"y":8, "x":15}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":8, "x":12}, {"y":8, "x":11}, {"y":9, "x":7}, {"y":9, "x":8}, {"y":9, "x":9}, {"y":9, "x":10}, {"y":9, "x":11}, {"y":9, "x":12}, {"y":9, "x":13}, {"y":9, "x":14}, {"y":10, "x":14}, {"y":11, "x":14}, {"y":12, "x":14}, {"y":12, "x":13}, {"y":12, "x":12}, {"y":12, "x":11}, {"y":12, "x":10}, {"y":11, "x":10}, {"y":11, "x":11}, {"y":10, "x":12}, {"y":10, "x":13}, {"y":11, "x":13}, {"y":11, "x":12}, {"y":10, "x":11}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":11, "x":9}, {"y":10, "x":10}, {"y":11, "x":8}, {"y":12, "x":7}, {"y":12, "x":6}, {"y":11, "x":7}, {"y":10, "x":9}, {"y":11, "x":6}, {"y":10, "x":7}, {"y":10, "x":8}, {"y":11, "x":5}, {"y":10, "x":6}, {"y":12, "x":5}, {"y":12, "x":4}, {"y":12, "x":3}, {"y":11, "x":4}, {"y":11, "x":3}, {"y":11, "x":2}, {"y":10, "x":2}, {"y":10, "x":3}, {"y":10, "x":4}, {"y":10, "x":5}, {"y":12, "x":2}, {"y":9, "x":6}, {"y":9, "x":2}, {"y":9, "x":3}, {"y":9, "x":4}, {"y":9, "x":5}, {"y":8, "x":2}, {"y":7, "x":2}, {"y":6, "x":2}, {"y":5, "x":2}, {"y":4, "x":2}, {"y":4, "x":3}, {"y":4, "x":4}, {"y":4, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":6, "x":3}, {"y":7, "x":3}, {"y":8, "x":3}, {"y":8, "x":4}, {"y":7, "x":4}, {"y":6, "x":4}, {"y":5, "x":5}, {"y":6, "x":5}, {"y":7, "x":5}, {"y":6, "x":6}, {"y":5, "x":6}, {"y":7, "x":6}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":4, "x":7}, {"y":4, "x":6}], "setArea":null, "interactable":false, "centre":{"y":7, "x":8}, "id":0}}, "Map_Tile_16_14":{"terrain":"plains"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_7_2":{"terrain":"plains"}, "Map_Tile_16_3":{"terrain":"plains"}, "Map_Tile_16_2":{"terrain":"plains"}, "Map_Tile_3_1":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"plains"}, "Map_Tile_16_1":{"terrain":"plains"}, "Map_Tile_15_0":{"terrain":"plains"}, "Map_Tile_15_5":{"terrain":"plains"}, "Map_Tile_13_10":{"terrain":"plains"}, "Map_Tile_9_13":{"terrain":"plains"}, "Map_Tile_8_3":{"terrain":"plains"}, "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_7_6":{"terrain":"plains"}, "Map_Tile_15_10":{"terrain":"plains"}, "Map_Tile_15_8":{"terrain":"plains"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Tile_9_1":{"terrain":"plains"}, "Map_Tile_8_10":{"terrain":"plains"}, "Map_Tile_1_3":{"terrain":"plains"}, "Player_Count":2, "Map_Tile_13_2":{"terrain":"mountain"}, "Map_Tile_14_14":{"terrain":"plains"}, "Map_Tile_8_2":{"terrain":"plains"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"plains"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_1_8":{"terrain":"plains"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_6_14":{"terrain":"plains"}, "Map_Tile_13_5":{"terrain":"plains"}, "Map_Tile_11_13":{"terrain":"plains"}, "Player_2":{"recruit_frog":true, "recruit_spearman":true, "recruit_archer":true, "recruit_turtle":true, "recruit_wagon":false, "gold":100, "recruit_knight":true, "recruit_witch":true, "recruit_warship":false, "recruit_griffin_walking":true, "recruit_trebuchet":false, "recruit_caravel":true, "team":1, "recruit_kraken":false, "recruit_merman":true, "recruit_travelboat":false, "recruit_soldier":true, "recruit_dragon":true, "recruit_ballista":false, "recruit_harpy":true, "recruit_harpoonship":true, "recruit_balloon":true, "recruit_dog":true, "recruit_thief":true, "recruit_rifleman":true, "recruit_giant":true, "recruit_mage":true}, "Author":"Fly Sniper", "Map_Tile_13_7":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_13_4":{"terrain":"plains"}, "Map_Tile_2_9":{"terrain":"plains"}, "Map_Tile_4_1":{"terrain":"plains"}, "Map_Tile_13_1":{"terrain":"mountain"}, "Map_Tile_14_10":{"terrain":"plains"}, "Map_Tile_9_8":{"terrain":"plains"}, "Map_Tile_15_7":{"terrain":"plains"}, "Map_Tile_11_6":{"terrain":"plains"}, "Map_Tile_1_13":{"terrain":"plains"}, "Map_Tile_3_12":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_0_13":{"terrain":"plains"}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_6_2":{"terrain":"plains"}, "Map_Tile_6_10":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_11_14":{"terrain":"plains"}, "Map_Tile_6_1":{"terrain":"plains"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_8_13":{"terrain":"plains"}, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_0_14":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"mountain"}, "Map_Tile_10_9":{"terrain":"plains"}, "Map_Tile_10_10":{"terrain":"plains"}, "Map_Tile_14_7":{"terrain":"plains"}, "Map_Tile_1_6":{"terrain":"plains"}, "Map_Tile_9_10":{"terrain":"plains"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_11_4":{"terrain":"mountain"}} \ No newline at end of file +{"Map_Tile_8_8":{"terrain":"plains"}, "Map_Tile_11_13":{"terrain":"plains"}, "Map_Tile_10_1":{"terrain":"plains"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_16_8":{"terrain":"plains"}, "Map_Tile_13_3":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"plains"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_6_1":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_9_9":{"terrain":"plains"}, "Map_Tile_16_2":{"terrain":"plains"}, "Map_Tile_3_4":{"terrain":"plains"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_11_3":{"terrain":"plains"}, "Map_Tile_11_5":{"terrain":"plains"}, "Map_Tile_16_3":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"plains"}, "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_8_0":{"terrain":"plains"}, "Map_Tile_16_12":{"terrain":"plains"}, "Map_Tile_15_9":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"plains"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_15_2":{"terrain":"plains"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_10_7":{"terrain":"plains"}, "Map_Tile_7_14":{"terrain":"plains"}, "Map_Tile_11_14":{"terrain":"plains"}, "Map_Tile_12_11":{"terrain":"plains"}, "Map_Tile_1_3":{"terrain":"plains"}, "Map_Tile_6_10":{"terrain":"plains"}, "Map_Tile_9_13":{"terrain":"plains"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_10_8":{"terrain":"plains"}, "Map_Tile_12_8":{"terrain":"plains"}, "Map_Tile_10_0":{"terrain":"plains"}, "Map_Tile_8_7":{"terrain":"mountain"}, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_9_8":{"terrain":"plains"}, "Map_Tile_12_3":{"terrain":"mountain"}, "Map_Tile_2_9":{"terrain":"plains"}, "Map_Tile_7_9":{"terrain":"plains"}, "Map_Tile_7_1":{"terrain":"plains"}, "Map_Tile_8_5":{"terrain":"plains"}, "Map_Tile_14_6":{"terrain":"plains"}, "Map_Tile_11_0":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_3_11":{"terrain":"plains"}, "Map_Tile_16_14":{"terrain":"plains"}, "Map_Tile_10_9":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"plains"}, "Map_Tile_8_11":{"terrain":"plains"}, "Map_Tile_8_1":{"terrain":"plains"}, "Map_Tile_3_2":{"terrain":"plains"}, "Map_Tile_16_10":{"terrain":"plains"}, "Map_Tile_12_0":{"terrain":"plains"}, "Player_Count":2, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_11_6":{"terrain":"plains"}, "Map_Tile_3_1":{"terrain":"plains"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_15_0":{"terrain":"plains"}, "Counters":{}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"mountain"}, "Map_Tile_6_2":{"terrain":"plains"}, "Map_Tile_15_1":{"terrain":"plains"}, "Map_Tile_4_14":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"mountain"}, "Map_Tile_1_9":{"terrain":"plains"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_2_13":{"terrain":"plains"}, "Map_Tile_14_7":{"terrain":"plains"}, "Map_Tile_3_13":{"terrain":"plains"}, "Map_Tile_1_10":{"terrain":"plains"}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_2_11":{"terrain":"plains"}, "Map_Tile_12_14":{"terrain":"plains"}, "Map_Size":{"y":15, "x":17}, "Map_Tile_11_9":{"terrain":"plains"}, "Map_Tile_6_11":{"terrain":"plains"}, "Map_Tile_14_14":{"terrain":"plains"}, "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"plains"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Name":"Majestic Mountain", "Map_Tile_10_3":{"terrain":"mountain"}, "Map_Tile_12_1":{"terrain":"mountain"}, "Map_Tile_2_0":{"terrain":"plains"}, "Map_Tile_15_8":{"terrain":"plains"}, "Map_Tile_3_12":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"plains"}, "Map_Tile_16_4":{"terrain":"plains"}, "Map_Tile_4_13":{"terrain":"plains"}, "Map_Tile_1_14":{"terrain":"plains"}, "Map_Tile_8_10":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"mountain"}, "Map_Tile_15_10":{"terrain":"plains"}, "Map_Tile_9_1":{"terrain":"plains"}, "Map_Tile_13_10":{"terrain":"plains"}, "Map_Tile_13_4":{"terrain":"plains"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_11_11":{"terrain":"plains"}, "Map_Tile_9_3":{"terrain":"mountain"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_15_6":{"terrain":"plains"}, "Map_Tile_7_10":{"terrain":"plains"}, "Map_Tile_8_9":{"terrain":"plains"}, "Map_Tile_13_13":{"terrain":"plains"}, "Map_Tile_14_1":{"terrain":"mountain"}, "Map_Tile_2_14":{"terrain":"plains"}, "Map_Tile_9_2":{"terrain":"plains"}, "Map_Tile_9_0":{"terrain":"plains"}, "Map_Tile_8_6":{"terrain":"mountain"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_7_2":{"terrain":"plains"}, "Map_Tile_0_8":{"terrain":"plains"}, "Map_Tile_3_14":{"terrain":"plains"}, "Map_Tile_14_3":{"terrain":"plains"}, "Map_Tile_6_7":{"terrain":"plains"}, "Map_Tile_1_8":{"terrain":"plains"}, "Map_Tile_1_5":{"terrain":"plains"}, "Map_Tile_8_2":{"terrain":"plains"}, "Map_Tile_5_14":{"terrain":"plains"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_1_13":{"terrain":"plains"}, "Map_Tile_5_3":{"terrain":"plains"}, "Map_Tile_12_10":{"terrain":"plains"}, "Map_Tile_4_7":{"terrain":"plains"}, "Triggers":[{"enabled":true, "actions":[{"id":"ap_export", "parameters":["79216", "Majestic Mountain", "Fly Sniper", "Grab the hiking boots.", "Get a legendary Air Trooper crit.", "", "Win with standard conditions."], "enabled":true}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"start_of_match", "id":"AP: Export", "conditions":{}, "isIntro":false}, {"enabled":true, "actions":[{"id":"eliminate", "parameters":["current"], "enabled":true}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_no_units", "conditions":[{"id":"unit_presence", "parameters":["current", "0", "0", "*unit_structure", "-1"], "enabled":true}], "isIntro":false}, {"enabled":true, "actions":[{"id":"eliminate", "parameters":["current"], "enabled":true}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_commander", "conditions":[{"id":"unit_lost", "parameters":["*commander", "current", "-1"], "enabled":true}], "isIntro":false}, {"enabled":true, "actions":[{"id":"eliminate", "parameters":["current"], "enabled":true}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_hq", "conditions":[{"id":"unit_lost", "parameters":["hq", "current", "-1"], "enabled":true}], "isIntro":false}, {"enabled":true, "actions":[{"id":"victory", "parameters":["current"], "enabled":true}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_victory", "conditions":[{"id":"number_of_opponents", "parameters":["current", "0", "0"], "enabled":true}], "isIntro":false}, {"enabled":true, "actions":[{"id":"map_randomize", "parameters":["0", "-10", "0", "0", "0", "50", "4", "2", "0"], "enabled":true}, {"id":"position_asymmetric_randomize", "parameters":["3", "0", "0", "0", "0", "0", "2", "5", "0"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["spearman", "3", "P1", "1", "1", "3", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["mage", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["spearman", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["mage", "4", "P2", "1", "1", "3", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["frog", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["harpy", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["barracks", "3", "P1", "1", "1", "2", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["barracks", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["tower", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["tower", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "enabled":true}, {"id":"ap_spawn_unit", "parameters":["portal", "0", "neutral", "1", "1", "3", "1", "undefined", "centre"], "enabled":true}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"start_of_match", "id":"Generate Map", "conditions":{}, "isIntro":false}, {"enabled":true, "actions":[{"id":"ap_location_send", "parameters":["253051"], "enabled":true}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"end_of_match", "id":"P1 Victorious (253051)", "conditions":[{"id":"player_victorious", "parameters":["current"], "enabled":true}], "isIntro":false}, {"enabled":true, "actions":[{"id":"ap_location_send", "parameters":["253052"], "enabled":true}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"once", "id":"Dog Kills Knight (253052)", "conditions":[{"id":"unit_item_presence", "parameters":["current", "*unit", "*item", "-1"], "enabled":true}], "isIntro":false}, {"enabled":true, "actions":[{"id":"ap_location_send", "parameters":["253053"], "enabled":true}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"once", "id":"P1 Air Trooper crit (253053)", "conditions":[{"id":"unit_presence", "parameters":["current", "1", "0", "griffin_walking", "-10"], "enabled":true}], "isIntro":false}], "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_4_1":{"terrain":"plains"}, "Map_Tile_1_6":{"terrain":"plains"}, "Map_Tile_7_11":{"terrain":"plains"}, "Map_Tile_8_12":{"terrain":"plains"}, "Map_Tile_7_4":{"terrain":"plains"}, "Map_Tile_16_0":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"plains"}, "Map_Tile_5_2":{"terrain":"plains"}, "Locations":{"1":{"centre":{"y":9, "x":5}, "name":"P1 Stronghold Location", "setArea":null, "getArea":null, "id":1, "positions":[{"y":10, "x":6}, {"y":11, "x":6}, {"y":10, "x":5}, {"y":9, "x":5}, {"y":9, "x":6}, {"y":11, "x":5}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":10, "x":4}, {"y":9, "x":4}, {"y":8, "x":4}], "interactable":false}, "2":{"centre":{"y":8, "x":13}, "name":"P2 Stronghold Location", "setArea":null, "getArea":null, "id":2, "positions":[{"y":7, "x":12}, {"y":7, "x":13}, {"y":7, "x":14}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":9, "x":13}, {"y":8, "x":12}, {"y":9, "x":14}, {"y":8, "x":15}], "interactable":false}, "3":{"centre":{"y":5, "x":4}, "name":"P1 Starting Zone", "setArea":null, "getArea":null, "id":3, "positions":[{"y":0, "x":3}, {"y":1, "x":3}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":1, "x":5}, {"y":0, "x":5}, {"y":0, "x":4}, {"y":1, "x":4}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":7}, {"y":2, "x":6}, {"y":0, "x":7}, {"y":2, "x":7}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":5}, {"y":3, "x":6}, {"y":3, "x":7}, {"y":3, "x":2}, {"y":0, "x":2}, {"y":1, "x":2}, {"y":2, "x":2}, {"y":12, "x":2}, {"y":12, "x":1}, {"y":13, "x":1}, {"y":13, "x":2}, {"y":14, "x":1}, {"y":14, "x":0}, {"y":13, "x":0}, {"y":12, "x":0}, {"y":14, "x":2}], "interactable":false}, "4":{"centre":{"y":8, "x":15}, "name":"P2 Starting Zone", "setArea":null, "getArea":null, "id":4, "positions":[{"y":0, "x":15}, {"y":0, "x":16}, {"y":1, "x":16}, {"y":2, "x":16}, {"y":3, "x":16}, {"y":3, "x":15}, {"y":4, "x":15}, {"y":2, "x":15}, {"y":1, "x":15}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":3, "x":13}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":4, "x":16}, {"y":14, "x":16}, {"y":14, "x":15}, {"y":14, "x":14}, {"y":14, "x":13}, {"y":13, "x":13}, {"y":12, "x":13}, {"y":12, "x":14}, {"y":12, "x":15}, {"y":12, "x":16}, {"y":13, "x":16}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}], "interactable":false}, "0":{"centre":{"y":7, "x":8}, "name":"Land", "setArea":null, "getArea":null, "id":0, "positions":[{"y":0, "x":11}, {"y":0, "x":10}, {"y":1, "x":10}, {"y":1, "x":9}, {"y":2, "x":9}, {"y":2, "x":8}, {"y":2, "x":7}, {"y":2, "x":6}, {"y":2, "x":5}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":2, "x":2}, {"y":2, "x":1}, {"y":2, "x":0}, {"y":1, "x":0}, {"y":0, "x":0}, {"y":0, "x":1}, {"y":0, "x":2}, {"y":0, "x":3}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":0, "x":6}, {"y":0, "x":7}, {"y":0, "x":8}, {"y":0, "x":9}, {"y":1, "x":8}, {"y":1, "x":7}, {"y":1, "x":6}, {"y":1, "x":5}, {"y":1, "x":4}, {"y":1, "x":3}, {"y":1, "x":2}, {"y":1, "x":1}, {"y":3, "x":0}, {"y":4, "x":0}, {"y":5, "x":0}, {"y":6, "x":0}, {"y":7, "x":0}, {"y":8, "x":0}, {"y":9, "x":0}, {"y":10, "x":0}, {"y":11, "x":0}, {"y":12, "x":0}, {"y":13, "x":0}, {"y":14, "x":0}, {"y":14, "x":1}, {"y":14, "x":2}, {"y":14, "x":3}, {"y":14, "x":4}, {"y":14, "x":5}, {"y":14, "x":6}, {"y":14, "x":7}, {"y":14, "x":8}, {"y":14, "x":9}, {"y":14, "x":10}, {"y":14, "x":11}, {"y":14, "x":12}, {"y":14, "x":13}, {"y":14, "x":14}, {"y":14, "x":15}, {"y":14, "x":16}, {"y":13, "x":16}, {"y":12, "x":16}, {"y":11, "x":16}, {"y":10, "x":16}, {"y":9, "x":16}, {"y":8, "x":16}, {"y":7, "x":16}, {"y":6, "x":16}, {"y":5, "x":16}, {"y":4, "x":16}, {"y":3, "x":16}, {"y":2, "x":16}, {"y":1, "x":16}, {"y":0, "x":16}, {"y":0, "x":15}, {"y":1, "x":15}, {"y":2, "x":15}, {"y":2, "x":14}, {"y":3, "x":14}, {"y":3, "x":15}, {"y":3, "x":13}, {"y":4, "x":13}, {"y":4, "x":14}, {"y":4, "x":15}, {"y":5, "x":13}, {"y":4, "x":12}, {"y":5, "x":12}, {"y":5, "x":11}, {"y":5, "x":14}, {"y":5, "x":15}, {"y":6, "x":15}, {"y":7, "x":15}, {"y":7, "x":14}, {"y":7, "x":13}, {"y":7, "x":12}, {"y":6, "x":12}, {"y":6, "x":11}, {"y":6, "x":13}, {"y":6, "x":14}, {"y":7, "x":11}, {"y":7, "x":10}, {"y":8, "x":10}, {"y":8, "x":9}, {"y":8, "x":8}, {"y":8, "x":7}, {"y":7, "x":7}, {"y":6, "x":7}, {"y":5, "x":7}, {"y":5, "x":8}, {"y":4, "x":8}, {"y":3, "x":8}, {"y":3, "x":7}, {"y":3, "x":6}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":2}, {"y":3, "x":1}, {"y":4, "x":1}, {"y":5, "x":1}, {"y":6, "x":1}, {"y":7, "x":1}, {"y":8, "x":1}, {"y":9, "x":1}, {"y":10, "x":1}, {"y":11, "x":1}, {"y":12, "x":1}, {"y":13, "x":1}, {"y":13, "x":2}, {"y":13, "x":3}, {"y":13, "x":4}, {"y":13, "x":5}, {"y":13, "x":6}, {"y":13, "x":7}, {"y":13, "x":8}, {"y":13, "x":9}, {"y":13, "x":10}, {"y":13, "x":11}, {"y":13, "x":12}, {"y":13, "x":13}, {"y":13, "x":14}, {"y":13, "x":15}, {"y":12, "x":15}, {"y":11, "x":15}, {"y":10, "x":15}, {"y":9, "x":15}, {"y":8, "x":15}, {"y":8, "x":14}, {"y":8, "x":13}, {"y":8, "x":12}, {"y":8, "x":11}, {"y":9, "x":7}, {"y":9, "x":8}, {"y":9, "x":9}, {"y":9, "x":10}, {"y":9, "x":11}, {"y":9, "x":12}, {"y":9, "x":13}, {"y":9, "x":14}, {"y":10, "x":14}, {"y":11, "x":14}, {"y":12, "x":14}, {"y":12, "x":13}, {"y":12, "x":12}, {"y":12, "x":11}, {"y":12, "x":10}, {"y":11, "x":10}, {"y":11, "x":11}, {"y":10, "x":12}, {"y":10, "x":13}, {"y":11, "x":13}, {"y":11, "x":12}, {"y":10, "x":11}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":11, "x":9}, {"y":10, "x":10}, {"y":11, "x":8}, {"y":12, "x":7}, {"y":12, "x":6}, {"y":11, "x":7}, {"y":10, "x":9}, {"y":11, "x":6}, {"y":10, "x":7}, {"y":10, "x":8}, {"y":11, "x":5}, {"y":10, "x":6}, {"y":12, "x":5}, {"y":12, "x":4}, {"y":12, "x":3}, {"y":11, "x":4}, {"y":11, "x":3}, {"y":11, "x":2}, {"y":10, "x":2}, {"y":10, "x":3}, {"y":10, "x":4}, {"y":10, "x":5}, {"y":12, "x":2}, {"y":9, "x":6}, {"y":9, "x":2}, {"y":9, "x":3}, {"y":9, "x":4}, {"y":9, "x":5}, {"y":8, "x":2}, {"y":7, "x":2}, {"y":6, "x":2}, {"y":5, "x":2}, {"y":4, "x":2}, {"y":4, "x":3}, {"y":4, "x":4}, {"y":4, "x":5}, {"y":5, "x":4}, {"y":5, "x":3}, {"y":6, "x":3}, {"y":7, "x":3}, {"y":8, "x":3}, {"y":8, "x":4}, {"y":7, "x":4}, {"y":6, "x":4}, {"y":5, "x":5}, {"y":6, "x":5}, {"y":7, "x":5}, {"y":6, "x":6}, {"y":5, "x":6}, {"y":7, "x":6}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":4, "x":7}, {"y":4, "x":6}, {"y":6, "x":9}, {"y":4, "x":10}, {"y":3, "x":11}, {"y":0, "x":12}, {"y":4, "x":9}], "interactable":false}}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_5_11":{"terrain":"plains"}, "Player_1":{"recruit_archer":true, "recruit_turtle":true, "recruit_balloon":true, "recruit_ballista":true, "recruit_trebuchet":true, "recruit_dog":true, "recruit_travelboat":true, "gold":100, "recruit_giant":true, "recruit_wagon":true, "recruit_warship":true, "recruit_witch":true, "recruit_dragon":true, "recruit_harpy":true, "recruit_frog":true, "recruit_griffin_walking":true, "recruit_caravel":true, "recruit_spearman":true, "recruit_soldier":true, "recruit_rifleman":true, "recruit_kraken":true, "recruit_knight":true, "recruit_mage":true, "recruit_thief":true, "recruit_harpoonship":true, "team":0, "recruit_merman":true}, "Map_Tile_1_1":{"terrain":"plains"}, "Map_Tile_1_4":{"terrain":"plains"}, "Map_Tile_15_3":{"terrain":"plains"}, "Map_Tile_4_0":{"terrain":"plains"}, "Flags":{}, "Map_Tile_9_11":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_14_5":{"terrain":"plains"}, "Map_Tile_12_2":{"terrain":"mountain", "item":{"isConsumable":false, "itemId":1, "type":"hiking_boots", "unitTypeRestriction":{}, "pos":{"y":2, "x":12}}}, "Map_Tile_15_4":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"plains"}, "Map_Tile_7_0":{"terrain":"plains"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Tile_16_9":{"terrain":"plains"}, "Map_Tile_16_6":{"terrain":"plains"}, "Map_Tile_13_8":{"terrain":"plains"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_16_5":{"terrain":"plains"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_4_12":{"terrain":"plains"}, "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_16_1":{"terrain":"plains"}, "Map_Tile_10_14":{"terrain":"plains"}, "Map_Tile_15_14":{"terrain":"plains"}, "Map_Tile_12_5":{"terrain":"plains"}, "Map_Tile_16_13":{"terrain":"plains"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_13_6":{"terrain":"plains"}, "Map_Tile_15_13":{"terrain":"plains"}, "Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_15_12":{"terrain":"plains"}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_13_7":{"terrain":"plains"}, "Map_Tile_15_7":{"terrain":"plains"}, "Map_Tile_0_5":{"terrain":"plains"}, "Author":"Fly Sniper", "Map_Tile_15_5":{"terrain":"plains"}, "Map_Tile_13_1":{"terrain":"mountain"}, "Map_Tile_8_4":{"terrain":"plains"}, "Map_Tile_9_10":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"mountain"}, "Map_Tile_7_5":{"terrain":"plains"}, "Map_Tile_7_3":{"terrain":"plains"}, "Map_Tile_6_13":{"terrain":"plains"}, "Map_Tile_4_11":{"terrain":"plains"}, "Map_Tile_8_13":{"terrain":"plains"}, "Map_Tile_0_14":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_14_13":{"terrain":"plains"}, "Map_Tile_14_10":{"terrain":"plains"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"mountain"}, "Map_Tile_14_4":{"terrain":"plains"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_14_0":{"terrain":"mountain"}, "Player_2":{"recruit_archer":true, "recruit_turtle":true, "recruit_balloon":true, "recruit_ballista":false, "recruit_trebuchet":false, "recruit_dog":true, "recruit_travelboat":false, "gold":100, "recruit_giant":true, "recruit_wagon":false, "recruit_warship":false, "recruit_witch":true, "recruit_dragon":true, "recruit_harpy":true, "recruit_frog":true, "recruit_griffin_walking":true, "recruit_caravel":true, "recruit_spearman":true, "recruit_soldier":true, "recruit_rifleman":true, "recruit_kraken":false, "recruit_knight":true, "recruit_mage":true, "recruit_thief":true, "recruit_harpoonship":true, "team":1, "recruit_merman":true}, "Map_Tile_13_14":{"terrain":"plains"}, "Map_Tile_0_13":{"terrain":"plains"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_1_11":{"terrain":"plains"}, "Map_Tile_10_6":{"terrain":"mountain"}, "Map_Tile_9_14":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_7_13":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"plains"}, "Map_Tile_13_5":{"terrain":"plains"}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_13_0":{"terrain":"mountain"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_16_7":{"terrain":"plains"}, "Map_Tile_10_13":{"terrain":"plains"}, "Map_Tile_13_2":{"terrain":"mountain"}, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_12_13":{"terrain":"plains"}, "Map_Tile_7_6":{"terrain":"plains"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_5_4":{"terrain":"plains"}, "Map_Tile_12_9":{"terrain":"plains"}, "Map_Tile_2_12":{"terrain":"plains"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_8_3":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"plains"}, "Map_Tile_10_10":{"terrain":"plains"}, "Map_Tile_6_12":{"terrain":"plains"}, "Map_Tile_11_10":{"terrain":"plains"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_6_14":{"terrain":"plains"}, "Objectives":["Grab the hiking boots.", "Get a legendary Air Trooper crit.", "Win with standard conditions."], "Map_Tile_14_2":{"terrain":"plains"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_11_4":{"terrain":"mountain"}, "Map_Tile_10_11":{"terrain":"plains"}, "Map_Tile_9_6":{"terrain":"plains"}, "Map_Tile_9_5":{"terrain":"mountain"}, "Map_Tile_3_5":{"terrain":"plains"}, "Map_Tile_11_8":{"terrain":"plains"}, "Map_Tile_10_5":{"terrain":"mountain"}, "Map_Tile_8_14":{"terrain":"plains"}, "Map_Tile_5_13":{"terrain":"plains"}, "Map_Tile_2_1":{"terrain":"plains"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_1_2":{"terrain":"plains"}} \ No newline at end of file diff --git a/worlds/wargroove2/levels/Observation_Isle.json b/worlds/wargroove2/levels/Observation_Isle.json index 391276690115..68a2388c8426 100644 --- a/worlds/wargroove2/levels/Observation_Isle.json +++ b/worlds/wargroove2/levels/Observation_Isle.json @@ -1 +1 @@ -{"Map_Tile_10_16":{"terrain":"plains"}, "Map_Tile_8_2":{"terrain":"sea"}, "Map_Tile_8_4":{"terrain":"sea"}, "Map_Tile_7_11":{"terrain":"beach"}, "Map_Tile_11_14":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"sea"}, "Map_Tile_10_15":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"sea"}, "Map_Tile_9_1":{"terrain":"sea"}, "Map_Tile_6_16":{"terrain":"plains"}, "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_9_9":{"terrain":"sea"}, "Map_Tile_18_8":{"terrain":"sea"}, "Map_Tile_12_9":{"terrain":"sea"}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_1_3":{"terrain":"plains"}, "Map_Tile_7_16":{"terrain":"plains"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_11_16":{"terrain":"plains"}, "Triggers":[{"recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"AP: Export", "enabled":true, "actions":[{"id":"ap_export", "enabled":true, "parameters":["161792", "Observation Isle", "Fly Sniper", "Step on Observation Isle (No Requirements).", "Kill player 3's commander (Requires Walls event).", "", "Win with standard conditions."]}], "conditions":{}}, {"recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"$trigger_default_defeat_no_units", "enabled":true, "actions":[{"id":"eliminate", "enabled":true, "parameters":["current"]}], "conditions":[{"id":"unit_presence", "enabled":true, "parameters":["current", "0", "0", "*unit_structure", "-1"]}]}, {"recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"$trigger_default_defeat_commander", "enabled":true, "actions":[{"id":"eliminate", "enabled":true, "parameters":["current"]}], "conditions":[{"id":"unit_lost", "enabled":true, "parameters":["*commander", "current", "-1"]}]}, {"recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"$trigger_default_defeat_hq", "enabled":true, "actions":[{"id":"eliminate", "enabled":true, "parameters":["current"]}], "conditions":[{"id":"unit_lost", "enabled":true, "parameters":["hq", "current", "-1"]}]}, {"recurring":"oncePerPlayer", "players":[1, 1, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Victory (One Opponent Left)", "enabled":true, "actions":[{"id":"victory", "enabled":true, "parameters":["current"]}], "conditions":[{"id":"number_of_opponents", "enabled":true, "parameters":["current", "3", "2"]}]}, {"recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Generate Map", "enabled":true, "actions":[{"id":"map_randomize", "enabled":true, "parameters":["0", "-10", "0", "0", "50", "0", "0", "0", "0"]}, {"id":"map_randomize", "enabled":true, "parameters":["5", "-12", "0", "0", "0", "50", "10", "5", "0"]}, {"id":"position_asymmetric_randomize", "enabled":true, "parameters":["3", "0", "0", "0", "0", "0", "0", "8", "0"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["barracks", "3", "P1", "1", "1", "2", "1", "undefined", "centre"]}, {"id":"ap_spawn_unit", "enabled":true, "parameters":["barracks", "4", "P2", "1", "1", "2", "1", "undefined", "centre"]}, {"id":"modify_health", "enabled":true, "parameters":["*structure", "-1", "any", "0", "100"]}], "conditions":{}}, {"recurring":"start_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Walls Crumble", "enabled":true, "actions":[{"id":"play_sound_effect", "enabled":true, "parameters":["bellToll", "6"]}, {"id":"screenshake", "enabled":true, "parameters":["3000", "2", "2", "5"]}, {"id":"wait", "enabled":true, "parameters":["3000"]}, {"id":"map_randomize", "enabled":true, "parameters":["6", "-10", "0", "0", "0", "50", "0", "0", "0"]}], "conditions":[{"id":"ap_has_item", "enabled":true, "parameters":["252024", "0", "1"]}]}, {"recurring":"end_of_match", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"P1 Victorious (253048)", "enabled":true, "actions":[{"id":"ap_location_send", "enabled":true, "parameters":["253048"]}], "conditions":[{"id":"player_victorious", "enabled":true, "parameters":["current"]}]}, {"recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Become the Watcher (253049)", "enabled":true, "actions":[{"id":"ap_location_send", "enabled":true, "parameters":["253049"]}], "conditions":[{"id":"unit_presence", "enabled":true, "parameters":["P1", "1", "0", "*unit_structure", "6"]}]}, {"recurring":"once", "players":[1, 0, 0, 0, 0, 0, 0, 0], "isIntro":false, "id":"Execute the Watcher (253050)", "enabled":true, "actions":[{"id":"ap_location_send", "enabled":true, "parameters":["253050"]}], "conditions":[{"id":"unit_killed", "enabled":true, "parameters":["*unit", "P1", "*commander", "P3", "-1"]}]}], "Map_Tile_16_13":{"terrain":"plains"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_0_15":{"terrain":"bridge"}, "Map_Tile_13_6":{"terrain":"bridge"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_15_0":{"terrain":"wall"}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_18_16":{"terrain":"plains"}, "Map_Tile_14_15":{"terrain":"plains"}, "Map_Tile_11_10":{"terrain":"sea"}, "Map_Tile_8_6":{"terrain":"sea"}, "Map_Tile_10_14":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"sea"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_5_15":{"terrain":"plains"}, "Map_Tile_3_16":{"terrain":"bridge"}, "Map_Tile_15_9":{"terrain":"sea"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_9_0":{"terrain":"sea"}, "Map_Tile_4_7":{"terrain":"plains"}, "Map_Tile_9_2":{"terrain":"sea"}, "Map_Tile_12_2":{"terrain":"beach"}, "Map_Tile_12_1":{"terrain":"beach"}, "Map_Tile_3_1":{"terrain":"plains"}, "Map_Tile_10_3":{"terrain":"sea"}, "Map_Tile_18_4":{"terrain":"wall"}, "Map_Tile_4_12":{"terrain":"beach"}, "Map_Tile_0_5":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_10_0":{"terrain":"sea"}, "Map_Tile_9_5":{"terrain":"bridge"}, "Map_Tile_7_0":{"terrain":"sea"}, "Map_Tile_4_15":{"terrain":"beach"}, "Map_Tile_4_0":{"terrain":"plains"}, "Map_Tile_17_7":{"terrain":"sea"}, "Map_Tile_17_1":{"terrain":"wall"}, "Map_Tile_8_15":{"terrain":"plains"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_0_13":{"terrain":"beach"}, "Map_Tile_16_0":{"terrain":"wall"}, "Map_Tile_5_11":{"terrain":"beach"}, "Map_Tile_6_2":{"terrain":"plains"}, "Map_Tile_11_8":{"terrain":"sea"}, "Author":"Fly Sniper", "Map_Tile_5_13":{"terrain":"beach"}, "Map_Tile_10_10":{"terrain":"sea"}, "Map_Tile_17_3":{"terrain":"wall"}, "Map_Tile_11_15":{"terrain":"plains"}, "Map_Tile_15_2":{"terrain":"wall"}, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_2_13":{"terrain":"beach"}, "Map_Tile_8_9":{"terrain":"sea"}, "Map_Tile_15_13":{"terrain":"plains"}, "Map_Tile_14_8":{"terrain":"sea"}, "Map_Tile_15_15":{"terrain":"plains"}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_17_10":{"terrain":"sea"}, "Map_Tile_15_4":{"terrain":"wall"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_8_5":{"terrain":"bridge"}, "Map_Tile_1_11":{"terrain":"plains"}, "Map_Tile_13_4":{"terrain":"wall"}, "Map_Tile_4_13":{"terrain":"beach"}, "Map_Tile_7_3":{"terrain":"sea"}, "Map_Tile_5_2":{"terrain":"plains"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_1_10":{"terrain":"plains"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_11_3":{"terrain":"sea"}, "Player_2":{"team":1, "recruit_thief":true, "recruit_rifleman":false, "recruit_witch":false, "recruit_caravel":true, "recruit_frog":true, "recruit_wagon":false, "recruit_dog":true, "recruit_soldier":true, "recruit_trebuchet":false, "recruit_knight":false, "recruit_spearman":true, "recruit_harpy":false, "recruit_warship":false, "recruit_kraken":false, "recruit_turtle":true, "recruit_merman":false, "recruit_ballista":false, "recruit_harpoonship":false, "recruit_mage":true, "recruit_travelboat":false, "recruit_archer":true, "recruit_griffin_walking":true, "recruit_balloon":false, "recruit_giant":false, "recruit_dragon":false, "gold":100}, "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_13_0":{"terrain":"wall"}, "Map_Tile_12_16":{"terrain":"plains"}, "Map_Tile_15_8":{"terrain":"sea"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_2_16":{"terrain":"bridge"}, "Map_Tile_2_0":{"terrain":"plains"}, "Map_Tile_8_7":{"terrain":"sea"}, "Map_Tile_0_14":{"terrain":"bridge"}, "Map_Tile_11_4":{"terrain":"sea"}, "Map_Tile_10_13":{"terrain":"plains"}, "Map_Tile_11_11":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"sea"}, "Map_Tile_6_13":{"terrain":"plains"}, "Player_3":{"team":2, "recruit_thief":true, "recruit_rifleman":false, "recruit_witch":false, "recruit_caravel":false, "recruit_frog":true, "recruit_wagon":false, "recruit_dog":true, "recruit_soldier":true, "recruit_trebuchet":false, "recruit_knight":false, "recruit_spearman":true, "recruit_harpy":false, "recruit_warship":false, "recruit_kraken":false, "recruit_turtle":true, "recruit_merman":false, "recruit_ballista":false, "recruit_harpoonship":false, "recruit_mage":true, "recruit_travelboat":false, "recruit_archer":true, "recruit_griffin_walking":true, "recruit_balloon":false, "recruit_giant":false, "recruit_dragon":false, "gold":0}, "Map_Tile_16_7":{"terrain":"sea"}, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_14_0":{"terrain":"wall"}, "Map_Tile_9_3":{"terrain":"sea"}, "Map_Tile_9_16":{"terrain":"plains"}, "Map_Tile_18_9":{"terrain":"sea"}, "Map_Tile_12_10":{"terrain":"sea"}, "Map_Tile_16_9":{"terrain":"sea"}, "Map_Tile_8_1":{"terrain":"sea"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_6_11":{"terrain":"beach"}, "Map_Tile_13_10":{"terrain":"bridge"}, "Map_Tile_14_5":{"terrain":"beach"}, "Map_Tile_7_1":{"terrain":"sea"}, "Map_Tile_16_10":{"terrain":"sea"}, "Map_Tile_10_1":{"terrain":"sea"}, "Map_Tile_5_16":{"terrain":"plains"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_12_14":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"bridge"}, "Map_Tile_12_0":{"terrain":"beach"}, "Map_Tile_7_4":{"terrain":"sea"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_13_7":{"terrain":"bridge"}, "Map_Tile_14_2":{"terrain":"wall"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_14_7":{"terrain":"sea"}, "Map_Tile_3_12":{"terrain":"plains"}, "Player_1":{"team":0, "recruit_thief":true, "recruit_rifleman":true, "recruit_witch":true, "recruit_caravel":true, "recruit_frog":true, "recruit_wagon":true, "recruit_dog":true, "recruit_soldier":true, "recruit_trebuchet":true, "recruit_knight":true, "recruit_spearman":true, "recruit_harpy":true, "recruit_warship":true, "recruit_kraken":true, "recruit_turtle":true, "recruit_merman":true, "recruit_ballista":true, "recruit_harpoonship":true, "recruit_mage":true, "recruit_travelboat":true, "recruit_archer":true, "recruit_griffin_walking":true, "recruit_balloon":true, "recruit_giant":true, "recruit_dragon":true, "gold":100}, "Map_Tile_4_1":{"terrain":"plains"}, "Map_Tile_10_8":{"terrain":"sea"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_10_11":{"terrain":"plains"}, "Map_Tile_9_8":{"terrain":"sea"}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_18_10":{"terrain":"sea"}, "Map_Tile_4_11":{"terrain":"plains"}, "Map_Tile_16_8":{"terrain":"sea"}, "Map_Tile_11_9":{"terrain":"sea"}, "Map_Tile_15_6":{"terrain":"sea"}, "Map_Tile_18_7":{"terrain":"sea"}, "Map_Tile_8_13":{"terrain":"plains"}, "Map_Tile_2_11":{"terrain":"plains"}, "Map_Tile_18_14":{"terrain":"plains"}, "Map_Tile_12_13":{"terrain":"plains"}, "Map_Tile_8_14":{"terrain":"plains"}, "Map_Tile_3_14":{"terrain":"sea"}, "Map_Tile_13_8":{"terrain":"bridge"}, "Map_Tile_9_10":{"terrain":"sea"}, "Map_Tile_7_14":{"terrain":"plains"}, "Map_Tile_14_10":{"terrain":"sea"}, "Map_Tile_18_11":{"terrain":"plains"}, "Locations":{"1":{"interactable":false, "getArea":null, "name":"P1 Stronghold Location", "id":1, "setArea":null, "centre":{"y":9, "x":4}, "positions":[{"y":9, "x":4}, {"y":9, "x":3}, {"y":9, "x":2}, {"y":8, "x":2}, {"y":8, "x":4}, {"y":8, "x":3}, {"y":8, "x":5}, {"y":9, "x":5}]}, "2":{"interactable":false, "getArea":null, "name":"P2 Stronghold Location", "id":2, "setArea":null, "centre":{"y":13, "x":9}, "positions":[{"y":13, "x":10}, {"y":14, "x":9}, {"y":14, "x":8}, {"y":12, "x":10}, {"y":13, "x":9}, {"y":14, "x":7}, {"y":15, "x":7}, {"y":11, "x":10}]}, "3":{"interactable":false, "getArea":null, "name":"P1 Starting Zone", "id":3, "setArea":null, "centre":{"y":1, "x":3}, "positions":[{"y":0, "x":0}, {"y":1, "x":0}, {"y":1, "x":1}, {"y":1, "x":2}, {"y":1, "x":3}, {"y":0, "x":3}, {"y":1, "x":4}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":0, "x":2}, {"y":0, "x":1}, {"y":2, "x":0}, {"y":2, "x":1}, {"y":2, "x":2}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":5}, {"y":2, "x":5}, {"y":2, "x":6}]}, "4":{"interactable":false, "getArea":null, "name":"P2 Starting Zone", "id":4, "setArea":null, "centre":{"y":14, "x":12}, "positions":[{"y":12, "x":12}, {"y":11, "x":12}, {"y":11, "x":13}, {"y":12, "x":13}, {"y":13, "x":13}, {"y":14, "x":13}, {"y":15, "x":13}, {"y":16, "x":13}, {"y":16, "x":12}, {"y":15, "x":12}, {"y":14, "x":12}, {"y":13, "x":12}, {"y":11, "x":11}, {"y":12, "x":11}, {"y":13, "x":11}, {"y":14, "x":11}, {"y":15, "x":11}, {"y":16, "x":11}]}, "5":{"interactable":false, "getArea":null, "name":"Land", "id":5, "setArea":null, "centre":{"y":9, "x":7}, "positions":[{"y":0, "x":0}, {"y":0, "x":1}, {"y":0, "x":2}, {"y":0, "x":3}, {"y":0, "x":4}, {"y":0, "x":5}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":5}, {"y":1, "x":4}, {"y":1, "x":3}, {"y":1, "x":2}, {"y":1, "x":1}, {"y":1, "x":0}, {"y":2, "x":0}, {"y":3, "x":0}, {"y":4, "x":0}, {"y":5, "x":0}, {"y":6, "x":0}, {"y":7, "x":0}, {"y":8, "x":0}, {"y":9, "x":0}, {"y":10, "x":0}, {"y":11, "x":0}, {"y":12, "x":0}, {"y":12, "x":1}, {"y":12, "x":2}, {"y":12, "x":3}, {"y":11, "x":3}, {"y":11, "x":2}, {"y":11, "x":1}, {"y":10, "x":1}, {"y":9, "x":1}, {"y":8, "x":1}, {"y":7, "x":1}, {"y":6, "x":1}, {"y":5, "x":1}, {"y":4, "x":1}, {"y":3, "x":1}, {"y":2, "x":6}, {"y":2, "x":5}, {"y":2, "x":4}, {"y":2, "x":3}, {"y":2, "x":2}, {"y":3, "x":2}, {"y":4, "x":2}, {"y":5, "x":2}, {"y":6, "x":2}, {"y":7, "x":2}, {"y":9, "x":2}, {"y":10, "x":2}, {"y":10, "x":3}, {"y":10, "x":4}, {"y":11, "x":4}, {"y":10, "x":5}, {"y":9, "x":5}, {"y":9, "x":6}, {"y":9, "x":4}, {"y":9, "x":3}, {"y":8, "x":3}, {"y":8, "x":4}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":7, "x":6}, {"y":6, "x":6}, {"y":5, "x":6}, {"y":4, "x":6}, {"y":3, "x":6}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":4, "x":3}, {"y":4, "x":4}, {"y":5, "x":4}, {"y":6, "x":4}, {"y":7, "x":4}, {"y":7, "x":3}, {"y":5, "x":3}, {"y":4, "x":5}, {"y":5, "x":5}, {"y":6, "x":5}, {"y":6, "x":3}, {"y":7, "x":5}, {"y":14, "x":5}, {"y":14, "x":6}, {"y":13, "x":6}, {"y":13, "x":7}, {"y":12, "x":7}, {"y":12, "x":8}, {"y":11, "x":8}, {"y":11, "x":9}, {"y":12, "x":9}, {"y":13, "x":8}, {"y":15, "x":6}, {"y":15, "x":5}, {"y":16, "x":5}, {"y":16, "x":6}, {"y":16, "x":7}, {"y":16, "x":8}, {"y":16, "x":9}, {"y":16, "x":10}, {"y":16, "x":11}, {"y":16, "x":12}, {"y":16, "x":13}, {"y":16, "x":14}, {"y":16, "x":15}, {"y":16, "x":16}, {"y":16, "x":17}, {"y":16, "x":18}, {"y":15, "x":18}, {"y":14, "x":18}, {"y":13, "x":18}, {"y":12, "x":18}, {"y":11, "x":18}, {"y":11, "x":17}, {"y":11, "x":16}, {"y":11, "x":15}, {"y":11, "x":14}, {"y":11, "x":13}, {"y":11, "x":12}, {"y":11, "x":11}, {"y":11, "x":10}, {"y":14, "x":7}, {"y":15, "x":7}, {"y":15, "x":8}, {"y":14, "x":8}, {"y":14, "x":9}, {"y":13, "x":9}, {"y":12, "x":10}, {"y":12, "x":11}, {"y":14, "x":10}, {"y":15, "x":9}, {"y":12, "x":12}, {"y":13, "x":12}, {"y":14, "x":12}, {"y":15, "x":11}, {"y":15, "x":10}, {"y":13, "x":11}, {"y":13, "x":13}, {"y":12, "x":14}, {"y":12, "x":15}, {"y":12, "x":16}, {"y":13, "x":15}, {"y":13, "x":14}, {"y":14, "x":14}, {"y":15, "x":13}, {"y":14, "x":13}, {"y":12, "x":13}, {"y":15, "x":12}, {"y":15, "x":14}, {"y":14, "x":15}, {"y":13, "x":16}, {"y":13, "x":17}, {"y":12, "x":17}, {"y":14, "x":16}, {"y":15, "x":16}, {"y":15, "x":17}, {"y":14, "x":17}, {"y":15, "x":15}, {"y":16, "x":0}, {"y":14, "x":11}, {"y":2, "x":1}]}, "6":{"interactable":false, "getArea":null, "name":"Watcher Area", "id":6, "setArea":null, "centre":{"y":3, "x":15}, "positions":[{"y":4, "x":13}, {"y":4, "x":14}, {"y":4, "x":15}, {"y":4, "x":16}, {"y":4, "x":17}, {"y":4, "x":18}, {"y":3, "x":18}, {"y":3, "x":17}, {"y":3, "x":16}, {"y":3, "x":15}, {"y":3, "x":14}, {"y":3, "x":13}, {"y":2, "x":13}, {"y":2, "x":14}, {"y":2, "x":15}, {"y":2, "x":16}, {"y":2, "x":17}, {"y":2, "x":18}, {"y":1, "x":18}, {"y":1, "x":17}, {"y":1, "x":16}, {"y":1, "x":15}, {"y":1, "x":14}, {"y":1, "x":13}, {"y":0, "x":13}, {"y":0, "x":14}, {"y":0, "x":15}, {"y":0, "x":16}, {"y":0, "x":18}, {"y":0, "x":12}, {"y":1, "x":12}, {"y":2, "x":12}, {"y":3, "x":12}, {"y":4, "x":12}, {"y":5, "x":12}, {"y":5, "x":13}, {"y":5, "x":14}, {"y":5, "x":15}, {"y":5, "x":16}, {"y":5, "x":17}, {"y":5, "x":18}]}, "0":{"interactable":false, "getArea":null, "name":"Sea", "id":0, "setArea":null, "centre":{"y":7, "x":11}, "positions":[{"y":10, "x":12}, {"y":10, "x":11}, {"y":10, "x":10}, {"y":10, "x":9}, {"y":10, "x":8}, {"y":2, "x":7}, {"y":2, "x":8}, {"y":2, "x":9}, {"y":2, "x":10}, {"y":2, "x":11}, {"y":6, "x":12}, {"y":7, "x":12}, {"y":8, "x":12}, {"y":9, "x":12}, {"y":9, "x":10}, {"y":9, "x":9}, {"y":9, "x":8}, {"y":9, "x":7}, {"y":8, "x":10}, {"y":8, "x":11}, {"y":9, "x":11}, {"y":7, "x":11}, {"y":6, "x":11}, {"y":4, "x":11}, {"y":3, "x":11}, {"y":3, "x":8}, {"y":3, "x":7}, {"y":4, "x":7}, {"y":3, "x":10}, {"y":3, "x":9}, {"y":8, "x":7}, {"y":8, "x":8}, {"y":7, "x":8}, {"y":7, "x":9}, {"y":7, "x":10}, {"y":8, "x":9}, {"y":6, "x":10}, {"y":4, "x":10}, {"y":4, "x":9}, {"y":4, "x":8}, {"y":6, "x":9}, {"y":6, "x":8}, {"y":6, "x":7}, {"y":7, "x":7}, {"y":6, "x":14}, {"y":6, "x":15}, {"y":6, "x":16}, {"y":6, "x":17}, {"y":6, "x":18}, {"y":7, "x":18}, {"y":8, "x":18}, {"y":9, "x":18}, {"y":10, "x":18}, {"y":10, "x":17}, {"y":10, "x":16}, {"y":10, "x":15}, {"y":10, "x":14}, {"y":7, "x":14}, {"y":7, "x":15}, {"y":7, "x":16}, {"y":7, "x":17}, {"y":9, "x":17}, {"y":9, "x":16}, {"y":9, "x":15}, {"y":9, "x":14}, {"y":8, "x":14}, {"y":8, "x":15}, {"y":8, "x":16}, {"y":1, "x":11}, {"y":0, "x":11}, {"y":0, "x":10}, {"y":0, "x":9}, {"y":0, "x":8}, {"y":0, "x":7}, {"y":1, "x":7}, {"y":1, "x":9}, {"y":1, "x":10}, {"y":1, "x":8}, {"y":14, "x":3}, {"y":14, "x":2}, {"y":14, "x":1}, {"y":15, "x":1}, {"y":15, "x":2}, {"y":15, "x":3}, {"y":8, "x":17}]}}, "Map_Tile_17_15":{"terrain":"plains"}, "Map_Tile_12_15":{"terrain":"plains"}, "Map_Tile_1_14":{"terrain":"sea"}, "Map_Tile_8_12":{"terrain":"plains"}, "Map_Tile_18_5":{"terrain":"beach"}, "Map_Tile_18_6":{"terrain":"sea"}, "Map_Tile_18_2":{"terrain":"wall"}, "Map_Tile_0_16":{"terrain":"plains"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_18_1":{"terrain":"wall"}, "Map_Tile_10_6":{"terrain":"sea"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_17_16":{"terrain":"plains"}, "Map_Tile_17_14":{"terrain":"plains"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_12_8":{"terrain":"sea"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_16_6":{"terrain":"sea"}, "Map_Tile_6_12":{"terrain":"beach"}, "Map_Tile_17_12":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"beach"}, "Map_Tile_5_3":{"terrain":"plains"}, "Objectives":["Step on Observation Isle (No Requirements).", "Kill player 3's commander (Requires Walls event).", "Win with standard conditions."], "Map_Tile_17_11":{"terrain":"plains"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Tile_13_13":{"terrain":"plains"}, "Map_Tile_17_8":{"unit":{"state":{}, "rangedDamageTakenPercent":100, "tentacled":false, "items":{}, "grooveId":"", "attackerPlayerId":-1, "attackerUnitClass":"", "factionOverride":"", "stunned":false, "health":100, "canChargeGroove":true, "recruitDiscounts":{}, "attackerId":-1, "killedByLosing":false, "canBeAttacked":true, "loadedUnits":{}, "startPos":{"facing":3, "y":8, "x":17}, "merchantDiscounts":{}, "itemDropNumber":0, "recruits":{}, "hasBeenKilled":false, "setGroove":null, "setHealth":null, "unitClass":{"weaponIds":["caravelWeapon"], "verbCostMultiplier":1.0, "loadCapacity":0, "weapons":[{"canMoveAndAttack":true, "canAttackAir":false, "minRange":1, "horizontalAndVerticalExtraWidth":0, "blockedByEnemies":false, "directionality":"omni", "horizontalAndVerticalOnly":false, "terrainExclusion":{}, "unitIdWhenAttacking":"", "id":"caravelWeapon", "maxRange":1, "canAttackSubmerged":false, "canCounterAttack":true}], "isDamagingParentUnit":false, "inAir":false, "isAttackable":true, "critConditionId":"", "moveRange":5, "movementType":"river_sailing", "transportTags":{}, "isRecruitable":true, "aliasId":"", "isCommander":false, "inWater":true, "canBeActivated":false, "cost":250, "canReinforce":false, "passiveMultiplier":1.5, "maxHealth":100, "isStructure":false, "reinforceMultiplier":1.0, "tags":["caravel", "type.sea.light"], "maxGroove":0, "canAttack":true, "id":"caravel", "resourceCost":1, "canBeCaptured":false, "recruitingCostMultiplier":1.0}, "canBeAttackedFromDistance":true, "itemId":"", "underwater":false, "attachedFlagId":-1, "playerId":1, "unitClassId":"caravel", "hadTurn":false, "blessings":{}, "merchantDiscountMultiplier":0.0, "inTransport":false, "damageTakenPercent":100, "transportedBy":-1, "recruitDiscountMultiplier":0.0, "pos":{"facing":3, "y":8, "x":17}, "id":1, "garrisonClassId":"", "miniGrooveId":"", "grooveCharge":0}, "terrain":"sea"}, "Map_Tile_12_5":{"terrain":"beach"}, "Map_Tile_17_6":{"terrain":"sea"}, "Map_Tile_17_5":{"terrain":"beach"}, "Map_Tile_7_6":{"terrain":"sea"}, "Map_Tile_18_13":{"terrain":"plains"}, "Map_Tile_7_9":{"terrain":"sea"}, "Map_Tile_17_2":{"terrain":"wall"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Tile_13_5":{"terrain":"beach"}, "Map_Tile_4_14":{"terrain":"beach"}, "Map_Tile_7_10":{"terrain":"beach"}, "Map_Tile_16_15":{"terrain":"plains"}, "Map_Tile_16_14":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"sea"}, "Map_Tile_6_10":{"terrain":"beach"}, "Counters":{}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_1_16":{"terrain":"bridge"}, "Map_Tile_16_2":{"terrain":"wall"}, "Map_Tile_16_4":{"terrain":"wall"}, "Map_Tile_16_3":{"terrain":"wall"}, "Map_Tile_16_5":{"terrain":"beach"}, "Map_Tile_13_2":{"terrain":"wall"}, "Map_Tile_8_16":{"terrain":"plains"}, "Map_Tile_15_16":{"terrain":"plains"}, "Map_Tile_15_14":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"plains"}, "Map_Tile_15_12":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"sea"}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_3_2":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_15_10":{"terrain":"sea"}, "Map_Tile_15_7":{"terrain":"sea"}, "Map_Tile_9_6":{"terrain":"sea"}, "Map_Tile_15_5":{"terrain":"beach"}, "Map_Tile_14_14":{"terrain":"plains"}, "Flags":{}, "Map_Tile_14_4":{"terrain":"wall"}, "Map_Tile_15_3":{"terrain":"wall"}, "Map_Tile_10_5":{"terrain":"bridge"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_14_13":{"terrain":"plains"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_11_13":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"beach"}, "Map_Tile_6_15":{"terrain":"plains"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_14_9":{"terrain":"sea"}, "Map_Tile_9_13":{"terrain":"plains"}, "Map_Tile_1_2":{"terrain":"plains"}, "Map_Tile_13_3":{"terrain":"wall"}, "Map_Tile_2_15":{"terrain":"sea"}, "Map_Tile_12_11":{"terrain":"plains"}, "Map_Tile_8_8":{"terrain":"sea"}, "Map_Tile_14_6":{"terrain":"sea"}, "Map_Tile_14_1":{"terrain":"wall"}, "Map_Tile_14_16":{"terrain":"plains"}, "Map_Tile_6_14":{"terrain":"plains"}, "Map_Tile_18_12":{"terrain":"plains"}, "Map_Tile_1_8":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"sea"}, "Map_Tile_9_14":{"terrain":"plains"}, "Map_Tile_1_13":{"terrain":"beach"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_13_16":{"terrain":"plains"}, "Map_Tile_16_12":{"terrain":"plains"}, "Map_Tile_11_6":{"terrain":"sea"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_13_14":{"terrain":"plains"}, "Map_Tile_10_9":{"terrain":"sea"}, "Map_Tile_17_9":{"terrain":"sea"}, "Map_Tile_1_6":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"sea"}, "Map_Tile_8_3":{"terrain":"sea"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_5_4":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_16_16":{"terrain":"plains"}, "Map_Tile_16_1":{"terrain":"wall"}, "Map_Tile_2_9":{"terrain":"plains"}, "Map_Tile_3_13":{"terrain":"beach"}, "Map_Tile_13_1":{"terrain":"wall"}, "Map_Tile_8_10":{"terrain":"sea"}, "Map_Tile_3_5":{"terrain":"plains"}, "Player_Count":3, "Map_Tile_17_0":{"unit":{"state":{}, "rangedDamageTakenPercent":100, "tentacled":false, "items":{}, "grooveId":"smoke_screen", "attackerPlayerId":-1, "attackerUnitClass":"", "factionOverride":"", "stunned":false, "health":100, "canChargeGroove":true, "recruitDiscounts":{}, "attackerId":-1, "killedByLosing":false, "canBeAttacked":true, "loadedUnits":{}, "startPos":{"facing":3, "y":0, "x":17}, "merchantDiscounts":{}, "itemDropNumber":0, "recruits":{}, "hasBeenKilled":false, "setGroove":null, "setHealth":null, "unitClass":{"weaponIds":["vesperWhip"], "verbCostMultiplier":1.0, "loadCapacity":0, "weapons":[{"canMoveAndAttack":true, "canAttackAir":false, "minRange":1, "horizontalAndVerticalExtraWidth":0, "blockedByEnemies":false, "directionality":"omni", "horizontalAndVerticalOnly":false, "terrainExclusion":{}, "unitIdWhenAttacking":"", "id":"vesperWhip", "maxRange":1, "canAttackSubmerged":false, "canCounterAttack":true}], "isDamagingParentUnit":false, "inAir":false, "isAttackable":true, "critConditionId":"", "moveRange":4, "movementType":"walking", "transportTags":{}, "isRecruitable":false, "aliasId":"", "isCommander":true, "inWater":false, "canBeActivated":false, "cost":500, "canReinforce":false, "passiveMultiplier":1.0, "maxHealth":100, "isStructure":false, "reinforceMultiplier":1.0, "tags":["commander", "type.ground.light"], "maxGroove":400, "canAttack":true, "id":"commander_vesper", "resourceCost":3, "canBeCaptured":false, "recruitingCostMultiplier":1.0}, "canBeAttackedFromDistance":true, "itemId":"", "underwater":false, "attachedFlagId":-1, "playerId":2, "unitClassId":"commander_vesper", "hadTurn":false, "blessings":{}, "merchantDiscountMultiplier":0.0, "inTransport":false, "damageTakenPercent":100, "transportedBy":-1, "recruitDiscountMultiplier":0.0, "pos":{"facing":3, "y":0, "x":17}, "id":2, "garrisonClassId":"", "miniGrooveId":"", "grooveCharge":0}, "terrain":"plains"}, "Map_Tile_1_4":{"terrain":"plains"}, "Map_Tile_17_4":{"terrain":"wall"}, "Map_Tile_0_8":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"sea"}, "Map_Tile_3_4":{"terrain":"plains"}, "Map_Tile_12_3":{"terrain":"beach"}, "Map_Tile_18_15":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_1_1":{"terrain":"plains"}, "Map_Tile_17_13":{"terrain":"plains"}, "Map_Tile_2_14":{"terrain":"sea"}, "Map_Tile_1_5":{"terrain":"plains"}, "Map_Size":{"y":17, "x":19}, "Map_Tile_11_5":{"terrain":"bridge"}, "Map_Tile_14_3":{"terrain":"wall"}, "Map_Tile_7_13":{"terrain":"sea"}, "Map_Name":"Observation Isle", "Map_Tile_5_14":{"terrain":"plains"}, "Map_Tile_13_15":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"sea"}, "Map_Tile_8_11":{"terrain":"plains"}, "Map_Tile_6_7":{"terrain":"plains"}, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_11_0":{"terrain":"sea"}, "Map_Tile_1_9":{"terrain":"plains"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_2_12":{"terrain":"plains"}, "Map_Tile_2_1":{"terrain":"plains"}, "Map_Tile_7_15":{"terrain":"plains"}, "Map_Tile_8_0":{"terrain":"sea"}, "Map_Tile_10_7":{"terrain":"sea"}, "Map_Tile_18_0":{"terrain":"wall"}, "Map_Tile_7_5":{"terrain":"bridge"}, "Map_Tile_9_15":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"sea"}, "Map_Tile_9_11":{"terrain":"plains"}, "Map_Tile_3_11":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"plains"}, "Map_Tile_3_15":{"terrain":"sea"}, "Map_Tile_18_3":{"terrain":"wall"}, "Map_Tile_15_1":{"terrain":"wall"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_7_2":{"terrain":"sea"}, "Map_Tile_6_1":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_1_15":{"terrain":"sea"}, "Map_Tile_4_16":{"terrain":"beach"}} \ No newline at end of file +{"Map_Tile_10_15":{"terrain":"plains"}, "Map_Tile_8_11":{"terrain":"plains"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_9_0":{"terrain":"sea"}, "Map_Tile_12_0":{"terrain":"beach"}, "Map_Tile_13_7":{"terrain":"bridge"}, "Map_Tile_14_6":{"terrain":"sea"}, "Map_Tile_16_13":{"terrain":"plains"}, "Map_Tile_18_7":{"terrain":"sea"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_14_16":{"terrain":"plains"}, "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_3_11":{"terrain":"plains"}, "Map_Tile_16_11":{"terrain":"plains"}, "Map_Name":"Observation Isle", "Map_Tile_7_0":{"terrain":"sea"}, "Map_Tile_6_15":{"terrain":"plains"}, "Objectives":["Step on Observation Isle (No Requirements).", "Kill player 3's commander (Requires Walls event).", "Win with standard conditions."], "Map_Tile_15_16":{"terrain":"plains"}, "Map_Tile_9_10":{"terrain":"sea"}, "Map_Tile_3_2":{"terrain":"plains"}, "Map_Tile_4_0":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"sea"}, "Map_Tile_13_2":{"terrain":"wall"}, "Map_Tile_14_10":{"terrain":"sea"}, "Flags":{}, "Player_1":{"recruit_warship":true, "recruit_kraken":true, "recruit_rifleman":true, "recruit_travelboat":true, "recruit_dog":true, "recruit_trebuchet":true, "recruit_giant":true, "recruit_soldier":true, "team":0, "recruit_caravel":true, "recruit_harpoonship":true, "recruit_ballista":true, "recruit_turtle":true, "recruit_griffin_walking":true, "recruit_spearman":true, "recruit_wagon":true, "recruit_archer":true, "recruit_dragon":true, "recruit_mage":true, "recruit_harpy":true, "recruit_balloon":true, "recruit_knight":true, "recruit_merman":true, "recruit_frog":true, "recruit_witch":true, "gold":100, "recruit_thief":true}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_2_0":{"terrain":"plains"}, "Map_Tile_2_16":{"terrain":"bridge"}, "Player_Count":3, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_16_5":{"terrain":"beach"}, "Map_Tile_3_14":{"terrain":"sea"}, "Map_Tile_9_6":{"terrain":"sea"}, "Author":"Fly Sniper", "Map_Tile_8_2":{"terrain":"sea"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_10_3":{"terrain":"sea"}, "Map_Tile_11_0":{"terrain":"sea"}, "Map_Tile_13_6":{"terrain":"bridge"}, "Map_Tile_10_0":{"terrain":"sea"}, "Map_Tile_9_11":{"terrain":"plains"}, "Map_Tile_7_16":{"terrain":"plains"}, "Map_Tile_13_1":{"terrain":"wall"}, "Map_Tile_14_13":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"plains"}, "Map_Tile_12_16":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"beach"}, "Map_Tile_9_3":{"terrain":"sea"}, "Map_Tile_8_16":{"terrain":"plains"}, "Map_Tile_18_3":{"terrain":"wall"}, "Map_Tile_17_11":{"terrain":"plains"}, "Map_Tile_1_8":{"terrain":"plains"}, "Map_Tile_15_9":{"terrain":"sea"}, "Map_Tile_2_1":{"terrain":"plains"}, "Map_Tile_1_13":{"terrain":"beach"}, "Map_Tile_4_12":{"terrain":"beach"}, "Map_Tile_10_16":{"terrain":"plains"}, "Map_Tile_15_5":{"terrain":"beach"}, "Map_Tile_1_4":{"terrain":"plains"}, "Map_Tile_2_14":{"terrain":"sea"}, "Map_Tile_17_8":{"terrain":"sea", "unit":{"attachedFlagId":-1, "pos":{"y":8, "x":17, "facing":3}, "garrisonClassId":"", "playerId":1, "itemId":"", "merchantDiscounts":{}, "attackerPlayerId":-1, "hasBeenKilled":false, "factionOverride":"", "attackerUnitClass":"", "state":{}, "transportedBy":-1, "killedByLosing":false, "recruits":{}, "attackerId":-1, "blessings":{}, "miniGrooveId":"", "stunned":false, "health":100, "rangedDamageTakenPercent":100, "recruitDiscountMultiplier":0.0, "setGroove":null, "tentacled":false, "hadTurn":false, "id":1, "canBeAttackedFromDistance":true, "underwater":false, "grooveCharge":0, "setHealth":null, "canChargeGroove":true, "items":{}, "loadedUnits":{}, "inTransport":false, "grooveId":"", "itemDropNumber":0, "damageTakenPercent":100, "unitClassId":"caravel", "recruitDiscounts":{}, "startPos":{"y":8, "x":17, "facing":3}, "merchantDiscountMultiplier":0.0, "canBeAttacked":true, "unitClass":{"isCommander":false, "isStructure":false, "isDamagingParentUnit":false, "resourceCost":1, "aliasId":"", "weapons":[{"canAttackSubmerged":false, "directionality":"omni", "minRange":1, "id":"caravelWeapon", "unitIdWhenAttacking":"", "canMoveAndAttack":true, "terrainExclusion":{}, "canAttackAir":false, "blockedByEnemies":false, "horizontalAndVerticalExtraWidth":0, "horizontalAndVerticalOnly":false, "maxRange":1, "canCounterAttack":true}], "isRecruitable":true, "isAttackable":true, "inAir":false, "loadCapacity":0, "passiveMultiplier":1.5, "canBeCaptured":false, "canReinforce":false, "moveRange":5, "verbCostMultiplier":1.0, "maxHealth":100, "cost":250, "reinforceMultiplier":1.0, "tags":["caravel", "type.sea.light"], "id":"caravel", "canBeActivated":false, "movementType":"river_sailing", "maxGroove":0, "inWater":true, "weaponIds":["caravelWeapon"], "transportTags":{}, "recruitingCostMultiplier":1.0, "canAttack":true, "critConditionId":""}}}, "Map_Tile_15_13":{"terrain":"plains"}, "Map_Tile_1_15":{"terrain":"sea"}, "Map_Tile_15_6":{"terrain":"sea"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_16_10":{"terrain":"sea"}, "Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_8_12":{"terrain":"plains"}, "Map_Tile_8_6":{"terrain":"sea"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_1_16":{"terrain":"bridge"}, "Map_Tile_15_0":{"terrain":"wall"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_8_7":{"terrain":"sea"}, "Map_Tile_1_10":{"terrain":"plains"}, "Map_Tile_2_15":{"terrain":"sea"}, "Map_Tile_10_4":{"terrain":"sea"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"sea"}, "Map_Tile_18_11":{"terrain":"plains"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_10_10":{"terrain":"sea"}, "Map_Tile_1_3":{"terrain":"plains"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"sea"}, "Map_Tile_4_7":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_3_4":{"terrain":"plains"}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_16_0":{"terrain":"wall"}, "Map_Tile_1_14":{"terrain":"sea"}, "Map_Tile_7_5":{"terrain":"bridge"}, "Map_Tile_1_1":{"terrain":"plains"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_18_14":{"terrain":"plains"}, "Map_Tile_12_14":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_13_13":{"terrain":"plains"}, "Map_Tile_13_16":{"terrain":"plains"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_14_14":{"terrain":"plains"}, "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_15_12":{"terrain":"plains"}, "Map_Tile_7_2":{"terrain":"sea"}, "Map_Tile_0_14":{"terrain":"bridge"}, "Map_Tile_4_11":{"terrain":"plains"}, "Map_Tile_8_0":{"terrain":"sea"}, "Map_Tile_12_1":{"terrain":"beach"}, "Map_Tile_0_16":{"terrain":"plains"}, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_17_6":{"terrain":"sea"}, "Map_Tile_9_5":{"terrain":"bridge"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_0_13":{"terrain":"beach"}, "Map_Tile_15_15":{"terrain":"plains"}, "Map_Tile_11_16":{"terrain":"plains"}, "Map_Tile_12_13":{"terrain":"plains"}, "Map_Tile_13_15":{"terrain":"plains"}, "Map_Tile_8_5":{"terrain":"bridge"}, "Map_Tile_17_14":{"terrain":"plains"}, "Map_Tile_7_3":{"terrain":"sea"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_8_15":{"terrain":"plains"}, "Map_Tile_12_2":{"terrain":"beach"}, "Map_Tile_14_4":{"terrain":"wall"}, "Map_Tile_16_7":{"terrain":"sea"}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_17_13":{"terrain":"plains"}, "Triggers":[{"players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["99992", "Observation Isle", "Fly Sniper", "Step on Observation Isle (No Requirements).", "Kill player 3's commander (Requires Walls event).", "", "Win with standard conditions."], "enabled":true, "id":"ap_export"}], "recurring":"start_of_match", "conditions":{}, "isIntro":false, "id":"AP: Export", "enabled":true}, {"players":[1, 1, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["current"], "enabled":true, "id":"eliminate"}], "recurring":"oncePerPlayer", "conditions":[{"parameters":["current", "0", "0", "*unit_structure", "-1"], "enabled":true, "id":"unit_presence"}], "isIntro":false, "id":"$trigger_default_defeat_no_units", "enabled":true}, {"players":[1, 1, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["current"], "enabled":true, "id":"eliminate"}], "recurring":"oncePerPlayer", "conditions":[{"parameters":["*commander", "current", "-1"], "enabled":true, "id":"unit_lost"}], "isIntro":false, "id":"$trigger_default_defeat_commander", "enabled":true}, {"players":[1, 1, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["current"], "enabled":true, "id":"eliminate"}], "recurring":"oncePerPlayer", "conditions":[{"parameters":["hq", "current", "-1"], "enabled":true, "id":"unit_lost"}], "isIntro":false, "id":"$trigger_default_defeat_hq", "enabled":true}, {"players":[1, 1, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["current"], "enabled":true, "id":"victory"}], "recurring":"oncePerPlayer", "conditions":[{"parameters":["current", "3", "2"], "enabled":true, "id":"number_of_opponents"}], "isIntro":false, "id":"Victory (One Opponent Left)", "enabled":true}, {"players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["0", "-10", "0", "0", "50", "0", "0", "0", "0"], "enabled":true, "id":"map_randomize"}, {"parameters":["5", "-12", "0", "0", "0", "50", "10", "5", "0"], "enabled":true, "id":"map_randomize"}, {"parameters":["3", "0", "0", "0", "0", "0", "0", "8", "0"], "enabled":true, "id":"position_asymmetric_randomize"}, {"parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"], "enabled":true, "id":"ap_spawn_unit"}, {"parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"], "enabled":true, "id":"ap_spawn_unit"}, {"parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "enabled":true, "id":"ap_spawn_unit"}, {"parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "enabled":true, "id":"ap_spawn_unit"}, {"parameters":["barracks", "3", "P1", "1", "1", "3", "1", "undefined", "centre"], "enabled":true, "id":"ap_spawn_unit"}, {"parameters":["barracks", "4", "P2", "1", "1", "2", "1", "undefined", "centre"], "enabled":true, "id":"ap_spawn_unit"}, {"parameters":["*structure", "P2", "4", "4", "1"], "enabled":true, "id":"unit_random_teleport"}, {"parameters":["*structure", "-1", "any", "0", "100"], "enabled":true, "id":"modify_health"}], "recurring":"start_of_match", "conditions":{}, "isIntro":false, "id":"Generate Map", "enabled":true}, {"players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["bellToll", "6"], "enabled":true, "id":"play_sound_effect"}, {"parameters":["3000", "2", "2", "5"], "enabled":true, "id":"screenshake"}, {"parameters":["3000"], "enabled":true, "id":"wait"}, {"parameters":["6", "-10", "0", "0", "0", "50", "0", "0", "0"], "enabled":true, "id":"map_randomize"}], "recurring":"start_of_match", "conditions":[{"parameters":["252024", "0", "1"], "enabled":true, "id":"ap_has_item"}], "isIntro":false, "id":"Walls Crumble", "enabled":true}, {"players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["253048"], "enabled":true, "id":"ap_location_send"}], "recurring":"end_of_match", "conditions":[{"parameters":["current"], "enabled":true, "id":"player_victorious"}], "isIntro":false, "id":"P1 Victorious (253048)", "enabled":true}, {"players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["253049"], "enabled":true, "id":"ap_location_send"}], "recurring":"once", "conditions":[{"parameters":["P1", "1", "0", "*unit_structure", "6"], "enabled":true, "id":"unit_presence"}], "isIntro":false, "id":"Become the Watcher (253049)", "enabled":true}, {"players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"parameters":["253050"], "enabled":true, "id":"ap_location_send"}], "recurring":"once", "conditions":[{"parameters":["*unit", "P1", "*commander", "P3", "-1"], "enabled":true, "id":"unit_killed"}], "isIntro":false, "id":"Execute the Watcher (253050)", "enabled":true}], "Map_Tile_7_10":{"terrain":"beach"}, "Map_Tile_17_15":{"terrain":"plains"}, "Map_Tile_15_2":{"terrain":"wall"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_1_2":{"terrain":"plains"}, "Map_Tile_16_12":{"terrain":"plains"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_1_5":{"terrain":"plains"}, "Map_Tile_1_9":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_18_6":{"terrain":"sea"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"sea"}, "Map_Tile_17_3":{"terrain":"wall"}, "Map_Tile_3_1":{"terrain":"plains"}, "Map_Tile_8_10":{"terrain":"sea"}, "Map_Tile_12_8":{"terrain":"sea"}, "Map_Tile_0_8":{"terrain":"plains"}, "Map_Tile_11_13":{"terrain":"plains"}, "Map_Tile_10_11":{"terrain":"plains"}, "Map_Size":{"x":19, "y":17}, "Map_Tile_10_7":{"terrain":"sea"}, "Map_Tile_0_15":{"terrain":"bridge"}, "Map_Tile_2_9":{"terrain":"plains"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_14_1":{"terrain":"wall"}, "Map_Tile_1_6":{"terrain":"plains"}, "Map_Tile_3_5":{"terrain":"plains"}, "Counters":{}, "Locations":{"1":{"interactable":false, "getArea":null, "name":"P1 Stronghold Location", "setArea":null, "positions":[{"x":4, "y":9}, {"x":3, "y":9}, {"x":2, "y":9}, {"x":2, "y":8}, {"x":4, "y":8}, {"x":3, "y":8}, {"x":5, "y":8}, {"x":5, "y":9}], "id":1, "centre":{"x":4, "y":9}}, "2":{"interactable":false, "getArea":null, "name":"P2 Stronghold Location", "setArea":null, "positions":[{"x":10, "y":13}, {"x":9, "y":14}, {"x":8, "y":14}, {"x":10, "y":12}, {"x":9, "y":13}, {"x":7, "y":14}, {"x":7, "y":15}, {"x":10, "y":11}], "id":2, "centre":{"x":9, "y":13}}, "3":{"interactable":false, "getArea":null, "name":"P1 Starting Zone", "setArea":null, "positions":[{"x":0, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":3, "y":0}, {"x":4, "y":1}, {"x":4, "y":2}, {"x":3, "y":2}, {"x":2, "y":0}, {"x":1, "y":0}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":6, "y":1}, {"x":5, "y":1}, {"x":5, "y":2}, {"x":6, "y":2}], "id":3, "centre":{"x":3, "y":1}}, "4":{"interactable":false, "getArea":null, "name":"P2 Starting Zone", "setArea":null, "positions":[{"x":12, "y":12}, {"x":12, "y":11}, {"x":13, "y":11}, {"x":13, "y":12}, {"x":13, "y":13}, {"x":13, "y":14}, {"x":13, "y":15}, {"x":13, "y":16}, {"x":12, "y":16}, {"x":12, "y":15}, {"x":12, "y":14}, {"x":12, "y":13}, {"x":11, "y":11}, {"x":11, "y":12}, {"x":11, "y":13}, {"x":11, "y":14}, {"x":11, "y":15}, {"x":11, "y":16}], "id":4, "centre":{"x":12, "y":14}}, "5":{"interactable":false, "getArea":null, "name":"Land", "setArea":null, "positions":[{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":6, "y":1}, {"x":5, "y":1}, {"x":4, "y":1}, {"x":3, "y":1}, {"x":2, "y":1}, {"x":1, "y":1}, {"x":0, "y":1}, {"x":0, "y":2}, {"x":0, "y":3}, {"x":0, "y":4}, {"x":0, "y":5}, {"x":0, "y":6}, {"x":0, "y":7}, {"x":0, "y":8}, {"x":0, "y":9}, {"x":0, "y":10}, {"x":0, "y":11}, {"x":0, "y":12}, {"x":1, "y":12}, {"x":2, "y":12}, {"x":3, "y":12}, {"x":3, "y":11}, {"x":2, "y":11}, {"x":1, "y":11}, {"x":1, "y":10}, {"x":1, "y":9}, {"x":1, "y":8}, {"x":1, "y":7}, {"x":1, "y":6}, {"x":1, "y":5}, {"x":1, "y":4}, {"x":1, "y":3}, {"x":6, "y":2}, {"x":5, "y":2}, {"x":4, "y":2}, {"x":3, "y":2}, {"x":2, "y":2}, {"x":2, "y":3}, {"x":2, "y":4}, {"x":2, "y":5}, {"x":2, "y":6}, {"x":2, "y":7}, {"x":2, "y":9}, {"x":2, "y":10}, {"x":3, "y":10}, {"x":4, "y":10}, {"x":4, "y":11}, {"x":5, "y":10}, {"x":5, "y":9}, {"x":6, "y":9}, {"x":4, "y":9}, {"x":3, "y":9}, {"x":3, "y":8}, {"x":4, "y":8}, {"x":5, "y":8}, {"x":6, "y":8}, {"x":6, "y":7}, {"x":6, "y":6}, {"x":6, "y":5}, {"x":6, "y":4}, {"x":6, "y":3}, {"x":5, "y":3}, {"x":4, "y":3}, {"x":3, "y":3}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":4, "y":5}, {"x":4, "y":6}, {"x":4, "y":7}, {"x":3, "y":7}, {"x":3, "y":5}, {"x":5, "y":4}, {"x":5, "y":5}, {"x":5, "y":6}, {"x":3, "y":6}, {"x":5, "y":7}, {"x":5, "y":14}, {"x":6, "y":14}, {"x":6, "y":13}, {"x":7, "y":13}, {"x":7, "y":12}, {"x":8, "y":12}, {"x":8, "y":11}, {"x":9, "y":11}, {"x":9, "y":12}, {"x":8, "y":13}, {"x":6, "y":15}, {"x":5, "y":15}, {"x":5, "y":16}, {"x":6, "y":16}, {"x":7, "y":16}, {"x":8, "y":16}, {"x":9, "y":16}, {"x":10, "y":16}, {"x":11, "y":16}, {"x":12, "y":16}, {"x":13, "y":16}, {"x":14, "y":16}, {"x":15, "y":16}, {"x":16, "y":16}, {"x":17, "y":16}, {"x":18, "y":16}, {"x":18, "y":15}, {"x":18, "y":14}, {"x":18, "y":13}, {"x":18, "y":12}, {"x":18, "y":11}, {"x":17, "y":11}, {"x":16, "y":11}, {"x":15, "y":11}, {"x":14, "y":11}, {"x":12, "y":11}, {"x":11, "y":11}, {"x":10, "y":11}, {"x":7, "y":14}, {"x":7, "y":15}, {"x":8, "y":15}, {"x":8, "y":14}, {"x":9, "y":14}, {"x":9, "y":13}, {"x":10, "y":12}, {"x":11, "y":12}, {"x":10, "y":14}, {"x":9, "y":15}, {"x":12, "y":12}, {"x":12, "y":13}, {"x":12, "y":14}, {"x":10, "y":15}, {"x":11, "y":13}, {"x":13, "y":13}, {"x":14, "y":12}, {"x":15, "y":12}, {"x":16, "y":12}, {"x":15, "y":13}, {"x":14, "y":13}, {"x":14, "y":14}, {"x":13, "y":15}, {"x":13, "y":14}, {"x":13, "y":12}, {"x":12, "y":15}, {"x":14, "y":15}, {"x":15, "y":14}, {"x":16, "y":13}, {"x":17, "y":13}, {"x":17, "y":12}, {"x":16, "y":14}, {"x":16, "y":15}, {"x":17, "y":15}, {"x":17, "y":14}, {"x":15, "y":15}, {"x":0, "y":16}, {"x":11, "y":14}, {"x":1, "y":2}], "id":5, "centre":{"x":7, "y":9}}, "6":{"interactable":false, "getArea":null, "name":"Watcher Area", "setArea":null, "positions":[{"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}, {"x":16, "y":4}, {"x":17, "y":4}, {"x":18, "y":4}, {"x":18, "y":3}, {"x":17, "y":3}, {"x":16, "y":3}, {"x":15, "y":3}, {"x":14, "y":3}, {"x":13, "y":3}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2}, {"x":16, "y":2}, {"x":17, "y":2}, {"x":18, "y":2}, {"x":18, "y":1}, {"x":17, "y":1}, {"x":16, "y":1}, {"x":15, "y":1}, {"x":14, "y":1}, {"x":13, "y":1}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":16, "y":0}, {"x":18, "y":0}, {"x":12, "y":0}, {"x":12, "y":1}, {"x":12, "y":2}, {"x":12, "y":3}, {"x":12, "y":4}, {"x":12, "y":5}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}, {"x":16, "y":5}, {"x":17, "y":5}, {"x":18, "y":5}], "id":6, "centre":{"x":15, "y":3}}, "0":{"interactable":false, "getArea":null, "name":"Sea", "setArea":null, "positions":[{"x":12, "y":10}, {"x":11, "y":10}, {"x":10, "y":10}, {"x":9, "y":10}, {"x":8, "y":10}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":6}, {"x":12, "y":7}, {"x":12, "y":8}, {"x":12, "y":9}, {"x":10, "y":9}, {"x":9, "y":9}, {"x":8, "y":9}, {"x":7, "y":9}, {"x":10, "y":8}, {"x":11, "y":8}, {"x":11, "y":9}, {"x":11, "y":7}, {"x":11, "y":6}, {"x":11, "y":4}, {"x":11, "y":3}, {"x":8, "y":3}, {"x":7, "y":3}, {"x":7, "y":4}, {"x":10, "y":3}, {"x":9, "y":3}, {"x":7, "y":8}, {"x":8, "y":8}, {"x":8, "y":7}, {"x":9, "y":7}, {"x":10, "y":7}, {"x":9, "y":8}, {"x":10, "y":6}, {"x":10, "y":4}, {"x":9, "y":4}, {"x":8, "y":4}, {"x":9, "y":6}, {"x":8, "y":6}, {"x":7, "y":6}, {"x":7, "y":7}, {"x":14, "y":6}, {"x":15, "y":6}, {"x":16, "y":6}, {"x":17, "y":6}, {"x":18, "y":6}, {"x":18, "y":7}, {"x":18, "y":8}, {"x":18, "y":9}, {"x":18, "y":10}, {"x":17, "y":10}, {"x":16, "y":10}, {"x":15, "y":10}, {"x":14, "y":10}, {"x":14, "y":7}, {"x":15, "y":7}, {"x":16, "y":7}, {"x":17, "y":7}, {"x":17, "y":9}, {"x":16, "y":9}, {"x":15, "y":9}, {"x":14, "y":9}, {"x":14, "y":8}, {"x":15, "y":8}, {"x":16, "y":8}, {"x":11, "y":1}, {"x":11, "y":0}, {"x":10, "y":0}, {"x":9, "y":0}, {"x":8, "y":0}, {"x":7, "y":0}, {"x":7, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":8, "y":1}, {"x":3, "y":14}, {"x":2, "y":14}, {"x":1, "y":14}, {"x":1, "y":15}, {"x":2, "y":15}, {"x":3, "y":15}, {"x":17, "y":8}], "id":0, "centre":{"x":11, "y":7}}}, "Map_Tile_4_15":{"terrain":"beach"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_17_9":{"terrain":"sea"}, "Map_Tile_9_14":{"terrain":"plains"}, "Map_Tile_8_8":{"terrain":"sea"}, "Map_Tile_18_13":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_15_4":{"terrain":"wall"}, "Map_Tile_11_9":{"terrain":"sea"}, "Map_Tile_18_10":{"terrain":"sea"}, "Map_Tile_11_15":{"terrain":"plains"}, "Map_Tile_18_8":{"terrain":"sea"}, "Map_Tile_11_5":{"terrain":"bridge"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Tile_3_15":{"terrain":"sea"}, "Map_Tile_18_12":{"terrain":"plains"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_8_1":{"terrain":"sea"}, "Map_Tile_18_1":{"terrain":"wall"}, "Map_Tile_2_13":{"terrain":"beach"}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_15_1":{"terrain":"wall"}, "Map_Tile_17_12":{"terrain":"plains"}, "Map_Tile_17_10":{"terrain":"sea"}, "Map_Tile_10_14":{"terrain":"plains"}, "Map_Tile_13_8":{"terrain":"bridge"}, "Map_Tile_17_7":{"terrain":"sea"}, "Map_Tile_6_10":{"terrain":"beach"}, "Map_Tile_7_1":{"terrain":"sea"}, "Map_Tile_17_5":{"terrain":"beach"}, "Map_Tile_17_4":{"terrain":"wall"}, "Map_Tile_16_3":{"terrain":"wall"}, "Map_Tile_10_8":{"terrain":"sea"}, "Map_Tile_4_16":{"terrain":"beach"}, "Map_Tile_17_2":{"terrain":"wall"}, "Map_Tile_5_4":{"terrain":"plains"}, "Map_Tile_17_1":{"terrain":"wall"}, "Map_Tile_6_16":{"terrain":"plains"}, "Player_2":{"recruit_warship":false, "recruit_kraken":false, "recruit_rifleman":false, "recruit_travelboat":false, "recruit_dog":true, "recruit_trebuchet":false, "recruit_giant":false, "recruit_soldier":true, "team":1, "recruit_caravel":true, "recruit_harpoonship":false, "recruit_ballista":false, "recruit_turtle":true, "recruit_griffin_walking":true, "recruit_spearman":true, "recruit_wagon":false, "recruit_archer":true, "recruit_dragon":false, "recruit_mage":true, "recruit_harpy":false, "recruit_balloon":false, "recruit_knight":false, "recruit_merman":false, "recruit_frog":true, "recruit_witch":false, "gold":100, "recruit_thief":true}, "Map_Tile_16_15":{"terrain":"plains"}, "Map_Tile_16_2":{"terrain":"wall"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_16_14":{"terrain":"plains"}, "Map_Tile_10_1":{"terrain":"sea"}, "Map_Tile_16_9":{"terrain":"sea"}, "Map_Tile_16_8":{"terrain":"sea"}, "Map_Tile_16_6":{"terrain":"sea"}, "Map_Tile_16_4":{"terrain":"wall"}, "Map_Tile_16_1":{"terrain":"wall"}, "Map_Tile_0_5":{"terrain":"plains"}, "Map_Tile_8_13":{"terrain":"plains"}, "Map_Tile_15_14":{"terrain":"plains"}, "Map_Tile_10_13":{"terrain":"plains"}, "Map_Tile_14_8":{"terrain":"sea"}, "Map_Tile_15_10":{"terrain":"sea"}, "Map_Tile_15_8":{"terrain":"sea"}, "Map_Tile_5_2":{"terrain":"plains"}, "Map_Tile_15_7":{"terrain":"sea"}, "Map_Tile_18_4":{"terrain":"wall"}, "Map_Tile_11_14":{"terrain":"plains"}, "Map_Tile_3_12":{"terrain":"plains"}, "Map_Tile_15_3":{"terrain":"wall"}, "Map_Tile_5_13":{"terrain":"beach"}, "Map_Tile_17_16":{"terrain":"plains"}, "Map_Tile_14_15":{"terrain":"plains"}, "Map_Tile_14_9":{"terrain":"sea"}, "Map_Tile_17_0":{"terrain":"plains", "unit":{"attachedFlagId":-1, "pos":{"y":0, "x":17, "facing":3}, "garrisonClassId":"", "playerId":2, "itemId":"", "merchantDiscounts":{}, "attackerPlayerId":-1, "hasBeenKilled":false, "factionOverride":"", "attackerUnitClass":"", "state":{}, "transportedBy":-1, "killedByLosing":false, "recruits":{}, "attackerId":-1, "blessings":{}, "miniGrooveId":"", "stunned":false, "health":100, "rangedDamageTakenPercent":100, "recruitDiscountMultiplier":0.0, "setGroove":null, "tentacled":false, "hadTurn":false, "id":2, "canBeAttackedFromDistance":true, "underwater":false, "grooveCharge":0, "setHealth":null, "canChargeGroove":true, "items":{}, "loadedUnits":{}, "inTransport":false, "grooveId":"smoke_screen", "itemDropNumber":0, "damageTakenPercent":100, "unitClassId":"commander_vesper", "recruitDiscounts":{}, "startPos":{"y":0, "x":17, "facing":3}, "merchantDiscountMultiplier":0.0, "canBeAttacked":true, "unitClass":{"isCommander":true, "isStructure":false, "isDamagingParentUnit":false, "resourceCost":3, "aliasId":"", "weapons":[{"canAttackSubmerged":false, "directionality":"omni", "minRange":1, "id":"vesperWhip", "unitIdWhenAttacking":"", "canMoveAndAttack":true, "terrainExclusion":{}, "canAttackAir":false, "blockedByEnemies":false, "horizontalAndVerticalExtraWidth":0, "horizontalAndVerticalOnly":false, "maxRange":1, "canCounterAttack":true}], "isRecruitable":false, "isAttackable":true, "inAir":false, "loadCapacity":0, "passiveMultiplier":1.0, "canBeCaptured":false, "canReinforce":false, "moveRange":4, "verbCostMultiplier":1.0, "maxHealth":100, "cost":500, "reinforceMultiplier":1.0, "tags":["commander", "type.ground.light"], "id":"commander_vesper", "canBeActivated":false, "movementType":"walking", "maxGroove":400, "inWater":false, "weaponIds":["vesperWhip"], "transportTags":{}, "recruitingCostMultiplier":1.0, "canAttack":true, "critConditionId":""}}}, "Map_Tile_15_11":{"terrain":"plains"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"sea"}, "Map_Tile_5_11":{"terrain":"beach"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_3_13":{"terrain":"beach"}, "Map_Tile_14_5":{"terrain":"beach"}, "Map_Tile_13_3":{"terrain":"wall"}, "Map_Tile_14_3":{"terrain":"wall"}, "Map_Tile_14_2":{"terrain":"wall"}, "Map_Tile_14_0":{"terrain":"wall"}, "Map_Tile_18_5":{"terrain":"beach"}, "Map_Tile_4_14":{"terrain":"beach"}, "Map_Tile_7_11":{"terrain":"beach"}, "Map_Tile_13_14":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"beach"}, "Map_Tile_2_12":{"terrain":"plains"}, "Map_Tile_13_10":{"terrain":"bridge"}, "Map_Tile_7_8":{"terrain":"sea"}, "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"bridge"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_13_4":{"terrain":"wall"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_11_8":{"terrain":"sea"}, "Map_Tile_6_2":{"terrain":"plains"}, "Map_Tile_12_11":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"sea"}, "Map_Tile_11_10":{"terrain":"sea"}, "Map_Tile_13_5":{"terrain":"beach"}, "Map_Tile_13_0":{"terrain":"wall"}, "Map_Tile_6_13":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"sea"}, "Map_Tile_5_14":{"terrain":"plains"}, "Map_Tile_18_0":{"terrain":"wall"}, "Map_Tile_12_15":{"terrain":"plains"}, "Map_Tile_7_13":{"terrain":"sea"}, "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_11_3":{"terrain":"sea"}, "Map_Tile_9_2":{"terrain":"sea"}, "Map_Tile_9_9":{"terrain":"sea"}, "Map_Tile_7_9":{"terrain":"sea"}, "Player_3":{"recruit_warship":false, "recruit_kraken":false, "recruit_rifleman":false, "recruit_travelboat":false, "recruit_dog":true, "recruit_trebuchet":false, "recruit_giant":false, "recruit_soldier":true, "team":2, "recruit_caravel":false, "recruit_harpoonship":false, "recruit_ballista":false, "recruit_turtle":true, "recruit_griffin_walking":true, "recruit_spearman":true, "recruit_wagon":false, "recruit_archer":true, "recruit_dragon":false, "recruit_mage":true, "recruit_harpy":false, "recruit_balloon":false, "recruit_knight":false, "recruit_merman":false, "recruit_frog":true, "recruit_witch":false, "gold":0, "recruit_thief":true}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_12_10":{"terrain":"sea"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_18_2":{"terrain":"wall"}, "Map_Tile_12_9":{"terrain":"sea"}, "Map_Tile_10_5":{"terrain":"bridge"}, "Map_Tile_7_4":{"terrain":"sea"}, "Map_Tile_12_3":{"terrain":"beach"}, "Map_Tile_18_15":{"terrain":"plains"}, "Map_Tile_18_9":{"terrain":"sea"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_9_8":{"terrain":"sea"}, "Map_Tile_5_15":{"terrain":"plains"}, "Map_Tile_11_11":{"terrain":"plains"}, "Map_Tile_7_14":{"terrain":"plains"}, "Map_Tile_6_14":{"terrain":"plains"}, "Map_Tile_6_1":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"sea"}, "Map_Tile_9_16":{"terrain":"plains"}, "Map_Tile_6_7":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"plains"}, "Map_Tile_11_4":{"terrain":"sea"}, "Map_Tile_18_16":{"terrain":"plains"}, "Map_Tile_16_16":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"sea"}, "Map_Tile_12_5":{"terrain":"beach"}, "Map_Tile_6_12":{"terrain":"beach"}, "Map_Tile_14_7":{"terrain":"sea"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_7_15":{"terrain":"plains"}, "Map_Tile_8_9":{"terrain":"sea"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_10_6":{"terrain":"sea"}, "Map_Tile_10_9":{"terrain":"sea"}, "Map_Tile_11_6":{"terrain":"sea"}, "Map_Tile_9_13":{"terrain":"plains"}, "Map_Tile_2_11":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_5_16":{"terrain":"plains"}, "Map_Tile_9_1":{"terrain":"sea"}, "Map_Tile_9_15":{"terrain":"plains"}, "Map_Tile_8_14":{"terrain":"plains"}, "Map_Tile_3_16":{"terrain":"bridge"}, "Map_Tile_4_1":{"terrain":"plains"}, "Map_Tile_5_3":{"terrain":"plains"}, "Map_Tile_13_11":{"terrain":"plains"}, "Map_Tile_4_13":{"terrain":"beach"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_8_3":{"terrain":"sea"}, "Map_Tile_1_11":{"terrain":"plains"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_8_4":{"terrain":"sea"}, "Map_Tile_7_6":{"terrain":"sea"}, "Map_Tile_6_11":{"terrain":"beach"}} \ No newline at end of file diff --git a/worlds/wargroove2/levels/Swimming_at_the_Docks.json b/worlds/wargroove2/levels/Swimming_at_the_Docks.json index a5d315894524..acacfc43a850 100644 --- a/worlds/wargroove2/levels/Swimming_at_the_Docks.json +++ b/worlds/wargroove2/levels/Swimming_at_the_Docks.json @@ -1 +1 @@ -{"Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_1_3":{"terrain":"beach"}, "Map_Tile_8_7":{"terrain":"plains"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_8_5":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"plains"}, "Map_Tile_10_9":{"terrain":"plains"}, "Map_Tile_11_8":{"terrain":"plains"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_5_2":{"terrain":"plains"}, "Map_Tile_13_0":{"terrain":"plains"}, "Map_Name":"Swimming at the Docks", "Map_Tile_6_11":{"terrain":"beach"}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_7_11":{"terrain":"beach"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_13_8":{"terrain":"beach"}, "Map_Tile_11_5":{"terrain":"plains"}, "Map_Tile_14_0":{"terrain":"plains"}, "Map_Tile_3_1":{"terrain":"beach"}, "Map_Tile_5_4":{"terrain":"plains"}, "Map_Tile_12_0":{"terrain":"plains"}, "Map_Tile_13_3":{"terrain":"beach"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_12_8":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"plains"}, "Map_Tile_4_0":{"terrain":"plains"}, "Map_Tile_5_11":{"terrain":"beach"}, "Map_Tile_13_11":{"terrain":"beach"}, "Map_Tile_1_6":{"terrain":"beach"}, "Map_Tile_8_12":{"terrain":"plains"}, "Map_Tile_9_9":{"terrain":"plains"}, "Map_Tile_14_6":{"terrain":"plains"}, "Objectives":["Kill a knight with a dog.", "Build 2 riverboats.", "Win with standard conditions."], "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_13_4":{"terrain":"beach"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_12_1":{"terrain":"beach"}, "Map_Tile_10_6":{"terrain":"plains"}, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_8_3":{"terrain":"plains"}, "Map_Tile_12_9":{"terrain":"plains"}, "Map_Tile_14_4":{"terrain":"plains"}, "Map_Tile_7_0":{"terrain":"plains"}, "Map_Tile_2_9":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Flags":{}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_9_5":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"plains"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_8_4":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"plains"}, "Map_Tile_7_10":{"terrain":"plains"}, "Triggers":[{"actions":[{"enabled":true, "parameters":["67190", "Swimming at the Docks", "Fly Sniper", "Kill a knight with a dog.", "Build 2 riverboats.", "", "Win with standard conditions."], "id":"ap_export"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"start_of_match", "id":"AP: Export", "isIntro":false, "conditions":{}, "enabled":true}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_no_units", "isIntro":false, "conditions":[{"enabled":true, "parameters":["current", "0", "0", "*unit_structure", "-1"], "id":"unit_presence"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_commander", "isIntro":false, "conditions":[{"enabled":true, "parameters":["*commander", "current", "-1"], "id":"unit_lost"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["current"], "id":"eliminate"}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_defeat_hq", "isIntro":false, "conditions":[{"enabled":true, "parameters":["hq", "current", "-1"], "id":"unit_lost"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["current"], "id":"victory"}], "players":[1, 1, 0, 0, 0, 0, 0, 0], "recurring":"oncePerPlayer", "id":"$trigger_default_victory", "isIntro":false, "conditions":[{"enabled":true, "parameters":["current", "0", "0"], "id":"number_of_opponents"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["0", "-3", "0", "75", "25", "0", "0", "0", "0"], "id":"map_randomize"}, {"enabled":true, "parameters":["3", "0", "0", "0", "0", "0", "2", "5", "0"], "id":"position_asymmetric_randomize"}, {"enabled":true, "parameters":["port", "0", "neutral", "1", "1", "4", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["soldier", "3", "P1", "1", "1", "3", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["dog", "3", "P1", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["spearman", "3", "P1", "1", "1", "2", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["mage", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["soldier", "4", "P2", "1", "1", "4", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["frog", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["merman", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["knight", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["barracks", "3", "P1", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}, {"enabled":true, "parameters":["barracks", "4", "P2", "1", "1", "1", "1", "undefined", "centre"], "id":"ap_spawn_unit"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"start_of_match", "id":"Generate Map", "isIntro":false, "conditions":{}, "enabled":true}, {"actions":[{"enabled":true, "parameters":["253042"], "id":"ap_location_send"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"end_of_match", "id":"P1 Victorious (253042)", "isIntro":false, "conditions":[{"enabled":true, "parameters":["current"], "id":"player_victorious"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["happy", "caesar", "Woof!", "1", "Dog"], "id":"dialogue_box_simple"}, {"enabled":true, "parameters":["253043"], "id":"ap_location_send"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"once", "id":"Dog Kills Knight (253043)", "isIntro":false, "conditions":[{"enabled":true, "parameters":["dog", "current", "knight", "P2", "-1"], "id":"unit_killed"}], "enabled":true}, {"actions":[{"enabled":true, "parameters":["253044"], "id":"ap_location_send"}], "players":[1, 0, 0, 0, 0, 0, 0, 0], "recurring":"once", "id":"P1 has 2 Riverboats (253044)", "isIntro":false, "conditions":[{"enabled":true, "parameters":["current", "4", "2", "caravel", "-1"], "id":"unit_presence"}], "enabled":true}], "Map_Tile_1_1":{"terrain":"beach"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_14_7":{"terrain":"plains"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_2_0":{"terrain":"plains"}, "Map_Tile_11_6":{"terrain":"plains"}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_8_9":{"terrain":"plains"}, "Map_Tile_9_10":{"terrain":"plains"}, "Map_Tile_10_11":{"terrain":"beach"}, "Map_Tile_9_3":{"terrain":"plains"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_11_9":{"terrain":"plains"}, "Player_Count":2, "Map_Tile_8_6":{"terrain":"plains"}, "Map_Tile_14_1":{"terrain":"plains"}, "Map_Tile_1_8":{"terrain":"beach"}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_9_2":{"terrain":"plains"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"beach"}, "Map_Tile_13_7":{"terrain":"beach"}, "Map_Size":{"y":13, "x":15}, "Map_Tile_12_11":{"terrain":"beach"}, "Map_Tile_6_1":{"terrain":"beach"}, "Map_Tile_8_8":{"terrain":"plains"}, "Map_Tile_10_10":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"plains"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_11_10":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"plains"}, "Map_Tile_13_2":{"terrain":"beach"}, "Map_Tile_13_1":{"terrain":"beach"}, "Map_Tile_13_6":{"terrain":"beach"}, "Map_Tile_10_5":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"plains"}, "Map_Tile_6_10":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"plains"}, "Map_Tile_12_5":{"terrain":"plains"}, "Map_Tile_7_5":{"terrain":"plains"}, "Map_Tile_12_3":{"terrain":"plains"}, "Map_Tile_12_2":{"terrain":"plains"}, "Map_Tile_2_1":{"terrain":"beach"}, "Map_Tile_8_1":{"terrain":"beach"}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_13_5":{"terrain":"beach"}, "Map_Tile_14_2":{"terrain":"plains"}, "Map_Tile_7_1":{"terrain":"beach"}, "Map_Tile_14_5":{"terrain":"plains"}, "Map_Tile_1_9":{"terrain":"beach"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_1_2":{"terrain":"beach"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_11_3":{"terrain":"plains"}, "Map_Tile_3_4":{"terrain":"plains"}, "Locations":{"1":{"setArea":null, "name":"P1 Stronghold Location", "getArea":null, "id":1, "centre":{"y":6, "x":1}, "interactable":false, "positions":[{"y":4, "x":0}, {"y":4, "x":1}, {"y":4, "x":2}, {"y":5, "x":2}, {"y":6, "x":2}, {"y":7, "x":2}, {"y":8, "x":2}, {"y":8, "x":1}, {"y":8, "x":0}, {"y":7, "x":0}, {"y":6, "x":0}, {"y":5, "x":0}, {"y":5, "x":1}, {"y":6, "x":1}, {"y":7, "x":1}]}, "2":{"setArea":null, "name":"P2 Stronghold Location", "getArea":null, "id":2, "centre":{"y":6, "x":13}, "interactable":false, "positions":[{"y":4, "x":12}, {"y":5, "x":12}, {"y":6, "x":12}, {"y":7, "x":12}, {"y":8, "x":12}, {"y":8, "x":13}, {"y":8, "x":14}, {"y":7, "x":14}, {"y":7, "x":13}, {"y":6, "x":13}, {"y":5, "x":13}, {"y":6, "x":14}, {"y":5, "x":14}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":4, "x":11}, {"y":5, "x":11}, {"y":6, "x":11}, {"y":7, "x":11}, {"y":8, "x":11}]}, "3":{"setArea":null, "name":"P1 Starting Zone", "getArea":null, "id":3, "centre":{"y":2, "x":5}, "interactable":false, "positions":[{"y":0, "x":3}, {"y":1, "x":3}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":1, "x":5}, {"y":0, "x":5}, {"y":0, "x":4}, {"y":1, "x":4}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":7}, {"y":2, "x":6}, {"y":0, "x":7}, {"y":2, "x":7}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":5}, {"y":3, "x":6}, {"y":3, "x":7}]}, "4":{"setArea":null, "name":"P2 Starting Zone", "getArea":null, "id":4, "centre":{"y":10, "x":12}, "interactable":false, "positions":[{"y":8, "x":11}, {"y":8, "x":12}, {"y":8, "x":13}, {"y":8, "x":14}, {"y":9, "x":14}, {"y":10, "x":14}, {"y":11, "x":14}, {"y":11, "x":13}, {"y":12, "x":13}, {"y":12, "x":12}, {"y":12, "x":11}, {"y":12, "x":14}, {"y":12, "x":10}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":9, "x":10}, {"y":9, "x":11}, {"y":9, "x":12}, {"y":10, "x":12}, {"y":10, "x":11}, {"y":9, "x":13}, {"y":10, "x":13}, {"y":11, "x":12}, {"y":11, "x":11}, {"y":11, "x":10}, {"y":10, "x":10}, {"y":11, "x":9}, {"y":12, "x":7}, {"y":7, "x":11}, {"y":7, "x":12}, {"y":7, "x":13}, {"y":7, "x":14}]}, "0":{"setArea":null, "name":"Sea", "getArea":null, "id":0, "centre":{"y":6, "x":7}, "interactable":false, "positions":[{"y":10, "x":12}, {"y":10, "x":11}, {"y":10, "x":10}, {"y":10, "x":9}, {"y":10, "x":8}, {"y":10, "x":7}, {"y":10, "x":6}, {"y":10, "x":5}, {"y":10, "x":4}, {"y":10, "x":3}, {"y":10, "x":2}, {"y":9, "x":2}, {"y":8, "x":2}, {"y":7, "x":2}, {"y":6, "x":2}, {"y":5, "x":2}, {"y":4, "x":2}, {"y":3, "x":2}, {"y":2, "x":2}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":2, "x":6}, {"y":2, "x":7}, {"y":2, "x":8}, {"y":2, "x":9}, {"y":2, "x":10}, {"y":2, "x":11}, {"y":2, "x":12}, {"y":3, "x":12}, {"y":4, "x":12}, {"y":5, "x":12}, {"y":6, "x":12}, {"y":7, "x":12}, {"y":8, "x":12}, {"y":9, "x":12}, {"y":9, "x":10}, {"y":9, "x":9}, {"y":9, "x":8}, {"y":9, "x":7}, {"y":9, "x":6}, {"y":9, "x":5}, {"y":9, "x":4}, {"y":9, "x":3}, {"y":8, "x":10}, {"y":8, "x":11}, {"y":9, "x":11}, {"y":7, "x":11}, {"y":6, "x":11}, {"y":5, "x":11}, {"y":4, "x":11}, {"y":3, "x":11}, {"y":3, "x":8}, {"y":3, "x":7}, {"y":4, "x":7}, {"y":4, "x":6}, {"y":4, "x":5}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":10}, {"y":3, "x":6}, {"y":3, "x":9}, {"y":4, "x":4}, {"y":3, "x":3}, {"y":4, "x":3}, {"y":5, "x":3}, {"y":6, "x":3}, {"y":7, "x":3}, {"y":7, "x":4}, {"y":8, "x":4}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":8, "x":7}, {"y":8, "x":8}, {"y":8, "x":3}, {"y":7, "x":8}, {"y":7, "x":9}, {"y":7, "x":10}, {"y":8, "x":9}, {"y":6, "x":10}, {"y":5, "x":10}, {"y":4, "x":10}, {"y":4, "x":9}, {"y":4, "x":8}, {"y":5, "x":8}, {"y":5, "x":9}, {"y":6, "x":9}, {"y":6, "x":8}, {"y":6, "x":7}, {"y":5, "x":7}, {"y":7, "x":7}, {"y":7, "x":6}, {"y":6, "x":6}, {"y":6, "x":5}, {"y":6, "x":4}, {"y":5, "x":4}, {"y":5, "x":5}, {"y":7, "x":5}, {"y":5, "x":6}]}}, "Map_Tile_6_7":{"terrain":"plains"}, "Map_Tile_9_11":{"terrain":"beach"}, "Map_Tile_1_11":{"terrain":"beach"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_3_11":{"terrain":"beach"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_11_0":{"terrain":"plains"}, "Map_Tile_8_10":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_10_8":{"terrain":"plains"}, "Map_Tile_10_7":{"terrain":"plains"}, "Map_Tile_12_10":{"terrain":"plains"}, "Map_Tile_13_10":{"terrain":"beach"}, "Map_Tile_10_3":{"terrain":"plains"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_10_1":{"terrain":"beach"}, "Map_Tile_10_0":{"terrain":"plains"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_14_3":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"plains"}, "Map_Tile_9_6":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"beach"}, "Map_Tile_4_1":{"terrain":"beach"}, "Map_Tile_11_4":{"terrain":"plains"}, "Map_Tile_3_5":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"beach"}, "Map_Tile_11_11":{"terrain":"beach"}, "Player_1":{"recruit_travelboat":true, "recruit_balloon":true, "recruit_frog":true, "recruit_kraken":true, "recruit_thief":true, "recruit_knight":true, "recruit_archer":true, "recruit_soldier":true, "recruit_ballista":true, "recruit_wagon":true, "recruit_turtle":true, "recruit_dog":true, "recruit_dragon":true, "team":0, "recruit_rifleman":true, "recruit_merman":true, "recruit_spearman":true, "recruit_trebuchet":true, "recruit_mage":true, "recruit_caravel":true, "recruit_witch":true, "gold":100, "recruit_giant":true, "recruit_warship":true, "recruit_harpy":true, "recruit_harpoonship":true, "recruit_griffin_walking":true}, "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_9_1":{"terrain":"beach"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_9_0":{"terrain":"plains"}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_8_11":{"terrain":"beach"}, "Map_Tile_4_7":{"terrain":"plains"}, "Map_Tile_3_2":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"beach"}, "Map_Tile_2_11":{"terrain":"beach"}, "Map_Tile_0_5":{"terrain":"plains"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_8_2":{"terrain":"plains"}, "Map_Tile_8_0":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_7_9":{"terrain":"plains"}, "Map_Tile_6_2":{"terrain":"plains"}, "Player_2":{"recruit_travelboat":false, "recruit_balloon":true, "recruit_frog":true, "recruit_kraken":false, "recruit_thief":true, "recruit_knight":true, "recruit_archer":true, "recruit_soldier":true, "recruit_ballista":false, "recruit_wagon":false, "recruit_turtle":true, "recruit_dog":true, "recruit_dragon":true, "team":1, "recruit_rifleman":true, "recruit_merman":true, "recruit_spearman":true, "recruit_trebuchet":false, "recruit_mage":true, "recruit_caravel":true, "recruit_witch":true, "gold":100, "recruit_giant":true, "recruit_warship":false, "recruit_harpy":true, "recruit_harpoonship":true, "recruit_griffin_walking":true}, "Author":"Fly Sniper", "Map_Tile_4_12":{"terrain":"plains"}, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_9_8":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"plains"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_7_6":{"terrain":"plains"}, "Map_Tile_7_4":{"terrain":"plains"}, "Map_Tile_7_3":{"terrain":"plains"}, "Map_Tile_7_2":{"terrain":"plains"}, "Map_Tile_4_11":{"terrain":"beach"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_6_12":{"terrain":"plains"}, "Map_Tile_14_10":{"terrain":"plains"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_1_4":{"terrain":"beach"}, "Map_Tile_1_10":{"terrain":"beach"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_3_12":{"terrain":"plains"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_2_12":{"terrain":"plains"}, "Map_Tile_5_3":{"terrain":"plains"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_1_5":{"terrain":"beach"}, "Counters":{}, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_0_8":{"terrain":"plains"}} \ No newline at end of file +{"Map_Tile_12_10":{"terrain":"plains"}, "Map_Tile_7_0":{"terrain":"plains"}, "Map_Tile_8_9":{"terrain":"plains"}, "Map_Tile_0_3":{"terrain":"plains"}, "Map_Tile_4_10":{"terrain":"plains"}, "Map_Tile_8_2":{"terrain":"plains"}, "Map_Tile_12_6":{"terrain":"plains"}, "Map_Tile_5_4":{"terrain":"plains"}, "Map_Tile_0_5":{"terrain":"plains"}, "Map_Tile_11_2":{"terrain":"plains"}, "Flags":{}, "Map_Tile_11_8":{"terrain":"plains"}, "Map_Tile_6_11":{"terrain":"beach"}, "Map_Tile_10_7":{"terrain":"plains"}, "Map_Tile_14_6":{"terrain":"plains"}, "Map_Tile_12_5":{"terrain":"plains"}, "Map_Tile_14_8":{"terrain":"plains"}, "Map_Tile_3_10":{"terrain":"plains"}, "Map_Tile_7_11":{"terrain":"beach"}, "Map_Tile_14_9":{"terrain":"plains"}, "Map_Tile_10_0":{"terrain":"plains"}, "Map_Tile_7_8":{"terrain":"plains"}, "Map_Tile_13_5":{"terrain":"beach"}, "Map_Tile_9_6":{"terrain":"plains"}, "Map_Tile_8_6":{"terrain":"plains"}, "Map_Tile_8_4":{"terrain":"plains"}, "Map_Tile_3_6":{"terrain":"plains"}, "Map_Tile_1_0":{"terrain":"plains"}, "Map_Tile_13_10":{"terrain":"beach"}, "Map_Tile_1_2":{"terrain":"beach"}, "Map_Tile_6_5":{"terrain":"plains"}, "Map_Tile_6_9":{"terrain":"plains"}, "Map_Tile_12_12":{"terrain":"plains"}, "Map_Tile_8_1":{"terrain":"beach"}, "Map_Tile_4_11":{"terrain":"beach"}, "Map_Tile_2_2":{"terrain":"plains"}, "Map_Tile_10_1":{"terrain":"beach"}, "Map_Tile_8_3":{"terrain":"plains"}, "Map_Tile_13_0":{"terrain":"plains"}, "Map_Tile_13_3":{"terrain":"beach"}, "Map_Tile_4_1":{"terrain":"beach"}, "Map_Name":"Swimming at the Docks", "Map_Tile_2_7":{"terrain":"plains"}, "Map_Tile_5_6":{"terrain":"plains"}, "Map_Tile_1_9":{"terrain":"beach"}, "Map_Tile_5_7":{"terrain":"plains"}, "Map_Tile_4_5":{"terrain":"plains"}, "Map_Tile_12_1":{"terrain":"beach"}, "Map_Tile_3_11":{"terrain":"beach"}, "Map_Tile_7_10":{"terrain":"plains"}, "Map_Tile_11_10":{"terrain":"plains"}, "Map_Tile_4_6":{"terrain":"plains"}, "Map_Tile_7_12":{"terrain":"plains"}, "Map_Tile_3_12":{"terrain":"plains"}, "Counters":{}, "Map_Tile_2_9":{"terrain":"plains"}, "Triggers":[{"isIntro":false, "id":"AP: Export", "recurring":"start_of_match", "conditions":{}, "enabled":true, "players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"ap_export", "parameters":["67190", "Swimming at the Docks", "Fly Sniper", "Kill a knight with a dog.", "Build 2 riverboats.", "", "Win with standard conditions."]}]}, {"isIntro":false, "id":"$trigger_default_defeat_no_units", "recurring":"oncePerPlayer", "conditions":[{"enabled":true, "id":"unit_presence", "parameters":["current", "0", "0", "*unit_structure", "-1"]}], "enabled":true, "players":[1, 1, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "id":"$trigger_default_defeat_commander", "recurring":"oncePerPlayer", "conditions":[{"enabled":true, "id":"unit_lost", "parameters":["*commander", "current", "-1"]}], "enabled":true, "players":[1, 1, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "id":"$trigger_default_defeat_hq", "recurring":"oncePerPlayer", "conditions":[{"enabled":true, "id":"unit_lost", "parameters":["hq", "current", "-1"]}], "enabled":true, "players":[1, 1, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"eliminate", "parameters":["current"]}]}, {"isIntro":false, "id":"$trigger_default_victory", "recurring":"oncePerPlayer", "conditions":[{"enabled":true, "id":"number_of_opponents", "parameters":["current", "0", "0"]}], "enabled":true, "players":[1, 1, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"victory", "parameters":["current"]}]}, {"isIntro":false, "id":"Generate Map", "recurring":"start_of_match", "conditions":{}, "enabled":true, "players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"remove_units", "parameters":["*unit_structure", "-1", "any", "1", "1"]}, {"enabled":true, "id":"map_randomize", "parameters":["0", "-3", "0", "75", "25", "0", "0", "0", "0"]}, {"enabled":true, "id":"position_asymmetric_randomize", "parameters":["3", "0", "0", "0", "0", "0", "2", "5", "0"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["port", "0", "neutral", "1", "1", "4", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "3", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["*commander", "4", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "1", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["hq", "2", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["soldier", "3", "P1", "1", "1", "3", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["dog", "3", "P1", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["spearman", "3", "P1", "1", "1", "2", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["mage", "3", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["soldier", "4", "P2", "1", "1", "4", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["frog", "4", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["merman", "4", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["knight", "4", "P2", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "3", "P1", "1", "1", "1", "1", "undefined", "centre"]}, {"enabled":true, "id":"ap_spawn_unit", "parameters":["barracks", "4", "P2", "1", "1", "1", "1", "undefined", "centre"]}]}, {"isIntro":false, "id":"P1 Victorious (253042)", "recurring":"end_of_match", "conditions":[{"enabled":true, "id":"player_victorious", "parameters":["current"]}], "enabled":true, "players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"ap_location_send", "parameters":["253042"]}]}, {"isIntro":false, "id":"Dog Kills Knight (253043)", "recurring":"once", "conditions":[{"enabled":true, "id":"unit_killed", "parameters":["dog", "current", "knight", "P2", "-1"]}], "enabled":true, "players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"dialogue_box_simple", "parameters":["happy", "caesar", "Woof!", "1", "Dog"]}, {"enabled":true, "id":"ap_location_send", "parameters":["253043"]}]}, {"isIntro":false, "id":"P1 has 2 Riverboats (253044)", "recurring":"once", "conditions":[{"enabled":true, "id":"unit_presence", "parameters":["current", "4", "2", "caravel", "-1"]}], "enabled":true, "players":[1, 0, 0, 0, 0, 0, 0, 0], "actions":[{"enabled":true, "id":"ap_location_send", "parameters":["253044"]}]}], "Map_Tile_7_9":{"terrain":"plains"}, "Map_Tile_6_12":{"terrain":"plains"}, "Map_Tile_0_11":{"terrain":"plains"}, "Map_Tile_6_7":{"terrain":"plains"}, "Map_Tile_10_4":{"terrain":"plains"}, "Map_Tile_9_5":{"terrain":"plains"}, "Map_Tile_9_1":{"terrain":"beach"}, "Map_Tile_6_10":{"terrain":"plains"}, "Map_Tile_14_12":{"terrain":"plains"}, "Map_Tile_14_7":{"terrain":"plains"}, "Map_Tile_14_5":{"terrain":"plains"}, "Map_Tile_10_11":{"terrain":"beach"}, "Map_Tile_14_4":{"terrain":"plains"}, "Map_Tile_11_0":{"terrain":"plains"}, "Map_Tile_2_10":{"terrain":"plains"}, "Map_Tile_9_2":{"terrain":"plains"}, "Map_Tile_1_7":{"terrain":"beach"}, "Map_Tile_13_12":{"terrain":"plains"}, "Map_Tile_1_6":{"terrain":"beach"}, "Map_Tile_13_1":{"terrain":"beach"}, "Map_Tile_11_12":{"terrain":"plains"}, "Map_Tile_14_3":{"terrain":"plains"}, "Map_Tile_3_1":{"terrain":"beach"}, "Map_Tile_9_11":{"terrain":"beach"}, "Map_Tile_0_7":{"terrain":"plains"}, "Map_Tile_14_1":{"terrain":"plains"}, "Map_Tile_13_8":{"terrain":"beach"}, "Map_Tile_4_2":{"terrain":"plains"}, "Map_Tile_5_1":{"terrain":"beach"}, "Map_Tile_5_10":{"terrain":"plains"}, "Map_Tile_5_9":{"terrain":"plains"}, "Map_Tile_13_11":{"terrain":"beach"}, "Player_1":{"recruit_dragon":true, "recruit_warship":true, "recruit_giant":true, "recruit_ballista":true, "recruit_caravel":true, "recruit_travelboat":true, "recruit_balloon":true, "team":0, "recruit_mage":true, "recruit_witch":true, "gold":100, "recruit_soldier":true, "recruit_rifleman":true, "recruit_trebuchet":true, "recruit_griffin_walking":true, "recruit_frog":true, "recruit_archer":true, "recruit_harpy":true, "recruit_kraken":true, "recruit_harpoonship":true, "recruit_knight":true, "recruit_thief":true, "recruit_spearman":true, "recruit_dog":true, "recruit_turtle":true, "recruit_merman":true, "recruit_wagon":true}, "Map_Tile_7_3":{"terrain":"plains"}, "Map_Tile_8_11":{"terrain":"beach"}, "Map_Tile_6_1":{"terrain":"beach"}, "Map_Tile_12_8":{"terrain":"plains"}, "Map_Tile_11_6":{"terrain":"plains"}, "Map_Tile_14_0":{"terrain":"plains"}, "Map_Tile_13_7":{"terrain":"beach"}, "Map_Tile_11_11":{"terrain":"beach"}, "Map_Tile_13_4":{"terrain":"beach"}, "Map_Tile_3_8":{"terrain":"plains"}, "Map_Tile_11_7":{"terrain":"plains"}, "Map_Tile_13_2":{"terrain":"beach"}, "Map_Tile_9_0":{"terrain":"plains"}, "Map_Tile_12_11":{"terrain":"beach"}, "Map_Tile_12_9":{"terrain":"plains"}, "Map_Tile_2_3":{"terrain":"plains"}, "Map_Tile_9_12":{"terrain":"plains"}, "Map_Tile_12_7":{"terrain":"plains"}, "Map_Tile_12_4":{"terrain":"plains"}, "Map_Tile_4_12":{"terrain":"plains"}, "Map_Tile_2_6":{"terrain":"plains"}, "Map_Tile_3_2":{"terrain":"plains"}, "Map_Tile_0_8":{"terrain":"plains"}, "Map_Tile_12_3":{"terrain":"plains"}, "Map_Tile_7_4":{"terrain":"plains"}, "Map_Tile_6_8":{"terrain":"plains"}, "Map_Tile_12_0":{"terrain":"plains"}, "Map_Tile_13_6":{"terrain":"beach"}, "Map_Tile_11_9":{"terrain":"plains"}, "Map_Tile_5_8":{"terrain":"plains"}, "Map_Tile_7_7":{"terrain":"plains"}, "Map_Tile_3_7":{"terrain":"plains"}, "Map_Tile_1_4":{"terrain":"beach"}, "Map_Tile_2_8":{"terrain":"plains"}, "Map_Tile_0_6":{"terrain":"plains"}, "Map_Tile_0_10":{"terrain":"plains"}, "Map_Tile_6_0":{"terrain":"plains"}, "Map_Tile_10_2":{"terrain":"plains"}, "Map_Tile_7_1":{"terrain":"beach"}, "Map_Tile_11_3":{"terrain":"plains"}, "Map_Tile_11_1":{"terrain":"beach"}, "Map_Tile_5_0":{"terrain":"plains"}, "Map_Tile_9_10":{"terrain":"plains"}, "Map_Tile_4_8":{"terrain":"plains"}, "Map_Tile_3_0":{"terrain":"plains"}, "Map_Tile_10_10":{"terrain":"plains"}, "Map_Tile_10_9":{"terrain":"plains", "unit":{"grooveId":"", "hasBeenKilled":false, "health":100, "factionOverride":"", "hadTurn":false, "loadedUnits":{}, "miniGrooveId":"", "grooveCharge":0, "playerId":1, "setHealth":null, "canBeAttacked":true, "attackerPlayerId":-1, "unitClassId":"barracks", "id":1, "rangedDamageTakenPercent":100, "merchantDiscounts":{}, "killedByLosing":false, "recruitDiscountMultiplier":0.0, "recruitDiscounts":{}, "damageTakenPercent":100, "recruits":["soldier", "dog", "spearman", "wagon", "mage", "archer", "knight", "ballista", "trebuchet", "giant"], "setGroove":null, "unitClass":{"weaponIds":{}, "inAir":false, "inWater":false, "canAttack":true, "weapons":{}, "isDamagingParentUnit":false, "verbCostMultiplier":1.0, "aliasId":"", "isStructure":true, "recruitingCostMultiplier":1.0, "resourceCost":1, "tags":["structure"], "maxGroove":0, "movementType":"land_building", "loadCapacity":0, "isRecruitable":true, "passiveMultiplier":1.0, "moveRange":0, "transportTags":{}, "isCommander":false, "isAttackable":true, "canBeActivated":false, "canReinforce":true, "id":"barracks", "reinforceMultiplier":1.0, "maxHealth":100, "cost":500, "critConditionId":"", "canBeCaptured":true}, "stunned":false, "canBeAttackedFromDistance":true, "attachedFlagId":-1, "tentacled":false, "state":{}, "underwater":false, "itemId":"", "garrisonClassId":"garrison", "inTransport":false, "startPos":{"facing":0, "y":9, "x":10}, "blessings":{}, "merchantDiscountMultiplier":0.0, "itemDropNumber":0, "attackerId":-1, "canChargeGroove":true, "transportedBy":-1, "items":{}, "attackerUnitClass":"", "pos":{"facing":0, "y":9, "x":10}}}, "Map_Tile_7_2":{"terrain":"plains"}, "Map_Tile_10_8":{"terrain":"sea", "unit":{"grooveId":"", "hasBeenKilled":false, "health":100, "factionOverride":"", "hadTurn":false, "loadedUnits":{}, "miniGrooveId":"", "grooveCharge":0, "playerId":1, "setHealth":null, "canBeAttacked":true, "attackerPlayerId":-1, "unitClassId":"port", "id":2, "rangedDamageTakenPercent":100, "merchantDiscounts":{}, "killedByLosing":false, "recruitDiscountMultiplier":0.0, "recruitDiscounts":{}, "damageTakenPercent":100, "recruits":["travelboat", "caravel", "merman", "turtle", "harpoonship", "frog", "kraken", "warship"], "setGroove":null, "unitClass":{"weaponIds":{}, "inAir":false, "inWater":false, "canAttack":true, "weapons":{}, "isDamagingParentUnit":false, "verbCostMultiplier":1.0, "aliasId":"", "isStructure":true, "recruitingCostMultiplier":1.0, "resourceCost":1, "tags":["structure"], "maxGroove":0, "movementType":"river_sea_building", "loadCapacity":0, "isRecruitable":true, "passiveMultiplier":1.0, "moveRange":0, "transportTags":{}, "isCommander":false, "isAttackable":true, "canBeActivated":false, "canReinforce":true, "id":"port", "reinforceMultiplier":1.0, "maxHealth":100, "cost":500, "critConditionId":"", "canBeCaptured":true}, "stunned":false, "canBeAttackedFromDistance":true, "attachedFlagId":-1, "tentacled":false, "state":{}, "underwater":false, "itemId":"", "garrisonClassId":"garrison", "inTransport":false, "startPos":{"facing":1, "y":8, "x":10}, "blessings":{}, "merchantDiscountMultiplier":0.0, "itemDropNumber":0, "attackerId":-1, "canChargeGroove":true, "transportedBy":-1, "items":{}, "attackerUnitClass":"", "pos":{"facing":1, "y":8, "x":10}}}, "Map_Tile_4_7":{"terrain":"plains"}, "Map_Tile_2_4":{"terrain":"plains"}, "Map_Tile_0_0":{"terrain":"plains"}, "Map_Tile_4_0":{"terrain":"plains"}, "Locations":{"1":{"positions":[{"y":4, "x":0}, {"y":4, "x":1}, {"y":4, "x":2}, {"y":5, "x":2}, {"y":6, "x":2}, {"y":7, "x":2}, {"y":8, "x":2}, {"y":8, "x":1}, {"y":8, "x":0}, {"y":7, "x":0}, {"y":6, "x":0}, {"y":5, "x":0}, {"y":5, "x":1}, {"y":6, "x":1}, {"y":7, "x":1}], "name":"P1 Stronghold Location", "centre":{"y":6, "x":1}, "getArea":null, "interactable":false, "setArea":null, "id":1}, "2":{"positions":[{"y":4, "x":12}, {"y":5, "x":12}, {"y":6, "x":12}, {"y":7, "x":12}, {"y":8, "x":12}, {"y":8, "x":13}, {"y":8, "x":14}, {"y":7, "x":14}, {"y":7, "x":13}, {"y":6, "x":13}, {"y":5, "x":13}, {"y":6, "x":14}, {"y":5, "x":14}, {"y":4, "x":14}, {"y":4, "x":13}, {"y":4, "x":11}, {"y":5, "x":11}, {"y":6, "x":11}, {"y":7, "x":11}, {"y":8, "x":11}], "name":"P2 Stronghold Location", "centre":{"y":6, "x":13}, "getArea":null, "interactable":false, "setArea":null, "id":2}, "3":{"positions":[{"y":0, "x":3}, {"y":1, "x":3}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":1, "x":5}, {"y":0, "x":5}, {"y":0, "x":4}, {"y":1, "x":4}, {"y":0, "x":6}, {"y":1, "x":6}, {"y":1, "x":7}, {"y":2, "x":6}, {"y":0, "x":7}, {"y":2, "x":7}, {"y":3, "x":4}, {"y":3, "x":3}, {"y":3, "x":5}, {"y":3, "x":6}, {"y":3, "x":7}], "name":"P1 Starting Zone", "centre":{"y":2, "x":5}, "getArea":null, "interactable":false, "setArea":null, "id":3}, "4":{"positions":[{"y":8, "x":11}, {"y":8, "x":12}, {"y":8, "x":13}, {"y":8, "x":14}, {"y":9, "x":14}, {"y":10, "x":14}, {"y":11, "x":14}, {"y":11, "x":13}, {"y":12, "x":13}, {"y":12, "x":12}, {"y":12, "x":11}, {"y":12, "x":14}, {"y":12, "x":10}, {"y":12, "x":9}, {"y":12, "x":8}, {"y":9, "x":10}, {"y":9, "x":11}, {"y":9, "x":12}, {"y":10, "x":12}, {"y":10, "x":11}, {"y":9, "x":13}, {"y":10, "x":13}, {"y":11, "x":12}, {"y":11, "x":11}, {"y":11, "x":10}, {"y":10, "x":10}, {"y":11, "x":9}, {"y":12, "x":7}, {"y":7, "x":11}, {"y":7, "x":12}, {"y":7, "x":13}, {"y":7, "x":14}], "name":"P2 Starting Zone", "centre":{"y":10, "x":12}, "getArea":null, "interactable":false, "setArea":null, "id":4}, "0":{"positions":[{"y":10, "x":12}, {"y":10, "x":11}, {"y":10, "x":10}, {"y":10, "x":9}, {"y":10, "x":8}, {"y":10, "x":7}, {"y":10, "x":6}, {"y":10, "x":5}, {"y":10, "x":4}, {"y":10, "x":3}, {"y":10, "x":2}, {"y":9, "x":2}, {"y":8, "x":2}, {"y":7, "x":2}, {"y":6, "x":2}, {"y":5, "x":2}, {"y":4, "x":2}, {"y":3, "x":2}, {"y":2, "x":2}, {"y":2, "x":3}, {"y":2, "x":4}, {"y":2, "x":5}, {"y":2, "x":6}, {"y":2, "x":7}, {"y":2, "x":8}, {"y":2, "x":9}, {"y":2, "x":10}, {"y":2, "x":11}, {"y":2, "x":12}, {"y":3, "x":12}, {"y":4, "x":12}, {"y":5, "x":12}, {"y":6, "x":12}, {"y":7, "x":12}, {"y":8, "x":12}, {"y":9, "x":12}, {"y":9, "x":10}, {"y":9, "x":9}, {"y":9, "x":8}, {"y":9, "x":7}, {"y":9, "x":6}, {"y":9, "x":5}, {"y":9, "x":4}, {"y":9, "x":3}, {"y":8, "x":10}, {"y":8, "x":11}, {"y":9, "x":11}, {"y":7, "x":11}, {"y":6, "x":11}, {"y":5, "x":11}, {"y":4, "x":11}, {"y":3, "x":11}, {"y":3, "x":8}, {"y":3, "x":7}, {"y":4, "x":7}, {"y":4, "x":6}, {"y":4, "x":5}, {"y":3, "x":5}, {"y":3, "x":4}, {"y":3, "x":10}, {"y":3, "x":6}, {"y":3, "x":9}, {"y":4, "x":4}, {"y":3, "x":3}, {"y":4, "x":3}, {"y":5, "x":3}, {"y":6, "x":3}, {"y":7, "x":3}, {"y":7, "x":4}, {"y":8, "x":4}, {"y":8, "x":5}, {"y":8, "x":6}, {"y":8, "x":7}, {"y":8, "x":8}, {"y":8, "x":3}, {"y":7, "x":8}, {"y":7, "x":9}, {"y":7, "x":10}, {"y":8, "x":9}, {"y":6, "x":10}, {"y":5, "x":10}, {"y":4, "x":10}, {"y":4, "x":9}, {"y":4, "x":8}, {"y":5, "x":8}, {"y":5, "x":9}, {"y":6, "x":9}, {"y":6, "x":8}, {"y":6, "x":7}, {"y":5, "x":7}, {"y":7, "x":7}, {"y":7, "x":6}, {"y":6, "x":6}, {"y":6, "x":5}, {"y":6, "x":4}, {"y":5, "x":4}, {"y":5, "x":5}, {"y":7, "x":5}, {"y":5, "x":6}], "name":"Sea", "centre":{"y":6, "x":7}, "getArea":null, "interactable":false, "setArea":null, "id":0}}, "Map_Tile_0_1":{"terrain":"plains"}, "Map_Tile_5_3":{"terrain":"plains"}, "Map_Tile_10_5":{"terrain":"plains"}, "Map_Tile_2_1":{"terrain":"beach"}, "Map_Tile_9_8":{"terrain":"plains"}, "Map_Tile_4_4":{"terrain":"plains"}, "Map_Tile_10_3":{"terrain":"plains"}, "Map_Tile_1_10":{"terrain":"beach"}, "Map_Tile_8_0":{"terrain":"plains"}, "Map_Tile_11_4":{"terrain":"plains"}, "Map_Tile_6_2":{"terrain":"plains"}, "Map_Tile_0_4":{"terrain":"plains"}, "Map_Tile_6_4":{"terrain":"plains"}, "Map_Tile_10_12":{"terrain":"plains"}, "Map_Tile_3_5":{"terrain":"plains"}, "Map_Tile_9_9":{"terrain":"plains"}, "Map_Tile_3_9":{"terrain":"plains"}, "Map_Tile_9_7":{"terrain":"plains"}, "Map_Tile_14_10":{"terrain":"plains"}, "Map_Tile_9_4":{"terrain":"plains"}, "Map_Tile_0_2":{"terrain":"plains"}, "Map_Tile_9_3":{"terrain":"plains"}, "Map_Tile_2_5":{"terrain":"plains"}, "Map_Tile_10_6":{"terrain":"plains"}, "Map_Tile_14_2":{"terrain":"plains"}, "Map_Tile_8_5":{"terrain":"plains"}, "Map_Tile_0_9":{"terrain":"plains"}, "Map_Tile_1_11":{"terrain":"beach"}, "Map_Tile_5_5":{"terrain":"plains"}, "Map_Tile_8_10":{"terrain":"plains"}, "Map_Tile_8_8":{"terrain":"plains"}, "Map_Tile_8_7":{"terrain":"plains"}, "Map_Tile_14_11":{"terrain":"plains"}, "Map_Tile_2_12":{"terrain":"plains"}, "Map_Tile_12_2":{"terrain":"plains"}, "Map_Tile_4_3":{"terrain":"plains"}, "Map_Tile_3_4":{"terrain":"plains"}, "Map_Tile_5_2":{"terrain":"plains"}, "Map_Tile_2_11":{"terrain":"beach"}, "Map_Tile_5_11":{"terrain":"beach"}, "Map_Tile_4_9":{"terrain":"plains"}, "Map_Tile_11_5":{"terrain":"plains"}, "Map_Tile_1_3":{"terrain":"beach"}, "Map_Tile_7_6":{"terrain":"plains"}, "Map_Tile_3_3":{"terrain":"plains"}, "Map_Tile_8_12":{"terrain":"plains"}, "Objectives":["Kill a knight with a dog.", "Build 2 riverboats.", "Win with standard conditions."], "Map_Tile_1_8":{"terrain":"beach"}, "Map_Tile_1_1":{"terrain":"beach"}, "Author":"Fly Sniper", "Map_Tile_1_12":{"terrain":"plains"}, "Map_Tile_13_9":{"terrain":"beach"}, "Map_Tile_7_5":{"terrain":"plains"}, "Map_Size":{"y":13, "x":15}, "Player_2":{"recruit_dragon":true, "recruit_warship":false, "recruit_giant":false, "recruit_ballista":false, "recruit_caravel":true, "recruit_travelboat":false, "recruit_balloon":true, "team":1, "recruit_mage":true, "recruit_witch":true, "gold":100, "recruit_soldier":true, "recruit_rifleman":true, "recruit_trebuchet":false, "recruit_griffin_walking":true, "recruit_frog":true, "recruit_archer":true, "recruit_harpy":true, "recruit_kraken":false, "recruit_harpoonship":true, "recruit_knight":false, "recruit_thief":true, "recruit_spearman":true, "recruit_dog":true, "recruit_turtle":true, "recruit_merman":true, "recruit_wagon":false}, "Map_Tile_6_6":{"terrain":"plains"}, "Map_Tile_6_3":{"terrain":"plains"}, "Map_Tile_5_12":{"terrain":"plains"}, "Player_Count":2, "Map_Tile_0_12":{"terrain":"plains"}, "Map_Tile_1_5":{"terrain":"beach"}, "Map_Tile_2_0":{"terrain":"plains"}} \ No newline at end of file From af0b5f8cf2c1506c6bae4ccd0d113960a768a860 Mon Sep 17 00:00:00 2001 From: Louis M Date: Tue, 15 Oct 2024 17:22:58 -0400 Subject: [PATCH 121/212] Aquaria Fixing some bugs (#4057) * Fixing some bugs * Forgot about this one --- worlds/aquaria/Regions.py | 21 +++++++++------------ worlds/aquaria/__init__.py | 8 +++++--- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/worlds/aquaria/Regions.py b/worlds/aquaria/Regions.py index 3ec1fb880e13..792d7b73dfdb 100755 --- a/worlds/aquaria/Regions.py +++ b/worlds/aquaria/Regions.py @@ -738,9 +738,7 @@ def __connect_veil_regions(self) -> None: self.__connect_regions("Sun Temple left area", "Veil left of sun temple", self.sun_temple_l, self.veil_tr_l) self.__connect_regions("Sun Temple left area", "Sun Temple before boss area", - self.sun_temple_l, self.sun_temple_boss_path, - lambda state: _has_light(state, self.player) or - _has_sun_crystal(state, self.player)) + self.sun_temple_l, self.sun_temple_boss_path) self.__connect_regions("Sun Temple before boss area", "Sun Temple boss area", self.sun_temple_boss_path, self.sun_temple_boss, lambda state: _has_energy_attack_item(state, self.player)) @@ -775,14 +773,11 @@ def __connect_abyss_regions(self) -> None: self.abyss_l, self.king_jellyfish_cave, lambda state: (_has_energy_form(state, self.player) and _has_beast_form(state, self.player)) or - _has_dual_form(state, self.player)) + _has_dual_form(state, self.player)) self.__connect_regions("Abyss left area", "Abyss right area", self.abyss_l, self.abyss_r) - self.__connect_one_way_regions("Abyss right area", "Abyss right area, transturtle", + self.__connect_regions("Abyss right area", "Abyss right area, transturtle", self.abyss_r, self.abyss_r_transturtle) - self.__connect_one_way_regions("Abyss right area, transturtle", "Abyss right area", - self.abyss_r_transturtle, self.abyss_r, - lambda state: _has_light(state, self.player)) self.__connect_regions("Abyss right area", "Inside the whale", self.abyss_r, self.whale, lambda state: _has_spirit_form(state, self.player) and @@ -1092,12 +1087,10 @@ def __adjusting_light_in_dark_place_rules(self) -> None: lambda state: _has_light(state, self.player)) add_rule(self.multiworld.get_entrance("Open Water bottom left area to Abyss left area", self.player), lambda state: _has_light(state, self.player)) - add_rule(self.multiworld.get_entrance("Sun Temple left area to Sun Temple right area", self.player), - lambda state: _has_light(state, self.player) or _has_sun_crystal(state, self.player)) - add_rule(self.multiworld.get_entrance("Sun Temple right area to Sun Temple left area", self.player), - lambda state: _has_light(state, self.player) or _has_sun_crystal(state, self.player)) add_rule(self.multiworld.get_entrance("Veil left of sun temple to Sun Temple left area", self.player), lambda state: _has_light(state, self.player) or _has_sun_crystal(state, self.player)) + add_rule(self.multiworld.get_entrance("Abyss right area, transturtle to Abyss right area", self.player), + lambda state: _has_light(state, self.player)) def __adjusting_manual_rules(self) -> None: add_rule(self.multiworld.get_location("Mithalas Cathedral, Mithalan Dress", self.player), @@ -1151,6 +1144,10 @@ def __adjusting_manual_rules(self) -> None: lambda state: state.has("Sun God beated", self.player)) add_rule(self.multiworld.get_location("The Body center area, breaking Li's cage", self.player), lambda state: _has_tongue_cleared(state, self.player)) + add_rule(self.multiworld.get_location( + "Open Water top right area, bulb in the small path before Mithalas", + self.player), lambda state: _has_bind_song(state, self.player) + ) def __no_progression_hard_or_hidden_location(self) -> None: self.multiworld.get_location("Energy Temple boss area, Fallen God Tooth", diff --git a/worlds/aquaria/__init__.py b/worlds/aquaria/__init__.py index dd17d09d8a6a..f79978f25fc4 100644 --- a/worlds/aquaria/__init__.py +++ b/worlds/aquaria/__init__.py @@ -130,12 +130,13 @@ def create_item(self, name: str) -> AquariaItem: return result - def __pre_fill_item(self, item_name: str, location_name: str, precollected) -> None: + def __pre_fill_item(self, item_name: str, location_name: str, precollected, + itemClassification: ItemClassification = ItemClassification.useful) -> None: """Pre-assign an item to a location""" if item_name not in precollected: self.exclude.append(item_name) data = item_table[item_name] - item = AquariaItem(item_name, ItemClassification.useful, data.id, self.player) + item = AquariaItem(item_name, itemClassification, data.id, self.player) self.multiworld.get_location(location_name, self.player).place_locked_item(item) def get_filler_item_name(self): @@ -164,7 +165,8 @@ def create_items(self) -> None: self.__pre_fill_item("Transturtle Abyss right", "Abyss right area, Transturtle", precollected) self.__pre_fill_item("Transturtle Final Boss", "Final Boss area, Transturtle", precollected) # The last two are inverted because in the original game, they are special turtle that communicate directly - self.__pre_fill_item("Transturtle Simon Says", "Arnassi Ruins, Transturtle", precollected) + self.__pre_fill_item("Transturtle Simon Says", "Arnassi Ruins, Transturtle", precollected, + ItemClassification.progression) self.__pre_fill_item("Transturtle Arnassi Ruins", "Simon Says area, Transturtle", precollected) for name, data in item_table.items(): if name not in self.exclude: From 26577b16dce3a69efc2bd68d02403922206bd002 Mon Sep 17 00:00:00 2001 From: Bryce Wilson Date: Tue, 15 Oct 2024 14:28:36 -0700 Subject: [PATCH 122/212] Pokemon Emerald: Fix opponent blacklist checking wrong option (#4058) --- worlds/pokemon_emerald/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/pokemon_emerald/__init__.py b/worlds/pokemon_emerald/__init__.py index d281dde23cb0..a87f93ece56b 100644 --- a/worlds/pokemon_emerald/__init__.py +++ b/worlds/pokemon_emerald/__init__.py @@ -177,7 +177,7 @@ def generate_early(self) -> None: for species_name in self.options.trainer_party_blacklist.value if species_name != "_Legendaries" } - if "_Legendaries" in self.options.starter_blacklist.value: + if "_Legendaries" in self.options.trainer_party_blacklist.value: self.blacklisted_opponent_pokemon |= LEGENDARY_POKEMON # In race mode we don't patch any item location information into the ROM From c12ed316cff03014810aa610248f95cbb53036af Mon Sep 17 00:00:00 2001 From: Jarno Date: Wed, 16 Oct 2024 23:06:14 +0200 Subject: [PATCH 123/212] Timespinner: Make hidden options pickleables (#4050) * Make timespinner hidden options pickleables * Keep changes minimal * Change line endings --- worlds/timespinner/Options.py | 81 ++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 39 deletions(-) diff --git a/worlds/timespinner/Options.py b/worlds/timespinner/Options.py index 20ad8132c45f..f6a3dba3e311 100644 --- a/worlds/timespinner/Options.py +++ b/worlds/timespinner/Options.py @@ -417,13 +417,16 @@ class HiddenTraps(Traps): """List of traps that may be in the item pool to find""" visibility = Visibility.none -class OptionsHider: - @classmethod - def hidden(cls, option: Type[Option[Any]]) -> Type[Option]: - new_option = AssembleOptions(f"{option}Hidden", option.__bases__, vars(option).copy()) - new_option.visibility = Visibility.none - new_option.__doc__ = option.__doc__ - return new_option +class HiddenDeathLink(DeathLink): + """When you die, everyone who enabled death link dies. Of course, the reverse is true too.""" + visibility = Visibility.none + +def hidden(option: Type[Option[Any]]) -> Type[Option]: + new_option = AssembleOptions(f"{option.__name__}Hidden", option.__bases__, vars(option).copy()) + new_option.visibility = Visibility.none + new_option.__doc__ = option.__doc__ + globals()[f"{option.__name__}Hidden"] = new_option + return new_option class HasReplacedCamelCase(Toggle): """For internal use will display a warning message if true""" @@ -431,41 +434,41 @@ class HasReplacedCamelCase(Toggle): @dataclass class BackwardsCompatiableTimespinnerOptions(TimespinnerOptions): - StartWithJewelryBox: OptionsHider.hidden(StartWithJewelryBox) # type: ignore - DownloadableItems: OptionsHider.hidden(DownloadableItems) # type: ignore - EyeSpy: OptionsHider.hidden(EyeSpy) # type: ignore - StartWithMeyef: OptionsHider.hidden(StartWithMeyef) # type: ignore - QuickSeed: OptionsHider.hidden(QuickSeed) # type: ignore - SpecificKeycards: OptionsHider.hidden(SpecificKeycards) # type: ignore - Inverted: OptionsHider.hidden(Inverted) # type: ignore - GyreArchives: OptionsHider.hidden(GyreArchives) # type: ignore - Cantoran: OptionsHider.hidden(Cantoran) # type: ignore - LoreChecks: OptionsHider.hidden(LoreChecks) # type: ignore - BossRando: OptionsHider.hidden(BossRando) # type: ignore - DamageRando: OptionsHider.hidden(DamageRando) # type: ignore + StartWithJewelryBox: hidden(StartWithJewelryBox) # type: ignore + DownloadableItems: hidden(DownloadableItems) # type: ignore + EyeSpy: hidden(EyeSpy) # type: ignore + StartWithMeyef: hidden(StartWithMeyef) # type: ignore + QuickSeed: hidden(QuickSeed) # type: ignore + SpecificKeycards: hidden(SpecificKeycards) # type: ignore + Inverted: hidden(Inverted) # type: ignore + GyreArchives: hidden(GyreArchives) # type: ignore + Cantoran: hidden(Cantoran) # type: ignore + LoreChecks: hidden(LoreChecks) # type: ignore + BossRando: hidden(BossRando) # type: ignore + DamageRando: hidden(DamageRando) # type: ignore DamageRandoOverrides: HiddenDamageRandoOverrides - HpCap: OptionsHider.hidden(HpCap) # type: ignore - LevelCap: OptionsHider.hidden(LevelCap) # type: ignore - ExtraEarringsXP: OptionsHider.hidden(ExtraEarringsXP) # type: ignore - BossHealing: OptionsHider.hidden(BossHealing) # type: ignore - ShopFill: OptionsHider.hidden(ShopFill) # type: ignore - ShopWarpShards: OptionsHider.hidden(ShopWarpShards) # type: ignore - ShopMultiplier: OptionsHider.hidden(ShopMultiplier) # type: ignore - LootPool: OptionsHider.hidden(LootPool) # type: ignore - DropRateCategory: OptionsHider.hidden(DropRateCategory) # type: ignore - FixedDropRate: OptionsHider.hidden(FixedDropRate) # type: ignore - LootTierDistro: OptionsHider.hidden(LootTierDistro) # type: ignore - ShowBestiary: OptionsHider.hidden(ShowBestiary) # type: ignore - ShowDrops: OptionsHider.hidden(ShowDrops) # type: ignore - EnterSandman: OptionsHider.hidden(EnterSandman) # type: ignore - DadPercent: OptionsHider.hidden(DadPercent) # type: ignore - RisingTides: OptionsHider.hidden(RisingTides) # type: ignore + HpCap: hidden(HpCap) # type: ignore + LevelCap: hidden(LevelCap) # type: ignore + ExtraEarringsXP: hidden(ExtraEarringsXP) # type: ignore + BossHealing: hidden(BossHealing) # type: ignore + ShopFill: hidden(ShopFill) # type: ignore + ShopWarpShards: hidden(ShopWarpShards) # type: ignore + ShopMultiplier: hidden(ShopMultiplier) # type: ignore + LootPool: hidden(LootPool) # type: ignore + DropRateCategory: hidden(DropRateCategory) # type: ignore + FixedDropRate: hidden(FixedDropRate) # type: ignore + LootTierDistro: hidden(LootTierDistro) # type: ignore + ShowBestiary: hidden(ShowBestiary) # type: ignore + ShowDrops: hidden(ShowDrops) # type: ignore + EnterSandman: hidden(EnterSandman) # type: ignore + DadPercent: hidden(DadPercent) # type: ignore + RisingTides: hidden(RisingTides) # type: ignore RisingTidesOverrides: HiddenRisingTidesOverrides - UnchainedKeys: OptionsHider.hidden(UnchainedKeys) # type: ignore - PresentAccessWithWheelAndSpindle: OptionsHider.hidden(PresentAccessWithWheelAndSpindle) # type: ignore - TrapChance: OptionsHider.hidden(TrapChance) # type: ignore + UnchainedKeys: hidden(UnchainedKeys) # type: ignore + PresentAccessWithWheelAndSpindle: hidden(PresentAccessWithWheelAndSpindle) # type: ignore + TrapChance: hidden(TrapChance) # type: ignore Traps: HiddenTraps # type: ignore - DeathLink: OptionsHider.hidden(DeathLink) # type: ignore + DeathLink: HiddenDeathLink # type: ignore has_replaced_options: HasReplacedCamelCase def handle_backward_compatibility(self) -> None: From 375b5796d95774f152d5f85cb97dd3af8f307a59 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 16 Oct 2024 23:28:42 +0200 Subject: [PATCH 124/212] WebHost: noscript faq and glossary (#4061) --- WebHostLib/misc.py | 23 +++++++-- WebHostLib/requirements.txt | 2 + WebHostLib/static/assets/faq.js | 51 ------------------- .../static/assets/faq/{faq_en.md => en.md} | 0 WebHostLib/static/assets/glossary.js | 51 ------------------- .../{faq/glossary_en.md => glossary/en.md} | 0 WebHostLib/templates/faq.html | 17 ------- WebHostLib/templates/glossary.html | 17 ------- WebHostLib/templates/markdown_document.html | 13 +++++ 9 files changed, 34 insertions(+), 140 deletions(-) delete mode 100644 WebHostLib/static/assets/faq.js rename WebHostLib/static/assets/faq/{faq_en.md => en.md} (100%) delete mode 100644 WebHostLib/static/assets/glossary.js rename WebHostLib/static/assets/{faq/glossary_en.md => glossary/en.md} (100%) delete mode 100644 WebHostLib/templates/faq.html delete mode 100644 WebHostLib/templates/glossary.html create mode 100644 WebHostLib/templates/markdown_document.html diff --git a/WebHostLib/misc.py b/WebHostLib/misc.py index 4784fcd9da63..1f86e21066ef 100644 --- a/WebHostLib/misc.py +++ b/WebHostLib/misc.py @@ -5,6 +5,7 @@ import jinja2.exceptions from flask import request, redirect, url_for, render_template, Response, session, abort, send_from_directory from pony.orm import count, commit, db_session +from werkzeug.utils import secure_filename from worlds.AutoWorld import AutoWorldRegister from . import app, cache @@ -69,14 +70,28 @@ def tutorial_landing(): @app.route('/faq//') @cache.cached() -def faq(lang): - return render_template("faq.html", lang=lang) +def faq(lang: str): + import markdown + with open(os.path.join(app.static_folder, "assets", "faq", secure_filename(lang)+".md")) as f: + document = f.read() + return render_template( + "markdown_document.html", + title="Frequently Asked Questions", + html_from_markdown=markdown.markdown(document, extensions=["mdx_breakless_lists"]), + ) @app.route('/glossary//') @cache.cached() -def terms(lang): - return render_template("glossary.html", lang=lang) +def glossary(lang: str): + import markdown + with open(os.path.join(app.static_folder, "assets", "glossary", secure_filename(lang)+".md")) as f: + document = f.read() + return render_template( + "markdown_document.html", + title="Glossary", + html_from_markdown=markdown.markdown(document, extensions=["mdx_breakless_lists"]), + ) @app.route('/seed/') diff --git a/WebHostLib/requirements.txt b/WebHostLib/requirements.txt index c593cd63df7e..2020387053f9 100644 --- a/WebHostLib/requirements.txt +++ b/WebHostLib/requirements.txt @@ -9,3 +9,5 @@ bokeh>=3.1.1; python_version <= '3.8' bokeh>=3.4.3; python_version == '3.9' bokeh>=3.5.2; python_version >= '3.10' markupsafe>=2.1.5 +Markdown>=3.7 +mdx-breakless-lists>=1.0.1 diff --git a/WebHostLib/static/assets/faq.js b/WebHostLib/static/assets/faq.js deleted file mode 100644 index 1bf5e5a65995..000000000000 --- a/WebHostLib/static/assets/faq.js +++ /dev/null @@ -1,51 +0,0 @@ -window.addEventListener('load', () => { - const tutorialWrapper = document.getElementById('faq-wrapper'); - new Promise((resolve, reject) => { - const ajax = new XMLHttpRequest(); - ajax.onreadystatechange = () => { - if (ajax.readyState !== 4) { return; } - if (ajax.status === 404) { - reject("Sorry, the tutorial is not available in that language yet."); - return; - } - if (ajax.status !== 200) { - reject("Something went wrong while loading the tutorial."); - return; - } - resolve(ajax.responseText); - }; - ajax.open('GET', `${window.location.origin}/static/assets/faq/` + - `faq_${tutorialWrapper.getAttribute('data-lang')}.md`, true); - ajax.send(); - }).then((results) => { - // Populate page with HTML generated from markdown - showdown.setOption('tables', true); - showdown.setOption('strikethrough', true); - showdown.setOption('literalMidWordUnderscores', true); - tutorialWrapper.innerHTML += (new showdown.Converter()).makeHtml(results); - adjustHeaderWidth(); - - // Reset the id of all header divs to something nicer - for (const header of document.querySelectorAll('h1, h2, h3, h4, h5, h6')) { - const headerId = header.innerText.replace(/\s+/g, '-').toLowerCase(); - header.setAttribute('id', headerId); - header.addEventListener('click', () => { - window.location.hash = `#${headerId}`; - header.scrollIntoView(); - }); - } - - // Manually scroll the user to the appropriate header if anchor navigation is used - document.fonts.ready.finally(() => { - if (window.location.hash) { - const scrollTarget = document.getElementById(window.location.hash.substring(1)); - scrollTarget?.scrollIntoView(); - } - }); - }).catch((error) => { - console.error(error); - tutorialWrapper.innerHTML = - `

    T7vt?tqkY^LMQTj(J9idCk*n~d<$~M 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%0D~~sk2r-7;>%B}WvEs<#&7hq4MN^cyD6z~h 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 diff --git a/worlds/wargroove2/data/save/campaign-45747c660b6a2f09601327a18d662a7d.cmp.bak b/worlds/wargroove2/data/save/campaign-45747c660b6a2f09601327a18d662a7d.cmp.bak index 95cac9ac173669e314a5a05064e3b278fd93547d..4cba54b7d9af6c118080ea0df6ede35ad545c9e5 100644 GIT binary patch literal 220960 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