ALTTP: Triforce Pieces and Condense Items fixes (#3166)
This commit is contained in:
parent
801d1223ac
commit
f19a84222e
|
@ -464,8 +464,6 @@ def generate_itempool(world):
|
||||||
while len(items) > pool_count:
|
while len(items) > pool_count:
|
||||||
items_were_cut = False
|
items_were_cut = False
|
||||||
for reduce_item in items_reduction_table:
|
for reduce_item in items_reduction_table:
|
||||||
if len(items) <= pool_count:
|
|
||||||
break
|
|
||||||
if len(reduce_item) == 2:
|
if len(reduce_item) == 2:
|
||||||
items_were_cut = items_were_cut or cut_item(items, *reduce_item)
|
items_were_cut = items_were_cut or cut_item(items, *reduce_item)
|
||||||
elif len(reduce_item) == 4:
|
elif len(reduce_item) == 4:
|
||||||
|
@ -477,7 +475,10 @@ def generate_itempool(world):
|
||||||
items.remove(bottle)
|
items.remove(bottle)
|
||||||
removed_filler.append(bottle)
|
removed_filler.append(bottle)
|
||||||
items_were_cut = True
|
items_were_cut = True
|
||||||
assert items_were_cut, f"Failed to limit item pool size for player {player}"
|
if items_were_cut:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
raise Exception(f"Failed to limit item pool size for player {player}")
|
||||||
if len(items) < pool_count:
|
if len(items) < pool_count:
|
||||||
items += removed_filler[len(items) - pool_count:]
|
items += removed_filler[len(items) - pool_count:]
|
||||||
|
|
||||||
|
@ -684,12 +685,12 @@ def get_pool_core(world, player: int):
|
||||||
if world.triforce_pieces_mode[player].value == TriforcePiecesMode.option_extra:
|
if world.triforce_pieces_mode[player].value == TriforcePiecesMode.option_extra:
|
||||||
triforce_pieces = world.triforce_pieces_available[player].value + world.triforce_pieces_extra[player].value
|
triforce_pieces = world.triforce_pieces_available[player].value + world.triforce_pieces_extra[player].value
|
||||||
elif world.triforce_pieces_mode[player].value == TriforcePiecesMode.option_percentage:
|
elif world.triforce_pieces_mode[player].value == TriforcePiecesMode.option_percentage:
|
||||||
percentage = float(max(100, world.triforce_pieces_percentage[player].value)) / 100
|
percentage = float(world.triforce_pieces_percentage[player].value) / 100
|
||||||
triforce_pieces = int(round(world.triforce_pieces_required[player].value * percentage, 0))
|
triforce_pieces = round(world.triforce_pieces_required[player].value * percentage, 0)
|
||||||
else: # available
|
else: # available
|
||||||
triforce_pieces = world.triforce_pieces_available[player].value
|
triforce_pieces = world.triforce_pieces_available[player].value
|
||||||
|
|
||||||
triforce_pieces = max(triforce_pieces, world.triforce_pieces_required[player].value)
|
triforce_pieces = min(90, max(triforce_pieces, world.triforce_pieces_required[player].value))
|
||||||
|
|
||||||
pieces_in_core = min(extraitems, triforce_pieces)
|
pieces_in_core = min(extraitems, triforce_pieces)
|
||||||
additional_pieces_to_place = triforce_pieces - pieces_in_core
|
additional_pieces_to_place = triforce_pieces - pieces_in_core
|
||||||
|
|
Loading…
Reference in New Issue