Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Witness: Big™ new™ content update™ #2114

Merged
merged 252 commits into from
Nov 24, 2023
Merged
Changes from 5 commits
Commits
Show all changes
252 commits
Select commit Hold shift + click to select a range
d521ca8
Reworked doors settings files
NewSoupVi Jul 14, 2023
602e100
More doors rework stuff
NewSoupVi Jul 14, 2023
c2d1ac0
Postgame rework: Now excludes door items
NewSoupVi Jul 15, 2023
ad9120e
Postgame refactor complete
NewSoupVi Jul 15, 2023
3dfd47a
Made it actually only trigger when it's supposed to
NewSoupVi Jul 15, 2023
7ba3e0e
fixed some mountain postgame thing
NewSoupVi Jul 15, 2023
e42cba8
Vi pls
NewSoupVi Jul 15, 2023
c3297fe
another fix
NewSoupVi Jul 15, 2023
f9080ef
fixed unit tests related to unreachable regions
NewSoupVi Jul 15, 2023
1252370
Forgot a region
NewSoupVi Jul 15, 2023
22f9bfa
Make some of the disable_non_randomized stuff logical again
NewSoupVi Jul 16, 2023
6e9c4e3
Discards and Vaults are disabled if they are not shuffled
NewSoupVi Jul 16, 2023
5086046
That's how I was supposed to do that
NewSoupVi Jul 16, 2023
7791de6
Excluded EPs are now removed from the location list
NewSoupVi Jul 16, 2023
2eb8f3c
Fixed disable non randomized not genning
NewSoupVi Jul 16, 2023
46304bb
Fix non-existing doors showing up in slot_data
NewSoupVi Jul 16, 2023
2d14278
Fix disable non randomized activation triggers
NewSoupVi Jul 16, 2023
8ddd725
make town tall hexagonal not a logical option anymore
NewSoupVi Jul 16, 2023
897207b
better disable non randomized explanation
NewSoupVi Jul 16, 2023
8512ec7
Add new doors lists
NewSoupVi Jul 18, 2023
c980c52
Doors rework finished apart from looking back over simple doors
NewSoupVi Jul 18, 2023
07f27ec
Fixed duplicated item ID
NewSoupVi Jul 19, 2023
e62447f
Added some more doors to the disabled list in unrandomized
NewSoupVi Jul 21, 2023
2cb097b
Added some disabled doors
NewSoupVi Jul 21, 2023
d8e1c8d
bump data version
NewSoupVi Jul 24, 2023
e0df03a
That elevator is in the caves, you dummy
NewSoupVi Jul 24, 2023
4b206b5
Treehouse laser Discard was missed
NewSoupVi Jul 24, 2023
3293371
Precomplete Gate EP in non vault shuffle
NewSoupVi Jul 24, 2023
52f34ca
Gate close as well
NewSoupVi Jul 24, 2023
2aa72bf
Monastery shutters control disable
NewSoupVi Jul 24, 2023
419a485
Remove the boathouse doors from panels (lol)
NewSoupVi Jul 25, 2023
a878314
Fixed wrongly referenced panel
NewSoupVi Jul 25, 2023
591eeef
Brought back Discards from the graveyard
NewSoupVi Jul 25, 2023
42eb2af
Remove 'Control' from non-control panels
NewSoupVi Jul 25, 2023
553d939
add missing locations
NewSoupVi Jul 25, 2023
f2075d0
Who would win in a fight 10 years of programming experience or one co…
NewSoupVi Jul 25, 2023
9820c0b
You're not control panels what are you doing in there
NewSoupVi Jul 25, 2023
df2e6c1
Merge remote-tracking branch 'upstream/main' into doors_rework
NewSoupVi Jul 25, 2023
5345f89
Get outta here, Monastery Laser Panel
NewSoupVi Jul 26, 2023
16eb0e4
Get outta here, Shadows Doors
NewSoupVi Jul 26, 2023
a6a36bf
Fixed Platform Shortcut Right not requiring Left
NewSoupVi Jul 26, 2023
43d6a2e
Fixed Monastery Laser still wanting Monastery LAser Panel
NewSoupVi Jul 27, 2023
21ac190
More renaming
NewSoupVi Jul 27, 2023
e0aa9bc
Another rename
NewSoupVi Jul 27, 2023
2738e5c
Halfway through the simple rework
NewSoupVi Jul 31, 2023
c3bf9a3
Merge remote-tracking branch 'upstream/main' into doors_rework
NewSoupVi Jul 31, 2023
83a239e
Doors Simple Rework
NewSoupVi Jul 31, 2023
bc195b1
Added more locations to caves
NewSoupVi Jul 31, 2023
09431d3
Mark more doors as non-progression
NewSoupVi Jul 31, 2023
490efdd
Lasers skip prog bal
NewSoupVi Jul 31, 2023
3fd061d
Disabled EPs are disabled now, notion of 'precompleted' has been removed
NewSoupVi Jul 31, 2023
5a5eda9
Outdated refs to panels are now entities
NewSoupVi Jul 31, 2023
d21bc23
check_name -> entity_name
NewSoupVi Jul 31, 2023
987f659
Seperated Caves doors into doors and shortcuts, renamed Caves Exits t…
NewSoupVi Jul 31, 2023
cc0bf7b
If it ain't broke, don't fix it
NewSoupVi Aug 3, 2023
0e1facc
Don't just disable every EP what
NewSoupVi Aug 4, 2023
21cfaf6
Oh, that's why I did that.
NewSoupVi Aug 4, 2023
0816352
Forgor an obelisk
NewSoupVi Aug 4, 2023
5e34952
!= to ==
NewSoupVi Aug 4, 2023
c0d51ca
add to update
NewSoupVi Aug 4, 2023
f0bf6e6
Fixed one-way logic for elevators and added elevators_come_to_you option
NewSoupVi Aug 4, 2023
831eb36
Purple Sand Bottom needs to no longer be sphere 1 in elevators_come_t…
NewSoupVi Aug 4, 2023
da38d61
Bunker Elevator connects back to Bunker Elevator Section via the cont…
NewSoupVi Aug 4, 2023
506c84b
Doing the same thing in three files is hard ok
NewSoupVi Aug 4, 2023
2483fa4
Those panel items are not lasers you fool
NewSoupVi Aug 4, 2023
65f09f1
Early Caves: 'add to pool' option
NewSoupVi Aug 5, 2023
5b91263
Better comment
NewSoupVi Aug 5, 2023
1ac8ffc
Downgrade some more panels from progression to useful in certain modes
NewSoupVi Aug 5, 2023
a6cc1df
Town Red Roof backwards to Maze Roof in Bridges Come To You. Will onl…
NewSoupVi Aug 5, 2023
6dc0a62
Option tooltip clarity
NewSoupVi Aug 5, 2023
db0f9f2
Option tooltip for hints
NewSoupVi Aug 5, 2023
aef4d29
Removed an old unnecessary line
NewSoupVi Aug 5, 2023
48687c3
Fixed some wrong item classifications
NewSoupVi Aug 5, 2023
5943d28
Fix for error in get_early_items when removing plandoed items.
blastron Jul 27, 2023
5f2e200
Fix for plando crashes.
blastron Aug 7, 2023
a76148a
Merge branch 'ArchipelagoMW:main' into main
blastron Aug 7, 2023
70a56c2
Merge branch 'main' into doors_rework
blastron Aug 7, 2023
a364b51
Added some more panels to panels
NewSoupVi Aug 10, 2023
b47d0fc
Merge branch 'doors_rework' of https://github.com/NewSoupVi/Archipela…
NewSoupVi Aug 10, 2023
3a1e2fb
Add player name to the warnings about itempool size
NewSoupVi Aug 10, 2023
da3ef63
bump required client version
NewSoupVi Aug 20, 2023
e87a5b8
Add Monastery Shortcut Door to disabled entities in disable non rando…
NewSoupVi Aug 20, 2023
2d87552
Fix Windmill Entry being in two regional groups
NewSoupVi Aug 20, 2023
09ed845
Got the wrong door
NewSoupVi Aug 20, 2023
e515377
Removed redundant door in disable_non_randomized exclusion list
NewSoupVi Aug 20, 2023
424ef83
More hopefully sensible renaming
NewSoupVi Aug 20, 2023
fef2c22
Added Cargo Box entry to doors: panels
NewSoupVi Aug 20, 2023
3bae972
Forgot some 'laser shortcut's
NewSoupVi Aug 20, 2023
abb0ab9
Forgot some 'laser shortcut's
NewSoupVi Aug 20, 2023
2135c8b
add extra sphere 1 locations if settings are really restrictive
NewSoupVi Sep 6, 2023
f383738
Merge remote-tracking branch 'upstream/main' into doors_rework
NewSoupVi Sep 6, 2023
e87659d
Wrong desert panel
NewSoupVi Sep 6, 2023
d46a551
Swap order of added Tutorial checks
NewSoupVi Sep 6, 2023
5025445
Move event creation earlier
NewSoupVi Sep 7, 2023
760c793
Sweep for events first to determine early locations size, not sphere …
NewSoupVi Sep 7, 2023
98d6015
Place Puzzle Skip and good item earlier
NewSoupVi Sep 7, 2023
281a376
Wrong Door²
NewSoupVi Sep 9, 2023
93f07b8
Fixed postgame problem with Caves Entry
NewSoupVi Sep 9, 2023
43ba2fb
Don't even know how to explain this one
NewSoupVi Sep 10, 2023
79bcce7
Added Theater Video Input to disable_non_randomized list
NewSoupVi Sep 11, 2023
d9f1125
Update EP_All.txt
Exempt-Medic Sep 11, 2023
c3e5f0b
Update EP_Easy.txt
Exempt-Medic Sep 11, 2023
c6363b4
Update EP_NoEclipse.txt
Exempt-Medic Sep 11, 2023
b518c66
Update EP_Sides.txt
Exempt-Medic Sep 11, 2023
f9f63bc
Update Disable_Unrandomized.txt
Exempt-Medic Sep 11, 2023
762e4f5
Update Discards.txt
Exempt-Medic Sep 11, 2023
a60e7b1
Update Vaults.txt
Exempt-Medic Sep 11, 2023
c477ed6
Update Disable_Unrandomized.txt
Exempt-Medic Sep 11, 2023
bd33194
Update Discards.txt
Exempt-Medic Sep 11, 2023
c3caa59
Update Vaults.txt
Exempt-Medic Sep 11, 2023
acc3799
Update Beyond_Challenge.txt
Exempt-Medic Sep 11, 2023
6422ee8
Update Bottom_Floor_Discard.txt
Exempt-Medic Sep 11, 2023
a1496f9
Update Caves.txt
Exempt-Medic Sep 11, 2023
f79f856
Update Challenge_Vault_Box.txt
Exempt-Medic Sep 11, 2023
e3f6d04
Update Mountain_Lower.txt
Exempt-Medic Sep 11, 2023
a489fc6
Update Path_To_Challenge.txt
Exempt-Medic Sep 11, 2023
b77dffd
Update Mountain_Upper.txt
Exempt-Medic Sep 11, 2023
8101c0b
Update Beyond_Challenge.txt
Exempt-Medic Sep 11, 2023
5d35214
Update Bottom_Floor_Discard_NonDoors.txt
Exempt-Medic Sep 11, 2023
049b6fe
Quarry Stoneworks logic fix + Add Obelisk IDs to Logic files
NewSoupVi Sep 11, 2023
01f828d
Merge remote-tracking branch 'upstream/main' into doors_rework
NewSoupVi Sep 11, 2023
1dfbd91
Stoneworks events and renaming/refactoring of disabled_locations into…
NewSoupVi Sep 15, 2023
6aa1bbf
No more duplicate hints, new hintable items
NewSoupVi Sep 15, 2023
9db5fda
Removed a non existent item from hints. Made it so the same item can …
NewSoupVi Sep 16, 2023
df783d5
Added Mountain Bottom Floor Doors to always
NewSoupVi Sep 16, 2023
67d94a6
Merge remote-tracking branch 'upstream/main' into doors_rework
NewSoupVi Sep 16, 2023
a3002f3
Small logic fix for Town Church Entry Panel
NewSoupVi Sep 16, 2023
81fe709
Changed unnecessarily restrictive logic detail
NewSoupVi Sep 18, 2023
1673440
Fix unnecessarily restrictive Expert RGB House Green EP logic
NewSoupVi Sep 19, 2023
8113395
Made it so Vaults and Discards can be properly excluded as well
NewSoupVi Sep 23, 2023
b5c2f6e
Taking Control out of some more non control panel names
NewSoupVi Sep 23, 2023
ffcac79
Merge pull request #12 from Exempt-Medic/doors_rework
NewSoupVi Sep 24, 2023
84e35c1
Don't read entire line for irrelevant locations, just the entity hex …
NewSoupVi Sep 27, 2023
a9fff12
Add Mountain Bridge EPs to EP normal exclusion list
NewSoupVi Sep 30, 2023
2ca6726
Fix Pink Bridge EP incorrect region connection
NewSoupVi Sep 30, 2023
45d4a3e
Changed some slightly wacky but not broken Symmetry Island logic
NewSoupVi Sep 30, 2023
d3d02b7
Removed completely unnecessary connection in Jungle
NewSoupVi Sep 30, 2023
5213e37
Removed duplicate connection in Bunker
NewSoupVi Sep 30, 2023
a0e2f0e
Added explicit vault regions (future-proofing)
NewSoupVi Sep 30, 2023
af6c204
comma
NewSoupVi Sep 30, 2023
914234f
Fix faulty region connection in Expert
NewSoupVi Sep 30, 2023
05d4458
Fixed faulty vault door name & added vault doors to vault shuffle exc…
NewSoupVi Sep 30, 2023
28aac32
Moved Blue&Yellow Bridge EPs to the correct region
NewSoupVi Sep 30, 2023
828888e
Technically correct is the best kind of correct
NewSoupVi Sep 30, 2023
e45151e
Added Challenge Vault Door to another Exclusion List it was missing from
NewSoupVi Sep 30, 2023
5783996
Expert: Fix wrong door id for Shipwreck Vault Door
NewSoupVi Oct 5, 2023
6c56c54
Vanilla: Fix wrong door id for Shipwreck Vault Door
NewSoupVi Oct 5, 2023
1106dd7
Vanilla: Fix reference to wrong panel on Shipwreck Vault
NewSoupVi Oct 5, 2023
d711768
Expert: Fixed reference to wrong panel on Shipwreck Vault
NewSoupVi Oct 5, 2023
fd67aad
Add player name to warning
NewSoupVi Oct 5, 2023
ede6f6a
Fix Mountain Floor 1 region logic in preparation for warps
NewSoupVi Oct 5, 2023
efe2973
Added some missing boat connections
NewSoupVi Oct 5, 2023
abc6fe3
Merge branch 'doors_rework' of https://github.com/NewSoupVi/Archipela…
NewSoupVi Oct 5, 2023
71c67ff
added another missing connection in preparation for warps
NewSoupVi Oct 5, 2023
c2cef7a
Merge remote-tracking branch 'upstream/main' into doors_rework
NewSoupVi Oct 5, 2023
213870e
added a slightly advanced connection in Swamp in preparation for warps
NewSoupVi Oct 5, 2023
6259694
Fixed TrueOneWay not being one-way in a 'new connection' adjustment
NewSoupVi Oct 5, 2023
9fc697b
Disable Discards if they are off AND none of their activation trigger…
NewSoupVi Oct 7, 2023
41a4c54
Actually, let's do that in a different place
NewSoupVi Oct 7, 2023
fd8a4c3
No, this is most sensible I think
NewSoupVi Oct 7, 2023
87a06a8
Add missing panel to disable_non_randomized exclusion list
NewSoupVi Oct 12, 2023
1bc7af5
Fixed inconsistent naming on Bridge control panels
NewSoupVi Oct 12, 2023
1c3c5bb
Fixed inconsistent pluralisation on multi-panel control panels
NewSoupVi Oct 12, 2023
4ecfb06
Fixed inconsistent use of & vs /, and spacing around those characters…
NewSoupVi Oct 12, 2023
a2806ae
Town Windmill & Theater Doors renamed to Windmill & Theater Doors
NewSoupVi Oct 12, 2023
df7f61a
Require Bunker Glass Room Entry to view solutions through the tinted …
NewSoupVi Oct 17, 2023
ea03b60
Merge branch 'main' into doors_rework
NewSoupVi Oct 18, 2023
23566f4
Move to self.options. Fix many world/multiworld confusions.
NewSoupVi Oct 18, 2023
2632dfd
More type hints
NewSoupVi Oct 18, 2023
c12476f
More type hints
NewSoupVi Oct 18, 2023
528e7fb
More cleanup
NewSoupVi Oct 18, 2023
0332d19
More cleanup
NewSoupVi Oct 18, 2023
8e5ea95
Import cleanup
NewSoupVi Oct 18, 2023
961d9dd
Find&Replace is one hell of a drug
NewSoupVi Oct 19, 2023
9fab284
Keep track of local itempool as to not have to use 'find' methods in …
NewSoupVi Oct 19, 2023
b75cfa4
Keep local references of locked items
NewSoupVi Oct 19, 2023
b0e3457
This line doesn't need to wrap anymore now
NewSoupVi Oct 19, 2023
3760189
Don't hint event items
NewSoupVi Oct 19, 2023
64d131f
Seperate Desert Laser & Desert Elevator. Bump required client version.
NewSoupVi Oct 19, 2023
0d45b6e
Made it so some unnecessary events aren't created, decluttering the s…
NewSoupVi Oct 20, 2023
ca71c20
Remove the last remaining traces of multiworld.per_slot_randoms
NewSoupVi Oct 21, 2023
6b4d5c6
Merge remote-tracking branch 'upstream/main' into doors_rework
NewSoupVi Oct 22, 2023
c768ad1
door_hexes_in_the_pool should not include disabled doors
NewSoupVi Oct 23, 2023
8bc25e2
Nevermind, I'm gonna address this client side
NewSoupVi Oct 23, 2023
7af1ed9
Fix plando from_pool crashing because of hints
NewSoupVi Oct 24, 2023
3ed4363
Get rid of a lot of region fetching from multiworld
NewSoupVi Oct 24, 2023
03632e3
Cache locations for set_rules. Make 'Menu' region explicit in Witness…
NewSoupVi Oct 24, 2023
749a40c
Improve caching further, with defaultdict
NewSoupVi Oct 25, 2023
937c508
Why is that in there
NewSoupVi Oct 25, 2023
16736f1
remove unnecessary requirement
NewSoupVi Oct 27, 2023
a480c69
Fix merge conflict
NewSoupVi Oct 30, 2023
ad6cde2
Merge branch 'main' into doors_rework
NewSoupVi Nov 3, 2023
1c60164
Revamped requirements / region system
NewSoupVi Nov 4, 2023
a9a7d14
Begone, LogicMixin
NewSoupVi Nov 4, 2023
6b0ad37
Begone, linter exception
NewSoupVi Nov 4, 2023
bf408cb
Don't define that over and over
NewSoupVi Nov 4, 2023
24aa392
Make the linter happy
NewSoupVi Nov 4, 2023
a8908cf
fix entrance checking
NewSoupVi Nov 4, 2023
75d7dd3
Mountain Longbox fix
NewSoupVi Nov 4, 2023
1b7f1ac
Caching go brr
NewSoupVi Nov 4, 2023
e3de0c8
Type checking
NewSoupVi Nov 5, 2023
7de73d0
Sorry Phar
NewSoupVi Nov 5, 2023
f28f422
Begone, get_option_value
NewSoupVi Nov 5, 2023
17e1a30
Fix slot_data
NewSoupVi Nov 5, 2023
1db3988
Missed a spot
NewSoupVi Nov 5, 2023
a9fb20e
Accurately describe two-sided doors now that the system supports it
NewSoupVi Nov 5, 2023
2e59f1b
Maybe don't break things
NewSoupVi Nov 5, 2023
729b1fb
That was the wrong panel
NewSoupVi Nov 5, 2023
430a209
Correct Shadows Laser Room logic in anticipation of warps
NewSoupVi Nov 5, 2023
0456364
600 Recursive function calls vs 1 cache-y boi
NewSoupVi Nov 5, 2023
025a5db
Bruh
NewSoupVi Nov 5, 2023
9f72683
Whut
NewSoupVi Nov 5, 2023
3952cf3
What if we kissed on the Bunker Laser Platform jk unless
NewSoupVi Nov 5, 2023
91b6a5e
Bruh
NewSoupVi Nov 5, 2023
bb5f370
Fix progressive items thinking they only ever need one copy
NewSoupVi Nov 5, 2023
3f1a004
Oops I broke expert
NewSoupVi Nov 5, 2023
60e78fa
remove redundant requirements
NewSoupVi Nov 5, 2023
6c687d3
small cleanups
NewSoupVi Nov 5, 2023
6bf3901
This is cleaner
NewSoupVi Nov 5, 2023
4c46661
Even cleaner
NewSoupVi Nov 5, 2023
b11a9b7
This function was now unused
NewSoupVi Nov 5, 2023
0b0f47f
Change the rule creation system so it's lambdas all the way down
NewSoupVi Nov 5, 2023
6cf527f
Bit more reorganising
NewSoupVi Nov 5, 2023
4afe4a2
Lengthy debugging vs one >= boi
NewSoupVi Nov 5, 2023
ef36f09
bruh
NewSoupVi Nov 5, 2023
cb7a384
Bunch more renaming
NewSoupVi Nov 5, 2023
8bd2d17
this line is short enough now
NewSoupVi Nov 5, 2023
1a41b04
Getting rid of useless import
NewSoupVi Nov 5, 2023
bbe3a1b
Another docstring
NewSoupVi Nov 5, 2023
e7156af
,
NewSoupVi Nov 5, 2023
c033666
Move TrueOneWay check to connect_if_possible
NewSoupVi Nov 5, 2023
51bc9c3
comment
NewSoupVi Nov 5, 2023
0788f87
oops
NewSoupVi Nov 5, 2023
a6235b9
Remove unused function
NewSoupVi Nov 5, 2023
bd009e8
Remove another instance of explicitly checking for TrueOneWay in a ba…
NewSoupVi Nov 5, 2023
24e2925
This connection is unnecessary now
NewSoupVi Nov 6, 2023
901f7da
Merge branch 'main' into doors_rework
NewSoupVi Nov 6, 2023
aac7af9
Changed some mentions of StaticWitnessLogic to reference_logic
NewSoupVi Nov 7, 2023
745f5f9
Merge branch 'doors_rework' of https://github.com/NewSoupVi/Archipela…
NewSoupVi Nov 7, 2023
5ae19b5
Merge remote-tracking branch 'upstream/main' into doors_rework
NewSoupVi Nov 8, 2023
d3161f9
Merge branch 'main' into doors_rework
NewSoupVi Nov 11, 2023
03a51e4
These need to be in here as bools
NewSoupVi Nov 15, 2023
7e43378
Merge branch 'doors_rework' of https://github.com/NewSoupVi/Archipela…
NewSoupVi Nov 15, 2023
0e74e19
remove unnecessary import
NewSoupVi Nov 15, 2023
ad8c9ac
remove caches that are taken care of by core now
NewSoupVi Nov 16, 2023
b97f14f
Fix some remaining instances of using the caches
NewSoupVi Nov 16, 2023
c5dfab5
Remove colored squares from Bunker Entry Panel
NewSoupVi Nov 20, 2023
185e790
Take care of unreachable regions ourselves
NewSoupVi Nov 22, 2023
93e4bdd
remove dat comma
NewSoupVi Nov 22, 2023
65f0b5f
Ok let's not be dumb
NewSoupVi Nov 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions worlds/witness/__init__.py
Original file line number Diff line number Diff line change
@@ -233,6 +233,11 @@ def fill_slot_data(self) -> dict:
return slot_data

def create_item(self, item_name: str) -> Item:
# If the player's plando options are malformed, the item_name parameter could be a dictionary containing the
# name of the item, rather than the item itself. This is a workaround to prevent a crash.
if type(item_name) is dict:
item_name = list(item_name.keys())[0]

# this conditional is purely for unit tests, which need to be able to create an item before generate_early
item_data: ItemData
if hasattr(self, 'items') and self.items and item_name in self.items.item_data:
12 changes: 8 additions & 4 deletions worlds/witness/items.py
Original file line number Diff line number Diff line change
@@ -236,17 +236,21 @@ def get_early_items(self) -> List[str]:
# regardless of whether or not they actually wind up being manually placed.
for plando_setting in self._world.plando_items[self._player_id]:
if plando_setting.get("from_pool", True):
for item_setting_key in (key for key in ["item", "items"] if key in plando_setting):
for item_setting_key in [key for key in ["item", "items"] if key in plando_setting]:
if type(plando_setting[item_setting_key]) is str:
output.remove(plando_setting[item_setting_key])
output -= {plando_setting[item_setting_key]}
elif type(plando_setting[item_setting_key]) is dict:
output -= {item for item, weight in plando_setting[item_setting_key].items() if weight}
else:
# Assume this is some other kind of iterable.
output -= plando_setting[item_setting_key]
for inner_item in plando_setting[item_setting_key]:
if type(inner_item) is str:
output -= {inner_item}
elif type(inner_item) is dict:
output -= {item for item, weight in inner_item.items() if weight}

# Sort the output for consistency across versions if the implementation changes but the logic does not.
return sorted(output)
return sorted(list(output))

def get_door_ids_in_pool(self) -> List[int]:
"""