implement StealingInLogic option

This commit is contained in:
threeandthreee
2024-09-16 15:21:33 -04:00
parent ee12dda361
commit 1099482abd
4 changed files with 18 additions and 15 deletions
-6
View File
@@ -233,12 +233,6 @@ def generateRom(args, world: "LinksAwakeningWorld"):
# The default rom has this build in, just need to set a flag and we get this save.
rom.patch(0, 0x0003, "00", "01")
# Patch the sword check on the shopkeeper turning around.
if world.ladxr_settings.steal == 'never':
rom.patch(4, 0x36F9, "FA4EDB", "3E0000")
elif world.ladxr_settings.steal == 'always':
rom.patch(4, 0x36F9, "FA4EDB", "3E0100")
if world.ladxr_settings.hpmode == 'inverted':
patches.health.setStartHealth(rom, 9)
elif world.ladxr_settings.hpmode == '1':
+6 -2
View File
@@ -40,8 +40,12 @@ class World:
self._addEntrance("start_house", mabe_village, start_house, None)
shop = Location("Shop")
Location().add(ShopItem(0)).connect(shop, OR(COUNT("RUPEES", 500), SWORD))
Location().add(ShopItem(1)).connect(shop, OR(COUNT("RUPEES", 1480), SWORD))
if options.steal:
Location().add(ShopItem(0)).connect(shop, OR(COUNT("RUPEES", 500), SWORD))
Location().add(ShopItem(1)).connect(shop, OR(COUNT("RUPEES", 1480), SWORD))
else:
Location().add(ShopItem(0)).connect(shop, COUNT("RUPEES", 500))
Location().add(ShopItem(1)).connect(shop, COUNT("RUPEES", 1480))
self._addEntrance("shop", mabe_village, shop, None)
dream_hut = Location("Dream Hut")
+11 -6
View File
@@ -284,12 +284,15 @@ class MusicChangeCondition(Choice):
# [Hero] Switch version hero mode, double damage, no heart/fairy drops.
# [One hit KO] You die on a single hit, always."""),
# 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 StealingInLogic(DefaultOffToggle, LADXROption):
"""
Puts stealing from the shop in logic if the player has a sword.
"""
display_name = "Stealing in Logic"
ladxr_name = "steal"
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.
@@ -521,6 +524,7 @@ ladx_option_groups = [
OptionGroup("Miscellaneous", [
TradeQuest,
Rooster,
StealingInLogic,
TrendyGame,
NagMessages,
BootsControls
@@ -579,3 +583,4 @@ class LinksAwakeningOptions(PerGameCommonOptions):
nag_messages: NagMessages
ap_title_screen: APTitleScreen
boots_controls: BootsControls
stealing_in_logic: StealingInLogic
+1 -1
View File
@@ -85,7 +85,7 @@ Title screen graphics by toomanyteeth✨ (https://instagram.com/toomanyyyteeth)
<p>The walrus is moved a bit, so that you can access the desert without taking Marin on a date.</p>
<h3>Logic</h3>
<p>Depending on your options, you can only steal after you find the sword, always, or never.</p>
<p>Depending on your options, you can only steal after you find the sword.</p>
<p>Do not forget that there are two items in the rafting ride. You can access this with just Hookshot or Flippers.</p>
<p>Killing enemies with bombs is in normal logic. You can switch to casual logic if you do not want this.</p>
<p>D7 confuses some people, but by dropping down pits on the 2nd floor you can access almost all of this dungeon, even without feather and power bracelet.</p>