SA2B: v2.2 Content Update (#1904)
* Ice Trap Support * Support Animalsanity * Add option for controlling number of emblems in pool * Support Slow Trap * Support Cutscene Traps * Support Voice Shuffle * Handle Boss Rush goals * Fix create item reference to self.multiworld * Support Ringlink * Reduce beep frequency to 20 * Add Boss Rush Chaos Emerald Hunt Goal * Fix Eternal Engine - Pipe 1 logic * Add Chao voice shuffle * Remove unused option * Adjust wording of Required Cannon's Core Missions * Fix incorrect region assignment * Fix incorrect animal logics * Fix Chao Race tooltip * Remove Green Hill Animal Location * Add Location Count info to tooltips * Don't allow M4 first if animalsanity is active * Add Iron Boots to Standard Logic Egg Quarters 5 * Make Vanilla Boss Rush actually Vanilla * Increment Mod Version * Increment Data Package Version --------- Co-authored-by: RaspberrySpaceJam <tyler.summers@gmail.com>
This commit is contained in:
@@ -149,6 +149,26 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.city_escape_omo_13,
|
||||
LocationName.city_escape_omo_14,
|
||||
LocationName.city_escape_beetle,
|
||||
LocationName.city_escape_animal_1,
|
||||
LocationName.city_escape_animal_2,
|
||||
LocationName.city_escape_animal_3,
|
||||
LocationName.city_escape_animal_4,
|
||||
LocationName.city_escape_animal_5,
|
||||
LocationName.city_escape_animal_6,
|
||||
LocationName.city_escape_animal_7,
|
||||
LocationName.city_escape_animal_8,
|
||||
LocationName.city_escape_animal_9,
|
||||
LocationName.city_escape_animal_10,
|
||||
LocationName.city_escape_animal_11,
|
||||
LocationName.city_escape_animal_12,
|
||||
LocationName.city_escape_animal_13,
|
||||
LocationName.city_escape_animal_14,
|
||||
LocationName.city_escape_animal_15,
|
||||
LocationName.city_escape_animal_16,
|
||||
LocationName.city_escape_animal_17,
|
||||
LocationName.city_escape_animal_18,
|
||||
LocationName.city_escape_animal_19,
|
||||
LocationName.city_escape_animal_20,
|
||||
LocationName.city_escape_upgrade,
|
||||
]
|
||||
city_escape_region = create_region(world, player, active_locations, LocationName.city_escape_region,
|
||||
@@ -170,6 +190,20 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.metal_harbor_omo_4,
|
||||
LocationName.metal_harbor_omo_5,
|
||||
LocationName.metal_harbor_beetle,
|
||||
LocationName.metal_harbor_animal_1,
|
||||
LocationName.metal_harbor_animal_2,
|
||||
LocationName.metal_harbor_animal_3,
|
||||
LocationName.metal_harbor_animal_4,
|
||||
LocationName.metal_harbor_animal_5,
|
||||
LocationName.metal_harbor_animal_6,
|
||||
LocationName.metal_harbor_animal_7,
|
||||
LocationName.metal_harbor_animal_8,
|
||||
LocationName.metal_harbor_animal_9,
|
||||
LocationName.metal_harbor_animal_10,
|
||||
LocationName.metal_harbor_animal_11,
|
||||
LocationName.metal_harbor_animal_12,
|
||||
LocationName.metal_harbor_animal_13,
|
||||
LocationName.metal_harbor_animal_14,
|
||||
LocationName.metal_harbor_upgrade,
|
||||
]
|
||||
metal_harbor_region = create_region(world, player, active_locations, LocationName.metal_harbor_region,
|
||||
@@ -191,6 +225,24 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.green_forest_hidden_3,
|
||||
LocationName.green_forest_hidden_4,
|
||||
LocationName.green_forest_beetle,
|
||||
LocationName.green_forest_animal_1,
|
||||
LocationName.green_forest_animal_2,
|
||||
LocationName.green_forest_animal_3,
|
||||
LocationName.green_forest_animal_4,
|
||||
LocationName.green_forest_animal_5,
|
||||
LocationName.green_forest_animal_6,
|
||||
LocationName.green_forest_animal_7,
|
||||
LocationName.green_forest_animal_8,
|
||||
LocationName.green_forest_animal_9,
|
||||
LocationName.green_forest_animal_10,
|
||||
LocationName.green_forest_animal_11,
|
||||
LocationName.green_forest_animal_12,
|
||||
LocationName.green_forest_animal_13,
|
||||
LocationName.green_forest_animal_14,
|
||||
LocationName.green_forest_animal_15,
|
||||
LocationName.green_forest_animal_16,
|
||||
LocationName.green_forest_animal_17,
|
||||
LocationName.green_forest_animal_18,
|
||||
LocationName.green_forest_upgrade,
|
||||
]
|
||||
green_forest_region = create_region(world, player, active_locations, LocationName.green_forest_region,
|
||||
@@ -214,6 +266,25 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.pyramid_cave_omo_3,
|
||||
LocationName.pyramid_cave_omo_4,
|
||||
LocationName.pyramid_cave_beetle,
|
||||
LocationName.pyramid_cave_animal_1,
|
||||
LocationName.pyramid_cave_animal_2,
|
||||
LocationName.pyramid_cave_animal_3,
|
||||
LocationName.pyramid_cave_animal_4,
|
||||
LocationName.pyramid_cave_animal_5,
|
||||
LocationName.pyramid_cave_animal_6,
|
||||
LocationName.pyramid_cave_animal_7,
|
||||
LocationName.pyramid_cave_animal_8,
|
||||
LocationName.pyramid_cave_animal_9,
|
||||
LocationName.pyramid_cave_animal_10,
|
||||
LocationName.pyramid_cave_animal_11,
|
||||
LocationName.pyramid_cave_animal_12,
|
||||
LocationName.pyramid_cave_animal_13,
|
||||
LocationName.pyramid_cave_animal_14,
|
||||
LocationName.pyramid_cave_animal_15,
|
||||
LocationName.pyramid_cave_animal_16,
|
||||
LocationName.pyramid_cave_animal_17,
|
||||
LocationName.pyramid_cave_animal_18,
|
||||
LocationName.pyramid_cave_animal_19,
|
||||
LocationName.pyramid_cave_upgrade,
|
||||
]
|
||||
pyramid_cave_region = create_region(world, player, active_locations, LocationName.pyramid_cave_region,
|
||||
@@ -247,6 +318,22 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.crazy_gadget_omo_12,
|
||||
LocationName.crazy_gadget_omo_13,
|
||||
LocationName.crazy_gadget_beetle,
|
||||
LocationName.crazy_gadget_animal_1,
|
||||
LocationName.crazy_gadget_animal_2,
|
||||
LocationName.crazy_gadget_animal_3,
|
||||
LocationName.crazy_gadget_animal_4,
|
||||
LocationName.crazy_gadget_animal_5,
|
||||
LocationName.crazy_gadget_animal_6,
|
||||
LocationName.crazy_gadget_animal_7,
|
||||
LocationName.crazy_gadget_animal_8,
|
||||
LocationName.crazy_gadget_animal_9,
|
||||
LocationName.crazy_gadget_animal_10,
|
||||
LocationName.crazy_gadget_animal_11,
|
||||
LocationName.crazy_gadget_animal_12,
|
||||
LocationName.crazy_gadget_animal_13,
|
||||
LocationName.crazy_gadget_animal_14,
|
||||
LocationName.crazy_gadget_animal_15,
|
||||
LocationName.crazy_gadget_animal_16,
|
||||
LocationName.crazy_gadget_upgrade,
|
||||
]
|
||||
crazy_gadget_region = create_region(world, player, active_locations, LocationName.crazy_gadget_region,
|
||||
@@ -267,6 +354,22 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.final_rush_omo_2,
|
||||
LocationName.final_rush_omo_3,
|
||||
LocationName.final_rush_beetle,
|
||||
LocationName.final_rush_animal_1,
|
||||
LocationName.final_rush_animal_2,
|
||||
LocationName.final_rush_animal_3,
|
||||
LocationName.final_rush_animal_4,
|
||||
LocationName.final_rush_animal_5,
|
||||
LocationName.final_rush_animal_6,
|
||||
LocationName.final_rush_animal_7,
|
||||
LocationName.final_rush_animal_8,
|
||||
LocationName.final_rush_animal_9,
|
||||
LocationName.final_rush_animal_10,
|
||||
LocationName.final_rush_animal_11,
|
||||
LocationName.final_rush_animal_12,
|
||||
LocationName.final_rush_animal_13,
|
||||
LocationName.final_rush_animal_14,
|
||||
LocationName.final_rush_animal_15,
|
||||
LocationName.final_rush_animal_16,
|
||||
LocationName.final_rush_upgrade,
|
||||
]
|
||||
final_rush_region = create_region(world, player, active_locations, LocationName.final_rush_region,
|
||||
@@ -298,6 +401,21 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.prison_lane_omo_9,
|
||||
LocationName.prison_lane_omo_10,
|
||||
LocationName.prison_lane_beetle,
|
||||
LocationName.prison_lane_animal_1,
|
||||
LocationName.prison_lane_animal_2,
|
||||
LocationName.prison_lane_animal_3,
|
||||
LocationName.prison_lane_animal_4,
|
||||
LocationName.prison_lane_animal_5,
|
||||
LocationName.prison_lane_animal_6,
|
||||
LocationName.prison_lane_animal_7,
|
||||
LocationName.prison_lane_animal_8,
|
||||
LocationName.prison_lane_animal_9,
|
||||
LocationName.prison_lane_animal_10,
|
||||
LocationName.prison_lane_animal_11,
|
||||
LocationName.prison_lane_animal_12,
|
||||
LocationName.prison_lane_animal_13,
|
||||
LocationName.prison_lane_animal_14,
|
||||
LocationName.prison_lane_animal_15,
|
||||
LocationName.prison_lane_upgrade,
|
||||
]
|
||||
prison_lane_region = create_region(world, player, active_locations, LocationName.prison_lane_region,
|
||||
@@ -328,6 +446,22 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.mission_street_omo_7,
|
||||
LocationName.mission_street_omo_8,
|
||||
LocationName.mission_street_beetle,
|
||||
LocationName.mission_street_animal_1,
|
||||
LocationName.mission_street_animal_2,
|
||||
LocationName.mission_street_animal_3,
|
||||
LocationName.mission_street_animal_4,
|
||||
LocationName.mission_street_animal_5,
|
||||
LocationName.mission_street_animal_6,
|
||||
LocationName.mission_street_animal_7,
|
||||
LocationName.mission_street_animal_8,
|
||||
LocationName.mission_street_animal_9,
|
||||
LocationName.mission_street_animal_10,
|
||||
LocationName.mission_street_animal_11,
|
||||
LocationName.mission_street_animal_12,
|
||||
LocationName.mission_street_animal_13,
|
||||
LocationName.mission_street_animal_14,
|
||||
LocationName.mission_street_animal_15,
|
||||
LocationName.mission_street_animal_16,
|
||||
LocationName.mission_street_upgrade,
|
||||
]
|
||||
mission_street_region = create_region(world, player, active_locations, LocationName.mission_street_region,
|
||||
@@ -361,6 +495,21 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.hidden_base_omo_3,
|
||||
LocationName.hidden_base_omo_4,
|
||||
LocationName.hidden_base_beetle,
|
||||
LocationName.hidden_base_animal_1,
|
||||
LocationName.hidden_base_animal_2,
|
||||
LocationName.hidden_base_animal_3,
|
||||
LocationName.hidden_base_animal_4,
|
||||
LocationName.hidden_base_animal_5,
|
||||
LocationName.hidden_base_animal_6,
|
||||
LocationName.hidden_base_animal_7,
|
||||
LocationName.hidden_base_animal_8,
|
||||
LocationName.hidden_base_animal_9,
|
||||
LocationName.hidden_base_animal_10,
|
||||
LocationName.hidden_base_animal_11,
|
||||
LocationName.hidden_base_animal_12,
|
||||
LocationName.hidden_base_animal_13,
|
||||
LocationName.hidden_base_animal_14,
|
||||
LocationName.hidden_base_animal_15,
|
||||
LocationName.hidden_base_upgrade,
|
||||
]
|
||||
hidden_base_region = create_region(world, player, active_locations, LocationName.hidden_base_region,
|
||||
@@ -393,6 +542,21 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.eternal_engine_omo_11,
|
||||
LocationName.eternal_engine_omo_12,
|
||||
LocationName.eternal_engine_beetle,
|
||||
LocationName.eternal_engine_animal_1,
|
||||
LocationName.eternal_engine_animal_2,
|
||||
LocationName.eternal_engine_animal_3,
|
||||
LocationName.eternal_engine_animal_4,
|
||||
LocationName.eternal_engine_animal_5,
|
||||
LocationName.eternal_engine_animal_6,
|
||||
LocationName.eternal_engine_animal_7,
|
||||
LocationName.eternal_engine_animal_8,
|
||||
LocationName.eternal_engine_animal_9,
|
||||
LocationName.eternal_engine_animal_10,
|
||||
LocationName.eternal_engine_animal_11,
|
||||
LocationName.eternal_engine_animal_12,
|
||||
LocationName.eternal_engine_animal_13,
|
||||
LocationName.eternal_engine_animal_14,
|
||||
LocationName.eternal_engine_animal_15,
|
||||
LocationName.eternal_engine_upgrade,
|
||||
]
|
||||
eternal_engine_region = create_region(world, player, active_locations, LocationName.eternal_engine_region,
|
||||
@@ -421,6 +585,16 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.wild_canyon_omo_9,
|
||||
LocationName.wild_canyon_omo_10,
|
||||
LocationName.wild_canyon_beetle,
|
||||
LocationName.wild_canyon_animal_1,
|
||||
LocationName.wild_canyon_animal_2,
|
||||
LocationName.wild_canyon_animal_3,
|
||||
LocationName.wild_canyon_animal_4,
|
||||
LocationName.wild_canyon_animal_5,
|
||||
LocationName.wild_canyon_animal_6,
|
||||
LocationName.wild_canyon_animal_7,
|
||||
LocationName.wild_canyon_animal_8,
|
||||
LocationName.wild_canyon_animal_9,
|
||||
LocationName.wild_canyon_animal_10,
|
||||
LocationName.wild_canyon_upgrade,
|
||||
]
|
||||
wild_canyon_region = create_region(world, player, active_locations, LocationName.wild_canyon_region,
|
||||
@@ -448,6 +622,17 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.pumpkin_hill_omo_9,
|
||||
LocationName.pumpkin_hill_omo_10,
|
||||
LocationName.pumpkin_hill_omo_11,
|
||||
LocationName.pumpkin_hill_animal_1,
|
||||
LocationName.pumpkin_hill_animal_2,
|
||||
LocationName.pumpkin_hill_animal_3,
|
||||
LocationName.pumpkin_hill_animal_4,
|
||||
LocationName.pumpkin_hill_animal_5,
|
||||
LocationName.pumpkin_hill_animal_6,
|
||||
LocationName.pumpkin_hill_animal_7,
|
||||
LocationName.pumpkin_hill_animal_8,
|
||||
LocationName.pumpkin_hill_animal_9,
|
||||
LocationName.pumpkin_hill_animal_10,
|
||||
LocationName.pumpkin_hill_animal_11,
|
||||
LocationName.pumpkin_hill_upgrade,
|
||||
]
|
||||
pumpkin_hill_region = create_region(world, player, active_locations, LocationName.pumpkin_hill_region,
|
||||
@@ -473,6 +658,16 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.aquatic_mine_omo_6,
|
||||
LocationName.aquatic_mine_omo_7,
|
||||
LocationName.aquatic_mine_beetle,
|
||||
LocationName.aquatic_mine_animal_1,
|
||||
LocationName.aquatic_mine_animal_2,
|
||||
LocationName.aquatic_mine_animal_3,
|
||||
LocationName.aquatic_mine_animal_4,
|
||||
LocationName.aquatic_mine_animal_5,
|
||||
LocationName.aquatic_mine_animal_6,
|
||||
LocationName.aquatic_mine_animal_7,
|
||||
LocationName.aquatic_mine_animal_8,
|
||||
LocationName.aquatic_mine_animal_9,
|
||||
LocationName.aquatic_mine_animal_10,
|
||||
LocationName.aquatic_mine_upgrade,
|
||||
]
|
||||
aquatic_mine_region = create_region(world, player, active_locations, LocationName.aquatic_mine_region,
|
||||
@@ -502,6 +697,16 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.death_chamber_omo_8,
|
||||
LocationName.death_chamber_omo_9,
|
||||
LocationName.death_chamber_beetle,
|
||||
LocationName.death_chamber_animal_1,
|
||||
LocationName.death_chamber_animal_2,
|
||||
LocationName.death_chamber_animal_3,
|
||||
LocationName.death_chamber_animal_4,
|
||||
LocationName.death_chamber_animal_5,
|
||||
LocationName.death_chamber_animal_6,
|
||||
LocationName.death_chamber_animal_7,
|
||||
LocationName.death_chamber_animal_8,
|
||||
LocationName.death_chamber_animal_9,
|
||||
LocationName.death_chamber_animal_10,
|
||||
LocationName.death_chamber_upgrade,
|
||||
]
|
||||
death_chamber_region = create_region(world, player, active_locations, LocationName.death_chamber_region,
|
||||
@@ -523,6 +728,17 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.meteor_herd_omo_2,
|
||||
LocationName.meteor_herd_omo_3,
|
||||
LocationName.meteor_herd_beetle,
|
||||
LocationName.meteor_herd_animal_1,
|
||||
LocationName.meteor_herd_animal_2,
|
||||
LocationName.meteor_herd_animal_3,
|
||||
LocationName.meteor_herd_animal_4,
|
||||
LocationName.meteor_herd_animal_5,
|
||||
LocationName.meteor_herd_animal_6,
|
||||
LocationName.meteor_herd_animal_7,
|
||||
LocationName.meteor_herd_animal_8,
|
||||
LocationName.meteor_herd_animal_9,
|
||||
LocationName.meteor_herd_animal_10,
|
||||
LocationName.meteor_herd_animal_11,
|
||||
LocationName.meteor_herd_upgrade,
|
||||
]
|
||||
meteor_herd_region = create_region(world, player, active_locations, LocationName.meteor_herd_region,
|
||||
@@ -552,6 +768,26 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.radical_highway_omo_7,
|
||||
LocationName.radical_highway_omo_8,
|
||||
LocationName.radical_highway_beetle,
|
||||
LocationName.radical_highway_animal_1,
|
||||
LocationName.radical_highway_animal_2,
|
||||
LocationName.radical_highway_animal_3,
|
||||
LocationName.radical_highway_animal_4,
|
||||
LocationName.radical_highway_animal_5,
|
||||
LocationName.radical_highway_animal_6,
|
||||
LocationName.radical_highway_animal_7,
|
||||
LocationName.radical_highway_animal_8,
|
||||
LocationName.radical_highway_animal_9,
|
||||
LocationName.radical_highway_animal_10,
|
||||
LocationName.radical_highway_animal_11,
|
||||
LocationName.radical_highway_animal_12,
|
||||
LocationName.radical_highway_animal_13,
|
||||
LocationName.radical_highway_animal_14,
|
||||
LocationName.radical_highway_animal_15,
|
||||
LocationName.radical_highway_animal_16,
|
||||
LocationName.radical_highway_animal_17,
|
||||
LocationName.radical_highway_animal_18,
|
||||
LocationName.radical_highway_animal_19,
|
||||
LocationName.radical_highway_animal_20,
|
||||
LocationName.radical_highway_upgrade,
|
||||
]
|
||||
radical_highway_region = create_region(world, player, active_locations, LocationName.radical_highway_region,
|
||||
@@ -579,6 +815,22 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.white_jungle_omo_4,
|
||||
LocationName.white_jungle_omo_5,
|
||||
LocationName.white_jungle_beetle,
|
||||
LocationName.white_jungle_animal_1,
|
||||
LocationName.white_jungle_animal_2,
|
||||
LocationName.white_jungle_animal_3,
|
||||
LocationName.white_jungle_animal_4,
|
||||
LocationName.white_jungle_animal_5,
|
||||
LocationName.white_jungle_animal_6,
|
||||
LocationName.white_jungle_animal_7,
|
||||
LocationName.white_jungle_animal_8,
|
||||
LocationName.white_jungle_animal_9,
|
||||
LocationName.white_jungle_animal_10,
|
||||
LocationName.white_jungle_animal_11,
|
||||
LocationName.white_jungle_animal_12,
|
||||
LocationName.white_jungle_animal_13,
|
||||
LocationName.white_jungle_animal_14,
|
||||
LocationName.white_jungle_animal_15,
|
||||
LocationName.white_jungle_animal_16,
|
||||
LocationName.white_jungle_upgrade,
|
||||
]
|
||||
white_jungle_region = create_region(world, player, active_locations, LocationName.white_jungle_region,
|
||||
@@ -600,6 +852,26 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.sky_rail_pipe_5,
|
||||
LocationName.sky_rail_pipe_6,
|
||||
LocationName.sky_rail_beetle,
|
||||
LocationName.sky_rail_animal_1,
|
||||
LocationName.sky_rail_animal_2,
|
||||
LocationName.sky_rail_animal_3,
|
||||
LocationName.sky_rail_animal_4,
|
||||
LocationName.sky_rail_animal_5,
|
||||
LocationName.sky_rail_animal_6,
|
||||
LocationName.sky_rail_animal_7,
|
||||
LocationName.sky_rail_animal_8,
|
||||
LocationName.sky_rail_animal_9,
|
||||
LocationName.sky_rail_animal_10,
|
||||
LocationName.sky_rail_animal_11,
|
||||
LocationName.sky_rail_animal_12,
|
||||
LocationName.sky_rail_animal_13,
|
||||
LocationName.sky_rail_animal_14,
|
||||
LocationName.sky_rail_animal_15,
|
||||
LocationName.sky_rail_animal_16,
|
||||
LocationName.sky_rail_animal_17,
|
||||
LocationName.sky_rail_animal_18,
|
||||
LocationName.sky_rail_animal_19,
|
||||
LocationName.sky_rail_animal_20,
|
||||
LocationName.sky_rail_upgrade,
|
||||
]
|
||||
sky_rail_region = create_region(world, player, active_locations, LocationName.sky_rail_region,
|
||||
@@ -619,6 +891,23 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.final_chase_pipe_3,
|
||||
LocationName.final_chase_omo_1,
|
||||
LocationName.final_chase_beetle,
|
||||
LocationName.final_chase_animal_1,
|
||||
LocationName.final_chase_animal_2,
|
||||
LocationName.final_chase_animal_3,
|
||||
LocationName.final_chase_animal_4,
|
||||
LocationName.final_chase_animal_5,
|
||||
LocationName.final_chase_animal_6,
|
||||
LocationName.final_chase_animal_7,
|
||||
LocationName.final_chase_animal_8,
|
||||
LocationName.final_chase_animal_9,
|
||||
LocationName.final_chase_animal_10,
|
||||
LocationName.final_chase_animal_11,
|
||||
LocationName.final_chase_animal_12,
|
||||
LocationName.final_chase_animal_13,
|
||||
LocationName.final_chase_animal_14,
|
||||
LocationName.final_chase_animal_15,
|
||||
LocationName.final_chase_animal_16,
|
||||
LocationName.final_chase_animal_17,
|
||||
LocationName.final_chase_upgrade,
|
||||
]
|
||||
final_chase_region = create_region(world, player, active_locations, LocationName.final_chase_region,
|
||||
@@ -645,6 +934,21 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.iron_gate_omo_5,
|
||||
LocationName.iron_gate_omo_6,
|
||||
LocationName.iron_gate_beetle,
|
||||
LocationName.iron_gate_animal_1,
|
||||
LocationName.iron_gate_animal_2,
|
||||
LocationName.iron_gate_animal_3,
|
||||
LocationName.iron_gate_animal_4,
|
||||
LocationName.iron_gate_animal_5,
|
||||
LocationName.iron_gate_animal_6,
|
||||
LocationName.iron_gate_animal_7,
|
||||
LocationName.iron_gate_animal_8,
|
||||
LocationName.iron_gate_animal_9,
|
||||
LocationName.iron_gate_animal_10,
|
||||
LocationName.iron_gate_animal_11,
|
||||
LocationName.iron_gate_animal_12,
|
||||
LocationName.iron_gate_animal_13,
|
||||
LocationName.iron_gate_animal_14,
|
||||
LocationName.iron_gate_animal_15,
|
||||
LocationName.iron_gate_upgrade,
|
||||
]
|
||||
iron_gate_region = create_region(world, player, active_locations, LocationName.iron_gate_region,
|
||||
@@ -667,6 +971,21 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.sand_ocean_omo_1,
|
||||
LocationName.sand_ocean_omo_2,
|
||||
LocationName.sand_ocean_beetle,
|
||||
LocationName.sand_ocean_animal_1,
|
||||
LocationName.sand_ocean_animal_2,
|
||||
LocationName.sand_ocean_animal_3,
|
||||
LocationName.sand_ocean_animal_4,
|
||||
LocationName.sand_ocean_animal_5,
|
||||
LocationName.sand_ocean_animal_6,
|
||||
LocationName.sand_ocean_animal_7,
|
||||
LocationName.sand_ocean_animal_8,
|
||||
LocationName.sand_ocean_animal_9,
|
||||
LocationName.sand_ocean_animal_10,
|
||||
LocationName.sand_ocean_animal_11,
|
||||
LocationName.sand_ocean_animal_12,
|
||||
LocationName.sand_ocean_animal_13,
|
||||
LocationName.sand_ocean_animal_14,
|
||||
LocationName.sand_ocean_animal_15,
|
||||
LocationName.sand_ocean_upgrade,
|
||||
]
|
||||
sand_ocean_region = create_region(world, player, active_locations, LocationName.sand_ocean_region,
|
||||
@@ -693,6 +1012,20 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.lost_colony_omo_7,
|
||||
LocationName.lost_colony_omo_8,
|
||||
LocationName.lost_colony_beetle,
|
||||
LocationName.lost_colony_animal_1,
|
||||
LocationName.lost_colony_animal_2,
|
||||
LocationName.lost_colony_animal_3,
|
||||
LocationName.lost_colony_animal_4,
|
||||
LocationName.lost_colony_animal_5,
|
||||
LocationName.lost_colony_animal_6,
|
||||
LocationName.lost_colony_animal_7,
|
||||
LocationName.lost_colony_animal_8,
|
||||
LocationName.lost_colony_animal_9,
|
||||
LocationName.lost_colony_animal_10,
|
||||
LocationName.lost_colony_animal_11,
|
||||
LocationName.lost_colony_animal_12,
|
||||
LocationName.lost_colony_animal_13,
|
||||
LocationName.lost_colony_animal_14,
|
||||
LocationName.lost_colony_upgrade,
|
||||
]
|
||||
lost_colony_region = create_region(world, player, active_locations, LocationName.lost_colony_region,
|
||||
@@ -715,6 +1048,21 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.weapons_bed_omo_1,
|
||||
LocationName.weapons_bed_omo_2,
|
||||
LocationName.weapons_bed_omo_3,
|
||||
LocationName.weapons_bed_animal_1,
|
||||
LocationName.weapons_bed_animal_2,
|
||||
LocationName.weapons_bed_animal_3,
|
||||
LocationName.weapons_bed_animal_4,
|
||||
LocationName.weapons_bed_animal_5,
|
||||
LocationName.weapons_bed_animal_6,
|
||||
LocationName.weapons_bed_animal_7,
|
||||
LocationName.weapons_bed_animal_8,
|
||||
LocationName.weapons_bed_animal_9,
|
||||
LocationName.weapons_bed_animal_10,
|
||||
LocationName.weapons_bed_animal_11,
|
||||
LocationName.weapons_bed_animal_12,
|
||||
LocationName.weapons_bed_animal_13,
|
||||
LocationName.weapons_bed_animal_14,
|
||||
LocationName.weapons_bed_animal_15,
|
||||
LocationName.weapons_bed_upgrade,
|
||||
]
|
||||
weapons_bed_region = create_region(world, player, active_locations, LocationName.weapons_bed_region,
|
||||
@@ -736,6 +1084,21 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.cosmic_wall_pipe_5,
|
||||
LocationName.cosmic_wall_omo_1,
|
||||
LocationName.cosmic_wall_beetle,
|
||||
LocationName.cosmic_wall_animal_1,
|
||||
LocationName.cosmic_wall_animal_2,
|
||||
LocationName.cosmic_wall_animal_3,
|
||||
LocationName.cosmic_wall_animal_4,
|
||||
LocationName.cosmic_wall_animal_5,
|
||||
LocationName.cosmic_wall_animal_6,
|
||||
LocationName.cosmic_wall_animal_7,
|
||||
LocationName.cosmic_wall_animal_8,
|
||||
LocationName.cosmic_wall_animal_9,
|
||||
LocationName.cosmic_wall_animal_10,
|
||||
LocationName.cosmic_wall_animal_11,
|
||||
LocationName.cosmic_wall_animal_12,
|
||||
LocationName.cosmic_wall_animal_13,
|
||||
LocationName.cosmic_wall_animal_14,
|
||||
LocationName.cosmic_wall_animal_15,
|
||||
LocationName.cosmic_wall_upgrade,
|
||||
]
|
||||
cosmic_wall_region = create_region(world, player, active_locations, LocationName.cosmic_wall_region,
|
||||
@@ -765,6 +1128,16 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.dry_lagoon_omo_11,
|
||||
LocationName.dry_lagoon_omo_12,
|
||||
LocationName.dry_lagoon_beetle,
|
||||
LocationName.dry_lagoon_animal_1,
|
||||
LocationName.dry_lagoon_animal_2,
|
||||
LocationName.dry_lagoon_animal_3,
|
||||
LocationName.dry_lagoon_animal_4,
|
||||
LocationName.dry_lagoon_animal_5,
|
||||
LocationName.dry_lagoon_animal_6,
|
||||
LocationName.dry_lagoon_animal_7,
|
||||
LocationName.dry_lagoon_animal_8,
|
||||
LocationName.dry_lagoon_animal_9,
|
||||
LocationName.dry_lagoon_animal_10,
|
||||
LocationName.dry_lagoon_upgrade,
|
||||
]
|
||||
dry_lagoon_region = create_region(world, player, active_locations, LocationName.dry_lagoon_region,
|
||||
@@ -791,6 +1164,16 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.egg_quarters_omo_6,
|
||||
LocationName.egg_quarters_omo_7,
|
||||
LocationName.egg_quarters_beetle,
|
||||
LocationName.egg_quarters_animal_1,
|
||||
LocationName.egg_quarters_animal_2,
|
||||
LocationName.egg_quarters_animal_3,
|
||||
LocationName.egg_quarters_animal_4,
|
||||
LocationName.egg_quarters_animal_5,
|
||||
LocationName.egg_quarters_animal_6,
|
||||
LocationName.egg_quarters_animal_7,
|
||||
LocationName.egg_quarters_animal_8,
|
||||
LocationName.egg_quarters_animal_9,
|
||||
LocationName.egg_quarters_animal_10,
|
||||
LocationName.egg_quarters_upgrade,
|
||||
]
|
||||
egg_quarters_region = create_region(world, player, active_locations, LocationName.egg_quarters_region,
|
||||
@@ -820,6 +1203,14 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.security_hall_omo_11,
|
||||
LocationName.security_hall_omo_12,
|
||||
LocationName.security_hall_beetle,
|
||||
LocationName.security_hall_animal_1,
|
||||
LocationName.security_hall_animal_2,
|
||||
LocationName.security_hall_animal_3,
|
||||
LocationName.security_hall_animal_4,
|
||||
LocationName.security_hall_animal_5,
|
||||
LocationName.security_hall_animal_6,
|
||||
LocationName.security_hall_animal_7,
|
||||
LocationName.security_hall_animal_8,
|
||||
LocationName.security_hall_upgrade,
|
||||
]
|
||||
security_hall_region = create_region(world, player, active_locations, LocationName.security_hall_region,
|
||||
@@ -854,6 +1245,16 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.mad_space_omo_4,
|
||||
LocationName.mad_space_omo_5,
|
||||
LocationName.mad_space_beetle,
|
||||
LocationName.mad_space_animal_1,
|
||||
LocationName.mad_space_animal_2,
|
||||
LocationName.mad_space_animal_3,
|
||||
LocationName.mad_space_animal_4,
|
||||
LocationName.mad_space_animal_5,
|
||||
LocationName.mad_space_animal_6,
|
||||
LocationName.mad_space_animal_7,
|
||||
LocationName.mad_space_animal_8,
|
||||
LocationName.mad_space_animal_9,
|
||||
LocationName.mad_space_animal_10,
|
||||
LocationName.mad_space_upgrade,
|
||||
]
|
||||
mad_space_region = create_region(world, player, active_locations, LocationName.mad_space_region,
|
||||
@@ -883,6 +1284,25 @@ def create_regions(world, player: int, active_locations):
|
||||
LocationName.cannon_core_omo_7,
|
||||
LocationName.cannon_core_omo_8,
|
||||
LocationName.cannon_core_omo_9,
|
||||
LocationName.cannon_core_animal_1,
|
||||
LocationName.cannon_core_animal_2,
|
||||
LocationName.cannon_core_animal_3,
|
||||
LocationName.cannon_core_animal_4,
|
||||
LocationName.cannon_core_animal_5,
|
||||
LocationName.cannon_core_animal_6,
|
||||
LocationName.cannon_core_animal_7,
|
||||
LocationName.cannon_core_animal_8,
|
||||
LocationName.cannon_core_animal_9,
|
||||
LocationName.cannon_core_animal_10,
|
||||
LocationName.cannon_core_animal_11,
|
||||
LocationName.cannon_core_animal_12,
|
||||
LocationName.cannon_core_animal_13,
|
||||
LocationName.cannon_core_animal_14,
|
||||
LocationName.cannon_core_animal_15,
|
||||
LocationName.cannon_core_animal_16,
|
||||
LocationName.cannon_core_animal_17,
|
||||
LocationName.cannon_core_animal_18,
|
||||
LocationName.cannon_core_animal_19,
|
||||
LocationName.cannon_core_beetle,
|
||||
]
|
||||
cannon_core_region = create_region(world, player, active_locations, LocationName.cannon_core_region,
|
||||
@@ -1027,7 +1447,7 @@ def create_regions(world, player: int, active_locations):
|
||||
grand_prix_region_locations)
|
||||
world.regions += [grand_prix_region]
|
||||
|
||||
if world.goal[player] == 0 or world.goal[player] == 2:
|
||||
if world.goal[player] in [0, 2, 4, 5, 6]:
|
||||
biolizard_region_locations = [
|
||||
LocationName.finalhazard,
|
||||
]
|
||||
@@ -1035,15 +1455,25 @@ def create_regions(world, player: int, active_locations):
|
||||
biolizard_region_locations)
|
||||
world.regions += [biolizard_region]
|
||||
|
||||
if world.goal[player] == 1 or world.goal[player] == 2:
|
||||
if world.goal[player] in [1, 2]:
|
||||
green_hill_region_locations = [
|
||||
LocationName.green_hill,
|
||||
LocationName.green_hill_chao_1,
|
||||
#LocationName.green_hill_animal_1,
|
||||
]
|
||||
green_hill_region = create_region(world, player, active_locations, LocationName.green_hill_region,
|
||||
green_hill_region_locations)
|
||||
world.regions += [green_hill_region]
|
||||
|
||||
if world.goal[player] in [4, 5, 6]:
|
||||
for i in range(16):
|
||||
boss_region_locations = [
|
||||
"Boss Rush - " + str(i + 1),
|
||||
]
|
||||
boss_region = create_region(world, player, active_locations, "Boss Rush " + str(i + 1),
|
||||
boss_region_locations)
|
||||
world.regions += [boss_region]
|
||||
|
||||
|
||||
# Set up the regions correctly.
|
||||
world.regions += [
|
||||
@@ -1089,7 +1519,7 @@ def create_regions(world, player: int, active_locations):
|
||||
]
|
||||
|
||||
|
||||
def connect_regions(world, player, gates: typing.List[LevelGate], cannon_core_emblems, gate_bosses, first_cannons_core_mission: str, final_cannons_core_mission: str):
|
||||
def connect_regions(world, player, gates: typing.List[LevelGate], cannon_core_emblems, gate_bosses, boss_rush_bosses, first_cannons_core_mission: str, final_cannons_core_mission: str):
|
||||
names: typing.Dict[str, int] = {}
|
||||
|
||||
connect(world, player, names, 'Menu', LocationName.gate_0_region)
|
||||
@@ -1104,7 +1534,7 @@ def connect_regions(world, player, gates: typing.List[LevelGate], cannon_core_em
|
||||
|
||||
connect(world, player, names, LocationName.cannon_core_region, LocationName.biolizard_region,
|
||||
lambda state: (state.can_reach(required_mission_name, "Location", player)))
|
||||
elif world.goal[player] == 1 or world.goal[player] == 2:
|
||||
elif world.goal[player] in [1, 2]:
|
||||
connect(world, player, names, 'Menu', LocationName.green_hill_region,
|
||||
lambda state: (state.has(ItemName.white_emerald, player) and
|
||||
state.has(ItemName.red_emerald, player) and
|
||||
@@ -1117,6 +1547,35 @@ def connect_regions(world, player, gates: typing.List[LevelGate], cannon_core_em
|
||||
connect(world, player, names, LocationName.green_hill_region, LocationName.biolizard_region)
|
||||
elif world.goal[player] == 3:
|
||||
connect(world, player, names, LocationName.kart_race_expert_region, LocationName.grand_prix_region)
|
||||
elif world.goal[player] in [4, 5, 6]:
|
||||
if world.goal[player] == 4:
|
||||
connect(world, player, names, LocationName.gate_0_region, LocationName.boss_rush_1_region)
|
||||
elif world.goal[player] == 5:
|
||||
required_mission_name = first_cannons_core_mission
|
||||
|
||||
if world.required_cannons_core_missions[player].value == 1:
|
||||
required_mission_name = final_cannons_core_mission
|
||||
|
||||
connect(world, player, names, LocationName.cannon_core_region, LocationName.boss_rush_1_region,
|
||||
lambda state: (state.can_reach(required_mission_name, "Location", player)))
|
||||
elif world.goal[player] == 6:
|
||||
connect(world, player, names, LocationName.gate_0_region, LocationName.boss_rush_1_region,
|
||||
lambda state: (state.has(ItemName.white_emerald, player) and
|
||||
state.has(ItemName.red_emerald, player) and
|
||||
state.has(ItemName.cyan_emerald, player) and
|
||||
state.has(ItemName.purple_emerald, player) and
|
||||
state.has(ItemName.green_emerald, player) and
|
||||
state.has(ItemName.yellow_emerald, player) and
|
||||
state.has(ItemName.blue_emerald, player)))
|
||||
|
||||
for i in range(15):
|
||||
if boss_rush_bosses[i] == all_gate_bosses_table[king_boom_boo]:
|
||||
connect(world, player, names, "Boss Rush " + str(i + 1), "Boss Rush " + str(i + 2),
|
||||
lambda state: (state.has(ItemName.knuckles_shovel_claws, player)))
|
||||
else:
|
||||
connect(world, player, names, "Boss Rush " + str(i + 1), "Boss Rush " + str(i + 2))
|
||||
|
||||
connect(world, player, names, LocationName.boss_rush_16_region, LocationName.biolizard_region)
|
||||
|
||||
for i in range(len(gates[0].gate_levels)):
|
||||
connect(world, player, names, LocationName.gate_0_region, shuffleable_regions[gates[0].gate_levels[i]])
|
||||
|
||||
Reference in New Issue
Block a user