191 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			191 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from typing import Any, Dict
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from Options import Accessibility, ProgressionBalancing
							 | 
						||
| 
								 | 
							
								from .options import IgnoreCleansing, AutoRun, DSSPatch, AlwaysAllowSpeedDash, IronMaidenBehavior, BuffRangedFamiliars,\
							 | 
						||
| 
								 | 
							
								    BuffSubWeapons, BuffShooterStrength, ItemDropRandomization, HalveDSSCardsPlaced, Countdown, SubWeaponShuffle,\
							 | 
						||
| 
								 | 
							
								    DisableBattleArenaMPDrain, RequiredSkirmishes, EarlyEscapeItem, CVCotMDeathLink, CompletionGoal, SkipDialogues,\
							 | 
						||
| 
								 | 
							
								    NerfRocWing, SkipTutorials, BattleArenaMusic, PlutoGriffinAirSpeed
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								all_random_options = {
							 | 
						||
| 
								 | 
							
								    "progression_balancing":         "random",
							 | 
						||
| 
								 | 
							
								    "accessibility":                 "random",
							 | 
						||
| 
								 | 
							
								    "ignore_cleansing":              "random",
							 | 
						||
| 
								 | 
							
								    "auto_run":                      "random",
							 | 
						||
| 
								 | 
							
								    "dss_patch":                     "random",
							 | 
						||
| 
								 | 
							
								    "always_allow_speed_dash":       "random",
							 | 
						||
| 
								 | 
							
								    "iron_maiden_behavior":          "random",
							 | 
						||
| 
								 | 
							
								    "required_last_keys":            "random",
							 | 
						||
| 
								 | 
							
								    "available_last_keys":           "random",
							 | 
						||
| 
								 | 
							
								    "buff_ranged_familiars":         "random",
							 | 
						||
| 
								 | 
							
								    "buff_sub_weapons":              "random",
							 | 
						||
| 
								 | 
							
								    "buff_shooter_strength":         "random",
							 | 
						||
| 
								 | 
							
								    "item_drop_randomization":       "random",
							 | 
						||
| 
								 | 
							
								    "halve_dss_cards_placed":        "random",
							 | 
						||
| 
								 | 
							
								    "countdown":                     "random",
							 | 
						||
| 
								 | 
							
								    "sub_weapon_shuffle":            "random",
							 | 
						||
| 
								 | 
							
								    "disable_battle_arena_mp_drain": "random",
							 | 
						||
| 
								 | 
							
								    "required_skirmishes":           "random",
							 | 
						||
| 
								 | 
							
								    "pluto_griffin_air_speed":       "random",
							 | 
						||
| 
								 | 
							
								    "skip_dialogues":                "random",
							 | 
						||
| 
								 | 
							
								    "skip_tutorials":                "random",
							 | 
						||
| 
								 | 
							
								    "nerf_roc_wing":                 "random",
							 | 
						||
| 
								 | 
							
								    "early_escape_item":             "random",
							 | 
						||
| 
								 | 
							
								    "battle_arena_music":            "random",
							 | 
						||
| 
								 | 
							
								    "death_link":                    CVCotMDeathLink.option_off,
							 | 
						||
| 
								 | 
							
								    "completion_goal":               "random",
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								beginner_mode_options = {
							 | 
						||
| 
								 | 
							
								    "progression_balancing":         ProgressionBalancing.default,
							 | 
						||
| 
								 | 
							
								    "accessibility":                 Accessibility.option_full,
							 | 
						||
| 
								 | 
							
								    "ignore_cleansing":              IgnoreCleansing.option_false,
							 | 
						||
| 
								 | 
							
								    "auto_run":                      AutoRun.option_true,
							 | 
						||
| 
								 | 
							
								    "dss_patch":                     DSSPatch.option_true,
							 | 
						||
| 
								 | 
							
								    "always_allow_speed_dash":       AlwaysAllowSpeedDash.option_true,
							 | 
						||
| 
								 | 
							
								    "iron_maiden_behavior":          IronMaidenBehavior.option_start_broken,
							 | 
						||
| 
								 | 
							
								    "required_last_keys":            3,
							 | 
						||
| 
								 | 
							
								    "available_last_keys":           6,
							 | 
						||
| 
								 | 
							
								    "buff_ranged_familiars":         BuffRangedFamiliars.option_true,
							 | 
						||
| 
								 | 
							
								    "buff_sub_weapons":              BuffSubWeapons.option_true,
							 | 
						||
| 
								 | 
							
								    "buff_shooter_strength":         BuffShooterStrength.option_true,
							 | 
						||
| 
								 | 
							
								    "item_drop_randomization":       ItemDropRandomization.option_normal,
							 | 
						||
| 
								 | 
							
								    "halve_dss_cards_placed":        HalveDSSCardsPlaced.option_false,
							 | 
						||
| 
								 | 
							
								    "countdown":                     Countdown.option_majors,
							 | 
						||
| 
								 | 
							
								    "sub_weapon_shuffle":            SubWeaponShuffle.option_false,
							 | 
						||
| 
								 | 
							
								    "disable_battle_arena_mp_drain": DisableBattleArenaMPDrain.option_true,
							 | 
						||
| 
								 | 
							
								    "required_skirmishes":           RequiredSkirmishes.option_none,
							 | 
						||
| 
								 | 
							
								    "pluto_griffin_air_speed":       PlutoGriffinAirSpeed.option_false,
							 | 
						||
| 
								 | 
							
								    "skip_dialogues":                SkipDialogues.option_false,
							 | 
						||
| 
								 | 
							
								    "skip_tutorials":                SkipTutorials.option_false,
							 | 
						||
| 
								 | 
							
								    "nerf_roc_wing":                 NerfRocWing.option_false,
							 | 
						||
| 
								 | 
							
								    "early_escape_item":             EarlyEscapeItem.option_double,
							 | 
						||
| 
								 | 
							
								    "battle_arena_music":            BattleArenaMusic.option_nothing,
							 | 
						||
| 
								 | 
							
								    "death_link":                    CVCotMDeathLink.option_off,
							 | 
						||
| 
								 | 
							
								    "completion_goal":               CompletionGoal.option_dracula,
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								standard_competitive_options = {
							 | 
						||
| 
								 | 
							
								    "progression_balancing":         ProgressionBalancing.default,
							 | 
						||
| 
								 | 
							
								    "accessibility":                 Accessibility.option_full,
							 | 
						||
| 
								 | 
							
								    "ignore_cleansing":              IgnoreCleansing.option_false,
							 | 
						||
| 
								 | 
							
								    "auto_run":                      AutoRun.option_false,
							 | 
						||
| 
								 | 
							
								    "dss_patch":                     DSSPatch.option_true,
							 | 
						||
| 
								 | 
							
								    "always_allow_speed_dash":       AlwaysAllowSpeedDash.option_true,
							 | 
						||
| 
								 | 
							
								    "iron_maiden_behavior":          IronMaidenBehavior.option_start_broken,
							 | 
						||
| 
								 | 
							
								    "required_last_keys":            3,
							 | 
						||
| 
								 | 
							
								    "available_last_keys":           5,
							 | 
						||
| 
								 | 
							
								    "buff_ranged_familiars":         BuffRangedFamiliars.option_true,
							 | 
						||
| 
								 | 
							
								    "buff_sub_weapons":              BuffSubWeapons.option_true,
							 | 
						||
| 
								 | 
							
								    "buff_shooter_strength":         BuffShooterStrength.option_false,
							 | 
						||
| 
								 | 
							
								    "item_drop_randomization":       ItemDropRandomization.option_normal,
							 | 
						||
| 
								 | 
							
								    "halve_dss_cards_placed":        HalveDSSCardsPlaced.option_true,
							 | 
						||
| 
								 | 
							
								    "countdown":                     Countdown.option_majors,
							 | 
						||
| 
								 | 
							
								    "sub_weapon_shuffle":            SubWeaponShuffle.option_true,
							 | 
						||
| 
								 | 
							
								    "disable_battle_arena_mp_drain": DisableBattleArenaMPDrain.option_false,
							 | 
						||
| 
								 | 
							
								    "required_skirmishes":           RequiredSkirmishes.option_none,
							 | 
						||
| 
								 | 
							
								    "pluto_griffin_air_speed":       PlutoGriffinAirSpeed.option_false,
							 | 
						||
| 
								 | 
							
								    "skip_dialogues":                SkipDialogues.option_true,
							 | 
						||
| 
								 | 
							
								    "skip_tutorials":                SkipTutorials.option_true,
							 | 
						||
| 
								 | 
							
								    "nerf_roc_wing":                 NerfRocWing.option_false,
							 | 
						||
| 
								 | 
							
								    "early_escape_item":             EarlyEscapeItem.option_double,
							 | 
						||
| 
								 | 
							
								    "battle_arena_music":            BattleArenaMusic.option_nothing,
							 | 
						||
| 
								 | 
							
								    "death_link":                    CVCotMDeathLink.option_off,
							 | 
						||
| 
								 | 
							
								    "completion_goal":               CompletionGoal.option_dracula,
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								randomania_2023_options = {
							 | 
						||
| 
								 | 
							
								    "progression_balancing":         ProgressionBalancing.default,
							 | 
						||
| 
								 | 
							
								    "accessibility":                 Accessibility.option_full,
							 | 
						||
| 
								 | 
							
								    "ignore_cleansing":              IgnoreCleansing.option_false,
							 | 
						||
| 
								 | 
							
								    "auto_run":                      AutoRun.option_false,
							 | 
						||
| 
								 | 
							
								    "dss_patch":                     DSSPatch.option_true,
							 | 
						||
| 
								 | 
							
								    "always_allow_speed_dash":       AlwaysAllowSpeedDash.option_true,
							 | 
						||
| 
								 | 
							
								    "iron_maiden_behavior":          IronMaidenBehavior.option_vanilla,
							 | 
						||
| 
								 | 
							
								    "required_last_keys":            3,
							 | 
						||
| 
								 | 
							
								    "available_last_keys":           5,
							 | 
						||
| 
								 | 
							
								    "buff_ranged_familiars":         BuffRangedFamiliars.option_true,
							 | 
						||
| 
								 | 
							
								    "buff_sub_weapons":              BuffSubWeapons.option_true,
							 | 
						||
| 
								 | 
							
								    "buff_shooter_strength":         BuffShooterStrength.option_false,
							 | 
						||
| 
								 | 
							
								    "item_drop_randomization":       ItemDropRandomization.option_normal,
							 | 
						||
| 
								 | 
							
								    "halve_dss_cards_placed":        HalveDSSCardsPlaced.option_false,
							 | 
						||
| 
								 | 
							
								    "countdown":                     Countdown.option_majors,
							 | 
						||
| 
								 | 
							
								    "sub_weapon_shuffle":            SubWeaponShuffle.option_true,
							 | 
						||
| 
								 | 
							
								    "disable_battle_arena_mp_drain": DisableBattleArenaMPDrain.option_false,
							 | 
						||
| 
								 | 
							
								    "required_skirmishes":           RequiredSkirmishes.option_none,
							 | 
						||
| 
								 | 
							
								    "pluto_griffin_air_speed":       PlutoGriffinAirSpeed.option_false,
							 | 
						||
| 
								 | 
							
								    "skip_dialogues":                SkipDialogues.option_false,
							 | 
						||
| 
								 | 
							
								    "skip_tutorials":                SkipTutorials.option_false,
							 | 
						||
| 
								 | 
							
								    "nerf_roc_wing":                 NerfRocWing.option_false,
							 | 
						||
| 
								 | 
							
								    "early_escape_item":             EarlyEscapeItem.option_double,
							 | 
						||
| 
								 | 
							
								    "battle_arena_music":            BattleArenaMusic.option_nothing,
							 | 
						||
| 
								 | 
							
								    "death_link":                    CVCotMDeathLink.option_off,
							 | 
						||
| 
								 | 
							
								    "completion_goal":               CompletionGoal.option_dracula,
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								competitive_all_bosses_options = {
							 | 
						||
| 
								 | 
							
								    "progression_balancing":         ProgressionBalancing.default,
							 | 
						||
| 
								 | 
							
								    "accessibility":                 Accessibility.option_full,
							 | 
						||
| 
								 | 
							
								    "ignore_cleansing":              IgnoreCleansing.option_false,
							 | 
						||
| 
								 | 
							
								    "auto_run":                      AutoRun.option_false,
							 | 
						||
| 
								 | 
							
								    "dss_patch":                     DSSPatch.option_true,
							 | 
						||
| 
								 | 
							
								    "always_allow_speed_dash":       AlwaysAllowSpeedDash.option_true,
							 | 
						||
| 
								 | 
							
								    "iron_maiden_behavior":          IronMaidenBehavior.option_vanilla,
							 | 
						||
| 
								 | 
							
								    "required_last_keys":            8,
							 | 
						||
| 
								 | 
							
								    "available_last_keys":           8,
							 | 
						||
| 
								 | 
							
								    "buff_ranged_familiars":         BuffRangedFamiliars.option_true,
							 | 
						||
| 
								 | 
							
								    "buff_sub_weapons":              BuffSubWeapons.option_true,
							 | 
						||
| 
								 | 
							
								    "buff_shooter_strength":         BuffShooterStrength.option_false,
							 | 
						||
| 
								 | 
							
								    "item_drop_randomization":       ItemDropRandomization.option_tiered,
							 | 
						||
| 
								 | 
							
								    "halve_dss_cards_placed":        HalveDSSCardsPlaced.option_true,
							 | 
						||
| 
								 | 
							
								    "countdown":                     Countdown.option_none,
							 | 
						||
| 
								 | 
							
								    "sub_weapon_shuffle":            SubWeaponShuffle.option_true,
							 | 
						||
| 
								 | 
							
								    "disable_battle_arena_mp_drain": DisableBattleArenaMPDrain.option_false,
							 | 
						||
| 
								 | 
							
								    "required_skirmishes":           RequiredSkirmishes.option_all_bosses,
							 | 
						||
| 
								 | 
							
								    "pluto_griffin_air_speed":       PlutoGriffinAirSpeed.option_false,
							 | 
						||
| 
								 | 
							
								    "skip_dialogues":                SkipDialogues.option_true,
							 | 
						||
| 
								 | 
							
								    "skip_tutorials":                SkipTutorials.option_true,
							 | 
						||
| 
								 | 
							
								    "nerf_roc_wing":                 NerfRocWing.option_false,
							 | 
						||
| 
								 | 
							
								    "early_escape_item":             EarlyEscapeItem.option_double,
							 | 
						||
| 
								 | 
							
								    "battle_arena_music":            BattleArenaMusic.option_nothing,
							 | 
						||
| 
								 | 
							
								    "death_link":                    CVCotMDeathLink.option_off,
							 | 
						||
| 
								 | 
							
								    "completion_goal":               CompletionGoal.option_dracula,
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								hardcore_mode_options = {
							 | 
						||
| 
								 | 
							
								    "progression_balancing":         ProgressionBalancing.default,
							 | 
						||
| 
								 | 
							
								    "accessibility":                 Accessibility.option_minimal,
							 | 
						||
| 
								 | 
							
								    "ignore_cleansing":              IgnoreCleansing.option_true,
							 | 
						||
| 
								 | 
							
								    "auto_run":                      AutoRun.option_false,
							 | 
						||
| 
								 | 
							
								    "dss_patch":                     DSSPatch.option_true,
							 | 
						||
| 
								 | 
							
								    "always_allow_speed_dash":       AlwaysAllowSpeedDash.option_false,
							 | 
						||
| 
								 | 
							
								    "iron_maiden_behavior":          IronMaidenBehavior.option_vanilla,
							 | 
						||
| 
								 | 
							
								    "required_last_keys":            9,
							 | 
						||
| 
								 | 
							
								    "available_last_keys":           9,
							 | 
						||
| 
								 | 
							
								    "buff_ranged_familiars":         BuffRangedFamiliars.option_false,
							 | 
						||
| 
								 | 
							
								    "buff_sub_weapons":              BuffSubWeapons.option_false,
							 | 
						||
| 
								 | 
							
								    "buff_shooter_strength":         BuffShooterStrength.option_false,
							 | 
						||
| 
								 | 
							
								    "item_drop_randomization":       ItemDropRandomization.option_tiered,
							 | 
						||
| 
								 | 
							
								    "halve_dss_cards_placed":        HalveDSSCardsPlaced.option_true,
							 | 
						||
| 
								 | 
							
								    "countdown":                     Countdown.option_none,
							 | 
						||
| 
								 | 
							
								    "sub_weapon_shuffle":            SubWeaponShuffle.option_true,
							 | 
						||
| 
								 | 
							
								    "disable_battle_arena_mp_drain": DisableBattleArenaMPDrain.option_false,
							 | 
						||
| 
								 | 
							
								    "required_skirmishes":           RequiredSkirmishes.option_none,
							 | 
						||
| 
								 | 
							
								    "pluto_griffin_air_speed":       PlutoGriffinAirSpeed.option_false,
							 | 
						||
| 
								 | 
							
								    "skip_dialogues":                SkipDialogues.option_false,
							 | 
						||
| 
								 | 
							
								    "skip_tutorials":                SkipTutorials.option_false,
							 | 
						||
| 
								 | 
							
								    "nerf_roc_wing":                 NerfRocWing.option_false,
							 | 
						||
| 
								 | 
							
								    "early_escape_item":             EarlyEscapeItem.option_double,
							 | 
						||
| 
								 | 
							
								    "battle_arena_music":            BattleArenaMusic.option_nothing,
							 | 
						||
| 
								 | 
							
								    "death_link":                    CVCotMDeathLink.option_off,
							 | 
						||
| 
								 | 
							
								    "completion_goal":               CompletionGoal.option_battle_arena_and_dracula,
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								cvcotm_options_presets: Dict[str, Dict[str, Any]] = {
							 | 
						||
| 
								 | 
							
								    "All Random": all_random_options,
							 | 
						||
| 
								 | 
							
								    "Beginner Mode": beginner_mode_options,
							 | 
						||
| 
								 | 
							
								    "Standard Competitive": standard_competitive_options,
							 | 
						||
| 
								 | 
							
								    "Randomania 2023": randomania_2023_options,
							 | 
						||
| 
								 | 
							
								    "Competitive All Bosses": competitive_all_bosses_options,
							 | 
						||
| 
								 | 
							
								    "Hardcore Mode": hardcore_mode_options,
							 | 
						||
| 
								 | 
							
								}
							 |