Bug fixes for pottery lottery changes
This commit is contained in:
@@ -140,7 +140,6 @@ class World(object):
|
||||
set_player_attr('pseudoboots', False)
|
||||
|
||||
set_player_attr('shopsanity', False)
|
||||
set_player_attr('keydropshuffle', 'none')
|
||||
set_player_attr('mixed_travel', 'prevent')
|
||||
set_player_attr('standardize_palettes', 'standardize')
|
||||
set_player_attr('force_fix', {'gt': False, 'sw': False, 'pod': False, 'tr': False})
|
||||
@@ -2866,7 +2865,7 @@ class Settings(object):
|
||||
|
||||
args.enemy_health[p] = r(e_health)[(settings[8] & 0xE0) >> 5]
|
||||
args.enemy_damage[p] = r(e_dmg)[(settings[8] & 0x18) >> 3]
|
||||
args.shufflepots[p] = True if settings[7] & 0x4 else False
|
||||
args.shufflepots[p] = True if settings[8] & 0x4 else False
|
||||
args.bombbag[p] = True if settings[8] & 0x2 else False
|
||||
args.shufflelinks[p] = True if settings[8] & 0x1 else False
|
||||
if len(settings) > 9:
|
||||
|
||||
2
CLI.py
2
CLI.py
@@ -106,7 +106,7 @@ def parse_cli(argv, no_defaults=False):
|
||||
'retro', 'accessibility', 'hints', 'beemizer', 'experimental', 'dungeon_counters',
|
||||
'shufflebosses', 'shuffleenemies', 'enemy_health', 'enemy_damage', 'shufflepots',
|
||||
'ow_palettes', 'uw_palettes', 'sprite', 'disablemusic', 'quickswap', 'fastmenu', 'heartcolor',
|
||||
'heartbeep', 'remote_items', 'shopsanity', 'dropshuffle', 'pottery',
|
||||
'heartbeep', 'remote_items', 'shopsanity', 'dropshuffle', 'pottery', 'keydropshuffle',
|
||||
'mixed_travel', 'standardize_palettes', 'code', 'reduce_flashing', 'shuffle_sfx']:
|
||||
value = getattr(defaults, name) if getattr(playerargs, name) is None else getattr(playerargs, name)
|
||||
if player == 1:
|
||||
|
||||
2
Main.py
2
Main.py
@@ -31,7 +31,7 @@ from Utils import output_path, parse_player_names
|
||||
from source.item.FillUtil import create_item_pool_config, massage_item_pool, district_item_pool_config
|
||||
|
||||
|
||||
__version__ = '1.0.1.0-v'
|
||||
__version__ = '1.0.1.1-v'
|
||||
|
||||
from source.classes.BabelFish import BabelFish
|
||||
|
||||
|
||||
@@ -146,5 +146,16 @@ Same as above but both small keys and bigs keys of the dungeon are not allowed o
|
||||
|
||||
## Notes and Bug Fixes
|
||||
|
||||
#### Volatile
|
||||
|
||||
* 1.0.1.1
|
||||
* Fixed logic for pots in the Ice Hammer Block room (Glove + Hammer required)
|
||||
* Fixed logic for 2 pots in the Ice Antechamber (Glove required)
|
||||
* Fixed retro not saving keys when grabbed from under pots in caves
|
||||
* Fixed GUI not applying Drop shuffle when "Pot and Drops" are marked
|
||||
* Fixed dungeon counts when one of Pottery or Drops are disabled
|
||||
|
||||
#### Unstable
|
||||
|
||||
* 1.0.0.1
|
||||
* Add Light Hype Fairy to bombbag mode as needing bombs
|
||||
8
Rom.py
8
Rom.py
@@ -35,7 +35,7 @@ from source.item.FillUtil import valid_pot_items
|
||||
|
||||
|
||||
JAP10HASH = '03a63945398191337e896e5771f77173'
|
||||
RANDOMIZERBASEHASH = 'dea3a3bc1435aa0895181c5d46dc6d43'
|
||||
RANDOMIZERBASEHASH = '83bdcdbe989281b7eb36a10150314997'
|
||||
|
||||
|
||||
class JsonRom(object):
|
||||
@@ -746,7 +746,7 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
||||
valid_loc_by_dungeon = valid_dungeon_locations(valid_locations)
|
||||
|
||||
# fix hc big key problems (map and compass too)
|
||||
if world.doorShuffle[player] == 'crossed' or world.dropshuffle[player]:
|
||||
if world.doorShuffle[player] == 'crossed' or world.dropshuffle[player] or world.pottery[player] != 'none':
|
||||
rom.write_byte(0x151f1, 2)
|
||||
rom.write_byte(0x15270, 2)
|
||||
sanctuary = world.get_region('Sanctuary', player)
|
||||
@@ -875,13 +875,15 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
|
||||
credits_total = len(valid_locations)
|
||||
|
||||
if world.dropshuffle[player] or world.pottery[player] != 'none':
|
||||
rom.write_byte(0x142A50, 1)
|
||||
rom.write_byte(0x142A50, 1) # StandingItemsOn
|
||||
multiClientFlags = ((0x1 if world.dropshuffle[player] else 0)
|
||||
| (0x2 if world.shopsanity[player] else 0)
|
||||
| (0x4 if world.retro[player] else 0)
|
||||
| (0x8 if world.pottery[player] in ['keys', 'lottery'] else 0)
|
||||
| (0x10 if is_mystery else 0))
|
||||
rom.write_byte(0x142A51, multiClientFlags)
|
||||
rom.write_byte(0x142A55, ((0x1 if world.pottery[player] != 'none' else 0) # StandingItemCounterMask
|
||||
| (0x2 if world.dropshuffle[player] else 0)))
|
||||
|
||||
write_int16(rom, 0x187010, credits_total) # dynamic credits
|
||||
if credits_total != 216:
|
||||
|
||||
10
Rules.py
10
Rules.py
@@ -735,9 +735,17 @@ def pot_rules(world, player):
|
||||
for l in world.get_region('Dark Lake Hylia Ledge Spike Cave', player).locations:
|
||||
if l.type == LocationType.Pot:
|
||||
add_rule(l, lambda state: state.world.can_take_damage or state.has('Hookshot', player))
|
||||
for l in world.get_region('Ice Hammer Block', player).locations:
|
||||
if l.type == LocationType.Pot:
|
||||
add_rule(l, lambda state: state.has('Hammer', player) and state.can_lift_rocks(player))
|
||||
for pot in ['Ice Antechamber Pot #3', 'Ice Antechamber Pot #4']:
|
||||
loc = world.get_location_unsafe(pot, player)
|
||||
if loc:
|
||||
set_rule(loc, lambda state: state.can_lift_rocks(player))
|
||||
loc = world.get_location_unsafe('Mire Spikes Pot #3', player)
|
||||
if loc:
|
||||
set_rule(loc, lambda state: (state.world.can_take_damage and state.has_hearts(player, 4)) or state.has('Cane of Byrna', player) or state.has('Cape', player))
|
||||
set_rule(loc, lambda state: (state.world.can_take_damage and state.has_hearts(player, 4))
|
||||
or state.has('Cane of Byrna', player) or state.has('Cape', player))
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -275,4 +275,9 @@ def create_guiargs(parent):
|
||||
|
||||
guiargs = update_deprecated_args(guiargs)
|
||||
|
||||
# Key drop shuffle stuff
|
||||
if guiargs.keydropshuffle:
|
||||
guiargs.dropshuffle = 1
|
||||
guiargs.pottery = 'keys' if guiargs.pottery == 'none' else guiargs.pottery
|
||||
|
||||
return guiargs
|
||||
|
||||
Reference in New Issue
Block a user