Stardew Valley: 5.x.x - The Allsanity Update (#2764)

Major Content update for Stardew Valley, including the following features

- Major performance improvements all across the Stardew Valley apworld, including a significant reduction in the test time
- Randomized Farm Type
- Bundles rework (Remixed Bundles and Missing Bundle!)
- New Settings:
  * Shipsanity - Shipping individual items
  * Monstersanity - Slaying monsters
  * Cooksanity - Cooking individual recipes
  * Chefsanity - Learning individual recipes
  * Craftsanity - Crafting individual items
- New Goals:
  * Protector of the Valley - Complete every monster slayer goal
  * Full Shipment - Ship every item
  * Craftmaster - Craft every item
  * Gourmet Chef - Cook every recipe
  * Legend - Earn 10 000 000g
  * Mystery of the Stardrops - Find every stardrop (Maguffin Hunt)
  * Allsanity - Complete every check in your slot
- Building Shuffle: Cheaper options
- Tool Shuffle: Cheaper options
- Money rework
- New traps
- New isolated checks and items, including the farm cave, the movie theater, etc
- Mod Support: SVE [Albrekka]
- Mod Support: Distant Lands [Albrekka]
- Mod Support: Hat Mouse Lacey [Albrekka]
- Mod Support: Boarding House [Albrekka]

Co-authored-by: Witchybun <elnendil@gmail.com>
Co-authored-by: Witchybun <96719127+Witchybun@users.noreply.github.com>
Co-authored-by: Jouramie <jouramie@hotmail.com>
Co-authored-by: Alchav <59858495+Alchav@users.noreply.github.com>
This commit is contained in:
agilbert1412
2024-03-15 15:05:14 +03:00
committed by GitHub
parent f7da833572
commit 52e65e208e
177 changed files with 17815 additions and 6863 deletions

View File

@@ -0,0 +1,226 @@
import unittest
from typing import Set
from ...data.fish_data import get_fish_for_mods
from ...mods.mod_data import ModNames
from ...strings.fish_names import Fish, SVEFish
no_mods: Set[str] = set()
sve: Set[str] = {ModNames.sve}
class TestGetFishForMods(unittest.TestCase):
def test_no_mods_all_vanilla_fish(self):
all_fish = get_fish_for_mods(no_mods)
fish_names = {fish.name for fish in all_fish}
self.assertIn(Fish.albacore, fish_names)
self.assertIn(Fish.anchovy, fish_names)
self.assertIn(Fish.blue_discus, fish_names)
self.assertIn(Fish.bream, fish_names)
self.assertIn(Fish.bullhead, fish_names)
self.assertIn(Fish.carp, fish_names)
self.assertIn(Fish.catfish, fish_names)
self.assertIn(Fish.chub, fish_names)
self.assertIn(Fish.dorado, fish_names)
self.assertIn(Fish.eel, fish_names)
self.assertIn(Fish.flounder, fish_names)
self.assertIn(Fish.ghostfish, fish_names)
self.assertIn(Fish.halibut, fish_names)
self.assertIn(Fish.herring, fish_names)
self.assertIn(Fish.ice_pip, fish_names)
self.assertIn(Fish.largemouth_bass, fish_names)
self.assertIn(Fish.lava_eel, fish_names)
self.assertIn(Fish.lingcod, fish_names)
self.assertIn(Fish.lionfish, fish_names)
self.assertIn(Fish.midnight_carp, fish_names)
self.assertIn(Fish.octopus, fish_names)
self.assertIn(Fish.perch, fish_names)
self.assertIn(Fish.pike, fish_names)
self.assertIn(Fish.pufferfish, fish_names)
self.assertIn(Fish.rainbow_trout, fish_names)
self.assertIn(Fish.red_mullet, fish_names)
self.assertIn(Fish.red_snapper, fish_names)
self.assertIn(Fish.salmon, fish_names)
self.assertIn(Fish.sandfish, fish_names)
self.assertIn(Fish.sardine, fish_names)
self.assertIn(Fish.scorpion_carp, fish_names)
self.assertIn(Fish.sea_cucumber, fish_names)
self.assertIn(Fish.shad, fish_names)
self.assertIn(Fish.slimejack, fish_names)
self.assertIn(Fish.smallmouth_bass, fish_names)
self.assertIn(Fish.squid, fish_names)
self.assertIn(Fish.stingray, fish_names)
self.assertIn(Fish.stonefish, fish_names)
self.assertIn(Fish.sturgeon, fish_names)
self.assertIn(Fish.sunfish, fish_names)
self.assertIn(Fish.super_cucumber, fish_names)
self.assertIn(Fish.tiger_trout, fish_names)
self.assertIn(Fish.tilapia, fish_names)
self.assertIn(Fish.tuna, fish_names)
self.assertIn(Fish.void_salmon, fish_names)
self.assertIn(Fish.walleye, fish_names)
self.assertIn(Fish.woodskip, fish_names)
self.assertIn(Fish.blob_fish, fish_names)
self.assertIn(Fish.midnight_squid, fish_names)
self.assertIn(Fish.spook_fish, fish_names)
self.assertIn(Fish.angler, fish_names)
self.assertIn(Fish.crimsonfish, fish_names)
self.assertIn(Fish.glacierfish, fish_names)
self.assertIn(Fish.legend, fish_names)
self.assertIn(Fish.mutant_carp, fish_names)
self.assertIn(Fish.ms_angler, fish_names)
self.assertIn(Fish.son_of_crimsonfish, fish_names)
self.assertIn(Fish.glacierfish_jr, fish_names)
self.assertIn(Fish.legend_ii, fish_names)
self.assertIn(Fish.radioactive_carp, fish_names)
self.assertIn(Fish.clam, fish_names)
self.assertIn(Fish.cockle, fish_names)
self.assertIn(Fish.crab, fish_names)
self.assertIn(Fish.crayfish, fish_names)
self.assertIn(Fish.lobster, fish_names)
self.assertIn(Fish.mussel, fish_names)
self.assertIn(Fish.oyster, fish_names)
self.assertIn(Fish.periwinkle, fish_names)
self.assertIn(Fish.shrimp, fish_names)
self.assertIn(Fish.snail, fish_names)
def test_no_mods_no_sve_fish(self):
all_fish = get_fish_for_mods(no_mods)
fish_names = {fish.name for fish in all_fish}
self.assertNotIn(SVEFish.baby_lunaloo, fish_names)
self.assertNotIn(SVEFish.bonefish, fish_names)
self.assertNotIn(SVEFish.bull_trout, fish_names)
self.assertNotIn(SVEFish.butterfish, fish_names)
self.assertNotIn(SVEFish.clownfish, fish_names)
self.assertNotIn(SVEFish.daggerfish, fish_names)
self.assertNotIn(SVEFish.frog, fish_names)
self.assertNotIn(SVEFish.gemfish, fish_names)
self.assertNotIn(SVEFish.goldenfish, fish_names)
self.assertNotIn(SVEFish.grass_carp, fish_names)
self.assertNotIn(SVEFish.king_salmon, fish_names)
self.assertNotIn(SVEFish.kittyfish, fish_names)
self.assertNotIn(SVEFish.lunaloo, fish_names)
self.assertNotIn(SVEFish.meteor_carp, fish_names)
self.assertNotIn(SVEFish.minnow, fish_names)
self.assertNotIn(SVEFish.puppyfish, fish_names)
self.assertNotIn(SVEFish.radioactive_bass, fish_names)
self.assertNotIn(SVEFish.seahorse, fish_names)
self.assertNotIn(SVEFish.shiny_lunaloo, fish_names)
self.assertNotIn(SVEFish.snatcher_worm, fish_names)
self.assertNotIn(SVEFish.starfish, fish_names)
self.assertNotIn(SVEFish.torpedo_trout, fish_names)
self.assertNotIn(SVEFish.undeadfish, fish_names)
self.assertNotIn(SVEFish.void_eel, fish_names)
self.assertNotIn(SVEFish.water_grub, fish_names)
self.assertNotIn(SVEFish.sea_sponge, fish_names)
self.assertNotIn(SVEFish.dulse_seaweed, fish_names)
def test_sve_all_vanilla_fish(self):
all_fish = get_fish_for_mods(no_mods)
fish_names = {fish.name for fish in all_fish}
self.assertIn(Fish.albacore, fish_names)
self.assertIn(Fish.anchovy, fish_names)
self.assertIn(Fish.blue_discus, fish_names)
self.assertIn(Fish.bream, fish_names)
self.assertIn(Fish.bullhead, fish_names)
self.assertIn(Fish.carp, fish_names)
self.assertIn(Fish.catfish, fish_names)
self.assertIn(Fish.chub, fish_names)
self.assertIn(Fish.dorado, fish_names)
self.assertIn(Fish.eel, fish_names)
self.assertIn(Fish.flounder, fish_names)
self.assertIn(Fish.ghostfish, fish_names)
self.assertIn(Fish.halibut, fish_names)
self.assertIn(Fish.herring, fish_names)
self.assertIn(Fish.ice_pip, fish_names)
self.assertIn(Fish.largemouth_bass, fish_names)
self.assertIn(Fish.lava_eel, fish_names)
self.assertIn(Fish.lingcod, fish_names)
self.assertIn(Fish.lionfish, fish_names)
self.assertIn(Fish.midnight_carp, fish_names)
self.assertIn(Fish.octopus, fish_names)
self.assertIn(Fish.perch, fish_names)
self.assertIn(Fish.pike, fish_names)
self.assertIn(Fish.pufferfish, fish_names)
self.assertIn(Fish.rainbow_trout, fish_names)
self.assertIn(Fish.red_mullet, fish_names)
self.assertIn(Fish.red_snapper, fish_names)
self.assertIn(Fish.salmon, fish_names)
self.assertIn(Fish.sandfish, fish_names)
self.assertIn(Fish.sardine, fish_names)
self.assertIn(Fish.scorpion_carp, fish_names)
self.assertIn(Fish.sea_cucumber, fish_names)
self.assertIn(Fish.shad, fish_names)
self.assertIn(Fish.slimejack, fish_names)
self.assertIn(Fish.smallmouth_bass, fish_names)
self.assertIn(Fish.squid, fish_names)
self.assertIn(Fish.stingray, fish_names)
self.assertIn(Fish.stonefish, fish_names)
self.assertIn(Fish.sturgeon, fish_names)
self.assertIn(Fish.sunfish, fish_names)
self.assertIn(Fish.super_cucumber, fish_names)
self.assertIn(Fish.tiger_trout, fish_names)
self.assertIn(Fish.tilapia, fish_names)
self.assertIn(Fish.tuna, fish_names)
self.assertIn(Fish.void_salmon, fish_names)
self.assertIn(Fish.walleye, fish_names)
self.assertIn(Fish.woodskip, fish_names)
self.assertIn(Fish.blob_fish, fish_names)
self.assertIn(Fish.midnight_squid, fish_names)
self.assertIn(Fish.spook_fish, fish_names)
self.assertIn(Fish.angler, fish_names)
self.assertIn(Fish.crimsonfish, fish_names)
self.assertIn(Fish.glacierfish, fish_names)
self.assertIn(Fish.legend, fish_names)
self.assertIn(Fish.mutant_carp, fish_names)
self.assertIn(Fish.ms_angler, fish_names)
self.assertIn(Fish.son_of_crimsonfish, fish_names)
self.assertIn(Fish.glacierfish_jr, fish_names)
self.assertIn(Fish.legend_ii, fish_names)
self.assertIn(Fish.radioactive_carp, fish_names)
self.assertIn(Fish.clam, fish_names)
self.assertIn(Fish.cockle, fish_names)
self.assertIn(Fish.crab, fish_names)
self.assertIn(Fish.crayfish, fish_names)
self.assertIn(Fish.lobster, fish_names)
self.assertIn(Fish.mussel, fish_names)
self.assertIn(Fish.oyster, fish_names)
self.assertIn(Fish.periwinkle, fish_names)
self.assertIn(Fish.shrimp, fish_names)
self.assertIn(Fish.snail, fish_names)
def test_sve_has_sve_fish(self):
all_fish = get_fish_for_mods(sve)
fish_names = {fish.name for fish in all_fish}
self.assertIn(SVEFish.baby_lunaloo, fish_names)
self.assertIn(SVEFish.bonefish, fish_names)
self.assertIn(SVEFish.bull_trout, fish_names)
self.assertIn(SVEFish.butterfish, fish_names)
self.assertIn(SVEFish.clownfish, fish_names)
self.assertIn(SVEFish.daggerfish, fish_names)
self.assertIn(SVEFish.frog, fish_names)
self.assertIn(SVEFish.gemfish, fish_names)
self.assertIn(SVEFish.goldenfish, fish_names)
self.assertIn(SVEFish.grass_carp, fish_names)
self.assertIn(SVEFish.king_salmon, fish_names)
self.assertIn(SVEFish.kittyfish, fish_names)
self.assertIn(SVEFish.lunaloo, fish_names)
self.assertIn(SVEFish.meteor_carp, fish_names)
self.assertIn(SVEFish.minnow, fish_names)
self.assertIn(SVEFish.puppyfish, fish_names)
self.assertIn(SVEFish.radioactive_bass, fish_names)
self.assertIn(SVEFish.seahorse, fish_names)
self.assertIn(SVEFish.shiny_lunaloo, fish_names)
self.assertIn(SVEFish.snatcher_worm, fish_names)
self.assertIn(SVEFish.starfish, fish_names)
self.assertIn(SVEFish.torpedo_trout, fish_names)
self.assertIn(SVEFish.undeadfish, fish_names)
self.assertIn(SVEFish.void_eel, fish_names)
self.assertIn(SVEFish.water_grub, fish_names)
self.assertIn(SVEFish.sea_sponge, fish_names)
self.assertIn(SVEFish.dulse_seaweed, fish_names)