about summary refs log tree commit diff stats
path: root/apworld/options.py
blob: 52d2034b61280a8e733139b758ca8ce534d0f027 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
from dataclasses import dataclass

from Options import PerGameCommonOptions, Toggle, Choice, DefaultOnToggle, Range


class ShuffleDoors(DefaultOnToggle):
    """If enabled, most doors will open from receiving an item rather than fulfilling the in-game requirements."""
    display_name = "Shuffle Doors"


class ShuffleControlCenterColors(Toggle):
    """
    Some doors open after solving the COLOR panel in the Control Center. If this option is enabled, these doors will
    instead open upon receiving an item.
    """
    display_name = "Shuffle Control Center Colors"


class ShuffleGalleryPaintings(Toggle):
    """If enabled, gallery paintings will appear from receiving an item rather than by triggering them normally."""
    display_name = "Shuffle Gallery Paintings"


class ShuffleLetters(Choice):
    """
    Controls how letter unlocks are handled. Note that H1, I1, N1, and T1 will always be present at their vanilla
    locations in the starting room, even if letters are shuffled remotely.

    - **Vanilla**: All letters will be present at their vanilla locations.
    - **Unlocked**: Players will start with their keyboards fully unlocked.
    - **Progressive**: Two items will be added to the pool for every letter (one for H, I, N, and T). Receiving the
      first item gives you the corresponding level 1 letter, and the second item gives you the corresponding level 2
      letter.
    - **Vanilla Cyan**: Players will start with all level 1 (purple) letters unlocked. Level 2 (cyan) letters will be
      present at their vanilla locations.
    - **Item Cyan**: Players will start with all level 1 (purple) letters unlocked. One item will be added to the pool
      for every level 2 (cyan) letter.
    """
    display_name = "Shuffle Letters"
    option_vanilla = 0
    option_unlocked = 1
    option_progressive = 2
    option_vanilla_cyan = 3
    option_item_cyan = 4


class ShuffleSymbols(Toggle):
    """
    If enabled, 19 items will be added to the pool, representing the different symbols that can appear on a panel.
    Players will be prevented from solving puzzles with symbols on them until all of the required symbols are unlocked.
    """
    display_name = "Shuffle Symbols"


class KeyholderSanity(Toggle):
    """
    If enabled, 26 locations will be created for placing each key into its respective Green Ending keyholder.

    NOTE: This does not apply to the two disappearing keyholders in The Congruent, as they are not part of Green Ending.
    """
    display_name = "Keyholder Sanity"


class CyanDoorBehavior(Choice):
    """
    Cyan-colored doors usually only open upon unlocking double letters. Some panels also only appear upon unlocking
    double letters. This option determines how these unlocks should behave.

    - **Collect H2**: In the base game, H2 is the first double letter you are intended to collect, so cyan doors only
      open when you collect the H2 pickup in The Repetitive. Collecting the actual pickup is still required even with
      remote letter shuffle enabled.
    - **Any Double Letter**: Cyan doors will open when you have unlocked any cyan letter on your keyboard. In letter
      shuffle, this means receiving a cyan letter, not picking up a cyan letter collectable.
    - **Item**: Cyan doors will be grouped together in a single item.

    Note that some cyan doors are impacted by door shuffle (e.g. the entrance to The Tower). When door shuffle is
    enabled, these doors won't be affected by the value of this option.
    """
    display_name = "Cyan Door Behavior"
    option_collect_h2 = 0
    option_any_double_letter = 1
    option_item = 2


class DaedalusRoofAccess(Toggle):
    """
    If enabled, the player will be logically expected to be able to go from the castle entrance to any part of Daedalus
    that is open to the air. If disabled, the player will only be expected to be able to enter the castle, the moat,
    Icarus, and the area at the bottom of the stairs. Invisible walls that become opaque as you approach them are added
    to the level to prevent the player from accidentally breaking logic.
    """
    display_name = "Allow Daedalus Roof Access"


class VictoryCondition(Choice):
    """
    This option determines what your goal is.
    
    - **Gray Ending** (The Colorful)
    - **Purple Ending** (The Sun Temple). This ordinarily requires all level 1 (purple) letters.
    - **Mint Ending** (typing EXIT into the keyholders in Control Center)
    - **Black Ending** (The Graveyard)
    - **Blue Ending** (The Words)
    - **Cyan Ending** (The Parthenon). This ordinarily requires almost all level 2 (cyan) letters.
    - **Red Ending** (The Tower)
    - **Plum Ending** (The Wondrous / The Door)
    - **Orange Ending** (the castle in Daedalus)
    - **Gold Ending** (The Gold). This involves going through the color rooms in Daedalus.
    - **Yellow Ending** (The Gallery). This requires unlocking all gallery paintings.
    - **Green Ending** (The Ancient). This requires filling all keyholders with specific letters.
    - **White Ending** (Control Center). This combines every other ending.
    """
    display_name = "Victory Condition"
    option_gray_ending = 0
    option_purple_ending = 1
    option_mint_ending = 2
    option_black_ending = 3
    option_blue_ending = 4
    option_cyan_ending = 5
    option_red_ending = 6
    option_plum_ending = 7
    option_orange_ending = 8
    option_gold_ending = 9
    option_yellow_ending = 10
    option_green_ending = 11
    option_white_ending = 12


class TrapPercentage(Range):
    """Replaces junk items with traps, at the specified rate."""
    display_name = "Trap Percentage"
    range_start = 0
    range_end = 100
    default = 0


@dataclass
class Lingo2Options(PerGameCommonOptions):
    shuffle_doors: ShuffleDoors
    shuffle_control_center_colors: ShuffleControlCenterColors
    shuffle_gallery_paintings: ShuffleGalleryPaintings
    shuffle_letters: ShuffleLetters
    shuffle_symbols: ShuffleSymbols
    keyholder_sanity: KeyholderSanity
    cyan_door_behavior: CyanDoorBehavior
    daedalus_roof_access: DaedalusRoofAccess
    victory_condition: VictoryCondition
    trap_percentage: TrapPercentage
9ca33f1d5819de7e15ff0df63bf50cd86335'>^
abb4e01 ^

95acd52 ^
abb4e01 ^

95acd52 ^




abb4e01 ^

95acd52 ^




abb4e01 ^

95acd52 ^


abb4e01 ^

95acd52 ^
abb4e01 ^

95acd52 ^


abb4e01 ^


95acd52 ^
abb4e01 ^

95acd52 ^


abb4e01 ^

95acd52 ^
abb4e01 ^

95acd52 ^




abb4e01 ^

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175

                           










                                                                                                                                  








                                                                                                                                  










                                                                                                                                  











                                                                                                                                  

                                                                                                     
                                                         
 

                                                                                                                             
 

                                                                                                     
                                                          
 

                                                                                                                             
 

                                                                                                     
                                                          
 

                                                                                                                             
 

                                                                                                     

                                                               
 

                                                                                                                             
 

                                                                                                     

                                         
 

                                                                                                                             


                                                                                                     


                                                                         
 

                                                                                                                             




                                                                                                     

                                                                                                                             


                                                                                                     


                                                                                
 

                                                                                                                             




                                                                                                     

                                                                                                                             


                                                                                                     

                                                                              
 

                                                                                                                             


                                                                                                     

                                                                              
 

                                                                                                                             




                                                                                                     

                                                                                                                             




                                                                                                     

                                                                                                                             


                                                                                                     

                                                                           
 

                                                                                                                             


                                                                                                     


                                                                          
 

                                                                                                                 


                                                                                                     

                                                           
 

                                                                                                                 




                                                                                                     

                                                                                                                 
# lingo-ap-tracker Releases

## Initial Testing: v0.6.3 - 2024-01-19

- Fixed issue where tracker window would move slowly when dragged around the
  screen.
- Fixed issue where resizing the window could make items in long lists
  disappear.

Download:
[lingo-ap-tracker-v0.6.3-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.6.3-win64.zip)<br/>
Source: [v0.6.3](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.6.3)

## Initial Testing: v0.6.2 - 2024-01-12

- Fixed multi-colored panel stacks in The Scientific showing up as solvable
  without both colors.

Download:
[lingo-ap-tracker-v0.6.2-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.6.2-win64.zip)<br/>
Source: [v0.6.2](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.6.2)

## Initial Testing: v0.6.1 - 2023-11-28

- Compatibility update with the latest version of the game.
- Properly handle the LEVEL 2 panel when LEVEL 2 isn't the win condition.
- Tracker should no longer crash when the working directory isn't the executable
  directory.

Download:
[lingo-ap-tracker-v0.6.1-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.6.1-win64.zip)<br/>
Source: [v0.6.1](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.6.1)

## Initial Testing: v0.6.0 - 2023-11-17

- Added an option to display panel hunt panels even when they are not location
  checks in your world. This includes Number Hunt panels, Color Hunt panels,
  Masteries, and some others. (requires v0.14.0 of the client)
- Added an option to display areas with partial location availability as a
  half-red/half-green square, instead of a yellow square.

Download:
[lingo-ap-tracker-v0.6.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.6.0-win64.zip)<br/>
Source: [v0.6.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.6.0)

## Initial Testing: [v0.5.7](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.5.7) - 2023-11-10

- Fixed a logic issue that was missed in the last update.

Download:
[lingo-ap-tracker-v0.5.7-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.5.7-win64.zip)

## Initial Testing: [v0.5.6](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.5.6) - 2023-11-10

- Compatibility update for the latest version of the game.

Download:
[lingo-ap-tracker-v0.5.6-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.5.6-win64.zip)

## Initial Testing: [v0.5.5](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.5.5) - 2023-11-09

- Compatibility update for the latest version of the game.

Download:
[lingo-ap-tracker-v0.5.5-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.5.5-win64.zip)

## Initial Testing: [v0.5.4](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.5.4) - 2023-10-19

- Tracker now checks Four Island for updates instead of GitHub.
- Various logic updates.

Download:
[lingo-ap-tracker-v0.5.4-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.5.4-win64.zip)

## Initial Testing: [v0.5.3](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.5.3) - 2023-09-28

- Added support for early color hallways.
- Various logic updates.

Download:
[lingo-ap-tracker-v0.5.3-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.5.3-win64.zip)

## Initial Testing: [v0.5.2](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.5.2) - 2023-09-17

- Compatibility update with the reindexed item/location IDs in the latest
  apworld.
- Fixed a crash that could happen when receiving items too quickly.

Download:
[lingo-ap-tracker-v0.5.2-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.5.2-win64.zip)

## Initial Testing: [v0.5.1](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.5.1) - 2023-09-07

Various logic updates.

Download:
[lingo-ap-tracker-v0.5.1-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.5.1-win64.zip)

## Initial Testing: [v0.5.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.5.0) - 2023-08-25

- Support for panelsanity.
- Fixed issue where the tracker may incorrectly think that the Pilgrimage, Level
  2, or The Steady is unreachable.

Download:
[lingo-ap-tracker-v0.5.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.5.0-win64.zip)

## Initial Testing: [v0.4.5](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.4.5) - 2023-08-03

Various logic updates (including support for the LEVEL 2 win condition).

Download:
[lingo-ap-tracker-v0.4.5-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.4.5-win64.zip)

## Initial Testing: [v0.4.4](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.4.4) - 2023-07-24

Achievements from other Lingo slots in the same multiworld will no longer show
up as your achievements. (requires v0.8.2 of the client)

Download:
[lingo-ap-tracker-v0.4.4-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.4.4-win64.zip)

## Initial Testing: [v0.4.3](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.4.3) - 2023-07-03

Locations within area popups are now ordered properly (e.g. the numbers within
the Number Hunt area are now in order).

Download:
[lingo-ap-tracker-v0.4.3-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.4.3-win64.zip)

## Initial Testing: [v0.4.2](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.4.2) - 2023-06-18

Various logic updates.

Download:
[lingo-ap-tracker-v0.4.2-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.4.2-win64.zip)

## Initial Testing: [v0.4.1](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.4.1) - 2023-06-06

Various logic updates.

Download:
[lingo-ap-tracker-v0.4.1-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.4.1-win64.zip)

## Initial Testing: [v0.4.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.4.0) - 2023-05-30

Tracker now shows which achievements you've gotten. (requires v0.6.0 of the
client)

Download:
[lingo-ap-tracker-v0.4.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.4.0-win64.zip)

## Initial Testing: [v0.3.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.3.0) - 2023-05-18

- Added some debug logging
- Update for logic changes related to The Observant, The Fearless, and The
  Scientific

Download:
[lingo-ap-tracker-v0.3.0.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.3.0.zip)

## Initial Testing: [v0.2.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.2.0) - 2023-05-09

- reduce_checks is now supported
- The Bold and The Red are no longer overlapping on the map

Download:
[lingo-ap-tracker-v0.2.0.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.2.0.zip)

## Initial Testing: [v0.1.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v0.1.0) - 2023-05-06

Initial release for beta testing.

Download:
[lingo-ap-tracker-v0.1.0.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.1.0.zip)