diff --git a/Bosses.py b/Bosses.py index 7052bb5c..6373fb5c 100644 --- a/Bosses.py +++ b/Bosses.py @@ -2,6 +2,7 @@ import logging import RaceRandom as random from BaseClasses import Boss, FillError +from source.enemizer.Bossmizer import boss_adjust def BossFactory(boss, player): @@ -238,6 +239,7 @@ def place_bosses(world, player): raise FillError('Could not place boss for location %s' % loc_text) place_boss(boss, level, loc, loc_text, world, player) + boss_adjust(world, player) def place_boss(boss, level, loc, loc_text, world, player): diff --git a/Items.py b/Items.py index 8f239fc7..1bbda012 100644 --- a/Items.py +++ b/Items.py @@ -61,8 +61,8 @@ item_table = {'Bow': (True, False, None, 0x0B, 200, 'You have\nchosen the\narche 'Progressive Glove': (True, False, None, 0x61, 150, 'A way to lift\nheavier things', 'and the lift upgrade', 'body-building kid', 'some glove for sale', 'fungus for gloves', 'body-building boy lifts again', 'a glove'), 'Silver Arrows': (True, False, None, 0x58, 100, 'Do you fancy\nsilver tipped\narrows?', 'and the ganonsbane', 'ganon-killing kid', 'ganon doom for sale', 'fungus for pork', 'archer boy shines again', 'the silver arrows'), 'Green Pendant': (True, False, 'Crystal', [0x04, 0x38, 0x62, 0x00, 0x69, 0x37, 0x08], 999, None, None, None, None, None, None, None), - 'Blue Pendant': (True, False, 'Crystal', [0x02, 0x34, 0x60, 0x00, 0x69, 0x38, 0x09], 999, None, None, None, None, None, None, None), - 'Red Pendant': (True, False, 'Crystal', [0x01, 0x32, 0x60, 0x00, 0x69, 0x39, 0x0a], 999, None, None, None, None, None, None, None), + 'Red Pendant': (True, False, 'Crystal', [0x02, 0x34, 0x60, 0x00, 0x69, 0x38, 0x09], 999, None, None, None, None, None, None, None), + 'Blue Pendant': (True, False, 'Crystal', [0x01, 0x32, 0x60, 0x00, 0x69, 0x39, 0x0a], 999, None, None, None, None, None, None, None), 'Triforce': (True, False, None, 0x6A, 777, '\n YOU WIN!', 'and the triforce', 'victorious kid', 'victory for sale', 'fungus for the win', 'greedy boy wins game again', 'the Triforce'), 'Power Star': (True, False, None, 0x6B, 100, 'A small victory', 'and the power star', 'star-struck kid', 'star for sale', 'see stars with shroom', 'mario powers up again', 'a Power Star'), 'Triforce Piece': (True, False, None, 0x6C, 100, 'A small victory', 'and the thirdforce', 'triangular kid', 'triangle for sale', 'fungus for triangle', 'wise boy has triangle again', 'a Triforce piece'), diff --git a/Main.py b/Main.py index aa543136..3a3a7a42 100644 --- a/Main.py +++ b/Main.py @@ -37,7 +37,7 @@ from source.enemizer.DamageTables import DamageTable from source.enemizer.Enemizer import randomize_enemies from source.rom.DataTables import init_data_tables -version_number = '1.3.0.3' +version_number = '1.3.0.4' version_branch = '-v' __version__ = f'{version_number}{version_branch}' @@ -213,9 +213,9 @@ def main(args, seed=None, fish=None): create_dungeons(world, player) world.damage_table[player] = DamageTable() world.data_tables[player] = init_data_tables(world, player) + place_bosses(world, player) randomize_enemies(world, player) adjust_locations(world, player) - place_bosses(world, player) if world.customizer and world.customizer.get_start_inventory(): for p, inv_list in world.customizer.get_start_inventory().items(): diff --git a/PotShuffle.py b/PotShuffle.py index c1d6bc1c..4ad16554 100644 --- a/PotShuffle.py +++ b/PotShuffle.py @@ -1034,6 +1034,8 @@ key_drop_data = { 'Ganons Tower - Mini Helmasaur Key Drop': ['Drop', (0x09DDC4, 0x3D, 2), "dropped atop Ganon's Tower", 'Small Key (Ganons Tower)'] } +key_drop_special = {(data[1][1], data[1][2]): name for name, data in key_drop_data.items() if data[0] == 'Drop'} + class PotSecretTable(object): def __init__(self): diff --git a/RELEASENOTES.md b/RELEASENOTES.md index b7e0bf7a..b38e23e8 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -141,6 +141,11 @@ These are now independent of retro mode and have three options: None, Random, an # Bug Fixes and Notes +* 1.3.0.4v + * Enemizer: The bunny beam near Lanmo 2 and the 4 fairies near Ice Armos are not shuffled anymore. This is due to how bosses shuffle works and since it cannot be guaranteed to work within the current system, they are vanilla. (Vitreous still overwrites the fairies and Arrghus only lets two spawn, etc.) + * Dropshuffle: Pokey 1 has been fixed to drop his item + * Mystery/Customizer: true/false and on/off in yaml files should behave the same. + * More enemy bans as have been reported * 1.3.0.3v * Faeries now part of the enemy shuffle pool. Take note, this will increase enemy drop locations to include fairy pools both in dungeons and in caves. * Enemy drop indicator (blue square) now works in caves based on entrance used diff --git a/Rom.py b/Rom.py index 15196757..42d39e04 100644 --- a/Rom.py +++ b/Rom.py @@ -40,7 +40,7 @@ from source.enemizer.Enemizer import write_enemy_shuffle_settings JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = '8f9863c742096d16cae181fe314be3d7' +RANDOMIZERBASEHASH = '4935e770465a9fa00a1d642a657e43a8' class JsonRom(object): diff --git a/Rules.py b/Rules.py index 1f576316..d5371318 100644 --- a/Rules.py +++ b/Rules.py @@ -1211,7 +1211,7 @@ std_kill_rooms = { 'Eastern Single Eyegore': (['Eastern Single Eyegore NE'], ['Eastern Single Eyegore ES'], 0xd8, [8, 9, 10]), 'Eastern Duo Eyegores': - (['Eastern Duo Eyegores NE'], ['Eastern Duo Eyegores S'], 0xd8, [0, 1, 2, 3, 4, 5, 6, 7]), + (['Eastern Duo Eyegores NE'], ['Eastern Duo Eyegores SE'], 0xd8, [0, 1, 2, 3, 4, 5, 6, 7]), 'Desert Compass Room': # Three popos (beamos) (['Desert Compass NE'], ['Desert Compass Key Door WN'], 0x085, [2, 3, 4, 5]), 'Desert Four Statues': # Four popos (beamos) diff --git a/data/base2current.bps b/data/base2current.bps index 1befcc54..e6b5fa48 100644 Binary files a/data/base2current.bps and b/data/base2current.bps differ diff --git a/source/dungeon/EnemyList.py b/source/dungeon/EnemyList.py index 2a8a2377..7735c635 100644 --- a/source/dungeon/EnemyList.py +++ b/source/dungeon/EnemyList.py @@ -13,6 +13,7 @@ import RaceRandom as random from BaseClasses import Location, LocationType, RegionType from EntranceShuffle import door_addresses from Items import ItemFactory +from PotShuffle import key_drop_special from Utils import snes_to_pc, pc_to_snes, int16_as_bytes @@ -750,10 +751,10 @@ def init_vanilla_sprites(): create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x07, 0x08) create_sprite(0x001c, EnemySprite.ArmosKnight, 0x00, 0, 0x04, 0x08) create_sprite(0x001c, 0x19, SpriteType.Overlord, 0, 0x07, 0x08) - create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x07, 0x07, 'GT Fairy Abyss') - create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x08, 0x07, 'GT Fairy Abyss') - create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x07, 0x08, 'GT Fairy Abyss') - create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x08, 0x08, 'GT Fairy Abyss') + create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x07, 0x07, 'GT Fairy Abyss', fix=True) + create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x08, 0x07, 'GT Fairy Abyss', fix=True) + create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x07, 0x08, 'GT Fairy Abyss', fix=True) + create_sprite(0x001c, EnemySprite.Faerie, 0x00, 0, 0x08, 0x08, 'GT Fairy Abyss', fix=True) create_sprite(0x001e, EnemySprite.CrystalSwitch, 0x00, 0, 0x1a, 0x09) create_sprite(0x001e, EnemySprite.RedBari, 0x00, 0, 0x16, 0x05, 'Ice Bomb Drop - Top') create_sprite(0x001e, EnemySprite.RedBari, 0x00, 0, 0x19, 0x05, 'Ice Bomb Drop - Top') @@ -2199,7 +2200,10 @@ def setup_enemy_dungeon_tables(world, player): if super_tile in splittable_supertiles: idx_adj = 0 for index, sprite in enumerate(enemy_list): - loc_name = f'{sprite.region} Enemy #{index+1}' + if (super_tile, index) in key_drop_special: + loc_name = key_drop_special[(super_tile, index)] + else: + loc_name = f'{sprite.region} Enemy #{index+1}' loc = world.get_location_unsafe(loc_name, player) if sprite.sub_type == 0x07: # overlord idx_adj += 1 diff --git a/source/enemizer/Bossmizer.py b/source/enemizer/Bossmizer.py index 935b11e3..a028c871 100644 --- a/source/enemizer/Bossmizer.py +++ b/source/enemizer/Bossmizer.py @@ -110,7 +110,8 @@ def add_kholdstare_to_list(sprite_list, room_id): def add_vitreous_to_list(sprite_list, room_id): - sprite_list.insert(0, create_sprite(room_id, EnemySprite.Vitreous, 0x00, 0, 0x07, 0x05)) + sprite_list.clear() # vitreous does not play nice which other sprites on the tile, just kill them + sprite_list.append(create_sprite(room_id, EnemySprite.Vitreous, 0x00, 0, 0x07, 0x05)) def add_trinexx_to_list(sprite_list, room_id): @@ -119,14 +120,8 @@ def add_trinexx_to_list(sprite_list, room_id): sprite_list.insert(2, create_sprite(room_id, EnemySprite.TrinexxIceHead, 0x00, 0, 0x07, 0x05)) -def boss_writes(world, player, rom): - rom.write_byte(snes_to_pc(0x368107), 1) # centralize drops - eye_number = random.randint(0, 8) # randomize moldorm eyes (var + 1) - rom.write_byte(snes_to_pc(0x368102), eye_number) # enemizer flag - rom.write_byte(snes_to_pc(0x1DDBB3), eye_number) # loop variable +def boss_adjust(world, player): data_tables = world.data_tables[player] - arrghus_can_swim = True - water_tiles_on = True for dungeon in world.get_dungeons(player): for level, boss in dungeon.bosses.items(): if not boss or boss.name in ['Agahnim', 'Agahnim2']: @@ -143,6 +138,22 @@ def boss_writes(world, player, rom): if len(sprite_list) > 16: del sprite_list[16:] data_tables.room_headers[room_id].sprite_sheet = required_boss_sheets[sprite_type] + + +def boss_writes(world, player, rom): + rom.write_byte(snes_to_pc(0x368107), 1) # centralize drops + eye_number = random.randint(0, 8) # randomize moldorm eyes (var + 1) + rom.write_byte(snes_to_pc(0x368102), eye_number) # enemizer flag + rom.write_byte(snes_to_pc(0x1DDBB3), eye_number) # loop variable + data_tables = world.data_tables[player] + arrghus_can_swim = True + water_tiles_on = True + for dungeon in world.get_dungeons(player): + for level, boss in dungeon.bosses.items(): + if not boss or boss.name in ['Agahnim', 'Agahnim2']: + continue + room_data = get_dungeon_boss_room(dungeon.name, level) + room_id = room_data[0] # room changes if boss.name == 'Arrghus' and (dungeon.name != 'Swamp Palace' or level is not None): rom.write_byte(snes_to_pc(0x0DB6BE), 0) # arrghus can stand on ground diff --git a/source/enemizer/enemy_deny.yaml b/source/enemizer/enemy_deny.yaml index 05bb4e3d..0af02b7c 100644 --- a/source/enemizer/enemy_deny.yaml +++ b/source/enemizer/enemy_deny.yaml @@ -142,6 +142,7 @@ UwGeneralDeny: - [ 0x0065, 2, [ "Beamos", "AntiFairyCircle", "Bumper" ] ] #"Thieves' Town - Attic Window - Rat 3" - [ 0x0066, 0, [ "Beamos", "AntiFairyCircle", "BigSpike", "Bumper" ] ] #"Swamp Palace - Waterfall Room - Hover 1" - [ 0x0067, 1, [ "RollerVerticalUp", "RollerVerticalDown" ] ] #"Skull Woods - Firebar Pits - Blue Bari 1" + - [ 0x0067, 2, ["Bumper"]] #"Skull Woods - Firebar Pits - Blue Bari 2" - [ 0x0067, 3, [ "RollerVerticalUp", "RollerVerticalDown" ] ] #"Skull Woods - Firebar Pits - Hardhat Beetle 1" - [ 0x0067, 5, [ "RollerVerticalDown" ] ] #"Skull Woods - Firebar Pits - Hardhat Beetle 3" - [ 0x0067, 6, [ "RollerVerticalDown" ] ] #"Skull Woods - Firebar Pits - Hardhat Beetle 4" @@ -293,10 +294,13 @@ UwGeneralDeny: - [ 0x00ce, 4, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]] - [ 0x00ce, 5, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]] - [ 0x00ce, 6, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]] + - [ 0x00ce, 7, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]] - [ 0x00d0, 0, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]] + - [ 0x00d0, 1, [ "AntiFairyCircle", "BigSpike", "Bumper"]] - [ 0x00d0, 4, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]] - [ 0x00d0, 5, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]] - - [ 0x00ce, 7, [ "RollerVerticalDown", "RollerVerticalUp", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Beamos", "Bumper", "FirebarCW", "FirebarCCW"]] + - [ 0x00d0, 6, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]] + - [ 0x00d0, 7, [ "Statue", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper"]] - [ 0x00d0, 9, [ "AntiFairyCircle", "BigSpike", "Bumper"]] - [ 0x00d0, 6, [ "Statue", "RollerVerticalUp", "RollerVerticalDown", "RollerHorizontalLeft", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] # Agahnims Tower - Dark Maze - Blue Guard 2 - [ 0x00d2, 8, [ "RollerVerticalDown", "RollerHorizontalLeft", "Beamos", "AntiFairyCircle", "BigSpike", "SpikeBlock", "Bumper" ] ] #"Misery Mire - Mire 2 - Popo BL" @@ -347,14 +351,18 @@ UwGeneralDeny: - [ 0x0107, 2, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]] OwGeneralDeny: - [0x1e, 3, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]] # forbid a beamos here - - [0x40, 0, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]] - - [0x40, 7, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]] - - [0x40, 13, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]] - - [0x40, 14, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle"]] + - [0x40, 0, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle", "Thief"]] + - [0x40, 7, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle", "Thief"]] + - [0x40, 13, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle", "Thief"]] + - [0x40, 14, ["Beamos", "Bumper", "BigSpike", "AntiFairyCircle", "Thief"]] - [0x5e, 4, ["RollerVerticalUp", "Gibo"]] # forbid that one roller for kiki pod, and the kiki eating Gibo - [0x5e, 5, ["Gibo"]] # kiki eating Gibo UwEnemyDrop: - [0x0085, 9, ["Babasu"]] # ran off the edge and didn't return + - [0x00cb, 3, ["Zoro"]] # layer issues + - [0x00cb, 5, ["Zoro"]] # layer issues + - [0x00cb, 9, ["Zoro"]] # layer issues + - [0x00cb, 10, ["Zoro"]] # layer issues - [0x00cc, 5, ["Babasu"]] # little hard to see and kill appropriately # the following are behind rails or otherwise unactivate-able - [0x0077, 4, ["StalfosKnight", "Geldman", "Blob", "Stal", "Wizzrobe"]] # can't activate here diff --git a/source/enemizer/enemy_weight.yaml b/source/enemizer/enemy_weight.yaml index 7cef3326..97c011eb 100644 --- a/source/enemizer/enemy_weight.yaml +++ b/source/enemizer/enemy_weight.yaml @@ -53,7 +53,7 @@ UW: # Total 94431 Kyameron: 237 # 0.42147% raw:398 3.52212% Landmine: 19 # 5.40077% raw:5100 45.13274% Leever: 154 # 0.65127% raw:615 5.44248% - Lynel: 500 # 0.17897% raw:169 1.49558% + Lynel: 400 # 0.17897% raw:169 1.49558% MiniHelmasaur: 109 # 0.91495% raw:864 7.64602% MiniMoldorm: 109 # 0.91495% raw:864 7.64602% Moblin: 367 # 0.27216% raw:257 2.27434% diff --git a/source/item/FillUtil.py b/source/item/FillUtil.py index d5c63551..1a5c5692 100644 --- a/source/item/FillUtil.py +++ b/source/item/FillUtil.py @@ -357,7 +357,7 @@ def determine_major_items(world, player): major_item_set.add('Single Arrow') if world.keyshuffle[player] == 'universal': major_item_set.add('Small Key (Universal)') - if world.goal[player] in {'triforcehunt', 'ganonhunt'}: + if world.goal[player] in {'triforcehunt', 'ganonhunt', 'trinity'}: major_item_set.add('Triforce Piece') if world.bombbag[player]: major_item_set.add('Bomb Upgrade (+10)') diff --git a/source/tools/MysteryUtils.py b/source/tools/MysteryUtils.py index 7016d406..00df02ef 100644 --- a/source/tools/MysteryUtils.py +++ b/source/tools/MysteryUtils.py @@ -33,6 +33,22 @@ def roll_settings(weights): return default return choice + def get_choice_bool(option, root=weights): + choice = get_choice(option, root) + if choice is True or choice == 'on': + return True + if choice is False or choice == 'off': + return False + if choice is None: + return choice + raise Exception("This fields needs to be true/false or off/on") + + def get_choice_bool_default(option, root=weights, default=None): + choice = get_choice_bool(option, root) + if choice is None and default is not None: + return default + return choice + while True: subweights = weights.get('subweights', {}) if len(subweights) == 0: @@ -62,8 +78,8 @@ def roll_settings(weights): dungeon_items = get_choice('dungeon_items') dungeon_items = '' if dungeon_items == 'standard' or dungeon_items is None else dungeon_items dungeon_items = 'mcsb' if dungeon_items == 'full' else dungeon_items - ret.mapshuffle = get_choice('map_shuffle') == 'on' if 'map_shuffle' in weights else 'm' in dungeon_items - ret.compassshuffle = get_choice('compass_shuffle') == 'on' if 'compass_shuffle' in weights else 'c' in dungeon_items + ret.mapshuffle = get_choice_bool('map_shuffle') if 'map_shuffle' in weights else 'm' in dungeon_items + ret.compassshuffle = get_choice_bool('compass_shuffle') if 'compass_shuffle' in weights else 'c' in dungeon_items if 'smallkey_shuffle' in weights: ret.keyshuffle = get_choice('smallkey_shuffle') else: @@ -71,7 +87,7 @@ def roll_settings(weights): ret.keyshuffle = 'wild' if 'u' in dungeon_items: ret.keyshuffle = 'universal' - ret.bigkeyshuffle = get_choice('bigkey_shuffle') == 'on' if 'bigkey_shuffle' in weights else 'b' in dungeon_items + ret.bigkeyshuffle = get_choice_bool('bigkey_shuffle') if 'bigkey_shuffle' in weights else 'b' in dungeon_items ret.accessibility = get_choice('accessibility') ret.restrict_boss_items = get_choice('restrict_boss_items') @@ -86,26 +102,26 @@ def roll_settings(weights): ret.door_type_mode = get_choice('door_type_mode') ret.trap_door_mode = get_choice('trap_door_mode') ret.key_logic_algorithm = get_choice('key_logic_algorithm') - ret.decoupledoors = get_choice('decoupledoors') - ret.door_self_loops = get_choice('door_self_loops') - ret.experimental = get_choice('experimental') - ret.collection_rate = get_choice('collection_rate') + ret.decoupledoors = get_choice_bool('decoupledoors') + ret.door_self_loops = get_choice_bool('door_self_loops') + ret.experimental = get_choice_bool('experimental') + ret.collection_rate = get_choice_bool('collection_rate') ret.dungeon_counters = get_choice('dungeon_counters') if 'dungeon_counters' in weights else 'default' if ret.dungeon_counters == 'default': ret.dungeon_counters = 'pickup' if ret.door_shuffle != 'vanilla' or ret.compassshuffle == 'on' else 'off' - ret.shufflelinks = get_choice('shufflelinks') - ret.shuffletavern = get_choice('shuffletavern') - ret.pseudoboots = get_choice('pseudoboots') - ret.shopsanity = get_choice('shopsanity') - keydropshuffle = get_choice('keydropshuffle') + ret.shufflelinks = get_choice_bool('shufflelinks') + ret.shuffletavern = get_choice_bool('shuffletavern') + ret.pseudoboots = get_choice_bool('pseudoboots') + ret.shopsanity = get_choice_bool('shopsanity') + keydropshuffle = get_choice_bool('keydropshuffle') ret.dropshuffle = get_choice('dropshuffle') if 'dropshuffle' in weights else 'none' ret.dropshuffle = 'keys' if ret.dropshuffle == 'none' and keydropshuffle else ret.dropshuffle ret.pottery = get_choice('pottery') if 'pottery' in weights else 'none' ret.pottery = 'keys' if ret.pottery == 'none' and keydropshuffle else ret.pottery - ret.colorizepots = get_choice_default('colorizepots', default=True) - ret.shufflepots = get_choice('pot_shuffle') + ret.colorizepots = get_choice_bool_default('colorizepots', default=True) + ret.shufflepots = get_choice_bool('pot_shuffle') ret.mixed_travel = get_choice('mixed_travel') if 'mixed_travel' in weights else 'prevent' ret.standardize_palettes = (get_choice('standardize_palettes') if 'standardize_palettes' in weights else 'standardize') @@ -140,12 +156,12 @@ def roll_settings(weights): if ret.mode == 'retro': ret.mode = 'open' ret.retro = True - ret.retro = get_choice('retro') # this overrides world_state if used + ret.retro = get_choice_bool('retro') # this overrides world_state if used ret.take_any = get_choice_default('take_any', default='none') - ret.bombbag = get_choice('bombbag') + ret.bombbag = get_choice_bool('bombbag') - ret.hints = get_choice('hints') + ret.hints = get_choice_bool('hints') swords = get_choice('weapons') if swords is not None: @@ -198,15 +214,15 @@ def roll_settings(weights): if 'rom' in weights: romweights = weights['rom'] ret.sprite = get_choice('sprite', romweights) - ret.disablemusic = get_choice('disablemusic', romweights) - ret.quickswap = get_choice('quickswap', romweights) - ret.reduce_flashing = get_choice('reduce_flashing', romweights) + ret.disablemusic = get_choice_bool('disablemusic', romweights) + ret.quickswap = get_choice_bool('quickswap', romweights) + ret.reduce_flashing = get_choice_bool('reduce_flashing', romweights) ret.fastmenu = get_choice('menuspeed', romweights) ret.heartcolor = get_choice('heartcolor', romweights) ret.heartbeep = get_choice('heartbeep', romweights) ret.ow_palettes = get_choice('ow_palettes', romweights) ret.uw_palettes = get_choice('uw_palettes', romweights) - ret.shuffle_sfx = get_choice('shuffle_sfx', romweights) - ret.msu_resume = get_choice('msu_resume', romweights) + ret.shuffle_sfx = get_choice_bool('shuffle_sfx', romweights) + ret.msu_resume = get_choice_bool('msu_resume', romweights) return ret diff --git a/test/customizer/enemizer_test.yaml b/test/customizer/enemizer_test.yaml new file mode 100644 index 00000000..ce3f6753 --- /dev/null +++ b/test/customizer/enemizer_test.yaml @@ -0,0 +1,2058 @@ +#placements: +# 1: +# Dark Lake Hylia Shop - Left: Blue Potion +meta: + players: 1 +# seed: 140 + seed: 773569045 +settings: + 1: +# boss_shuffle: unique + enemy_shuffle: shuffled +# dropshuffle: underworld +# dungeon_counters: 'on' +# door_shuffle: crossed +# intensity: 3 +enemies: + 1: + Underworld: +# 0x2: +# 0: Wizzrobe +# 1: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe +# 4: Wizzrobe +# 14: Wizzrobe +# 15: Wizzrobe + 0x4: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 9: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 0x9: + 2: Wizzrobe + 0xa: + 0: Wizzrobe + 1: Wizzrobe + 0xb: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0xe: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x11: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x13: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0x15: + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0x16: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x17: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0x19: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x1a: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0x1b: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x1e: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x1f: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x21: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0x22: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x24: + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x26: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0x27: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x28: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x2a: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x2b: + 2: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x2e: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x31: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0x32: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x34: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x35: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0x36: + 1: Wizzrobe + 2: Wizzrobe + 5: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0x37: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 9: Wizzrobe + 0x38: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x39: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x3a: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x3b: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x3c: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x3d: + 2: Wizzrobe + 3: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 0x3e: + 1: Wizzrobe + 2: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0x3f: + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x40: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x41: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x42: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x43: + 0: Wizzrobe + 0x44: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 8: Wizzrobe + 0x45: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe +# 0x46: +# 0: Wizzrobe +# 2: Wizzrobe +# 4: Wizzrobe + 0x49: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 0x4a: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x4b: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x4c: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x4e: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x50: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x51: + 1: Wizzrobe + 2: Wizzrobe + 0x52: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x53: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 0x54: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x55: + 1: Wizzrobe + 2: Wizzrobe + 0x56: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 0x57: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 0x58: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0x59: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0x5b: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0x5d: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 0x5e: + 3: Wizzrobe + 4: Wizzrobe + 0x5f: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x60: + 0: Wizzrobe + 0x61: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x62: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x63: + 1: Wizzrobe +# 0x64: +# 0: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe +# 4: Wizzrobe +# 5: Wizzrobe +# 6: Wizzrobe + 0x65: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe +# 0x66: +# 0: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe +# 6: Wizzrobe +# 7: Wizzrobe +# 8: Wizzrobe +# 9: Wizzrobe +# 11: Wizzrobe + 0x67: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0x68: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x6a: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x6b: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 0x6d: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0x6e: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x71: + 0: Wizzrobe + 1: Wizzrobe + 0x72: + 0: Wizzrobe + 1: Wizzrobe + 0x73: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x74: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x75: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe +# 0x76: +# 1: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe +# 4: Wizzrobe +# 6: Wizzrobe + 0x77: + 0: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x7b: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0x7c: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x7d: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe +# 0x7e: +# 0: Wizzrobe +# 1: Wizzrobe +# 2: Wizzrobe +# 5: Wizzrobe +# 6: Wizzrobe + 0x7f: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x80: + 1: Wizzrobe + 2: Wizzrobe + 0x81: + 0: Wizzrobe + 1: Wizzrobe + 0x82: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x83: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0x84: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x85: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0x87: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 12: Wizzrobe + 0x8b: + 0: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x8c: + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 0x8d: + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 12: Wizzrobe + 0x8e: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x91: + 1: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x92: + 2: Wizzrobe + 4: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0x93: + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x95: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x96: + 0: Wizzrobe + 0x98: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x99: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0x9b: + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 0x9c: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x9d: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe +# 0x9e: +# 0: Wizzrobe +# 1: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe + 0x9f: + 4: Wizzrobe + 5: Wizzrobe + 0xa0: + 1: Wizzrobe + 2: Wizzrobe + 0xa1: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0xa5: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0xa6: + 1: Wizzrobe + 0xa8: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0xa9: + 0: Wizzrobe + 1: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0xaa: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0xab: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0xae: + 0: Wizzrobe + 1: Wizzrobe + 0xaf: + 0: Wizzrobe + 0xb0: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 0xb1: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0xb2: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 0xb3: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 4: Wizzrobe + 0xb5: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0xb6: + 0: Wizzrobe + 1: Wizzrobe + 5: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0xb7: + 0: Wizzrobe + 1: Wizzrobe + 0xb8: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0xba: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0xbb: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0xbc: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe +# 0xbe: +# 0: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe +# 4: Wizzrobe +# 5: Wizzrobe +# 6: Wizzrobe + 0xbf: + 1: Wizzrobe + 0xc0: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0xc1: + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 8: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0xc2: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0xc3: + 6: Wizzrobe + 0xc4: + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0xc5: + 6: Wizzrobe + 0xc6: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0xc9: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0xcb: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0xcc: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 0xce: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0xd0: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0xd1: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0xd2: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0xd5: + 4: Wizzrobe + 0xd8: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0xd9: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0xda: + 0: Wizzrobe + 1: Wizzrobe + 0xdb: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0xdc: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0xdf: + 0: Wizzrobe + 1: Wizzrobe + 0xe0: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe +# 0xe4: +# 0: Wizzrobe +# 1: Wizzrobe +# 2: Wizzrobe + 0xe5: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0xe6: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xe7: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0xe8: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0xee: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xef: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe +# 0xf0: +# 0: Wizzrobe +# 1: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe +# 4: Wizzrobe +# 5: Wizzrobe +# 6: Wizzrobe +# 7: Wizzrobe +# 9: Wizzrobe + 0xf1: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0xf9: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0xfb: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0xfd: + 0: Wizzrobe + 1: Wizzrobe + 4: Wizzrobe + 0xfe: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x107: + 1: Wizzrobe + 2: Wizzrobe + 0x108: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x10b: + 6: Wizzrobe + 0x10c: + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x10d: + 0: Wizzrobe + 1: Wizzrobe +# 0x123: +# 0: Wizzrobe +# 1: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe + Overworld: + 0x21b: + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x40: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 18: Wizzrobe + 19: Wizzrobe + 0x42: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 0x45: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x4a: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe +# 0x4f: +# 0: Wizzrobe +# 2: Wizzrobe +# 3: Wizzrobe + 0x50: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x51: + 0: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x52: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x53: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x54: + 0: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x55: + 1: Wizzrobe + 2: Wizzrobe + 4: Wizzrobe + 6: Wizzrobe + 0x56: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x57: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x58: + 0: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 0x5a: + 0: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x5b: + 0: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0x5d: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x5e: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 19: Wizzrobe + 20: Wizzrobe + 0x62: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x65: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x6b: + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x6c: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x6d: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x6e: + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x6f: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x70: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 0x72: + 1: Wizzrobe + 2: Wizzrobe + 4: Wizzrobe + 0x73: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x74: + 0: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 6: Wizzrobe + 0x75: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 18: Wizzrobe + 19: Wizzrobe + 20: Wizzrobe + 21: Wizzrobe + 0x77: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x7a: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x7b: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x7c: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x7f: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x81: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 18: Wizzrobe + 19: Wizzrobe + 20: Wizzrobe + 21: Wizzrobe + 22: Wizzrobe + 23: Wizzrobe + 24: Wizzrobe + 25: Wizzrobe + 26: Wizzrobe + 27: Wizzrobe + 28: Wizzrobe + 0x0: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe +# 0x2: +# 0: Wizzrobe +# 2: Wizzrobe + 0x3: + 2: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0x5: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 0x7: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xa: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 0xf: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x10: + 0: Wizzrobe + 3: Wizzrobe + 0x11: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 0x12: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 0x13: + 1: Wizzrobe + 0x14: + 0: Wizzrobe + 1: Wizzrobe + 0x15: + 1: Wizzrobe + 3: Wizzrobe +# 0x16: +# 0: Wizzrobe +# 2: Wizzrobe + 0x17: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x18: + 9: Wizzrobe + 10: Wizzrobe + 0x1a: + 0: Wizzrobe + 1: Wizzrobe + 4: Wizzrobe + 0x1b: + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 0x1d: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x1e: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 18: Wizzrobe + 0x22: + 1: Wizzrobe + 2: Wizzrobe + 0x25: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x2b: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x2c: + 0: Wizzrobe + 1: Wizzrobe + 0x2d: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x2e: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x2f: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0x30: + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 18: Wizzrobe + 19: Wizzrobe + 20: Wizzrobe + 21: Wizzrobe + 22: Wizzrobe + 0x32: + 1: Wizzrobe + 2: Wizzrobe + 0x33: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 0x34: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x35: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 18: Wizzrobe + 19: Wizzrobe + 20: Wizzrobe + 21: Wizzrobe + 22: Wizzrobe + 0x37: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x3a: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0x3b: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0x3c: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 0x3f: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 4: Wizzrobe + 0x90: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 13: Wizzrobe + 0x93: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 0x95: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 0x97: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0x9a: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0x9f: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 6: Wizzrobe + 0xa0: + 0: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xa1: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 0xa2: + 1: Wizzrobe + 3: Wizzrobe + 0xa3: + 2: Wizzrobe + 3: Wizzrobe + 0xa4: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0xa5: + 1: Wizzrobe + 3: Wizzrobe +# 0xa6: +# 0: Wizzrobe +# 2: Wizzrobe + 0xa7: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xa8: + 0: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 0xaa: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 0xab: + 0: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 0xad: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0xae: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 19: Wizzrobe + 0xb2: + 1: Wizzrobe + 2: Wizzrobe + 0xb5: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0xb8: + 0: Wizzrobe + 4: Wizzrobe + 0xb9: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0xbb: + 0: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xbc: + 0: Wizzrobe + 1: Wizzrobe + 0xbd: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 0xbe: + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0xbf: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 0xc0: + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 18: Wizzrobe + 19: Wizzrobe + 0xc2: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 5: Wizzrobe + 0xc3: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xc4: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xc5: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 8: Wizzrobe + 9: Wizzrobe + 10: Wizzrobe + 11: Wizzrobe + 12: Wizzrobe + 13: Wizzrobe + 14: Wizzrobe + 15: Wizzrobe + 16: Wizzrobe + 17: Wizzrobe + 19: Wizzrobe + 20: Wizzrobe + 21: Wizzrobe + 22: Wizzrobe + 0xc7: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xca: + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 6: Wizzrobe + 7: Wizzrobe + 0xcb: + 0: Wizzrobe + 1: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 5: Wizzrobe + 0xcc: + 0: Wizzrobe + 1: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe + 4: Wizzrobe + 0xcf: + 0: Wizzrobe + 2: Wizzrobe + 3: Wizzrobe +start_inventory: + 1: + - Lamp + - Progressive Sword + - Ocarina (Activated) + - Hookshot + 2: [] + diff --git a/test/customizer/test.yaml b/test/customizer/test.yaml new file mode 100644 index 00000000..7d6381a7 --- /dev/null +++ b/test/customizer/test.yaml @@ -0,0 +1,38 @@ +meta: + players: 1 + seed: 96 +settings: + 1: +# mode: standard + + boss_shuffle: random + dropshuffle: underworld + enemy_shuffle: shuffled + door_shuffle: crossed + intensity: 3 + + dungeon_counters: 'on' +doors: + 1: + lobbies: + Hyrule Castle South: GT Bob's Room SE +bosses: + 1: + Ganons Tower (bottom): Armos Knights + + +# keyshuffle: wild +#placements: +# 1: +# 'Hera Basement Cage Enemy #4': Small Key (Palace of Darkness) +# 'Hera Basement Cage Enemy #9': Small Key (Tower of Hera) +# 'Hera Basement Cage Enemy #11': Fire Rod +# Tower of Hera - Basement Cage: Small Key (Turtle Rock) +#start_inventory: +# 1: +# - Lamp +# - Progressive Sword +# - Ocarina (Activated) +# - Hookshot + +