Example #1
0
    def apply_necessary_tweaks(self):
        tweaks.apply_patch(self, "custom_funcs")
        tweaks.apply_patch(self, "necessary_fixes")
        tweaks.skip_wakeup_intro_and_start_at_dock(self)
        tweaks.start_ship_at_outset(self)
        tweaks.fix_deku_leaf_model(self)
        tweaks.allow_all_items_to_be_field_items(self)
        tweaks.remove_shop_item_forced_uniqueness_bit(self)
        tweaks.remove_forsaken_fortress_2_cutscenes(self)
        tweaks.make_items_progressive(self)
        tweaks.add_ganons_tower_warp_to_ff2(self)
        tweaks.add_chest_in_place_medli_grappling_hook_gift(self)
        tweaks.add_chest_in_place_queen_fairy_cutscene(self)
        #tweaks.add_cube_to_earth_temple_first_room(self)
        tweaks.add_more_magic_jars_to_dungeons(self)
        tweaks.remove_title_and_ending_videos(self)
        tweaks.modify_title_screen_logo(self)
        tweaks.update_game_name_icon_and_banners(self)
        tweaks.allow_dungeon_items_to_appear_anywhere(self)
        #tweaks.remove_ballad_of_gales_warp_in_cutscene(self)
        tweaks.fix_shop_item_y_offsets(self)
        tweaks.shorten_zephos_event(self)
        tweaks.update_korl_dialogue(self)
        tweaks.set_num_starting_triforce_shards(self)
        tweaks.add_pirate_ship_to_windfall(self)
        tweaks.remove_makar_kidnapping_event(self)
        tweaks.increase_player_movement_speeds(self)
        tweaks.add_chart_number_to_item_get_messages(self)

        tweaks.change_starting_clothes(self)
        customizer.replace_link_model(self)
        customizer.change_player_clothes_color(self)
Example #2
0
 def randomize(self):
   options_completed = 0
   yield("Modifying game code...", options_completed)
   
   if not self.dry_run:
     self.apply_necessary_tweaks()
     
     if self.options.get("swift_sail"):
       tweaks.make_sail_behave_like_swift_sail(self)
     if self.options.get("instant_text_boxes"):
       tweaks.make_all_text_instant(self)
     if self.options.get("reveal_full_sea_chart"):
       tweaks.apply_patch(self, "reveal_sea_chart")
     if self.options.get("add_shortcut_warps_between_dungeons"):
       tweaks.add_inter_dungeon_warp_pots(self)
   
   options_completed += 1
   yield("Randomizing...", options_completed)
   
   if self.options.get("randomize_charts"):
     charts.randomize_charts(self)
   
   if self.options.get("randomize_starting_island"):
     starting_island.randomize_starting_island(self)
   
   if self.options.get("randomize_dungeon_entrances"):
     dungeon_entrances.randomize_dungeon_entrances(self)
   
   items.randomize_items(self)
   
   options_completed += 2
   yield("Saving items...", options_completed)
   
   if not self.dry_run:
     items.write_changed_items(self)
   
   if not self.dry_run:
     self.apply_necessary_post_randomization_tweaks()
   
   options_completed += 7
   yield("Saving randomized ISO...", options_completed)
   
   if not self.dry_run:
     self.save_randomized_iso()
   
   options_completed += 9
   yield("Writing logs...", options_completed)
   
   if self.options.get("generate_spoiler_log"):
     self.write_spoiler_log()
   self.write_non_spoiler_log()
   
   yield("Done", -1)
Example #3
0
 def apply_necessary_tweaks(self):
     tweaks.apply_patch(self, "custom_funcs")
     tweaks.apply_patch(self, "necessary_fixes")
     #tweaks.skip_wakeup_intro_and_start_at_dock(self)
     #tweaks.add_inter_dungeon_warp_pots(self)
     # tweaks.make_all_text_instant(self)
     # tweaks.b_skips(self)
     # tweaks.modify_title_screen_logo(self)
     # tweaks.make_sail_behave_like_swift_sail(self)
     # tweaks.update_game_name_icon_and_banners(self)
     # tweaks.increase_player_movement_speeds(self)
     # tweaks.increase_grapple_animation_speed(self)
     # tweaks.increase_block_moving_animation(self)
     # tweaks.increase_misc_animations(self)
     tweaks.make_tingle_statue_reward_rupee_rainbow_colored(self)
     customizer.replace_link_model(self)
     # tweaks.change_starting_clothes(self)
     customizer.change_player_clothes_color(self)
Example #4
0
    def apply_necessary_tweaks(self):
        tweaks.apply_patch(self, "custom_funcs")
        tweaks.apply_patch(self, "necessary_fixes")
        tweaks.skip_wakeup_intro_and_start_at_dock(self)
        tweaks.start_ship_at_outset(self)
        tweaks.fix_deku_leaf_model(self)
        tweaks.allow_all_items_to_be_field_items(self)
        tweaks.remove_shop_item_forced_uniqueness_bit(self)
        tweaks.remove_forsaken_fortress_2_cutscenes(self)
        tweaks.make_items_progressive(self)
        tweaks.add_ganons_tower_warp_to_ff2(self)
        tweaks.add_chest_in_place_medli_grappling_hook_gift(self)
        tweaks.add_chest_in_place_queen_fairy_cutscene(self)
        #tweaks.add_cube_to_earth_temple_first_room(self)
        tweaks.add_more_magic_jars(self)
        tweaks.modify_title_screen_logo(self)
        tweaks.update_game_name_icon_and_banners(self)
        tweaks.allow_dungeon_items_to_appear_anywhere(self)
        #tweaks.remove_ballad_of_gales_warp_in_cutscene(self)
        tweaks.fix_shop_item_y_offsets(self)
        tweaks.shorten_zephos_event(self)
        tweaks.update_korl_dialogue(self)
        tweaks.set_num_starting_triforce_shards(self)
        tweaks.set_starting_health(self)
        tweaks.add_pirate_ship_to_windfall(self)
        tweaks.remove_makar_kidnapping_event(self)
        tweaks.increase_player_movement_speeds(self)
        tweaks.add_chart_number_to_item_get_messages(self)
        tweaks.increase_grapple_animation_speed(self)
        tweaks.increase_block_moving_animation(self)
        tweaks.increase_misc_animations(self)
        tweaks.shorten_auction_intro_event(self)
        tweaks.disable_invisible_walls(self)
        tweaks.add_hint_signs(self)
        tweaks.prevent_door_boulder_softlocks(self)
        tweaks.update_tingle_statue_item_get_funcs(self)
        tweaks.apply_patch(self, "tingle_chests_without_tuner")
        tweaks.make_tingle_statue_reward_rupee_rainbow_colored(self)
        tweaks.show_seed_hash_on_name_entry_screen(self)
        tweaks.fix_ghost_ship_chest_crash(self)
        tweaks.implement_key_bag(self)
        tweaks.add_chest_in_place_of_jabun_cutscene(self)
        tweaks.add_chest_in_place_of_master_sword(self)
        tweaks.update_beedle_spoil_selling_text(self)
        tweaks.fix_totg_warp_out_spawn_pos(self)
        tweaks.remove_phantom_ganon_requirement_from_eye_reefs(self)
        tweaks.fix_forsaken_fortress_door_softlock(self)
        tweaks.add_new_bog_warp(self)
        tweaks.make_rat_holes_visible_from_behind(self)
        tweaks.add_failsafe_id_0_spawns(self)

        customizer.replace_link_model(self)
        tweaks.change_starting_clothes(self)
        tweaks.check_hide_ship_sail(self)
        customizer.change_player_clothes_color(self)
Example #5
0
    def randomize(self):
        options_completed = 0
        yield ("Modifying game code...", options_completed)

        if not self.dry_run:
            self.apply_necessary_tweaks()

            if self.options.get("swift_sail"):
                tweaks.make_sail_behave_like_swift_sail(self)
            if self.options.get("instant_text_boxes"):
                tweaks.make_all_text_instant(self)
            if self.options.get("reveal_full_sea_chart"):
                tweaks.apply_patch(self, "reveal_sea_chart")
            if self.options.get("add_shortcut_warps_between_dungeons"):
                tweaks.add_inter_dungeon_warp_pots(self)
            if self.options.get("invert_camera_x_axis"):
                tweaks.apply_patch(self, "invert_camera_x_axis")
            tweaks.update_skip_rematch_bosses_game_variable(self)
            tweaks.update_sword_mode_game_variable(self)
            if self.options.get("sword_mode") == "Swordless":
                tweaks.apply_patch(self, "swordless")
                tweaks.update_text_for_swordless(self)
            if self.options.get("randomize_entrances") not in [
                    "Disabled", None, "Dungeons"
            ]:
                tweaks.disable_ice_ring_isle_and_fire_mountain_effects_indoors(
                    self)
            tweaks.update_starting_gear(self)
            if self.options.get("disable_tingle_chests_with_tingle_bombs"):
                tweaks.apply_patch(self,
                                   "disable_tingle_bombs_on_tingle_chests")

            if self.test_room_args is not None:
                tweaks.test_room(self)

        options_completed += 1
        yield ("Randomizing...", options_completed)

        if self.options.get("randomize_charts"):
            charts.randomize_charts(self)

        if self.options.get("randomize_starting_island"):
            starting_island.randomize_starting_island(self)

        if self.options.get("randomize_entrances") not in ["Disabled", None]:
            entrances.randomize_entrances(self)

        if self.options.get("randomize_bgm"):
            bgm.randomize_bgm(self)

        items.randomize_items(self)

        options_completed += 2
        yield ("Saving items...", options_completed)

        if not self.dry_run:
            items.write_changed_items(self)

        if not self.dry_run:
            self.apply_necessary_post_randomization_tweaks()

        options_completed += 7
        yield ("Saving randomized ISO...", options_completed)

        if not self.dry_run:
            self.save_randomized_iso()

        options_completed += 9
        yield ("Writing logs...", options_completed)

        if self.options.get("generate_spoiler_log"):
            self.write_spoiler_log()
        self.write_non_spoiler_log()

        yield ("Done", -1)
Example #6
0
    def randomize(self):
        options_completed = 0
        yield ("Modifying game code...", options_completed)

        if not self.dry_run:
            self.apply_necessary_tweaks()

            if self.options.get("instant_text_boxes"):
                tweaks.make_all_text_instant(self)
            if self.options.get("reveal_full_sea_chart"):
                tweaks.apply_patch(self, "reveal_sea_chart")
            if self.options.get("invert_camera_x_axis"):
                tweaks.apply_patch(self, "invert_camera_x_axis")
            if self.options.get("swift_sail"):
                tweaks.make_sail_behave_like_swift_sail(self)
            if self.options.get("increase_player_movement_speeds"):
                tweaks.increase_player_movement_speeds(self)
            if self.options.get("increase_grapple_animation_speed"):
                tweaks.increase_grapple_animation_speed(self)
            if self.options.get("increase_block_moving_animation"):
                tweaks.increase_block_moving_animation(self)
            if self.options.get("increase_misc_animations"):
                tweaks.increase_misc_animations(self)
            if self.options.get("tingle_chests_without_tuner"):
                tweaks.apply_patch(self, "tingle_chests_without_tuner")
            if self.options.get("KORL_control"):
                tweaks.apply_patch(self, "KORL_control")
            if self.options.get("song_no_replay"):
                tweaks.apply_patch(self, "song_no_replay")
            if self.options.get("swing_turn"):
                tweaks.apply_patch(self, "swing_turn")
            if self.options.get("remove_title_and_ending_videos"):
                tweaks.remove_title_and_ending_videos(self)
                tweaks.apply_patch(self, "skipintro")
            if self.options.get("ballad"):
                tweaks.apply_patch(self, "ballad")
            if self.options.get("titlelogo"):
                tweaks.modify_title_screen_logo(self)
            if self.options.get("memorylogo"):
                tweaks.update_game_name_icon_and_banners(self)
            if self.options.get("brisk_sail"):
                tweaks.make_sail_behave_like_brisk_sail(self)
            if self.options.get("brisk_sail2"):
                tweaks.make_sail_behave_like_brisk_sail2(self)
            if self.options.get("swift_sail2"):
                tweaks.make_sail_behave_like_swift_sail2(self)

        options_completed += 1
        yield ("Patching...", options_completed)

        options_completed += 2
        options_completed += 7
        yield ("Saving patched ISO...", options_completed)

        if not self.dry_run:
            self.save_randomized_iso()

        options_completed += 9

        yield ("Done", -1)
Example #7
0
    def randomize(self):
        options_completed = 0
        yield ("Modifying game code...", options_completed)

        customizer.decide_on_link_model(self)

        if not self.dry_run:
            self.apply_necessary_tweaks()

            if self.options.get("swift_sail"):
                tweaks.make_sail_behave_like_swift_sail(self)
            if self.options.get("instant_text_boxes"):
                tweaks.make_all_text_instant(self)
            if self.options.get("reveal_full_sea_chart"):
                tweaks.apply_patch(self, "reveal_sea_chart")
            if self.options.get("add_shortcut_warps_between_dungeons"):
                tweaks.add_inter_dungeon_warp_pots(self)
            if self.options.get("invert_camera_x_axis"):
                tweaks.apply_patch(self, "invert_camera_x_axis")
            tweaks.update_skip_rematch_bosses_game_variable(self)
            tweaks.update_sword_mode_game_variable(self)
            if self.options.get("sword_mode") == "Swordless":
                tweaks.apply_patch(self, "swordless")
                tweaks.update_text_for_swordless(self)
            if self.options.get("randomize_entrances") not in [
                    "Disabled", None, "Dungeons"
            ]:
                tweaks.disable_ice_ring_isle_and_fire_mountain_effects_indoors(
                    self)
            tweaks.update_starting_gear(self)
            if self.options.get("disable_tingle_chests_with_tingle_bombs"):
                tweaks.apply_patch(self,
                                   "disable_tingle_bombs_on_tingle_chests")
            if self.options.get("remove_title_and_ending_videos"):
                tweaks.remove_title_and_ending_videos(self)
            if self.options.get("remove_music"):
                tweaks.apply_patch(self, "remove_music")
            if self.map_select:
                tweaks.apply_patch(self, "map_select")
            if IS_RUNNING_FROM_SOURCE:
                tweaks.enable_developer_mode(self)

            if self.test_room_args is not None:
                tweaks.test_room(self)
        options_completed += 1

        yield ("Randomizing...", options_completed)

        if self.options.get("randomize_charts"):
            charts.randomize_charts(self)

        if self.options.get("randomize_starting_island"):
            starting_island.randomize_starting_island(self)

        if self.options.get("randomize_entrances") not in ["Disabled", None]:
            entrances.randomize_entrances(self)

        if self.options.get("randomize_music"):
            music.randomize_music(self)

        options_completed += 1

        # Enemies must be randomized before items in order for the enemy logic to properly take into account what items you do and don't start with.
        if self.options.get("randomize_enemies"):
            yield ("Randomizing enemy locations...", options_completed)
            enemies.randomize_enemies(self)

        if self.options.get("randomize_enemy_palettes"):
            yield ("Randomizing enemy colors...", options_completed)
            palettes.randomize_enemy_palettes(self)
            options_completed += 10

        # Reset RNG before doing item randomization so other randomization options don't affect item layout.
        self.rng = self.get_new_rng()

        yield ("Randomizing items...", options_completed)
        if self.randomize_items:
            items.randomize_items(self)

        options_completed += 2

        yield ("Saving items...", options_completed)
        if self.randomize_items and not self.dry_run:
            items.write_changed_items(self)

        if not self.dry_run:
            self.apply_necessary_post_randomization_tweaks()
        options_completed += 7

        yield ("Saving randomized ISO...", options_completed)
        if not self.dry_run:
            self.save_randomized_iso()
        options_completed += 9
        yield ("Writing logs...", options_completed)

        if self.randomize_items:
            if not self.options.get("do_not_generate_spoiler_log"):
                self.write_spoiler_log()
            self.write_non_spoiler_log()

        yield ("Done", -1)