Merge branch 'OverworldShuffleDev' into OverworldShuffle

This commit is contained in:
codemann8
2025-02-18 22:02:23 -06:00
6 changed files with 16 additions and 8 deletions

View File

@@ -1,5 +1,12 @@
# Changelog
## 0.5.1.5
- Fixed rare overworld map check VRAM crash
- Fixed cavestate dark room hidden item issue
- Removed dungeon items from hint pool for nearby dungeon items
- Fixed generation error with shopsanity
- Fixed generation error in ER: empty cave lists being added as candidates
## 0.5.1.4
- Fixed incorrect ganon silvers hint
- \~Merged in DR v1.4.8.1~

View File

@@ -969,7 +969,7 @@ def balance_prices(world, player):
target -= flex
elif adjustment <= 0:
old_price = inventory['price']
new_price = max(0, inventory['price'] + adjustment)
new_price = max(0, int(inventory['price'] + adjustment))
inventory['price'] = new_price
target += (old_price - new_price)
else:
@@ -978,7 +978,7 @@ def balance_prices(world, player):
for loc in shop_locations:
slot = shop_to_location_table[loc.parent_region.name].index(loc.name)
inventory = loc.parent_region.shop.inventory[slot]
new_price = inventory['price'] + adjustment
new_price = int(inventory['price'] + adjustment)
new_price = min(500, max(0, new_price)) # cap prices between 0--twice base price
inventory['price'] = new_price
target -= adjustment

View File

@@ -8,7 +8,7 @@ from OWEdges import OWTileRegions, OWEdgeGroups, OWEdgeGroupsTerrain, OWExitType
from OverworldGlitchRules import create_owg_connections
from Utils import bidict
version_number = '0.5.1.4'
version_number = '0.5.1.5'
# branch indicator is intentionally different across branches
version_branch = ''

8
Rom.py
View File

@@ -43,7 +43,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings
JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = 'b439d99c7f41914eedb9f4097ecc8cc7'
RANDOMIZERBASEHASH = '80e0a4f8bd5cc6f83ac9f7f46c01bf4f'
class JsonRom(object):
@@ -2211,11 +2211,11 @@ def write_strings(rom, world, player, team):
this_hint = this_hint[0].upper() + this_hint[1:]
tt[hint_locations.pop(0)] = this_hint
items_to_hint.remove(flute_item)
if world.keyshuffle[player] not in ['none', 'universal']:
if world.keyshuffle[player] not in ['none', 'nearby', 'universal']:
items_to_hint.extend(SmallKeys)
if world.bigkeyshuffle[player] != 'none':
if world.bigkeyshuffle[player] not in ['none', 'nearby']:
items_to_hint.extend(BigKeys)
if world.prizeshuffle[player] not in ['none', 'dungeon']:
if world.prizeshuffle[player] not in ['none', 'dungeon', 'nearby']:
items_to_hint.extend(Prizes)
random.shuffle(items_to_hint)
hint_count = 5 if world.shuffle[player] not in ['vanilla', 'dungeonssimple', 'dungeonsfull', 'district', 'swapped'] else 8

Binary file not shown.

View File

@@ -906,6 +906,7 @@ def figure_out_connectors(exits, avail, cross_world=True):
cave_list = list(Connector_List)
if avail.assumed_loose_caves or (not avail.skull_handled and (cross_world or not avail.world.is_tile_swapped(0x00, avail.player))):
skull_connector = [x for x in ['Skull Woods Second Section Exit (West)', 'Skull Woods Second Section Exit (East)'] if x in exits]
if len(skull_connector):
cave_list.extend([skull_connector])
if avail.assumed_loose_caves or not avail.keep_drops_together:
cave_list.extend([[entrance_map[e]] for e in linked_drop_map.values() if 'Inverted ' not in e and 'Skull Woods ' not in e])