diff --git a/worlds/jakanddaxter/Regions.py b/worlds/jakanddaxter/Regions.py index 7f37f138c4..f732fd861b 100644 --- a/worlds/jakanddaxter/Regions.py +++ b/worlds/jakanddaxter/Regions.py @@ -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: diff --git a/worlds/jakanddaxter/locs/ScoutLocations.py b/worlds/jakanddaxter/locs/ScoutLocations.py index c4620a503c..a05b39bb8c 100644 --- a/worlds/jakanddaxter/locs/ScoutLocations.py +++ b/worlds/jakanddaxter/locs/ScoutLocations.py @@ -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" }