LADX: reorganize options page (#4851)
* init * merge upstream/main * improve option tooltips, clean up file a bit * ladx feels like more of an ocean game * one more * more cleanup * some reorg * Apply suggestions from code review Co-authored-by: Scipio Wright <scipiowright@gmail.com> * clean up accidental newlines * rewording * dont do the ohko alias --------- Co-authored-by: Scipio Wright <scipiowright@gmail.com>
This commit is contained in:
@@ -23,11 +23,24 @@ class LADXROption:
|
||||
class Logic(Choice, LADXROption):
|
||||
"""
|
||||
Affects where items are allowed to be placed.
|
||||
[Normal] Playable without using any tricks or glitches. Can require knowledge from a vanilla playthrough, such as how to open Color Dungeon.
|
||||
[Hard] More advanced techniques may be required, but glitches are not. Examples include tricky jumps, killing enemies with only pots.
|
||||
[Glitched] Advanced glitches and techniques may be required, but extremely difficult or tedious tricks are not required. Examples include Bomb Triggers, Super Jumps and Jesus Jumps.
|
||||
[Hell] Obscure knowledge and hard techniques may be required. Examples include featherless jumping with boots and/or hookshot, sequential pit buffers and unclipped superjumps. Things in here can be extremely hard to do or very time consuming."""
|
||||
|
||||
**Normal:** Playable without using any tricks or glitches. Can require
|
||||
knowledge from a vanilla playthrough, such as how to open Color Dungeon.
|
||||
|
||||
**Hard:** More advanced techniques may be required, but glitches are not.
|
||||
Examples include tricky jumps, killing enemies with only pots.
|
||||
|
||||
**Glitched:** Advanced glitches and techniques may be required, but
|
||||
extremely difficult or tedious tricks are not required. Examples include
|
||||
Bomb Triggers, Super Jumps and Jesus Jumps.
|
||||
|
||||
**Hell:** Obscure knowledge and hard techniques may be required. Examples
|
||||
include featherless jumping with boots and/or hookshot, sequential pit
|
||||
buffers and unclipped superjumps. Things in here can be extremely hard to do
|
||||
or very time consuming.
|
||||
"""
|
||||
display_name = "Logic"
|
||||
rich_text_doc = True
|
||||
ladxr_name = "logic"
|
||||
# option_casual = 0
|
||||
option_normal = 1
|
||||
@@ -40,8 +53,8 @@ class Logic(Choice, LADXROption):
|
||||
|
||||
class TradeQuest(DefaultOffToggle, LADXROption):
|
||||
"""
|
||||
[On] adds the trade items to the pool (the trade locations will always be local items)
|
||||
[Off] (default) doesn't add them
|
||||
Trade quest items are randomized. Each NPC takes its normal trade quest
|
||||
item and gives a randomized item in return.
|
||||
"""
|
||||
display_name = "Trade Quest"
|
||||
ladxr_name = "tradequest"
|
||||
@@ -49,40 +62,32 @@ class TradeQuest(DefaultOffToggle, LADXROption):
|
||||
|
||||
class TextShuffle(DefaultOffToggle):
|
||||
"""
|
||||
[On] Shuffles all the text in the game
|
||||
[Off] (default) doesn't shuffle them.
|
||||
Shuffles all text in the game.
|
||||
"""
|
||||
display_name = "Text Shuffle"
|
||||
|
||||
|
||||
class Rooster(DefaultOnToggle, LADXROption):
|
||||
"""
|
||||
[On] Adds the rooster to the item pool.
|
||||
[Off] The rooster spot is still a check giving an item. But you will never find the rooster. In that case, any rooster spot is accessible without rooster by other means.
|
||||
Adds the rooster to the item pool. If disabled, the overworld will be
|
||||
modified so that any location requiring the rooster is accessible by other
|
||||
means.
|
||||
"""
|
||||
display_name = "Rooster"
|
||||
ladxr_name = "rooster"
|
||||
|
||||
|
||||
class Boomerang(Choice):
|
||||
"""
|
||||
[Normal] requires Magnifying Lens to get the boomerang.
|
||||
[Gift] The boomerang salesman will give you a random item, and the boomerang is shuffled.
|
||||
"""
|
||||
display_name = "Boomerang"
|
||||
|
||||
normal = 0
|
||||
gift = 1
|
||||
default = gift
|
||||
|
||||
|
||||
class EntranceShuffle(Choice, LADXROption):
|
||||
"""
|
||||
[WARNING] Experimental, may fail to fill
|
||||
Randomizes where overworld entrances lead to.
|
||||
[Simple] Single-entrance caves/houses that have items are shuffled amongst each other.
|
||||
If random start location and/or dungeon shuffle is enabled, then these will be shuffled with all the non-connector entrance pool.
|
||||
Note, some entrances can lead into water, use the warp-to-home from the save&quit menu to escape this."""
|
||||
Randomizes where overworld entrances lead.
|
||||
|
||||
**Simple:** Single-entrance caves/houses that have items are shuffled
|
||||
amongst each other.
|
||||
|
||||
If *Dungeon Shuffle* is enabled, then dungeons will be shuffled with all the
|
||||
non-connector entrances in the pool. Note, some entrances can lead into water, use
|
||||
the warp-to-home from the save&quit menu to escape this.
|
||||
"""
|
||||
|
||||
# [Advanced] Simple, but two-way connector caves are shuffled in their own pool as well.
|
||||
# [Expert] Advanced, but caves/houses without items are also shuffled into the Simple entrance pool.
|
||||
@@ -94,22 +99,22 @@ class EntranceShuffle(Choice, LADXROption):
|
||||
# option_expert = 3
|
||||
# option_insanity = 4
|
||||
default = option_none
|
||||
display_name = "Experimental Entrance Shuffle"
|
||||
display_name = "Entrance Shuffle"
|
||||
ladxr_name = "entranceshuffle"
|
||||
rich_text_doc = True
|
||||
|
||||
|
||||
class DungeonShuffle(DefaultOffToggle, LADXROption):
|
||||
"""
|
||||
[WARNING] Experimental, may fail to fill
|
||||
Randomizes dungeon entrances within eachother
|
||||
Randomizes dungeon entrances with each other.
|
||||
"""
|
||||
display_name = "Experimental Dungeon Shuffle"
|
||||
display_name = "Dungeon Shuffle"
|
||||
ladxr_name = "dungeonshuffle"
|
||||
|
||||
|
||||
class APTitleScreen(DefaultOnToggle):
|
||||
"""
|
||||
Enables AP specific title screen and disables the intro cutscene
|
||||
Enables AP specific title screen and disables the intro cutscene.
|
||||
"""
|
||||
display_name = "AP Title Screen"
|
||||
|
||||
@@ -124,6 +129,7 @@ class BossShuffle(Choice):
|
||||
|
||||
class DungeonItemShuffle(Choice):
|
||||
display_name = "Dungeon Item Shuffle"
|
||||
rich_text_doc = True
|
||||
option_original_dungeon = 0
|
||||
option_own_dungeons = 1
|
||||
option_own_world = 2
|
||||
@@ -138,12 +144,15 @@ class DungeonItemShuffle(Choice):
|
||||
|
||||
class ShuffleNightmareKeys(DungeonItemShuffle):
|
||||
"""
|
||||
Shuffle Nightmare Keys
|
||||
[Original Dungeon] The item will be within its original dungeon
|
||||
[Own Dungeons] The item will be within a dungeon in your world
|
||||
[Own World] The item will be somewhere in your world
|
||||
[Any World] The item could be anywhere
|
||||
[Different World] The item will be somewhere in another world
|
||||
**Original Dungeon:** The item will be within its original dungeon.
|
||||
|
||||
**Own Dungeons:** The item will be within a dungeon in your world.
|
||||
|
||||
**Own World:** The item will be somewhere in your world.
|
||||
|
||||
**Any World:** The item could be anywhere.
|
||||
|
||||
**Different World:** The item will be somewhere in another world.
|
||||
"""
|
||||
display_name = "Shuffle Nightmare Keys"
|
||||
ladxr_item = "NIGHTMARE_KEY"
|
||||
@@ -151,12 +160,15 @@ class ShuffleNightmareKeys(DungeonItemShuffle):
|
||||
|
||||
class ShuffleSmallKeys(DungeonItemShuffle):
|
||||
"""
|
||||
Shuffle Small Keys
|
||||
[Original Dungeon] The item will be within its original dungeon
|
||||
[Own Dungeons] The item will be within a dungeon in your world
|
||||
[Own World] The item will be somewhere in your world
|
||||
[Any World] The item could be anywhere
|
||||
[Different World] The item will be somewhere in another world
|
||||
**Original Dungeon:** The item will be within its original dungeon.
|
||||
|
||||
**Own Dungeons:** The item will be within a dungeon in your world.
|
||||
|
||||
**Own World:** The item will be somewhere in your world.
|
||||
|
||||
**Any World:** The item could be anywhere.
|
||||
|
||||
**Different World:** The item will be somewhere in another world.
|
||||
"""
|
||||
display_name = "Shuffle Small Keys"
|
||||
ladxr_item = "KEY"
|
||||
@@ -164,12 +176,15 @@ class ShuffleSmallKeys(DungeonItemShuffle):
|
||||
|
||||
class ShuffleMaps(DungeonItemShuffle):
|
||||
"""
|
||||
Shuffle Dungeon Maps
|
||||
[Original Dungeon] The item will be within its original dungeon
|
||||
[Own Dungeons] The item will be within a dungeon in your world
|
||||
[Own World] The item will be somewhere in your world
|
||||
[Any World] The item could be anywhere
|
||||
[Different World] The item will be somewhere in another world
|
||||
**Original Dungeon:** The item will be within its original dungeon.
|
||||
|
||||
**Own Dungeons:** The item will be within a dungeon in your world.
|
||||
|
||||
**Own World:** The item will be somewhere in your world.
|
||||
|
||||
**Any World:** The item could be anywhere.
|
||||
|
||||
**Different World:** The item will be somewhere in another world.
|
||||
"""
|
||||
display_name = "Shuffle Maps"
|
||||
ladxr_item = "MAP"
|
||||
@@ -177,12 +192,15 @@ class ShuffleMaps(DungeonItemShuffle):
|
||||
|
||||
class ShuffleCompasses(DungeonItemShuffle):
|
||||
"""
|
||||
Shuffle Dungeon Compasses
|
||||
[Original Dungeon] The item will be within its original dungeon
|
||||
[Own Dungeons] The item will be within a dungeon in your world
|
||||
[Own World] The item will be somewhere in your world
|
||||
[Any World] The item could be anywhere
|
||||
[Different World] The item will be somewhere in another world
|
||||
**Original Dungeon:** The item will be within its original dungeon.
|
||||
|
||||
**Own Dungeons:** The item will be within a dungeon in your world.
|
||||
|
||||
**Own World:** The item will be somewhere in your world.
|
||||
|
||||
**Any World:** The item could be anywhere.
|
||||
|
||||
**Different World:** The item will be somewhere in another world.
|
||||
"""
|
||||
display_name = "Shuffle Compasses"
|
||||
ladxr_item = "COMPASS"
|
||||
@@ -190,12 +208,15 @@ class ShuffleCompasses(DungeonItemShuffle):
|
||||
|
||||
class ShuffleStoneBeaks(DungeonItemShuffle):
|
||||
"""
|
||||
Shuffle Owl Beaks
|
||||
[Original Dungeon] The item will be within its original dungeon
|
||||
[Own Dungeons] The item will be within a dungeon in your world
|
||||
[Own World] The item will be somewhere in your world
|
||||
[Any World] The item could be anywhere
|
||||
[Different World] The item will be somewhere in another world
|
||||
**Original Dungeon:** The item will be within its original dungeon.
|
||||
|
||||
**Own Dungeons:** The item will be within a dungeon in your world.
|
||||
|
||||
**Own World:** The item will be somewhere in your world.
|
||||
|
||||
**Any World:** The item could be anywhere.
|
||||
|
||||
**Different World:** The item will be somewhere in another world.
|
||||
"""
|
||||
display_name = "Shuffle Stone Beaks"
|
||||
ladxr_item = "STONE_BEAK"
|
||||
@@ -203,13 +224,17 @@ class ShuffleStoneBeaks(DungeonItemShuffle):
|
||||
|
||||
class ShuffleInstruments(DungeonItemShuffle):
|
||||
"""
|
||||
Shuffle Instruments
|
||||
[Original Dungeon] The item will be within its original dungeon
|
||||
[Own Dungeons] The item will be within a dungeon in your world
|
||||
[Own World] The item will be somewhere in your world
|
||||
[Any World] The item could be anywhere
|
||||
[Different World] The item will be somewhere in another world
|
||||
[Vanilla] The item will be in its vanilla location in your world
|
||||
**Original Dungeon:** The item will be within its original dungeon.
|
||||
|
||||
**Own Dungeons:** The item will be within a dungeon in your world.
|
||||
|
||||
**Own World:** The item will be somewhere in your world.
|
||||
|
||||
**Any World:** The item could be anywhere.
|
||||
|
||||
**Different World:** The item will be somewhere in another world.
|
||||
|
||||
**Vanilla:** The item will be in its vanilla location in your world.
|
||||
"""
|
||||
display_name = "Shuffle Instruments"
|
||||
ladxr_item = "INSTRUMENT"
|
||||
@@ -220,12 +245,18 @@ class ShuffleInstruments(DungeonItemShuffle):
|
||||
|
||||
class Goal(Choice, LADXROption):
|
||||
"""
|
||||
The Goal of the game
|
||||
[Instruments] The Wind Fish's Egg will only open if you have the required number of Instruments of the Sirens, and play the Ballad of the Wind Fish.
|
||||
[Seashells] The Egg will open when you bring 20 seashells. The Ballad and Ocarina are not needed.
|
||||
[Open] The Egg will start pre-opened.
|
||||
The Goal of the game.
|
||||
|
||||
**Instruments:** The Wind Fish's Egg will only open if you have the required
|
||||
number of Instruments of the Sirens, and play the Ballad of the Wind Fish.
|
||||
|
||||
**Seashells:** The Egg will open when you bring 20 seashells. The Ballad and
|
||||
Ocarina are not needed.
|
||||
|
||||
**Open:** The Egg will start pre-opened.
|
||||
"""
|
||||
display_name = "Goal"
|
||||
rich_text_doc = True
|
||||
ladxr_name = "goal"
|
||||
option_instruments = 1
|
||||
option_seashells = 2
|
||||
@@ -242,7 +273,7 @@ class Goal(Choice, LADXROption):
|
||||
|
||||
class InstrumentCount(Range, LADXROption):
|
||||
"""
|
||||
Sets the number of instruments required to open the Egg
|
||||
Sets the number of instruments required to open the Egg.
|
||||
"""
|
||||
display_name = "Instrument Count"
|
||||
ladxr_name = None
|
||||
@@ -253,7 +284,8 @@ class InstrumentCount(Range, LADXROption):
|
||||
|
||||
class NagMessages(DefaultOffToggle, LADXROption):
|
||||
"""
|
||||
Controls if nag messages are shown when rocks and crystals are touched. Useful for glitches, annoying for everyone else.
|
||||
Controls if nag messages are shown when rocks and crystals are touched.
|
||||
Useful for glitches, annoying for everything else.
|
||||
"""
|
||||
display_name = "Nag Messages"
|
||||
ladxr_name = "nagmessages"
|
||||
@@ -262,31 +294,30 @@ class NagMessages(DefaultOffToggle, LADXROption):
|
||||
class MusicChangeCondition(Choice):
|
||||
"""
|
||||
Controls how the music changes.
|
||||
[Sword] When you pick up a sword, the music changes
|
||||
[Always] You always have the post-sword music
|
||||
|
||||
**Sword:** When you pick up a sword, the music changes.
|
||||
|
||||
**Always:** You always have the post-sword music.
|
||||
"""
|
||||
display_name = "Music Change Condition"
|
||||
rich_text_doc = True
|
||||
option_sword = 0
|
||||
option_always = 1
|
||||
default = option_always
|
||||
|
||||
|
||||
# Setting('hpmode', 'Gameplay', 'm', 'Health mode', options=[('default', '', 'Normal'), ('inverted', 'i', 'Inverted'), ('1', '1', 'Start with 1 heart'), ('low', 'l', 'Low max')], default='default',
|
||||
# description="""
|
||||
# [Normal} health works as you would expect.
|
||||
# [Inverted] you start with 9 heart containers, but killing a boss will take a heartcontainer instead of giving one.
|
||||
# [Start with 1] normal game, you just start with 1 heart instead of 3.
|
||||
# [Low max] replace heart containers with heart pieces."""),
|
||||
|
||||
|
||||
class HardMode(Choice, LADXROption):
|
||||
"""
|
||||
[Oracle] Less iframes and health from drops. Bombs damage yourself. Water damages you without flippers. No piece of power or acorn.
|
||||
[Hero] Switch version hero mode, double damage, no heart/fairy drops.
|
||||
[One hit KO] You die on a single hit, always.
|
||||
**Oracle:** Less iframes and health from drops. Bombs damage yourself. Water
|
||||
damages you without flippers. No pieces of power or acorns.
|
||||
|
||||
**Hero:** Switch version hero mode, double damage, no heart/fairy drops.
|
||||
|
||||
**OHKO:** You die on a single hit, always.
|
||||
"""
|
||||
display_name = "Hard Mode"
|
||||
ladxr_name = "hardmode"
|
||||
rich_text_doc = True
|
||||
option_none = 0
|
||||
option_oracle = 1
|
||||
option_hero = 2
|
||||
@@ -294,44 +325,26 @@ class HardMode(Choice, LADXROption):
|
||||
default = option_none
|
||||
|
||||
|
||||
# Setting('steal', 'Gameplay', 't', 'Stealing from the shop',
|
||||
# options=[('always', 'a', 'Always'), ('never', 'n', 'Never'), ('default', '', 'Normal')], default='default',
|
||||
# description="""Effects when you can steal from the shop. Stealing is bad and never in logic.
|
||||
# [Normal] requires the sword before you can steal.
|
||||
# [Always] you can always steal from the shop
|
||||
# [Never] you can never steal from the shop."""),
|
||||
class Bowwow(Choice):
|
||||
"""Allows BowWow to be taken into any area. Certain enemies and bosses are given a new weakness to BowWow.
|
||||
[Normal] BowWow is in the item pool, but can be logically expected as a damage source.
|
||||
[Swordless] The progressive swords are removed from the item pool.
|
||||
"""
|
||||
display_name = "BowWow"
|
||||
normal = 0
|
||||
swordless = 1
|
||||
default = normal
|
||||
|
||||
|
||||
class Overworld(Choice, LADXROption):
|
||||
"""
|
||||
[Open Mabe] Replaces rock on the east side of Mabe Village with bushes, allowing access to Ukuku Prairie without Power Bracelet.
|
||||
**Open Mabe:** Replaces rock on the east side of Mabe Village with bushes,
|
||||
allowing access to Ukuku Prairie without Power Bracelet.
|
||||
"""
|
||||
display_name = "Overworld"
|
||||
ladxr_name = "overworld"
|
||||
rich_text_doc = True
|
||||
option_normal = 0
|
||||
option_open_mabe = 1
|
||||
default = option_normal
|
||||
|
||||
|
||||
# Setting('superweapons', 'Special', 'q', 'Enable super weapons', default=False,
|
||||
# description='All items will be more powerful, faster, harder, bigger stronger. You name it.'),
|
||||
|
||||
|
||||
class Quickswap(Choice, LADXROption):
|
||||
"""
|
||||
Adds that the SELECT button swaps with either A or B. The item is swapped with the top inventory slot. The map is not available when quickswap is enabled.
|
||||
Instead of opening the map, the *SELECT* button swaps the top item of your inventory on to your *A* or *B* button.
|
||||
"""
|
||||
display_name = "Quickswap"
|
||||
ladxr_name = "quickswap"
|
||||
rich_text_doc = True
|
||||
option_none = 0
|
||||
option_a = 1
|
||||
option_b = 2
|
||||
@@ -340,10 +353,11 @@ class Quickswap(Choice, LADXROption):
|
||||
|
||||
class TextMode(Choice, LADXROption):
|
||||
"""
|
||||
[Fast] Makes text appear twice as fast
|
||||
**Fast:** Makes text appear twice as fast.
|
||||
"""
|
||||
display_name = "Text Mode"
|
||||
ladxr_name = "textmode"
|
||||
rich_text_doc = True
|
||||
option_normal = 0
|
||||
option_fast = 1
|
||||
default = option_fast
|
||||
@@ -363,7 +377,8 @@ class LowHpBeep(Choice, LADXROption):
|
||||
|
||||
class NoFlash(DefaultOnToggle, LADXROption):
|
||||
"""
|
||||
Remove the flashing light effects from Mamu, shopkeeper and MadBatter. Useful for capture cards and people that are sensitive to these things.
|
||||
Remove the flashing light effects from Mamu, shopkeeper and MadBatter.
|
||||
Useful for capture cards and people that are sensitive to these things.
|
||||
"""
|
||||
display_name = "No Flash"
|
||||
ladxr_name = "noflash"
|
||||
@@ -371,23 +386,34 @@ class NoFlash(DefaultOnToggle, LADXROption):
|
||||
|
||||
class BootsControls(Choice):
|
||||
"""
|
||||
Adds additional button to activate Pegasus Boots (does nothing if you haven't picked up your boots!)
|
||||
[Vanilla] Nothing changes, you have to equip the boots to use them
|
||||
[Bracelet] Holding down the button for the bracelet also activates boots (somewhat like Link to the Past)
|
||||
[Press A] Holding down A activates boots
|
||||
[Press B] Holding down B activates boots
|
||||
Adds an additional button to activate Pegasus Boots (does nothing if you
|
||||
haven't picked up your boots!)
|
||||
|
||||
**Vanilla:** Nothing changes, you have to equip the boots to use them.
|
||||
|
||||
**Bracelet:** Holding down the button for the bracelet also activates boots
|
||||
(somewhat like Link to the Past).
|
||||
|
||||
**Press A:** Holding down A activates boots.
|
||||
|
||||
**Press B:** Holding down B activates boots.
|
||||
"""
|
||||
display_name = "Boots Controls"
|
||||
rich_text_doc = True
|
||||
option_vanilla = 0
|
||||
option_bracelet = 1
|
||||
option_press_a = 2
|
||||
alias_a = 2
|
||||
option_press_b = 3
|
||||
alias_b = 3
|
||||
|
||||
|
||||
class LinkPalette(Choice, LADXROption):
|
||||
"""
|
||||
Sets link's palette
|
||||
A-D are color palettes usually used during the damage animation and can change based on where you are.
|
||||
Sets Link's palette.
|
||||
|
||||
A-D are color palettes usually used during the damage animation and can
|
||||
change based on where you are.
|
||||
"""
|
||||
display_name = "Link's Palette"
|
||||
ladxr_name = "linkspalette"
|
||||
@@ -408,14 +434,21 @@ class LinkPalette(Choice, LADXROption):
|
||||
|
||||
class TrendyGame(Choice):
|
||||
"""
|
||||
[Easy] All of the items hold still for you
|
||||
[Normal] The vanilla behavior
|
||||
[Hard] The trade item also moves
|
||||
[Harder] The items move faster
|
||||
[Hardest] The items move diagonally
|
||||
[Impossible] The items move impossibly fast, may scroll on and off the screen
|
||||
**Easy:** All of the items hold still for you.
|
||||
|
||||
**Normal:** The vanilla behavior.
|
||||
|
||||
**Hard:** The trade item also moves.
|
||||
|
||||
**Harder:** The items move faster.
|
||||
|
||||
**Hardest:** The items move diagonally.
|
||||
|
||||
**Impossible:** The items move impossibly fast, may scroll on and off the
|
||||
screen.
|
||||
"""
|
||||
display_name = "Trendy Game"
|
||||
rich_text_doc = True
|
||||
option_easy = 0
|
||||
option_normal = 1
|
||||
option_hard = 2
|
||||
@@ -435,15 +468,24 @@ class GfxMod(DefaultOffToggle):
|
||||
class Palette(Choice):
|
||||
"""
|
||||
Sets the palette for the game.
|
||||
Note: A few places aren't patched, such as the menu and a few color dungeon tiles.
|
||||
[Normal] The vanilla palette
|
||||
[1-Bit] One bit of color per channel
|
||||
[2-Bit] Two bits of color per channel
|
||||
[Greyscale] Shades of grey
|
||||
[Pink] Aesthetic
|
||||
[Inverted] Inverted
|
||||
|
||||
Note: A few places aren't patched, such as the menu and a few color dungeon
|
||||
tiles.
|
||||
|
||||
**Normal:** The vanilla palette.
|
||||
|
||||
**1-Bit:** One bit of color per channel.
|
||||
|
||||
**2-Bit:** Two bits of color per channel.
|
||||
|
||||
**Greyscale:** Shades of grey.
|
||||
|
||||
**Pink:** Aesthetic.
|
||||
|
||||
**Inverted:** Inverted.
|
||||
"""
|
||||
display_name = "Palette"
|
||||
rich_text_doc = True
|
||||
option_normal = 0
|
||||
option_1bit = 1
|
||||
option_2bit = 2
|
||||
@@ -454,12 +496,15 @@ class Palette(Choice):
|
||||
|
||||
class Music(Choice, LADXROption):
|
||||
"""
|
||||
[Vanilla] Regular Music
|
||||
[Shuffled] Shuffled Music
|
||||
[Off] No music
|
||||
**Vanilla:** Regular Music
|
||||
|
||||
**Shuffled:** Shuffled Music
|
||||
|
||||
**Off:** No music
|
||||
"""
|
||||
display_name = "Music"
|
||||
ladxr_name = "music"
|
||||
rich_text_doc = True
|
||||
option_vanilla = 0
|
||||
option_shuffled = 1
|
||||
option_off = 2
|
||||
@@ -475,10 +520,14 @@ class Music(Choice, LADXROption):
|
||||
|
||||
class Warps(Choice):
|
||||
"""
|
||||
[Improved] Adds remake style warp screen to the game. Choose your warp destination on the map after jumping in a portal and press B to select.
|
||||
[Improved Additional] Improved warps, and adds a warp point at Crazy Tracy's house (the Mambo teleport spot) and Eagle's Tower.
|
||||
**Improved:** Adds remake style warp screen to the game. Choose your warp
|
||||
destination on the map after jumping in a portal and press *B* to select.
|
||||
|
||||
**Improved Additional:** Improved warps, and adds a warp point at Crazy
|
||||
Tracy's house (the Mambo teleport spot) and Eagle's Tower.
|
||||
"""
|
||||
display_name = "Warps"
|
||||
rich_text_doc = True
|
||||
option_vanilla = 0
|
||||
option_improved = 1
|
||||
option_improved_additional = 2
|
||||
@@ -487,19 +536,24 @@ class Warps(Choice):
|
||||
|
||||
class InGameHints(DefaultOnToggle):
|
||||
"""
|
||||
When enabled, owl statues and library books may indicate the location of your items in the multiworld.
|
||||
When enabled, owl statues and library books may indicate the location of
|
||||
your items in the multiworld.
|
||||
"""
|
||||
display_name = "In-game Hints"
|
||||
|
||||
|
||||
class TarinsGift(Choice):
|
||||
"""
|
||||
[Local Progression] Forces Tarin's gift to be an item that immediately opens up local checks.
|
||||
Has little effect in single player games, and isn't always necessary with randomized entrances.
|
||||
[Bush Breaker] Forces Tarin's gift to be an item that can destroy bushes.
|
||||
[Any Item] Tarin's gift can be any item for any world
|
||||
**Local Progression:** Forces Tarin's gift to be an item that immediately
|
||||
opens up local checks. Has little effect in single player games, and isn't
|
||||
always necessary with randomized entrances.
|
||||
|
||||
**Bush Breaker:** Forces Tarin's gift to be an item that can destroy bushes.
|
||||
|
||||
**Any Item:** Tarin's gift can be any item for any world
|
||||
"""
|
||||
display_name = "Tarin's Gift"
|
||||
rich_text_doc = True
|
||||
option_local_progression = 0
|
||||
option_bush_breaker = 1
|
||||
option_any_item = 2
|
||||
@@ -508,67 +562,69 @@ class TarinsGift(Choice):
|
||||
|
||||
class StabilizeItemPool(DefaultOffToggle):
|
||||
"""
|
||||
By default, rupees in the item pool may be randomly swapped with bombs, arrows, powders, or capacity upgrades. This option disables that swapping, which is useful for plando.
|
||||
By default, some rupees in the item pool are randomly swapped with bombs,
|
||||
arrows, powders, or capacity upgrades. This set of items is also used as
|
||||
filler. This option disables that swapping and makes *Nothing* the filler
|
||||
item.
|
||||
"""
|
||||
display_name = "Stabilize Item Pool"
|
||||
rich_text_doc = True
|
||||
|
||||
|
||||
class ForeignItemIcons(Choice):
|
||||
"""
|
||||
Choose how to display foreign items.
|
||||
[Guess By Name] Foreign items can look like any Link's Awakening item.
|
||||
[Indicate Progression] Foreign items are either a Piece of Power (progression) or Guardian Acorn (non-progression).
|
||||
|
||||
**Guess By Name:** Foreign items can look like any Link's Awakening item.
|
||||
|
||||
**Indicate Progression:** Foreign items are either a Piece of Power
|
||||
(progression) or Guardian Acorn (non-progression).
|
||||
"""
|
||||
display_name = "Foreign Item Icons"
|
||||
rich_text_doc = True
|
||||
option_guess_by_name = 0
|
||||
option_indicate_progression = 1
|
||||
default = option_guess_by_name
|
||||
|
||||
|
||||
ladx_option_groups = [
|
||||
OptionGroup("Goal Options", [
|
||||
Goal,
|
||||
InstrumentCount,
|
||||
OptionGroup("Gameplay Adjustments", [
|
||||
InGameHints,
|
||||
TarinsGift,
|
||||
HardMode,
|
||||
TrendyGame,
|
||||
]),
|
||||
OptionGroup("Shuffles", [
|
||||
OptionGroup("World Layout", [
|
||||
Overworld,
|
||||
Warps,
|
||||
DungeonShuffle,
|
||||
EntranceShuffle,
|
||||
]),
|
||||
OptionGroup("Item Pool", [
|
||||
ShuffleInstruments,
|
||||
ShuffleNightmareKeys,
|
||||
ShuffleSmallKeys,
|
||||
ShuffleMaps,
|
||||
ShuffleCompasses,
|
||||
ShuffleStoneBeaks
|
||||
]),
|
||||
OptionGroup("Warp Points", [
|
||||
Warps,
|
||||
]),
|
||||
OptionGroup("Miscellaneous", [
|
||||
ShuffleStoneBeaks,
|
||||
TradeQuest,
|
||||
Rooster,
|
||||
TarinsGift,
|
||||
Overworld,
|
||||
TrendyGame,
|
||||
InGameHints,
|
||||
NagMessages,
|
||||
StabilizeItemPool,
|
||||
]),
|
||||
OptionGroup("Quality of Life & Aesthetic", [
|
||||
NagMessages,
|
||||
Quickswap,
|
||||
HardMode,
|
||||
BootsControls
|
||||
]),
|
||||
OptionGroup("Experimental", [
|
||||
DungeonShuffle,
|
||||
EntranceShuffle
|
||||
]),
|
||||
OptionGroup("Visuals & Sound", [
|
||||
BootsControls,
|
||||
ForeignItemIcons,
|
||||
GfxMod,
|
||||
LinkPalette,
|
||||
Palette,
|
||||
TextShuffle,
|
||||
ForeignItemIcons,
|
||||
APTitleScreen,
|
||||
GfxMod,
|
||||
TextShuffle,
|
||||
TextMode,
|
||||
Music,
|
||||
MusicChangeCondition,
|
||||
LowHpBeep,
|
||||
TextMode,
|
||||
NoFlash,
|
||||
])
|
||||
]
|
||||
@@ -576,24 +632,12 @@ ladx_option_groups = [
|
||||
@dataclass
|
||||
class LinksAwakeningOptions(PerGameCommonOptions):
|
||||
logic: Logic
|
||||
# 'heartpiece': DefaultOnToggle, # description='Includes heart pieces in the item pool'),
|
||||
# 'seashells': DefaultOnToggle, # description='Randomizes the secret sea shells hiding in the ground/trees. (chest are always randomized)'),
|
||||
# 'heartcontainers': DefaultOnToggle, # description='Includes boss heart container drops in the item pool'),
|
||||
# 'instruments': DefaultOffToggle, # description='Instruments are placed on random locations, dungeon goal will just contain a random item.'),
|
||||
tradequest: TradeQuest # description='Trade quest items are randomized, each NPC takes its normal trade quest item, but gives a random item'),
|
||||
# 'witch': DefaultOnToggle, # description='Adds both the toadstool and the reward for giving the toadstool to the witch to the item pool'),
|
||||
rooster: Rooster # description='Adds the rooster to the item pool. Without this option, the rooster spot is still a check giving an item. But you will never find the rooster. Any rooster spot is accessible without rooster by other means.'),
|
||||
# 'boomerang': Boomerang,
|
||||
# 'randomstartlocation': DefaultOffToggle, # 'Randomize where your starting house is located'),
|
||||
experimental_dungeon_shuffle: DungeonShuffle # 'Randomizes the dungeon that each dungeon entrance leads to'),
|
||||
tradequest: TradeQuest
|
||||
rooster: Rooster
|
||||
experimental_dungeon_shuffle: DungeonShuffle
|
||||
experimental_entrance_shuffle: EntranceShuffle
|
||||
# 'bossshuffle': BossShuffle,
|
||||
# 'minibossshuffle': BossShuffle,
|
||||
goal: Goal
|
||||
instrument_count: InstrumentCount
|
||||
# 'itempool': ItemPool,
|
||||
# 'bowwow': Bowwow,
|
||||
# 'overworld': Overworld,
|
||||
link_palette: LinkPalette
|
||||
warps: Warps
|
||||
trendy_game: TrendyGame
|
||||
|
||||
@@ -71,7 +71,7 @@ class LinksAwakeningWebWorld(WebWorld):
|
||||
"setup/en",
|
||||
["zig"]
|
||||
)]
|
||||
theme = "dirt"
|
||||
theme = "ocean"
|
||||
option_groups = ladx_option_groups
|
||||
options_presets: typing.Dict[str, typing.Dict[str, typing.Any]] = {
|
||||
"Keysanity": {
|
||||
|
||||
Reference in New Issue
Block a user