Jak 1: Wrote Regions, Rules, init. Untested.

This commit is contained in:
massimilianodelliubaldini
2024-04-14 22:27:06 -04:00
parent 57b2ecf14c
commit bff2d4a80b
9 changed files with 470 additions and 133 deletions

View File

@@ -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

View File

@@ -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
}

View File

@@ -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

View File

@@ -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]

View File

@@ -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

View File

@@ -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]

View File

@@ -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"
}

View 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 = {
}

View File

@@ -1,3 +1,5 @@
# Scout Flies start at ID 101 and end at ID 212.
# Geyser Rock
locGR_scoutTable = {
}