diff options
Diffstat (limited to 'apworld/options.py')
| -rw-r--r-- | apworld/options.py | 55 |
1 files changed, 54 insertions, 1 deletions
| diff --git a/apworld/options.py b/apworld/options.py index 5661351..c1eab33 100644 --- a/apworld/options.py +++ b/apworld/options.py | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | from dataclasses import dataclass | 1 | from dataclasses import dataclass |
| 2 | 2 | ||
| 3 | from Options import PerGameCommonOptions, Toggle, Choice, DefaultOnToggle, Range, OptionSet | 3 | from Options import PerGameCommonOptions, Toggle, Choice, DefaultOnToggle, Range, OptionSet, FreeText |
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | class ShuffleDoors(DefaultOnToggle): | 6 | class ShuffleDoors(DefaultOnToggle): |
| @@ -44,6 +44,17 @@ class ShuffleLetters(Choice): | |||
| 44 | option_item_cyan = 4 | 44 | option_item_cyan = 4 |
| 45 | 45 | ||
| 46 | 46 | ||
| 47 | class RestrictLetterPlacements(Toggle): | ||
| 48 | """ | ||
| 49 | If enabled, letter items will be shuffled among letter locations in your local world. Shuffle Letters must be set to | ||
| 50 | Progressive or Item Cyan for this to be useful. | ||
| 51 | |||
| 52 | WARNING: This option may slow down generation. Additionally, it is only reliable with Shuffle Letters set to Item | ||
| 53 | Cyan. When set to Progressive, Shuffle Doors and Shuffle Symbols must be turned off. | ||
| 54 | """ | ||
| 55 | display_name = "Restrict Letter Placements" | ||
| 56 | |||
| 57 | |||
| 47 | class ShuffleSymbols(Toggle): | 58 | class ShuffleSymbols(Toggle): |
| 48 | """ | 59 | """ |
| 49 | If enabled, 19 items will be added to the pool, representing the different symbols that can appear on a panel. | 60 | If enabled, 19 items will be added to the pool, representing the different symbols that can appear on a panel. |
| @@ -91,6 +102,27 @@ class CyanDoorBehavior(Choice): | |||
| 91 | option_item = 2 | 102 | option_item = 2 |
| 92 | 103 | ||
| 93 | 104 | ||
| 105 | class ShuffleFastTravel(Toggle): | ||
| 106 | """If enabled, the list of maps you can fast travel to is randomized, except for The Entry, which is always | ||
| 107 | accessible.""" | ||
| 108 | display_name = "Shuffle Fast Travel" | ||
| 109 | |||
| 110 | |||
| 111 | class FastTravelAccess(Choice): | ||
| 112 | """ | ||
| 113 | Controls how the fast travel buttons on the pause menu work. | ||
| 114 | |||
| 115 | - **Vanilla**: You can only fast travel to maps once you have been to them and stepped foot in the general area that | ||
| 116 | the warp would place you. This option means that fast travel has no impact on logic. | ||
| 117 | - **Unlocked**: All five fast travel maps will be available from the start. | ||
| 118 | - **Items**: Only The Entry is available from the start. The other fast travel buttons are locked behind items. | ||
| 119 | """ | ||
| 120 | display_name = "Fast Travel Access" | ||
| 121 | option_vanilla = 0 | ||
| 122 | option_unlocked = 1 | ||
| 123 | option_items = 2 | ||
| 124 | |||
| 125 | |||
| 94 | class EnableIcarus(Toggle): | 126 | class EnableIcarus(Toggle): |
| 95 | """ | 127 | """ |
| 96 | Controls whether Icarus is randomized. If disabled, which is the default, no locations or items will be created for | 128 | Controls whether Icarus is randomized. If disabled, which is the default, no locations or items will be created for |
| @@ -146,6 +178,15 @@ class DaedalusRoofAccess(Toggle): | |||
| 146 | display_name = "Allow Daedalus Roof Access" | 178 | display_name = "Allow Daedalus Roof Access" |
| 147 | 179 | ||
| 148 | 180 | ||
| 181 | class CustomMintEnding(FreeText): | ||
| 182 | """ | ||
| 183 | If not blank, this will add a new panel that must be solved before collecting Mint Ending (EXIT in the Control | ||
| 184 | Center). The panel will only require typing the text provided for this option, which means the choice of letters | ||
| 185 | here has an impact on logic. | ||
| 186 | """ | ||
| 187 | display_name = "Custom Mint Ending" | ||
| 188 | |||
| 189 | |||
| 149 | class StrictPurpleEnding(DefaultOnToggle): | 190 | class StrictPurpleEnding(DefaultOnToggle): |
| 150 | """ | 191 | """ |
| 151 | If enabled, the player will be required to have all purple (level 1) letters in order to get Purple Ending. | 192 | If enabled, the player will be required to have all purple (level 1) letters in order to get Purple Ending. |
| @@ -224,23 +265,35 @@ class TrapPercentage(Range): | |||
| 224 | default = 0 | 265 | default = 0 |
| 225 | 266 | ||
| 226 | 267 | ||
| 268 | class ShuffleMusic(Toggle): | ||
| 269 | """ | ||
| 270 | If enabled, every map will be assigned a random music track. | ||
| 271 | """ | ||
| 272 | display_name = "Shuffle Music" | ||
| 273 | |||
| 274 | |||
| 227 | @dataclass | 275 | @dataclass |
| 228 | class Lingo2Options(PerGameCommonOptions): | 276 | class Lingo2Options(PerGameCommonOptions): |
| 229 | shuffle_doors: ShuffleDoors | 277 | shuffle_doors: ShuffleDoors |
| 230 | shuffle_control_center_colors: ShuffleControlCenterColors | 278 | shuffle_control_center_colors: ShuffleControlCenterColors |
| 231 | shuffle_gallery_paintings: ShuffleGalleryPaintings | 279 | shuffle_gallery_paintings: ShuffleGalleryPaintings |
| 232 | shuffle_letters: ShuffleLetters | 280 | shuffle_letters: ShuffleLetters |
| 281 | restrict_letter_placements: RestrictLetterPlacements | ||
| 233 | shuffle_symbols: ShuffleSymbols | 282 | shuffle_symbols: ShuffleSymbols |
| 234 | shuffle_worldports: ShuffleWorldports | 283 | shuffle_worldports: ShuffleWorldports |
| 235 | keyholder_sanity: KeyholderSanity | 284 | keyholder_sanity: KeyholderSanity |
| 236 | cyan_door_behavior: CyanDoorBehavior | 285 | cyan_door_behavior: CyanDoorBehavior |
| 286 | shuffle_fast_travel: ShuffleFastTravel | ||
| 287 | fast_travel_access: FastTravelAccess | ||
| 237 | enable_icarus: EnableIcarus | 288 | enable_icarus: EnableIcarus |
| 238 | enable_gift_maps: EnableGiftMaps | 289 | enable_gift_maps: EnableGiftMaps |
| 239 | daedalus_only: DaedalusOnly | 290 | daedalus_only: DaedalusOnly |
| 240 | daedalus_roof_access: DaedalusRoofAccess | 291 | daedalus_roof_access: DaedalusRoofAccess |
| 292 | custom_mint_ending: CustomMintEnding | ||
| 241 | strict_purple_ending: StrictPurpleEnding | 293 | strict_purple_ending: StrictPurpleEnding |
| 242 | strict_cyan_ending: StrictCyanEnding | 294 | strict_cyan_ending: StrictCyanEnding |
| 243 | victory_condition: VictoryCondition | 295 | victory_condition: VictoryCondition |
| 244 | endings_requirement: EndingsRequirement | 296 | endings_requirement: EndingsRequirement |
| 245 | masteries_requirement: MasteriesRequirement | 297 | masteries_requirement: MasteriesRequirement |
| 246 | trap_percentage: TrapPercentage | 298 | trap_percentage: TrapPercentage |
| 299 | shuffle_music: ShuffleMusic | ||
