Count take-any caves into final total.

This commit is contained in:
CaitSith2 2021-01-29 15:42:28 -08:00
parent 1d93952ef1
commit 90c3fe9df3
3 changed files with 18 additions and 15 deletions

15
Main.py
View File

@ -10,7 +10,7 @@ import zlib
import concurrent.futures import concurrent.futures
from BaseClasses import World, CollectionState, Item, Region, Location from BaseClasses import World, CollectionState, Item, Region, Location
from Shops import ShopSlotFill, create_shops, SHOP_ID_START, FillDisabledShopSlots from Shops import ShopSlotFill, create_shops, SHOP_ID_START, FillDisabledShopSlots, total_shop_slots
from Items import ItemFactory, item_table, item_name_groups from Items import ItemFactory, item_table, item_name_groups
from Regions import create_regions, mark_light_world_regions, lookup_vanilla_location_to_entrance from Regions import create_regions, mark_light_world_regions, lookup_vanilla_location_to_entrance
from InvertedRegions import create_inverted_regions, mark_dark_world_regions from InvertedRegions import create_inverted_regions, mark_dark_world_regions
@ -380,18 +380,21 @@ def main(args, seed=None):
checks_in_area[location.player]["Total"] += 1 checks_in_area[location.player]["Total"] += 1
oldmancaves = [] oldmancaves = []
for region in [world.get_region("Old Man Sword Cave", player) for player in range(1, world.players + 1) if world.retro[player]]: takeanyregions = ["Old Man Sword Cave", "Take-Any #1", "Take-Any #2", "Take-Any #3", "Take-Any #4"]
item = ItemFactory(region.shop.inventory[0]['item'], region.player) for index, take_any in enumerate(takeanyregions):
for region in [world.get_region(take_any, player) for player in range(1, world.players + 1) if world.retro[player]]:
item = ItemFactory(region.shop.inventory[(0 if take_any == "Old Man Sword Cave" else 1)]['item'], region.player)
player = region.player player = region.player
location_id = SHOP_ID_START + 33 location_id = SHOP_ID_START + total_shop_slots + index
if region.type == RegionType.LightWorld: main_entrance = get_entrance_to_region(region)
if main_entrance.parent_region.type == RegionType.LightWorld:
checks_in_area[player]["Light World"].append(location_id) checks_in_area[player]["Light World"].append(location_id)
else: else:
checks_in_area[player]["Dark World"].append(location_id) checks_in_area[player]["Dark World"].append(location_id)
checks_in_area[player]["Total"] += 1 checks_in_area[player]["Total"] += 1
er_hint_data[player][location_id] = get_entrance_to_region(region).name er_hint_data[player][location_id] = main_entrance.name
oldmancaves.append(((location_id, player), (item.code, player))) oldmancaves.append(((location_id, player), (item.code, player)))
precollected_items = [[] for player in range(world.players)] precollected_items = [[] for player in range(world.players)]

6
Rom.py
View File

@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '5d109c62f73966de1fe65751fc876778' RANDOMIZERBASEHASH = '7d9778b7c0a90d71fa5f32a3b56cdd87'
import io import io
import json import json
@ -18,7 +18,7 @@ import concurrent.futures
from typing import Optional from typing import Optional
from BaseClasses import CollectionState, Region, Location from BaseClasses import CollectionState, Region, Location
from Shops import ShopType from Shops import ShopType, total_shop_slots
from Dungeons import dungeon_music_addresses from Dungeons import dungeon_music_addresses
from Regions import location_table, old_location_address_to_new_location_address from Regions import location_table, old_location_address_to_new_location_address
from Text import MultiByteTextMapper, CompressedTextMapper, text_addresses, Credits, TextTable from Text import MultiByteTextMapper, CompressedTextMapper, text_addresses, Credits, TextTable
@ -1598,7 +1598,7 @@ def write_custom_shops(rom, world, player):
slot = 0 if shop.type == ShopType.TakeAny else index slot = 0 if shop.type == ShopType.TakeAny else index
if item is None: if item is None:
break break
if world.shop_shuffle_slots[player]: if world.shop_shuffle_slots[player] or shop.type == ShopType.TakeAny:
count_shop = (shop.region.name != 'Potion Shop' or 'w' in world.shop_shuffle[player]) and \ count_shop = (shop.region.name != 'Potion Shop' or 'w' in world.shop_shuffle[player]) and \
shop.region.name != 'Capacity Upgrade' shop.region.name != 'Capacity Upgrade'
rom.write_byte(0x186560 + shop.sram_offset + slot, 1 if count_shop else 0) rom.write_byte(0x186560 + shop.sram_offset + slot, 1 if count_shop else 0)

Binary file not shown.