259 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			259 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from Options import Choice, FreeText, Toggle | ||
|  | 
 | ||
|  | 
 | ||
|  | class Logic(Choice): | ||
|  |     """Placement logic sets the rules that will be applied when placing items. Friendly: Required Items to clear a
 | ||
|  |     dungeon will never be placed in that dungeon to avoid the need to revisit it. Also, the Magic Mirror and the Mask | ||
|  |     will always be available before Ice Pyramid and Volcano, respectively. Note: If Dungeons are shuffled, Friendly | ||
|  |     logic will only ensure the availability of the Mirror and the Mask. Standard: Items are randomly placed and logic | ||
|  |     merely verifies that they're all accessible. As for Region access, only the Coins are considered. Expert: Same as | ||
|  |     Standard, but Items Placement logic also includes other routes than Coins: the Crests Teleporters, the | ||
|  |     Fireburg-Aquaria Lava bridge and the Sealed Temple Exit trick."""
 | ||
|  |     option_friendly = 0 | ||
|  |     option_standard = 1 | ||
|  |     option_expert = 2 | ||
|  |     default = 1 | ||
|  |     display_name = "Logic" | ||
|  | 
 | ||
|  | 
 | ||
|  | class BrownBoxes(Choice): | ||
|  |     """Include the 201 brown box locations from the original game. Brown Boxes are all the boxes that contained a
 | ||
|  |     consumable in the original game. If shuffle is chosen, the consumables contained will be shuffled but the brown | ||
|  |     boxes will not be Archipelago location checks."""
 | ||
|  |     option_exclude = 0 | ||
|  |     option_include = 1 | ||
|  |     option_shuffle = 2 | ||
|  |     default = 1 | ||
|  |     display_name = "Brown Boxes" | ||
|  | 
 | ||
|  | 
 | ||
|  | class SkyCoinMode(Choice): | ||
|  |     """Configure how the Sky Coin is acquired. With standard, the Sky Coin will be placed randomly. With Start With, the
 | ||
|  |     Sky Coin will be in your inventory at the start of the game. With Save The Crystals, the Sky Coin will be acquired | ||
|  |     once you save all 4 crystals. With Shattered Sky Coin, the Sky Coin is split in 40 fragments; you can enter Doom | ||
|  |     Castle once the required amount is found. Shattered Sky Coin will force brown box locations to be included."""
 | ||
|  |     option_standard = 0 | ||
|  |     option_start_with = 1 | ||
|  |     option_save_the_crystals = 2 | ||
|  |     option_shattered_sky_coin = 3 | ||
|  |     default = 0 | ||
|  |     display_name = "Sky Coin Mode" | ||
|  | 
 | ||
|  | 
 | ||
|  | class ShatteredSkyCoinQuantity(Choice): | ||
|  |     """Configure the number of the 40 Sky Coin Fragments required to enter the Doom Castle. Only has an effect if
 | ||
|  |     Sky Coin Mode is set to shattered. Low: 16. Mid: 24. High: 32. Random Narrow: random between 16 and 32. | ||
|  |     Random Wide: random between 10 and 38."""
 | ||
|  |     option_low_16 = 0 | ||
|  |     option_mid_24 = 1 | ||
|  |     option_high_32 = 2 | ||
|  |     option_random_narrow = 3 | ||
|  |     option_random_wide = 4 | ||
|  |     default = 1 | ||
|  |     display_name = "Shattered Sky Coin" | ||
|  | 
 | ||
|  | 
 | ||
|  | class StartingWeapon(Choice): | ||
|  |     """Choose your starting weapon.""" | ||
|  |     display_name = "Starting Weapon" | ||
|  |     option_steel_sword = 0 | ||
|  |     option_axe = 1 | ||
|  |     option_cat_claw = 2 | ||
|  |     option_bomb = 3 | ||
|  |     default = "random" | ||
|  | 
 | ||
|  | 
 | ||
|  | class ProgressiveGear(Toggle): | ||
|  |     """Pieces of gear are always acquired from weakest to strongest in a set.""" | ||
|  |     display_name = "Progressive Gear" | ||
|  | 
 | ||
|  | 
 | ||
|  | class EnemiesDensity(Choice): | ||
|  |     """Set how many of the original enemies are on each map.""" | ||
|  |     display_name = "Enemies Density" | ||
|  |     option_all = 0 | ||
|  |     option_three_quarter = 1 | ||
|  |     option_half = 2 | ||
|  |     option_quarter = 3 | ||
|  |     option_none = 4 | ||
|  | 
 | ||
|  | 
 | ||
|  | class EnemyScaling(Choice): | ||
|  |     """Superclass for enemy scaling options.""" | ||
|  |     option_quarter = 0 | ||
|  |     option_half = 1 | ||
|  |     option_three_quarter = 2 | ||
|  |     option_normal = 3 | ||
|  |     option_one_and_quarter = 4 | ||
|  |     option_one_and_half = 5 | ||
|  |     option_double = 6 | ||
|  |     option_double_and_half = 7 | ||
|  |     option_triple = 8 | ||
|  | 
 | ||
|  | 
 | ||
|  | class EnemiesScalingLower(EnemyScaling): | ||
|  |     """Randomly adjust enemies stats by the selected range percentage. Include mini-bosses' weaker clones.""" | ||
|  |     display_name = "Enemies Scaling Lower" | ||
|  |     default = 0 | ||
|  | 
 | ||
|  | 
 | ||
|  | class EnemiesScalingUpper(EnemyScaling): | ||
|  |     """Randomly adjust enemies stats by the selected range percentage. Include mini-bosses' weaker clones.""" | ||
|  |     display_name = "Enemies Scaling Upper" | ||
|  |     default = 4 | ||
|  | 
 | ||
|  | 
 | ||
|  | class BossesScalingLower(EnemyScaling): | ||
|  |     """Randomly adjust bosses stats by the selected range percentage. Include Mini-Bosses, Bosses, Bosses' refights and
 | ||
|  |     the Dark King."""
 | ||
|  |     display_name = "Bosses Scaling Lower" | ||
|  |     default = 0 | ||
|  | 
 | ||
|  | 
 | ||
|  | class BossesScalingUpper(EnemyScaling): | ||
|  |     """Randomly adjust bosses stats by the selected range percentage. Include Mini-Bosses, Bosses, Bosses' refights and
 | ||
|  |     the Dark King."""
 | ||
|  |     display_name = "Bosses Scaling Upper" | ||
|  |     default = 4 | ||
|  | 
 | ||
|  | 
 | ||
|  | class EnemizerAttacks(Choice): | ||
|  |     """Shuffles enemy attacks. Standard: No shuffle. Safe: Randomize every attack but leave out self-destruct and Dark
 | ||
|  |     King attacks. Chaos: Randomize and include self-destruct and Dark King attacks. Self Destruct: Every enemy | ||
|  |     self-destructs. Simple Shuffle: Instead of randomizing, shuffle one monster's attacks to another. Dark King is left | ||
|  |     vanilla."""
 | ||
|  |     display_name = "Enemizer Attacks" | ||
|  |     option_normal = 0 | ||
|  |     option_safe = 1 | ||
|  |     option_chaos = 2 | ||
|  |     option_self_destruct = 3 | ||
|  |     option_simple_shuffle = 4 | ||
|  |     default = 0 | ||
|  | 
 | ||
|  | 
 | ||
|  | class ShuffleEnemiesPositions(Toggle): | ||
|  |     """Instead of their original position in a given map, enemies are randomly placed.""" | ||
|  |     display_name = "Shuffle Enemies' Positions" | ||
|  |     default = 1 | ||
|  | 
 | ||
|  | 
 | ||
|  | class ProgressiveFormations(Choice): | ||
|  |     """Enemies' formations are selected by regions, with the weakest formations always selected in Foresta and the
 | ||
|  |     strongest in Windia. Disabled: Standard formations are used. Regions Strict: Formations will come exclusively | ||
|  |     from the current region, whatever the map is. Regions Keep Type: Formations will keep the original formation type | ||
|  |     and match with the nearest power level."""
 | ||
|  |     display_name = "Progressive Formations" | ||
|  |     option_disabled = 0 | ||
|  |     option_regions_strict = 1 | ||
|  |     option_regions_keep_type = 2 | ||
|  | 
 | ||
|  | 
 | ||
|  | class DoomCastle(Choice): | ||
|  |     """Configure how you reach the Dark King. With Standard, you need to defeat all four bosses and their floors to
 | ||
|  |     reach the Dark King. With Boss Rush, only the bosses are blocking your way in the corridor to the Dark King's room. | ||
|  |     With Dark King Only, the way to the Dark King is free of any obstacle."""
 | ||
|  |     display_name = "Doom Castle" | ||
|  |     option_standard = 0 | ||
|  |     option_boss_rush = 1 | ||
|  |     option_dark_king_only = 2 | ||
|  | 
 | ||
|  | 
 | ||
|  | class DoomCastleShortcut(Toggle): | ||
|  |     """Create a shortcut granting access from the start to Doom Castle at Focus Tower's entrance.
 | ||
|  |     Also modify the Desert floor, so it can be navigated without the Mega Grenades and the Dragon Claw."""
 | ||
|  |     display_name = "Doom Castle Shortcut" | ||
|  | 
 | ||
|  | 
 | ||
|  | class TweakFrustratingDungeons(Toggle): | ||
|  |     """Make some small changes to a few of the most annoying dungeons. Ice Pyramid: Add 3 shortcuts on the 1st floor.
 | ||
|  |     Giant Tree: Add shortcuts on the 1st and 4th floors and curtail mushrooms population. | ||
|  |     Pazuzu's Tower: Staircases are devoid of enemies (regardless of Enemies Density settings).""" | ||
|  |     display_name = "Tweak Frustrating Dungeons" | ||
|  | 
 | ||
|  | 
 | ||
|  | class MapShuffle(Choice): | ||
|  |     """None: No shuffle. Overworld: Only shuffle the Overworld locations. Dungeons: Only shuffle the dungeons' floors
 | ||
|  |     amongst themselves. Temples and Towns aren't included. Overworld And Dungeons: Shuffle the Overworld and dungeons | ||
|  |     at the same time. Everything: Shuffle the Overworld, dungeons, temples and towns all amongst each others. | ||
|  |     When dungeons are shuffled, defeating Pazuzu won't teleport you to the 7th floor, you have to get there normally to | ||
|  |     save the Crystal and get Pazuzu's Chest.""" | ||
|  |     display_name = "Map Shuffle" | ||
|  |     option_none = 0 | ||
|  |     option_overworld = 1 | ||
|  |     option_dungeons = 2 | ||
|  |     option_overworld_and_dungeons = 3 | ||
|  |     option_everything = 4 | ||
|  |     default = 0 | ||
|  | 
 | ||
|  | 
 | ||
|  | class CrestShuffle(Toggle): | ||
|  |     """Shuffle the Crest tiles amongst themselves.""" | ||
|  |     display_name = "Crest Shuffle" | ||
|  | 
 | ||
|  | 
 | ||
|  | class MapShuffleSeed(FreeText): | ||
|  |     """If this is a number, it will be used as a set seed number for Map, Crest, and Battlefield Reward shuffles.
 | ||
|  |     If this is "random" the seed will be chosen randomly. If it is any other text, it will be used as a seed group name. | ||
|  |     All players using the same seed group name will get the same shuffle results, as long as their Map Shuffle, | ||
|  |     Crest Shuffle, and Shuffle Battlefield Rewards settings are the same."""
 | ||
|  |     display_name = "Map Shuffle Seed" | ||
|  |     default = "random" | ||
|  | 
 | ||
|  | 
 | ||
|  | class LevelingCurve(Choice): | ||
|  |     """Adjust the level gain rate.""" | ||
|  |     display_name = "Leveling Curve" | ||
|  |     option_half = 0 | ||
|  |     option_normal = 1 | ||
|  |     option_one_and_half = 2 | ||
|  |     option_double = 3 | ||
|  |     option_double_and_half = 4 | ||
|  |     option_triple = 5 | ||
|  |     option_quadruple = 6 | ||
|  |     default = 4 | ||
|  | 
 | ||
|  | 
 | ||
|  | class ShuffleBattlefieldRewards(Toggle): | ||
|  |     """Shuffle the type of reward (Item, XP, GP) given by battlefields and color code them by reward type.
 | ||
|  |     Blue: Give an item. Grey: Give XP. Green: Give GP."""
 | ||
|  |     display_name = "Shuffle Battlefield Rewards" | ||
|  | 
 | ||
|  | 
 | ||
|  | class BattlefieldsBattlesQuantities(Choice): | ||
|  |     """Adjust the number of battles that need to be fought to get a battlefield's reward.""" | ||
|  |     display_name = "Battlefields Battles Quantity" | ||
|  |     option_ten = 0 | ||
|  |     option_seven = 1 | ||
|  |     option_five = 2 | ||
|  |     option_three = 3 | ||
|  |     option_one = 4 | ||
|  |     option_random_one_through_five = 5 | ||
|  |     option_random_one_through_ten = 6 | ||
|  | 
 | ||
|  | 
 | ||
|  | option_definitions = { | ||
|  |     "logic": Logic, | ||
|  |     "brown_boxes": BrownBoxes, | ||
|  |     "sky_coin_mode": SkyCoinMode, | ||
|  |     "shattered_sky_coin_quantity": ShatteredSkyCoinQuantity, | ||
|  |     "starting_weapon": StartingWeapon, | ||
|  |     "progressive_gear": ProgressiveGear, | ||
|  |     "enemies_density": EnemiesDensity, | ||
|  |     "enemies_scaling_lower": EnemiesScalingLower, | ||
|  |     "enemies_scaling_upper": EnemiesScalingUpper, | ||
|  |     "bosses_scaling_lower": BossesScalingLower, | ||
|  |     "bosses_scaling_upper": BossesScalingUpper, | ||
|  |     "enemizer_attacks": EnemizerAttacks, | ||
|  |     "shuffle_enemies_position": ShuffleEnemiesPositions, | ||
|  |     "progressive_formations": ProgressiveFormations, | ||
|  |     "doom_castle_mode": DoomCastle, | ||
|  |     "doom_castle_shortcut": DoomCastleShortcut, | ||
|  |     "tweak_frustrating_dungeons": TweakFrustratingDungeons, | ||
|  |     "map_shuffle": MapShuffle, | ||
|  |     "crest_shuffle": CrestShuffle, | ||
|  |     "shuffle_battlefield_rewards": ShuffleBattlefieldRewards, | ||
|  |     "map_shuffle_seed": MapShuffleSeed, | ||
|  |     "leveling_curve": LevelingCurve, | ||
|  |     "battlefields_battles_quantities": BattlefieldsBattlesQuantities, | ||
|  | } |