mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00

Changelog: Features: - New Goal - Minigame Madness - Win a certain number of each type of Minigame Trap, then defeat the Finalhazard to win! - How many of each Minigame are required can be set by an Option - When the required amount of a Minigame has been received, that Minigame can be replayed in the Chao World Lobby - New optional Location Checks - Bigsanity - Go fishing with Big in each stage for a Location Check - Itemboxsanity - Either Extra Life Boxes or All Item Boxes - New Items - New Traps - Literature Trap - Controller Drift Trap - Poison Trap - Bee Trap - New Minigame Traps - Breakout Trap - Fishing Trap - Trivia Trap - Pokemon Trivia Trap - Pokemon Count Trap - Number Sequence Trap - Light Up Path Trap - Pinball Trap - Math Quiz Trap - Snake Trap - Input Sequence Trap - Trap Link - When you receive a trap, you send a copy of it to every other player with Trap Link enabled - Boss Gate Plando - Expert Logic Difficulty - Use at your own risk. This difficulty requires complete mastery of SA2. - Missions can now be enabled and disabled per-character, instead of just per-style - Minigame Difficulty can now be set to "Chaos", which selects a new difficulty randomly per-trap received Quality of Life: - Gate Stages and Mission Orders are now displayed in the spoiler log - Additional play stats are saved and displayed with the randomizer credits - Stage Locations progress UI now displays in multiple pages when Itemboxsanity is enabled - Current stage mission order and progress are now shown when paused in-level - Chaos Emeralds are now shown when paused in-level - Location Name Groups were created - Moved SA2B to the new Options system - Option Presets were created - Error Messages are more obvious Bug Fixes: - Added missing `Dry Lagoon - 12 Animals` location - Flying Dog boss should no longer crash when you have done at least 3 Intermediate Kart Races - Invincibility can no longer be received in the King Boom Boo fight, preventing a crash - Chaos Emeralds should no longer disproportionately end up in Cannon's Core or the final Level Gate - Going into submenus from the pause menu should no longer reset traps - `Sonic - Magic Gloves` are now plural - Junk items will no longer cause a crash when in a falling state - Chao Garden: - Prevent races from occasionally becoming uncompletable when using the "Prize Only" option - Properly allow Hero Chao to participate in Dark Races - Don't allow the Chao Garden to send locations when connected to an invalid server - Prevent the Chao Garden from resetting your life count - Fix Chao World Entrance Shuffle causing inaccessible Neutral Garden - Fix pressing the 'B' button to take you to the proper location in Chao World Entrance Shuffle - Prevent Chao Karate progress icon overflow - Prevent changing Chao Timescale while paused or while a Minigame is active - Logic Fixes: - `Mission Street - Chao Key 1` (Hard Logic) now requires no upgrades - `Mission Street - Chao Key 2` (Hard Logic) now requires no upgrades - `Crazy Gadget - Hidden 1` (Standard Logic) now requires `Sonic - Bounce Bracelet` instead of `Sonic - Light Shoes` - `Lost Colony - Hidden 1` (Standard Logic) now requires `Eggman - Jet Engine` - `Mad Space - Gold Beetle` (Standard Logic) now only requires `Rouge - Iron Boots` - `Cosmic Wall - Gold Beetle` (Standard and Hard Logic) now only requires `Eggman - Jet Engine`
503 lines
17 KiB
Python
503 lines
17 KiB
Python
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,
|
|
}
|