Stardew valley: Fix Aurora Vineyard Tablet logic (#4512)
* - Add requirement on Aurora Vineyard tablet to start the quest * - Add rule for using the aurora vineyard staircase * - Added a test for the tablet * - Add a few missing items to the test * - Introduce a new item to split the quest from the door and avoir ER issues * - Optimize imports * - Forgot to generate the item * fix Aurora mess # Conflicts: # worlds/stardew_valley/rules.py # worlds/stardew_valley/test/mods/TestMods.py * fix a couple errors in the cherry picked commit, added a method to improve readability and reduce chance of human error on story quest conditions * - remove blank line * - Code review comments * - fixed weird assert name * - fixed accidentally surviving line * - Fixed imports --------- Co-authored-by: Jouramie <16137441+Jouramie@users.noreply.github.com>
This commit is contained in:
@@ -149,7 +149,7 @@ def set_bundle_rules(bundle_rooms: List[BundleRoom], logic: StardewLogic, multiw
|
||||
bundle_rules = logic.bundle.can_complete_bundle(bundle)
|
||||
if bundle_room.name == CCRoom.raccoon_requests:
|
||||
num = int(bundle.name[-1])
|
||||
extra_raccoons = 1 if world_options.quest_locations >= 0 else 0
|
||||
extra_raccoons = 1 if world_options.quest_locations.has_story_quests() else 0
|
||||
extra_raccoons = extra_raccoons + num
|
||||
bundle_rules = logic.received(CommunityUpgrade.raccoon, extra_raccoons) & bundle_rules
|
||||
if num > 1:
|
||||
@@ -505,7 +505,7 @@ def set_cropsanity_rules(logic: StardewLogic, multiworld, player, world_content:
|
||||
|
||||
|
||||
def set_story_quests_rules(all_location_names: Set[str], logic: StardewLogic, multiworld, player, world_options: StardewValleyOptions):
|
||||
if world_options.quest_locations < 0:
|
||||
if world_options.quest_locations.has_no_story_quests():
|
||||
return
|
||||
for quest in locations.locations_by_tag[LocationTags.STORY_QUEST]:
|
||||
if quest.name in all_location_names and (quest.mod_name is None or quest.mod_name in world_options.mods):
|
||||
@@ -540,9 +540,9 @@ slay_monsters = "Slay Monsters"
|
||||
|
||||
|
||||
def set_help_wanted_quests_rules(logic: StardewLogic, multiworld, player, world_options: StardewValleyOptions):
|
||||
help_wanted_number = world_options.quest_locations.value
|
||||
if help_wanted_number < 0:
|
||||
if world_options.quest_locations.has_no_story_quests():
|
||||
return
|
||||
help_wanted_number = world_options.quest_locations.value
|
||||
for i in range(0, help_wanted_number):
|
||||
set_number = i // 7
|
||||
month_rule = logic.time.has_lived_months(set_number)
|
||||
@@ -973,6 +973,7 @@ def set_sve_rules(logic: StardewLogic, multiworld: MultiWorld, player: int, worl
|
||||
set_entrance_rule(multiworld, player, SVEEntrance.use_bear_shop, (logic.mod.sve.can_buy_bear_recipe()))
|
||||
set_entrance_rule(multiworld, player, SVEEntrance.railroad_to_grampleton_station, logic.received(SVEQuestItem.scarlett_job_offer))
|
||||
set_entrance_rule(multiworld, player, SVEEntrance.museum_to_gunther_bedroom, logic.relationship.has_hearts(ModNPC.gunther, 2))
|
||||
set_entrance_rule(multiworld, player, SVEEntrance.to_aurora_basement, logic.mod.quest.has_completed_aurora_vineyard_bundle())
|
||||
logic.mod.sve.initialize_rules()
|
||||
for location in logic.registry.sve_location_rules:
|
||||
MultiWorldRules.set_rule(multiworld.get_location(location, player),
|
||||
|
||||
Reference in New Issue
Block a user