Fix Ice rod hunt beemizer level 4 still having 'Nothing' Items.
This commit is contained in:
parent
28e2c62884
commit
4684c2349c
14
ItemPool.py
14
ItemPool.py
|
@ -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:
|
||||
|
|
13
Items.py
13
Items.py
|
@ -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
|
||||
|
|
6
Shops.py
6
Shops.py
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue