diff --git a/worlds/sc2/MissionTables.py b/worlds/sc2/MissionTables.py index 5e7a3acc7b8a..3bcb64bd3f98 100644 --- a/worlds/sc2/MissionTables.py +++ b/worlds/sc2/MissionTables.py @@ -25,7 +25,8 @@ class MissionFlags(IntFlag): Protoss = auto() NoBuild = auto() Defense = auto() - Timed = auto() # The overall pace of the mission is guided by timers until victory or defeat + AutoScroller = auto() # The mission is won by waiting out a timer or victory is gated behind a timer + Countdown = auto() # Overall, the the mission must be beaten before a loss timer counts down Kerrigan = auto() # The player controls Kerrigan in the mission VanillaSoa = auto() # The player controls the Spear of Adun in the vanilla version of the mission Nova = auto() # The player controls NCO Nova in the mission @@ -37,7 +38,7 @@ class MissionFlags(IntFlag): VsProtoss = auto() AiAlly = AiTerranAlly|AiZergAlly|AiProtossAlly - TimedDefense = Timed|Defense + TimedDefense = AutoScroller|Defense VsTZ = VsTerran|VsZerg VsTP = VsTerran|VsProtoss VsPZ = VsProtoss|VsZerg @@ -100,22 +101,22 @@ def __init__(self, mission_id: int, name: str, campaign: SC2Campaign, area: str, LIBERATION_DAY = 1, "Liberation Day", SC2Campaign.WOL, "Mar Sara", SC2Race.ANY, MissionPools.STARTER, "ap_liberation_day", MissionFlags.Terran|MissionFlags.NoBuild|MissionFlags.VsTerran THE_OUTLAWS = 2, "The Outlaws", SC2Campaign.WOL, "Mar Sara", SC2Race.TERRAN, MissionPools.EASY, "ap_the_outlaws", MissionFlags.Terran|MissionFlags.VsTerran ZERO_HOUR = 3, "Zero Hour", SC2Campaign.WOL, "Mar Sara", SC2Race.TERRAN, MissionPools.EASY, "ap_zero_hour", MissionFlags.Terran|MissionFlags.TimedDefense|MissionFlags.VsZerg - EVACUATION = 4, "Evacuation", SC2Campaign.WOL, "Colonist", SC2Race.TERRAN, MissionPools.EASY, "ap_evacuation", MissionFlags.Terran|MissionFlags.VsZerg - OUTBREAK = 5, "Outbreak", SC2Campaign.WOL, "Colonist", SC2Race.TERRAN, MissionPools.EASY, "ap_outbreak", MissionFlags.Terran|MissionFlags.VsZerg - SAFE_HAVEN = 6, "Safe Haven", SC2Campaign.WOL, "Colonist", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_safe_haven", MissionFlags.Terran|MissionFlags.VsProtoss + EVACUATION = 4, "Evacuation", SC2Campaign.WOL, "Colonist", SC2Race.TERRAN, MissionPools.EASY, "ap_evacuation", MissionFlags.Terran|MissionFlags.AutoScroller|MissionFlags.VsZerg + OUTBREAK = 5, "Outbreak", SC2Campaign.WOL, "Colonist", SC2Race.TERRAN, MissionPools.EASY, "ap_outbreak", MissionFlags.Terran|MissionFlags.Defense|MissionFlags.VsZerg + SAFE_HAVEN = 6, "Safe Haven", SC2Campaign.WOL, "Colonist", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_safe_haven", MissionFlags.Terran|MissionFlags.Countdown|MissionFlags.VsProtoss HAVENS_FALL = 7, "Haven's Fall", SC2Campaign.WOL, "Colonist", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_havens_fall", MissionFlags.Terran|MissionFlags.VsZerg - SMASH_AND_GRAB = 8, "Smash and Grab", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.EASY, "ap_smash_and_grab", MissionFlags.Terran|MissionFlags.Timed|MissionFlags.VsPZ + SMASH_AND_GRAB = 8, "Smash and Grab", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.EASY, "ap_smash_and_grab", MissionFlags.Terran|MissionFlags.Countdown|MissionFlags.VsPZ THE_DIG = 9, "The Dig", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_the_dig", MissionFlags.Terran|MissionFlags.TimedDefense|MissionFlags.VsProtoss - THE_MOEBIUS_FACTOR = 10, "The Moebius Factor", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_the_moebius_factor", MissionFlags.Terran|MissionFlags.Timed|MissionFlags.VsZerg - SUPERNOVA = 11, "Supernova", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.HARD, "ap_supernova", MissionFlags.Terran|MissionFlags.Timed|MissionFlags.VsProtoss + THE_MOEBIUS_FACTOR = 10, "The Moebius Factor", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_the_moebius_factor", MissionFlags.Terran|MissionFlags.Countdown|MissionFlags.VsZerg + SUPERNOVA = 11, "Supernova", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.HARD, "ap_supernova", MissionFlags.Terran|MissionFlags.Countdown|MissionFlags.VsProtoss MAW_OF_THE_VOID = 12, "Maw of the Void", SC2Campaign.WOL, "Artifact", SC2Race.TERRAN, MissionPools.HARD, "ap_maw_of_the_void", MissionFlags.Terran|MissionFlags.VsProtoss DEVILS_PLAYGROUND = 13, "Devil's Playground", SC2Campaign.WOL, "Covert", SC2Race.TERRAN, MissionPools.EASY, "ap_devils_playground", MissionFlags.Terran|MissionFlags.VsZerg WELCOME_TO_THE_JUNGLE = 14, "Welcome to the Jungle", SC2Campaign.WOL, "Covert", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_welcome_to_the_jungle", MissionFlags.Terran|MissionFlags.VsProtoss BREAKOUT = 15, "Breakout", SC2Campaign.WOL, "Covert", SC2Race.ANY, MissionPools.STARTER, "ap_breakout", MissionFlags.Terran|MissionFlags.NoBuild|MissionFlags.VsTerran GHOST_OF_A_CHANCE = 16, "Ghost of a Chance", SC2Campaign.WOL, "Covert", SC2Race.ANY, MissionPools.STARTER, "ap_ghost_of_a_chance", MissionFlags.Terran|MissionFlags.NoBuild|MissionFlags.VsTerran - THE_GREAT_TRAIN_ROBBERY = 17, "The Great Train Robbery", SC2Campaign.WOL, "Rebellion", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_the_great_train_robbery", MissionFlags.Terran|MissionFlags.Timed|MissionFlags.VsTerran - CUTTHROAT = 18, "Cutthroat", SC2Campaign.WOL, "Rebellion", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_cutthroat", MissionFlags.Terran|MissionFlags.Timed|MissionFlags.VsTerran - ENGINE_OF_DESTRUCTION = 19, "Engine of Destruction", SC2Campaign.WOL, "Rebellion", SC2Race.TERRAN, MissionPools.HARD, "ap_engine_of_destruction", MissionFlags.Terran|MissionFlags.Timed|MissionFlags.VsTerran + THE_GREAT_TRAIN_ROBBERY = 17, "The Great Train Robbery", SC2Campaign.WOL, "Rebellion", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_the_great_train_robbery", MissionFlags.Terran|MissionFlags.AutoScroller|MissionFlags.VsTerran + CUTTHROAT = 18, "Cutthroat", SC2Campaign.WOL, "Rebellion", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_cutthroat", MissionFlags.Terran|MissionFlags.Countdown|MissionFlags.VsTerran + ENGINE_OF_DESTRUCTION = 19, "Engine of Destruction", SC2Campaign.WOL, "Rebellion", SC2Race.TERRAN, MissionPools.HARD, "ap_engine_of_destruction", MissionFlags.Terran|MissionFlags.AutoScroller|MissionFlags.VsTerran MEDIA_BLITZ = 20, "Media Blitz", SC2Campaign.WOL, "Rebellion", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_media_blitz", MissionFlags.Terran|MissionFlags.VsTerran PIERCING_OF_THE_SHROUD = 21, "Piercing the Shroud", SC2Campaign.WOL, "Rebellion", SC2Race.TERRAN, MissionPools.STARTER, "ap_piercing_the_shroud", MissionFlags.Terran|MissionFlags.NoBuild|MissionFlags.VsAll GATES_OF_HELL = 26, "Gates of Hell", SC2Campaign.WOL, "Char", SC2Race.TERRAN, MissionPools.HARD, "ap_gates_of_hell", MissionFlags.Terran|MissionFlags.VsZerg @@ -132,27 +133,27 @@ def __init__(self, mission_id: int, name: str, campaign: SC2Campaign, area: str, # Heart of the Swarm LAB_RAT = 30, "Lab Rat", SC2Campaign.HOTS, "Umoja", SC2Race.ZERG, MissionPools.STARTER, "ap_lab_rat", MissionFlags.Zerg|MissionFlags.VsTerran BACK_IN_THE_SADDLE = 31, "Back in the Saddle", SC2Campaign.HOTS, "Umoja", SC2Race.ANY, MissionPools.STARTER, "ap_back_in_the_saddle", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.NoBuild|MissionFlags.VsTZ - RENDEZVOUS = 32, "Rendezvous", SC2Campaign.HOTS, "Umoja", SC2Race.ZERG, MissionPools.EASY, "ap_rendezvous", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.Timed|MissionFlags.VsTerran + RENDEZVOUS = 32, "Rendezvous", SC2Campaign.HOTS, "Umoja", SC2Race.ZERG, MissionPools.EASY, "ap_rendezvous", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.AutoScroller|MissionFlags.VsTerran HARVEST_OF_SCREAMS = 33, "Harvest of Screams", SC2Campaign.HOTS, "Kaldir", SC2Race.ZERG, MissionPools.EASY, "ap_harvest_of_screams", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsProtoss - SHOOT_THE_MESSENGER = 34, "Shoot the Messenger", SC2Campaign.HOTS, "Kaldir", SC2Race.ZERG, MissionPools.EASY, "ap_shoot_the_messenger", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.Timed|MissionFlags.VsProtoss + SHOOT_THE_MESSENGER = 34, "Shoot the Messenger", SC2Campaign.HOTS, "Kaldir", SC2Race.ZERG, MissionPools.EASY, "ap_shoot_the_messenger", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.TimedDefense|MissionFlags.Countdown|MissionFlags.VsProtoss ENEMY_WITHIN = 35, "Enemy Within", SC2Campaign.HOTS, "Kaldir", SC2Race.ANY, MissionPools.EASY, "ap_enemy_within", MissionFlags.Zerg|MissionFlags.NoBuild|MissionFlags.VsProtoss - DOMINATION = 36, "Domination", SC2Campaign.HOTS, "Char", SC2Race.ZERG, MissionPools.EASY, "ap_domination", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsZerg - FIRE_IN_THE_SKY = 37, "Fire in the Sky", SC2Campaign.HOTS, "Char", SC2Race.ZERG, MissionPools.MEDIUM, "ap_fire_in_the_sky", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.Timed|MissionFlags.VsTerran + DOMINATION = 36, "Domination", SC2Campaign.HOTS, "Char", SC2Race.ZERG, MissionPools.EASY, "ap_domination", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.Countdown|MissionFlags.VsZerg + FIRE_IN_THE_SKY = 37, "Fire in the Sky", SC2Campaign.HOTS, "Char", SC2Race.ZERG, MissionPools.MEDIUM, "ap_fire_in_the_sky", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.Countdown|MissionFlags.VsTerran OLD_SOLDIERS = 38, "Old Soldiers", SC2Campaign.HOTS, "Char", SC2Race.ZERG, MissionPools.MEDIUM, "ap_old_soldiers", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsTerran WAKING_THE_ANCIENT = 39, "Waking the Ancient", SC2Campaign.HOTS, "Zerus", SC2Race.ZERG, MissionPools.MEDIUM, "ap_waking_the_ancient", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsZerg THE_CRUCIBLE = 40, "The Crucible", SC2Campaign.HOTS, "Zerus", SC2Race.ZERG, MissionPools.MEDIUM, "ap_the_crucible", MissionFlags.Zerg|MissionFlags.TimedDefense|MissionFlags.VsZerg SUPREME = 41, "Supreme", SC2Campaign.HOTS, "Zerus", SC2Race.ANY, MissionPools.MEDIUM, "ap_supreme", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.NoBuild|MissionFlags.VsZerg INFESTED = 42, "Infested", SC2Campaign.HOTS, "Skygeirr Station", SC2Race.ZERG, MissionPools.MEDIUM, "ap_infested", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsTerran - HAND_OF_DARKNESS = 43, "Hand of Darkness", SC2Campaign.HOTS, "Skygeirr Station", SC2Race.ZERG, MissionPools.HARD, "ap_hand_of_darkness", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsTerran - PHANTOMS_OF_THE_VOID = 44, "Phantoms of the Void", SC2Campaign.HOTS, "Skygeirr Station", SC2Race.ZERG, MissionPools.HARD, "ap_phantoms_of_the_void", MissionFlags.Zerg|MissionFlags.Timed|MissionFlags.VsProtoss + HAND_OF_DARKNESS = 43, "Hand of Darkness", SC2Campaign.HOTS, "Skygeirr Station", SC2Race.ZERG, MissionPools.HARD, "ap_hand_of_darkness", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.Countdown|MissionFlags.VsTerran + PHANTOMS_OF_THE_VOID = 44, "Phantoms of the Void", SC2Campaign.HOTS, "Skygeirr Station", SC2Race.ZERG, MissionPools.HARD, "ap_phantoms_of_the_void", MissionFlags.Zerg|MissionFlags.Countdown|MissionFlags.VsProtoss WITH_FRIENDS_LIKE_THESE = 45, "With Friends Like These", SC2Campaign.HOTS, "Dominion Space", SC2Race.ANY, MissionPools.STARTER, "ap_with_friends_like_these", MissionFlags.Terran|MissionFlags.NoBuild|MissionFlags.VsTerran CONVICTION = 46, "Conviction", SC2Campaign.HOTS, "Dominion Space", SC2Race.ANY, MissionPools.MEDIUM, "ap_conviction", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.NoBuild|MissionFlags.VsTerran - PLANETFALL = 47, "Planetfall", SC2Campaign.HOTS, "Korhal", SC2Race.ZERG, MissionPools.HARD, "ap_planetfall", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsTerran + PLANETFALL = 47, "Planetfall", SC2Campaign.HOTS, "Korhal", SC2Race.ZERG, MissionPools.HARD, "ap_planetfall", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.AutoScroller|MissionFlags.VsTerran DEATH_FROM_ABOVE = 48, "Death From Above", SC2Campaign.HOTS, "Korhal", SC2Race.ZERG, MissionPools.HARD, "ap_death_from_above", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsTerran THE_RECKONING = 49, "The Reckoning", SC2Campaign.HOTS, "Korhal", SC2Race.ZERG, MissionPools.HARD, "ap_the_reckoning", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsTerran|MissionFlags.AiTerranAlly # Prologue - DARK_WHISPERS = 50, "Dark Whispers", SC2Campaign.PROLOGUE, "_1", SC2Race.PROTOSS, MissionPools.EASY, "ap_dark_whispers", MissionFlags.Protoss|MissionFlags.Timed|MissionFlags.VsTZ + DARK_WHISPERS = 50, "Dark Whispers", SC2Campaign.PROLOGUE, "_1", SC2Race.PROTOSS, MissionPools.EASY, "ap_dark_whispers", MissionFlags.Protoss|MissionFlags.Countdown|MissionFlags.VsTZ GHOSTS_IN_THE_FOG = 51, "Ghosts in the Fog", SC2Campaign.PROLOGUE, "_2", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_ghosts_in_the_fog", MissionFlags.Protoss|MissionFlags.VsProtoss EVIL_AWOKEN = 52, "Evil Awoken", SC2Campaign.PROLOGUE, "_3", SC2Race.PROTOSS, MissionPools.STARTER, "ap_evil_awoken", MissionFlags.Protoss|MissionFlags.NoBuild|MissionFlags.VsProtoss @@ -160,15 +161,15 @@ def __init__(self, mission_id: int, name: str, campaign: SC2Campaign, area: str, FOR_AIUR = 53, "For Aiur!", SC2Campaign.LOTV, "Aiur", SC2Race.ANY, MissionPools.STARTER, "ap_for_aiur", MissionFlags.Protoss|MissionFlags.NoBuild|MissionFlags.VsZerg THE_GROWING_SHADOW = 54, "The Growing Shadow", SC2Campaign.LOTV, "Aiur", SC2Race.PROTOSS, MissionPools.EASY, "ap_the_growing_shadow", MissionFlags.Protoss|MissionFlags.VsPZ THE_SPEAR_OF_ADUN = 55, "The Spear of Adun", SC2Campaign.LOTV, "Aiur", SC2Race.PROTOSS, MissionPools.EASY, "ap_the_spear_of_adun", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.VsPZ - SKY_SHIELD = 56, "Sky Shield", SC2Campaign.LOTV, "Korhal", SC2Race.PROTOSS, MissionPools.EASY, "ap_sky_shield", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.Timed|MissionFlags.VsTerran|MissionFlags.AiTerranAlly + SKY_SHIELD = 56, "Sky Shield", SC2Campaign.LOTV, "Korhal", SC2Race.PROTOSS, MissionPools.EASY, "ap_sky_shield", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.Countdown|MissionFlags.VsTerran|MissionFlags.AiTerranAlly BROTHERS_IN_ARMS = 57, "Brothers in Arms", SC2Campaign.LOTV, "Korhal", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_brothers_in_arms", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.VsTerran|MissionFlags.AiTerranAlly AMON_S_REACH = 58, "Amon's Reach", SC2Campaign.LOTV, "Shakuras", SC2Race.PROTOSS, MissionPools.EASY, "ap_amon_s_reach", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.VsZerg LAST_STAND = 59, "Last Stand", SC2Campaign.LOTV, "Shakuras", SC2Race.PROTOSS, MissionPools.HARD, "ap_last_stand", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.TimedDefense|MissionFlags.VsZerg - FORBIDDEN_WEAPON = 60, "Forbidden Weapon", SC2Campaign.LOTV, "Purifier", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_forbidden_weapon", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.Timed|MissionFlags.VsProtoss + FORBIDDEN_WEAPON = 60, "Forbidden Weapon", SC2Campaign.LOTV, "Purifier", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_forbidden_weapon", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.Countdown|MissionFlags.VsProtoss TEMPLE_OF_UNIFICATION = 61, "Temple of Unification", SC2Campaign.LOTV, "Ulnar", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_temple_of_unification", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.VsTP THE_INFINITE_CYCLE = 62, "The Infinite Cycle", SC2Campaign.LOTV, "Ulnar", SC2Race.ANY, MissionPools.HARD, "ap_the_infinite_cycle", MissionFlags.Protoss|MissionFlags.Kerrigan|MissionFlags.NoBuild|MissionFlags.VsTP - HARBINGER_OF_OBLIVION = 63, "Harbinger of Oblivion", SC2Campaign.LOTV, "Ulnar", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_harbinger_of_oblivion", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.Timed|MissionFlags.VsTP|MissionFlags.AiZergAlly - UNSEALING_THE_PAST = 64, "Unsealing the Past", SC2Campaign.LOTV, "Purifier", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_unsealing_the_past", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.Timed|MissionFlags.VsZerg + HARBINGER_OF_OBLIVION = 63, "Harbinger of Oblivion", SC2Campaign.LOTV, "Ulnar", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_harbinger_of_oblivion", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.Countdown|MissionFlags.VsTP|MissionFlags.AiZergAlly + UNSEALING_THE_PAST = 64, "Unsealing the Past", SC2Campaign.LOTV, "Purifier", SC2Race.PROTOSS, MissionPools.MEDIUM, "ap_unsealing_the_past", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.AutoScroller|MissionFlags.VsZerg PURIFICATION = 65, "Purification", SC2Campaign.LOTV, "Purifier", SC2Race.PROTOSS, MissionPools.HARD, "ap_purification", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.VsZerg STEPS_OF_THE_RITE = 66, "Steps of the Rite", SC2Campaign.LOTV, "Tal'darim", SC2Race.PROTOSS, MissionPools.HARD, "ap_steps_of_the_rite", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.VsProtoss RAK_SHIR = 67, "Rak'Shir", SC2Campaign.LOTV, "Tal'darim", SC2Race.PROTOSS, MissionPools.HARD, "ap_rak_shir", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.VsProtoss @@ -180,13 +181,13 @@ def __init__(self, mission_id: int, name: str, campaign: SC2Campaign, area: str, # Epilogue INTO_THE_VOID = 72, "Into the Void", SC2Campaign.EPILOGUE, "_1", SC2Race.PROTOSS, MissionPools.VERY_HARD, "ap_into_the_void", MissionFlags.Protoss|MissionFlags.VanillaSoa|MissionFlags.VsAll|MissionFlags.AiTerranAlly|MissionFlags.AiZergAlly THE_ESSENCE_OF_ETERNITY = 73, "The Essence of Eternity", SC2Campaign.EPILOGUE, "_2", SC2Race.TERRAN, MissionPools.VERY_HARD, "ap_the_essence_of_eternity", MissionFlags.Terran|MissionFlags.TimedDefense|MissionFlags.VsAll|MissionFlags.AiZergAlly|MissionFlags.AiProtossAlly - AMON_S_FALL = 74, "Amon's Fall", SC2Campaign.EPILOGUE, "_3", SC2Race.ZERG, MissionPools.VERY_HARD, "ap_amon_s_fall", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.VsAll|MissionFlags.AiTerranAlly|MissionFlags.AiProtossAlly + AMON_S_FALL = 74, "Amon's Fall", SC2Campaign.EPILOGUE, "_3", SC2Race.ZERG, MissionPools.VERY_HARD, "ap_amon_s_fall", MissionFlags.Zerg|MissionFlags.Kerrigan|MissionFlags.AutoScroller|MissionFlags.VsAll|MissionFlags.AiTerranAlly|MissionFlags.AiProtossAlly # Nova Covert Ops THE_ESCAPE = 75, "The Escape", SC2Campaign.NCO, "_1", SC2Race.ANY, MissionPools.MEDIUM, "ap_the_escape", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.NoBuild|MissionFlags.VsTerran SUDDEN_STRIKE = 76, "Sudden Strike", SC2Campaign.NCO, "_1", SC2Race.TERRAN, MissionPools.EASY, "ap_sudden_strike", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.TimedDefense|MissionFlags.VsZerg - ENEMY_INTELLIGENCE = 77, "Enemy Intelligence", SC2Campaign.NCO, "_1", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_enemy_intelligence", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.VsZerg - TROUBLE_IN_PARADISE = 78, "Trouble In Paradise", SC2Campaign.NCO, "_2", SC2Race.TERRAN, MissionPools.HARD, "ap_trouble_in_paradise", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.Timed|MissionFlags.VsPZ + ENEMY_INTELLIGENCE = 77, "Enemy Intelligence", SC2Campaign.NCO, "_1", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_enemy_intelligence", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.Defense|MissionFlags.VsZerg + TROUBLE_IN_PARADISE = 78, "Trouble In Paradise", SC2Campaign.NCO, "_2", SC2Race.TERRAN, MissionPools.HARD, "ap_trouble_in_paradise", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.Countdown|MissionFlags.VsPZ NIGHT_TERRORS = 79, "Night Terrors", SC2Campaign.NCO, "_2", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_night_terrors", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.VsPZ FLASHPOINT = 80, "Flashpoint", SC2Campaign.NCO, "_2", SC2Race.TERRAN, MissionPools.HARD, "ap_flashpoint", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.VsZerg IN_THE_ENEMY_S_SHADOW = 81, "In the Enemy's Shadow", SC2Campaign.NCO, "_3", SC2Race.TERRAN, MissionPools.MEDIUM, "ap_in_the_enemy_s_shadow", MissionFlags.Terran|MissionFlags.Nova|MissionFlags.NoBuild|MissionFlags.VsTerran