Fix Ice rod hunt beemizer level 4 still having 'Nothing' Items.

This commit is contained in:
CaitSith2 2021-02-07 06:34:42 -08:00
parent 28e2c62884
commit 4684c2349c
3 changed files with 19 additions and 14 deletions

View File

@ -7,7 +7,7 @@ from Bosses import place_bosses
from Dungeons import get_dungeon_item_pool
from EntranceShuffle import connect_entrance
from Fill import FillError, fill_restrictive
from Items import ItemFactory, trap_replaceable
from Items import ItemFactory, GetBeemizerItem
from Rules import forbid_items_for_player
# This file sets the item pools for various modes. Timed modes and triforce hunt are enforced first, and then extra items are specified per mode to fill in the remaining space.
@ -373,7 +373,7 @@ def generate_itempool(world, player: int):
if world.goal[player] == 'icerodhunt':
for item in dungeon_items:
world.itempool.append(ItemFactory('Nothing', player))
world.itempool.append(ItemFactory(GetBeemizerItem(world, player, 'Nothing'), player))
world.push_precollected(item)
else:
world.itempool.extend([item for item in dungeon_items])
@ -394,16 +394,8 @@ def generate_itempool(world, player: int):
for item in items:
if item.advancement or item.type:
progressionitems.append(item)
elif world.beemizer[player] and item.name in trap_replaceable:
if world.random.random() < world.beemizer[item.player] * 0.25:
if world.random.random() < (0.5 + world.beemizer[item.player] * 0.1):
nonprogressionitems.append(ItemFactory("Bee Trap", player))
else:
nonprogressionitems.append(ItemFactory("Bee", player))
else:
nonprogressionitems.append(item)
else:
nonprogressionitems.append(item)
nonprogressionitems.append(GetBeemizerItem(world, item.player, item))
world.random.shuffle(nonprogressionitems)
if additional_triforce_pieces:

View File

@ -1,6 +1,19 @@
import logging
def GetBeemizerItem(world, player, item):
item_name = item if isinstance(item, str) else item.name
if world.beemizer[player] and item_name in trap_replaceable:
if world.random.random() < world.beemizer[player] * 0.25:
if world.random.random() < (0.5 + world.beemizer[player] * 0.1):
return "Bee Trap" if isinstance(item, str) else ItemFactory("Bee Trap", player)
else:
return "Bee" if isinstance(item, str) else ItemFactory("Bee", player)
else:
return item
else:
return item
def ItemFactory(items, player):
from BaseClasses import Item

View File

@ -5,7 +5,7 @@ import logging
from BaseClasses import Location
from EntranceShuffle import door_addresses
from Items import item_name_groups, item_table, ItemFactory, trap_replaceable
from Items import item_name_groups, item_table, ItemFactory, trap_replaceable, GetBeemizerItem
from Utils import int16_as_bytes
logger = logging.getLogger("Shops")
@ -293,10 +293,10 @@ def create_shops(world, player: int):
else:
additional_item = 'Rupees (50)'
else:
additional_item = 'Nothing'
additional_item = GetBeemizerItem(world, player, 'Nothing')
loc.item = ItemFactory(additional_item, player)
else:
loc.item = ItemFactory('Nothing', player)
loc.item = ItemFactory(GetBeemizerItem(world, player, 'Nothing'), player)
loc.shop_slot_disabled = True
shop.region.locations.append(loc)
world.dynamic_locations.append(loc)