Archipelago/worlds/messenger/regions.py

444 lines
14 KiB
Python
Raw Normal View History

LOCATIONS: dict[str, list[str]] = {
The Messenger: content update (#2823) * map option objects to a `World.options` dict * convert RoR2 to options dict system for testing * add temp behavior for lttp with notes * copy/paste bad * convert `set_default_common_options` to a namespace property * reorganize test call order * have fill_restrictive use the new options system * update world api * update soe tests * fix world api * core: auto initialize a dataclass on the World class with the option results * core: auto initialize a dataclass on the World class with the option results: small tying improvement * add `as_dict` method to the options dataclass * fix namespace issues with tests * have current option updates use `.value` instead of changing the option * update ror2 to use the new options system again * revert the junk pool dict since it's cased differently * fix begin_with_loop typo * write new and old options to spoiler * change factorio option behavior back * fix comparisons * move common and per_game_common options to new system * core: automatically create missing options_dataclass from legacy option_definitions * remove spoiler special casing and add back the Factorio option changing but in new system * give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly * reimplement `inspect.get_annotations` * move option info generation for webhost to new system * need to include Common and PerGame common since __annotations__ doesn't include super * use get_type_hints for the options dictionary * typing.get_type_hints returns the bases too. * forgot to sweep through generate * sweep through all the tests * swap to a metaclass property * move remaining usages from get_type_hints to metaclass property * move remaining usages from __annotations__ to metaclass property * move remaining usages from legacy dictionaries to metaclass property * remove legacy dictionaries * cache the metaclass property * clarify inheritance in world api * move the messenger to new options system * add an assert for my dumb * update the doc * rename o to options * missed a spot * update new messenger options * comment spacing Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * fix tests * fix missing import * make the documentation definition more accurate * use options system for loc creation * type cast MessengerWorld * fix typo and use quotes for cast * LTTP: set random seed in tests * ArchipIdle: remove change here as it's default on AutoWorld * Stardew: Need to set state because `set_default_common_options` used to * The Messenger: update shop rando and helpers to new system; optimize imports * Add a kwarg to `as_dict` to do the casing for you * RoR2: use new kwarg for less code * RoR2: revert some accidental reverts * The Messenger: remove an unnecessary variable * remove TypeVar that isn't used * CommonOptions not abstract * Docs: fix mistake in options api.md Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * create options for item link worlds * revert accidental doc removals * Item Links: set default options on group * Messenger: Limited Movement option first draft * The Messenger: add automated setup through the launcher * drop tomllib * don't uselessly import launcher * The Messenger: fix missing goal requirement for power seal hunt * make hard mode goal harder * make fire seal a bit more lenient * have limited movement force minimal accessibility * add an early meditation option * clean up precollected notes tests a bit * add linux support * add steam deck support * await monokickstart * minor styling cleanup * more minor styling cleanup * Initial implementation of Generic ER * Move ERType to Entrance.Type, fix typing imports * updates based on testing (read: flailing) * Updates from feedback * Various bug fixes in ERCollectionState * Use deque instead of queue.Queue * Allow partial entrances in collection state earlier, doc improvements * Prevent early loops in region graph, improve reusability of ER stage code * Typos, grammar, PEP8, and style "fixes" * use RuntimeError instead of bare Exceptions * return tuples from connect since it's slightly faster for our purposes * move the shuffle to the beginning of find_pairing * do er_state placements within pairing lookups to remove code duplication * requested adjustments * Add some temporary performance logging * Use CollectionState to track available exits and placed regions * remove seal shuffle option * some cleanup stuff * portal rando progress * pre-emptive region creation * seals need to be in the datapackage * put mega shards in old order * fix typos and make it actually work * fix more missed connections and add portal events * fix all the portal rando code * finish initial logic implementation * remove/comment out debug stuff * does not actually support plando yet * typos and fix a crash when 3 available portals was selected * finish initial logic for all connections and remove/rename as necessary * fix typos and add some more leniency * move item classification determination to its own method rather than split between two spots * super complicated solution for handling installing the alpha builds * fix logic bugs and add a test * implement logic to shuffle the cutscene portals even though it's probably not possible * just use the one list * fix some issues with the mod checking/downloading * Core: have webhost slot name links go through the launcher so that components can use them * add uri support to the launcher component function * generate output file under specific conditions * cleanup connections.py * set topology_present to true when portals are shuffled * add requirement for ghost pit loc since it's pretty hard without movement * bring hard logic back * misc cleanup * fix asset grabbing of latest version * implement ER * just use the entrances for the spoiler instead of manipulating the cache * remove test defaults * remove excessive comprehension * cleanup and cater data for the client * add elemental skylands to the shuffle pools * initial attempts at hint text * use network items for offline seeds * change around the offline seed data again * move er after portal shuffle and ensure a minimal sphere 1 * Add a method to automatically disconnect entrances in a coupled-compliant way Update docs and cleanup todos * Make find_placeable_exits deterministic by sorting blocked_connections set * add more ER transitions * fix spoiler output of portal warps * add path to hint_data * rename entrance to tot to be a bit clearer * cleanup imports and update description for hard logic * cleanup for PR to main * missed a spot * cleanup monokickstart * add location_name_groups * update docs for new setup * client can reconnect on its own now, no need for a button. * fix mod download link grabbing the wrong assets * cleanup mod pulling a bit and display version it's trying to update to * plando support * comment out broken steam deck support * supports plando * satisfy flake for currently unused file * fix the items accessibility test * review comments * add searing crags portal to starting portals when disabled like option says * address sliver comments * rip out currently unused transition shuffle * add aerobatics warrior requirement to fire seal --------- Co-authored-by: el-u <109771707+el-u@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@yahoo.com> Co-authored-by: Sean Dempsey <dempsey.sean@outlook.com> Co-authored-by: qwint <qwint.42@gmail.com>
2024-03-11 22:23:41 +00:00
"Ninja Village - Nest": [
"Ninja Village - Candle",
"Ninja Village - Astral Seed",
"Ninja Village Seal - Tree House",
],
"Autumn Hills - Climbing Claws Shop": [
"Autumn Hills - Climbing Claws",
"Autumn Hills Seal - Trip Saws",
],
"Autumn Hills - Key of Hope Checkpoint": [
"Autumn Hills - Key of Hope",
],
"Autumn Hills - Double Swing Checkpoint": [
"Autumn Hills Seal - Double Swing Saws",
],
"Autumn Hills - Spike Ball Swing Checkpoint": [
"Autumn Hills Seal - Spike Ball Swing",
"Autumn Hills Seal - Spike Ball Darts",
],
"Autumn Hills - Leaf Golem Shop": [
"Autumn Hills - Leaf Golem",
],
"Forlorn Temple - Rocket Maze Checkpoint": [
"Forlorn Temple Seal - Rocket Maze",
],
"Forlorn Temple - Rocket Sunset Shop": [
"Forlorn Temple Seal - Rocket Sunset",
],
"Forlorn Temple - Demon King Shop": [
"Forlorn Temple - Demon King",
],
"Catacombs - Top Left": [
"Catacombs - Necro",
],
"Catacombs - Triple Spike Crushers Shop": [
"Catacombs Seal - Triple Spike Crushers",
],
"Catacombs - Dirty Pond Checkpoint": [
"Catacombs Seal - Crusher Gauntlet",
"Catacombs Seal - Dirty Pond",
],
"Catacombs - Ruxxtin Shop": [
"Catacombs - Ruxxtin's Amulet",
"Catacombs - Ruxxtin",
],
"Bamboo Creek - Spike Crushers Shop": [
"Bamboo Creek Seal - Spike Crushers and Doors",
],
"Bamboo Creek - Spike Ball Pits Checkpoint": [
"Bamboo Creek Seal - Spike Ball Pits",
],
"Bamboo Creek - Time Loop Shop": [
"Bamboo Creek Seal - Spike Crushers and Doors v2",
"Bamboo Creek - Claustro",
],
"Howling Grotto - Wingsuit Shop": [
"Howling Grotto - Wingsuit",
"Howling Grotto Seal - Windy Saws and Balls",
],
"Howling Grotto - Crushing Pits Shop": [
"Howling Grotto Seal - Crushing Pits",
],
"Howling Grotto - Breezy Crushers Checkpoint": [
"Howling Grotto Seal - Breezy Crushers",
],
"Howling Grotto - Emerald Golem Shop": [
"Howling Grotto - Emerald Golem",
],
"Quillshroom Marsh - Seashell Checkpoint": [
"Quillshroom Marsh - Seashell",
],
"Quillshroom Marsh - Spikey Window Shop": [
"Quillshroom Marsh Seal - Spikey Window",
],
"Quillshroom Marsh - Sand Trap Shop": [
"Quillshroom Marsh Seal - Sand Trap",
],
"Quillshroom Marsh - Spike Wave Checkpoint": [
"Quillshroom Marsh Seal - Do the Spike Wave",
],
"Quillshroom Marsh - Queen of Quills Shop": [
"Quillshroom Marsh - Queen of Quills",
],
"Searing Crags - Rope Dart Shop": [
"Searing Crags - Rope Dart",
],
"Searing Crags - Triple Ball Spinner Checkpoint": [
"Searing Crags Seal - Triple Ball Spinner",
],
"Searing Crags - Raining Rocks Checkpoint": [
"Searing Crags Seal - Raining Rocks",
],
"Searing Crags - Colossuses Shop": [
"Searing Crags Seal - Rhythm Rocks",
"Searing Crags - Power Thistle",
"Searing Crags - Astral Tea Leaves",
],
"Searing Crags - Key of Strength Shop": [
"Searing Crags - Key of Strength",
],
"Searing Crags - Portal": [
"Searing Crags - Pyro",
],
"Glacial Peak - Ice Climbers' Shop": [
"Glacial Peak Seal - Ice Climbers",
],
"Glacial Peak - Projectile Spike Pit Checkpoint": [
"Glacial Peak Seal - Projectile Spike Pit",
],
"Glacial Peak - Air Swag Checkpoint": [
"Glacial Peak Seal - Glacial Air Swag",
],
"Tower of Time - First Checkpoint": [
"Tower of Time Seal - Time Waster",
],
"Tower of Time - Fourth Checkpoint": [
"Tower of Time Seal - Lantern Climb",
],
"Tower of Time - Fifth Checkpoint": [
"Tower of Time Seal - Arcane Orbs",
],
"Cloud Ruins - Ghost Pit Checkpoint": [
"Cloud Ruins Seal - Ghost Pit",
],
"Cloud Ruins - Toothbrush Alley Checkpoint": [
"Cloud Ruins Seal - Toothbrush Alley",
],
"Cloud Ruins - Saw Pit Checkpoint": [
"Cloud Ruins Seal - Saw Pit",
],
"Cloud Ruins - Final Flight Shop": [
"Cloud Ruins - Acro",
],
"Cloud Ruins - Manfred's Shop": [
"Cloud Ruins Seal - Money Farm Room",
],
"Underworld - Left Shop": [
"Underworld Seal - Sharp and Windy Climb",
],
"Underworld - Fireball Wave Shop": [
"Underworld Seal - Spike Wall",
"Underworld Seal - Fireball Wave",
],
"Underworld - Hot Tub Checkpoint": [
"Underworld Seal - Rising Fanta",
],
"Underworld - Key of Chaos Shop": [
"Underworld - Key of Chaos",
],
"Riviere Turquoise - Waterfall Shop": [
"Riviere Turquoise Seal - Bounces and Balls",
],
"Riviere Turquoise - Launch of Faith Shop": [
"Riviere Turquoise Seal - Launch of Faith",
],
"Riviere Turquoise - Restock Shop": [
"Riviere Turquoise Seal - Flower Power",
],
"Riviere Turquoise - Butterfly Matriarch Shop": [
"Riviere Turquoise - Butterfly Matriarch",
],
"Sunken Shrine - Lifeguard Shop": [
"Sunken Shrine Seal - Ultra Lifeguard",
],
"Sunken Shrine - Lightfoot Tabi Checkpoint": [
"Sunken Shrine - Lightfoot Tabi",
],
"Sunken Shrine - Portal": [
"Sunken Shrine - Key of Love",
],
"Sunken Shrine - Tabi Gauntlet Shop": [
"Sunken Shrine Seal - Tabi Gauntlet",
],
"Sunken Shrine - Sun Crest Checkpoint": [
"Sunken Shrine - Sun Crest",
],
"Sunken Shrine - Waterfall Paradise Checkpoint": [
"Sunken Shrine Seal - Waterfall Paradise",
],
"Sunken Shrine - Moon Crest Checkpoint": [
"Sunken Shrine - Moon Crest",
],
"Elemental Skylands - Air Seal Checkpoint": [
"Elemental Skylands Seal - Air",
],
"Elemental Skylands - Water Intro Shop": [
"Elemental Skylands Seal - Water",
],
"Elemental Skylands - Fire Intro Shop": [
"Elemental Skylands Seal - Fire",
],
"Elemental Skylands - Right": [
"Elemental Skylands - Key of Symbiosis",
],
"Corrupted Future": ["Corrupted Future - Key of Courage"],
"Music Box": ["Rescue Phantom"],
The Messenger: implement new game (#1494) * initial commit of messenger integration * setup no_logic and needed slot_data * fix some typos and determinism * make all of it deterministic * add documentation * swapped to non local items so change the fed data * ~~deathlink~~ * satisfy the docs test * update doc test to show expected name * split custom classes into a separate file and fix an errant rule * make access dependency test give more useful errors * implement tests * remove some unneccessary back entrances and make names clearer * fix some big dumbs * successful unit tests are good also some slight reorganizing * add astral tea quest line, and potentially power seals as items * if TYPE_CHECKING... aahhhhhh * oop forgot to remove legacy code * having the seed and leaves as actual items doesn't seem to do anything so remove them. locations still work though * update setup guide with some changes * Tower HQ was creating duplicate locations * allow self locking items * cleanup * move self_locking_items function to core * docstring * implement choice of notes needed for music box * test the default value * don't create any starting inventory items * make item creation faster * change default accessibility and power seals options * improve documentation * precollected_items is a dict of Items... * implement shop chest goal * tests * always assign total and required seals * add new goals and set music box as requiring shop chest on shop chest goals instead of just setting it as the completion * fix dumb test quirk * implement music box skip as an option * world rewrite/cleanup * default to apworld and add game to readme * revert bleeding commits from other PRs * more bleeds * fix some errors in options docstrings * ??? * make my set rules method not have an awful name * test cleanup * add a test for item accessibility * fix issues with tests * make the self locking item behavior work correctly * misc cleanup * more general cleanup to be a good example * quick rules rewrite * more general cleanup and typing * more speed, more clean * bump data version * make sure the locked item belongs to current player * fix bad name and indent. call MessengerItem directly for events * add poptracker pack to docs * doc cleanup and "known issues" section that I probably won't be able to fix any time soon. * missed some spots * add another bug i forgot about * be consistently wrong
2023-03-12 14:05:50 +00:00
}
The Messenger: content update (#2823) * map option objects to a `World.options` dict * convert RoR2 to options dict system for testing * add temp behavior for lttp with notes * copy/paste bad * convert `set_default_common_options` to a namespace property * reorganize test call order * have fill_restrictive use the new options system * update world api * update soe tests * fix world api * core: auto initialize a dataclass on the World class with the option results * core: auto initialize a dataclass on the World class with the option results: small tying improvement * add `as_dict` method to the options dataclass * fix namespace issues with tests * have current option updates use `.value` instead of changing the option * update ror2 to use the new options system again * revert the junk pool dict since it's cased differently * fix begin_with_loop typo * write new and old options to spoiler * change factorio option behavior back * fix comparisons * move common and per_game_common options to new system * core: automatically create missing options_dataclass from legacy option_definitions * remove spoiler special casing and add back the Factorio option changing but in new system * give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly * reimplement `inspect.get_annotations` * move option info generation for webhost to new system * need to include Common and PerGame common since __annotations__ doesn't include super * use get_type_hints for the options dictionary * typing.get_type_hints returns the bases too. * forgot to sweep through generate * sweep through all the tests * swap to a metaclass property * move remaining usages from get_type_hints to metaclass property * move remaining usages from __annotations__ to metaclass property * move remaining usages from legacy dictionaries to metaclass property * remove legacy dictionaries * cache the metaclass property * clarify inheritance in world api * move the messenger to new options system * add an assert for my dumb * update the doc * rename o to options * missed a spot * update new messenger options * comment spacing Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * fix tests * fix missing import * make the documentation definition more accurate * use options system for loc creation * type cast MessengerWorld * fix typo and use quotes for cast * LTTP: set random seed in tests * ArchipIdle: remove change here as it's default on AutoWorld * Stardew: Need to set state because `set_default_common_options` used to * The Messenger: update shop rando and helpers to new system; optimize imports * Add a kwarg to `as_dict` to do the casing for you * RoR2: use new kwarg for less code * RoR2: revert some accidental reverts * The Messenger: remove an unnecessary variable * remove TypeVar that isn't used * CommonOptions not abstract * Docs: fix mistake in options api.md Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * create options for item link worlds * revert accidental doc removals * Item Links: set default options on group * Messenger: Limited Movement option first draft * The Messenger: add automated setup through the launcher * drop tomllib * don't uselessly import launcher * The Messenger: fix missing goal requirement for power seal hunt * make hard mode goal harder * make fire seal a bit more lenient * have limited movement force minimal accessibility * add an early meditation option * clean up precollected notes tests a bit * add linux support * add steam deck support * await monokickstart * minor styling cleanup * more minor styling cleanup * Initial implementation of Generic ER * Move ERType to Entrance.Type, fix typing imports * updates based on testing (read: flailing) * Updates from feedback * Various bug fixes in ERCollectionState * Use deque instead of queue.Queue * Allow partial entrances in collection state earlier, doc improvements * Prevent early loops in region graph, improve reusability of ER stage code * Typos, grammar, PEP8, and style "fixes" * use RuntimeError instead of bare Exceptions * return tuples from connect since it's slightly faster for our purposes * move the shuffle to the beginning of find_pairing * do er_state placements within pairing lookups to remove code duplication * requested adjustments * Add some temporary performance logging * Use CollectionState to track available exits and placed regions * remove seal shuffle option * some cleanup stuff * portal rando progress * pre-emptive region creation * seals need to be in the datapackage * put mega shards in old order * fix typos and make it actually work * fix more missed connections and add portal events * fix all the portal rando code * finish initial logic implementation * remove/comment out debug stuff * does not actually support plando yet * typos and fix a crash when 3 available portals was selected * finish initial logic for all connections and remove/rename as necessary * fix typos and add some more leniency * move item classification determination to its own method rather than split between two spots * super complicated solution for handling installing the alpha builds * fix logic bugs and add a test * implement logic to shuffle the cutscene portals even though it's probably not possible * just use the one list * fix some issues with the mod checking/downloading * Core: have webhost slot name links go through the launcher so that components can use them * add uri support to the launcher component function * generate output file under specific conditions * cleanup connections.py * set topology_present to true when portals are shuffled * add requirement for ghost pit loc since it's pretty hard without movement * bring hard logic back * misc cleanup * fix asset grabbing of latest version * implement ER * just use the entrances for the spoiler instead of manipulating the cache * remove test defaults * remove excessive comprehension * cleanup and cater data for the client * add elemental skylands to the shuffle pools * initial attempts at hint text * use network items for offline seeds * change around the offline seed data again * move er after portal shuffle and ensure a minimal sphere 1 * Add a method to automatically disconnect entrances in a coupled-compliant way Update docs and cleanup todos * Make find_placeable_exits deterministic by sorting blocked_connections set * add more ER transitions * fix spoiler output of portal warps * add path to hint_data * rename entrance to tot to be a bit clearer * cleanup imports and update description for hard logic * cleanup for PR to main * missed a spot * cleanup monokickstart * add location_name_groups * update docs for new setup * client can reconnect on its own now, no need for a button. * fix mod download link grabbing the wrong assets * cleanup mod pulling a bit and display version it's trying to update to * plando support * comment out broken steam deck support * supports plando * satisfy flake for currently unused file * fix the items accessibility test * review comments * add searing crags portal to starting portals when disabled like option says * address sliver comments * rip out currently unused transition shuffle * add aerobatics warrior requirement to fire seal --------- Co-authored-by: el-u <109771707+el-u@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@yahoo.com> Co-authored-by: Sean Dempsey <dempsey.sean@outlook.com> Co-authored-by: qwint <qwint.42@gmail.com>
2024-03-11 22:23:41 +00:00
SUB_REGIONS: dict[str, list[str]] = {
The Messenger: content update (#2823) * map option objects to a `World.options` dict * convert RoR2 to options dict system for testing * add temp behavior for lttp with notes * copy/paste bad * convert `set_default_common_options` to a namespace property * reorganize test call order * have fill_restrictive use the new options system * update world api * update soe tests * fix world api * core: auto initialize a dataclass on the World class with the option results * core: auto initialize a dataclass on the World class with the option results: small tying improvement * add `as_dict` method to the options dataclass * fix namespace issues with tests * have current option updates use `.value` instead of changing the option * update ror2 to use the new options system again * revert the junk pool dict since it's cased differently * fix begin_with_loop typo * write new and old options to spoiler * change factorio option behavior back * fix comparisons * move common and per_game_common options to new system * core: automatically create missing options_dataclass from legacy option_definitions * remove spoiler special casing and add back the Factorio option changing but in new system * give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly * reimplement `inspect.get_annotations` * move option info generation for webhost to new system * need to include Common and PerGame common since __annotations__ doesn't include super * use get_type_hints for the options dictionary * typing.get_type_hints returns the bases too. * forgot to sweep through generate * sweep through all the tests * swap to a metaclass property * move remaining usages from get_type_hints to metaclass property * move remaining usages from __annotations__ to metaclass property * move remaining usages from legacy dictionaries to metaclass property * remove legacy dictionaries * cache the metaclass property * clarify inheritance in world api * move the messenger to new options system * add an assert for my dumb * update the doc * rename o to options * missed a spot * update new messenger options * comment spacing Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * fix tests * fix missing import * make the documentation definition more accurate * use options system for loc creation * type cast MessengerWorld * fix typo and use quotes for cast * LTTP: set random seed in tests * ArchipIdle: remove change here as it's default on AutoWorld * Stardew: Need to set state because `set_default_common_options` used to * The Messenger: update shop rando and helpers to new system; optimize imports * Add a kwarg to `as_dict` to do the casing for you * RoR2: use new kwarg for less code * RoR2: revert some accidental reverts * The Messenger: remove an unnecessary variable * remove TypeVar that isn't used * CommonOptions not abstract * Docs: fix mistake in options api.md Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * create options for item link worlds * revert accidental doc removals * Item Links: set default options on group * Messenger: Limited Movement option first draft * The Messenger: add automated setup through the launcher * drop tomllib * don't uselessly import launcher * The Messenger: fix missing goal requirement for power seal hunt * make hard mode goal harder * make fire seal a bit more lenient * have limited movement force minimal accessibility * add an early meditation option * clean up precollected notes tests a bit * add linux support * add steam deck support * await monokickstart * minor styling cleanup * more minor styling cleanup * Initial implementation of Generic ER * Move ERType to Entrance.Type, fix typing imports * updates based on testing (read: flailing) * Updates from feedback * Various bug fixes in ERCollectionState * Use deque instead of queue.Queue * Allow partial entrances in collection state earlier, doc improvements * Prevent early loops in region graph, improve reusability of ER stage code * Typos, grammar, PEP8, and style "fixes" * use RuntimeError instead of bare Exceptions * return tuples from connect since it's slightly faster for our purposes * move the shuffle to the beginning of find_pairing * do er_state placements within pairing lookups to remove code duplication * requested adjustments * Add some temporary performance logging * Use CollectionState to track available exits and placed regions * remove seal shuffle option * some cleanup stuff * portal rando progress * pre-emptive region creation * seals need to be in the datapackage * put mega shards in old order * fix typos and make it actually work * fix more missed connections and add portal events * fix all the portal rando code * finish initial logic implementation * remove/comment out debug stuff * does not actually support plando yet * typos and fix a crash when 3 available portals was selected * finish initial logic for all connections and remove/rename as necessary * fix typos and add some more leniency * move item classification determination to its own method rather than split between two spots * super complicated solution for handling installing the alpha builds * fix logic bugs and add a test * implement logic to shuffle the cutscene portals even though it's probably not possible * just use the one list * fix some issues with the mod checking/downloading * Core: have webhost slot name links go through the launcher so that components can use them * add uri support to the launcher component function * generate output file under specific conditions * cleanup connections.py * set topology_present to true when portals are shuffled * add requirement for ghost pit loc since it's pretty hard without movement * bring hard logic back * misc cleanup * fix asset grabbing of latest version * implement ER * just use the entrances for the spoiler instead of manipulating the cache * remove test defaults * remove excessive comprehension * cleanup and cater data for the client * add elemental skylands to the shuffle pools * initial attempts at hint text * use network items for offline seeds * change around the offline seed data again * move er after portal shuffle and ensure a minimal sphere 1 * Add a method to automatically disconnect entrances in a coupled-compliant way Update docs and cleanup todos * Make find_placeable_exits deterministic by sorting blocked_connections set * add more ER transitions * fix spoiler output of portal warps * add path to hint_data * rename entrance to tot to be a bit clearer * cleanup imports and update description for hard logic * cleanup for PR to main * missed a spot * cleanup monokickstart * add location_name_groups * update docs for new setup * client can reconnect on its own now, no need for a button. * fix mod download link grabbing the wrong assets * cleanup mod pulling a bit and display version it's trying to update to * plando support * comment out broken steam deck support * supports plando * satisfy flake for currently unused file * fix the items accessibility test * review comments * add searing crags portal to starting portals when disabled like option says * address sliver comments * rip out currently unused transition shuffle * add aerobatics warrior requirement to fire seal --------- Co-authored-by: el-u <109771707+el-u@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@yahoo.com> Co-authored-by: Sean Dempsey <dempsey.sean@outlook.com> Co-authored-by: qwint <qwint.42@gmail.com>
2024-03-11 22:23:41 +00:00
"Ninja Village": [
"Right",
],
"Autumn Hills": [
"Left",
"Right",
"Bottom",
"Portal",
"Climbing Claws Shop",
"Hope Path Shop",
"Dimension Climb Shop",
"Leaf Golem Shop",
"Hope Path Checkpoint",
"Key of Hope Checkpoint",
"Lakeside Checkpoint",
"Double Swing Checkpoint",
"Spike Ball Swing Checkpoint",
],
"Forlorn Temple": [
"Left",
"Right",
"Bottom",
"Outside Shop",
"Entrance Shop",
"Climb Shop",
"Rocket Sunset Shop",
"Descent Shop",
"Final Fall Shop",
"Demon King Shop",
"Sunny Day Checkpoint",
"Rocket Maze Checkpoint",
],
"Catacombs": [
"Top Left",
"Bottom Left",
"Bottom",
"Right",
"Triple Spike Crushers Shop",
"Ruxxtin Shop",
"Death Trap Checkpoint",
"Crusher Gauntlet Checkpoint",
"Dirty Pond Checkpoint",
],
"Bamboo Creek": [
"Bottom Left",
"Top Left",
"Right",
"Spike Crushers Shop",
"Abandoned Shop",
"Time Loop Shop",
"Spike Ball Pits Checkpoint",
"Spike Doors Checkpoint",
],
"Howling Grotto": [
"Left",
"Top",
"Right",
"Bottom",
"Portal",
"Wingsuit Shop",
"Crushing Pits Shop",
"Emerald Golem Shop",
"Lost Woods Checkpoint",
"Breezy Crushers Checkpoint",
],
"Quillshroom Marsh": [
"Top Left",
"Bottom Left",
"Top Right",
"Bottom Right",
"Spikey Window Shop",
"Sand Trap Shop",
"Queen of Quills Shop",
"Seashell Checkpoint",
"Quicksand Checkpoint",
"Spike Wave Checkpoint",
],
"Searing Crags": [
"Left",
"Top",
"Bottom",
"Right",
"Portal",
"Rope Dart Shop",
"Falling Rocks Shop",
"Searing Mega Shard Shop",
"Before Final Climb Shop",
"Colossuses Shop",
"Key of Strength Shop",
"Triple Ball Spinner Checkpoint",
"Raining Rocks Checkpoint",
],
"Glacial Peak": [
"Bottom",
"Top",
"Portal",
"Ice Climbers' Shop",
"Glacial Mega Shard Shop",
"Tower Entrance Shop",
"Projectile Spike Pit Checkpoint",
"Air Swag Checkpoint",
"Free Climbing Checkpoint",
],
"Tower of Time": [
"Left",
"Entrance Shop",
"Arcane Golem Shop",
"First Checkpoint",
"Second Checkpoint",
"Third Checkpoint",
"Fourth Checkpoint",
"Fifth Checkpoint",
"Sixth Checkpoint",
],
"Cloud Ruins": [
"Left",
"Entrance Shop",
"Pillar Glide Shop",
"Crushers' Descent Shop",
"Seeing Spikes Shop",
"Sliding Spikes Shop",
"Final Flight Shop",
"Manfred's Shop",
"Spike Float Checkpoint",
"Ghost Pit Checkpoint",
"Toothbrush Alley Checkpoint",
"Saw Pit Checkpoint",
],
"Underworld": [
"Left",
"Entrance Shop",
"Fireball Wave Shop",
"Long Climb Shop",
"Barm'athaziel Shop",
"Key of Chaos Shop",
"Hot Dip Checkpoint",
"Hot Tub Checkpoint",
"Lava Run Checkpoint",
],
"Riviere Turquoise": [
"Right",
"Portal",
"Waterfall Shop",
"Launch of Faith Shop",
"Log Flume Shop",
"Log Climb Shop",
"Restock Shop",
"Butterfly Matriarch Shop",
"Flower Flight Checkpoint",
],
"Elemental Skylands": [
"Air Shmup",
"Air Intro Shop",
"Air Seal Checkpoint",
"Air Generator Shop",
"Earth Shmup",
"Earth Intro Shop",
"Earth Generator Shop",
"Fire Shmup",
"Fire Intro Shop",
"Fire Generator Shop",
"Water Shmup",
"Water Intro Shop",
"Water Generator Shop",
"Right",
],
"Sunken Shrine": [
"Left",
"Portal",
"Entrance Shop",
"Lifeguard Shop",
"Sun Path Shop",
"Tabi Gauntlet Shop",
"Moon Path Shop",
"Ninja Tabi Checkpoint",
"Sun Crest Checkpoint",
"Waterfall Paradise Checkpoint",
"Moon Crest Checkpoint",
],
}
The Messenger: implement new game (#1494) * initial commit of messenger integration * setup no_logic and needed slot_data * fix some typos and determinism * make all of it deterministic * add documentation * swapped to non local items so change the fed data * ~~deathlink~~ * satisfy the docs test * update doc test to show expected name * split custom classes into a separate file and fix an errant rule * make access dependency test give more useful errors * implement tests * remove some unneccessary back entrances and make names clearer * fix some big dumbs * successful unit tests are good also some slight reorganizing * add astral tea quest line, and potentially power seals as items * if TYPE_CHECKING... aahhhhhh * oop forgot to remove legacy code * having the seed and leaves as actual items doesn't seem to do anything so remove them. locations still work though * update setup guide with some changes * Tower HQ was creating duplicate locations * allow self locking items * cleanup * move self_locking_items function to core * docstring * implement choice of notes needed for music box * test the default value * don't create any starting inventory items * make item creation faster * change default accessibility and power seals options * improve documentation * precollected_items is a dict of Items... * implement shop chest goal * tests * always assign total and required seals * add new goals and set music box as requiring shop chest on shop chest goals instead of just setting it as the completion * fix dumb test quirk * implement music box skip as an option * world rewrite/cleanup * default to apworld and add game to readme * revert bleeding commits from other PRs * more bleeds * fix some errors in options docstrings * ??? * make my set rules method not have an awful name * test cleanup * add a test for item accessibility * fix issues with tests * make the self locking item behavior work correctly * misc cleanup * more general cleanup to be a good example * quick rules rewrite * more general cleanup and typing * more speed, more clean * bump data version * make sure the locked item belongs to current player * fix bad name and indent. call MessengerItem directly for events * add poptracker pack to docs * doc cleanup and "known issues" section that I probably won't be able to fix any time soon. * missed some spots * add another bug i forgot about * be consistently wrong
2023-03-12 14:05:50 +00:00
The Messenger: content update (#2823) * map option objects to a `World.options` dict * convert RoR2 to options dict system for testing * add temp behavior for lttp with notes * copy/paste bad * convert `set_default_common_options` to a namespace property * reorganize test call order * have fill_restrictive use the new options system * update world api * update soe tests * fix world api * core: auto initialize a dataclass on the World class with the option results * core: auto initialize a dataclass on the World class with the option results: small tying improvement * add `as_dict` method to the options dataclass * fix namespace issues with tests * have current option updates use `.value` instead of changing the option * update ror2 to use the new options system again * revert the junk pool dict since it's cased differently * fix begin_with_loop typo * write new and old options to spoiler * change factorio option behavior back * fix comparisons * move common and per_game_common options to new system * core: automatically create missing options_dataclass from legacy option_definitions * remove spoiler special casing and add back the Factorio option changing but in new system * give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly * reimplement `inspect.get_annotations` * move option info generation for webhost to new system * need to include Common and PerGame common since __annotations__ doesn't include super * use get_type_hints for the options dictionary * typing.get_type_hints returns the bases too. * forgot to sweep through generate * sweep through all the tests * swap to a metaclass property * move remaining usages from get_type_hints to metaclass property * move remaining usages from __annotations__ to metaclass property * move remaining usages from legacy dictionaries to metaclass property * remove legacy dictionaries * cache the metaclass property * clarify inheritance in world api * move the messenger to new options system * add an assert for my dumb * update the doc * rename o to options * missed a spot * update new messenger options * comment spacing Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * fix tests * fix missing import * make the documentation definition more accurate * use options system for loc creation * type cast MessengerWorld * fix typo and use quotes for cast * LTTP: set random seed in tests * ArchipIdle: remove change here as it's default on AutoWorld * Stardew: Need to set state because `set_default_common_options` used to * The Messenger: update shop rando and helpers to new system; optimize imports * Add a kwarg to `as_dict` to do the casing for you * RoR2: use new kwarg for less code * RoR2: revert some accidental reverts * The Messenger: remove an unnecessary variable * remove TypeVar that isn't used * CommonOptions not abstract * Docs: fix mistake in options api.md Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * create options for item link worlds * revert accidental doc removals * Item Links: set default options on group * Messenger: Limited Movement option first draft * The Messenger: add automated setup through the launcher * drop tomllib * don't uselessly import launcher * The Messenger: fix missing goal requirement for power seal hunt * make hard mode goal harder * make fire seal a bit more lenient * have limited movement force minimal accessibility * add an early meditation option * clean up precollected notes tests a bit * add linux support * add steam deck support * await monokickstart * minor styling cleanup * more minor styling cleanup * Initial implementation of Generic ER * Move ERType to Entrance.Type, fix typing imports * updates based on testing (read: flailing) * Updates from feedback * Various bug fixes in ERCollectionState * Use deque instead of queue.Queue * Allow partial entrances in collection state earlier, doc improvements * Prevent early loops in region graph, improve reusability of ER stage code * Typos, grammar, PEP8, and style "fixes" * use RuntimeError instead of bare Exceptions * return tuples from connect since it's slightly faster for our purposes * move the shuffle to the beginning of find_pairing * do er_state placements within pairing lookups to remove code duplication * requested adjustments * Add some temporary performance logging * Use CollectionState to track available exits and placed regions * remove seal shuffle option * some cleanup stuff * portal rando progress * pre-emptive region creation * seals need to be in the datapackage * put mega shards in old order * fix typos and make it actually work * fix more missed connections and add portal events * fix all the portal rando code * finish initial logic implementation * remove/comment out debug stuff * does not actually support plando yet * typos and fix a crash when 3 available portals was selected * finish initial logic for all connections and remove/rename as necessary * fix typos and add some more leniency * move item classification determination to its own method rather than split between two spots * super complicated solution for handling installing the alpha builds * fix logic bugs and add a test * implement logic to shuffle the cutscene portals even though it's probably not possible * just use the one list * fix some issues with the mod checking/downloading * Core: have webhost slot name links go through the launcher so that components can use them * add uri support to the launcher component function * generate output file under specific conditions * cleanup connections.py * set topology_present to true when portals are shuffled * add requirement for ghost pit loc since it's pretty hard without movement * bring hard logic back * misc cleanup * fix asset grabbing of latest version * implement ER * just use the entrances for the spoiler instead of manipulating the cache * remove test defaults * remove excessive comprehension * cleanup and cater data for the client * add elemental skylands to the shuffle pools * initial attempts at hint text * use network items for offline seeds * change around the offline seed data again * move er after portal shuffle and ensure a minimal sphere 1 * Add a method to automatically disconnect entrances in a coupled-compliant way Update docs and cleanup todos * Make find_placeable_exits deterministic by sorting blocked_connections set * add more ER transitions * fix spoiler output of portal warps * add path to hint_data * rename entrance to tot to be a bit clearer * cleanup imports and update description for hard logic * cleanup for PR to main * missed a spot * cleanup monokickstart * add location_name_groups * update docs for new setup * client can reconnect on its own now, no need for a button. * fix mod download link grabbing the wrong assets * cleanup mod pulling a bit and display version it's trying to update to * plando support * comment out broken steam deck support * supports plando * satisfy flake for currently unused file * fix the items accessibility test * review comments * add searing crags portal to starting portals when disabled like option says * address sliver comments * rip out currently unused transition shuffle * add aerobatics warrior requirement to fire seal --------- Co-authored-by: el-u <109771707+el-u@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@yahoo.com> Co-authored-by: Sean Dempsey <dempsey.sean@outlook.com> Co-authored-by: qwint <qwint.42@gmail.com>
2024-03-11 22:23:41 +00:00
# order is slightly funky here for back compat
MEGA_SHARDS: dict[str, list[str]] = {
The Messenger: content update (#2823) * map option objects to a `World.options` dict * convert RoR2 to options dict system for testing * add temp behavior for lttp with notes * copy/paste bad * convert `set_default_common_options` to a namespace property * reorganize test call order * have fill_restrictive use the new options system * update world api * update soe tests * fix world api * core: auto initialize a dataclass on the World class with the option results * core: auto initialize a dataclass on the World class with the option results: small tying improvement * add `as_dict` method to the options dataclass * fix namespace issues with tests * have current option updates use `.value` instead of changing the option * update ror2 to use the new options system again * revert the junk pool dict since it's cased differently * fix begin_with_loop typo * write new and old options to spoiler * change factorio option behavior back * fix comparisons * move common and per_game_common options to new system * core: automatically create missing options_dataclass from legacy option_definitions * remove spoiler special casing and add back the Factorio option changing but in new system * give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly * reimplement `inspect.get_annotations` * move option info generation for webhost to new system * need to include Common and PerGame common since __annotations__ doesn't include super * use get_type_hints for the options dictionary * typing.get_type_hints returns the bases too. * forgot to sweep through generate * sweep through all the tests * swap to a metaclass property * move remaining usages from get_type_hints to metaclass property * move remaining usages from __annotations__ to metaclass property * move remaining usages from legacy dictionaries to metaclass property * remove legacy dictionaries * cache the metaclass property * clarify inheritance in world api * move the messenger to new options system * add an assert for my dumb * update the doc * rename o to options * missed a spot * update new messenger options * comment spacing Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * fix tests * fix missing import * make the documentation definition more accurate * use options system for loc creation * type cast MessengerWorld * fix typo and use quotes for cast * LTTP: set random seed in tests * ArchipIdle: remove change here as it's default on AutoWorld * Stardew: Need to set state because `set_default_common_options` used to * The Messenger: update shop rando and helpers to new system; optimize imports * Add a kwarg to `as_dict` to do the casing for you * RoR2: use new kwarg for less code * RoR2: revert some accidental reverts * The Messenger: remove an unnecessary variable * remove TypeVar that isn't used * CommonOptions not abstract * Docs: fix mistake in options api.md Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * create options for item link worlds * revert accidental doc removals * Item Links: set default options on group * Messenger: Limited Movement option first draft * The Messenger: add automated setup through the launcher * drop tomllib * don't uselessly import launcher * The Messenger: fix missing goal requirement for power seal hunt * make hard mode goal harder * make fire seal a bit more lenient * have limited movement force minimal accessibility * add an early meditation option * clean up precollected notes tests a bit * add linux support * add steam deck support * await monokickstart * minor styling cleanup * more minor styling cleanup * Initial implementation of Generic ER * Move ERType to Entrance.Type, fix typing imports * updates based on testing (read: flailing) * Updates from feedback * Various bug fixes in ERCollectionState * Use deque instead of queue.Queue * Allow partial entrances in collection state earlier, doc improvements * Prevent early loops in region graph, improve reusability of ER stage code * Typos, grammar, PEP8, and style "fixes" * use RuntimeError instead of bare Exceptions * return tuples from connect since it's slightly faster for our purposes * move the shuffle to the beginning of find_pairing * do er_state placements within pairing lookups to remove code duplication * requested adjustments * Add some temporary performance logging * Use CollectionState to track available exits and placed regions * remove seal shuffle option * some cleanup stuff * portal rando progress * pre-emptive region creation * seals need to be in the datapackage * put mega shards in old order * fix typos and make it actually work * fix more missed connections and add portal events * fix all the portal rando code * finish initial logic implementation * remove/comment out debug stuff * does not actually support plando yet * typos and fix a crash when 3 available portals was selected * finish initial logic for all connections and remove/rename as necessary * fix typos and add some more leniency * move item classification determination to its own method rather than split between two spots * super complicated solution for handling installing the alpha builds * fix logic bugs and add a test * implement logic to shuffle the cutscene portals even though it's probably not possible * just use the one list * fix some issues with the mod checking/downloading * Core: have webhost slot name links go through the launcher so that components can use them * add uri support to the launcher component function * generate output file under specific conditions * cleanup connections.py * set topology_present to true when portals are shuffled * add requirement for ghost pit loc since it's pretty hard without movement * bring hard logic back * misc cleanup * fix asset grabbing of latest version * implement ER * just use the entrances for the spoiler instead of manipulating the cache * remove test defaults * remove excessive comprehension * cleanup and cater data for the client * add elemental skylands to the shuffle pools * initial attempts at hint text * use network items for offline seeds * change around the offline seed data again * move er after portal shuffle and ensure a minimal sphere 1 * Add a method to automatically disconnect entrances in a coupled-compliant way Update docs and cleanup todos * Make find_placeable_exits deterministic by sorting blocked_connections set * add more ER transitions * fix spoiler output of portal warps * add path to hint_data * rename entrance to tot to be a bit clearer * cleanup imports and update description for hard logic * cleanup for PR to main * missed a spot * cleanup monokickstart * add location_name_groups * update docs for new setup * client can reconnect on its own now, no need for a button. * fix mod download link grabbing the wrong assets * cleanup mod pulling a bit and display version it's trying to update to * plando support * comment out broken steam deck support * supports plando * satisfy flake for currently unused file * fix the items accessibility test * review comments * add searing crags portal to starting portals when disabled like option says * address sliver comments * rip out currently unused transition shuffle * add aerobatics warrior requirement to fire seal --------- Co-authored-by: el-u <109771707+el-u@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@yahoo.com> Co-authored-by: Sean Dempsey <dempsey.sean@outlook.com> Co-authored-by: qwint <qwint.42@gmail.com>
2024-03-11 22:23:41 +00:00
"Autumn Hills - Lakeside Checkpoint": ["Autumn Hills Mega Shard"],
"Forlorn Temple - Outside Shop": ["Hidden Entrance Mega Shard"],
"Catacombs - Top Left": ["Catacombs Mega Shard"],
"Bamboo Creek - Spike Crushers Shop": ["Above Entrance Mega Shard"],
"Bamboo Creek - Abandoned Shop": ["Abandoned Mega Shard"],
"Bamboo Creek - Time Loop Shop": ["Time Loop Mega Shard"],
"Howling Grotto - Lost Woods Checkpoint": ["Bottom Left Mega Shard"],
"Howling Grotto - Breezy Crushers Checkpoint": ["Near Portal Mega Shard", "Pie in the Sky Mega Shard"],
"Quillshroom Marsh - Spikey Window Shop": ["Quillshroom Marsh Mega Shard"],
"Searing Crags - Searing Mega Shard Shop": ["Searing Crags Mega Shard"],
"Glacial Peak - Glacial Mega Shard Shop": ["Glacial Peak Mega Shard"],
"Cloud Ruins - Cloud Entrance Shop": ["Cloud Entrance Mega Shard", "Time Warp Mega Shard"],
"Cloud Ruins - Manfred's Shop": ["Money Farm Room Mega Shard 1", "Money Farm Room Mega Shard 2"],
"Underworld - Left Shop": ["Under Entrance Mega Shard"],
"Underworld - Hot Tub Checkpoint": ["Hot Tub Mega Shard", "Projectile Pit Mega Shard"],
"Forlorn Temple - Sunny Day Checkpoint": ["Sunny Day Mega Shard"],
"Forlorn Temple - Demon King Shop": ["Down Under Mega Shard"],
"Sunken Shrine - Waterfall Paradise Checkpoint": ["Mega Shard of the Moon"],
"Sunken Shrine - Portal": ["Beginner's Mega Shard"],
"Sunken Shrine - Above Portal Shop": ["Mega Shard of the Stars"],
"Sunken Shrine - Sun Crest Checkpoint": ["Mega Shard of the Sun"],
"Riviere Turquoise - Waterfall Shop": ["Waterfall Mega Shard"],
"Riviere Turquoise - Restock Shop": ["Quick Restock Mega Shard 1", "Quick Restock Mega Shard 2"],
"Elemental Skylands - Earth Intro Shop": ["Earth Mega Shard"],
"Elemental Skylands - Water Generator Shop": ["Water Mega Shard"],
}
The Messenger: implement new game (#1494) * initial commit of messenger integration * setup no_logic and needed slot_data * fix some typos and determinism * make all of it deterministic * add documentation * swapped to non local items so change the fed data * ~~deathlink~~ * satisfy the docs test * update doc test to show expected name * split custom classes into a separate file and fix an errant rule * make access dependency test give more useful errors * implement tests * remove some unneccessary back entrances and make names clearer * fix some big dumbs * successful unit tests are good also some slight reorganizing * add astral tea quest line, and potentially power seals as items * if TYPE_CHECKING... aahhhhhh * oop forgot to remove legacy code * having the seed and leaves as actual items doesn't seem to do anything so remove them. locations still work though * update setup guide with some changes * Tower HQ was creating duplicate locations * allow self locking items * cleanup * move self_locking_items function to core * docstring * implement choice of notes needed for music box * test the default value * don't create any starting inventory items * make item creation faster * change default accessibility and power seals options * improve documentation * precollected_items is a dict of Items... * implement shop chest goal * tests * always assign total and required seals * add new goals and set music box as requiring shop chest on shop chest goals instead of just setting it as the completion * fix dumb test quirk * implement music box skip as an option * world rewrite/cleanup * default to apworld and add game to readme * revert bleeding commits from other PRs * more bleeds * fix some errors in options docstrings * ??? * make my set rules method not have an awful name * test cleanup * add a test for item accessibility * fix issues with tests * make the self locking item behavior work correctly * misc cleanup * more general cleanup to be a good example * quick rules rewrite * more general cleanup and typing * more speed, more clean * bump data version * make sure the locked item belongs to current player * fix bad name and indent. call MessengerItem directly for events * add poptracker pack to docs * doc cleanup and "known issues" section that I probably won't be able to fix any time soon. * missed some spots * add another bug i forgot about * be consistently wrong
2023-03-12 14:05:50 +00:00
REGION_CONNECTIONS: dict[str, dict[str, str]] = {
The Messenger: content update (#2823) * map option objects to a `World.options` dict * convert RoR2 to options dict system for testing * add temp behavior for lttp with notes * copy/paste bad * convert `set_default_common_options` to a namespace property * reorganize test call order * have fill_restrictive use the new options system * update world api * update soe tests * fix world api * core: auto initialize a dataclass on the World class with the option results * core: auto initialize a dataclass on the World class with the option results: small tying improvement * add `as_dict` method to the options dataclass * fix namespace issues with tests * have current option updates use `.value` instead of changing the option * update ror2 to use the new options system again * revert the junk pool dict since it's cased differently * fix begin_with_loop typo * write new and old options to spoiler * change factorio option behavior back * fix comparisons * move common and per_game_common options to new system * core: automatically create missing options_dataclass from legacy option_definitions * remove spoiler special casing and add back the Factorio option changing but in new system * give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly * reimplement `inspect.get_annotations` * move option info generation for webhost to new system * need to include Common and PerGame common since __annotations__ doesn't include super * use get_type_hints for the options dictionary * typing.get_type_hints returns the bases too. * forgot to sweep through generate * sweep through all the tests * swap to a metaclass property * move remaining usages from get_type_hints to metaclass property * move remaining usages from __annotations__ to metaclass property * move remaining usages from legacy dictionaries to metaclass property * remove legacy dictionaries * cache the metaclass property * clarify inheritance in world api * move the messenger to new options system * add an assert for my dumb * update the doc * rename o to options * missed a spot * update new messenger options * comment spacing Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * fix tests * fix missing import * make the documentation definition more accurate * use options system for loc creation * type cast MessengerWorld * fix typo and use quotes for cast * LTTP: set random seed in tests * ArchipIdle: remove change here as it's default on AutoWorld * Stardew: Need to set state because `set_default_common_options` used to * The Messenger: update shop rando and helpers to new system; optimize imports * Add a kwarg to `as_dict` to do the casing for you * RoR2: use new kwarg for less code * RoR2: revert some accidental reverts * The Messenger: remove an unnecessary variable * remove TypeVar that isn't used * CommonOptions not abstract * Docs: fix mistake in options api.md Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * create options for item link worlds * revert accidental doc removals * Item Links: set default options on group * Messenger: Limited Movement option first draft * The Messenger: add automated setup through the launcher * drop tomllib * don't uselessly import launcher * The Messenger: fix missing goal requirement for power seal hunt * make hard mode goal harder * make fire seal a bit more lenient * have limited movement force minimal accessibility * add an early meditation option * clean up precollected notes tests a bit * add linux support * add steam deck support * await monokickstart * minor styling cleanup * more minor styling cleanup * Initial implementation of Generic ER * Move ERType to Entrance.Type, fix typing imports * updates based on testing (read: flailing) * Updates from feedback * Various bug fixes in ERCollectionState * Use deque instead of queue.Queue * Allow partial entrances in collection state earlier, doc improvements * Prevent early loops in region graph, improve reusability of ER stage code * Typos, grammar, PEP8, and style "fixes" * use RuntimeError instead of bare Exceptions * return tuples from connect since it's slightly faster for our purposes * move the shuffle to the beginning of find_pairing * do er_state placements within pairing lookups to remove code duplication * requested adjustments * Add some temporary performance logging * Use CollectionState to track available exits and placed regions * remove seal shuffle option * some cleanup stuff * portal rando progress * pre-emptive region creation * seals need to be in the datapackage * put mega shards in old order * fix typos and make it actually work * fix more missed connections and add portal events * fix all the portal rando code * finish initial logic implementation * remove/comment out debug stuff * does not actually support plando yet * typos and fix a crash when 3 available portals was selected * finish initial logic for all connections and remove/rename as necessary * fix typos and add some more leniency * move item classification determination to its own method rather than split between two spots * super complicated solution for handling installing the alpha builds * fix logic bugs and add a test * implement logic to shuffle the cutscene portals even though it's probably not possible * just use the one list * fix some issues with the mod checking/downloading * Core: have webhost slot name links go through the launcher so that components can use them * add uri support to the launcher component function * generate output file under specific conditions * cleanup connections.py * set topology_present to true when portals are shuffled * add requirement for ghost pit loc since it's pretty hard without movement * bring hard logic back * misc cleanup * fix asset grabbing of latest version * implement ER * just use the entrances for the spoiler instead of manipulating the cache * remove test defaults * remove excessive comprehension * cleanup and cater data for the client * add elemental skylands to the shuffle pools * initial attempts at hint text * use network items for offline seeds * change around the offline seed data again * move er after portal shuffle and ensure a minimal sphere 1 * Add a method to automatically disconnect entrances in a coupled-compliant way Update docs and cleanup todos * Make find_placeable_exits deterministic by sorting blocked_connections set * add more ER transitions * fix spoiler output of portal warps * add path to hint_data * rename entrance to tot to be a bit clearer * cleanup imports and update description for hard logic * cleanup for PR to main * missed a spot * cleanup monokickstart * add location_name_groups * update docs for new setup * client can reconnect on its own now, no need for a button. * fix mod download link grabbing the wrong assets * cleanup mod pulling a bit and display version it's trying to update to * plando support * comment out broken steam deck support * supports plando * satisfy flake for currently unused file * fix the items accessibility test * review comments * add searing crags portal to starting portals when disabled like option says * address sliver comments * rip out currently unused transition shuffle * add aerobatics warrior requirement to fire seal --------- Co-authored-by: el-u <109771707+el-u@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@yahoo.com> Co-authored-by: Sean Dempsey <dempsey.sean@outlook.com> Co-authored-by: qwint <qwint.42@gmail.com>
2024-03-11 22:23:41 +00:00
"Menu": {"Tower HQ": "Start Game"},
"Tower HQ": {
"Autumn Hills - Portal": "ToTHQ Autumn Hills Portal",
"Howling Grotto - Portal": "ToTHQ Howling Grotto Portal",
"Searing Crags - Portal": "ToTHQ Searing Crags Portal",
"Glacial Peak - Portal": "ToTHQ Glacial Peak Portal",
"Tower of Time - Left": "Artificer's Challenge",
"Riviere Turquoise - Portal": "ToTHQ Riviere Turquoise Portal",
"Sunken Shrine - Portal": "ToTHQ Sunken Shrine Portal",
"Corrupted Future": "Artificer's Portal",
"The Shop": "Home",
"Music Box": "Shrink Down",
},
"The Shop": {
"The Craftsman's Corner": "Money Sink",
},
The Messenger: implement new game (#1494) * initial commit of messenger integration * setup no_logic and needed slot_data * fix some typos and determinism * make all of it deterministic * add documentation * swapped to non local items so change the fed data * ~~deathlink~~ * satisfy the docs test * update doc test to show expected name * split custom classes into a separate file and fix an errant rule * make access dependency test give more useful errors * implement tests * remove some unneccessary back entrances and make names clearer * fix some big dumbs * successful unit tests are good also some slight reorganizing * add astral tea quest line, and potentially power seals as items * if TYPE_CHECKING... aahhhhhh * oop forgot to remove legacy code * having the seed and leaves as actual items doesn't seem to do anything so remove them. locations still work though * update setup guide with some changes * Tower HQ was creating duplicate locations * allow self locking items * cleanup * move self_locking_items function to core * docstring * implement choice of notes needed for music box * test the default value * don't create any starting inventory items * make item creation faster * change default accessibility and power seals options * improve documentation * precollected_items is a dict of Items... * implement shop chest goal * tests * always assign total and required seals * add new goals and set music box as requiring shop chest on shop chest goals instead of just setting it as the completion * fix dumb test quirk * implement music box skip as an option * world rewrite/cleanup * default to apworld and add game to readme * revert bleeding commits from other PRs * more bleeds * fix some errors in options docstrings * ??? * make my set rules method not have an awful name * test cleanup * add a test for item accessibility * fix issues with tests * make the self locking item behavior work correctly * misc cleanup * more general cleanup to be a good example * quick rules rewrite * more general cleanup and typing * more speed, more clean * bump data version * make sure the locked item belongs to current player * fix bad name and indent. call MessengerItem directly for events * add poptracker pack to docs * doc cleanup and "known issues" section that I probably won't be able to fix any time soon. * missed some spots * add another bug i forgot about * be consistently wrong
2023-03-12 14:05:50 +00:00
}
The Messenger: content update (#2823) * map option objects to a `World.options` dict * convert RoR2 to options dict system for testing * add temp behavior for lttp with notes * copy/paste bad * convert `set_default_common_options` to a namespace property * reorganize test call order * have fill_restrictive use the new options system * update world api * update soe tests * fix world api * core: auto initialize a dataclass on the World class with the option results * core: auto initialize a dataclass on the World class with the option results: small tying improvement * add `as_dict` method to the options dataclass * fix namespace issues with tests * have current option updates use `.value` instead of changing the option * update ror2 to use the new options system again * revert the junk pool dict since it's cased differently * fix begin_with_loop typo * write new and old options to spoiler * change factorio option behavior back * fix comparisons * move common and per_game_common options to new system * core: automatically create missing options_dataclass from legacy option_definitions * remove spoiler special casing and add back the Factorio option changing but in new system * give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly * reimplement `inspect.get_annotations` * move option info generation for webhost to new system * need to include Common and PerGame common since __annotations__ doesn't include super * use get_type_hints for the options dictionary * typing.get_type_hints returns the bases too. * forgot to sweep through generate * sweep through all the tests * swap to a metaclass property * move remaining usages from get_type_hints to metaclass property * move remaining usages from __annotations__ to metaclass property * move remaining usages from legacy dictionaries to metaclass property * remove legacy dictionaries * cache the metaclass property * clarify inheritance in world api * move the messenger to new options system * add an assert for my dumb * update the doc * rename o to options * missed a spot * update new messenger options * comment spacing Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * fix tests * fix missing import * make the documentation definition more accurate * use options system for loc creation * type cast MessengerWorld * fix typo and use quotes for cast * LTTP: set random seed in tests * ArchipIdle: remove change here as it's default on AutoWorld * Stardew: Need to set state because `set_default_common_options` used to * The Messenger: update shop rando and helpers to new system; optimize imports * Add a kwarg to `as_dict` to do the casing for you * RoR2: use new kwarg for less code * RoR2: revert some accidental reverts * The Messenger: remove an unnecessary variable * remove TypeVar that isn't used * CommonOptions not abstract * Docs: fix mistake in options api.md Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * create options for item link worlds * revert accidental doc removals * Item Links: set default options on group * Messenger: Limited Movement option first draft * The Messenger: add automated setup through the launcher * drop tomllib * don't uselessly import launcher * The Messenger: fix missing goal requirement for power seal hunt * make hard mode goal harder * make fire seal a bit more lenient * have limited movement force minimal accessibility * add an early meditation option * clean up precollected notes tests a bit * add linux support * add steam deck support * await monokickstart * minor styling cleanup * more minor styling cleanup * Initial implementation of Generic ER * Move ERType to Entrance.Type, fix typing imports * updates based on testing (read: flailing) * Updates from feedback * Various bug fixes in ERCollectionState * Use deque instead of queue.Queue * Allow partial entrances in collection state earlier, doc improvements * Prevent early loops in region graph, improve reusability of ER stage code * Typos, grammar, PEP8, and style "fixes" * use RuntimeError instead of bare Exceptions * return tuples from connect since it's slightly faster for our purposes * move the shuffle to the beginning of find_pairing * do er_state placements within pairing lookups to remove code duplication * requested adjustments * Add some temporary performance logging * Use CollectionState to track available exits and placed regions * remove seal shuffle option * some cleanup stuff * portal rando progress * pre-emptive region creation * seals need to be in the datapackage * put mega shards in old order * fix typos and make it actually work * fix more missed connections and add portal events * fix all the portal rando code * finish initial logic implementation * remove/comment out debug stuff * does not actually support plando yet * typos and fix a crash when 3 available portals was selected * finish initial logic for all connections and remove/rename as necessary * fix typos and add some more leniency * move item classification determination to its own method rather than split between two spots * super complicated solution for handling installing the alpha builds * fix logic bugs and add a test * implement logic to shuffle the cutscene portals even though it's probably not possible * just use the one list * fix some issues with the mod checking/downloading * Core: have webhost slot name links go through the launcher so that components can use them * add uri support to the launcher component function * generate output file under specific conditions * cleanup connections.py * set topology_present to true when portals are shuffled * add requirement for ghost pit loc since it's pretty hard without movement * bring hard logic back * misc cleanup * fix asset grabbing of latest version * implement ER * just use the entrances for the spoiler instead of manipulating the cache * remove test defaults * remove excessive comprehension * cleanup and cater data for the client * add elemental skylands to the shuffle pools * initial attempts at hint text * use network items for offline seeds * change around the offline seed data again * move er after portal shuffle and ensure a minimal sphere 1 * Add a method to automatically disconnect entrances in a coupled-compliant way Update docs and cleanup todos * Make find_placeable_exits deterministic by sorting blocked_connections set * add more ER transitions * fix spoiler output of portal warps * add path to hint_data * rename entrance to tot to be a bit clearer * cleanup imports and update description for hard logic * cleanup for PR to main * missed a spot * cleanup monokickstart * add location_name_groups * update docs for new setup * client can reconnect on its own now, no need for a button. * fix mod download link grabbing the wrong assets * cleanup mod pulling a bit and display version it's trying to update to * plando support * comment out broken steam deck support * supports plando * satisfy flake for currently unused file * fix the items accessibility test * review comments * add searing crags portal to starting portals when disabled like option says * address sliver comments * rip out currently unused transition shuffle * add aerobatics warrior requirement to fire seal --------- Co-authored-by: el-u <109771707+el-u@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@yahoo.com> Co-authored-by: Sean Dempsey <dempsey.sean@outlook.com> Co-authored-by: qwint <qwint.42@gmail.com>
2024-03-11 22:23:41 +00:00
"""Vanilla layout mapping with all Tower HQ portals open. format is source[exit_region][entrance_name]"""
# regions that don't have sub-regions
LEVELS: list[str] = [
The Messenger: content update (#2823) * map option objects to a `World.options` dict * convert RoR2 to options dict system for testing * add temp behavior for lttp with notes * copy/paste bad * convert `set_default_common_options` to a namespace property * reorganize test call order * have fill_restrictive use the new options system * update world api * update soe tests * fix world api * core: auto initialize a dataclass on the World class with the option results * core: auto initialize a dataclass on the World class with the option results: small tying improvement * add `as_dict` method to the options dataclass * fix namespace issues with tests * have current option updates use `.value` instead of changing the option * update ror2 to use the new options system again * revert the junk pool dict since it's cased differently * fix begin_with_loop typo * write new and old options to spoiler * change factorio option behavior back * fix comparisons * move common and per_game_common options to new system * core: automatically create missing options_dataclass from legacy option_definitions * remove spoiler special casing and add back the Factorio option changing but in new system * give ArchipIDLE the default options_dataclass so its options get generated and spoilered properly * reimplement `inspect.get_annotations` * move option info generation for webhost to new system * need to include Common and PerGame common since __annotations__ doesn't include super * use get_type_hints for the options dictionary * typing.get_type_hints returns the bases too. * forgot to sweep through generate * sweep through all the tests * swap to a metaclass property * move remaining usages from get_type_hints to metaclass property * move remaining usages from __annotations__ to metaclass property * move remaining usages from legacy dictionaries to metaclass property * remove legacy dictionaries * cache the metaclass property * clarify inheritance in world api * move the messenger to new options system * add an assert for my dumb * update the doc * rename o to options * missed a spot * update new messenger options * comment spacing Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * fix tests * fix missing import * make the documentation definition more accurate * use options system for loc creation * type cast MessengerWorld * fix typo and use quotes for cast * LTTP: set random seed in tests * ArchipIdle: remove change here as it's default on AutoWorld * Stardew: Need to set state because `set_default_common_options` used to * The Messenger: update shop rando and helpers to new system; optimize imports * Add a kwarg to `as_dict` to do the casing for you * RoR2: use new kwarg for less code * RoR2: revert some accidental reverts * The Messenger: remove an unnecessary variable * remove TypeVar that isn't used * CommonOptions not abstract * Docs: fix mistake in options api.md Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> * create options for item link worlds * revert accidental doc removals * Item Links: set default options on group * Messenger: Limited Movement option first draft * The Messenger: add automated setup through the launcher * drop tomllib * don't uselessly import launcher * The Messenger: fix missing goal requirement for power seal hunt * make hard mode goal harder * make fire seal a bit more lenient * have limited movement force minimal accessibility * add an early meditation option * clean up precollected notes tests a bit * add linux support * add steam deck support * await monokickstart * minor styling cleanup * more minor styling cleanup * Initial implementation of Generic ER * Move ERType to Entrance.Type, fix typing imports * updates based on testing (read: flailing) * Updates from feedback * Various bug fixes in ERCollectionState * Use deque instead of queue.Queue * Allow partial entrances in collection state earlier, doc improvements * Prevent early loops in region graph, improve reusability of ER stage code * Typos, grammar, PEP8, and style "fixes" * use RuntimeError instead of bare Exceptions * return tuples from connect since it's slightly faster for our purposes * move the shuffle to the beginning of find_pairing * do er_state placements within pairing lookups to remove code duplication * requested adjustments * Add some temporary performance logging * Use CollectionState to track available exits and placed regions * remove seal shuffle option * some cleanup stuff * portal rando progress * pre-emptive region creation * seals need to be in the datapackage * put mega shards in old order * fix typos and make it actually work * fix more missed connections and add portal events * fix all the portal rando code * finish initial logic implementation * remove/comment out debug stuff * does not actually support plando yet * typos and fix a crash when 3 available portals was selected * finish initial logic for all connections and remove/rename as necessary * fix typos and add some more leniency * move item classification determination to its own method rather than split between two spots * super complicated solution for handling installing the alpha builds * fix logic bugs and add a test * implement logic to shuffle the cutscene portals even though it's probably not possible * just use the one list * fix some issues with the mod checking/downloading * Core: have webhost slot name links go through the launcher so that components can use them * add uri support to the launcher component function * generate output file under specific conditions * cleanup connections.py * set topology_present to true when portals are shuffled * add requirement for ghost pit loc since it's pretty hard without movement * bring hard logic back * misc cleanup * fix asset grabbing of latest version * implement ER * just use the entrances for the spoiler instead of manipulating the cache * remove test defaults * remove excessive comprehension * cleanup and cater data for the client * add elemental skylands to the shuffle pools * initial attempts at hint text * use network items for offline seeds * change around the offline seed data again * move er after portal shuffle and ensure a minimal sphere 1 * Add a method to automatically disconnect entrances in a coupled-compliant way Update docs and cleanup todos * Make find_placeable_exits deterministic by sorting blocked_connections set * add more ER transitions * fix spoiler output of portal warps * add path to hint_data * rename entrance to tot to be a bit clearer * cleanup imports and update description for hard logic * cleanup for PR to main * missed a spot * cleanup monokickstart * add location_name_groups * update docs for new setup * client can reconnect on its own now, no need for a button. * fix mod download link grabbing the wrong assets * cleanup mod pulling a bit and display version it's trying to update to * plando support * comment out broken steam deck support * supports plando * satisfy flake for currently unused file * fix the items accessibility test * review comments * add searing crags portal to starting portals when disabled like option says * address sliver comments * rip out currently unused transition shuffle * add aerobatics warrior requirement to fire seal --------- Co-authored-by: el-u <109771707+el-u@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com> Co-authored-by: Doug Hoskisson <beauxq@yahoo.com> Co-authored-by: Sean Dempsey <dempsey.sean@outlook.com> Co-authored-by: qwint <qwint.42@gmail.com>
2024-03-11 22:23:41 +00:00
"Menu",
"Tower HQ",
"The Shop",
"The Craftsman's Corner",
"Corrupted Future",
"Music Box",
]