mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-03-26 10:43:26 -07:00
Jak 1: Wrote Regions, Rules, init. Untested.
This commit is contained in:
@@ -6,19 +6,20 @@ class JakAndDaxterItem(Item):
|
||||
|
||||
# Items Found Multiple Times
|
||||
generic_item_table = {
|
||||
"Power Cell": 1000,
|
||||
"Scout Fly": 2000,
|
||||
"Precursor Orb": 3000
|
||||
0: "Power Cell",
|
||||
101: "Scout Fly",
|
||||
213: "Precursor Orb"
|
||||
}
|
||||
|
||||
# Items Only Found Once
|
||||
special_item_table = {
|
||||
"Fisherman's Boat": 0,
|
||||
"Sculptor's Muse": 1,
|
||||
"Flut Flut": 2,
|
||||
"Blue Eco Switch": 3,
|
||||
"Gladiator's Pontoons": 4,
|
||||
"Yellow Eco Switch": 5
|
||||
2213: "Fisherman's Boat",
|
||||
2214: "Sculptor's Muse",
|
||||
2215: "Flut Flut",
|
||||
2216: "Blue Eco Switch",
|
||||
2217: "Gladiator's Pontoons",
|
||||
2218: "Yellow Eco Switch",
|
||||
2219: "Lurker Fort Gate"
|
||||
}
|
||||
|
||||
# All Items
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import typing
|
||||
import locs.CellLocations
|
||||
import locs.ScoutLocations
|
||||
from BaseClasses import Location
|
||||
import locs.CellLocations
|
||||
|
||||
class JakAndDaxterLocation(Location):
|
||||
game: str = "Jak and Daxter: The Precursor Legacy"
|
||||
|
||||
# All Locations
|
||||
location_cellTable = {
|
||||
location_table = {
|
||||
**locGR_cellTable, \
|
||||
**locSV_cellTable, \
|
||||
**locFJ_cellTable, \
|
||||
@@ -23,21 +22,5 @@ location_cellTable = {
|
||||
**locSC_cellTable, \
|
||||
**locSM_cellTable, \
|
||||
**locLT_cellTable, \
|
||||
**locGMC_cellTable, \
|
||||
**locGR_scoutTable, \
|
||||
**locSV_scoutTable, \
|
||||
**locFJ_scoutTable, \
|
||||
**locSB_scoutTable, \
|
||||
**locMI_scoutTable, \
|
||||
**locFC_scoutTable, \
|
||||
**locRV_scoutTable, \
|
||||
**locPB_scoutTable, \
|
||||
**locLPC_scoutTable, \
|
||||
**locBS_scoutTable, \
|
||||
**locMP_scoutTable, \
|
||||
**locVC_scoutTable, \
|
||||
**locSC_scoutTable, \
|
||||
**locSM_scoutTable, \
|
||||
**locLT_scoutTable, \
|
||||
**locGMC_scoutTable
|
||||
**locGMC_cellTable
|
||||
}
|
||||
|
||||
@@ -9,4 +9,9 @@ class EnableScoutFlies(Toggle):
|
||||
|
||||
# class EnablePrecursorOrbs(Toggle):
|
||||
# """Enable to include each Precursor Orb as a check. Adds 2000 checks to the pool."""
|
||||
# display_name = "Enable Precursor Orbs"
|
||||
# display_name = "Enable Precursor Orbs"
|
||||
|
||||
@dataclass
|
||||
class JakAndDaxterOptions(PerGameCommonOptions):
|
||||
enable_scout_flies: EnableScoutFlies
|
||||
# enable_precursor_orbs: EnablePrecursorOrbs
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import typing
|
||||
from BaseClasses import Region, Location
|
||||
from BaseClasses import MultiWorld, Region, Entrance, Location
|
||||
from .Options import JakAndDaxterOptions
|
||||
from .Locations import JakAndDaxterLocation, location_table
|
||||
import locs.CellLocations
|
||||
|
||||
class JakAndDaxterLevel(int, Enum):
|
||||
GEYSER_ROCK = 0
|
||||
@@ -21,13 +23,135 @@ class JakAndDaxterLevel(int, Enum):
|
||||
GOL_AND_MAIAS_CITADEL = 15
|
||||
|
||||
class JakAndDaxterSubLevel(int, Enum):
|
||||
MAIN = 0
|
||||
MAIN_AREA = 0
|
||||
FORBIDDEN_JUNGLE_PLANT_ROOM = 1
|
||||
SENTINEL_BEACH_CANNON_TOWER = 2
|
||||
BOGGY_SWAMP_FLUT_FLUT = 3
|
||||
MOUNTAIN_PASS_SHORTCUT = 4
|
||||
SNOWY_MOUNTAIN_FLUT_FLUT = 5
|
||||
SNOWY_MOUNTAIN_LURKER_FORT = 6
|
||||
GOL_AND_MAIAS_CITADEL_ROTATING_TOWER = 7
|
||||
|
||||
level_table: typing.Dict[JakAndDaxterLevel, str] = {
|
||||
JakAndDaxterLevel.GEYSER_ROCK: "Geyser Rock",
|
||||
JakAndDaxterLevel.SANDOVER_VILLAGE: "Sandover Village",
|
||||
JakAndDaxterLevel.FORBIDDEN_JUNGLE: "Forbidden Jungle",
|
||||
JakAndDaxterLevel.SENTINEL_BEACH: "Sentinel Beach",
|
||||
JakAndDaxterLevel.MISTY_ISLAND: "Misty Island",
|
||||
JakAndDaxterLevel.FIRE_CANYON: "Fire Canyon",
|
||||
JakAndDaxterLevel.ROCK_VILLAGE: "Rock Village",
|
||||
JakAndDaxterLevel.PRECURSOR_BASIN: "Precursor Basin",
|
||||
JakAndDaxterLevel.LOST_PRECURSOR_CITY: "Lost Precursor City",
|
||||
JakAndDaxterLevel.BOGGY_SWAMP: "Boggy Swamp",
|
||||
JakAndDaxterLevel.MOUNTAIN_PASS: "Mountain Pass",
|
||||
JakAndDaxterLevel.VOLCANIC_CRATER: "Volcanic Crater",
|
||||
JakAndDaxterLevel.SPIDER_CAVE: "Spider Cave",
|
||||
JakAndDaxterLevel.SNOWY_MOUNTAIN: "Snowy Mountain",
|
||||
JakAndDaxterLevel.LAVA_TUBE: "Lava Tube",
|
||||
JakAndDaxterLevel.GOL_AND_MAIAS_CITADEL: "Gol and Maia's Citadel"
|
||||
}
|
||||
|
||||
subLevel_table: typing.Dict[JakAndDaxterSubLevel, str] = {
|
||||
JakAndDaxterSubLevel.MAIN_AREA: "Main Area",
|
||||
JakAndDaxterSubLevel.FORBIDDEN_JUNGLE_PLANT_ROOM: "Forbidden Jungle Plant Room",
|
||||
JakAndDaxterSubLevel.SENTINEL_BEACH_CANNON_TOWER: "Sentinel Beach Cannon Tower",
|
||||
JakAndDaxterSubLevel.BOGGY_SWAMP_FLUT_FLUT: "Boggy Swamp Flut Flut",
|
||||
JakAndDaxterSubLevel.MOUNTAIN_PASS_SHORTCUT: "Mountain Pass Shortcut",
|
||||
JakAndDaxterSubLevel.SNOWY_MOUNTAIN_FLUT_FLUT: "Snowy Mountain Flut Flut",
|
||||
JakAndDaxterSubLevel.SNOWY_MOUNTAIN_LURKER_FORT: "Snowy Mountain Lurker Fort",
|
||||
JakAndDaxterSubLevel.GOL_AND_MAIAS_CITADEL_ROTATING_TOWER: "Gol and Maia's Citadel Rotating Tower"
|
||||
}
|
||||
|
||||
class JakAndDaxterRegion(Region):
|
||||
game: str = "Jak and Daxter: The Precursor Legacy"
|
||||
|
||||
def create_regions(multiworld: MultiWorld, options: JakAndDaxterOptions, player: int):
|
||||
regionMenu = Region("Menu", player, multiworld)
|
||||
|
||||
regionGR = create_region(player, multiworld, level_table[JakAndDaxterLevel.GEYSER_ROCK])
|
||||
create_locations(regionGR, locGR_cellTable)
|
||||
|
||||
regionSV = create_region(player, multiworld, level_table[JakAndDaxterLevel.SANDOVER_VILLAGE])
|
||||
create_locations(regionSV, locSV_cellTable)
|
||||
|
||||
regionFJ = create_region(player, multiworld, level_table[JakAndDaxterLevel.FORBIDDEN_JUNGLE])
|
||||
create_locations(regionFJ, {k: locFJ_cellTable[k] for k in {10, 11, 12, 14, 15, 16, 17}})
|
||||
|
||||
subRegionFJPR = create_subregion(regionFJ, subLevel_table[JakAndDaxterSubLevel.FORBIDDEN_JUNGLE_PLANT_ROOM])
|
||||
create_locations(subRegionFJPR, {k: locFJ_cellTable[k] for k in {13}})
|
||||
|
||||
regionSB = create_region(player, multiworld, level_table[JakAndDaxterLevel.SENTINEL_BEACH])
|
||||
create_locations(regionSB, {k: locSB_cellTable[k] for k in {18, 19, 20, 21, 23, 24, 25}})
|
||||
|
||||
subRegionSBCT = create_subregion(regionSB, subLevel_table[JakAndDaxterSubLevel.SENTINEL_BEACH_CANNON_TOWER])
|
||||
create_locations(subRegionSBCT, {k: locSB_cellTable[k] for k in {22}})
|
||||
|
||||
regionMI = create_region(player, multiworld, level_table[JakAndDaxterLevel.MISTY_ISLAND])
|
||||
create_locations(regionMI, locMI_cellTable)
|
||||
|
||||
regionFC = create_region(player, multiworld, level_table[JakAndDaxterLevel.FIRE_CANYON])
|
||||
create_locations(regionFC, locFC_cellTable)
|
||||
|
||||
regionRV = create_region(player, multiworld, level_table[JakAndDaxterLevel.ROCK_VILLAGE])
|
||||
create_locations(regionRV, locRV_cellTable)
|
||||
|
||||
regionPB = create_region(player, multiworld, level_table[JakAndDaxterLevel.PRECURSOR_BASIN])
|
||||
create_locations(regionPB, locPB_cellTable)
|
||||
|
||||
regionLPC = create_region(player, multiworld, level_table[JakAndDaxterLevel.LOST_PRECURSOR_CITY])
|
||||
create_locations(regionLPC, locPB_cellTable)
|
||||
|
||||
regionBS = create_region(player, multiworld, level_table[JakAndDaxterLevel.BOGGY_SWAMP])
|
||||
create_locations(regionBS, {k: locBS_cellTable[k] for k in {59, 60, 61, 62, 63, 64}})
|
||||
|
||||
subRegionBSFF = create_subregion(regionBS, subLevel_table[JakAndDaxterSubLevel.BOGGY_SWAMP_FLUT_FLUT])
|
||||
create_locations(subRegionBSFF, {k: locBS_cellTable[k] for k in {58, 65}})
|
||||
|
||||
regionMP = create_region(player, multiworld, level_table[JakAndDaxterLevel.MOUNTAIN_PASS])
|
||||
create_locations(regionMP, {k: locMP_cellTable[k] for k in {66, 67, 69}})
|
||||
|
||||
subRegionMPS = create_subregion(regionMP, subLevel_table[JakAndDaxterSubLevel.MOUNTAIN_PASS_SHORTCUT])
|
||||
create_locations(subRegionMPS, {k: locMP_cellTable[k] for k in {68}})
|
||||
|
||||
regionVC = create_region(player, multiworld, level_table[JakAndDaxterLevel.VOLCANIC_CRATER])
|
||||
create_locations(regionVC, locVC_cellTable)
|
||||
|
||||
regionSC = create_region(player, multiworld, level_table[JakAndDaxterLevel.SPIDER_CAVE])
|
||||
create_locations(regionSC, locSC_cellTable)
|
||||
|
||||
regionSM = create_region(player, multiworld, level_table[JakAndDaxterLevel.SNOWY_MOUNTAIN])
|
||||
create_locations(regionSM, {k: locSM_cellTable[k] for k in {86, 87, 88, 89, 92}})
|
||||
|
||||
subRegionSMFF = create_subregion(regionSM, subLevel_table[JakAndDaxterSubLevel.SNOWY_MOUNTAIN_FLUT_FLUT])
|
||||
create_locations(subRegionSMFF, {k: locSM_cellTable[k] for k in {90}})
|
||||
|
||||
subRegionSMLF = create_subregion(regionSM, subLevel_table[JakAndDaxterSubLevel.SNOWY_MOUNTAIN_LURKER_FORT])
|
||||
create_locations(subRegionSMLF, {k: locSM_cellTable[k] for k in {91, 93}})
|
||||
|
||||
regionLT = create_region(player, multiworld, level_table[JakAndDaxterLevel.LAVA_TUBE])
|
||||
create_locations(regionLT, locLT_cellTable)
|
||||
|
||||
regionGMC = create_region(player, multiworld, level_table[JakAndDaxterLevel.GOL_AND_MAIAS_CITADEL])
|
||||
create_locations(regionGMC, {k: locGMC_cellTable[k] for k in {96, 97, 98}})
|
||||
|
||||
subRegionGMCRT = create_subregion(regionSM, subLevel_table[JakAndDaxterSubLevel.GOL_AND_MAIAS_CITADEL_ROTATING_TOWER])
|
||||
create_locations(subRegionGMCRT, {k: locGMC_cellTable[k] for k in {99, 100}})
|
||||
|
||||
def create_region(player: int, multiworld: MultiWorld, name: str) -> JakAndDaxterRegion:
|
||||
region = JakAndDaxterRegion(name, player, multiworld)
|
||||
|
||||
multiworld.regions.append(region)
|
||||
return region
|
||||
|
||||
def create_subregion(parent: Region, name: str) -> JakAndDaxterRegion:
|
||||
region = JakAndDaxterRegion(name, parent.player, parent.multiworld)
|
||||
|
||||
connection = Entrance(parent.player, name, parent)
|
||||
connection.connect(region)
|
||||
parent.entrances.append(connection)
|
||||
|
||||
parent.multiworld.regions.append(region)
|
||||
return region
|
||||
|
||||
def create_locations(region: Region, locs: typing.Dict[int, str]):
|
||||
region.locations += [JakAndDaxterLocation(region.player, loc, location_table[loc], region) for loc in locs]
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
import typing
|
||||
from BaseClasses import MultiWorld
|
||||
from .Options import JakAndDaxterOptions
|
||||
from .Locations import JakAndDaxterLocation, location_table
|
||||
from .Regions import JakAndDaxterLevel, JakAndDaxterSubLevel, JakAndDaxterRegion, level_table, subLevel_table
|
||||
from .Items import item_table
|
||||
|
||||
def set_rules(multiworld: MultiWorld, options: JakAndDaxterOptions, player: int):
|
||||
multiworld.get_region("Menu").connect(level_table[JakAndDaxterLevel.GEYSER_ROCK])
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.GEYSER_ROCK,
|
||||
JakAndDaxterLevel.SANDOVER_VILLAGE,
|
||||
lambda state: state.has(item_table[0], player, 4))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.SANDOVER_VILLAGE,
|
||||
JakAndDaxterLevel.FORBIDDEN_JUNGLE)
|
||||
|
||||
assign_subregion_access_rule(multiworld, player,
|
||||
JakAndDaxterSubLevel.FORBIDDEN_JUNGLE_PLANT_ROOM,
|
||||
lambda state: state.has(item_table[2216], player))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.SANDOVER_VILLAGE,
|
||||
JakAndDaxterLevel.SENTINEL_BEACH)
|
||||
|
||||
assign_subregion_access_rule(multiworld, player,
|
||||
JakAndDaxterSubLevel.SENTINEL_BEACH_CANNON_TOWER,
|
||||
lambda state: state.has(item_table[2216], player))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.SANDOVER_VILLAGE,
|
||||
JakAndDaxterLevel.MISTY_ISLAND,
|
||||
lambda state: state.has(item_table[2213], player))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.SANDOVER_VILLAGE,
|
||||
JakAndDaxterLevel.FIRE_CANYON,
|
||||
lambda state: state.has(item_table[0], player, 20))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.FIRE_CANYON,
|
||||
JakAndDaxterLevel.ROCK_VILLAGE)
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.ROCK_VILLAGE,
|
||||
JakAndDaxterLevel.PRECURSOR_BASIN)
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.ROCK_VILLAGE,
|
||||
JakAndDaxterLevel.LOST_PRECURSOR_CITY)
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.ROCK_VILLAGE,
|
||||
JakAndDaxterLevel.BOGGY_SWAMP,
|
||||
lambda state: state.has(item_table[2217], player))
|
||||
|
||||
assign_subregion_access_rule(multiworld, player,
|
||||
JakAndDaxterSubLevel.BOGGY_SWAMP_FLUT_FLUT,
|
||||
lambda state: state.has(item_table[2215], player))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.ROCK_VILLAGE,
|
||||
JakAndDaxterLevel.MOUNTAIN_PASS,
|
||||
lambda state: state.has(item_table[2217], player) && state.has(item_table[0], player, 45))
|
||||
|
||||
assign_subregion_access_rule(multiworld, player,
|
||||
JakAndDaxterSubLevel.MOUNTAIN_PASS_SHORTCUT,
|
||||
lambda state: state.has(item_table[2218], player))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.MOUNTAIN_PASS,
|
||||
JakAndDaxterLevel.VOLCANIC_CRATER)
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.VOLCANIC_CRATER,
|
||||
JakAndDaxterLevel.SPIDER_CAVE)
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.VOLCANIC_CRATER,
|
||||
JakAndDaxterLevel.SNOWY_MOUNTAIN)
|
||||
|
||||
assign_subregion_access_rule(multiworld, player,
|
||||
JakAndDaxterSubLevel.SNOWY_MOUNTAIN_FLUT_FLUT,
|
||||
lambda state: state.has(item_table[2215], player))
|
||||
|
||||
assign_subregion_access_rule(multiworld, player,
|
||||
JakAndDaxterSubLevel.SNOWY_MOUNTAIN_LURKER_FORT,
|
||||
lambda state: state.has(item_table[2219], player))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.VOLCANIC_CRATER,
|
||||
JakAndDaxterLevel.LAVA_TUBE,
|
||||
lambda state: state.has(item_table[0], player, 72))
|
||||
|
||||
connect_regions(multiworld, player,
|
||||
JakAndDaxterLevel.LAVA_TUBE,
|
||||
JakAndDaxterLevel.GOL_AND_MAIAS_CITADEL)
|
||||
|
||||
assign_subregion_access_rule(multiworld, player,
|
||||
JakAndDaxterSubLevel.GOL_AND_MAIAS_CITADEL_ROTATING_TOWER,
|
||||
lambda state: state.has(item_table[96], player) && state.has(item_table[97], player) && state.has(item_table[98], player))
|
||||
|
||||
def connect_regions(multiworld: MultiWorld, player: int, source: int, target: int, rule = None):
|
||||
sourceRegion = multiworld.get_region(level_table[source], player)
|
||||
targetRegion = multiworld.get_region(level_table[target], player)
|
||||
sourceRegion.connect(targetRegion, rule = rule)
|
||||
|
||||
def assign_subregion_access_rule(multiworld: MultiWorld, player: int, target: int, rule = None):
|
||||
targetEntrance = multiworld.get_entrance(multiworld, player, subLevel_table[target])
|
||||
targetEntrance.access_rule = rule
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
import typing, os, json
|
||||
from BaseClasses import Item, Region, Entrance, Location
|
||||
from .Locations import JakAndDaxterLocation, location_table
|
||||
from .Options import JakAndDaxterOptions
|
||||
from .Regions import JakAndDaxterLevel, JakAndDaxterSubLevel, JakAndDaxterRegion, level_table, subLevel_table, create_regions
|
||||
from .Rules import set_rules
|
||||
from .Items import JakAndDaxterItem, item_table, generic_item_table, special_item_table
|
||||
|
||||
class JakAndDaxterWorld(World):
|
||||
game: str = "Jak and Daxter: The Precursor Legacy"
|
||||
game_id = 74680000 # All IDs will be offset by this number.
|
||||
|
||||
# Stored as {ID: Name} pairs, these must now be swapped to {Name: ID} pairs.
|
||||
item_name_to_id = {item_table[k], game_id + k for k in item_table}
|
||||
location_name_to_id = {location_table[k], game_id + k for k in location_table}
|
||||
|
||||
options_dataclass = JakAndDaxterOptions
|
||||
|
||||
def create_regions(self):
|
||||
create_regions(self.multiworld, self.options, self.player)
|
||||
|
||||
def set_rules(self):
|
||||
set_rules(self.multiworld, self.options, self.player)
|
||||
|
||||
def create_item(self, name: str) -> Item:
|
||||
item_id = item_name_to_id[name]
|
||||
match name:
|
||||
case "Power Cell":
|
||||
classification = ItemClassification.progression_skip_balancing
|
||||
case "Scout Fly":
|
||||
classification = ItemClassification.progression_skip_balancing
|
||||
case "Precursor Orb":
|
||||
classification = ItemClassification.filler # TODO
|
||||
case _:
|
||||
classification = ItemClassification.progression
|
||||
|
||||
item = JakAndDaxterItem(name, classification, item_id, player)
|
||||
return item
|
||||
|
||||
def create_items(self):
|
||||
self.multiworld.itempool += [self.create_item(item_table[0]) for k in range(0, 100)]
|
||||
self.multiworld.itempool += [self.create_item(item_table[101]) for k in range(101, 212)]
|
||||
self.multiworld.itempool += [self.create_item(item_table[k]) for k in special_item_table]
|
||||
|
||||
@@ -1,164 +1,166 @@
|
||||
# Power Cells start at ID 0 and end at ID 100.
|
||||
|
||||
# Geyser Rock
|
||||
locGR_cellTable = {
|
||||
"GR: Find The Cell On The Path": 0,
|
||||
"GR: Open The Precursor Door": 1,
|
||||
"GR: Climb Up The Cliff": 2,
|
||||
"GR: Free 7 Scout Flies": 3
|
||||
0: "GR: Find The Cell On The Path",
|
||||
1: "GR: Open The Precursor Door",
|
||||
2: "GR: Climb Up The Cliff",
|
||||
3: "GR: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Sandover Village
|
||||
locSV_cellTable = {
|
||||
"SV: Bring 90 Orbs To The Mayor": 4,
|
||||
"SV: Bring 90 Orbs to Your Uncle": 5,
|
||||
"SV: Herd The Yakows Into The Pen": 6,
|
||||
"SV: Bring 120 Orbs To The Oracle (1)": 7,
|
||||
"SV: Bring 120 Orbs To The Oracle (2)": 8,
|
||||
"SV: Free 7 Scout Flies": 9
|
||||
4: "SV: Bring 90 Orbs To The Mayor",
|
||||
5: "SV: Bring 90 Orbs to Your Uncle",
|
||||
6: "SV: Herd The Yakows Into The Pen",
|
||||
7: "SV: Bring 120 Orbs To The Oracle (1)",
|
||||
8: "SV: Bring 120 Orbs To The Oracle (2)",
|
||||
9: "SV: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Forbidden Jungle
|
||||
locFJ_cellTable = {
|
||||
"FJ: Connect The Eco Beams": 10,
|
||||
"FJ: Get To The Top Of The Temple": 11,
|
||||
"FJ: Find The Blue Vent Switch": 12,
|
||||
"FJ: Defeat The Dark Eco Plant": 13,
|
||||
"FJ: Catch 200 Pounds Of Fish": 14,
|
||||
"FJ: Follow The Canyon To The Sea": 15,
|
||||
"FJ: Open The Locked Temple Door": 16,
|
||||
"FJ: Free 7 Scout Flies": 17
|
||||
10: "FJ: Connect The Eco Beams",
|
||||
11: "FJ: Get To The Top Of The Temple",
|
||||
12: "FJ: Find The Blue Vent Switch",
|
||||
13: "FJ: Defeat The Dark Eco Plant",
|
||||
14: "FJ: Catch 200 Pounds Of Fish",
|
||||
15: "FJ: Follow The Canyon To The Sea",
|
||||
16: "FJ: Open The Locked Temple Door",
|
||||
17: "FJ: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Sentinel Beach
|
||||
locSB_cellTable = {
|
||||
"SB: Unblock The Eco Harvesters": 18,
|
||||
"SB: Push The Flut Flut Egg Off The Cliff": 19,
|
||||
"SB: Get The Power Cell From The Pelican": 20,
|
||||
"SB: Chase The Seagulls": 21,
|
||||
"SB: Launch Up To The Cannon Tower": 22,
|
||||
"SB: Explore The Beach": 23,
|
||||
"SB: Climb The Sentinel": 24,
|
||||
"SB: Free 7 Scout Flies": 25
|
||||
18: "SB: Unblock The Eco Harvesters",
|
||||
19: "SB: Push The Flut Flut Egg Off The Cliff",
|
||||
20: "SB: Get The Power Cell From The Pelican",
|
||||
21: "SB: Chase The Seagulls",
|
||||
22: "SB: Launch Up To The Cannon Tower",
|
||||
23: "SB: Explore The Beach",
|
||||
24: "SB: Climb The Sentinel",
|
||||
25: "SB: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Misty Island
|
||||
locMI_cellTable = {
|
||||
"MI: Catch The Sculptor's Muse": 26,
|
||||
"MI: Climb The Lurker Ship": 27,
|
||||
"MI: Stop The Cannon": 28,
|
||||
"MI: Return To The Dark Eco Pool": 29,
|
||||
"MI: Destroy the Balloon Lurkers": 30,
|
||||
"MI: Use Zoomer To Reach Power Cell": 31,
|
||||
"MI: Use Blue Eco To Reach Power Cell": 32,
|
||||
"MI: Free 7 Scout Flies": 33
|
||||
26: "MI: Catch The Sculptor's Muse",
|
||||
27: "MI: Climb The Lurker Ship",
|
||||
28: "MI: Stop The Cannon",
|
||||
29: "MI: Return To The Dark Eco Pool",
|
||||
30: "MI: Destroy the Balloon Lurkers",
|
||||
31: "MI: Use Zoomer To Reach Power Cell",
|
||||
32: "MI: Use Blue Eco To Reach Power Cell",
|
||||
33: "MI: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Fire Canyon
|
||||
locFC_cellTable = {
|
||||
"FC: Reach The End Of Fire Canyon": 34,
|
||||
"FC: Free 7 Scout Flies": 35
|
||||
34: "FC: Reach The End Of Fire Canyon",
|
||||
35: "FC: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Rock Village
|
||||
locRV_cellTable = {
|
||||
"RV: Bring 90 Orbs To The Gambler": 36,
|
||||
"RV: Bring 90 Orbs To The Geologist": 37,
|
||||
"RV: Bring 90 Orbs To The Warrior": 38,
|
||||
"RV: Bring 120 Orbs To The Oracle (1)": 39,
|
||||
"RV: Bring 120 Orbs To The Oracle (2)": 40,
|
||||
"RV: Free 7 Scout Flies": 41
|
||||
36: "RV: Bring 90 Orbs To The Gambler",
|
||||
37: "RV: Bring 90 Orbs To The Geologist",
|
||||
38: "RV: Bring 90 Orbs To The Warrior",
|
||||
39: "RV: Bring 120 Orbs To The Oracle (1)",
|
||||
40: "RV: Bring 120 Orbs To The Oracle (2)",
|
||||
41: "RV: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Precursor Basin
|
||||
locPB_cellTable = {
|
||||
"PB: Herd The Moles Into Their Hole": 42,
|
||||
"PB: Catch The Flying Lurkers": 43,
|
||||
"PB: Beat Record Time On The Gorge": 44,
|
||||
"PB: Get The Power Cell Over The Lake": 45,
|
||||
"PB: Cure Dark Eco Infected Plants": 46,
|
||||
"PB: Navigate The Purple Precursor Rings": 47,
|
||||
"PB: Navigate The Blue Precursor Rings": 48,
|
||||
"PB: Free 7 Scout Flies": 49
|
||||
42: "PB: Herd The Moles Into Their Hole",
|
||||
43: "PB: Catch The Flying Lurkers",
|
||||
44: "PB: Beat Record Time On The Gorge",
|
||||
45: "PB: Get The Power Cell Over The Lake",
|
||||
46: "PB: Cure Dark Eco Infected Plants",
|
||||
47: "PB: Navigate The Purple Precursor Rings",
|
||||
48: "PB: Navigate The Blue Precursor Rings",
|
||||
49: "PB: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Lost Precursor City
|
||||
locLPC_cellTable = {
|
||||
"LPC: Raise The Chamber": 50,
|
||||
"LPC: Follow The Colored Pipes": 51,
|
||||
"LPC: Reach The Bottom Of The City": 52,
|
||||
"LPC: Quickly Cross The Dangerous Pool": 53,
|
||||
"LPC: Match The Platform Colors": 54,
|
||||
"LPC: Climb The Slide Tube": 55,
|
||||
"LPC: Reach The Center Of The Complex": 56,
|
||||
"LPC: Free 7 Scout Flies": 57
|
||||
50: "LPC: Raise The Chamber",
|
||||
51: "LPC: Follow The Colored Pipes",
|
||||
52: "LPC: Reach The Bottom Of The City",
|
||||
53: "LPC: Quickly Cross The Dangerous Pool",
|
||||
54: "LPC: Match The Platform Colors",
|
||||
55: "LPC: Climb The Slide Tube",
|
||||
56: "LPC: Reach The Center Of The Complex",
|
||||
57: "LPC: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Boggy Swamp
|
||||
locBS_cellTable = {
|
||||
"BS: Ride The Flut Flut": 58,
|
||||
"BS: Protect Farthy's Snacks": 59,
|
||||
"BS: Defeat The Lurker Ambush": 60,
|
||||
"BS: Break The Tethers To The Zeppelin (1)": 61,
|
||||
"BS: Break The Tethers To The Zeppelin (2)": 62,
|
||||
"BS: Break The Tethers To The Zeppelin (3)": 63,
|
||||
"BS: Break The Tethers To The Zeppelin (4)": 64,
|
||||
"BS: Free 7 Scout Flies": 65
|
||||
58: "BS: Ride The Flut Flut",
|
||||
59: "BS: Protect Farthy's Snacks",
|
||||
60: "BS: Defeat The Lurker Ambush",
|
||||
61: "BS: Break The Tethers To The Zeppelin (1)",
|
||||
62: "BS: Break The Tethers To The Zeppelin (2)",
|
||||
63: "BS: Break The Tethers To The Zeppelin (3)",
|
||||
64: "BS: Break The Tethers To The Zeppelin (4)",
|
||||
65: "BS: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Mountain Pass
|
||||
locMP_cellTable = {
|
||||
"MP: Defeat Klaww": 66,
|
||||
"MP: Reach The End Of The Mountain Pass": 67,
|
||||
"MP: Find The Hidden Power Cell": 68,
|
||||
"MP: Free 7 Scout Flies": 69
|
||||
66: "MP: Defeat Klaww",
|
||||
67: "MP: Reach The End Of The Mountain Pass",
|
||||
68: "MP: Find The Hidden Power Cell",
|
||||
69: "MP: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Volcanic Crater
|
||||
locVC_cellTable = {
|
||||
"VC: Bring 90 Orbs To The Miners (1)": 70,
|
||||
"VC: Bring 90 Orbs To The Miners (2)": 71,
|
||||
"VC: Bring 90 Orbs To The Miners (3)": 72,
|
||||
"VC: Bring 90 Orbs To The Miners (4)": 73,
|
||||
"VC: Bring 120 Orbs To The Oracle (1)": 74,
|
||||
"VC: Bring 120 Orbs To The Oracle (2)": 75,
|
||||
"VC: Find The Hidden Power Cell": 76,
|
||||
"VC: Free 7 Scout Flies": 77
|
||||
70: "VC: Bring 90 Orbs To The Miners (1)",
|
||||
71: "VC: Bring 90 Orbs To The Miners (2)",
|
||||
72: "VC: Bring 90 Orbs To The Miners (3)",
|
||||
73: "VC: Bring 90 Orbs To The Miners (4)",
|
||||
74: "VC: Bring 120 Orbs To The Oracle (1)",
|
||||
75: "VC: Bring 120 Orbs To The Oracle (2)",
|
||||
76: "VC: Find The Hidden Power Cell",
|
||||
77: "VC: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Spider Cave
|
||||
locSC_cellTable = {
|
||||
"SC: Use Your Goggles To Shoot The Gnawing Lurkers": 78,
|
||||
"SC: Destroy The Dark Eco Crystals": 79,
|
||||
"SC: Explore The Dark Cave": 80,
|
||||
"SC: Climb The Giant Robot": 81,
|
||||
"SC: Launch To The Poles": 82,
|
||||
"SC: Navigate The Spider Tunnel": 83,
|
||||
"SC: Climb the Precursor Platforms": 84,
|
||||
"SC: Free 7 Scout Flies": 85
|
||||
78: "SC: Use Your Goggles To Shoot The Gnawing Lurkers",
|
||||
79: "SC: Destroy The Dark Eco Crystals",
|
||||
80: "SC: Explore The Dark Cave",
|
||||
81: "SC: Climb The Giant Robot",
|
||||
82: "SC: Launch To The Poles",
|
||||
83: "SC: Navigate The Spider Tunnel",
|
||||
84: "SC: Climb the Precursor Platforms",
|
||||
85: "SC: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Snowy Mountain
|
||||
locSM_cellTable = {
|
||||
"SM: Find The Yellow Vent Switch": 86,
|
||||
"SM: Stop The 3 Lurker Glacier Troops": 87,
|
||||
"SM: Deactivate The Precursor Blockers": 88,
|
||||
"SM: Open The Frozen Crate": 89,
|
||||
"SM: Get Through The Lurker Fort": 90,
|
||||
"SM: Open The Lurker Fort Gate": 91,
|
||||
"SM: Survive The Lurker Infested Cave": 92,
|
||||
"SM: Free 7 Scout Flies": 93
|
||||
86: "SM: Find The Yellow Vent Switch",
|
||||
87: "SM: Stop The 3 Lurker Glacier Troops",
|
||||
88: "SM: Deactivate The Precursor Blockers",
|
||||
89: "SM: Open The Frozen Crate",
|
||||
90: "SM: Open The Lurker Fort Gate",
|
||||
91: "SM: Get Through The Lurker Fort",
|
||||
92: "SM: Survive The Lurker Infested Cave",
|
||||
93: "SM: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Lava Tube
|
||||
locLT_cellTable = {
|
||||
"LT: Cross The Lava Tube": 94,
|
||||
"LT: Free 7 Scout Flies": 95
|
||||
94: "LT: Cross The Lava Tube",
|
||||
95: "LT: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
# Gol and Maias Citadel
|
||||
locGMC_cellTable = {
|
||||
"GMC: Free The Blue Sage": 96,
|
||||
"GMC: Free The Red Sage": 97,
|
||||
"GMC: Free The Yellow Sage": 98,
|
||||
"GMC: Free The Green Sage": 99,
|
||||
"GMC: Free 7 Scout Flies ": 100
|
||||
96: "GMC: Free The Blue Sage",
|
||||
97: "GMC: Free The Red Sage",
|
||||
98: "GMC: Free The Yellow Sage",
|
||||
99: "GMC: Free The Green Sage",
|
||||
100: "GMC: Free 7 Scout Flies"
|
||||
}
|
||||
|
||||
65
worlds/jakanddaxter/locs/OrbLocations.py
Normal file
65
worlds/jakanddaxter/locs/OrbLocations.py
Normal file
@@ -0,0 +1,65 @@
|
||||
# Precursor Orbs start at ID 213 and end at ID 2212.
|
||||
|
||||
# Geyser Rock
|
||||
locGR_orbTable = {
|
||||
}
|
||||
|
||||
# Sandover Village
|
||||
locSV_orbTable = {
|
||||
}
|
||||
|
||||
# Forbidden Jungle
|
||||
locFJ_orbTable = {
|
||||
}
|
||||
|
||||
# Sentinel Beach
|
||||
locSB_orbTable = {
|
||||
}
|
||||
|
||||
# Misty Island
|
||||
locMI_orbTable = {
|
||||
}
|
||||
|
||||
# Fire Canyon
|
||||
locFC_orbTable = {
|
||||
}
|
||||
|
||||
# Rock Village
|
||||
locRV_orbTable = {
|
||||
}
|
||||
|
||||
# Precursor Basin
|
||||
locPB_orbTable = {
|
||||
}
|
||||
|
||||
# Lost Precursor City
|
||||
locLPC_orbTable = {
|
||||
}
|
||||
|
||||
# Boggy Swamp
|
||||
locBS_orbTable = {
|
||||
}
|
||||
|
||||
# Mountain Pass
|
||||
locMP_orbTable = {
|
||||
}
|
||||
|
||||
# Volcanic Crater
|
||||
locVC_orbTable = {
|
||||
}
|
||||
|
||||
# Spider Cave
|
||||
locSC_orbTable = {
|
||||
}
|
||||
|
||||
# Snowy Mountain
|
||||
locSM_orbTable = {
|
||||
}
|
||||
|
||||
# Lava Tube
|
||||
locLT_orbTable = {
|
||||
}
|
||||
|
||||
# Gol and Maias Citadel
|
||||
locGMC_orbTable = {
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
# Scout Flies start at ID 101 and end at ID 212.
|
||||
|
||||
# Geyser Rock
|
||||
locGR_scoutTable = {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user