Stardew Valley: Fix generation issue with Master Angler goal and vanilla tools (#1498)
* - Can Catch every fish doesn't need fishing rods if they are not shuffled * add has_max_fishing_rod * add test for master angler + vanilla tools --------- Co-authored-by: Alex Gilbert <alexgilbert@yahoo.com>
This commit is contained in:
parent
30b70b2055
commit
96d7a3a64c
|
@ -946,11 +946,16 @@ class StardewLogic:
|
||||||
return region_rule & season_rule & difficulty_rule
|
return region_rule & season_rule & difficulty_rule
|
||||||
|
|
||||||
def can_catch_every_fish(self) -> StardewRule:
|
def can_catch_every_fish(self) -> StardewRule:
|
||||||
rules = [self.has_skill_level("Fishing", 10), self.received("Progressive Fishing Rod", 4)]
|
rules = [self.has_skill_level("Fishing", 10), self.has_max_fishing_rod()]
|
||||||
for fish in all_fish_items:
|
for fish in all_fish_items:
|
||||||
rules.append(self.can_catch_fish(fish))
|
rules.append(self.can_catch_fish(fish))
|
||||||
return _And(rules)
|
return _And(rules)
|
||||||
|
|
||||||
|
def has_max_fishing_rod(self) -> StardewRule:
|
||||||
|
if self.options[options.ToolProgression] == options.ToolProgression.option_progressive:
|
||||||
|
return self.received("Progressive Fishing Rod", 4)
|
||||||
|
return self.can_get_fishing_xp()
|
||||||
|
|
||||||
def can_cook(self) -> StardewRule:
|
def can_cook(self) -> StardewRule:
|
||||||
return self.has_house(1) or self.has_skill_level("Foraging", 9)
|
return self.has_house(1) or self.has_skill_level("Foraging", 9)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
from worlds.stardew_valley.test import SVTestBase
|
||||||
|
|
||||||
|
|
||||||
|
class TestMasterAnglerVanillaTools(SVTestBase):
|
||||||
|
options = {
|
||||||
|
"goal": "master_angler",
|
||||||
|
"tool_progression": "vanilla",
|
||||||
|
}
|
|
@ -11,4 +11,10 @@ class SVTestBase(WorldTestBase):
|
||||||
|
|
||||||
def world_setup(self, *args, **kwargs):
|
def world_setup(self, *args, **kwargs):
|
||||||
super().world_setup(*args, **kwargs)
|
super().world_setup(*args, **kwargs)
|
||||||
|
if self.constructed:
|
||||||
self.world = self.multiworld.worlds[self.player]
|
self.world = self.multiworld.worlds[self.player]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def run_default_tests(self) -> bool:
|
||||||
|
# world_setup is overridden, so it'd always run default tests when importing SVTestBase
|
||||||
|
return type(self) is not SVTestBase and super().run_default_tests
|
||||||
|
|
Loading…
Reference in New Issue