Merge branch 'Ambrosia' into Bias

This commit is contained in:
aerinon
2021-09-10 09:18:49 -06:00
15 changed files with 185 additions and 53 deletions

27
Fill.py
View File

@@ -161,7 +161,11 @@ def valid_key_placement(item, location, itempool, world):
return True
key_logic = world.key_logic[item.player][dungeon.name]
unplaced_keys = len([x for x in itempool if x.name == key_logic.small_key_name and x.player == item.player])
return key_logic.check_placement(unplaced_keys, location if item.bigkey else None)
prize_loc = None
if key_logic.prize_location:
prize_loc = world.get_location(key_logic.prize_location, location.player)
cr_count = world.crystals_needed_for_gt[location.player]
return key_logic.check_placement(unplaced_keys, location if item.bigkey else None, prize_loc, cr_count)
else:
return item.is_inside_dungeon_item(world)
@@ -602,7 +606,7 @@ def balance_money_progression(world):
base_value = sum(rupee_rooms.values())
available_money = {player: base_value for player in range(1, world.players+1)}
for loc in world.get_locations():
if loc.item.name in rupee_chart:
if loc.item and loc.item.name in rupee_chart:
available_money[loc.item.player] += rupee_chart[loc.item.name]
total_price = {player: 0 for player in range(1, world.players+1)}
@@ -667,7 +671,7 @@ def balance_money_progression(world):
slot = shop_to_location_table[location.parent_region.name].index(location.name)
shop = location.parent_region.shop
shop_item = shop.inventory[slot]
if interesting_item(location, location.item, world, location.item.player):
if location.item and interesting_item(location, location.item, world, location.item.player):
if location.item.name.startswith('Rupee') and loc_player == location.item.player:
if shop_item['price'] < rupee_chart[location.item.name]:
wallet[loc_player] -= shop_item['price'] # will get picked up in the location_free block
@@ -687,14 +691,15 @@ def balance_money_progression(world):
if location_free:
state.collect(location.item, True, location)
unchecked_locations.remove(location)
if location.item.name.startswith('Rupee'):
wallet[location.item.player] += rupee_chart[location.item.name]
if location.item.name != 'Rupees (300)':
if location.item:
if location.item.name.startswith('Rupee'):
wallet[location.item.player] += rupee_chart[location.item.name]
if location.item.name != 'Rupees (300)':
balance_locations[location.item.player].add(location)
if interesting_item(location, location.item, world, location.item.player):
checked_locations.append(location)
elif location.item.name in acceptable_balancers:
balance_locations[location.item.player].add(location)
if interesting_item(location, location.item, world, location.item.player):
checked_locations.append(location)
elif location.item.name in acceptable_balancers:
balance_locations[location.item.player].add(location)
for room, income in rupee_rooms.items():
for player in range(1, world.players+1):
if room not in rooms_visited[player] and world.get_region(room, player) in state.reachable_regions[player]:
@@ -759,5 +764,5 @@ def balance_money_progression(world):
else:
state.collect(location.item, True, location)
unchecked_locations.remove(location)
if location.item.name.startswith('Rupee'):
if location.item and location.item.name.startswith('Rupee'):
wallet[location.item.player] += rupee_chart[location.item.name]