Skip to content

Commit 43084da

Browse files
authored
The Witness: Fix newlines in Witness option tooltips (ArchipelagoMW#2971)
1 parent 1481674 commit 43084da

File tree

1 file changed

+106
-63
lines changed

1 file changed

+106
-63
lines changed

worlds/witness/options.py

+106-63
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,23 @@
88

99

1010
class DisableNonRandomizedPuzzles(Toggle):
11-
"""Disables puzzles that cannot be randomized.
11+
"""
12+
Disables puzzles that cannot be randomized.
1213
This includes many puzzles that heavily involve the environment, such as Shadows, Monastery or Orchard.
14+
1315
The lasers for those areas will activate as you solve optional puzzles, such as Discarded Panels.
14-
Additionally, the panels activating Monastery Laser and Jungle Popup Wall will be on from the start."""
16+
Additionally, the panel activating the Jungle Popup Wall will be on from the start.
17+
"""
1518
display_name = "Disable non randomized puzzles"
1619

1720

1821
class EarlyCaves(Choice):
19-
"""Adds an item that opens the Caves Shortcuts to Swamp and Mountain,
20-
allowing early access to the Caves even if you are not playing a remote Door Shuffle mode.
21-
You can either add this item to the pool to be found on one of your randomized checks,
22-
or you can outright start with it and have immediate access to the Caves.
23-
If you choose "add_to_pool" and you are already playing a remote Door Shuffle mode, this setting will do nothing."""
22+
"""
23+
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.
24+
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.
25+
26+
If you choose "Add To Pool" and you are already playing a remote Door Shuffle mode, this option will do nothing.
27+
"""
2428
display_name = "Early Caves"
2529
option_off = 0
2630
alias_false = 0
@@ -31,15 +35,19 @@ class EarlyCaves(Choice):
3135

3236

3337
class ShuffleSymbols(DefaultOnToggle):
34-
"""You will need to unlock puzzle symbols as items to be able to solve the panels that contain those symbols.
35-
If you turn this off, there will be no progression items in the game unless you turn on door shuffle."""
38+
"""
39+
If on, you will need to unlock puzzle symbols as items to be able to solve the panels that contain those symbols.
40+
41+
Please note that there is no minimum set of progression items in this randomizer.
42+
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.
43+
"""
3644
display_name = "Shuffle Symbols"
3745

3846

3947
class ShuffleLasers(Choice):
40-
"""If on, the 11 lasers are turned into items and will activate on their own upon receiving them.
41-
Note: There is a visual bug that can occur with the Desert Laser. It does not affect gameplay - The Laser can still
42-
be redirected as normal, for both applications of redirection."""
48+
"""
49+
If on, the 11 lasers are turned into items and will activate on their own upon receiving them.
50+
"""
4351
display_name = "Shuffle Lasers"
4452
option_off = 0
4553
alias_false = 0
@@ -50,10 +58,12 @@ class ShuffleLasers(Choice):
5058

5159

5260
class ShuffleDoors(Choice):
53-
"""If on, opening doors, moving bridges etc. will require a "key".
61+
"""
62+
If on, opening doors, moving bridges etc. will require a "key".
5463
If set to "panels", the panel on the door will be locked until receiving its corresponding key.
5564
If set to "doors", the door will open immediately upon receiving its key. Door panels are added as location checks.
56-
"Mixed" includes all doors from "doors", and all control panels (bridges, elevators etc.) from "panels"."""
65+
"Mixed" includes all doors from "doors", and all control panels (bridges, elevators etc.) from "panels".
66+
"""
5767
display_name = "Shuffle Doors"
5868
option_off = 0
5969
option_panels = 1
@@ -62,38 +72,45 @@ class ShuffleDoors(Choice):
6272

6373

6474
class DoorGroupings(Choice):
65-
"""If set to "none", there will be one key for every door, resulting in up to 120 keys being added to the item pool.
66-
If set to "regional", all doors in the same general region will open at once with a single key,
67-
reducing the amount of door items and complexity."""
75+
"""
76+
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.
77+
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.
78+
"""
6879
display_name = "Door Groupings"
6980
option_off = 0
7081
option_regional = 1
7182

7283

7384
class ShuffleBoat(DefaultOnToggle):
74-
"""If set, adds a "Boat" item to the item pool. Before receiving this item, you will not be able to use the boat."""
85+
"""
86+
If on, adds a "Boat" item to the item pool. Before receiving this item, you will not be able to use the boat.
87+
"""
7588
display_name = "Shuffle Boat"
7689

7790

7891
class ShuffleDiscardedPanels(Toggle):
79-
"""Add Discarded Panels into the location pool.
80-
Solving certain Discarded Panels may still be necessary to beat the game, even if this is off - The main example
81-
of this being the alternate activation triggers in disable_non_randomized."""
92+
"""
93+
Adds Discarded Panels into the location pool.
8294
95+
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".
96+
"""
8397
display_name = "Shuffle Discarded Panels"
8498

8599

86100
class ShuffleVaultBoxes(Toggle):
87-
"""Add Vault Boxes to the location pool."""
101+
"""
102+
Adds Vault Boxes to the location pool.
103+
"""
88104
display_name = "Shuffle Vault Boxes"
89105

90106

91107
class ShuffleEnvironmentalPuzzles(Choice):
92108
"""
93-
Add Environmental/Obelisk Puzzles into the location pool.
94-
In "individual", every Environmental Puzzle sends an item.
95-
In "obelisk_sides", completing every puzzle on one side of an Obelisk sends an item.
96-
Note: In Obelisk Sides, any EPs excluded through another setting will be counted as pre-completed on their Obelisk.
109+
Adds Environmental/Obelisk Puzzles into the location pool.
110+
If set to "individual", every Environmental Puzzle sends an item.
111+
If set to "Obelisk Sides", completing every puzzle on one side of an Obelisk sends an item.
112+
113+
Note: In Obelisk Sides, any EPs excluded through another option will be pre-completed on their Obelisk.
97114
"""
98115
display_name = "Shuffle Environmental Puzzles"
99116
option_off = 0
@@ -102,17 +119,18 @@ class ShuffleEnvironmentalPuzzles(Choice):
102119

103120

104121
class ShuffleDog(Toggle):
105-
"""Add petting the Town dog into the location pool."""
106-
122+
"""
123+
Adds petting the Town dog into the location pool.
124+
"""
107125
display_name = "Pet the Dog"
108126

109127

110128
class EnvironmentalPuzzlesDifficulty(Choice):
111129
"""
112130
When "Shuffle Environmental Puzzles" is on, this setting governs which EPs are eligible for the location pool.
113-
On "eclipse", every EP in the game is eligible, including the 1-hour-long "Theater Eclipse EP".
114-
On "tedious", Theater Eclipse EP is excluded from the location pool.
115-
On "normal", several other difficult or long EPs are excluded as well.
131+
If set to "eclipse", every EP in the game is eligible, including the 1-hour-long "Theater Eclipse EP".
132+
If set to "tedious", Theater Eclipse EP is excluded from the location pool.
133+
If set to "normal", several other difficult or long EPs are excluded as well.
116134
"""
117135
display_name = "Environmental Puzzles Difficulty"
118136
option_normal = 0
@@ -123,26 +141,31 @@ class EnvironmentalPuzzlesDifficulty(Choice):
123141
class ObeliskKeys(DefaultOnToggle):
124142
"""
125143
Add one Obelisk Key item per Obelisk, locking you out of solving any of the associated Environmental Puzzles.
144+
126145
Does nothing if "Shuffle Environmental Puzzles" is set to "off".
127146
"""
128147
display_name = "Obelisk Keys"
129148

130149

131150
class ShufflePostgame(Toggle):
132-
"""Adds locations into the pool that are guaranteed to become accessible after or at the same time as your goal.
133-
Use this if you don't play with release on victory. IMPORTANT NOTE: The possibility of your second
134-
"Progressive Dots" showing up in the Caves is ignored, they will still be considered "postgame" in base settings."""
151+
"""
152+
Adds locations into the pool that are guaranteed to become accessible after or at the same time as your goal.
153+
Use this if you don't play with release on victory.
154+
"""
135155
display_name = "Shuffle Postgame"
136156

137157

138158
class VictoryCondition(Choice):
139-
"""Set the victory condition for this world.
159+
"""
160+
Set the victory condition for this world.
140161
Elevator: Start the elevator at the bottom of the mountain (requires Mountain Lasers).
141162
Challenge: Beat the secret Challenge (requires Challenge Lasers).
142163
Mountain Box Short: Input the short solution to the Mountaintop Box (requires Mountain Lasers).
143164
Mountain Box Long: Input the long solution to the Mountaintop Box (requires Challenge Lasers).
165+
144166
It is important to note that while the Mountain Box requires Desert Laser to be redirected in Town for that laser
145-
to count, the laser locks on the Elevator and Challenge Timer panels do not."""
167+
to count, the laser locks on the Elevator and Challenge Timer panels do not.
168+
"""
146169
display_name = "Victory Condition"
147170
option_elevator = 0
148171
option_challenge = 1
@@ -151,51 +174,61 @@ class VictoryCondition(Choice):
151174

152175

153176
class PuzzleRandomization(Choice):
154-
"""Puzzles in this randomizer are randomly generated. This setting changes the difficulty/types of puzzles."""
177+
"""
178+
Puzzles in this randomizer are randomly generated. This option changes the difficulty/types of puzzles.
179+
"""
155180
display_name = "Puzzle Randomization"
156181
option_sigma_normal = 0
157182
option_sigma_expert = 1
158183
option_none = 2
159184

160185

161186
class MountainLasers(Range):
162-
"""Sets the amount of lasers required to enter the Mountain.
163-
If set to a higher amount than 7, the mountaintop box will be slightly rotated to make it possible to solve without
164-
the hatch being opened.
165-
This change will also be applied logically to the long solution ("Challenge Lasers" setting)."""
187+
"""
188+
Sets the number of lasers required to enter the Mountain.
189+
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.
190+
This change will also be applied logically to the long solution ("Challenge Lasers" option).
191+
"""
166192
display_name = "Required Lasers for Mountain Entry"
167193
range_start = 1
168194
range_end = 11
169195
default = 7
170196

171197

172198
class ChallengeLasers(Range):
173-
"""Sets the amount of beams required to enter the Caves through the Mountain Bottom Floor Discard."""
199+
"""
200+
Sets the number of lasers required to enter the Caves through the Mountain Bottom Floor Discard and to unlock the Challenge Timer Panel.
201+
"""
174202
display_name = "Required Lasers for Challenge"
175203
range_start = 1
176204
range_end = 11
177205
default = 11
178206

179207

180208
class ElevatorsComeToYou(Toggle):
181-
"""If true, the Quarry Elevator, Bunker Elevator and Swamp Long Bridge will "come to you" if you approach them.
182-
This does actually affect logic as it allows unintended backwards / early access into these areas."""
209+
"""
210+
If on, the Quarry Elevator, Bunker Elevator and Swamp Long Bridge will "come to you" if you approach them.
211+
This does actually affect logic as it allows unintended backwards / early access into these areas.
212+
"""
183213
display_name = "All Bridges & Elevators come to you"
184214

185215

186216
class TrapPercentage(Range):
187-
"""Replaces junk items with traps, at the specified rate."""
217+
"""
218+
Replaces junk items with traps, at the specified rate.
219+
"""
188220
display_name = "Trap Percentage"
189221
range_start = 0
190222
range_end = 100
191223
default = 20
192224

193225

194226
class TrapWeights(OptionDict):
195-
"""Specify the weights determining how many copies of each trap item will be in your itempool.
227+
"""
228+
Specify the weights determining how many copies of each trap item will be in your itempool.
196229
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!).
197-
If you set all trap weights to 0, you will get no traps, bypassing the "Trap Percentage" option."""
198-
230+
If you set all trap weights to 0, you will get no traps, bypassing the "Trap Percentage" option.
231+
"""
199232
display_name = "Trap Weights"
200233
schema = Schema({
201234
trap_name: And(int, lambda n: n >= 0)
@@ -210,50 +243,60 @@ class TrapWeights(OptionDict):
210243

211244

212245
class PuzzleSkipAmount(Range):
213-
"""Adds this number of Puzzle Skips into the pool, if there is room. Puzzle Skips let you skip one panel.
214-
Works on most panels in the game - The only big exception is The Challenge."""
246+
"""
247+
Adds this many Puzzle Skips into the pool, if there is room. Puzzle Skips let you skip one panel.
248+
"""
215249
display_name = "Puzzle Skips"
216250
range_start = 0
217251
range_end = 30
218252
default = 10
219253

220254

221255
class HintAmount(Range):
222-
"""Adds hints to Audio Logs. If set to a low amount, up to 2 additional duplicates of each hint will be added.
223-
Remaining Audio Logs will have junk hints."""
256+
"""
257+
Adds hints to Audio Logs. If set to a low amount, up to 2 additional duplicates of each hint will be added.
258+
Remaining Audio Logs will have junk hints.
259+
"""
224260
display_name = "Hints on Audio Logs"
225261
range_start = 0
226262
range_end = 49
227263
default = 12
228264

229265

230266
class AreaHintPercentage(Range):
231-
"""There are two types of hints for The Witness.
232-
"Location hints" hint one location in your world / containing an item for your world.
233-
"Area hints" will tell you some general info about the items you can find in one of the
234-
main geographic areas on the island.
235-
Use this option to specify how many of your hints you want to be area hints. The rest will be location hints."""
267+
"""
268+
There are two types of hints for The Witness.
269+
"Location hints" hint one location in your world or one location containing an item for your world.
270+
"Area hints" tell you some general info about the items you can find in one of the main geographic areas on the island.
271+
Use this option to specify how many of your hints you want to be area hints. The rest will be location hints.
272+
"""
236273
display_name = "Area Hint Percentage"
237274
range_start = 0
238275
range_end = 100
239276
default = 33
240277

241278

242279
class LaserHints(Toggle):
243-
"""If on, lasers will tell you where their items are if you walk close to them in-game.
244-
Only applies if laser shuffle is enabled."""
280+
"""
281+
If on, lasers will tell you where their items are if you walk close to them in-game.
282+
Only applies if Laser Shuffle is enabled.
283+
"""
245284
display_name = "Laser Hints"
246285

247286

248287
class DeathLink(Toggle):
249-
"""If on: Whenever you fail a puzzle (with some exceptions), everyone who is also on Death Link dies.
250-
The effect of a "death" in The Witness is a Bonk Trap."""
288+
"""
289+
If on, whenever you fail a puzzle (with some exceptions), you and everyone who is also on Death Link dies.
290+
The effect of a "death" in The Witness is a Bonk Trap.
291+
"""
251292
display_name = "Death Link"
252293

253294

254295
class DeathLinkAmnesty(Range):
255-
"""Number of panel fails to allow before sending a death through Death Link.
256-
0 means every panel fail will send a death, 1 means every other panel fail will send a death, etc."""
296+
"""
297+
The number of panel fails to allow before sending a death through Death Link.
298+
0 means every panel fail will send a death, 1 means every other panel fail will send a death, etc.
299+
"""
257300
display_name = "Death Link Amnesty"
258301
range_start = 0
259302
range_end = 5

0 commit comments

Comments
 (0)