From 64c30acdb5070ed12f987d69deb78c8a43e0b0b4 Mon Sep 17 00:00:00 2001 From: EnvyDragon <138727357+EnvyDragon@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:29:17 -0500 Subject: [PATCH] SC2: Supernova raceswaps --- worlds/sc2/locations.py | 46 ++++++++++++++++++++++++++++++++++++ worlds/sc2/mission_tables.py | 5 ++-- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/worlds/sc2/locations.py b/worlds/sc2/locations.py index 35a9ac21c5f8..bd9cd86acf22 100644 --- a/worlds/sc2/locations.py +++ b/worlds/sc2/locations.py @@ -2783,6 +2783,52 @@ def get_locations(world: Optional['SC2World']) -> Tuple[LocationData, ...]: make_location_data(SC2Mission.SMASH_AND_GRAB_P.mission_name, "Defeat Kerrigan", SC2_RACESWAP_LOC_ID_OFFSET + 1607, LocationType.MASTERY, logic.protoss_competent_comp ), + make_location_data(SC2Mission.SUPERNOVA_Z.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 2100, LocationType.VICTORY, + logic.zerg_competent_comp_competent_aa + ), + make_location_data(SC2Mission.SUPERNOVA_Z.mission_name, "West Relic", SC2_RACESWAP_LOC_ID_OFFSET + 2101, LocationType.VANILLA), + make_location_data(SC2Mission.SUPERNOVA_Z.mission_name, "North Relic", SC2_RACESWAP_LOC_ID_OFFSET + 2102, LocationType.VANILLA), + make_location_data(SC2Mission.SUPERNOVA_Z.mission_name, "South Relic", SC2_RACESWAP_LOC_ID_OFFSET + 2103, LocationType.VANILLA, + logic.zerg_competent_comp_competent_aa + ), + make_location_data(SC2Mission.SUPERNOVA_Z.mission_name, "East Relic", SC2_RACESWAP_LOC_ID_OFFSET + 2104, LocationType.VANILLA, + logic.zerg_competent_comp_competent_aa + ), + make_location_data(SC2Mission.SUPERNOVA_Z.mission_name, "Landing Zone Cleared", SC2_RACESWAP_LOC_ID_OFFSET + 2105, LocationType.EXTRA), + make_location_data(SC2Mission.SUPERNOVA_Z.mission_name, "Middle Base", SC2_RACESWAP_LOC_ID_OFFSET + 2106, LocationType.EXTRA, + logic.zerg_competent_comp_competent_aa + ), + make_location_data(SC2Mission.SUPERNOVA_Z.mission_name, "Southeast Base", SC2_RACESWAP_LOC_ID_OFFSET + 2107, LocationType.EXTRA, + logic.zerg_competent_comp_competent_aa + ), + make_location_data(SC2Mission.SUPERNOVA_P.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 2200, LocationType.VICTORY, + lambda state: ( + logic.protoss_competent_comp(state) + and (adv_tactics or state.has(item_names.PROGRESSIVE_WARP_RELOCATE, player))) + ), + make_location_data(SC2Mission.SUPERNOVA_P.mission_name, "West Relic", SC2_RACESWAP_LOC_ID_OFFSET + 2201, LocationType.VANILLA), + make_location_data(SC2Mission.SUPERNOVA_P.mission_name, "North Relic", SC2_RACESWAP_LOC_ID_OFFSET + 2202, LocationType.VANILLA), + make_location_data(SC2Mission.SUPERNOVA_P.mission_name, "South Relic", SC2_RACESWAP_LOC_ID_OFFSET + 2203, LocationType.VANILLA, + lambda state: ( + logic.protoss_competent_comp(state) + and (adv_tactics or state.has(item_names.PROGRESSIVE_WARP_RELOCATE, player))) + ), + make_location_data(SC2Mission.SUPERNOVA_P.mission_name, "East Relic", SC2_RACESWAP_LOC_ID_OFFSET + 2204, LocationType.VANILLA, + lambda state: ( + logic.protoss_competent_comp(state) + and (adv_tactics or state.has(item_names.PROGRESSIVE_WARP_RELOCATE, player))) + ), + make_location_data(SC2Mission.SUPERNOVA_P.mission_name, "Landing Zone Cleared", SC2_RACESWAP_LOC_ID_OFFSET + 2205, LocationType.EXTRA), + make_location_data(SC2Mission.SUPERNOVA_P.mission_name, "Middle Base", SC2_RACESWAP_LOC_ID_OFFSET + 2206, LocationType.EXTRA, + lambda state: ( + logic.protoss_competent_comp(state) + and (adv_tactics or state.has(item_names.PROGRESSIVE_WARP_RELOCATE, player))) + ), + make_location_data(SC2Mission.SUPERNOVA_P.mission_name, "Southeast Base", SC2_RACESWAP_LOC_ID_OFFSET + 2207, LocationType.EXTRA, + lambda state: ( + logic.protoss_competent_comp(state) + and (adv_tactics or state.has(item_names.PROGRESSIVE_WARP_RELOCATE, player))) + ), make_location_data(SC2Mission.MAW_OF_THE_VOID_Z.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 2300, LocationType.VICTORY, logic.zerg_maw_requirement ), diff --git a/worlds/sc2/mission_tables.py b/worlds/sc2/mission_tables.py index dc6388f1d769..297ca358ac87 100644 --- a/worlds/sc2/mission_tables.py +++ b/worlds/sc2/mission_tables.py @@ -110,7 +110,7 @@ def __init__(self, mission_id: int, name: str, campaign: SC2Campaign, area: str, SMASH_AND_GRAB = 8, "Smash and Grab (Terran)", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.EASY, "ap_smash_and_grab", MissionFlag.Terran|MissionFlag.Countdown|MissionFlag.VsPZ|MissionFlag.HasRaceSwap THE_DIG = 9, "The Dig", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_the_dig", MissionFlag.Terran|MissionFlag.TimedDefense|MissionFlag.VsProtoss THE_MOEBIUS_FACTOR = 10, "The Moebius Factor", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_the_moebius_factor", MissionFlag.Terran|MissionFlag.Countdown|MissionFlag.VsZerg - SUPERNOVA = 11, "Supernova", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.HARD, "ap_supernova", MissionFlag.Terran|MissionFlag.Countdown|MissionFlag.VsProtoss + SUPERNOVA = 11, "Supernova (Terran)", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.HARD, "ap_supernova", MissionFlag.Terran|MissionFlag.Countdown|MissionFlag.VsProtoss|MissionFlag.HasRaceSwap MAW_OF_THE_VOID = 12, "Maw of the Void (Terran)", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.HARD, "ap_maw_of_the_void", MissionFlag.Terran|MissionFlag.VsProtoss|MissionFlag.HasRaceSwap DEVILS_PLAYGROUND = 13, "Devil's Playground (Terran)", SC2Campaign.WOL, "Covert", SC2Race.TERRAN, MissionPools.EASY, "ap_devils_playground", MissionFlag.Terran|MissionFlag.VsZerg|MissionFlag.HasRaceSwap WELCOME_TO_THE_JUNGLE = 14, "Welcome to the Jungle (Terran)", SC2Campaign.WOL, "Covert", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_welcome_to_the_jungle", MissionFlag.Terran|MissionFlag.VsProtoss|MissionFlag.HasRaceSwap @@ -214,7 +214,8 @@ def __init__(self, mission_id: int, name: str, campaign: SC2Campaign, area: str, SMASH_AND_GRAB_P = 99, "Smash and Grab (Protoss)", SC2Campaign.WOL, "Artifact", SC2Race.PROTOSS, MissionPools.EASY, "ap_smash_and_grab", MissionFlag.Protoss|MissionFlag.Countdown|MissionFlag.VsPZ|MissionFlag.RaceSwap # 100/101 - The Dig # 102/103 - Moebius Factor - # 104/105 - Supernova + SUPERNOVA_Z = 104, "Supernova (Zerg)", SC2Campaign.WOL, "Artifact", SC2Race.ZERG, MissionPools.HARD, "ap_supernova", MissionFlag.Zerg|MissionFlag.Countdown|MissionFlag.VsProtoss|MissionFlag.RaceSwap + SUPERNOVA_P = 105, "Supernova (Protoss)", SC2Campaign.WOL, "Artifact", SC2Race.PROTOSS, MissionPools.HARD, "ap_supernova", MissionFlag.Protoss|MissionFlag.Countdown|MissionFlag.VsProtoss|MissionFlag.RaceSwap MAW_OF_THE_VOID_Z = 106, "Maw of the Void (Zerg)", SC2Campaign.WOL, "Artifact", SC2Race.ZERG, MissionPools.HARD, "ap_maw_of_the_void", MissionFlag.Zerg|MissionFlag.VsProtoss|MissionFlag.RaceSwap MAW_OF_THE_VOID_P = 107, "Maw of the Void (Protoss)", SC2Campaign.WOL, "Artifact", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_maw_of_the_void", MissionFlag.Protoss|MissionFlag.VsProtoss|MissionFlag.RaceSwap DEVILS_PLAYGROUND_Z = 108, "Devil's Playground (Zerg)", SC2Campaign.WOL, "Covert", SC2Race.ZERG, MissionPools.EASY, "ap_devils_playground", MissionFlag.Zerg|MissionFlag.VsZerg|MissionFlag.RaceSwap