mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
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:
@@ -1,10 +1,9 @@
|
||||
import random
|
||||
|
||||
from BaseClasses import get_seed
|
||||
from BaseClasses import get_seed, ItemClassification
|
||||
from .. import SVTestBase, SVTestCase, allsanity_mods_6_x_x, fill_dataclass_with_default
|
||||
from ..assertion import ModAssertMixin, WorldAssertMixin
|
||||
from ... import items, Group, ItemClassification, create_content
|
||||
from ... import options
|
||||
from ... import options, items, Group, create_content
|
||||
from ...mods.mod_data import ModNames
|
||||
from ...options import SkillProgression, Walnutsanity
|
||||
from ...options.options import all_mods
|
||||
@@ -188,3 +187,17 @@ class TestModEntranceRando(SVTestCase):
|
||||
|
||||
self.assertEqual(len(set(randomized_connections.values())), len(randomized_connections.values()),
|
||||
f"Connections are duplicated in randomization.")
|
||||
|
||||
|
||||
class TestVanillaLogicAlternativeWhenQuestsAreNotRandomized(WorldAssertMixin, SVTestBase):
|
||||
"""We often forget to add an alternative rule that works when quests are not randomized. When this happens, some
|
||||
Location are not reachable because they depend on items that are only added to the pool when quests are randomized.
|
||||
"""
|
||||
options = allsanity_mods_6_x_x() | {
|
||||
options.QuestLocations.internal_name: options.QuestLocations.special_range_names["none"],
|
||||
options.Goal.internal_name: options.Goal.option_perfection,
|
||||
}
|
||||
|
||||
def test_given_no_quest_all_mods_when_generate_then_can_reach_everything(self):
|
||||
self.collect_everything()
|
||||
self.assert_can_reach_everything(self.multiworld)
|
||||
|
||||
Reference in New Issue
Block a user