fix MultiTracker
This commit is contained in:
parent
00ccecac9c
commit
66c15c8639
19
Fill.py
19
Fill.py
|
@ -28,7 +28,7 @@ def fill_restrictive(world: MultiWorld, base_state: CollectionState, locations,
|
|||
placements = []
|
||||
|
||||
swapped_items = Counter()
|
||||
reachable_items: dict[str, deque] = {}
|
||||
reachable_items: typing.Dict[int, deque] = {}
|
||||
for item in itempool:
|
||||
reachable_items.setdefault(item.player, deque()).append(item)
|
||||
|
||||
|
@ -42,7 +42,7 @@ def fill_restrictive(world: MultiWorld, base_state: CollectionState, locations,
|
|||
has_beaten_game = world.has_beaten_game(maximum_exploration_state)
|
||||
|
||||
for item_to_place in items_to_place:
|
||||
spot_to_fill: Location = None
|
||||
spot_to_fill: typing.Optional[Location] = None
|
||||
if world.accessibility[item_to_place.player] == 'minimal':
|
||||
perform_access_check = not world.has_beaten_game(maximum_exploration_state,
|
||||
item_to_place.player) if single_player_placement else not has_beaten_game
|
||||
|
@ -59,7 +59,7 @@ def fill_restrictive(world: MultiWorld, base_state: CollectionState, locations,
|
|||
|
||||
else:
|
||||
# we filled all reachable spots.
|
||||
# try swaping this item with previously placed items
|
||||
# try swapping this item with previously placed items
|
||||
for(i, location) in enumerate(placements):
|
||||
placed_item = location.item
|
||||
# Unplaceable items can sometimes be swapped infinitely. Limit the
|
||||
|
@ -71,7 +71,7 @@ def fill_restrictive(world: MultiWorld, base_state: CollectionState, locations,
|
|||
swap_state = sweep_from_pool(base_state, itempool)
|
||||
if (not single_player_placement or location.player == item_to_place.player) \
|
||||
and location.can_fill(swap_state, item_to_place, perform_access_check):
|
||||
# Add this item to the exisiting placement, and
|
||||
# Add this item to the existing placement, and
|
||||
# add the old item to the back of the queue
|
||||
spot_to_fill = placements.pop(i)
|
||||
swapped_items[placed_item.player,
|
||||
|
@ -85,7 +85,7 @@ def fill_restrictive(world: MultiWorld, base_state: CollectionState, locations,
|
|||
location.item = placed_item
|
||||
placed_item.location = location
|
||||
|
||||
if spot_to_fill == None:
|
||||
if spot_to_fill is None:
|
||||
# Maybe the game can be beaten anyway?
|
||||
unplaced_items.append(item_to_place)
|
||||
if world.accessibility[item_to_place.player] != 'minimal' and world.can_beat_game():
|
||||
|
@ -103,11 +103,8 @@ def fill_restrictive(world: MultiWorld, base_state: CollectionState, locations,
|
|||
itempool.extend(unplaced_items)
|
||||
|
||||
|
||||
def distribute_items_restrictive(world: MultiWorld, fill_locations=None):
|
||||
# If not passed in, then get a shuffled list of locations to fill in
|
||||
if not fill_locations:
|
||||
fill_locations = world.get_unfilled_locations()
|
||||
|
||||
def distribute_items_restrictive(world: MultiWorld):
|
||||
fill_locations = world.get_unfilled_locations()
|
||||
world.random.shuffle(fill_locations)
|
||||
|
||||
# get items to distribute
|
||||
|
@ -133,7 +130,7 @@ def distribute_items_restrictive(world: MultiWorld, fill_locations=None):
|
|||
call_all(world, "fill_hook", progitempool, nonexcludeditempool,
|
||||
localrestitempool, nonlocalrestitempool, restitempool, fill_locations)
|
||||
|
||||
locations: dict[LocationProgressType, list[Location]] = {
|
||||
locations: typing.Dict[LocationProgressType, typing.List[Location]] = {
|
||||
type: [] for type in LocationProgressType}
|
||||
|
||||
for loc in fill_locations:
|
||||
|
|
|
@ -930,7 +930,7 @@ def getTracker(tracker: UUID):
|
|||
if not room:
|
||||
abort(404)
|
||||
locations, names, use_door_tracker, seed_checks_in_area, player_location_to_area, \
|
||||
precollected_items, games = get_static_room_data(room)
|
||||
precollected_items, games, slot_data = get_static_room_data(room)
|
||||
|
||||
inventory = {teamnumber: {playernumber: collections.Counter() for playernumber in range(1, len(team) + 1)}
|
||||
for teamnumber, team in enumerate(names)}
|
||||
|
|
Loading…
Reference in New Issue