Jak 1: Add Scout Flies to Regions.

This commit is contained in:
massimilianodelliubaldini
2024-04-15 15:58:04 -04:00
parent 4031f19d92
commit 352a26a888
2 changed files with 160 additions and 111 deletions

View File

@@ -3,7 +3,7 @@ from enum import Enum
from BaseClasses import MultiWorld, Region
from .Options import JakAndDaxterOptions
from .Locations import JakAndDaxterLocation, location_table
from .locs import CellLocations, SpecialLocations
from .locs import CellLocations, SpecialLocations, ScoutLocations
class JakAndDaxterLevel(int, Enum):
@@ -75,15 +75,22 @@ def create_regions(multiworld: MultiWorld, options: JakAndDaxterOptions, player:
region_menu = create_region(player, multiworld, "Menu")
region_gr = create_region(player, multiworld, level_table[JakAndDaxterLevel.GEYSER_ROCK])
create_locations(region_gr, CellLocations.locGR_cellTable)
create_locations(region_gr, {
**CellLocations.locGR_cellTable,
**ScoutLocations.locGR_scoutTable
})
region_sv = create_region(player, multiworld, level_table[JakAndDaxterLevel.SANDOVER_VILLAGE])
create_locations(region_sv, CellLocations.locSV_cellTable)
create_locations(region_sv, {
**CellLocations.locSV_cellTable,
**ScoutLocations.locSV_scoutTable
})
region_fj = create_region(player, multiworld, level_table[JakAndDaxterLevel.FORBIDDEN_JUNGLE])
create_locations(region_fj, {
**{k: CellLocations.locFJ_cellTable[k] for k in {10, 11, 12, 14, 15, 16, 17}},
**{k: SpecialLocations.loc_specialTable[k] for k in {2213, 2216}}
**{k: SpecialLocations.loc_specialTable[k] for k in {2213, 2216}},
**ScoutLocations.locFJ_scoutTable
})
sub_region_fjpr = create_subregion(region_fj, subLevel_table[JakAndDaxterSubLevel.FORBIDDEN_JUNGLE_PLANT_ROOM])
@@ -92,52 +99,82 @@ def create_regions(multiworld: MultiWorld, options: JakAndDaxterOptions, player:
region_sb = create_region(player, multiworld, level_table[JakAndDaxterLevel.SENTINEL_BEACH])
create_locations(region_sb, {
**{k: CellLocations.locSB_cellTable[k] for k in {18, 19, 20, 21, 23, 24, 25}},
**{k: SpecialLocations.loc_specialTable[k] for k in {2215}}
**{k: SpecialLocations.loc_specialTable[k] for k in {2215}},
**ScoutLocations.locSB_scoutTable
})
sub_region_sbct = create_subregion(region_sb, subLevel_table[JakAndDaxterSubLevel.SENTINEL_BEACH_CANNON_TOWER])
create_locations(sub_region_sbct, {k: CellLocations.locSB_cellTable[k] for k in {22}})
region_mi = create_region(player, multiworld, level_table[JakAndDaxterLevel.MISTY_ISLAND])
create_locations(region_mi, CellLocations.locMI_cellTable)
create_locations(region_mi, {
**CellLocations.locMI_cellTable,
**ScoutLocations.locMI_scoutTable
})
region_fc = create_region(player, multiworld, level_table[JakAndDaxterLevel.FIRE_CANYON])
create_locations(region_fc, CellLocations.locFC_cellTable)
create_locations(region_fc, {
**CellLocations.locFC_cellTable,
**ScoutLocations.locFC_scoutTable
})
region_rv = create_region(player, multiworld, level_table[JakAndDaxterLevel.ROCK_VILLAGE])
create_locations(region_rv, {
**CellLocations.locRV_cellTable,
**{k: SpecialLocations.loc_specialTable[k] for k in {2217}}
**{k: SpecialLocations.loc_specialTable[k] for k in {2217}},
**ScoutLocations.locRV_scoutTable
})
region_pb = create_region(player, multiworld, level_table[JakAndDaxterLevel.PRECURSOR_BASIN])
create_locations(region_pb, CellLocations.locPB_cellTable)
create_locations(region_pb, {
**CellLocations.locPB_cellTable,
**ScoutLocations.locPB_scoutTable
})
region_lpc = create_region(player, multiworld, level_table[JakAndDaxterLevel.LOST_PRECURSOR_CITY])
create_locations(region_lpc, CellLocations.locLPC_cellTable)
create_locations(region_lpc, {
**CellLocations.locLPC_cellTable,
**ScoutLocations.locLPC_scoutTable
})
region_bs = create_region(player, multiworld, level_table[JakAndDaxterLevel.BOGGY_SWAMP])
create_locations(region_bs, {k: CellLocations.locBS_cellTable[k] for k in {59, 60, 61, 62, 63, 64}})
create_locations(region_bs, {
**{k: CellLocations.locBS_cellTable[k] for k in {59, 60, 61, 62, 63, 64}},
**{k: ScoutLocations.locBS_scoutTable[k] for k in {164, 165, 166, 167, 170}}
})
sub_region_bsff = create_subregion(region_bs, subLevel_table[JakAndDaxterSubLevel.BOGGY_SWAMP_FLUT_FLUT])
create_locations(sub_region_bsff, {k: CellLocations.locBS_cellTable[k] for k in {58, 65}})
create_locations(sub_region_bsff, {
**{k: CellLocations.locBS_cellTable[k] for k in {58, 65}},
**{k: ScoutLocations.locBS_scoutTable[k] for k in {168, 169}}
})
region_mp = create_region(player, multiworld, level_table[JakAndDaxterLevel.MOUNTAIN_PASS])
create_locations(region_mp, {k: CellLocations.locMP_cellTable[k] for k in {66, 67, 69}})
create_locations(region_mp, {
**{k: CellLocations.locMP_cellTable[k] for k in {66, 67, 69}},
**ScoutLocations.locMP_scoutTable
})
sub_region_mps = create_subregion(region_mp, subLevel_table[JakAndDaxterSubLevel.MOUNTAIN_PASS_SHORTCUT])
create_locations(sub_region_mps, {k: CellLocations.locMP_cellTable[k] for k in {68}})
region_vc = create_region(player, multiworld, level_table[JakAndDaxterLevel.VOLCANIC_CRATER])
create_locations(region_vc, CellLocations.locVC_cellTable)
create_locations(region_vc, {
**CellLocations.locVC_cellTable,
**ScoutLocations.locVC_scoutTable
})
region_sc = create_region(player, multiworld, level_table[JakAndDaxterLevel.SPIDER_CAVE])
create_locations(region_sc, CellLocations.locSC_cellTable)
create_locations(region_sc, {
**CellLocations.locSC_cellTable,
**ScoutLocations.locSC_scoutTable
})
region_sm = create_region(player, multiworld, level_table[JakAndDaxterLevel.SNOWY_MOUNTAIN])
create_locations(region_sm, {
**{k: CellLocations.locSM_cellTable[k] for k in {86, 87, 88, 89, 92}},
**{k: SpecialLocations.loc_specialTable[k] for k in {2218}}
**{k: SpecialLocations.loc_specialTable[k] for k in {2218}},
**{k: ScoutLocations.locSM_scoutTable[k] for k in {192, 193, 194, 195, 196}}
})
sub_region_smff = create_subregion(region_sm, subLevel_table[JakAndDaxterSubLevel.SNOWY_MOUNTAIN_FLUT_FLUT])
@@ -147,16 +184,28 @@ def create_regions(multiworld: MultiWorld, options: JakAndDaxterOptions, player:
})
sub_region_smlf = create_subregion(region_sm, subLevel_table[JakAndDaxterSubLevel.SNOWY_MOUNTAIN_LURKER_FORT])
create_locations(sub_region_smlf, {k: CellLocations.locSM_cellTable[k] for k in {91, 93}})
create_locations(sub_region_smlf, {
**{k: CellLocations.locSM_cellTable[k] for k in {91, 93}},
**{k: ScoutLocations.locSM_scoutTable[k] for k in {197, 198}}
})
region_lt = create_region(player, multiworld, level_table[JakAndDaxterLevel.LAVA_TUBE])
create_locations(region_lt, CellLocations.locLT_cellTable)
create_locations(region_lt, {
**CellLocations.locLT_cellTable,
**ScoutLocations.locLT_scoutTable
})
region_gmc = create_region(player, multiworld, level_table[JakAndDaxterLevel.GOL_AND_MAIAS_CITADEL])
create_locations(region_gmc, {k: CellLocations.locGMC_cellTable[k] for k in {96, 97, 98}})
create_locations(region_gmc, {
**{k: CellLocations.locGMC_cellTable[k] for k in {96, 97, 98}},
**{k: ScoutLocations.locGMC_scoutTable[k] for k in {206, 207, 208, 209, 210, 211}}
})
sub_region_gmcrt = create_subregion(region_gmc, subLevel_table[JakAndDaxterSubLevel.GOL_AND_MAIAS_CITADEL_ROTATING_TOWER])
create_locations(sub_region_gmcrt, {k: CellLocations.locGMC_cellTable[k] for k in {99, 100}})
create_locations(sub_region_gmcrt, {
**{k: CellLocations.locGMC_cellTable[k] for k in {99, 100}},
**{k: ScoutLocations.locGMC_scoutTable[k] for k in {212}}
})
def create_region(player: int, multiworld: MultiWorld, name: str) -> JakAndDaxterRegion:

View File

@@ -2,57 +2,57 @@
# Geyser Rock
locGR_scoutTable = {
101: "GR: Scout Fly 1",
102: "GR: Scout Fly 2",
103: "GR: Scout Fly 3",
104: "GR: Scout Fly 4",
105: "GR: Scout Fly 5",
106: "GR: Scout Fly 6",
107: "GR: Scout Fly 7"
101: "GR: Scout Fly On Ground, Front",
102: "GR: Scout Fly On Ground, Back",
103: "GR: Scout Fly On Left Ledge",
104: "GR: Scout Fly On Right Ledge",
105: "GR: Scout Fly On Middle Ledge, Left",
106: "GR: Scout Fly On Middle Ledge, Right",
107: "GR: Scout Fly On Top Ledge"
}
# Sandover Village
locSV_scoutTable = {
108: "SV: Scout Fly 1",
109: "SV: Scout Fly 2",
110: "SV: Scout Fly 3",
111: "SV: Scout Fly 4",
112: "SV: Scout Fly 5",
113: "SV: Scout Fly 6",
114: "SV: Scout Fly 7"
108: "SV: Scout Fly In Fisherman's House",
109: "SV: Scout Fly In Mayor's House",
110: "SV: Scout Fly Under Bridge",
111: "SV: Scout Fly Behind Sculptor's House",
112: "SV: Scout Fly Overlooking Farmer's House",
113: "SV: Scout Fly Near Oracle",
114: "SV: Scout Fly In Farmer's House"
}
# Forbidden Jungle
locFJ_scoutTable = {
115: "FJ: Scout Fly 1",
116: "FJ: Scout Fly 2",
117: "FJ: Scout Fly 3",
118: "FJ: Scout Fly 4",
119: "FJ: Scout Fly 5",
120: "FJ: Scout Fly 6",
121: "FJ: Scout Fly 7"
115: "FJ: Scout Fly At End Of Path",
116: "FJ: Scout Fly On Spiral Of Stumps",
117: "FJ: Scout Fly Under Bridge",
118: "FJ: Scout Fly At End Of River",
119: "FJ: Scout Fly Behind Lurker Machine",
120: "FJ: Scout Fly Around Temple Spire",
121: "FJ: Scout Fly On Top Of Temple"
}
# Sentinel Beach
locSB_scoutTable = {
122: "SB: Scout Fly 1",
123: "SB: Scout Fly 2",
124: "SB: Scout Fly 3",
125: "SB: Scout Fly 4",
126: "SB: Scout Fly 5",
127: "SB: Scout Fly 6",
128: "SB: Scout Fly 7"
122: "SB: Scout Fly At Entrance",
123: "SB: Scout Fly Overlooking Locked Boxes",
124: "SB: Scout Fly On Path To Flut Flut",
125: "SB: Scout Fly Under Wood Pillars",
126: "SB: Scout Fly Overlooking Blue Eco Vents",
127: "SB: Scout Fly Overlooking Green Eco Vents",
128: "SB: Scout Fly On Sentinel"
}
# Misty Island
locMI_scoutTable = {
129: "MI: Scout Fly 1",
130: "MI: Scout Fly 2",
131: "MI: Scout Fly 3",
132: "MI: Scout Fly 4",
133: "MI: Scout Fly 5",
134: "MI: Scout Fly 6",
135: "MI: Scout Fly 7"
129: "MI: Scout Fly Overlooking Entrance",
130: "MI: Scout Fly On Ledge Path, First",
131: "MI: Scout Fly On Ledge Path, Second",
132: "MI: Scout Fly Overlooking Shipyard",
133: "MI: Scout Fly On Ship",
134: "MI: Scout Fly On Barrel Ramps",
135: "MI: Scout Fly On Zoomer Ramps"
}
# Fire Canyon
@@ -68,46 +68,46 @@ locFC_scoutTable = {
# Rock Village
locRV_scoutTable = {
143: "RV: Scout Fly 1",
144: "RV: Scout Fly 2",
145: "RV: Scout Fly 3",
146: "RV: Scout Fly 4",
147: "RV: Scout Fly 5",
148: "RV: Scout Fly 6",
149: "RV: Scout Fly 7"
143: "RV: Scout Fly Behind Sage's Hut",
144: "RV: Scout Fly On Path To Village",
145: "RV: Scout Fly Behind Geologist",
146: "RV: Scout Fly Behind Fiery Boulder",
147: "RV: Scout Fly On Dock",
148: "RV: Scout Fly At Pontoon Bridge",
149: "RV: Scout Fly At Boggy Swamp Entrance"
}
# Precursor Basin
locPB_scoutTable = {
150: "PB: Scout Fly 1",
151: "PB: Scout Fly 2",
152: "PB: Scout Fly 3",
153: "PB: Scout Fly 4",
154: "PB: Scout Fly 5",
155: "PB: Scout Fly 6",
156: "PB: Scout Fly 7"
150: "PB: Scout Fly Overlooking Entrance",
151: "PB: Scout Fly Near Mole Hole",
152: "PB: Scout Fly At Purple Ring Start",
153: "PB: Scout Fly Overlooking Dark Eco Plant",
154: "PB: Scout Fly At Green Ring Start",
155: "PB: Scout Fly Before Big Jump",
156: "PB: Scout Fly Near Dark Eco Plant"
}
# Lost Precursor City
locLPC_scoutTable = {
157: "LPC: Scout Fly 1",
158: "LPC: Scout Fly 2",
159: "LPC: Scout Fly 3",
160: "LPC: Scout Fly 4",
161: "LPC: Scout Fly 5",
162: "LPC: Scout Fly 6",
163: "LPC: Scout Fly 7"
157: "LPC: Scout Fly First Room",
158: "LPC: Scout Fly Before Second Room",
159: "LPC: Scout Fly Second Room, Near Orb Vent",
160: "LPC: Scout Fly Second Room, On Path To Cell",
161: "LPC: Scout Fly Second Room, Green Switch",
162: "LPC: Scout Fly Second Room, Blue Switch",
163: "LPC: Scout Fly Across Steam Vents"
}
# Boggy Swamp
locBS_scoutTable = {
164: "BS: Scout Fly 1",
165: "BS: Scout Fly 2",
166: "BS: Scout Fly 3",
167: "BS: Scout Fly 4",
168: "BS: Scout Fly 5",
169: "BS: Scout Fly 6",
170: "BS: Scout Fly 7"
164: "BS: Scout Fly Near Entrance",
165: "BS: Scout Fly Over First Jump Pad",
166: "BS: Scout Fly Over Second Jump Pad",
167: "BS: Scout Fly Across Black Swamp",
168: "BS: Scout Fly Overlooking Flut Flut",
169: "BS: Scout Fly On Flut Flut Platforms",
170: "BS: Scout Fly In Field Of Boxes"
}
# Mountain Pass
@@ -123,35 +123,35 @@ locMP_scoutTable = {
# Volcanic Crater
locVC_scoutTable = {
178: "VC: Scout Fly 1",
179: "VC: Scout Fly 2",
180: "VC: Scout Fly 3",
181: "VC: Scout Fly 4",
182: "VC: Scout Fly 5",
183: "VC: Scout Fly 6",
184: "VC: Scout Fly 7"
178: "VC: Scout Fly In Miner's Cave",
179: "VC: Scout Fly Near Oracle",
180: "VC: Scout Fly Overlooking Minecarts",
181: "VC: Scout Fly On First Minecart Path",
182: "VC: Scout Fly At Minecart Junction",
183: "VC: Scout Fly At Spider Cave Entrance",
184: "VC: Scout Fly Under Mountain Pass Exit"
}
# Spider Cave
locSC_scoutTable = {
185: "SC: Scout Fly 1",
186: "SC: Scout Fly 2",
187: "SC: Scout Fly 3",
188: "SC: Scout Fly 4",
189: "SC: Scout Fly 5",
190: "SC: Scout Fly 6",
191: "SC: Scout Fly 7"
185: "SC: Scout Fly Across Dark Eco Pool",
186: "SC: Scout Fly At Dark Area Entrance",
187: "SC: Scout Fly First Room, Overlooking Entrance",
188: "SC: Scout Fly First Room, Near Dark Crystal",
189: "SC: Scout Fly First Room, Near Dark Eco Pool",
190: "SC: Scout Fly Robot Room, First Level",
191: "SC: Scout Fly Robot Room, Second Level",
}
# Snowy Mountain
locSM_scoutTable = {
192: "SM: Scout Fly 1",
193: "SM: Scout Fly 2",
194: "SM: Scout Fly 3",
195: "SM: Scout Fly 4",
196: "SM: Scout Fly 5",
197: "SM: Scout Fly 6",
198: "SM: Scout Fly 7"
192: "SM: Scout Fly Near Entrance",
193: "SM: Scout Fly Near Frozen Box",
194: "SM: Scout Fly Near Yellow Eco Switch",
195: "SM: Scout Fly On Cliff near Flut Flut",
196: "SM: Scout Fly Under Bridge To Fort",
197: "SM: Scout Fly On Top Of Fort Tower",
198: "SM: Scout Fly On Top Of Fort"
}
# Lava Tube
@@ -167,11 +167,11 @@ locLT_scoutTable = {
# Gol and Maias Citadel
locGMC_scoutTable = {
206: "GMC: Scout Fly 1",
207: "GMC: Scout Fly 2",
208: "GMC: Scout Fly 3",
209: "GMC: Scout Fly 4",
210: "GMC: Scout Fly 5",
211: "GMC: Scout Fly 6",
212: "GMC: Scout Fly 7"
206: "GMC: Scout Fly At Entrance",
207: "GMC: Scout Fly At Jump Room Entrance",
208: "GMC: Scout Fly On Ledge Across Rotators",
209: "GMC: Scout Fly At Tile Color Puzzle",
210: "GMC: Scout Fly At Blast Furnace",
211: "GMC: Scout Fly At Path To Robot",
212: "GMC: Scout Fly On Top Of Rotating Tower"
}