The Witness: Fix newlines in Witness option tooltips (#2971)
This commit is contained in:
parent
14816743fc
commit
43084da23c
|
@ -8,19 +8,23 @@ from .static_logic import WeightedItemDefinition, ItemCategory, StaticWitnessLog
|
||||||
|
|
||||||
|
|
||||||
class DisableNonRandomizedPuzzles(Toggle):
|
class DisableNonRandomizedPuzzles(Toggle):
|
||||||
"""Disables puzzles that cannot be randomized.
|
"""
|
||||||
|
Disables puzzles that cannot be randomized.
|
||||||
This includes many puzzles that heavily involve the environment, such as Shadows, Monastery or Orchard.
|
This includes many puzzles that heavily involve the environment, such as Shadows, Monastery or Orchard.
|
||||||
|
|
||||||
The lasers for those areas will activate as you solve optional puzzles, such as Discarded Panels.
|
The lasers for those areas will activate as you solve optional puzzles, such as Discarded Panels.
|
||||||
Additionally, the panels activating Monastery Laser and Jungle Popup Wall will be on from the start."""
|
Additionally, the panel activating the Jungle Popup Wall will be on from the start.
|
||||||
|
"""
|
||||||
display_name = "Disable non randomized puzzles"
|
display_name = "Disable non randomized puzzles"
|
||||||
|
|
||||||
|
|
||||||
class EarlyCaves(Choice):
|
class EarlyCaves(Choice):
|
||||||
"""Adds an item that opens the Caves Shortcuts to Swamp and Mountain,
|
"""
|
||||||
allowing early access to the Caves even if you are not playing a remote Door Shuffle mode.
|
Adds an item that opens the Caves Shortcuts to Swamp and Mountain, allowing early access to the Caves even if you are not playing a remote Door Shuffle mode.
|
||||||
You can either add this item to the pool to be found on one of your randomized checks,
|
You can either add this item to the pool to be found in the multiworld, or you can outright start with it and have immediate access to the Caves.
|
||||||
or you can outright start with it and have immediate access to the Caves.
|
|
||||||
If you choose "add_to_pool" and you are already playing a remote Door Shuffle mode, this setting will do nothing."""
|
If you choose "Add To Pool" and you are already playing a remote Door Shuffle mode, this option will do nothing.
|
||||||
|
"""
|
||||||
display_name = "Early Caves"
|
display_name = "Early Caves"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
alias_false = 0
|
alias_false = 0
|
||||||
|
@ -31,15 +35,19 @@ class EarlyCaves(Choice):
|
||||||
|
|
||||||
|
|
||||||
class ShuffleSymbols(DefaultOnToggle):
|
class ShuffleSymbols(DefaultOnToggle):
|
||||||
"""You will need to unlock puzzle symbols as items to be able to solve the panels that contain those symbols.
|
"""
|
||||||
If you turn this off, there will be no progression items in the game unless you turn on door shuffle."""
|
If on, you will need to unlock puzzle symbols as items to be able to solve the panels that contain those symbols.
|
||||||
|
|
||||||
|
Please note that there is no minimum set of progression items in this randomizer.
|
||||||
|
If you turn this option off and don't turn on door shuffle or obelisk keys, there will be no progression items, which will disallow you from adding your yaml to a multiworld generation.
|
||||||
|
"""
|
||||||
display_name = "Shuffle Symbols"
|
display_name = "Shuffle Symbols"
|
||||||
|
|
||||||
|
|
||||||
class ShuffleLasers(Choice):
|
class ShuffleLasers(Choice):
|
||||||
"""If on, the 11 lasers are turned into items and will activate on their own upon receiving them.
|
"""
|
||||||
Note: There is a visual bug that can occur with the Desert Laser. It does not affect gameplay - The Laser can still
|
If on, the 11 lasers are turned into items and will activate on their own upon receiving them.
|
||||||
be redirected as normal, for both applications of redirection."""
|
"""
|
||||||
display_name = "Shuffle Lasers"
|
display_name = "Shuffle Lasers"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
alias_false = 0
|
alias_false = 0
|
||||||
|
@ -50,10 +58,12 @@ class ShuffleLasers(Choice):
|
||||||
|
|
||||||
|
|
||||||
class ShuffleDoors(Choice):
|
class ShuffleDoors(Choice):
|
||||||
"""If on, opening doors, moving bridges etc. will require a "key".
|
"""
|
||||||
|
If on, opening doors, moving bridges etc. will require a "key".
|
||||||
If set to "panels", the panel on the door will be locked until receiving its corresponding key.
|
If set to "panels", the panel on the door will be locked until receiving its corresponding key.
|
||||||
If set to "doors", the door will open immediately upon receiving its key. Door panels are added as location checks.
|
If set to "doors", the door will open immediately upon receiving its key. Door panels are added as location checks.
|
||||||
"Mixed" includes all doors from "doors", and all control panels (bridges, elevators etc.) from "panels"."""
|
"Mixed" includes all doors from "doors", and all control panels (bridges, elevators etc.) from "panels".
|
||||||
|
"""
|
||||||
display_name = "Shuffle Doors"
|
display_name = "Shuffle Doors"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
option_panels = 1
|
option_panels = 1
|
||||||
|
@ -62,38 +72,45 @@ class ShuffleDoors(Choice):
|
||||||
|
|
||||||
|
|
||||||
class DoorGroupings(Choice):
|
class DoorGroupings(Choice):
|
||||||
"""If set to "none", there will be one key for every door, resulting in up to 120 keys being added to the item pool.
|
"""
|
||||||
If set to "regional", all doors in the same general region will open at once with a single key,
|
If set to "none", there will be one key for each door, potentially resulting in upwards of 120 keys being added to the item pool.
|
||||||
reducing the amount of door items and complexity."""
|
If set to "regional", all doors in the same general region will open at once with a single key, reducing the amount of door items and complexity.
|
||||||
|
"""
|
||||||
display_name = "Door Groupings"
|
display_name = "Door Groupings"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
option_regional = 1
|
option_regional = 1
|
||||||
|
|
||||||
|
|
||||||
class ShuffleBoat(DefaultOnToggle):
|
class ShuffleBoat(DefaultOnToggle):
|
||||||
"""If set, adds a "Boat" item to the item pool. Before receiving this item, you will not be able to use the boat."""
|
"""
|
||||||
|
If on, adds a "Boat" item to the item pool. Before receiving this item, you will not be able to use the boat.
|
||||||
|
"""
|
||||||
display_name = "Shuffle Boat"
|
display_name = "Shuffle Boat"
|
||||||
|
|
||||||
|
|
||||||
class ShuffleDiscardedPanels(Toggle):
|
class ShuffleDiscardedPanels(Toggle):
|
||||||
"""Add Discarded Panels into the location pool.
|
"""
|
||||||
Solving certain Discarded Panels may still be necessary to beat the game, even if this is off - The main example
|
Adds Discarded Panels into the location pool.
|
||||||
of this being the alternate activation triggers in disable_non_randomized."""
|
|
||||||
|
|
||||||
|
Even if this is off, solving certain Discarded Panels may still be necessary to beat the game - The main example of this being the alternate activation triggers in "Disable non randomized puzzles".
|
||||||
|
"""
|
||||||
display_name = "Shuffle Discarded Panels"
|
display_name = "Shuffle Discarded Panels"
|
||||||
|
|
||||||
|
|
||||||
class ShuffleVaultBoxes(Toggle):
|
class ShuffleVaultBoxes(Toggle):
|
||||||
"""Add Vault Boxes to the location pool."""
|
"""
|
||||||
|
Adds Vault Boxes to the location pool.
|
||||||
|
"""
|
||||||
display_name = "Shuffle Vault Boxes"
|
display_name = "Shuffle Vault Boxes"
|
||||||
|
|
||||||
|
|
||||||
class ShuffleEnvironmentalPuzzles(Choice):
|
class ShuffleEnvironmentalPuzzles(Choice):
|
||||||
"""
|
"""
|
||||||
Add Environmental/Obelisk Puzzles into the location pool.
|
Adds Environmental/Obelisk Puzzles into the location pool.
|
||||||
In "individual", every Environmental Puzzle sends an item.
|
If set to "individual", every Environmental Puzzle sends an item.
|
||||||
In "obelisk_sides", completing every puzzle on one side of an Obelisk sends an item.
|
If set to "Obelisk Sides", completing every puzzle on one side of an Obelisk sends an item.
|
||||||
Note: In Obelisk Sides, any EPs excluded through another setting will be counted as pre-completed on their Obelisk.
|
|
||||||
|
Note: In Obelisk Sides, any EPs excluded through another option will be pre-completed on their Obelisk.
|
||||||
"""
|
"""
|
||||||
display_name = "Shuffle Environmental Puzzles"
|
display_name = "Shuffle Environmental Puzzles"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
|
@ -102,17 +119,18 @@ class ShuffleEnvironmentalPuzzles(Choice):
|
||||||
|
|
||||||
|
|
||||||
class ShuffleDog(Toggle):
|
class ShuffleDog(Toggle):
|
||||||
"""Add petting the Town dog into the location pool."""
|
"""
|
||||||
|
Adds petting the Town dog into the location pool.
|
||||||
|
"""
|
||||||
display_name = "Pet the Dog"
|
display_name = "Pet the Dog"
|
||||||
|
|
||||||
|
|
||||||
class EnvironmentalPuzzlesDifficulty(Choice):
|
class EnvironmentalPuzzlesDifficulty(Choice):
|
||||||
"""
|
"""
|
||||||
When "Shuffle Environmental Puzzles" is on, this setting governs which EPs are eligible for the location pool.
|
When "Shuffle Environmental Puzzles" is on, this setting governs which EPs are eligible for the location pool.
|
||||||
On "eclipse", every EP in the game is eligible, including the 1-hour-long "Theater Eclipse EP".
|
If set to "eclipse", every EP in the game is eligible, including the 1-hour-long "Theater Eclipse EP".
|
||||||
On "tedious", Theater Eclipse EP is excluded from the location pool.
|
If set to "tedious", Theater Eclipse EP is excluded from the location pool.
|
||||||
On "normal", several other difficult or long EPs are excluded as well.
|
If set to "normal", several other difficult or long EPs are excluded as well.
|
||||||
"""
|
"""
|
||||||
display_name = "Environmental Puzzles Difficulty"
|
display_name = "Environmental Puzzles Difficulty"
|
||||||
option_normal = 0
|
option_normal = 0
|
||||||
|
@ -123,26 +141,31 @@ class EnvironmentalPuzzlesDifficulty(Choice):
|
||||||
class ObeliskKeys(DefaultOnToggle):
|
class ObeliskKeys(DefaultOnToggle):
|
||||||
"""
|
"""
|
||||||
Add one Obelisk Key item per Obelisk, locking you out of solving any of the associated Environmental Puzzles.
|
Add one Obelisk Key item per Obelisk, locking you out of solving any of the associated Environmental Puzzles.
|
||||||
|
|
||||||
Does nothing if "Shuffle Environmental Puzzles" is set to "off".
|
Does nothing if "Shuffle Environmental Puzzles" is set to "off".
|
||||||
"""
|
"""
|
||||||
display_name = "Obelisk Keys"
|
display_name = "Obelisk Keys"
|
||||||
|
|
||||||
|
|
||||||
class ShufflePostgame(Toggle):
|
class ShufflePostgame(Toggle):
|
||||||
"""Adds locations into the pool that are guaranteed to become accessible after or at the same time as your goal.
|
"""
|
||||||
Use this if you don't play with release on victory. IMPORTANT NOTE: The possibility of your second
|
Adds locations into the pool that are guaranteed to become accessible after or at the same time as your goal.
|
||||||
"Progressive Dots" showing up in the Caves is ignored, they will still be considered "postgame" in base settings."""
|
Use this if you don't play with release on victory.
|
||||||
|
"""
|
||||||
display_name = "Shuffle Postgame"
|
display_name = "Shuffle Postgame"
|
||||||
|
|
||||||
|
|
||||||
class VictoryCondition(Choice):
|
class VictoryCondition(Choice):
|
||||||
"""Set the victory condition for this world.
|
"""
|
||||||
|
Set the victory condition for this world.
|
||||||
Elevator: Start the elevator at the bottom of the mountain (requires Mountain Lasers).
|
Elevator: Start the elevator at the bottom of the mountain (requires Mountain Lasers).
|
||||||
Challenge: Beat the secret Challenge (requires Challenge Lasers).
|
Challenge: Beat the secret Challenge (requires Challenge Lasers).
|
||||||
Mountain Box Short: Input the short solution to the Mountaintop Box (requires Mountain Lasers).
|
Mountain Box Short: Input the short solution to the Mountaintop Box (requires Mountain Lasers).
|
||||||
Mountain Box Long: Input the long solution to the Mountaintop Box (requires Challenge Lasers).
|
Mountain Box Long: Input the long solution to the Mountaintop Box (requires Challenge Lasers).
|
||||||
|
|
||||||
It is important to note that while the Mountain Box requires Desert Laser to be redirected in Town for that laser
|
It is important to note that while the Mountain Box requires Desert Laser to be redirected in Town for that laser
|
||||||
to count, the laser locks on the Elevator and Challenge Timer panels do not."""
|
to count, the laser locks on the Elevator and Challenge Timer panels do not.
|
||||||
|
"""
|
||||||
display_name = "Victory Condition"
|
display_name = "Victory Condition"
|
||||||
option_elevator = 0
|
option_elevator = 0
|
||||||
option_challenge = 1
|
option_challenge = 1
|
||||||
|
@ -151,7 +174,9 @@ class VictoryCondition(Choice):
|
||||||
|
|
||||||
|
|
||||||
class PuzzleRandomization(Choice):
|
class PuzzleRandomization(Choice):
|
||||||
"""Puzzles in this randomizer are randomly generated. This setting changes the difficulty/types of puzzles."""
|
"""
|
||||||
|
Puzzles in this randomizer are randomly generated. This option changes the difficulty/types of puzzles.
|
||||||
|
"""
|
||||||
display_name = "Puzzle Randomization"
|
display_name = "Puzzle Randomization"
|
||||||
option_sigma_normal = 0
|
option_sigma_normal = 0
|
||||||
option_sigma_expert = 1
|
option_sigma_expert = 1
|
||||||
|
@ -159,10 +184,11 @@ class PuzzleRandomization(Choice):
|
||||||
|
|
||||||
|
|
||||||
class MountainLasers(Range):
|
class MountainLasers(Range):
|
||||||
"""Sets the amount of lasers required to enter the Mountain.
|
"""
|
||||||
If set to a higher amount than 7, the mountaintop box will be slightly rotated to make it possible to solve without
|
Sets the number of lasers required to enter the Mountain.
|
||||||
the hatch being opened.
|
If set to a higher number than 7, the mountaintop box will be slightly rotated to make it possible to solve without the hatch being opened.
|
||||||
This change will also be applied logically to the long solution ("Challenge Lasers" setting)."""
|
This change will also be applied logically to the long solution ("Challenge Lasers" option).
|
||||||
|
"""
|
||||||
display_name = "Required Lasers for Mountain Entry"
|
display_name = "Required Lasers for Mountain Entry"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 11
|
range_end = 11
|
||||||
|
@ -170,7 +196,9 @@ class MountainLasers(Range):
|
||||||
|
|
||||||
|
|
||||||
class ChallengeLasers(Range):
|
class ChallengeLasers(Range):
|
||||||
"""Sets the amount of beams required to enter the Caves through the Mountain Bottom Floor Discard."""
|
"""
|
||||||
|
Sets the number of lasers required to enter the Caves through the Mountain Bottom Floor Discard and to unlock the Challenge Timer Panel.
|
||||||
|
"""
|
||||||
display_name = "Required Lasers for Challenge"
|
display_name = "Required Lasers for Challenge"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 11
|
range_end = 11
|
||||||
|
@ -178,13 +206,17 @@ class ChallengeLasers(Range):
|
||||||
|
|
||||||
|
|
||||||
class ElevatorsComeToYou(Toggle):
|
class ElevatorsComeToYou(Toggle):
|
||||||
"""If true, the Quarry Elevator, Bunker Elevator and Swamp Long Bridge will "come to you" if you approach them.
|
"""
|
||||||
This does actually affect logic as it allows unintended backwards / early access into these areas."""
|
If on, the Quarry Elevator, Bunker Elevator and Swamp Long Bridge will "come to you" if you approach them.
|
||||||
|
This does actually affect logic as it allows unintended backwards / early access into these areas.
|
||||||
|
"""
|
||||||
display_name = "All Bridges & Elevators come to you"
|
display_name = "All Bridges & Elevators come to you"
|
||||||
|
|
||||||
|
|
||||||
class TrapPercentage(Range):
|
class TrapPercentage(Range):
|
||||||
"""Replaces junk items with traps, at the specified rate."""
|
"""
|
||||||
|
Replaces junk items with traps, at the specified rate.
|
||||||
|
"""
|
||||||
display_name = "Trap Percentage"
|
display_name = "Trap Percentage"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
|
@ -192,10 +224,11 @@ class TrapPercentage(Range):
|
||||||
|
|
||||||
|
|
||||||
class TrapWeights(OptionDict):
|
class TrapWeights(OptionDict):
|
||||||
"""Specify the weights determining how many copies of each trap item will be in your itempool.
|
"""
|
||||||
|
Specify the weights determining how many copies of each trap item will be in your itempool.
|
||||||
If you don't want a specific type of trap, you can set the weight for it to 0 (Do not delete the entry outright!).
|
If you don't want a specific type of trap, you can set the weight for it to 0 (Do not delete the entry outright!).
|
||||||
If you set all trap weights to 0, you will get no traps, bypassing the "Trap Percentage" option."""
|
If you set all trap weights to 0, you will get no traps, bypassing the "Trap Percentage" option.
|
||||||
|
"""
|
||||||
display_name = "Trap Weights"
|
display_name = "Trap Weights"
|
||||||
schema = Schema({
|
schema = Schema({
|
||||||
trap_name: And(int, lambda n: n >= 0)
|
trap_name: And(int, lambda n: n >= 0)
|
||||||
|
@ -210,8 +243,9 @@ class TrapWeights(OptionDict):
|
||||||
|
|
||||||
|
|
||||||
class PuzzleSkipAmount(Range):
|
class PuzzleSkipAmount(Range):
|
||||||
"""Adds this number of Puzzle Skips into the pool, if there is room. Puzzle Skips let you skip one panel.
|
"""
|
||||||
Works on most panels in the game - The only big exception is The Challenge."""
|
Adds this many Puzzle Skips into the pool, if there is room. Puzzle Skips let you skip one panel.
|
||||||
|
"""
|
||||||
display_name = "Puzzle Skips"
|
display_name = "Puzzle Skips"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 30
|
range_end = 30
|
||||||
|
@ -219,8 +253,10 @@ class PuzzleSkipAmount(Range):
|
||||||
|
|
||||||
|
|
||||||
class HintAmount(Range):
|
class HintAmount(Range):
|
||||||
"""Adds hints to Audio Logs. If set to a low amount, up to 2 additional duplicates of each hint will be added.
|
"""
|
||||||
Remaining Audio Logs will have junk hints."""
|
Adds hints to Audio Logs. If set to a low amount, up to 2 additional duplicates of each hint will be added.
|
||||||
|
Remaining Audio Logs will have junk hints.
|
||||||
|
"""
|
||||||
display_name = "Hints on Audio Logs"
|
display_name = "Hints on Audio Logs"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 49
|
range_end = 49
|
||||||
|
@ -228,11 +264,12 @@ class HintAmount(Range):
|
||||||
|
|
||||||
|
|
||||||
class AreaHintPercentage(Range):
|
class AreaHintPercentage(Range):
|
||||||
"""There are two types of hints for The Witness.
|
"""
|
||||||
"Location hints" hint one location in your world / containing an item for your world.
|
There are two types of hints for The Witness.
|
||||||
"Area hints" will tell you some general info about the items you can find in one of the
|
"Location hints" hint one location in your world or one location containing an item for your world.
|
||||||
main geographic areas on the island.
|
"Area hints" tell you some general info about the items you can find in one of the main geographic areas on the island.
|
||||||
Use this option to specify how many of your hints you want to be area hints. The rest will be location hints."""
|
Use this option to specify how many of your hints you want to be area hints. The rest will be location hints.
|
||||||
|
"""
|
||||||
display_name = "Area Hint Percentage"
|
display_name = "Area Hint Percentage"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
|
@ -240,20 +277,26 @@ class AreaHintPercentage(Range):
|
||||||
|
|
||||||
|
|
||||||
class LaserHints(Toggle):
|
class LaserHints(Toggle):
|
||||||
"""If on, lasers will tell you where their items are if you walk close to them in-game.
|
"""
|
||||||
Only applies if laser shuffle is enabled."""
|
If on, lasers will tell you where their items are if you walk close to them in-game.
|
||||||
|
Only applies if Laser Shuffle is enabled.
|
||||||
|
"""
|
||||||
display_name = "Laser Hints"
|
display_name = "Laser Hints"
|
||||||
|
|
||||||
|
|
||||||
class DeathLink(Toggle):
|
class DeathLink(Toggle):
|
||||||
"""If on: Whenever you fail a puzzle (with some exceptions), everyone who is also on Death Link dies.
|
"""
|
||||||
The effect of a "death" in The Witness is a Bonk Trap."""
|
If on, whenever you fail a puzzle (with some exceptions), you and everyone who is also on Death Link dies.
|
||||||
|
The effect of a "death" in The Witness is a Bonk Trap.
|
||||||
|
"""
|
||||||
display_name = "Death Link"
|
display_name = "Death Link"
|
||||||
|
|
||||||
|
|
||||||
class DeathLinkAmnesty(Range):
|
class DeathLinkAmnesty(Range):
|
||||||
"""Number of panel fails to allow before sending a death through Death Link.
|
"""
|
||||||
0 means every panel fail will send a death, 1 means every other panel fail will send a death, etc."""
|
The number of panel fails to allow before sending a death through Death Link.
|
||||||
|
0 means every panel fail will send a death, 1 means every other panel fail will send a death, etc.
|
||||||
|
"""
|
||||||
display_name = "Death Link Amnesty"
|
display_name = "Death Link Amnesty"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 5
|
range_end = 5
|
||||||
|
|
Loading…
Reference in New Issue