Archipelago/worlds/stardew_valley/fish_data.py

128 lines
5.8 KiB
Python

from typing import List, Tuple
from .game_item import FishItem
spring = ("Spring",)
summer = ("Summer",)
fall = ("Fall",)
winter = ("Winter",)
spring_summer = (*spring, *summer)
spring_fall = (*spring, *fall)
spring_winter = (*spring, *winter)
summer_fall = (*summer, *fall)
summer_winter = (*summer, *winter)
fall_winter = (*fall, *winter)
spring_summer_fall = (*spring, *summer, *fall)
spring_summer_winter = (*spring, *summer, *winter)
spring_fall_winter = (*spring, *fall, *winter)
all_seasons = (*spring, *summer, *fall, *winter)
town = ("Town",)
beach = ("Beach",)
mountain = ("Mountain",)
forest = ("Forest",)
secret_woods = ("Secret Woods",)
desert = ("The Desert",)
mines_20 = ("The Mines - Floor 20",)
mines_60 = ("The Mines - Floor 60",)
mines_100 = ("The Mines - Floor 100",)
sewers = ("Sewers",)
mutant_bug_lair = ("Mutant Bug Lair",)
witch_swamp = ("Witch's Swamp",)
ginger_island = ("Ginger Island",)
ginger_island_ocean = ginger_island
ginger_island_river = ginger_island
pirate_cove = ginger_island
night_market = beach
lakes = (*mountain, *secret_woods, *sewers)
ocean = beach
rivers = (*town, *forest)
rivers_secret_woods = (*rivers, *secret_woods)
forest_mountain = (*forest, *mountain)
rivers_mountain_lake = (*town, *forest, *mountain)
mines_20_60 = (*mines_20, *mines_60)
all_fish_items: List[FishItem] = []
def fish(name: str, item_id: int, locations: Tuple[str, ...], seasons: Tuple[str, ...], difficulty: int) -> FishItem:
fish_item = FishItem(name, item_id, locations, seasons, difficulty)
all_fish_items.append(fish_item)
return fish_item
carp = fish("Carp", 142, lakes, all_seasons, 15)
herring = fish("Herring", 147, ocean, spring_winter, 25)
smallmouth_bass = fish("Smallmouth Bass", 137, rivers, spring_fall, 28)
anchovy = fish("Anchovy", 129, ocean, spring_fall, 30)
sardine = fish("Sardine", 131, ocean, spring_fall_winter, 30)
sunfish = fish("Sunfish", 145, rivers, spring_summer, 30)
perch = fish("Perch", 141, rivers_mountain_lake, winter, 35)
chub = fish("Chub", 702, forest_mountain, all_seasons, 35)
bream = fish("Bream", 132, rivers, all_seasons, 35)
red_snapper = fish("Red Snapper", 150, ocean, summer_fall, 40)
sea_cucumber = fish("Sea Cucumber", 154, ocean, fall_winter, 40)
rainbow_trout = fish("Rainbow Trout", 138, rivers_mountain_lake, summer, 45)
walleye = fish("Walleye", 140, rivers_mountain_lake, fall, 45)
shad = fish("Shad", 706, rivers, spring_summer_fall, 45)
bullhead = fish("Bullhead", 700, mountain, all_seasons, 46)
largemouth_bass = fish("Largemouth Bass", 136, mountain, all_seasons, 50)
salmon = fish("Salmon", 139, rivers, fall, 50)
ghostfish = fish("Ghostfish", 156, mines_20_60, all_seasons, 50)
tilapia = fish("Tilapia", 701, ocean, summer_fall, 50)
woodskip = fish("Woodskip", 734, secret_woods, all_seasons, 50)
flounder = fish("Flounder", 267, ocean, spring_summer, 50)
halibut = fish("Halibut", 708, ocean, spring_summer_winter, 50)
lionfish = fish("Lionfish", 837, ginger_island_ocean, all_seasons, 50)
slimejack = fish("Slimejack", 796, mutant_bug_lair, all_seasons, 55)
midnight_carp = fish("Midnight Carp", 269, forest_mountain, fall_winter, 55)
red_mullet = fish("Red Mullet", 146, ocean, summer_winter, 55)
pike = fish("Pike", 144, rivers, summer_winter, 60)
tiger_trout = fish("Tiger Trout", 699, rivers, fall_winter, 60)
blue_discus = fish("Blue Discus", 838, ginger_island_river, all_seasons, 60)
albacore = fish("Albacore", 705, ocean, fall_winter, 60)
sandfish = fish("Sandfish", 164, desert, all_seasons, 65)
stonefish = fish("Stonefish", 158, mines_20, all_seasons, 65)
tuna = fish("Tuna", 130, ocean, summer_winter, 70)
eel = fish("Eel", 148, ocean, spring_fall, 70)
catfish = fish("Catfish", 143, rivers_secret_woods, spring_fall, 75)
squid = fish("Squid", 151, ocean, winter, 75)
sturgeon = fish("Sturgeon", 698, mountain, summer_winter, 78)
dorado = fish("Dorado", 704, forest, summer, 78)
pufferfish = fish("Pufferfish", 128, ocean, summer, 80)
void_salmon = fish("Void Salmon", 795, witch_swamp, all_seasons, 80)
super_cucumber = fish("Super Cucumber", 155, ocean, summer_fall, 80)
stingray = fish("Stingray", 836, pirate_cove, all_seasons, 80)
ice_pip = fish("Ice Pip", 161, mines_60, all_seasons, 85)
lingcod = fish("Lingcod", 707, rivers_mountain_lake, winter, 85)
scorpion_carp = fish("Scorpion Carp", 165, desert, all_seasons, 90)
lava_eel = fish("Lava Eel", 162, mines_100, all_seasons, 90)
octopus = fish("Octopus", 149, ocean, summer, 95)
midnight_squid = fish("Midnight Squid", 798, night_market, winter, 55)
spook_fish = fish("Spook Fish", 799, night_market, winter, 60)
blob_fish = fish("Blobfish", 800, night_market, winter, 75)
crimsonfish = fish("Crimsonfish", 159, ocean, summer, 95)
angler = fish("Angler", 160, town, fall, 85)
legend = fish("Legend", 163, mountain, spring, 110)
glacierfish = fish("Glacierfish", 775, forest, winter, 100)
mutant_carp = fish("Mutant Carp", 682, sewers, all_seasons, 80)
crayfish = fish("Crayfish", 716, rivers, all_seasons, -1)
snail = fish("Snail", 721, rivers, all_seasons, -1)
periwinkle = fish("Periwinkle", 722, rivers, all_seasons, -1)
lobster = fish("Lobster", 715, ocean, all_seasons, -1)
clam = fish("Clam", 372, ocean, all_seasons, -1)
crab = fish("Crab", 717, ocean, all_seasons, -1)
cockle = fish("Cockle", 718, ocean, all_seasons, -1)
mussel = fish("Mussel", 719, ocean, all_seasons, -1)
shrimp = fish("Shrimp", 720, ocean, all_seasons, -1)
oyster = fish("Oyster", 723, ocean, all_seasons, -1)
legendary_fish = [crimsonfish, angler, legend, glacierfish, mutant_carp]
special_fish = [*legendary_fish, blob_fish, lava_eel, octopus, scorpion_carp, ice_pip, super_cucumber, dorado]
all_fish_items_by_name = {fish.name: fish for fish in all_fish_items}
all_fish_items_by_id = {fish.item_id: fish for fish in all_fish_items}