diff options
Diffstat (limited to 'apworld/options.py')
| -rw-r--r-- | apworld/options.py | 32 |
1 files changed, 31 insertions, 1 deletions
| diff --git a/apworld/options.py b/apworld/options.py index 063af21..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. |
| @@ -167,6 +178,15 @@ class DaedalusRoofAccess(Toggle): | |||
| 167 | display_name = "Allow Daedalus Roof Access" | 178 | display_name = "Allow Daedalus Roof Access" |
| 168 | 179 | ||
| 169 | 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 | |||
| 170 | class StrictPurpleEnding(DefaultOnToggle): | 190 | class StrictPurpleEnding(DefaultOnToggle): |
| 171 | """ | 191 | """ |
| 172 | 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. |
| @@ -245,12 +265,20 @@ class TrapPercentage(Range): | |||
| 245 | default = 0 | 265 | default = 0 |
| 246 | 266 | ||
| 247 | 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 | |||
| 248 | @dataclass | 275 | @dataclass |
| 249 | class Lingo2Options(PerGameCommonOptions): | 276 | class Lingo2Options(PerGameCommonOptions): |
| 250 | shuffle_doors: ShuffleDoors | 277 | shuffle_doors: ShuffleDoors |
| 251 | shuffle_control_center_colors: ShuffleControlCenterColors | 278 | shuffle_control_center_colors: ShuffleControlCenterColors |
| 252 | shuffle_gallery_paintings: ShuffleGalleryPaintings | 279 | shuffle_gallery_paintings: ShuffleGalleryPaintings |
| 253 | shuffle_letters: ShuffleLetters | 280 | shuffle_letters: ShuffleLetters |
| 281 | restrict_letter_placements: RestrictLetterPlacements | ||
| 254 | shuffle_symbols: ShuffleSymbols | 282 | shuffle_symbols: ShuffleSymbols |
| 255 | shuffle_worldports: ShuffleWorldports | 283 | shuffle_worldports: ShuffleWorldports |
| 256 | keyholder_sanity: KeyholderSanity | 284 | keyholder_sanity: KeyholderSanity |
| @@ -261,9 +289,11 @@ class Lingo2Options(PerGameCommonOptions): | |||
| 261 | enable_gift_maps: EnableGiftMaps | 289 | enable_gift_maps: EnableGiftMaps |
| 262 | daedalus_only: DaedalusOnly | 290 | daedalus_only: DaedalusOnly |
| 263 | daedalus_roof_access: DaedalusRoofAccess | 291 | daedalus_roof_access: DaedalusRoofAccess |
| 292 | custom_mint_ending: CustomMintEnding | ||
| 264 | strict_purple_ending: StrictPurpleEnding | 293 | strict_purple_ending: StrictPurpleEnding |
| 265 | strict_cyan_ending: StrictCyanEnding | 294 | strict_cyan_ending: StrictCyanEnding |
| 266 | victory_condition: VictoryCondition | 295 | victory_condition: VictoryCondition |
| 267 | endings_requirement: EndingsRequirement | 296 | endings_requirement: EndingsRequirement |
| 268 | masteries_requirement: MasteriesRequirement | 297 | masteries_requirement: MasteriesRequirement |
| 269 | trap_percentage: TrapPercentage | 298 | trap_percentage: TrapPercentage |
| 299 | shuffle_music: ShuffleMusic | ||
