diff --git a/worlds/smw/Aesthetics.py b/worlds/smw/Aesthetics.py index fb53295d..73ca6165 100644 --- a/worlds/smw/Aesthetics.py +++ b/worlds/smw/Aesthetics.py @@ -149,9 +149,9 @@ def generate_shuffled_level_music(world, player): shuffled_level_music = level_music_value_data.copy() if world.music_shuffle[player] == "consistent": - world.random.shuffle(shuffled_level_music) + world.per_slot_randoms[player].shuffle(shuffled_level_music) elif world.music_shuffle[player] == "singularity": - single_song = world.random.choice(shuffled_level_music) + single_song = world.per_slot_randoms[player].choice(shuffled_level_music) shuffled_level_music = [single_song for i in range(len(shuffled_level_music))] return shuffled_level_music @@ -160,9 +160,9 @@ def generate_shuffled_ow_music(world, player): shuffled_ow_music = ow_music_value_data.copy() if world.music_shuffle[player] == "consistent" or world.music_shuffle[player] == "full": - world.random.shuffle(shuffled_ow_music) + world.per_slot_randoms[player].shuffle(shuffled_ow_music) elif world.music_shuffle[player] == "singularity": - single_song = world.random.choice(shuffled_ow_music) + single_song = world.per_slot_randoms[player].choice(shuffled_ow_music) shuffled_ow_music = [single_song for i in range(len(shuffled_ow_music))] return shuffled_ow_music @@ -170,7 +170,7 @@ def generate_shuffled_ow_music(world, player): def generate_shuffled_ow_palettes(rom, world, player): if world.overworld_palette_shuffle[player]: for address, valid_palettes in valid_ow_palettes.items(): - chosen_palette = world.random.choice(valid_palettes) + chosen_palette = world.per_slot_randoms[player].choice(valid_palettes) rom.write_byte(address, chosen_palette) def generate_shuffled_header_data(rom, world, player): @@ -196,11 +196,11 @@ def generate_shuffled_header_data(rom, world, player): if world.music_shuffle[player] == "full": level_header[2] &= 0x8F - level_header[2] |= (world.random.randint(0, 7) << 5) + level_header[2] |= (world.per_slot_randoms[player].randint(0, 7) << 5) if (world.foreground_palette_shuffle[player] and tileset in valid_foreground_palettes): level_header[3] &= 0xF8 - level_header[3] |= world.random.choice(valid_foreground_palettes[tileset]) + level_header[3] |= world.per_slot_randoms[player].choice(valid_foreground_palettes[tileset]) if world.background_palette_shuffle[player]: layer2_ptr_list = list(rom.read_bytes(0x2E600 + level_id * 3, 3)) @@ -208,10 +208,10 @@ def generate_shuffled_header_data(rom, world, player): if layer2_ptr in valid_background_palettes: level_header[0] &= 0x1F - level_header[0] |= (world.random.choice(valid_background_palettes[layer2_ptr]) << 5) + level_header[0] |= (world.per_slot_randoms[player].choice(valid_background_palettes[layer2_ptr]) << 5) if layer2_ptr in valid_background_colors: level_header[1] &= 0x1F - level_header[1] |= (world.random.choice(valid_background_colors[layer2_ptr]) << 5) + level_header[1] |= (world.per_slot_randoms[player].choice(valid_background_colors[layer2_ptr]) << 5) rom.write_bytes(layer1_ptr, bytes(level_header)) diff --git a/worlds/smw/Rom.py b/worlds/smw/Rom.py index 3a982fce..5a4e9b53 100644 --- a/worlds/smw/Rom.py +++ b/worlds/smw/Rom.py @@ -725,7 +725,7 @@ def handle_swap_donut_gh_exits(rom): def handle_bowser_rooms(rom, world, player: int): if world.bowser_castle_rooms[player] == "random_two_room": - chosen_rooms = world.random.sample(standard_bowser_rooms, 2) + chosen_rooms = world.per_slot_randoms[player].sample(standard_bowser_rooms, 2) rom.write_byte(0x3A680, chosen_rooms[0].roomID) rom.write_byte(0x3A684, chosen_rooms[0].roomID) @@ -738,7 +738,7 @@ def handle_bowser_rooms(rom, world, player: int): rom.write_byte(chosen_rooms[len(chosen_rooms)-1].exitAddress, 0xBD) elif world.bowser_castle_rooms[player] == "random_five_room": - chosen_rooms = world.random.sample(standard_bowser_rooms, 5) + chosen_rooms = world.per_slot_randoms[player].sample(standard_bowser_rooms, 5) rom.write_byte(0x3A680, chosen_rooms[0].roomID) rom.write_byte(0x3A684, chosen_rooms[0].roomID) @@ -752,7 +752,7 @@ def handle_bowser_rooms(rom, world, player: int): elif world.bowser_castle_rooms[player] == "gauntlet": chosen_rooms = standard_bowser_rooms.copy() - world.random.shuffle(chosen_rooms) + world.per_slot_randoms[player].shuffle(chosen_rooms) rom.write_byte(0x3A680, chosen_rooms[0].roomID) rom.write_byte(0x3A684, chosen_rooms[0].roomID) @@ -768,7 +768,7 @@ def handle_bowser_rooms(rom, world, player: int): entrance_point = bowser_rooms_copy.pop(0) - world.random.shuffle(bowser_rooms_copy) + world.per_slot_randoms[player].shuffle(bowser_rooms_copy) rom.write_byte(entrance_point.exitAddress, bowser_rooms_copy[0].roomID) for i in range(0, len(bowser_rooms_copy) - 1): @@ -782,8 +782,8 @@ def handle_boss_shuffle(rom, world, player): submap_boss_rooms_copy = submap_boss_rooms.copy() ow_boss_rooms_copy = ow_boss_rooms.copy() - world.random.shuffle(submap_boss_rooms_copy) - world.random.shuffle(ow_boss_rooms_copy) + world.per_slot_randoms[player].shuffle(submap_boss_rooms_copy) + world.per_slot_randoms[player].shuffle(ow_boss_rooms_copy) for i in range(len(submap_boss_rooms_copy)): rom.write_byte(submap_boss_rooms[i].exitAddress, submap_boss_rooms_copy[i].roomID) @@ -796,19 +796,19 @@ def handle_boss_shuffle(rom, world, player): elif world.boss_shuffle[player] == "full": for i in range(len(submap_boss_rooms)): - chosen_boss = world.random.choice(submap_boss_rooms) + chosen_boss = world.per_slot_randoms[player].choice(submap_boss_rooms) rom.write_byte(submap_boss_rooms[i].exitAddress, chosen_boss.roomID) for i in range(len(ow_boss_rooms)): - chosen_boss = world.random.choice(ow_boss_rooms) + chosen_boss = world.per_slot_randoms[player].choice(ow_boss_rooms) rom.write_byte(ow_boss_rooms[i].exitAddress, chosen_boss.roomID) if ow_boss_rooms[i].exitAddressAlt is not None: rom.write_byte(ow_boss_rooms[i].exitAddressAlt, chosen_boss.roomID) elif world.boss_shuffle[player] == "singularity": - chosen_submap_boss = world.random.choice(submap_boss_rooms) - chosen_ow_boss = world.random.choice(ow_boss_rooms) + chosen_submap_boss = world.per_slot_randoms[player].choice(submap_boss_rooms) + chosen_ow_boss = world.per_slot_randoms[player].choice(ow_boss_rooms) for i in range(len(submap_boss_rooms)): rom.write_byte(submap_boss_rooms[i].exitAddress, chosen_submap_boss.roomID) @@ -821,8 +821,6 @@ def handle_boss_shuffle(rom, world, player): def patch_rom(world, rom, player, active_level_dict): - local_random = world.per_slot_randoms[player] - goal_text = generate_goal_text(world, player) rom.write_bytes(0x2A6E2, goal_text)