Skip to content

Excluded Locations#21

Merged
Berserker66 merged 5 commits intoArchipelagoMW:mainfrom
espeon65536:main
Jul 15, 2021
Merged

Excluded Locations#21
Berserker66 merged 5 commits intoArchipelagoMW:mainfrom
espeon65536:main

Conversation

@espeon65536
Copy link
Collaborator

I've decided to make location exclusion always available, independent of plando. Though it is possible to break generation with it, such a problem will not happen if exclusion is not excessively used, which will make it fairly obvious why generation is breaking. If generation fails on dungeon items, it will report which dungeon it failed on, which makes it easy to diagnose. Generally speaking, problems only arise with exclusion if one tries very hard to cause them; combined with the significant benefits of having this option available at all times, I think it is reasonable to include without locking behind plando_items or something similar.

@Berserker66
Copy link
Member

Thank you!

@Berserker66 Berserker66 merged commit 3d67e1d into ArchipelagoMW:main Jul 15, 2021
Ziktofel referenced this pull request in Ziktofel/Archipelago Apr 15, 2023
MadiMadsen pushed a commit to MadiMadsen/MadiMadsen-Archipelago that referenced this pull request Jul 12, 2023
black-sliver added a commit that referenced this pull request Oct 10, 2023
)

🤞 

* 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 <[email protected]>

* 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 <[email protected]>

* create options for item link worlds

* revert accidental doc removals

* Item Links: set default options on group

* change Zillion to new options dataclass

* remove unused parameter to function

* use TypeGuard for Literal narrowing

* move dlc quest to new api

* move overcooked 2 to new api

* fixed some missed code in oc2

* - Tried to be compliant with 993 (WIP?)

* - I think it all works now

* - Removed last trace of me touching core

* typo

* It now passes all tests!

* Improve options, fix all issues I hope

* - Fixed init options

* dlcquest: fix bad imports

* missed a file

* - Reduce code duplication

* add as_dict documentation

* - Use .items(), get option name more directly, fix slot data content

* - Remove generic options from the slot data

* improve slot data documentation

* remove `CommonOptions.get_value` (#21)

* better slot data description

Co-authored-by: black-sliver <[email protected]>

---------

Co-authored-by: el-u <[email protected]>
Co-authored-by: Doug Hoskisson <[email protected]>
Co-authored-by: Doug Hoskisson <[email protected]>
Co-authored-by: black-sliver <[email protected]>
Co-authored-by: Alex Gilbert <[email protected]>
FlySniper pushed a commit to FlySniper/Archipelago that referenced this pull request Nov 14, 2023
…rchipelagoMW#993)

🤞 

* 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 <[email protected]>

* 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 <[email protected]>

* create options for item link worlds

* revert accidental doc removals

* Item Links: set default options on group

* change Zillion to new options dataclass

* remove unused parameter to function

* use TypeGuard for Literal narrowing

* move dlc quest to new api

* move overcooked 2 to new api

* fixed some missed code in oc2

* - Tried to be compliant with 993 (WIP?)

* - I think it all works now

* - Removed last trace of me touching core

* typo

* It now passes all tests!

* Improve options, fix all issues I hope

* - Fixed init options

* dlcquest: fix bad imports

* missed a file

* - Reduce code duplication

* add as_dict documentation

* - Use .items(), get option name more directly, fix slot data content

* - Remove generic options from the slot data

* improve slot data documentation

* remove `CommonOptions.get_value` (ArchipelagoMW#21)

* better slot data description

Co-authored-by: black-sliver <[email protected]>

---------

Co-authored-by: el-u <[email protected]>
Co-authored-by: Doug Hoskisson <[email protected]>
Co-authored-by: Doug Hoskisson <[email protected]>
Co-authored-by: black-sliver <[email protected]>
Co-authored-by: Alex Gilbert <[email protected]>
EmilyV99 pushed a commit to EmilyV99/Archipelago that referenced this pull request Feb 4, 2024
Remove Diamond Wand, Fix Andy's Cellar Logic
Jouramie pushed a commit to Jouramie/Archipelago that referenced this pull request Feb 28, 2024
…rchipelagoMW#993)

🤞 

* 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 <[email protected]>

* 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 <[email protected]>

* create options for item link worlds

* revert accidental doc removals

* Item Links: set default options on group

* change Zillion to new options dataclass

* remove unused parameter to function

* use TypeGuard for Literal narrowing

* move dlc quest to new api

* move overcooked 2 to new api

* fixed some missed code in oc2

* - Tried to be compliant with 993 (WIP?)

* - I think it all works now

* - Removed last trace of me touching core

* typo

* It now passes all tests!

* Improve options, fix all issues I hope

* - Fixed init options

* dlcquest: fix bad imports

* missed a file

* - Reduce code duplication

* add as_dict documentation

* - Use .items(), get option name more directly, fix slot data content

* - Remove generic options from the slot data

* improve slot data documentation

* remove `CommonOptions.get_value` (ArchipelagoMW#21)

* better slot data description

Co-authored-by: black-sliver <[email protected]>

---------

Co-authored-by: el-u <[email protected]>
Co-authored-by: Doug Hoskisson <[email protected]>
Co-authored-by: Doug Hoskisson <[email protected]>
Co-authored-by: black-sliver <[email protected]>
Co-authored-by: Alex Gilbert <[email protected]>
Alchav pushed a commit to Alchav/Archipelago that referenced this pull request Jun 10, 2024
qwint added a commit to qwint/Archipelago that referenced this pull request Sep 3, 2024
NewSoupVi pushed a commit that referenced this pull request Dec 5, 2024
* Fully updates requirements.py to live LADXR (#19)

* Updates dungeon2.py to LADXR-Live (#20)

No logic changes or bugfix are in this file. It is only code cleanup.

* Update dungeon1.py (#21)

- The Three of a Kind with Bomb is moved from Normal to Hard Logic

The rest is code cleanup.

lines 22-25 | 22-26 & 33 | 34 remain different in AP | Upstream with no effective difference

* Fully updates dungeon3.py to LADXR-live (#22)

Logic Changes:
- Hard mode now considers killing the enemies in the top room with pot

Everything else is cleanup.

* Fully update dungeon4.py to LADXR-live logic (#23)

Logic Changes:
- Hard Logic: Removes Feather requirement from grabbing the Pit Key
- Hell logic: new hookshot clip (line 64)
- Hell logic: hookshot spam over the first pit of crossroads, then buffer down (line 69)
- Hell logic: push block left of keyblock up, then shaq jump off the left wall and pause buffer to land on keyblock.
- Hell logic: split zol for more entities, and clip through the block left of keyblock by hookshot spam

The rest is code cleanup

* Updates dungeon5.py mostly to LADXR-Live Logic (#24)

Logic Changes:
- Hell logic: use zoomerang dashing left to get an unclipped boots superjump off the right wall over the block. reverse is push block (line 69)

The rest is cleanup.

The upstream splits the post_gohma region into pre_gohma, gohma and post_gohma. I did not implement this yet as I do not know the implications. To port this the following lines need to be changed (AP | LADXR):
18 | 18-20;
55 | 58;
65 | 68-69

* Fully update dungeon6.py logic (#25)

Logic Changes:
- Hard logic: allow damage boosting past the mini thwomps
- Glitched logic: bomb triggering elephants in two cases

Everything else is cleanup

* Fully update dungeon7.py to LADXR-live logic (#26)

Logic Changes:
- Hard logic: Three of a Kind is now possible with bombs only

Everything else is code cleanup

* Fully updates dungeon8.py to LADXR-live (#27)

Logic change:
- Hard logic: allows to drop the Gibdos into holes as a way to kill them
- Glitched logic: underground section with fire balls jumping up out of lava. Use boots superjump off left wall to jump over the pot blocking the way


The rest is code cleanup

* Fully update dungeonColor.py to LADXR-live (#28)

Logic changes:
- Normal logic: Karakoros now need power bracelet to put them into their holes
- Hard logic: Karakoros without power bracelet but with weapon
- Hell logic: Karakoros with only bombs

Everything else is code cleanup

* Updating overworld.py (#29)

* Updating overworld.py

This tries to update all logic of the Overworld.

Logic changes include:
- Normal logic: requires hookshot or shield to traverse Armos Cave
- Hard logic: Traverse Armos Cave with nothing (formerly normal logic)
- Hard logic: get the animal village bomb cave check with jump and boomerang
- Hard logic: use rooster to go to D7
- Lots of Jesus Rooster Jumps

I stopped counting and need to go over this again.

Also, please investigate line 474 AP because it's removed in LADXR-Upstream and I don't know why.

* remove featherless fisher under bridge from hard

it was moved to hell upstream and its already present in our code

---------

Co-authored-by: Alex Nordstrom <[email protected]>

* fixes

* add test messages

* Adds Pegasus Boots to the test (#31)

* Fix d6 boss_key logic (#30)

* restore hardmode logic

* higher logic fixes

* add bush requirement to the raft
in case the player needs to farm rupees to play again

---------

Co-authored-by: palex00 <[email protected]>
Ars-Ignis added a commit to Ars-Ignis/Archipelago that referenced this pull request Dec 27, 2024
commit 3bcc86f5391ea00d220bf6bf094a4a08801b162b
Author: Kory Dondzila <[email protected]>
Date:   Fri Dec 27 15:07:55 2024 -0500

    Shivers: Add events and fix require puzzle hints logic (#4018)

    * Adds some events, renames things, fails for many players.

    * Adds entrance rules for requires hints.

    * Cleanup and add goal item.

    * Cleanup.

    * Add additional rule.

    * Event and regions additions.

    * Updates from merge.

    * Adds collect behavior option.

    * Fix missing generator location.

    * Fix whitespace and optimize imports.

    * Switch location order back.

    * Add name replacement for storage.

    * Fix test failure.

    * Improve puzzle hints required.

    * Add missing locations and cleanup indirect conditions.

    * Fix naming.

    * PR feedback.

    * Missed comment.

    * Cleanup imports, use strings for option equivalence, and update option description.

    * Fix rule.

    * Create rolling buffer goal items and remove goal items and location from default options.

    * Cleanup.

    * Removes dateutil.

    * Fixes Subterranean World information plaque.

commit 218f28912e0e120e4cf91a63aba627e91cc451c5
Author: BadMagic100 <[email protected]>
Date:   Fri Dec 27 12:04:02 2024 -0800

    Core: Generic Entrance Rando (#2883)

    * 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

    * 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

    * Move EntranceType out of Entrance

    * Handle minimal accessibility, autodetect regions, and improvements to disconnect

    * Add on_connect callback to react to succeeded entrance placements

    * Relax island-prevention constraints after a successful run on minimal accessibility; better error message on failure

    * First set of unit tests for generic ER

    * Change on_connect to send lists, add unit tests for EntranceLookup

    * Fix dup