LADX: Open Mabe Option (#3964)
* open mabe option swaps east mabe rocks for bushes * add open mabe to slot data * use upstream overworld option Instead of a standalone option, use upstream's "overworld" option, which we don't use yet but it leaves better space for the future * use ladxr_setting for consistency * newline
This commit is contained in:
parent
7c8d102c17
commit
e1a1cd1067
|
@ -58,7 +58,6 @@ from . import hints
|
|||
|
||||
from .patches import bank34
|
||||
from .utils import formatText
|
||||
from ..Options import TrendyGame, Palette, Warps
|
||||
from .roomEditor import RoomEditor, Object
|
||||
from .patches.aesthetics import rgb_to_bin, bin_to_rgb
|
||||
|
||||
|
@ -66,7 +65,7 @@ from .locations.keyLocation import KeyLocation
|
|||
|
||||
from BaseClasses import ItemClassification
|
||||
from ..Locations import LinksAwakeningLocation
|
||||
from ..Options import TrendyGame, Palette, MusicChangeCondition, BootsControls
|
||||
from ..Options import TrendyGame, Palette, MusicChangeCondition, Warps
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .. import LinksAwakeningWorld
|
||||
|
@ -156,6 +155,8 @@ def generateRom(args, world: "LinksAwakeningWorld"):
|
|||
if not world.ladxr_settings.rooster:
|
||||
patches.maptweaks.tweakMap(rom)
|
||||
patches.maptweaks.tweakBirdKeyRoom(rom)
|
||||
if world.ladxr_settings.overworld == "openmabe":
|
||||
patches.maptweaks.openMabe(rom)
|
||||
patches.chest.fixChests(rom)
|
||||
patches.shop.fixShop(rom)
|
||||
patches.rooster.patchRooster(rom)
|
||||
|
|
|
@ -144,7 +144,12 @@ class World:
|
|||
self._addEntrance("moblin_cave", graveyard, moblin_cave, None)
|
||||
|
||||
# "Ukuku Prairie"
|
||||
ukuku_prairie = Location().connect(mabe_village, POWER_BRACELET).connect(graveyard, POWER_BRACELET)
|
||||
ukuku_prairie = Location()
|
||||
if options.overworld == "openmabe":
|
||||
ukuku_prairie.connect(mabe_village, r.bush)
|
||||
else:
|
||||
ukuku_prairie.connect(mabe_village, POWER_BRACELET)
|
||||
ukuku_prairie.connect(graveyard, POWER_BRACELET)
|
||||
ukuku_prairie.connect(Location().add(TradeSequenceItem(0x07B, TRADING_ITEM_STICK)), TRADING_ITEM_BANANAS)
|
||||
ukuku_prairie.connect(Location().add(TradeSequenceItem(0x087, TRADING_ITEM_HONEYCOMB)), TRADING_ITEM_STICK)
|
||||
self._addEntrance("prairie_left_phone", ukuku_prairie, None, None)
|
||||
|
|
|
@ -38,3 +38,12 @@ def tweakBirdKeyRoom(rom):
|
|||
re.moveObject(2, 5, 3, 6)
|
||||
re.addEntity(3, 5, 0x9D)
|
||||
re.store(rom)
|
||||
|
||||
|
||||
def openMabe(rom):
|
||||
# replaces rocks on east side of Mabe Village with bushes
|
||||
re = RoomEditor(rom, 0x094)
|
||||
re.changeObject(5, 1, 0x5C)
|
||||
re.overlay[5 + 1 * 10] = 0x5C
|
||||
re.overlay[5 + 2 * 10] = 0x5C
|
||||
re.store(rom)
|
||||
|
|
|
@ -169,7 +169,7 @@ Note, some entrances can lead into water, use the warp-to-home from the save&qui
|
|||
[Never] you can never steal from the shop."""),
|
||||
Setting('bowwow', 'Special', 'g', 'Good boy mode', options=[('normal', '', 'Disabled'), ('always', 'a', 'Enabled'), ('swordless', 's', 'Enabled (swordless)')], default='normal',
|
||||
description='Allows BowWow to be taken into any area, damage bosses and more enemies. If enabled you always start with bowwow. Swordless option removes the swords from the game and requires you to beat the game without a sword and just bowwow.'),
|
||||
Setting('overworld', 'Special', 'O', 'Overworld', options=[('normal', '', 'Normal'), ('dungeondive', 'D', 'Dungeon dive'), ('nodungeons', 'N', 'No dungeons'), ('random', 'R', 'Randomized')], default='normal',
|
||||
Setting('overworld', 'Special', 'O', 'Overworld', options=[('normal', '', 'Normal'), ('dungeondive', 'D', 'Dungeon dive'), ('nodungeons', 'N', 'No dungeons'), ('random', 'R', 'Randomized'), ('openmabe', 'M', 'Open Mabe')], default='normal',
|
||||
description="""
|
||||
[Dungeon Dive] Create a different overworld where all the dungeons are directly accessible and almost no chests are located in the overworld.
|
||||
[No dungeons] All dungeons only consist of a boss fight and a instrument reward. Rest of the dungeon is removed.
|
||||
|
|
|
@ -313,15 +313,12 @@ class Bowwow(Choice):
|
|||
|
||||
class Overworld(Choice, LADXROption):
|
||||
"""
|
||||
[Dungeon Dive] Create a different overworld where all the dungeons are directly accessible and almost no chests are located in the overworld.
|
||||
[Tiny dungeons] All dungeons only consist of a boss fight and a instrument reward. Rest of the dungeon is removed.
|
||||
[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"
|
||||
option_normal = 0
|
||||
option_dungeon_dive = 1
|
||||
option_tiny_dungeons = 2
|
||||
# option_shuffled = 3
|
||||
option_open_mabe = 1
|
||||
default = option_normal
|
||||
|
||||
|
||||
|
@ -530,7 +527,6 @@ class InGameHints(DefaultOnToggle):
|
|||
display_name = "In-game Hints"
|
||||
|
||||
|
||||
|
||||
class ForeignItemIcons(Choice):
|
||||
"""
|
||||
Choose how to display foreign items.
|
||||
|
@ -562,6 +558,7 @@ ladx_option_groups = [
|
|||
OptionGroup("Miscellaneous", [
|
||||
TradeQuest,
|
||||
Rooster,
|
||||
Overworld,
|
||||
TrendyGame,
|
||||
InGameHints,
|
||||
NagMessages,
|
||||
|
@ -633,6 +630,7 @@ class LinksAwakeningOptions(PerGameCommonOptions):
|
|||
text_mode: TextMode
|
||||
no_flash: NoFlash
|
||||
in_game_hints: InGameHints
|
||||
overworld: Overworld
|
||||
|
||||
warp_improvements: Removed
|
||||
additional_warp_points: Removed
|
||||
|
|
|
@ -530,6 +530,7 @@ class LinksAwakeningWorld(World):
|
|||
"shuffle_instruments",
|
||||
"nag_messages",
|
||||
"hard_mode",
|
||||
"overworld",
|
||||
]
|
||||
|
||||
# use the default behaviour to grab options
|
||||
|
|
Loading…
Reference in New Issue