127 lines
5.8 KiB
Python
127 lines
5.8 KiB
Python
from ..game_content import ContentPack, StardewContent
|
|
from ..mod_registry import register_mod_content_pack
|
|
from ..override import override
|
|
from ..vanilla.ginger_island import ginger_island_content_pack as ginger_island_content_pack
|
|
from ...data import villagers_data, fish_data
|
|
from ...data.harvest import ForagingSource
|
|
from ...data.requirement import YearRequirement
|
|
from ...mods.mod_data import ModNames
|
|
from ...strings.crop_names import Fruit
|
|
from ...strings.fish_names import WaterItem
|
|
from ...strings.flower_names import Flower
|
|
from ...strings.forageable_names import Mushroom, Forageable
|
|
from ...strings.region_names import Region, SVERegion
|
|
from ...strings.season_names import Season
|
|
|
|
|
|
class SVEContentPack(ContentPack):
|
|
|
|
def fish_hook(self, content: StardewContent):
|
|
if ginger_island_content_pack.name not in content.registered_packs:
|
|
content.fishes.pop(fish_data.baby_lunaloo.name)
|
|
content.fishes.pop(fish_data.clownfish.name)
|
|
content.fishes.pop(fish_data.lunaloo.name)
|
|
content.fishes.pop(fish_data.seahorse.name)
|
|
content.fishes.pop(fish_data.shiny_lunaloo.name)
|
|
content.fishes.pop(fish_data.starfish.name)
|
|
content.fishes.pop(fish_data.sea_sponge.name)
|
|
|
|
# Remove Highlands fishes at it requires 2 Lance hearts for the quest to access it
|
|
content.fishes.pop(fish_data.daggerfish.name)
|
|
content.fishes.pop(fish_data.gemfish.name)
|
|
|
|
# Remove Fable Reef fishes at it requires 8 Lance hearts for the event to access it
|
|
content.fishes.pop(fish_data.torpedo_trout.name)
|
|
|
|
def villager_hook(self, content: StardewContent):
|
|
if ginger_island_content_pack.name not in content.registered_packs:
|
|
# Remove Lance if Ginger Island is not in content since he is first encountered in Volcano Forge
|
|
content.villagers.pop(villagers_data.lance.name)
|
|
|
|
|
|
register_mod_content_pack(SVEContentPack(
|
|
ModNames.sve,
|
|
weak_dependencies=(
|
|
ginger_island_content_pack.name,
|
|
ModNames.jasper, # To override Marlon and Gunther
|
|
),
|
|
harvest_sources={
|
|
Mushroom.red: (
|
|
ForagingSource(regions=(SVERegion.forest_west,), seasons=(Season.summer, Season.fall)), ForagingSource(regions=(SVERegion.sprite_spring_cave,), )
|
|
),
|
|
Mushroom.purple: (
|
|
ForagingSource(regions=(SVERegion.forest_west,), seasons=(Season.fall,)), ForagingSource(regions=(SVERegion.sprite_spring_cave,), )
|
|
),
|
|
Mushroom.morel: (
|
|
ForagingSource(regions=(SVERegion.forest_west,), seasons=(Season.fall,)), ForagingSource(regions=(SVERegion.sprite_spring_cave,), )
|
|
),
|
|
Mushroom.chanterelle: (
|
|
ForagingSource(regions=(SVERegion.forest_west,), seasons=(Season.fall,)), ForagingSource(regions=(SVERegion.sprite_spring_cave,), )
|
|
),
|
|
Flower.tulip: (ForagingSource(regions=(SVERegion.sprite_spring,), seasons=(Season.spring,)),),
|
|
Flower.blue_jazz: (ForagingSource(regions=(SVERegion.sprite_spring,), seasons=(Season.spring,)),),
|
|
Flower.summer_spangle: (ForagingSource(regions=(SVERegion.sprite_spring,), seasons=(Season.summer,)),),
|
|
Flower.sunflower: (ForagingSource(regions=(SVERegion.sprite_spring,), seasons=(Season.summer,)),),
|
|
Flower.fairy_rose: (ForagingSource(regions=(SVERegion.sprite_spring,), seasons=(Season.fall,)),),
|
|
Fruit.ancient_fruit: (
|
|
ForagingSource(regions=(SVERegion.sprite_spring,), seasons=(Season.spring, Season.summer, Season.fall), other_requirements=(YearRequirement(3),)),
|
|
ForagingSource(regions=(SVERegion.sprite_spring_cave,)),
|
|
),
|
|
Fruit.sweet_gem_berry: (
|
|
ForagingSource(regions=(SVERegion.sprite_spring,), seasons=(Season.spring, Season.summer, Season.fall), other_requirements=(YearRequirement(3),)),
|
|
),
|
|
|
|
# Fable Reef
|
|
WaterItem.coral: (ForagingSource(regions=(SVERegion.fable_reef,)),),
|
|
Forageable.rainbow_shell: (ForagingSource(regions=(SVERegion.fable_reef,)),),
|
|
WaterItem.sea_urchin: (ForagingSource(regions=(SVERegion.fable_reef,)),),
|
|
},
|
|
fishes=(
|
|
fish_data.baby_lunaloo, # Removed when no ginger island
|
|
fish_data.bonefish,
|
|
fish_data.bull_trout,
|
|
fish_data.butterfish,
|
|
fish_data.clownfish, # Removed when no ginger island
|
|
fish_data.daggerfish,
|
|
fish_data.frog,
|
|
fish_data.gemfish,
|
|
fish_data.goldenfish,
|
|
fish_data.grass_carp,
|
|
fish_data.king_salmon,
|
|
fish_data.kittyfish,
|
|
fish_data.lunaloo, # Removed when no ginger island
|
|
fish_data.meteor_carp,
|
|
fish_data.minnow,
|
|
fish_data.puppyfish,
|
|
fish_data.radioactive_bass,
|
|
fish_data.seahorse, # Removed when no ginger island
|
|
fish_data.shiny_lunaloo, # Removed when no ginger island
|
|
fish_data.snatcher_worm,
|
|
fish_data.starfish, # Removed when no ginger island
|
|
fish_data.torpedo_trout,
|
|
fish_data.undeadfish,
|
|
fish_data.void_eel,
|
|
fish_data.water_grub,
|
|
fish_data.sea_sponge, # Removed when no ginger island
|
|
|
|
),
|
|
villagers=(
|
|
villagers_data.claire,
|
|
villagers_data.lance, # Removed when no ginger island
|
|
villagers_data.mommy,
|
|
villagers_data.sophia,
|
|
villagers_data.victor,
|
|
villagers_data.andy,
|
|
villagers_data.apples,
|
|
villagers_data.gunther,
|
|
villagers_data.martin,
|
|
villagers_data.marlon,
|
|
villagers_data.morgan,
|
|
villagers_data.scarlett,
|
|
villagers_data.susan,
|
|
villagers_data.morris,
|
|
# The wizard leaves his tower on sunday, for like 1 hour... Good enough for entrance rando!
|
|
override(villagers_data.wizard, locations=(Region.wizard_tower, Region.forest), bachelor=True, mod_name=ModNames.sve),
|
|
)
|
|
))
|