Archipelago/worlds/stardew_valley/mods/mod_regions.py

145 lines
6.9 KiB
Python

from ..strings.entrance_names import DeepWoodsEntrance, EugeneEntrance, \
JasperEntrance, AlecEntrance, YobaEntrance, JunaEntrance, MagicEntrance, AyeishaEntrance, RileyEntrance
from ..strings.region_names import Region, DeepWoodsRegion, EugeneRegion, JasperRegion, \
AlecRegion, YobaRegion, JunaRegion, MagicRegion, AyeishaRegion, RileyRegion
from ..region_classes import RegionData, ConnectionData, RandomizationFlag, ModRegionData
from .mod_data import ModNames
deep_woods_regions = [
RegionData(Region.farm, [DeepWoodsEntrance.use_woods_obelisk]),
RegionData(DeepWoodsRegion.woods_obelisk_menu, [DeepWoodsEntrance.deep_woods_depth_1,
DeepWoodsEntrance.deep_woods_depth_10,
DeepWoodsEntrance.deep_woods_depth_20,
DeepWoodsEntrance.deep_woods_depth_30,
DeepWoodsEntrance.deep_woods_depth_40,
DeepWoodsEntrance.deep_woods_depth_50,
DeepWoodsEntrance.deep_woods_depth_60,
DeepWoodsEntrance.deep_woods_depth_70,
DeepWoodsEntrance.deep_woods_depth_80,
DeepWoodsEntrance.deep_woods_depth_90,
DeepWoodsEntrance.deep_woods_depth_100]),
RegionData(Region.secret_woods, [DeepWoodsEntrance.secret_woods_to_deep_woods]),
RegionData(DeepWoodsRegion.main_lichtung, [DeepWoodsEntrance.deep_woods_house]),
RegionData(DeepWoodsRegion.abandoned_home),
RegionData(DeepWoodsRegion.floor_10),
RegionData(DeepWoodsRegion.floor_20),
RegionData(DeepWoodsRegion.floor_30),
RegionData(DeepWoodsRegion.floor_40),
RegionData(DeepWoodsRegion.floor_50),
RegionData(DeepWoodsRegion.floor_60),
RegionData(DeepWoodsRegion.floor_70),
RegionData(DeepWoodsRegion.floor_80),
RegionData(DeepWoodsRegion.floor_90),
RegionData(DeepWoodsRegion.floor_100)
]
deep_woods_entrances = [
ConnectionData(DeepWoodsEntrance.use_woods_obelisk, DeepWoodsRegion.woods_obelisk_menu),
ConnectionData(DeepWoodsEntrance.secret_woods_to_deep_woods, DeepWoodsRegion.main_lichtung),
ConnectionData(DeepWoodsEntrance.deep_woods_house, DeepWoodsRegion.abandoned_home,
flag=RandomizationFlag.NON_PROGRESSION),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_1, DeepWoodsRegion.main_lichtung),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_10, DeepWoodsRegion.floor_10),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_20, DeepWoodsRegion.floor_20),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_30, DeepWoodsRegion.floor_30),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_40, DeepWoodsRegion.floor_40),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_50, DeepWoodsRegion.floor_50),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_60, DeepWoodsRegion.floor_60),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_70, DeepWoodsRegion.floor_70),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_80, DeepWoodsRegion.floor_80),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_90, DeepWoodsRegion.floor_90),
ConnectionData(DeepWoodsEntrance.deep_woods_depth_100, DeepWoodsRegion.floor_100)
]
eugene_regions = [
RegionData(Region.forest, [EugeneEntrance.forest_to_garden]),
RegionData(EugeneRegion.eugene_garden, [EugeneEntrance.garden_to_bedroom]),
RegionData(EugeneRegion.eugene_bedroom)
]
eugene_entrances = [
ConnectionData(EugeneEntrance.forest_to_garden, EugeneRegion.eugene_garden,
flag=RandomizationFlag.NON_PROGRESSION | RandomizationFlag.LEAD_TO_OPEN_AREA),
ConnectionData(EugeneEntrance.garden_to_bedroom, EugeneRegion.eugene_bedroom, flag=RandomizationFlag.BUILDINGS)
]
magic_regions = [
RegionData(Region.pierre_store, [MagicEntrance.store_to_altar]),
RegionData(MagicRegion.altar)
]
magic_entrances = [
ConnectionData(MagicEntrance.store_to_altar, MagicRegion.altar, flag=RandomizationFlag.NOT_RANDOMIZED)
]
jasper_regions = [
RegionData(Region.museum, [JasperEntrance.museum_to_bedroom]),
RegionData(JasperRegion.jasper_bedroom)
]
jasper_entrances = [
ConnectionData(JasperEntrance.museum_to_bedroom, JasperRegion.jasper_bedroom, flag=RandomizationFlag.BUILDINGS)
]
alec_regions = [
RegionData(Region.forest, [AlecEntrance.forest_to_petshop]),
RegionData(AlecRegion.pet_store, [AlecEntrance.petshop_to_bedroom]),
RegionData(AlecRegion.alec_bedroom)
]
alec_entrances = [
ConnectionData(AlecEntrance.forest_to_petshop, AlecRegion.pet_store,
flag=RandomizationFlag.NON_PROGRESSION | RandomizationFlag.LEAD_TO_OPEN_AREA),
ConnectionData(AlecEntrance.petshop_to_bedroom, AlecRegion.alec_bedroom, flag=RandomizationFlag.BUILDINGS)
]
yoba_regions = [
RegionData(Region.secret_woods, [YobaEntrance.secret_woods_to_clearing]),
RegionData(YobaRegion.yoba_clearing)
]
yoba_entrances = [
ConnectionData(YobaEntrance.secret_woods_to_clearing, YobaRegion.yoba_clearing, flag=RandomizationFlag.BUILDINGS)
]
juna_regions = [
RegionData(Region.forest, [JunaEntrance.forest_to_juna_cave]),
RegionData(JunaRegion.juna_cave)
]
juna_entrances = [
ConnectionData(JunaEntrance.forest_to_juna_cave, JunaRegion.juna_cave,
flag=RandomizationFlag.NON_PROGRESSION | RandomizationFlag.LEAD_TO_OPEN_AREA)
]
ayeisha_regions = [
RegionData(Region.bus_stop, [AyeishaEntrance.bus_stop_to_mail_van]),
RegionData(AyeishaRegion.mail_van)
]
ayeisha_entrances = [
ConnectionData(AyeishaEntrance.bus_stop_to_mail_van, AyeishaRegion.mail_van,
flag=RandomizationFlag.NON_PROGRESSION | RandomizationFlag.LEAD_TO_OPEN_AREA)
]
riley_regions = [
RegionData(Region.town, [RileyEntrance.town_to_riley]),
RegionData(RileyRegion.riley_house)
]
riley_entrances = [
ConnectionData(RileyEntrance.town_to_riley, RileyRegion.riley_house,
flag=RandomizationFlag.NON_PROGRESSION | RandomizationFlag.LEAD_TO_OPEN_AREA)
]
ModDataList = {
ModNames.deepwoods: ModRegionData(ModNames.deepwoods, deep_woods_regions, deep_woods_entrances),
ModNames.eugene: ModRegionData(ModNames.eugene, eugene_regions, eugene_entrances),
ModNames.jasper: ModRegionData(ModNames.jasper, jasper_regions, jasper_entrances),
ModNames.alec: ModRegionData(ModNames.alec, alec_regions, alec_entrances),
ModNames.yoba: ModRegionData(ModNames.yoba, yoba_regions, yoba_entrances),
ModNames.juna: ModRegionData(ModNames.juna, juna_regions, juna_entrances),
ModNames.magic: ModRegionData(ModNames.magic, magic_regions, magic_entrances),
ModNames.ayeisha: ModRegionData(ModNames.ayeisha, ayeisha_regions, ayeisha_entrances),
ModNames.riley: ModRegionData(ModNames.riley, riley_regions, riley_entrances),
}