127 lines
4.4 KiB
Python
127 lines
4.4 KiB
Python
from dataclasses import dataclass
|
|
|
|
from Options import Toggle, Choice, DefaultOnToggle, Range, PerGameCommonOptions
|
|
|
|
|
|
class ShuffleDoors(Choice):
|
|
"""If on, opening doors will require their respective "keys".
|
|
In "simple", doors are sorted into logical groups, which are all opened by receiving an item.
|
|
In "complex", the items are much more granular, and will usually only open a single door each."""
|
|
display_name = "Shuffle Doors"
|
|
option_none = 0
|
|
option_simple = 1
|
|
option_complex = 2
|
|
|
|
|
|
class ProgressiveOrangeTower(DefaultOnToggle):
|
|
"""When "Shuffle Doors" is on, this setting governs the manner in which the Orange Tower floors open up.
|
|
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.
|
|
If on, there are six progressive items, which open up the tower from the bottom floor upward.
|
|
"""
|
|
display_name = "Progressive Orange Tower"
|
|
|
|
|
|
class LocationChecks(Choice):
|
|
"""On "normal", there will be a location check for each panel set that would ordinarily open a door, as well as for
|
|
achievement panels and a small handful of other panels.
|
|
On "reduced", many of the locations that are associated with opening doors are removed.
|
|
On "insanity", every individual panel in the game is a location check."""
|
|
display_name = "Location Checks"
|
|
option_normal = 0
|
|
option_reduced = 1
|
|
option_insanity = 2
|
|
|
|
|
|
class ShuffleColors(Toggle):
|
|
"""If on, an item is added to the pool for every puzzle color (besides White).
|
|
You will need to unlock the requisite colors in order to be able to solve puzzles of that color."""
|
|
display_name = "Shuffle Colors"
|
|
|
|
|
|
class ShufflePanels(Choice):
|
|
"""If on, the puzzles on each panel are randomized.
|
|
On "rearrange", the puzzles are the same as the ones in the base game, but are placed in different areas."""
|
|
display_name = "Shuffle Panels"
|
|
option_none = 0
|
|
option_rearrange = 1
|
|
|
|
|
|
class ShufflePaintings(Toggle):
|
|
"""If on, the destination, location, and appearance of the painting warps in the game will be randomized."""
|
|
display_name = "Shuffle Paintings"
|
|
|
|
|
|
class VictoryCondition(Choice):
|
|
"""Change the victory condition."""
|
|
display_name = "Victory Condition"
|
|
option_the_end = 0
|
|
option_the_master = 1
|
|
option_level_2 = 2
|
|
|
|
|
|
class MasteryAchievements(Range):
|
|
"""The number of achievements required to unlock THE MASTER.
|
|
In the base game, 21 achievements are needed.
|
|
If you include The Scientific and The Unchallenged, which are in the base game but are not counted for mastery, 23 would be required.
|
|
If you include the custom achievement (The Wanderer), 24 would be required.
|
|
"""
|
|
display_name = "Mastery Achievements"
|
|
range_start = 1
|
|
range_end = 24
|
|
default = 21
|
|
|
|
|
|
class Level2Requirement(Range):
|
|
"""The number of panel solves required to unlock LEVEL 2.
|
|
In the base game, 223 are needed.
|
|
Note that this count includes ANOTHER TRY.
|
|
"""
|
|
display_name = "Level 2 Requirement"
|
|
range_start = 2
|
|
range_end = 800
|
|
default = 223
|
|
|
|
|
|
class EarlyColorHallways(Toggle):
|
|
"""When on, a painting warp to the color hallways area will appear in the starting room.
|
|
This lets you avoid being trapped in the starting room for long periods of time when door shuffle is on."""
|
|
display_name = "Early Color Hallways"
|
|
|
|
|
|
class TrapPercentage(Range):
|
|
"""Replaces junk items with traps, at the specified rate."""
|
|
display_name = "Trap Percentage"
|
|
range_start = 0
|
|
range_end = 100
|
|
default = 20
|
|
|
|
|
|
class PuzzleSkipPercentage(Range):
|
|
"""Replaces junk items with puzzle skips, at the specified rate."""
|
|
display_name = "Puzzle Skip Percentage"
|
|
range_start = 0
|
|
range_end = 100
|
|
default = 20
|
|
|
|
|
|
class DeathLink(Toggle):
|
|
"""If on: Whenever another player on death link dies, you will be returned to the starting room."""
|
|
display_name = "Death Link"
|
|
|
|
|
|
@dataclass
|
|
class LingoOptions(PerGameCommonOptions):
|
|
shuffle_doors: ShuffleDoors
|
|
progressive_orange_tower: ProgressiveOrangeTower
|
|
location_checks: LocationChecks
|
|
shuffle_colors: ShuffleColors
|
|
shuffle_panels: ShufflePanels
|
|
shuffle_paintings: ShufflePaintings
|
|
victory_condition: VictoryCondition
|
|
mastery_achievements: MasteryAchievements
|
|
level_2_requirement: Level2Requirement
|
|
early_color_hallways: EarlyColorHallways
|
|
trap_percentage: TrapPercentage
|
|
puzzle_skip_percentage: PuzzleSkipPercentage
|
|
death_link: DeathLink
|