mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
195 lines
5.7 KiB
Python
195 lines
5.7 KiB
Python
|
|
from ..game_id import jak1_id
|
||
|
|
|
||
|
|
# Power Cells are given ID's between 0 and 116 by the game.
|
||
|
|
|
||
|
|
# The game tracks all game-tasks as integers.
|
||
|
|
# 101 of these ID's correspond directly to power cells, but they are not
|
||
|
|
# necessarily ordered, nor are they the first 101 in the task list.
|
||
|
|
# The remaining ones are cutscenes and other events.
|
||
|
|
|
||
|
|
|
||
|
|
# These helper functions do all the math required to get information about each
|
||
|
|
# power cell and translate its ID between AP and OpenGOAL.
|
||
|
|
def to_ap_id(game_id: int) -> int:
|
||
|
|
if game_id >= jak1_id:
|
||
|
|
raise ValueError(f"Attempted to convert {game_id} to an AP ID, but it already is one.")
|
||
|
|
return jak1_id + game_id
|
||
|
|
|
||
|
|
|
||
|
|
def to_game_id(ap_id: int) -> int:
|
||
|
|
if ap_id < jak1_id:
|
||
|
|
raise ValueError(f"Attempted to convert {ap_id} to a Jak 1 ID, but it already is one.")
|
||
|
|
return ap_id - jak1_id
|
||
|
|
|
||
|
|
|
||
|
|
# The ID's you see below correspond directly to that cell's game-task ID.
|
||
|
|
|
||
|
|
# The "Free 7 Scout Flies" Power Cells will be unlocked separately from their respective levels.
|
||
|
|
loc7SF_cellTable = {
|
||
|
|
95: "GR: Free 7 Scout Flies",
|
||
|
|
75: "SV: Free 7 Scout Flies",
|
||
|
|
7: "FJ: Free 7 Scout Flies",
|
||
|
|
20: "SB: Free 7 Scout Flies",
|
||
|
|
28: "MI: Free 7 Scout Flies",
|
||
|
|
68: "FC: Free 7 Scout Flies",
|
||
|
|
76: "RV: Free 7 Scout Flies",
|
||
|
|
57: "PB: Free 7 Scout Flies",
|
||
|
|
49: "LPC: Free 7 Scout Flies",
|
||
|
|
43: "BS: Free 7 Scout Flies",
|
||
|
|
88: "MP: Free 7 Scout Flies",
|
||
|
|
77: "VC: Free 7 Scout Flies",
|
||
|
|
85: "SC: Free 7 Scout Flies",
|
||
|
|
65: "SM: Free 7 Scout Flies",
|
||
|
|
90: "LT: Free 7 Scout Flies",
|
||
|
|
91: "GMC: Free 7 Scout Flies",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Geyser Rock
|
||
|
|
locGR_cellTable = {
|
||
|
|
92: "GR: Find The Cell On The Path",
|
||
|
|
93: "GR: Open The Precursor Door",
|
||
|
|
94: "GR: Climb Up The Cliff",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Sandover Village
|
||
|
|
locSV_cellTable = {
|
||
|
|
11: "SV: Bring 90 Orbs To The Mayor",
|
||
|
|
12: "SV: Bring 90 Orbs to Your Uncle",
|
||
|
|
10: "SV: Herd The Yakows Into The Pen",
|
||
|
|
13: "SV: Bring 120 Orbs To The Oracle (1)",
|
||
|
|
14: "SV: Bring 120 Orbs To The Oracle (2)",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Forbidden Jungle
|
||
|
|
locFJ_cellTable = {
|
||
|
|
3: "FJ: Connect The Eco Beams",
|
||
|
|
4: "FJ: Get To The Top Of The Temple",
|
||
|
|
2: "FJ: Find The Blue Vent Switch",
|
||
|
|
6: "FJ: Defeat The Dark Eco Plant",
|
||
|
|
5: "FJ: Catch 200 Pounds Of Fish",
|
||
|
|
8: "FJ: Follow The Canyon To The Sea",
|
||
|
|
9: "FJ: Open The Locked Temple Door",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Sentinel Beach
|
||
|
|
locSB_cellTable = {
|
||
|
|
15: "SB: Unblock The Eco Harvesters",
|
||
|
|
17: "SB: Push The Flut Flut Egg Off The Cliff",
|
||
|
|
16: "SB: Get The Power Cell From The Pelican",
|
||
|
|
18: "SB: Chase The Seagulls",
|
||
|
|
19: "SB: Launch Up To The Cannon Tower",
|
||
|
|
21: "SB: Explore The Beach",
|
||
|
|
22: "SB: Climb The Sentinel",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Misty Island
|
||
|
|
locMI_cellTable = {
|
||
|
|
23: "MI: Catch The Sculptor's Muse",
|
||
|
|
24: "MI: Climb The Lurker Ship",
|
||
|
|
26: "MI: Stop The Cannon",
|
||
|
|
25: "MI: Return To The Dark Eco Pool",
|
||
|
|
27: "MI: Destroy the Balloon Lurkers",
|
||
|
|
29: "MI: Use Zoomer To Reach Power Cell",
|
||
|
|
30: "MI: Use Blue Eco To Reach Power Cell",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Fire Canyon
|
||
|
|
locFC_cellTable = {
|
||
|
|
69: "FC: Reach The End Of Fire Canyon",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rock Village
|
||
|
|
locRV_cellTable = {
|
||
|
|
31: "RV: Bring 90 Orbs To The Gambler",
|
||
|
|
32: "RV: Bring 90 Orbs To The Geologist",
|
||
|
|
33: "RV: Bring 90 Orbs To The Warrior",
|
||
|
|
34: "RV: Bring 120 Orbs To The Oracle (1)",
|
||
|
|
35: "RV: Bring 120 Orbs To The Oracle (2)",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Precursor Basin
|
||
|
|
locPB_cellTable = {
|
||
|
|
54: "PB: Herd The Moles Into Their Hole",
|
||
|
|
53: "PB: Catch The Flying Lurkers",
|
||
|
|
52: "PB: Beat Record Time On The Gorge",
|
||
|
|
56: "PB: Get The Power Cell Over The Lake",
|
||
|
|
55: "PB: Cure Dark Eco Infected Plants",
|
||
|
|
58: "PB: Navigate The Purple Precursor Rings",
|
||
|
|
59: "PB: Navigate The Blue Precursor Rings",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Lost Precursor City
|
||
|
|
locLPC_cellTable = {
|
||
|
|
47: "LPC: Raise The Chamber",
|
||
|
|
45: "LPC: Follow The Colored Pipes",
|
||
|
|
46: "LPC: Reach The Bottom Of The City",
|
||
|
|
48: "LPC: Quickly Cross The Dangerous Pool",
|
||
|
|
44: "LPC: Match The Platform Colors",
|
||
|
|
50: "LPC: Climb The Slide Tube",
|
||
|
|
51: "LPC: Reach The Center Of The Complex",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Boggy Swamp
|
||
|
|
locBS_cellTable = {
|
||
|
|
37: "BS: Ride The Flut Flut",
|
||
|
|
36: "BS: Protect Farthy's Snacks",
|
||
|
|
38: "BS: Defeat The Lurker Ambush",
|
||
|
|
39: "BS: Break The Tethers To The Zeppelin (1)",
|
||
|
|
40: "BS: Break The Tethers To The Zeppelin (2)",
|
||
|
|
41: "BS: Break The Tethers To The Zeppelin (3)",
|
||
|
|
42: "BS: Break The Tethers To The Zeppelin (4)",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Mountain Pass
|
||
|
|
locMP_cellTable = {
|
||
|
|
86: "MP: Defeat Klaww",
|
||
|
|
87: "MP: Reach The End Of The Mountain Pass",
|
||
|
|
110: "MP: Find The Hidden Power Cell",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Volcanic Crater
|
||
|
|
locVC_cellTable = {
|
||
|
|
96: "VC: Bring 90 Orbs To The Miners (1)",
|
||
|
|
97: "VC: Bring 90 Orbs To The Miners (2)",
|
||
|
|
98: "VC: Bring 90 Orbs To The Miners (3)",
|
||
|
|
99: "VC: Bring 90 Orbs To The Miners (4)",
|
||
|
|
100: "VC: Bring 120 Orbs To The Oracle (1)",
|
||
|
|
101: "VC: Bring 120 Orbs To The Oracle (2)",
|
||
|
|
74: "VC: Find The Hidden Power Cell",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Spider Cave
|
||
|
|
locSC_cellTable = {
|
||
|
|
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",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Snowy Mountain
|
||
|
|
locSM_cellTable = {
|
||
|
|
60: "SM: Find The Yellow Vent Switch",
|
||
|
|
61: "SM: Stop The 3 Lurker Glacier Troops",
|
||
|
|
66: "SM: Deactivate The Precursor Blockers",
|
||
|
|
67: "SM: Open The Frozen Crate",
|
||
|
|
63: "SM: Open The Lurker Fort Gate",
|
||
|
|
62: "SM: Get Through The Lurker Fort",
|
||
|
|
64: "SM: Survive The Lurker Infested Cave",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Lava Tube
|
||
|
|
locLT_cellTable = {
|
||
|
|
89: "LT: Cross The Lava Tube",
|
||
|
|
}
|
||
|
|
|
||
|
|
# Gol and Maias Citadel
|
||
|
|
locGMC_cellTable = {
|
||
|
|
71: "GMC: Free The Blue Sage",
|
||
|
|
72: "GMC: Free The Red Sage",
|
||
|
|
73: "GMC: Free The Yellow Sage",
|
||
|
|
70: "GMC: Free The Green Sage",
|
||
|
|
}
|