Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Stardew Valley Expanded Content #7

Merged
merged 56 commits into from
Nov 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
b978aeb
- Added Monstersanity locations
agilbert1412 Aug 4, 2023
3e0f104
- Changed many items from progression to useful
agilbert1412 Aug 9, 2023
f8acfb7
- Progress on new items for logic
agilbert1412 Aug 18, 2023
f34efa5
- Missing Bundle and changes for recursive region access update
agilbert1412 Aug 24, 2023
877cc6e
- Added minsanity options
agilbert1412 Aug 26, 2023
12710e3
- Fix hearts >= into >
agilbert1412 Sep 9, 2023
f64b706
Create bundle Logic
Albrekka Oct 24, 2023
6dadd45
Initial SVE Items and Locations
Albrekka Oct 24, 2023
56309b7
Add initial SVE regions
Albrekka Oct 24, 2023
8928e7e
Add SVE fish and villagers
Albrekka Oct 24, 2023
ea1cc83
Initial SVE logic port
Albrekka Oct 24, 2023
80dbd46
Second Pass of SVE Logic Porting
Albrekka Oct 30, 2023
899bb55
Finalize initial SVE logic porting
Albrekka Oct 30, 2023
f47b281
Modified NPC injection method
Albrekka Oct 30, 2023
2eaf489
Introduce new modified flags for mods.
Albrekka Oct 30, 2023
3577947
Add remove exit method.
Albrekka Oct 30, 2023
c45c5f2
Add SVE to options.
Albrekka Nov 8, 2023
3fb3594
- Add system for modifying villagers when some mods are active
agilbert1412 Nov 8, 2023
5cb562f
Fix some errors.
Albrekka Nov 8, 2023
1867418
Fill out more strings
Albrekka Nov 8, 2023
5cc436b
Utilize new strings, fix class name issue
Albrekka Nov 8, 2023
c29e644
Merge pull request #1 from agilbert1412/StardewValley/SVEVillagerModi…
Witchybun Nov 8, 2023
fcf4908
- Fix Quests Logic
agilbert1412 Nov 8, 2023
7998ad0
- Gave SVE logic a little push in the right direction
agilbert1412 Nov 8, 2023
484a79f
Merge pull request #2 from agilbert1412/StardewValley/SVE_QuestLogic
Witchybun Nov 9, 2023
058ea6a
Clean up relationship logic due to villager change.
Albrekka Nov 9, 2023
1a1836b
Clean up logic with more proper imports.
Albrekka Nov 9, 2023
798ddf0
Fix friendsanity villager checks.
Albrekka Nov 9, 2023
eb2da7d
- Fixed a bunch of syntax errors left and right
agilbert1412 Nov 9, 2023
5434caf
Merge pull request #3 from agilbert1412/StardewValley/SVE_TryToHelpOu…
Witchybun Nov 9, 2023
fa6de85
- Fixes to tests
agilbert1412 Nov 9, 2023
5082665
Merge pull request #4 from agilbert1412/StardewValley/SVE_TestFixes
Witchybun Nov 9, 2023
559f5be
- Fix adventure guild entrance
agilbert1412 Nov 9, 2023
e2b930e
- Fix quest test
agilbert1412 Nov 9, 2023
284dfdd
Merge pull request #5 from agilbert1412/StardewValley/SVE_AdventureGuild
Witchybun Nov 9, 2023
db44327
Fix item logic.
Albrekka Nov 9, 2023
473deee
Move grandpa's shed location
Albrekka Nov 9, 2023
897aedd
Fix region rules for ER
Albrekka Nov 9, 2023
5963451
Fix ginger island discrepency
Albrekka Nov 9, 2023
a5e5407
Remove strange yamls tf
Albrekka Nov 12, 2023
002adbd
- removed redundant array creations
agilbert1412 Nov 12, 2023
f2456c1
Merge branch 'SVE' of https://github.com/Witchybun/Archipelago into S…
agilbert1412 Nov 12, 2023
0da4e3d
- Slight refactoring for bundle logic
agilbert1412 Nov 12, 2023
ed83aa7
- Simplified rules
agilbert1412 Nov 12, 2023
5d6b315
- revert a change that wasn't necessary
agilbert1412 Nov 12, 2023
27bdf5d
- extracted a method in sve item rules
agilbert1412 Nov 12, 2023
0bcb106
- Item logic improvements
agilbert1412 Nov 12, 2023
c79ce09
- Refactor modded quest logic
agilbert1412 Nov 12, 2023
065917a
- Remove duplicated options
agilbert1412 Nov 12, 2023
7f4dce5
- Fix fishing rules when playing unmodded and needing to catch any fi…
agilbert1412 Nov 12, 2023
ea90045
- Sort fish names
agilbert1412 Nov 12, 2023
f231a54
Move Names
Albrekka Nov 12, 2023
f79b2f2
Add SVE Recipes, fix rules
Albrekka Nov 12, 2023
61b4c3a
- Added filtering for gourmet chef recipes based on mod state
agilbert1412 Nov 12, 2023
2919cb8
- Fix syntax error
agilbert1412 Nov 12, 2023
651c206
Add Recipe Rules
Albrekka Nov 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions worlds/stardew_valley/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from .locations import location_table, create_locations, LocationData
from .logic.logic import StardewLogic
from .logic.time_logic import MAX_MONTHS
from .logic.bundle_logic import BundleLogic
from .options import StardewValleyOptions, SeasonRandomization, Goal, BundleRandomization, BundlePrice, NumberOfLuckBuffs, NumberOfMovementBuffs, \
BackpackProgression, BuildingProgression, ExcludeGingerIsland
from .regions import create_regions
Expand Down Expand Up @@ -65,6 +66,7 @@ class StardewValleyWorld(World):

options_dataclass = StardewValleyOptions
options: StardewValleyOptions
bundle: BundleLogic
logic: StardewLogic

web = StardewWebWorld()
Expand Down Expand Up @@ -183,7 +185,7 @@ def setup_construction_events(self):
def setup_victory(self):
if self.options.goal == Goal.option_community_center:
self.create_event_location(location_table[GoalName.community_center],
self.logic.can_complete_community_center().simplify(),
self.logic.bundle.can_complete_community_center().simplify(),
Event.victory)
elif self.options.goal == Goal.option_grandpa_evaluation:
self.create_event_location(location_table[GoalName.grandpa_evaluation],
Expand All @@ -195,7 +197,7 @@ def setup_victory(self):
Event.victory)
elif self.options.goal == Goal.option_cryptic_note:
self.create_event_location(location_table[GoalName.cryptic_note],
self.logic.can_complete_quest("Cryptic Note").simplify(),
self.logic.quest.can_complete_quest("Cryptic Note").simplify(),
Event.victory)
elif self.options.goal == Goal.option_master_angler:
self.create_event_location(location_table[GoalName.master_angler],
Expand Down
2 changes: 1 addition & 1 deletion worlds/stardew_valley/data/craftable_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ def create_recipe(name: str, ingredients: Dict[str, int], source: RecipeSource)
basic_fertilizer = skill_recipe(Fertilizer.basic, Skill.farming, 1, {Material.sap: 2})
quality_fertilizer = skill_recipe(Fertilizer.quality, Skill.farming, 9, {Material.sap: 2, Fish.any: 1})
deluxe_fertilizer = ap_recipe(Fertilizer.deluxe, {MetalBar.iridium: 1, Material.sap: 40})
basic_speed_gro = skill_recipe(SpeedGro.basic, Skill.farming, 3, {ArtisanGood.pine_tar: 1, WaterItem.clam: 1})
basic_speed_gro = skill_recipe(SpeedGro.basic, Skill.farming, 3, {ArtisanGood.pine_tar: 1, Fish.clam: 1})
deluxe_speed_gro = skill_recipe(SpeedGro.deluxe, Skill.farming, 8, {ArtisanGood.oak_resin: 1, WaterItem.coral: 1})
hyper_speed_gro = ap_recipe(SpeedGro.hyper, {Ore.radioactive: 1, Fossil.bone_fragment: 3, Loot.solar_essence: 1})
basic_retaining_soil = skill_recipe(RetainingSoil.basic, Skill.farming, 4, {Material.stone: 2})
Expand Down
54 changes: 50 additions & 4 deletions worlds/stardew_valley/data/fish_data.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from dataclasses import dataclass
from typing import List, Tuple, Union, Optional
from typing import List, Tuple, Union, Optional, Set

from . import season_data as season
from .game_item import GameItem
from ..strings.fish_names import Fish
from ..strings.region_names import Region
from ..strings.fish_names import Fish, SVEFish
from ..strings.region_names import Region, SVERegion
from ..mods.mod_data import ModNames


@dataclass(frozen=True)
Expand All @@ -14,7 +15,7 @@ class FishItem(GameItem):
difficulty: int
legendary: bool
extended_family: bool
mod_name: Optional[str]
mod_name: Optional[str] = None

def __repr__(self):
return f"{self.name} [{self.item_id}] (Locations: {self.locations} |" \
Expand Down Expand Up @@ -42,6 +43,13 @@ def __repr__(self):
ginger_island_river = (Region.island_west,)
pirate_cove = (Region.pirate_cove,)

crimson_badlands = (SVERegion.crimson_badlands,)
shearwater = (SVERegion.shearwater,)
highlands = (SVERegion.highlands,)
sprite_spring = (SVERegion.sprite_spring,)
fable_reef = (SVERegion.fable_reef,)
vineyard = (SVERegion.blue_moon_vineyard,)

all_fish: List[FishItem] = []


Expand Down Expand Up @@ -121,6 +129,35 @@ def create_fish(name: str, item_id: int, locations: Tuple[str, ...], seasons: Un
legend_ii = create_fish(Fish.legend_ii, 163, mountain_lake, season.spring, 110, True, True)
radioactive_carp = create_fish(Fish.radioactive_carp, 682, sewers, season.all_seasons, 80, True, True)

baby_lunaloo = create_fish(SVEFish.baby_lunaloo, 3006, ginger_island_ocean, season.all_seasons, 15, mod_name=ModNames.sve)
bonefish = create_fish(SVEFish.bonefish, 3013, crimson_badlands, season.all_seasons, 70, mod_name=ModNames.sve)
bull_trout = create_fish(SVEFish.bull_trout, 3014, forest_river, season.not_spring, 45, mod_name=ModNames.sve)
butterfish = create_fish(SVEFish.butterfish, 3015, shearwater, season.not_winter, 75, mod_name=ModNames.sve)
clownfish = create_fish(SVEFish.clownfish, 3016, ginger_island_ocean, season.all_seasons, 45, mod_name=ModNames.sve)
daggerfish = create_fish(SVEFish.daggerfish, 3017, highlands, season.all_seasons, 50, mod_name=ModNames.sve)
frog = create_fish(SVEFish.frog, 3023, mountain_lake, (season.spring, season.summer), 70, mod_name=ModNames.sve)
gemfish = create_fish(SVEFish.gemfish, 3027, highlands, season.all_seasons, 100, mod_name=ModNames.sve)
goldenfish = create_fish(SVEFish.goldenfish, 3031, sprite_spring, season.all_seasons, 60, mod_name=ModNames.sve)
grass_carp = create_fish(SVEFish.grass_carp, 3034, secret_woods, (season.spring, season.summer), 85, mod_name=ModNames.sve)
king_salmon = create_fish(SVEFish.king_salmon, 3044, forest_river, (season.spring, season.summer), 80, mod_name=ModNames.sve)
kittyfish = create_fish(SVEFish.kittyfish, 3045, shearwater, (season.fall, season.winter), 85, mod_name=ModNames.sve)
lunaloo = create_fish(SVEFish.lunaloo, 3049, ginger_island_ocean, season.all_seasons, 70, mod_name=ModNames.sve)
meteor_carp = create_fish(SVEFish.meteor_carp, 3051, sprite_spring, season.all_seasons, 80, mod_name=ModNames.sve)
minnow = create_fish(SVEFish.minnow, 3052, town_river, season.all_seasons, 1, mod_name=ModNames.sve)
puppyfish = create_fish(SVEFish.puppyfish, 3061, shearwater, season.not_winter, 85, mod_name=ModNames.sve)
radioactive_bass = create_fish(SVEFish.radioactive_bass, 3062, sewers, season.all_seasons, 90, mod_name=ModNames.sve)
seahorse = create_fish(SVEFish.seahorse, 3068, ginger_island_ocean, season.all_seasons, 25, mod_name=ModNames.sve)
shiny_lunaloo = create_fish(SVEFish.shiny_lunaloo, 3070, ginger_island_ocean, season.all_seasons, 110, mod_name=ModNames.sve)
snatcher_worm = create_fish(SVEFish.snatcher_worm, 3075, mutant_bug_lair, season.all_seasons, 75, mod_name=ModNames.sve)
starfish = create_fish(SVEFish.starfish, 3079, ginger_island_ocean, season.all_seasons, 75, mod_name=ModNames.sve)
torpedo_trout = create_fish(SVEFish.torpedo_trout, 3084, fable_reef, season.all_seasons, 70, mod_name=ModNames.sve)
undeadfish = create_fish(SVEFish.undeadfish, 3085, crimson_badlands, season.all_seasons, 80, mod_name=ModNames.sve)
void_eel = create_fish(SVEFish.void_eel, 3087, witch_swamp, season.all_seasons, 100, mod_name=ModNames.sve)
water_grub = create_fish(SVEFish.water_grub, 3094, mutant_bug_lair, season.all_seasons, 60, mod_name=ModNames.sve)
sea_sponge = create_fish(SVEFish.sea_sponge, 3067, ginger_island_ocean, season.all_seasons, 40, mod_name=ModNames.sve)
dulse_seaweed = create_fish(SVEFish.dulse_seaweed, 3020, vineyard, season.all_seasons, 50, mod_name=ModNames.sve)


clam = create_fish("Clam", 372, ocean, season.all_seasons, -1)
cockle = create_fish("Cockle", 718, ocean, season.all_seasons, -1)
crab = create_fish("Crab", 717, ocean, season.all_seasons, -1)
Expand All @@ -138,3 +175,12 @@ def create_fish(name: str, item_id: int, locations: Tuple[str, ...], seasons: Un
island_fish = [lionfish, blue_discus, stingray, *extended_family]

all_fish_by_name = {fish.name: fish for fish in all_fish}


def get_fish_for_mods(mods: Set[str]) -> List[FishItem]:
fish_for_mods = []
for fish in all_fish:
if fish.mod_name and fish.mod_name not in mods:
continue
fish_for_mods.append(fish)
return fish_for_mods
39 changes: 39 additions & 0 deletions worlds/stardew_valley/data/items.csv
Original file line number Diff line number Diff line change
Expand Up @@ -753,5 +753,44 @@ id,name,classification,groups,mod_name
10109,Delores <3,progression,FRIENDSANITY,Delores - Custom NPC
10110,Ayeisha <3,progression,FRIENDSANITY,Ayeisha - The Postal Worker (Custom NPC)
10111,Riley <3,progression,FRIENDSANITY,Custom NPC - Riley
10112,Claire <3,progression,FRIENDSANITY,Stardew Valley Expanded
10113,Lance <3,progression,"FRIENDSANITY,GINGER_ISLAND",Stardew Valley Expanded
10114,Olivia <3,progression,FRIENDSANITY,Stardew Valley Expanded
10115,Sophia <3,progression,FRIENDSANITY,Stardew Valley Expanded
10116,Victor <3,progression,FRIENDSANITY,Stardew Valley Expanded
10117,Andy <3,progression,FRIENDSANITY,Stardew Valley Expanded
10118,Apples <3,progression,FRIENDSANITY,Stardew Valley Expanded
10119,Gunther <3,progression,FRIENDSANITY,Stardew Valley Expanded
10120,Martin <3,progression,FRIENDSANITY,Stardew Valley Expanded
10121,Marlon <3,progression,FRIENDSANITY,Stardew Valley Expanded
10122,Morgan <3,progression,FRIENDSANITY,Stardew Valley Expanded
10123,Scarlett <3,progression,FRIENDSANITY,Stardew Valley Expanded
10124,Susan <3,progression,FRIENDSANITY,Stardew Valley Expanded
10125,Morris <3,progression,FRIENDSANITY,Stardew Valley Expanded
10301,Progressive Woods Obelisk Sigils,progression,,DeepWoods
10302,Progressive Skull Cavern Elevator,progression,,Skull Cavern Elevator
10401,Baked Berry Oatmeal Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10402,Big Bark Burger Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10403,Flower Cookie Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10404,Frog Legs Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10405,Glazed Butterfish Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10406,Mixed Berry Pie Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10407,Mushroom Berry Rice Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10408,Seaweed Salad Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10409,Void Delight Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10410,Void Salmon Sushi Recipe,progression,"CHEFSANITY,CHEFSANITY_PURCHASE",Stardew Valley Expanded
10501,Marlon's Boat Paddle,progression,GINGER_ISLAND,Stardew Valley Expanded
10502,Diamond Wand,filler,"WEAPON,DEPRECATED",Stardew Valley Expanded
10503,Iridium Bomb,progression,,Stardew Valley Expanded
10504,Krobus' Protection,useful,,Stardew Valley Expanded
10505,Kittyfish Spell,progression,,Stardew Valley Expanded
10506,Nexus: Adventurer's Guild Runes,progression,MOD_WARP,Stardew Valley Expanded
10507,Nexus: Junimo Woods Runes,progression,MOD_WARP,Stardew Valley Expanded
10508,Nexus: Aurora Vineyard Runes,progression,MOD_WARP,Stardew Valley Expanded
10509,Nexus: Sprite Spring Runes,progression,MOD_WARP,Stardew Valley Expanded
10510,Nexus: Outpost Runes,progression,MOD_WARP,Stardew Valley Expanded
10511,Fable Reef Portal,progression,"GINGER_ISLAND",Stardew Valley Expanded
10512,Tempered Galaxy Sword,filler,"WEAPON,DEPRECATED",Stardew Valley Expanded
10513,Tempered Galaxy Dagger,filler,"WEAPON,DEPRECATED",Stardew Valley Expanded
10514,Tempered Galaxy Hammer,filler,"WEAPON,DEPRECATED",Stardew Valley Expanded
10515,Abandoned House Outskirts Clean-up,progression,MOD_WARP,Stardew Valley Expanded
Loading