import typing from Options import Choice, Option, Toggle, Range class AdvancementGoal(Range): """Number of advancements required to spawn the Ender Dragon.""" displayname = "Advancement Goal" range_start = 0 range_end = 87 default = 50 class EggShardsRequired(Range): """Number of dragon egg shards to collect before the Ender Dragon will spawn.""" displayname = "Egg Shards Required" range_start = 0 range_end = 30 class EggShardsAvailable(Range): """Number of dragon egg shards available to collect.""" displayname = "Egg Shards Available" range_start = 0 range_end = 30 class ShuffleStructures(Toggle): """Enables shuffling of villages, outposts, fortresses, bastions, and end cities.""" displayname = "Shuffle Structures" class StructureCompasses(Toggle): """Adds structure compasses to the item pool, which point to the nearest indicated structure.""" displayname = "Structure Compasses" class BeeTraps(Range): """Replaces a percentage of junk items with bee traps, which spawn multiple angered bees around every player when received.""" displayname = "Bee Trap Percentage" range_start = 0 range_end = 100 class CombatDifficulty(Choice): """Modifies the level of items logically required for exploring dangerous areas and fighting bosses.""" displayname = "Combat Difficulty" option_easy = 0 option_normal = 1 option_hard = 2 default = 1 class HardAdvancements(Toggle): """Enables certain RNG-reliant or tedious advancements.""" displayname = "Include Hard Advancements" class InsaneAdvancements(Toggle): """Enables the extremely difficult advancements "How Did We Get Here?" and "Adventuring Time.\"""" displayname = "Include Insane Advancements" class PostgameAdvancements(Toggle): """Enables advancements that require spawning and defeating the Ender Dragon.""" displayname = "Include Postgame Advancements" class SendDefeatedMobs(Toggle): """Send killed mobs to other Minecraft worlds which have this option enabled.""" displayname = "Send Defeated Mobs" minecraft_options: typing.Dict[str, type(Option)] = { "advancement_goal": AdvancementGoal, "egg_shards_required": EggShardsRequired, "egg_shards_available": EggShardsAvailable, "shuffle_structures": ShuffleStructures, "structure_compasses": StructureCompasses, "bee_traps": BeeTraps, "combat_difficulty": CombatDifficulty, "include_hard_advancements": HardAdvancements, "include_insane_advancements": InsaneAdvancements, "include_postgame_advancements": PostgameAdvancements, "send_defeated_mobs": SendDefeatedMobs, }