diff --git a/worlds/sc2/locations.py b/worlds/sc2/locations.py index 35a9ac21c5f8..72a4ccaf715e 100644 --- a/worlds/sc2/locations.py +++ b/worlds/sc2/locations.py @@ -4432,6 +4432,62 @@ def get_locations(world: Optional['SC2World']) -> Tuple[LocationData, ...]: and logic.zerg_mineral_dump(state) and logic.zerg_can_grab_ghosts_in_the_fog_east_rock_formation(state)) ), + make_location_data(SC2Mission.THE_GROWING_SHADOW_T.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 10700, LocationType.VICTORY, + lambda state: ( + logic.terran_common_unit(state) + and ( + adv_tactics + or logic.terran_competent_anti_air(state) + ) + )), + make_location_data(SC2Mission.THE_GROWING_SHADOW_T.mission_name, "Close Pylon", SC2_RACESWAP_LOC_ID_OFFSET + 10701, LocationType.VANILLA), + make_location_data(SC2Mission.THE_GROWING_SHADOW_T.mission_name, "East Pylon", SC2_RACESWAP_LOC_ID_OFFSET + 10702, LocationType.VANILLA, + lambda state: ( + logic.terran_common_unit(state) + and ( + adv_tactics + or logic.terran_competent_anti_air(state) + ) + )), + make_location_data(SC2Mission.THE_GROWING_SHADOW_T.mission_name, "West Pylon", SC2_RACESWAP_LOC_ID_OFFSET + 10703, LocationType.VANILLA, + lambda state: ( + logic.terran_common_unit(state) + and ( + adv_tactics + or logic.terran_competent_anti_air(state) + ) + )), + make_location_data(SC2Mission.THE_GROWING_SHADOW_T.mission_name, "Base", SC2_RACESWAP_LOC_ID_OFFSET + 10704, LocationType.EXTRA), + make_location_data(SC2Mission.THE_GROWING_SHADOW_T.mission_name, "Templar Base", SC2_RACESWAP_LOC_ID_OFFSET + 10705, LocationType.EXTRA, + lambda state: ( + logic.terran_common_unit(state) + and ( + adv_tactics + or logic.terran_competent_anti_air(state) + ) + )), + make_location_data(SC2Mission.THE_GROWING_SHADOW_Z.mission_name, "Victory", SC2_RACESWAP_LOC_ID_OFFSET + 10800, LocationType.VICTORY, + lambda state: ( + logic.zerg_common_unit(state) + and logic.zerg_basic_kerriganless_anti_air(state) + )), + make_location_data(SC2Mission.THE_GROWING_SHADOW_Z.mission_name, "Close Pylon", SC2_RACESWAP_LOC_ID_OFFSET + 10801, LocationType.VANILLA), + make_location_data(SC2Mission.THE_GROWING_SHADOW_Z.mission_name, "East Pylon", SC2_RACESWAP_LOC_ID_OFFSET + 10802, LocationType.VANILLA, + lambda state: ( + logic.zerg_common_unit(state) + and logic.zerg_basic_kerriganless_anti_air(state) + )), + make_location_data(SC2Mission.THE_GROWING_SHADOW_Z.mission_name, "West Pylon", SC2_RACESWAP_LOC_ID_OFFSET + 10803, LocationType.VANILLA, + lambda state: ( + logic.zerg_common_unit(state) + and logic.zerg_basic_kerriganless_anti_air(state) + )), + make_location_data(SC2Mission.THE_GROWING_SHADOW_Z.mission_name, "Base", SC2_RACESWAP_LOC_ID_OFFSET + 10804, LocationType.EXTRA), + make_location_data(SC2Mission.THE_GROWING_SHADOW_Z.mission_name, "Templar Base", SC2_RACESWAP_LOC_ID_OFFSET + 10805, LocationType.EXTRA, + lambda state: ( + logic.zerg_common_unit(state) + and logic.zerg_basic_kerriganless_anti_air(state) + )), ] beat_events = [] diff --git a/worlds/sc2/mission_tables.py b/worlds/sc2/mission_tables.py index dc6388f1d769..e60efb3c5516 100644 --- a/worlds/sc2/mission_tables.py +++ b/worlds/sc2/mission_tables.py @@ -161,7 +161,7 @@ def __init__(self, mission_id: int, name: str, campaign: SC2Campaign, area: str, # LotV FOR_AIUR = 53, "For Aiur!", SC2Campaign.LOTV, "Aiur", SC2Race.ANY, MissionPools.STARTER, "ap_for_aiur", MissionFlag.Protoss|MissionFlag.NoBuild|MissionFlag.VsZerg - THE_GROWING_SHADOW = 54, "The Growing Shadow", SC2Campaign.LOTV, "Aiur", SC2Race.PROTOSS, MissionPools.EASY, "ap_the_growing_shadow", MissionFlag.Protoss|MissionFlag.VsPZ + THE_GROWING_SHADOW = 54, "The Growing Shadow (Protoss)", SC2Campaign.LOTV, "Aiur", SC2Race.PROTOSS, MissionPools.EASY, "ap_the_growing_shadow", MissionFlag.Protoss|MissionFlag.VsPZ|MissionFlag.HasRaceSwap THE_SPEAR_OF_ADUN = 55, "The Spear of Adun", SC2Campaign.LOTV, "Aiur", SC2Race.PROTOSS, MissionPools.EASY, "ap_the_spear_of_adun", MissionFlag.Protoss|MissionFlag.VanillaSoa|MissionFlag.VsPZ SKY_SHIELD = 56, "Sky Shield", SC2Campaign.LOTV, "Korhal", SC2Race.PROTOSS, MissionPools.EASY, "ap_sky_shield", MissionFlag.Protoss|MissionFlag.VanillaSoa|MissionFlag.Countdown|MissionFlag.VsTerran|MissionFlag.AiTerranAlly BROTHERS_IN_ARMS = 57, "Brothers in Arms", SC2Campaign.LOTV, "Korhal", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_brothers_in_arms", MissionFlag.Protoss|MissionFlag.VanillaSoa|MissionFlag.VsTerran|MissionFlag.AiTerranAlly @@ -283,7 +283,8 @@ def __init__(self, mission_id: int, name: str, campaign: SC2Campaign, area: str, GHOSTS_IN_THE_FOG_Z = 185, "Ghosts in the Fog (Zerg)", SC2Campaign.PROLOGUE, "_2", SC2Race.ZERG, MissionPools.MEDIUM, "ap_ghosts_in_the_fog", MissionFlag.Zerg|MissionFlag.VsProtoss|MissionFlag.RaceSwap # 186/187 - Evil Awoken # 188/189 - For Aiur! - # 190/191 - The Growing Shadow + THE_GROWING_SHADOW_T = 190, "The Growing Shadow (Terran)", SC2Campaign.LOTV, "Aiur", SC2Race.TERRAN, MissionPools.EASY, "ap_the_growing_shadow", MissionFlag.Terran|MissionFlag.VsPZ|MissionFlag.RaceSwap + THE_GROWING_SHADOW_Z = 191, "The Growing Shadow (Zerg)", SC2Campaign.LOTV, "Aiur", SC2Race.ZERG, MissionPools.EASY, "ap_the_growing_shadow", MissionFlag.Zerg|MissionFlag.VsPZ|MissionFlag.RaceSwap # 192/193 - The Spear of Adun # 194/195 - Sky Shield # 196/197 - Brothers in Arms