mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Witness: Fix for Witness plando crashes. (#2092)
This commit is contained in:
@@ -219,17 +219,21 @@ class WitnessPlayerItems:
|
||||
# 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]:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user