|
|
|
@ -89,6 +89,7 @@ CLEFAIRY_DOLL = 'Clefairy Doll' |
|
|
|
RAIL_PASS = 'Rail Pass' |
|
|
|
MISTY_FOUND = 'Misty Found' |
|
|
|
FLUTE_CHANNEL = 'Flute Channel' |
|
|
|
ROUTE_28_UNLOCKED = 'Rotue 28 Unlocked' |
|
|
|
|
|
|
|
FLY = 'Fly' |
|
|
|
|
|
|
|
@ -97,12 +98,12 @@ FLY_OUT_OF_BATTLE = 'Fly out of battle' |
|
|
|
def get_gold_silver_desc() -> PokemonGameDesc: |
|
|
|
desc: PokemonGameDesc = PokemonGameDesc() |
|
|
|
desc.graph = get_gold_silver_route() |
|
|
|
desc.game_name = "Gold/Silver" |
|
|
|
desc.game_name = "Gold_Silver" |
|
|
|
desc.towns_and_cities = [NEW_BARK_TOWN, CHERRYGROVE_CITY, VIOLET_CITY, AZALEA_TOWN, GOLDENROD_CITY, ECRUTEAK_CITY, OLIVINE_CITY, CIANWOOD_CITY, MAHOGANY_TOWN, BLACKTHORN_CITY, PALLET_TOWN, VIRIDIAN_CITY, PEWTER_CITY, CERULEAN_CITY, SAFFRON_CITY, CELADON_CITY, VERMILION_CITY, FUCHSIA_CITY, CINNABAR_ISLAND] |
|
|
|
desc.badges = [ZEPHYR_BADGE, HIVE_BADGE, PLAIN_BADGE, FOG_BADGE, STORM_BADGE, MINERAL_BADGE, GLACIER_BADGE, RISING_BADGE, BOULDER_BADGE, CASCADE_BADGE, THUNDER_BADGE, RAINBOW_BADGE, MARSH_BADGE, SOUL_BADGE, VOLCANO_BADGE, EARTH_BADGE] |
|
|
|
desc.hms = [CUT, SURF, FLASH, STRENGTH, FLY, WATERFALL, WHIRLPOOL] |
|
|
|
desc.starting_town = NEW_BARK_TOWN |
|
|
|
desc.end_goal = MT_SILVER |
|
|
|
desc.end_goal = INDIGO_PLATEAU |
|
|
|
|
|
|
|
return desc |
|
|
|
|
|
|
|
@ -155,6 +156,7 @@ def get_gold_silver_route() -> Graph: |
|
|
|
G.add_node(MT_SILVER, node_type='location') |
|
|
|
G.add_node(SAFARI_ZONE, node_type='location') |
|
|
|
G.add_node(TOHJO_FALLS, node_type='location') |
|
|
|
G.add_node(POWER_PLANT, node_type='location') |
|
|
|
|
|
|
|
G.add_edge(NEW_BARK_TOWN, 'Route 29', condition=None) |
|
|
|
G.add_edge(CHERRYGROVE_CITY, 'Route 29', condition=None) |
|
|
|
@ -205,7 +207,7 @@ def get_gold_silver_route() -> Graph: |
|
|
|
G.add_edge('Route 46', DARK_CAVE, condition=[ROCK_SMASH]) |
|
|
|
G.add_edge('Route 26', NEW_BARK_TOWN, condition=[SURF, WATERFALL, WHIRLPOOL]) |
|
|
|
G.add_edge('Route 26', 'Route 27', condition=None) |
|
|
|
G.add_edge('Route 28', 'Route 27', condition=None) |
|
|
|
G.add_edge('Route 28', 'Route 27', condition=[ROUTE_28_UNLOCKED]) |
|
|
|
G.add_edge('Route 28', MT_SILVER, condition=None) |
|
|
|
G.add_edge('Route 23', 'Route 27', condition=None) |
|
|
|
G.add_edge('Route 23', VICTORY_ROAD, condition=[ZEPHYR_BADGE, HIVE_BADGE, PLAIN_BADGE, FOG_BADGE, STORM_BADGE, MINERAL_BADGE, GLACIER_BADGE, RISING_BADGE]) |
|
|
|
@ -216,6 +218,59 @@ def get_gold_silver_route() -> Graph: |
|
|
|
G.add_edge(SAFFRON_CITY, GOLDENROD_CITY, condition=[POWER_RESTORED, RAIL_PASS]) |
|
|
|
G.add_edge(DIGLETTS_CAVE, 'Route 11', condition=[WOKE_SNORLAX]) |
|
|
|
|
|
|
|
G.add_edge(PALLET_TOWN, 'Route 1', condition=None) |
|
|
|
G.add_edge(PALLET_TOWN, 'Route 21', condition=[SURF]) |
|
|
|
G.add_edge('Route 1', VIRIDIAN_CITY, condition=None) |
|
|
|
G.add_edge(VIRIDIAN_CITY, 'Route 2', condition=None) |
|
|
|
G.add_edge('Route 2', 'Viridian Forest', condition=None) |
|
|
|
G.add_edge('Route 2', 'Route 3', condition=[CUT]) |
|
|
|
G.add_edge('Viridian Forest', PEWTER_CITY, condition=None) |
|
|
|
G.add_edge(PEWTER_CITY, 'Route 3', condition=None) |
|
|
|
G.add_edge('Route 3', MT_MOON, condition=None) |
|
|
|
G.add_edge(MT_MOON, 'Route 4', condition=None) |
|
|
|
G.add_edge('Route 4', CERULEAN_CITY, condition=None) |
|
|
|
G.add_edge(CERULEAN_CITY, 'Route 24', condition=None) |
|
|
|
G.add_edge(CERULEAN_CITY, 'Route 9', condition=[CUT]) |
|
|
|
G.add_edge(CERULEAN_CITY, 'Route 5', condition=None) |
|
|
|
G.add_edge('Route 5', SAFFRON_CITY, condition=None) |
|
|
|
G.add_edge(SAFFRON_CITY, 'Route 6', condition=None) |
|
|
|
G.add_edge(SAFFRON_CITY, 'Route 7', condition=None) |
|
|
|
G.add_edge(SAFFRON_CITY, 'Route 8', condition=None) |
|
|
|
G.add_edge('Route 6', VERMILION_CITY, condition=None) |
|
|
|
G.add_edge(VERMILION_CITY, 'Route 11', condition=None) |
|
|
|
G.add_edge('Route 11', 'Route 12', condition=None) |
|
|
|
G.add_edge('Route 11', DIGLETTS_CAVE, condition=None) |
|
|
|
G.add_edge('Route 2', DIGLETTS_CAVE, condition=[CUT]) |
|
|
|
G.add_edge('Route 12', 'Route 13', condition=None) |
|
|
|
G.add_edge('Route 12', LAVENDER_TOWN, condition=None) |
|
|
|
G.add_edge('Route 7', LAVENDER_TOWN, condition=None) |
|
|
|
G.add_edge(LAVENDER_TOWN, 'Route 10', condition=None) |
|
|
|
G.add_edge('Route 9', 'Rock Tunnel', condition=[FLASH]) |
|
|
|
G.add_edge('Route 10', 'Rock Tunnel', condition=[FLASH]) |
|
|
|
G.add_edge(CELADON_CITY, 'Route 8', condition=None) |
|
|
|
G.add_edge(CELADON_CITY, 'Route 16', condition=None) |
|
|
|
G.add_edge('Route 16', 'Route 17', condition=None) |
|
|
|
G.add_edge('Route 17', 'Route 18', condition=None) |
|
|
|
G.add_edge('Route 18', FUCHSIA_CITY, condition=None) |
|
|
|
G.add_edge(FUCHSIA_CITY,'Route 19', condition=None) |
|
|
|
G.add_edge(FUCHSIA_CITY,'Route 15', condition=None) |
|
|
|
G.add_edge(FUCHSIA_CITY,'Safari Zone', condition=None) |
|
|
|
G.add_edge('Route 19', 'Seafoam Islands', condition=[SURF]) |
|
|
|
G.add_edge('Seafoam Islands', 'Route 20', condition=[SURF]) |
|
|
|
G.add_edge('Route 20', CINNABAR_ISLAND, condition=[SURF]) |
|
|
|
G.add_edge('Route 21', CINNABAR_ISLAND, condition=[SURF]) |
|
|
|
G.add_edge('Route 22', VIRIDIAN_CITY, condition=None) |
|
|
|
G.add_edge('Route 22', 'Route 23', condition=[SURF]) |
|
|
|
G.add_edge('Route 23', VICTORY_ROAD, condition=None) |
|
|
|
G.add_edge(VICTORY_ROAD, INDIGO_PLATEAU, condition=None) |
|
|
|
G.add_edge('Route 12', 'Route 13', condition=None) |
|
|
|
G.add_edge('Route 13', 'Route 14', condition=None) |
|
|
|
G.add_edge('Route 14', 'Route 15', condition=None) |
|
|
|
G.add_edge('Route 24', 'Route 25', condition=None) |
|
|
|
G.add_edge('Route 10', POWER_PLANT, condition=[SURF]) |
|
|
|
G.add_edge('Route 5', 'Underground Path', condition=None) |
|
|
|
G.add_edge('Underground Path', 'Route 6', condition=None) |
|
|
|
|
|
|
|
G.nodes[NEW_BARK_TOWN]['grants_conditions'] = [ |
|
|
|
{'condition': S_S_TICKET, 'required_conditions': [JOHTO_CHAMPION]} |
|
|
|
] |
|
|
|
@ -231,7 +286,7 @@ def get_gold_silver_route() -> Graph: |
|
|
|
G.nodes[GOLDENROD_CITY]['grants_conditions'] = [ |
|
|
|
{'condition': PLAIN_BADGE, 'required_conditions': []}, |
|
|
|
{'condition': SQUIRTBOTTLE, 'required_conditions': []}, |
|
|
|
{'condition': OBTAIN_WING, 'required_conditions': [GLACIER_BADGE]}, |
|
|
|
{'condition': PKMN_WING, 'required_conditions': [GLACIER_BADGE]}, |
|
|
|
] |
|
|
|
G.nodes[ECRUTEAK_CITY]['grants_conditions'] = [ |
|
|
|
{'condition': SURF, 'required_conditions': []}, |
|
|
|
@ -292,7 +347,7 @@ def get_gold_silver_route() -> Graph: |
|
|
|
{'condition': RAINBOW_BADGE, 'required_conditions': []} |
|
|
|
] |
|
|
|
G.nodes[FUCHSIA_CITY]['grants_conditions'] = [ |
|
|
|
{'condition': FOG_BADGE, 'required_conditions': []} |
|
|
|
{'condition': SOUL_BADGE, 'required_conditions': []} |
|
|
|
] |
|
|
|
G.nodes['Route 11']['grants_conditions'] = [ |
|
|
|
{'condition': WOKE_SNORLAX, 'required_conditions': [FLUTE_CHANNEL]} |
|
|
|
@ -300,7 +355,15 @@ def get_gold_silver_route() -> Graph: |
|
|
|
G.nodes[PEWTER_CITY]['grants_conditions'] = [ |
|
|
|
{'condition': BOULDER_BADGE, 'required_conditions': []}, |
|
|
|
{'condition': PKMN_WING, 'required_conditions': []}, |
|
|
|
|
|
|
|
] |
|
|
|
G.nodes[VIRIDIAN_CITY]['grants_conditions'] = [ |
|
|
|
{'condition': EARTH_BADGE, 'required_conditions': [VOLCANO_BADGE]}, |
|
|
|
] |
|
|
|
G.nodes[PALLET_TOWN]['grants_conditions'] = [ |
|
|
|
{'condition': ROUTE_28_UNLOCKED, 'required_conditions': [BOULDER_BADGE, CASCADE_BADGE, THUNDER_BADGE, RAINBOW_BADGE, MARSH_BADGE, SOUL_BADGE, VOLCANO_BADGE, EARTH_BADGE]}, |
|
|
|
] |
|
|
|
G.nodes[CINNABAR_ISLAND]['grants_conditions'] = [ |
|
|
|
{'condition': VOLCANO_BADGE, 'required_conditions': []}, |
|
|
|
] |
|
|
|
|
|
|
|
return G |