diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2023-11-08 18:35:12 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-08 17:35:12 -0600 |
| commit | bbbbc71bee25cfd22c5304f98f5a7881383585a3 (patch) | |
| tree | d27581db7b8db03da4b731fe8c2d5072d3162cf8 /options.py | |
| download | lingo-apworld-bbbbc71bee25cfd22c5304f98f5a7881383585a3.tar.gz lingo-apworld-bbbbc71bee25cfd22c5304f98f5a7881383585a3.tar.bz2 lingo-apworld-bbbbc71bee25cfd22c5304f98f5a7881383585a3.zip | |
Lingo: New game (#1806)
Co-authored-by: Aaron Wagener <mmmcheese158@gmail.com> Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com> Co-authored-by: Phar <zach@alliware.com>
Diffstat (limited to 'options.py')
| -rw-r--r-- | options.py | 126 |
1 files changed, 126 insertions, 0 deletions
| diff --git a/options.py b/options.py new file mode 100644 index 0000000..7dc6a13 --- /dev/null +++ b/options.py | |||
| @@ -0,0 +1,126 @@ | |||
| 1 | from dataclasses import dataclass | ||
| 2 | |||
| 3 | from Options import Toggle, Choice, DefaultOnToggle, Range, PerGameCommonOptions | ||
| 4 | |||
| 5 | |||
| 6 | class ShuffleDoors(Choice): | ||
| 7 | """If on, opening doors will require their respective "keys". | ||
| 8 | In "simple", doors are sorted into logical groups, which are all opened by receiving an item. | ||
| 9 | In "complex", the items are much more granular, and will usually only open a single door each.""" | ||
| 10 | display_name = "Shuffle Doors" | ||
| 11 | option_none = 0 | ||
| 12 | option_simple = 1 | ||
| 13 | option_complex = 2 | ||
| 14 | |||
| 15 | |||
| 16 | class ProgressiveOrangeTower(DefaultOnToggle): | ||
| 17 | """When "Shuffle Doors" is on, this setting governs the manner in which the Orange Tower floors open up. | ||
| 18 | If off, there is an item for each floor of the tower, and each floor's item is the only one needed to access that floor. | ||
| 19 | If on, there are six progressive items, which open up the tower from the bottom floor upward. | ||
| 20 | """ | ||
| 21 | display_name = "Progressive Orange Tower" | ||
| 22 | |||
| 23 | |||
| 24 | class LocationChecks(Choice): | ||
| 25 | """On "normal", there will be a location check for each panel set that would ordinarily open a door, as well as for | ||
| 26 | achievement panels and a small handful of other panels. | ||
| 27 | On "reduced", many of the locations that are associated with opening doors are removed. | ||
| 28 | On "insanity", every individual panel in the game is a location check.""" | ||
| 29 | display_name = "Location Checks" | ||
| 30 | option_normal = 0 | ||
| 31 | option_reduced = 1 | ||
| 32 | option_insanity = 2 | ||
| 33 | |||
| 34 | |||
| 35 | class ShuffleColors(Toggle): | ||
| 36 | """If on, an item is added to the pool for every puzzle color (besides White). | ||
| 37 | You will need to unlock the requisite colors in order to be able to solve puzzles of that color.""" | ||
| 38 | display_name = "Shuffle Colors" | ||
| 39 | |||
| 40 | |||
| 41 | class ShufflePanels(Choice): | ||
| 42 | """If on, the puzzles on each panel are randomized. | ||
| 43 | On "rearrange", the puzzles are the same as the ones in the base game, but are placed in different areas.""" | ||
| 44 | display_name = "Shuffle Panels" | ||
| 45 | option_none = 0 | ||
| 46 | option_rearrange = 1 | ||
| 47 | |||
| 48 | |||
| 49 | class ShufflePaintings(Toggle): | ||
| 50 | """If on, the destination, location, and appearance of the painting warps in the game will be randomized.""" | ||
| 51 | display_name = "Shuffle Paintings" | ||
| 52 | |||
| 53 | |||
| 54 | class VictoryCondition(Choice): | ||
| 55 | """Change the victory condition.""" | ||
| 56 | display_name = "Victory Condition" | ||
| 57 | option_the_end = 0 | ||
| 58 | option_the_master = 1 | ||
| 59 | option_level_2 = 2 | ||
| 60 | |||
| 61 | |||
| 62 | class MasteryAchievements(Range): | ||
| 63 | """The number of achievements required to unlock THE MASTER. | ||
| 64 | In the base game, 21 achievements are needed. | ||
| 65 | If you include The Scientific and The Unchallenged, which are in the base game but are not counted for mastery, 23 would be required. | ||
| 66 | If you include the custom achievement (The Wanderer), 24 would be required. | ||
| 67 | """ | ||
| 68 | display_name = "Mastery Achievements" | ||
| 69 | range_start = 1 | ||
| 70 | range_end = 24 | ||
| 71 | default = 21 | ||
| 72 | |||
| 73 | |||
| 74 | class Level2Requirement(Range): | ||
| 75 | """The number of panel solves required to unlock LEVEL 2. | ||
| 76 | In the base game, 223 are needed. | ||
| 77 | Note that this count includes ANOTHER TRY. | ||
| 78 | """ | ||
| 79 | display_name = "Level 2 Requirement" | ||
| 80 | range_start = 2 | ||
| 81 | range_end = 800 | ||
| 82 | default = 223 | ||
| 83 | |||
| 84 | |||
| 85 | class EarlyColorHallways(Toggle): | ||
| 86 | """When on, a painting warp to the color hallways area will appear in the starting room. | ||
| 87 | This lets you avoid being trapped in the starting room for long periods of time when door shuffle is on.""" | ||
| 88 | display_name = "Early Color Hallways" | ||
| 89 | |||
| 90 | |||
| 91 | class TrapPercentage(Range): | ||
| 92 | """Replaces junk items with traps, at the specified rate.""" | ||
| 93 | display_name = "Trap Percentage" | ||
| 94 | range_start = 0 | ||
| 95 | range_end = 100 | ||
| 96 | default = 20 | ||
| 97 | |||
| 98 | |||
| 99 | class PuzzleSkipPercentage(Range): | ||
| 100 | """Replaces junk items with puzzle skips, at the specified rate.""" | ||
| 101 | display_name = "Puzzle Skip Percentage" | ||
| 102 | range_start = 0 | ||
| 103 | range_end = 100 | ||
| 104 | default = 20 | ||
| 105 | |||
| 106 | |||
| 107 | class DeathLink(Toggle): | ||
| 108 | """If on: Whenever another player on death link dies, you will be returned to the starting room.""" | ||
| 109 | display_name = "Death Link" | ||
| 110 | |||
| 111 | |||
| 112 | @dataclass | ||
| 113 | class LingoOptions(PerGameCommonOptions): | ||
| 114 | shuffle_doors: ShuffleDoors | ||
| 115 | progressive_orange_tower: ProgressiveOrangeTower | ||
| 116 | location_checks: LocationChecks | ||
| 117 | shuffle_colors: ShuffleColors | ||
| 118 | shuffle_panels: ShufflePanels | ||
| 119 | shuffle_paintings: ShufflePaintings | ||
| 120 | victory_condition: VictoryCondition | ||
| 121 | mastery_achievements: MasteryAchievements | ||
| 122 | level_2_requirement: Level2Requirement | ||
| 123 | early_color_hallways: EarlyColorHallways | ||
| 124 | trap_percentage: TrapPercentage | ||
| 125 | puzzle_skip_percentage: PuzzleSkipPercentage | ||
| 126 | death_link: DeathLink | ||
