Fill: place items for players with no accessibility requirements first

This commit is contained in:
Bonta-kun 2019-12-18 20:47:35 +01:00
parent c2530dce7d
commit 9175c22895
1 changed files with 32 additions and 27 deletions

View File

@ -171,10 +171,15 @@ def fill_restrictive(world, base_state, locations, itempool, single_player_place
unplaced_items = [] unplaced_items = []
player_items = {} no_access_checks = {}
reachable_items = {}
for item in itempool: for item in itempool:
player_items.setdefault(item.player, []).append(item) if world.accessibility[item.player] == 'none':
no_access_checks.setdefault(item.player, []).append(item)
else:
reachable_items.setdefault(item.player, []).append(item)
for player_items in [no_access_checks, reachable_items]:
while any(player_items.values()) and locations: while any(player_items.values()) and locations:
items_to_place = [[itempool.remove(items[-1]), items.pop()][-1] for items in player_items.values() if items] items_to_place = [[itempool.remove(items[-1]), items.pop()][-1] for items in player_items.values() if items]