about summary refs log tree commit diff stats
path: root/apworld/options.py
diff options
context:
space:
mode:
Diffstat (limited to 'apworld/options.py')
-rw-r--r--apworld/options.py32
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 @@
1from dataclasses import dataclass 1from dataclasses import dataclass
2 2
3from Options import PerGameCommonOptions, Toggle, Choice, DefaultOnToggle, Range, OptionSet 3from Options import PerGameCommonOptions, Toggle, Choice, DefaultOnToggle, Range, OptionSet, FreeText
4 4
5 5
6class ShuffleDoors(DefaultOnToggle): 6class ShuffleDoors(DefaultOnToggle):
@@ -44,6 +44,17 @@ class ShuffleLetters(Choice):
44 option_item_cyan = 4 44 option_item_cyan = 4
45 45
46 46
47class 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
47class ShuffleSymbols(Toggle): 58class 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
181class 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
170class StrictPurpleEnding(DefaultOnToggle): 190class 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
268class 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
249class Lingo2Options(PerGameCommonOptions): 276class 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