from typing import Dict, Any from .Options import * minsanity = { "goal": Goal.option_chaos_chao, "max_emblem_cap": MaximumEmblemCap.range_start, "keysanity": False, "whistlesanity": Whistlesanity.option_none, "beetlesanity": False, "omosanity": False, "animalsanity": False, "itemboxsanity": ItemBoxsanity.option_none, "bigsanity": False, "kart_race_checks": KartRaceChecks.option_none, "junk_fill_percentage": 0, "sonic_mission_count": BaseMissionCount.range_start, "sonic_mission_2": False, "sonic_mission_3": False, "sonic_mission_4": False, "sonic_mission_5": False, "shadow_mission_count": BaseMissionCount.range_start, "shadow_mission_2": False, "shadow_mission_3": False, "shadow_mission_4": False, "shadow_mission_5": False, "tails_mission_count": BaseMissionCount.range_start, "tails_mission_2": False, "tails_mission_3": False, "tails_mission_4": False, "tails_mission_5": False, "eggman_mission_count": BaseMissionCount.range_start, "eggman_mission_2": False, "eggman_mission_3": False, "eggman_mission_4": False, "eggman_mission_5": False, "knuckles_mission_count": BaseMissionCount.range_start, "knuckles_mission_2": False, "knuckles_mission_3": False, "knuckles_mission_4": False, "knuckles_mission_5": False, "rouge_mission_count": BaseMissionCount.range_start, "rouge_mission_2": False, "rouge_mission_3": False, "rouge_mission_4": False, "rouge_mission_5": False, "kart_mission_count": BaseMissionCount.range_start, "kart_mission_2": False, "kart_mission_3": False, "kart_mission_4": False, "kart_mission_5": False, "cannons_core_mission_count": BaseMissionCount.range_start, "cannons_core_mission_2": False, "cannons_core_mission_3": False, "cannons_core_mission_4": False, "cannons_core_mission_5": False, } chao_centric = { "goal": Goal.option_chaos_chao, "keysanity": False, "whistlesanity": Whistlesanity.option_none, "beetlesanity": False, "omosanity": False, "animalsanity": False, "itemboxsanity": ItemBoxsanity.option_none, "bigsanity": False, "kart_race_checks": KartRaceChecks.option_none, "black_market_slots": BlackMarketSlots.range_end, "black_market_unlock_costs": BlackMarketUnlockCosts.option_high, "chao_race_difficulty": ChaoRaceDifficulty.option_expert, "chao_karate_difficulty": ChaoKarateDifficulty.option_super, "chao_stadium_checks": ChaoStadiumChecks.option_all, "chao_animal_parts": True, "chao_stats": ChaoStats.range_end, "chao_stats_frequency": 1, "chao_stats_stamina": True, "chao_stats_hidden": True, "chao_kindergarten": ChaoKindergarten.option_full, "junk_fill_percentage": 50, "sonic_mission_count": BaseMissionCount.range_start, "sonic_mission_2": False, "sonic_mission_3": False, "sonic_mission_4": False, "sonic_mission_5": False, "shadow_mission_count": BaseMissionCount.range_start, "shadow_mission_2": False, "shadow_mission_3": False, "shadow_mission_4": False, "shadow_mission_5": False, "tails_mission_count": BaseMissionCount.range_start, "tails_mission_2": False, "tails_mission_3": False, "tails_mission_4": False, "tails_mission_5": False, "eggman_mission_count": BaseMissionCount.range_start, "eggman_mission_2": False, "eggman_mission_3": False, "eggman_mission_4": False, "eggman_mission_5": False, "knuckles_mission_count": BaseMissionCount.range_start, "knuckles_mission_2": False, "knuckles_mission_3": False, "knuckles_mission_4": False, "knuckles_mission_5": False, "rouge_mission_count": BaseMissionCount.range_start, "rouge_mission_2": False, "rouge_mission_3": False, "rouge_mission_4": False, "rouge_mission_5": False, "kart_mission_count": BaseMissionCount.range_start, "kart_mission_2": False, "kart_mission_3": False, "kart_mission_4": False, "kart_mission_5": False, "cannons_core_mission_count": BaseMissionCount.range_start, "cannons_core_mission_2": False, "cannons_core_mission_3": False, "cannons_core_mission_4": False, "cannons_core_mission_5": False, } allsanity_no_chao = { "goal": Goal.option_cannons_core_boss_rush, "boss_rush_shuffle": BossRushShuffle.option_chaos, "minigame_madness_requirement": MinigameMadnessRequirement.range_end, "minigame_madness_minimum": MinigameMadnessMinimum.range_end, "max_emblem_cap": MaximumEmblemCap.range_end, "mission_shuffle": True, "required_cannons_core_missions": RequiredCannonsCoreMissions.option_all_active, "emblem_percentage_for_cannons_core": EmblemPercentageForCannonsCore.range_end, "number_of_level_gates": NumberOfLevelGates.range_end, "level_gate_costs": LevelGateCosts.option_high, "keysanity": True, "whistlesanity": Whistlesanity.option_both, "beetlesanity": True, "omosanity": True, "animalsanity": True, "itemboxsanity": ItemBoxsanity.option_all, "bigsanity": True, "kart_race_checks": KartRaceChecks.option_full, "junk_fill_percentage": 25, "trap_fill_percentage": 25, "omochao_trap_weight": BaseTrapWeight.option_high, "timestop_trap_weight": BaseTrapWeight.option_high, "confusion_trap_weight": BaseTrapWeight.option_high, "tiny_trap_weight": BaseTrapWeight.option_high, "gravity_trap_weight": BaseTrapWeight.option_high, "exposition_trap_weight": BaseTrapWeight.option_high, "ice_trap_weight": BaseTrapWeight.option_high, "slow_trap_weight": BaseTrapWeight.option_high, "cutscene_trap_weight": BaseTrapWeight.option_high, "reverse_trap_weight": BaseTrapWeight.option_high, "literature_trap_weight": BaseTrapWeight.option_high, "controller_drift_trap_weight": BaseTrapWeight.option_high, "poison_trap_weight": BaseTrapWeight.option_high, "bee_trap_weight": BaseTrapWeight.option_high, "pong_trap_weight": BaseTrapWeight.option_high, "breakout_trap_weight": BaseTrapWeight.option_high, "fishing_trap_weight": BaseTrapWeight.option_high, "trivia_trap_weight": BaseTrapWeight.option_high, "pokemon_trivia_trap_weight": BaseTrapWeight.option_high, "pokemon_count_trap_weight": BaseTrapWeight.option_high, "number_sequence_trap_weight": BaseTrapWeight.option_high, "light_up_path_trap_weight": BaseTrapWeight.option_high, "pinball_trap_weight": BaseTrapWeight.option_high, "math_quiz_trap_weight": BaseTrapWeight.option_high, "snake_trap_weight": BaseTrapWeight.option_high, "input_sequence_trap_weight": BaseTrapWeight.option_high, "minigame_trap_difficulty": MinigameTrapDifficulty.option_chaos, "big_fishing_difficulty": BigFishingDifficulty.option_chaos, "music_shuffle": MusicShuffle.option_full, "voice_shuffle": VoiceShuffle.option_shuffled, "sonic_mission_count": BaseMissionCount.range_end, "sonic_mission_2": True, "sonic_mission_3": True, "sonic_mission_4": True, "sonic_mission_5": True, "shadow_mission_count": BaseMissionCount.range_end, "shadow_mission_2": True, "shadow_mission_3": True, "shadow_mission_4": True, "shadow_mission_5": True, "tails_mission_count": BaseMissionCount.range_end, "tails_mission_2": True, "tails_mission_3": True, "tails_mission_4": True, "tails_mission_5": True, "eggman_mission_count": BaseMissionCount.range_end, "eggman_mission_2": True, "eggman_mission_3": True, "eggman_mission_4": True, "eggman_mission_5": True, "knuckles_mission_count": BaseMissionCount.range_end, "knuckles_mission_2": True, "knuckles_mission_3": True, "knuckles_mission_4": True, "knuckles_mission_5": True, "rouge_mission_count": BaseMissionCount.range_end, "rouge_mission_2": True, "rouge_mission_3": True, "rouge_mission_4": True, "rouge_mission_5": True, "kart_mission_count": BaseMissionCount.range_end, "kart_mission_2": True, "kart_mission_3": True, "kart_mission_4": True, "kart_mission_5": True, "cannons_core_mission_count": BaseMissionCount.range_end, "cannons_core_mission_2": True, "cannons_core_mission_3": True, "cannons_core_mission_4": True, "cannons_core_mission_5": True, } allsanity = { "goal": Goal.option_cannons_core_boss_rush, "boss_rush_shuffle": BossRushShuffle.option_chaos, "minigame_madness_requirement": MinigameMadnessRequirement.range_end, "minigame_madness_minimum": MinigameMadnessMinimum.range_end, "max_emblem_cap": MaximumEmblemCap.range_end, "mission_shuffle": True, "required_cannons_core_missions": RequiredCannonsCoreMissions.option_all_active, "emblem_percentage_for_cannons_core": EmblemPercentageForCannonsCore.range_end, "number_of_level_gates": NumberOfLevelGates.range_end, "level_gate_costs": LevelGateCosts.option_high, "keysanity": True, "whistlesanity": Whistlesanity.option_both, "beetlesanity": True, "omosanity": True, "animalsanity": True, "itemboxsanity": ItemBoxsanity.option_all, "bigsanity": True, "kart_race_checks": KartRaceChecks.option_full, "black_market_slots": BlackMarketSlots.range_end, "black_market_unlock_costs": BlackMarketUnlockCosts.option_high, "chao_race_difficulty": ChaoRaceDifficulty.option_expert, "chao_karate_difficulty": ChaoKarateDifficulty.option_super, "chao_stadium_checks": ChaoStadiumChecks.option_all, "chao_animal_parts": True, "chao_stats": ChaoStats.range_end, "chao_stats_frequency": 1, "chao_stats_stamina": True, "chao_stats_hidden": True, "chao_kindergarten": ChaoKindergarten.option_full, "junk_fill_percentage": 25, "trap_fill_percentage": 25, "omochao_trap_weight": BaseTrapWeight.option_high, "timestop_trap_weight": BaseTrapWeight.option_high, "confusion_trap_weight": BaseTrapWeight.option_high, "tiny_trap_weight": BaseTrapWeight.option_high, "gravity_trap_weight": BaseTrapWeight.option_high, "exposition_trap_weight": BaseTrapWeight.option_high, "ice_trap_weight": BaseTrapWeight.option_high, "slow_trap_weight": BaseTrapWeight.option_high, "cutscene_trap_weight": BaseTrapWeight.option_high, "reverse_trap_weight": BaseTrapWeight.option_high, "literature_trap_weight": BaseTrapWeight.option_high, "controller_drift_trap_weight": BaseTrapWeight.option_high, "poison_trap_weight": BaseTrapWeight.option_high, "bee_trap_weight": BaseTrapWeight.option_high, "pong_trap_weight": BaseTrapWeight.option_high, "breakout_trap_weight": BaseTrapWeight.option_high, "fishing_trap_weight": BaseTrapWeight.option_high, "trivia_trap_weight": BaseTrapWeight.option_high, "pokemon_trivia_trap_weight": BaseTrapWeight.option_high, "pokemon_count_trap_weight": BaseTrapWeight.option_high, "number_sequence_trap_weight": BaseTrapWeight.option_high, "light_up_path_trap_weight": BaseTrapWeight.option_high, "pinball_trap_weight": BaseTrapWeight.option_high, "math_quiz_trap_weight": BaseTrapWeight.option_high, "snake_trap_weight": BaseTrapWeight.option_high, "input_sequence_trap_weight": BaseTrapWeight.option_high, "minigame_trap_difficulty": MinigameTrapDifficulty.option_chaos, "big_fishing_difficulty": BigFishingDifficulty.option_chaos, "music_shuffle": MusicShuffle.option_full, "voice_shuffle": VoiceShuffle.option_shuffled, "sonic_mission_count": BaseMissionCount.range_end, "sonic_mission_2": True, "sonic_mission_3": True, "sonic_mission_4": True, "sonic_mission_5": True, "shadow_mission_count": BaseMissionCount.range_end, "shadow_mission_2": True, "shadow_mission_3": True, "shadow_mission_4": True, "shadow_mission_5": True, "tails_mission_count": BaseMissionCount.range_end, "tails_mission_2": True, "tails_mission_3": True, "tails_mission_4": True, "tails_mission_5": True, "eggman_mission_count": BaseMissionCount.range_end, "eggman_mission_2": True, "eggman_mission_3": True, "eggman_mission_4": True, "eggman_mission_5": True, "knuckles_mission_count": BaseMissionCount.range_end, "knuckles_mission_2": True, "knuckles_mission_3": True, "knuckles_mission_4": True, "knuckles_mission_5": True, "rouge_mission_count": BaseMissionCount.range_end, "rouge_mission_2": True, "rouge_mission_3": True, "rouge_mission_4": True, "rouge_mission_5": True, "kart_mission_count": BaseMissionCount.range_end, "kart_mission_2": True, "kart_mission_3": True, "kart_mission_4": True, "kart_mission_5": True, "cannons_core_mission_count": BaseMissionCount.range_end, "cannons_core_mission_2": True, "cannons_core_mission_3": True, "cannons_core_mission_4": True, "cannons_core_mission_5": True, } all_random = { "goal": "random", "boss_rush_shuffle": "random", "minigame_madness_requirement": "random", "minigame_madness_minimum": "random", "logic_difficulty": "random", "required_rank": "random", "max_emblem_cap": "random", "ring_loss": "random", "mission_shuffle": "random", "required_cannons_core_missions": "random", "emblem_percentage_for_cannons_core": "random", "number_of_level_gates": "random", "level_gate_distribution": "random", "level_gate_costs": "random", "keysanity": "random", "whistlesanity": "random", "beetlesanity": "random", "omosanity": "random", "animalsanity": "random", "itemboxsanity": "random", "bigsanity": "random", "kart_race_checks": "random", "black_market_slots": "random", "black_market_unlock_costs": "random", "black_market_price_multiplier": "random", "chao_race_difficulty": "random", "chao_karate_difficulty": "random", "chao_stadium_checks": "random", "chao_animal_parts": "random", "chao_stats": "random", "chao_stats_frequency": "random", "chao_stats_stamina": "random", "chao_stats_hidden": "random", "chao_kindergarten": "random", "shuffle_starting_chao_eggs": "random", "chao_entrance_randomization": "random", "junk_fill_percentage": "random", "trap_fill_percentage": "random", "omochao_trap_weight": "random", "timestop_trap_weight": "random", "confusion_trap_weight": "random", "tiny_trap_weight": "random", "gravity_trap_weight": "random", "exposition_trap_weight": "random", "ice_trap_weight": "random", "slow_trap_weight": "random", "cutscene_trap_weight": "random", "reverse_trap_weight": "random", "literature_trap_weight": "random", "controller_drift_trap_weight": "random", "poison_trap_weight": "random", "bee_trap_weight": "random", "pong_trap_weight": "random", "breakout_trap_weight": "random", "fishing_trap_weight": "random", "trivia_trap_weight": "random", "pokemon_trivia_trap_weight": "random", "pokemon_count_trap_weight": "random", "number_sequence_trap_weight": "random", "light_up_path_trap_weight": "random", "pinball_trap_weight": "random", "math_quiz_trap_weight": "random", "snake_trap_weight": "random", "input_sequence_trap_weight": "random", "minigame_trap_difficulty": "random", "big_fishing_difficulty": "random", "sadx_music": "random", "music_shuffle": "random", "voice_shuffle": "random", "narrator": "random", "sonic_mission_count": "random", "sonic_mission_2": "random", "sonic_mission_3": "random", "sonic_mission_4": "random", "sonic_mission_5": "random", "shadow_mission_count": "random", "shadow_mission_2": "random", "shadow_mission_3": "random", "shadow_mission_4": "random", "shadow_mission_5": "random", "tails_mission_count": "random", "tails_mission_2": "random", "tails_mission_3": "random", "tails_mission_4": "random", "tails_mission_5": "random", "eggman_mission_count": "random", "eggman_mission_2": "random", "eggman_mission_3": "random", "eggman_mission_4": "random", "eggman_mission_5": "random", "knuckles_mission_count": "random", "knuckles_mission_2": "random", "knuckles_mission_3": "random", "knuckles_mission_4": "random", "knuckles_mission_5": "random", "rouge_mission_count": "random", "rouge_mission_2": "random", "rouge_mission_3": "random", "rouge_mission_4": "random", "rouge_mission_5": "random", "kart_mission_count": "random", "kart_mission_2": "random", "kart_mission_3": "random", "kart_mission_4": "random", "kart_mission_5": "random", "cannons_core_mission_count": "random", "cannons_core_mission_2": "random", "cannons_core_mission_3": "random", "cannons_core_mission_4": "random", "cannons_core_mission_5": "random", "ring_link": "random", "trap_link": "random", "death_link": "random", } sa2b_options_presets: Dict[str, Dict[str, Any]] = { "Minsanity": minsanity, "Chao-centric": chao_centric, "Allsanity No Chao": allsanity_no_chao, "Allsanity": allsanity, "All Random": all_random, }