Landstalker: implement new game (#1808)
Co-authored-by: Anthony Demarcy <anthony.demarcy@lumiplan.com> Co-authored-by: Phar <zach@alliware.com>
This commit is contained in:
1989
worlds/landstalker/data/hint_source.py
Normal file
1989
worlds/landstalker/data/hint_source.py
Normal file
File diff suppressed because it is too large
Load Diff
2017
worlds/landstalker/data/item_source.py
Normal file
2017
worlds/landstalker/data/item_source.py
Normal file
File diff suppressed because it is too large
Load Diff
411
worlds/landstalker/data/world_node.py
Normal file
411
worlds/landstalker/data/world_node.py
Normal file
@@ -0,0 +1,411 @@
|
||||
WORLD_NODES_JSON = {
|
||||
"massan": {
|
||||
"name": "Massan",
|
||||
"hints": [
|
||||
"in a village",
|
||||
"in a region inhabited by bears",
|
||||
"in the village of Massan"
|
||||
]
|
||||
},
|
||||
"massan_cave": {
|
||||
"name": "Massan Cave",
|
||||
"hints": [
|
||||
"in a large cave",
|
||||
"in a region inhabited by bears",
|
||||
"in Massan cave"
|
||||
]
|
||||
},
|
||||
"route_massan_gumi": {
|
||||
"name": "Route between Massan and Gumi",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"in a region inhabited by bears",
|
||||
"between Massan and Gumi"
|
||||
]
|
||||
},
|
||||
"waterfall_shrine": {
|
||||
"name": "Waterfall Shrine",
|
||||
"hints": [
|
||||
"in a shrine",
|
||||
"close to a waterfall",
|
||||
"in a region inhabited by bears",
|
||||
"in Waterfall Shrine"
|
||||
]
|
||||
},
|
||||
"swamp_shrine": {
|
||||
"name": "Swamp Shrine",
|
||||
"hints": [
|
||||
"in a shrine",
|
||||
"near a swamp",
|
||||
"in a region inhabited by bears",
|
||||
"in Swamp Shrine"
|
||||
]
|
||||
},
|
||||
"massan_after_swamp_shrine": {
|
||||
"name": "Massan (after Swamp Shrine)",
|
||||
"hints": [
|
||||
"in a village",
|
||||
"in a region inhabited by bears",
|
||||
"in the village of Massan"
|
||||
]
|
||||
},
|
||||
"gumi_after_swamp_shrine": {
|
||||
"name": "Gumi (after Swamp Shrine)",
|
||||
"hints": [
|
||||
"in a village",
|
||||
"in a region inhabited by bears",
|
||||
"in the village of Gumi"
|
||||
]
|
||||
},
|
||||
"gumi": {
|
||||
"name": "Gumi",
|
||||
"hints": [
|
||||
"in a village",
|
||||
"in a region inhabited by bears",
|
||||
"in the village of Gumi"
|
||||
]
|
||||
},
|
||||
"route_gumi_ryuma": {
|
||||
"name": "Route from Gumi to Ryuma",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"in a region inhabited by bears",
|
||||
"between Gumi and Ryuma"
|
||||
]
|
||||
},
|
||||
"tibor": {
|
||||
"name": "Tibor",
|
||||
"hints": [
|
||||
"among the trees",
|
||||
"inside the elder tree called Tibor"
|
||||
]
|
||||
},
|
||||
"ryuma": {
|
||||
"name": "Ryuma",
|
||||
"hints": [
|
||||
"in a town",
|
||||
"in the town of Ryuma"
|
||||
]
|
||||
},
|
||||
"ryuma_after_thieves_hideout": {
|
||||
"name": "Ryuma (after Thieves Hideout)",
|
||||
"hints": [
|
||||
"in a town",
|
||||
"in the town of Ryuma"
|
||||
]
|
||||
},
|
||||
"ryuma_lighthouse_repaired": {
|
||||
"name": "Ryuma (repaired lighthouse)",
|
||||
"hints": [
|
||||
"in a town",
|
||||
"in the town of Ryuma"
|
||||
]
|
||||
},
|
||||
"thieves_hideout_pre_key": {
|
||||
"name": "Thieves Hideout (before keydoor)",
|
||||
"hints": [
|
||||
"close to a waterfall",
|
||||
"in a large cave",
|
||||
"in the Thieves' Hideout"
|
||||
]
|
||||
},
|
||||
"thieves_hideout_post_key": {
|
||||
"name": "Thieves Hideout (after keydoor)",
|
||||
"hints": [
|
||||
"close to a waterfall",
|
||||
"in a large cave",
|
||||
"in the Thieves' Hideout"
|
||||
]
|
||||
},
|
||||
"helga_hut": {
|
||||
"name": "Witch Helga's Hut",
|
||||
"hints": [
|
||||
"near a swamp",
|
||||
"in the hut of a witch called Helga"
|
||||
]
|
||||
},
|
||||
"mercator": {
|
||||
"name": "Mercator",
|
||||
"hints": [
|
||||
"in a town",
|
||||
"in the town of Mercator"
|
||||
]
|
||||
},
|
||||
"mercator_repaired_docks": {
|
||||
"name": "Mercator (docks with repaired lighthouse)",
|
||||
"hints": [
|
||||
"in a town",
|
||||
"in the town of Mercator"
|
||||
]
|
||||
},
|
||||
"mercator_casino": {
|
||||
"name": "Mercator casino"
|
||||
},
|
||||
"mercator_dungeon": {
|
||||
"name": "Mercator Dungeon"
|
||||
},
|
||||
"crypt": {
|
||||
"name": "Crypt",
|
||||
"hints": [
|
||||
"hidden in the depths of Mercator",
|
||||
"in Mercator crypt"
|
||||
]
|
||||
},
|
||||
"mercator_special_shop": {
|
||||
"name": "Mercator special shop",
|
||||
"hints": [
|
||||
"in a town",
|
||||
"in the town of Mercator"
|
||||
]
|
||||
},
|
||||
"mir_tower_sector": {
|
||||
"name": "Mir Tower sector",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"near Mir Tower"
|
||||
]
|
||||
},
|
||||
"mir_tower_sector_tree_ledge": {
|
||||
"name": "Mir Tower sector (ledge behind sacred tree)",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"among the trees",
|
||||
"near Mir Tower"
|
||||
]
|
||||
},
|
||||
"mir_tower_sector_tree_coast": {
|
||||
"name": "Mir Tower sector (coast behind sacred tree)",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"among the trees",
|
||||
"near Mir Tower"
|
||||
]
|
||||
},
|
||||
"twinkle_village": {
|
||||
"name": "Twinkle village",
|
||||
"hints": [
|
||||
"in a village",
|
||||
"in Twinkle village"
|
||||
]
|
||||
},
|
||||
"mir_tower_pre_garlic": {
|
||||
"name": "Mir Tower (pre-garlic)",
|
||||
"hints": [
|
||||
"inside a tower",
|
||||
"in Mir Tower"
|
||||
]
|
||||
},
|
||||
"mir_tower_post_garlic": {
|
||||
"name": "Mir Tower (post-garlic)",
|
||||
"hints": [
|
||||
"inside a tower",
|
||||
"in Mir Tower"
|
||||
]
|
||||
},
|
||||
"greenmaze_pre_whistle": {
|
||||
"name": "Greenmaze (pre-whistle)",
|
||||
"hints": [
|
||||
"among the trees",
|
||||
"in the infamous Greenmaze"
|
||||
]
|
||||
},
|
||||
"greenmaze_cutter": {
|
||||
"name": "Greenmaze (Cutter hidden sector)",
|
||||
"hints": [
|
||||
"among the trees",
|
||||
"in the infamous Greenmaze"
|
||||
]
|
||||
},
|
||||
"greenmaze_post_whistle": {
|
||||
"name": "Greenmaze (post-whistle)",
|
||||
"hints": [
|
||||
"among the trees",
|
||||
"in the infamous Greenmaze"
|
||||
]
|
||||
},
|
||||
"verla_shore": {
|
||||
"name": "Verla shore",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"near the town of Verla"
|
||||
]
|
||||
},
|
||||
"verla_shore_cliff": {
|
||||
"name": "Verla shore cliff (accessible from Verla Mines)",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"near the town of Verla"
|
||||
]
|
||||
},
|
||||
"verla": {
|
||||
"name": "Verla",
|
||||
"hints": [
|
||||
"in a town",
|
||||
"in the town of Verla"
|
||||
]
|
||||
},
|
||||
"verla_after_mines": {
|
||||
"name": "Verla (after mines)",
|
||||
"hints": [
|
||||
"in a town",
|
||||
"in the town of Verla"
|
||||
]
|
||||
},
|
||||
"verla_mines": {
|
||||
"name": "Verla Mines",
|
||||
"hints": [
|
||||
"in Verla Mines"
|
||||
]
|
||||
},
|
||||
"verla_mines_behind_lava": {
|
||||
"name": "Verla Mines (behind lava)",
|
||||
"hints": [
|
||||
"in Verla Mines"
|
||||
]
|
||||
},
|
||||
"route_verla_destel": {
|
||||
"name": "Route between Verla and Destel",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"in Destel region",
|
||||
"between Verla and Destel"
|
||||
]
|
||||
},
|
||||
"destel": {
|
||||
"name": "Destel",
|
||||
"hints": [
|
||||
"in a village",
|
||||
"in Destel region",
|
||||
"in the village of Destel"
|
||||
]
|
||||
},
|
||||
"route_after_destel": {
|
||||
"name": "Route after Destel",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"near a lake",
|
||||
"in Destel region",
|
||||
"on the route to the lake after Destel"
|
||||
]
|
||||
},
|
||||
"destel_well": {
|
||||
"name": "Destel Well",
|
||||
"hints": [
|
||||
"in Destel region",
|
||||
"in a large cave",
|
||||
"in Destel Well"
|
||||
]
|
||||
},
|
||||
"route_lake_shrine": {
|
||||
"name": "Route to Lake Shrine",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"near a lake",
|
||||
"on the mountainous path to Lake Shrine"
|
||||
]
|
||||
},
|
||||
"route_lake_shrine_cliff": {
|
||||
"name": "Route to Lake Shrine cliff",
|
||||
"hints": [
|
||||
"on a route",
|
||||
"near a lake",
|
||||
"on the mountainous path to Lake Shrine"
|
||||
]
|
||||
},
|
||||
"lake_shrine": {
|
||||
"name": "Lake Shrine",
|
||||
"hints": [
|
||||
"in a shrine",
|
||||
"near a lake",
|
||||
"in Lake Shrine"
|
||||
]
|
||||
},
|
||||
"mountainous_area": {
|
||||
"name": "Mountainous Area",
|
||||
"hints": [
|
||||
"in a mountainous area"
|
||||
]
|
||||
},
|
||||
"king_nole_cave": {
|
||||
"name": "King Nole's Cave",
|
||||
"hints": [
|
||||
"in a large cave",
|
||||
"in King Nole's cave"
|
||||
]
|
||||
},
|
||||
"kazalt": {
|
||||
"name": "Kazalt",
|
||||
"hints": [
|
||||
"in King Nole's domain",
|
||||
"in Kazalt"
|
||||
]
|
||||
},
|
||||
"king_nole_labyrinth_pre_door": {
|
||||
"name": "King Nole's Labyrinth (before door)",
|
||||
"hints": [
|
||||
"in King Nole's domain",
|
||||
"in King Nole's labyrinth"
|
||||
]
|
||||
},
|
||||
"king_nole_labyrinth_post_door": {
|
||||
"name": "King Nole's Labyrinth (after door)",
|
||||
"hints": [
|
||||
"in King Nole's domain",
|
||||
"in King Nole's labyrinth"
|
||||
]
|
||||
},
|
||||
"king_nole_labyrinth_exterior": {
|
||||
"name": "King Nole's Labyrinth (exterior)",
|
||||
"hints": [
|
||||
"in King Nole's domain",
|
||||
"in King Nole's labyrinth"
|
||||
]
|
||||
},
|
||||
"king_nole_labyrinth_fall_from_exterior": {
|
||||
"name": "King Nole's Labyrinth (fall from exterior)",
|
||||
"hints": [
|
||||
"in King Nole's domain",
|
||||
"in King Nole's labyrinth"
|
||||
]
|
||||
},
|
||||
"king_nole_labyrinth_raft_entrance": {
|
||||
"name": "King Nole's Labyrinth (raft entrance)",
|
||||
"hints": [
|
||||
"in King Nole's domain",
|
||||
"in King Nole's labyrinth"
|
||||
]
|
||||
},
|
||||
"king_nole_labyrinth_raft": {
|
||||
"name": "King Nole's Labyrinth (raft)",
|
||||
"hints": [
|
||||
"close to a waterfall",
|
||||
"in King Nole's domain",
|
||||
"in King Nole's labyrinth"
|
||||
]
|
||||
},
|
||||
"king_nole_labyrinth_sacred_tree": {
|
||||
"name": "King Nole's Labyrinth (sacred tree)",
|
||||
"hints": [
|
||||
"among the trees",
|
||||
"in King Nole's domain",
|
||||
"in King Nole's labyrinth"
|
||||
]
|
||||
},
|
||||
"king_nole_labyrinth_path_to_palace": {
|
||||
"name": "King Nole's Labyrinth (path to palace)",
|
||||
"hints": [
|
||||
"in King Nole's domain",
|
||||
"in King Nole's labyrinth"
|
||||
]
|
||||
},
|
||||
"king_nole_palace": {
|
||||
"name": "King Nole's Palace",
|
||||
"hints": [
|
||||
"in King Nole's domain",
|
||||
"in King Nole's palace"
|
||||
]
|
||||
},
|
||||
"end": {
|
||||
"name": "The End"
|
||||
}
|
||||
}
|
||||
446
worlds/landstalker/data/world_path.py
Normal file
446
worlds/landstalker/data/world_path.py
Normal file
@@ -0,0 +1,446 @@
|
||||
WORLD_PATHS_JSON = [
|
||||
{
|
||||
"fromId": "massan",
|
||||
"toId": "massan_cave",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Axe Magic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "massan",
|
||||
"toId": "massan_after_swamp_shrine",
|
||||
"requiredNodes": [
|
||||
"swamp_shrine"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "massan",
|
||||
"toId": "route_massan_gumi",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "route_massan_gumi",
|
||||
"toId": "waterfall_shrine",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "route_massan_gumi",
|
||||
"toId": "swamp_shrine",
|
||||
"twoWay": True,
|
||||
"weight": 2,
|
||||
"requiredItems": [
|
||||
"Idol Stone"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "route_massan_gumi",
|
||||
"toId": "gumi",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "gumi",
|
||||
"toId": "gumi_after_swamp_shrine",
|
||||
"requiredNodes": [
|
||||
"swamp_shrine"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "gumi",
|
||||
"toId": "route_gumi_ryuma"
|
||||
},
|
||||
{
|
||||
"fromId": "route_gumi_ryuma",
|
||||
"toId": "ryuma",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "ryuma",
|
||||
"toId": "ryuma_after_thieves_hideout",
|
||||
"requiredNodes": [
|
||||
"thieves_hideout_post_key"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "ryuma",
|
||||
"toId": "ryuma_lighthouse_repaired",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Sun Stone"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "ryuma",
|
||||
"toId": "thieves_hideout_pre_key",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "thieves_hideout_pre_key",
|
||||
"toId": "thieves_hideout_post_key",
|
||||
"requiredItems": [
|
||||
"Key"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "thieves_hideout_post_key",
|
||||
"toId": "thieves_hideout_pre_key"
|
||||
},
|
||||
{
|
||||
"fromId": "route_gumi_ryuma",
|
||||
"toId": "tibor",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "route_gumi_ryuma",
|
||||
"toId": "helga_hut",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Einstein Whistle"
|
||||
],
|
||||
"requiredNodes": [
|
||||
"massan"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "route_gumi_ryuma",
|
||||
"toId": "mercator",
|
||||
"twoWay": True,
|
||||
"weight": 2,
|
||||
"requiredItems": [
|
||||
"Safety Pass"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mercator",
|
||||
"toId": "mercator_dungeon",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "mercator",
|
||||
"toId": "crypt",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "mercator",
|
||||
"toId": "mercator_special_shop",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Buyer Card"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mercator",
|
||||
"toId": "mercator_casino",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Casino Ticket"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mercator",
|
||||
"toId": "mir_tower_sector",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "mir_tower_sector",
|
||||
"toId": "twinkle_village",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "mir_tower_sector",
|
||||
"toId": "mir_tower_sector_tree_ledge",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Axe Magic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mir_tower_sector",
|
||||
"toId": "mir_tower_sector_tree_coast",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Axe Magic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mir_tower_sector",
|
||||
"toId": "mir_tower_pre_garlic",
|
||||
"requiredItems": [
|
||||
"Armlet"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mir_tower_pre_garlic",
|
||||
"toId": "mir_tower_sector"
|
||||
},
|
||||
{
|
||||
"fromId": "mir_tower_pre_garlic",
|
||||
"toId": "mir_tower_post_garlic",
|
||||
"requiredItems": [
|
||||
"Garlic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mir_tower_post_garlic",
|
||||
"toId": "mir_tower_pre_garlic"
|
||||
},
|
||||
{
|
||||
"fromId": "mir_tower_post_garlic",
|
||||
"toId": "mir_tower_sector"
|
||||
},
|
||||
{
|
||||
"fromId": "mercator",
|
||||
"toId": "greenmaze_pre_whistle",
|
||||
"weight": 2,
|
||||
"requiredItems": [
|
||||
"Key"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "greenmaze_pre_whistle",
|
||||
"toId": "greenmaze_post_whistle",
|
||||
"requiredItems": [
|
||||
"Einstein Whistle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "greenmaze_pre_whistle",
|
||||
"toId": "greenmaze_cutter",
|
||||
"requiredItems": [
|
||||
"EkeEke"
|
||||
],
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "greenmaze_post_whistle",
|
||||
"toId": "route_massan_gumi"
|
||||
},
|
||||
{
|
||||
"fromId": "mercator",
|
||||
"toId": "mercator_repaired_docks",
|
||||
"requiredNodes": [
|
||||
"ryuma_lighthouse_repaired"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mercator_repaired_docks",
|
||||
"toId": "verla_shore"
|
||||
},
|
||||
{
|
||||
"fromId": "verla_shore",
|
||||
"toId": "verla",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "verla",
|
||||
"toId": "verla_after_mines",
|
||||
"requiredNodes": [
|
||||
"verla_mines"
|
||||
],
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "verla_shore",
|
||||
"toId": "verla_mines",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "verla_mines",
|
||||
"toId": "verla_shore_cliff",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "verla_shore_cliff",
|
||||
"toId": "verla_shore"
|
||||
},
|
||||
{
|
||||
"fromId": "verla_shore",
|
||||
"toId": "mir_tower_sector",
|
||||
"requiredNodes": [
|
||||
"verla_mines"
|
||||
],
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "verla_mines",
|
||||
"toId": "route_verla_destel"
|
||||
},
|
||||
{
|
||||
"fromId": "verla_mines",
|
||||
"toId": "verla_mines_behind_lava",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Fireproof"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "route_verla_destel",
|
||||
"toId": "destel",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "destel",
|
||||
"toId": "route_after_destel",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "destel",
|
||||
"toId": "destel_well",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "destel_well",
|
||||
"toId": "route_lake_shrine",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "route_lake_shrine",
|
||||
"toId": "lake_shrine",
|
||||
"itemsPlacedWhenCrossing": [
|
||||
"Sword of Gaia"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "lake_shrine",
|
||||
"toId": "route_lake_shrine"
|
||||
},
|
||||
{
|
||||
"fromId": "lake_shrine",
|
||||
"toId": "mir_tower_sector"
|
||||
},
|
||||
{
|
||||
"fromId": "greenmaze_pre_whistle",
|
||||
"toId": "mountainous_area",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Axe Magic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "mountainous_area",
|
||||
"toId": "route_lake_shrine_cliff",
|
||||
"twoWay": True,
|
||||
"requiredItems": [
|
||||
"Axe Magic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "route_lake_shrine_cliff",
|
||||
"toId": "route_lake_shrine"
|
||||
},
|
||||
{
|
||||
"fromId": "mountainous_area",
|
||||
"toId": "king_nole_cave",
|
||||
"twoWay": True,
|
||||
"weight": 2,
|
||||
"requiredItems": [
|
||||
"Gola's Eye"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_cave",
|
||||
"toId": "mercator"
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_cave",
|
||||
"toId": "kazalt",
|
||||
"itemsPlacedWhenCrossing": [
|
||||
"Lithograph"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "kazalt",
|
||||
"toId": "king_nole_cave"
|
||||
},
|
||||
{
|
||||
"fromId": "kazalt",
|
||||
"toId": "king_nole_labyrinth_pre_door",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_pre_door",
|
||||
"toId": "king_nole_labyrinth_post_door",
|
||||
"requiredItems": [
|
||||
"Key"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_post_door",
|
||||
"toId": "king_nole_labyrinth_pre_door"
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_pre_door",
|
||||
"toId": "king_nole_labyrinth_exterior",
|
||||
"requiredItems": [
|
||||
"Iron Boots"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_exterior",
|
||||
"toId": "king_nole_labyrinth_fall_from_exterior",
|
||||
"requiredItems": [
|
||||
"Axe Magic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_fall_from_exterior",
|
||||
"toId": "king_nole_labyrinth_pre_door"
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_post_door",
|
||||
"toId": "king_nole_labyrinth_raft_entrance",
|
||||
"requiredItems": [
|
||||
"Snow Spikes"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_raft_entrance",
|
||||
"toId": "king_nole_labyrinth_post_door"
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_raft_entrance",
|
||||
"toId": "king_nole_labyrinth_raft",
|
||||
"requiredItems": [
|
||||
"Logs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_raft",
|
||||
"toId": "king_nole_labyrinth_raft_entrance"
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_post_door",
|
||||
"toId": "king_nole_labyrinth_path_to_palace",
|
||||
"requiredItems": [
|
||||
"Snow Spikes"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_path_to_palace",
|
||||
"toId": "king_nole_labyrinth_post_door"
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_post_door",
|
||||
"toId": "king_nole_labyrinth_sacred_tree",
|
||||
"requiredItems": [
|
||||
"Axe Magic"
|
||||
],
|
||||
"requiredNodes": [
|
||||
"king_nole_labyrinth_raft_entrance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_labyrinth_path_to_palace",
|
||||
"toId": "king_nole_palace",
|
||||
"twoWay": True
|
||||
},
|
||||
{
|
||||
"fromId": "king_nole_palace",
|
||||
"toId": "end",
|
||||
"requiredItems": [
|
||||
"Gola's Fang",
|
||||
"Gola's Horn",
|
||||
"Gola's Nail"
|
||||
]
|
||||
}
|
||||
]
|
||||
299
worlds/landstalker/data/world_region.py
Normal file
299
worlds/landstalker/data/world_region.py
Normal file
@@ -0,0 +1,299 @@
|
||||
WORLD_REGIONS_JSON = [
|
||||
{
|
||||
"name": "Massan",
|
||||
"hintName": "in the village of Massan",
|
||||
"nodeIds": [
|
||||
"massan",
|
||||
"massan_after_swamp_shrine"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Massan Cave",
|
||||
"hintName": "in the cave near Massan",
|
||||
"nodeIds": [
|
||||
"massan_cave"
|
||||
],
|
||||
"darkMapIds": [
|
||||
803, 804, 805, 806, 807
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Route between Massan and Gumi",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"route_massan_gumi"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Waterfall Shrine",
|
||||
"hintName": "in the waterfall shrine",
|
||||
"nodeIds": [
|
||||
"waterfall_shrine"
|
||||
],
|
||||
"darkMapIds": [
|
||||
174, 175, 176, 177, 178, 179, 180, 181, 182
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Swamp Shrine",
|
||||
"hintName": "in the swamp shrine",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"swamp_shrine"
|
||||
],
|
||||
"darkMapIds": [
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 30
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Gumi",
|
||||
"hintName": "in the village of Gumi",
|
||||
"nodeIds": [
|
||||
"gumi",
|
||||
"gumi_after_swamp_shrine"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Route between Gumi and Ryuma",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"route_gumi_ryuma"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Tibor",
|
||||
"hintName": "inside Tibor",
|
||||
"nodeIds": [
|
||||
"tibor"
|
||||
],
|
||||
"darkMapIds": [
|
||||
808, 809, 810, 811, 812, 813, 814, 815
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Ryuma",
|
||||
"hintName": "in the town of Ryuma",
|
||||
"nodeIds": [
|
||||
"ryuma",
|
||||
"ryuma_after_thieves_hideout",
|
||||
"ryuma_lighthouse_repaired"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Thieves Hideout",
|
||||
"hintName": "in the thieves' hideout",
|
||||
"nodeIds": [
|
||||
"thieves_hideout_pre_key",
|
||||
"thieves_hideout_post_key"
|
||||
],
|
||||
"darkMapIds": [
|
||||
185, 186, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
|
||||
203, 204, 205, 206, 207, 208, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Witch Helga's Hut",
|
||||
"hintName": "in witch Helga's hut",
|
||||
"nodeIds": [
|
||||
"helga_hut"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Mercator",
|
||||
"hintName": "in the town of Mercator",
|
||||
"nodeIds": [
|
||||
"mercator",
|
||||
"mercator_repaired_docks",
|
||||
"mercator_casino",
|
||||
"mercator_special_shop"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Crypt",
|
||||
"hintName": "in the crypt of Mercator",
|
||||
"nodeIds": [
|
||||
"crypt"
|
||||
],
|
||||
"darkMapIds": [
|
||||
646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Mercator Dungeon",
|
||||
"hintName": "in the dungeon of Mercator",
|
||||
"nodeIds": [
|
||||
"mercator_dungeon"
|
||||
],
|
||||
"darkMapIds": [
|
||||
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 76, 80, 81, 82, 91, 92
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Mir Tower sector",
|
||||
"hintName": "near Mir Tower",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"mir_tower_sector",
|
||||
"mir_tower_sector_tree_ledge",
|
||||
"mir_tower_sector_tree_coast",
|
||||
"twinkle_village"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Mir Tower",
|
||||
"hintName": "inside Mir Tower",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"mir_tower_pre_garlic",
|
||||
"mir_tower_post_garlic"
|
||||
],
|
||||
"darkMapIds": [
|
||||
750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766,
|
||||
767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Greenmaze",
|
||||
"hintName": "in Greenmaze",
|
||||
"nodeIds": [
|
||||
"greenmaze_pre_whistle",
|
||||
"greenmaze_post_whistle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Verla Shore",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"verla_shore",
|
||||
"verla_shore_cliff"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Verla",
|
||||
"hintName": "in the town of Verla",
|
||||
"nodeIds": [
|
||||
"verla",
|
||||
"verla_after_mines"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Verla Mines",
|
||||
"hintName": "in the mines near Verla",
|
||||
"nodeIds": [
|
||||
"verla_mines",
|
||||
"verla_mines_behind_lava"
|
||||
],
|
||||
"darkMapIds": [
|
||||
227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 239, 240, 241, 242, 243, 244, 246,
|
||||
247, 248, 250, 253, 254, 255, 256, 258, 259, 266, 268, 269, 471
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Route between Verla and Destel",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"route_verla_destel"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Destel",
|
||||
"hintName": "in the village of Destel",
|
||||
"nodeIds": [
|
||||
"destel"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Route after Destel",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"route_after_destel"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Destel Well",
|
||||
"hintName": "in Destel well",
|
||||
"nodeIds": [
|
||||
"destel_well"
|
||||
],
|
||||
"darkMapIds": [
|
||||
270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Route to Lake Shrine",
|
||||
"canBeHintedAsRequired": False,
|
||||
"nodeIds": [
|
||||
"route_lake_shrine",
|
||||
"route_lake_shrine_cliff"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Lake Shrine",
|
||||
"hintName": "in the lake shrine",
|
||||
"nodeIds": [
|
||||
"lake_shrine"
|
||||
],
|
||||
"darkMapIds": [
|
||||
291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
|
||||
307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
|
||||
323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
|
||||
339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Mountainous Area",
|
||||
"hintName": "in the mountainous area",
|
||||
"nodeIds": [
|
||||
"mountainous_area"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "King Nole's Cave",
|
||||
"hintName": "in King Nole's cave",
|
||||
"nodeIds": [
|
||||
"king_nole_cave"
|
||||
],
|
||||
"darkMapIds": [
|
||||
145, 147, 150, 152, 154, 155, 156, 158, 160, 161, 162, 164, 166, 170, 171, 172
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Kazalt",
|
||||
"hintName": "in the hidden town of Kazalt",
|
||||
"nodeIds": [
|
||||
"kazalt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "King Nole's Labyrinth",
|
||||
"hintName": "in King Nole's labyrinth",
|
||||
"nodeIds": [
|
||||
"king_nole_labyrinth_pre_door",
|
||||
"king_nole_labyrinth_post_door",
|
||||
"king_nole_labyrinth_exterior",
|
||||
"king_nole_labyrinth_fall_from_exterior",
|
||||
"king_nole_labyrinth_path_to_palace",
|
||||
"king_nole_labyrinth_raft_entrance",
|
||||
"king_nole_labyrinth_raft",
|
||||
"king_nole_labyrinth_sacred_tree"
|
||||
],
|
||||
"darkMapIds": [
|
||||
355, 356, 357, 358, 359, 360, 361, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
|
||||
373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
|
||||
390, 391, 392, 393, 394, 395, 396, 397, 398, 405, 406, 408, 409, 410, 411, 412, 413,
|
||||
414, 415, 416, 417, 418, 419, 420, 422, 423
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "King Nole's Palace",
|
||||
"hintName": "in King Nole's palace",
|
||||
"nodeIds": [
|
||||
"king_nole_palace",
|
||||
"end"
|
||||
],
|
||||
"darkMapIds": [
|
||||
115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
|
||||
131, 132, 133, 134, 135, 136, 137, 138
|
||||
]
|
||||
}
|
||||
]
|
||||
62
worlds/landstalker/data/world_teleport_tree.py
Normal file
62
worlds/landstalker/data/world_teleport_tree.py
Normal file
@@ -0,0 +1,62 @@
|
||||
WORLD_TELEPORT_TREES_JSON = [
|
||||
[
|
||||
{
|
||||
"name": "Massan tree",
|
||||
"treeMapId": 512,
|
||||
"nodeId": "route_massan_gumi"
|
||||
},
|
||||
{
|
||||
"name": "Tibor tree",
|
||||
"treeMapId": 534,
|
||||
"nodeId": "route_gumi_ryuma"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "Mercator front gate tree",
|
||||
"treeMapId": 539,
|
||||
"nodeId": "route_gumi_ryuma"
|
||||
},
|
||||
{
|
||||
"name": "Verla shore tree",
|
||||
"treeMapId": 537,
|
||||
"nodeId": "verla_shore"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "Destel sector tree",
|
||||
"treeMapId": 536,
|
||||
"nodeId": "route_after_destel"
|
||||
},
|
||||
{
|
||||
"name": "Lake Shrine sector tree",
|
||||
"treeMapId": 513,
|
||||
"nodeId": "route_lake_shrine"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "Mir Tower sector tree",
|
||||
"treeMapId": 538,
|
||||
"nodeId": "mir_tower_sector"
|
||||
},
|
||||
{
|
||||
"name": "Mountainous area tree",
|
||||
"treeMapId": 535,
|
||||
"nodeId": "mountainous_area"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"name": "Greenmaze entrance tree",
|
||||
"treeMapId": 510,
|
||||
"nodeId": "greenmaze_pre_whistle"
|
||||
},
|
||||
{
|
||||
"name": "Greenmaze end tree",
|
||||
"treeMapId": 511,
|
||||
"nodeId": "greenmaze_post_whistle"
|
||||
}
|
||||
]
|
||||
]
|
||||
Reference in New Issue
Block a user