//private MySubmisisonDefend m_defendGenerator; #endregion public MySlaverBaseMission() { m_ValidateIDlists = new List <List <uint> >(); m_ValidateIDlists.Add(m_closeddoors); m_ValidateIDlists.Add(m_finalparticle); m_ValidateIDlists.Add(m_openedddoors); m_ValidateIDlists.Add(m_standbyparticle); m_ValidateIDlists.Add(m_pilotsSpawn); m_ValidateIDlists.Add(m_closeentiites); ID = MyMissionID.SLAVER_BASE_1; /* ID must be added to MyMissions.cs */ Name = MyTextsWrapperEnum.SLAVER_BASE_GRAND_BURROW; Description = MyTextsWrapperEnum.SLAVER_BASE_GRAND_BURROW_Description; DebugName = new StringBuilder("09b-Slaver base Grand Burrow"); // Nazev mise Flags = MyMissionFlags.Story; MyMwcVector3Int baseSector = new MyMwcVector3Int(2052452, 0, -10533886); // Story sector of the script Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); // Starting dummy point RequiredMissions = new MyMissionID[] { MyMissionID.FORT_VALIANT }; // mise ktere musi byt splneny pred prijetim teto mise RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_10 }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN, MyActorEnum.TARJA, MyActorEnum.VALENTIN }; m_objectives = new List <MyObjective>(); // Creating of list of submissions // -------------- START DEFINICE SUBMISE --------------------- var talkWith = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_1_Name), MyMissionID.SLAVER_BASE_1_DIALOG_1, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_1_Description), null, this, new MyMissionID[] { }, dialogId: MyDialogueEnum.SLAVERBASE_0100_INTRODUCE ) { SaveOnSuccess = false }; m_objectives.Add(talkWith); var DestroyGenerators = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_GENERATOR_Name), MyMissionID.SLAVER_BASE_1_DESTROY_GENERATOR, (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_GENERATOR_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_1 }, Generators, false ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudGenerator }; m_objectives.Add(DestroyGenerators); // pridani do seznamu submisi DestroyGenerators.OnMissionSuccess += DestroyGeneratorMSSuccess; var talkWith2 = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_2_Name), MyMissionID.SLAVER_BASE_1_DIALOG_2, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_2_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DESTROY_GENERATOR }, dialogId: MyDialogueEnum.SLAVERBASE_0200_GENERATORS_DESTROYED ) { SaveOnSuccess = false }; m_objectives.Add(talkWith2); var DestroyBatteries = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_BATTERIES_Name), MyMissionID.SLAVER_BASE_1_DESTROY_BATTERIES, (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_BATTERIES_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_2 }, Batteries, false ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudBatteries }; m_objectives.Add(DestroyBatteries); // pridani do seznamu submisi DestroyBatteries.OnMissionSuccess += DestroyBatteriesMSSuccess; var FindPrison = new MyObjective( // One member of that list - je to MyObjective takze cilem je doletet do checkpointu (MyTextsWrapperEnum.SLAVER_BASE_1_FIND_PRISON_Name), // nazev submise MyMissionID.SLAVER_BASE_1_FIND_PRISON, // id submise (MyTextsWrapperEnum.SLAVER_BASE_1_FIND_PRISON_Description), // popis submise null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DESTROY_BATTERIES }, // ID submisi ktere musi byt splneny - je to prazdne takze je to prvni submise new MyMissionLocation(baseSector, (uint)EntityID.Prison_Dummy), startDialogId: MyDialogueEnum.SLAVERBASE_0300_BATTERIES_DESTROYED // ID of dummy point of checkpoint ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudPrison }; // nastaveni save na checkpointu nebo ne m_objectives.Add(FindPrison); // pridani do seznamu submisi FindPrison.OnMissionSuccess += FindPrisonMSSuccess; m_freeSlaves = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_FREE_SLAVES_Name), MyMissionID.SLAVER_BASE_1_FREE_SLAVES, (MyTextsWrapperEnum.SLAVER_BASE_1_FREE_SLAVES_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_FIND_PRISON }, m_Bars, false ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudCage }; m_objectives.Add(m_freeSlaves); // pridani do seznamu submisi var talkWith4 = new MyObjectiveDialog( MyMissionID.SLAVER_BASE_1_DIALOG_4, null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_FREE_SLAVES }, dialogId: MyDialogueEnum.SLAVERBASE_0400_SLAVES_SAVED ) { SaveOnSuccess = true }; m_objectives.Add(talkWith4); m_hackHangar = new MyObjectiveEnablePrefabs( (MyTextsWrapperEnum.SLAVER_BASE_1_HACK_HANGAR_Name), MyMissionID.SLAVER_BASE_1_HACK_HANGAR, (MyTextsWrapperEnum.SLAVER_BASE_1_HACK_HANGAR_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_4 }, null, new List <uint> { (uint)EntityID.Hack_PC }, new List <uint> { (uint)EntityID.Hangar_Doors } ) { HudName = MyTextsWrapperEnum.HudHub }; m_objectives.Add(m_hackHangar); m_hackHangar.OnMissionSuccess += HangarOpen; m_freeSlavesMS = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_FREE_SLAVES_2_Name), MyMissionID.SLAVER_BASE_1_FREE_SLAVES_2, (MyTextsWrapperEnum.SLAVER_BASE_1_FREE_SLAVES_2_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_HACK_HANGAR }, Mothership_Bars, false ) { SaveOnSuccess = false, ToDestroyCount = 1, HudName = MyTextsWrapperEnum.HudCage }; m_objectives.Add(m_freeSlavesMS); // pridani do seznamu submisi var talkWith6 = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_6_Name), MyMissionID.SLAVER_BASE_1_DIALOG_6, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_6_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_FREE_SLAVES_2, }, dialogId: MyDialogueEnum.SLAVERBASE_0600_MOTHERSHIP_EMPTY ) { SaveOnSuccess = false }; m_objectives.Add(talkWith6); var findSlaves = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_FIND_SLAVES_Name), MyMissionID.SLAVER_BASE_1_FIND_SLAVES, (MyTextsWrapperEnum.SLAVER_BASE_1_FIND_SLAVES_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_6 }, bar_pit, // ID of dummy point of checkpoint false ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudCage }; findSlaves.MissionEntityIDs.Add((uint)EntityID.Bar_pit); m_objectives.Add(findSlaves); // pridani do seznamu submisi var talkWith7 = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_7_Name), MyMissionID.SLAVER_BASE_1_DIALOG_7, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_7_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_FIND_SLAVES, }, dialogId: MyDialogueEnum.SLAVERBASE_0700_PIT_EMPTY ) { SaveOnSuccess = false }; m_objectives.Add(talkWith7); talkWith7.OnMissionLoaded += FreePilotsMSSuccess; var destroyEnemies = new MyDestroyWavesObjective( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_ENEMIES_Name), MyMissionID.SLAVER_BASE_1_DESTROY_ENEMIES, (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_ENEMIES_Description), null, this, new[] { MyMissionID.SLAVER_BASE_1_DIALOG_7 } //new List<uint> // { // (uint) EntityID.Mothership_Spawn_1, // (uint) EntityID.Mothership_Spawn_2, // (uint) EntityID.Mothership_Spawn_3 // }, ) { SaveOnSuccess = false }; destroyEnemies.AddWave(new List <uint> { (uint)EntityID.Mothership_Spawn_1 }); destroyEnemies.AddWave(new List <uint> { (uint)EntityID.Mothership_Spawn_2 }); destroyEnemies.AddWave(new List <uint> { (uint)EntityID.Mothership_Spawn_3 }); destroyEnemies.OnMissionSuccess += EnemiesDestroyed; m_objectives.Add(destroyEnemies); // pridani do seznamu submisi var talkWith9 = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_9_Name), MyMissionID.SLAVER_BASE_1_DIALOG_9, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_9_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DESTROY_ENEMIES }, dialogId: MyDialogueEnum.SLAVERBASE_0800_ENEMIES_DESTROYED ) { SaveOnSuccess = false }; m_objectives.Add(talkWith9); m_openHangarDoors = new MyObjectiveEnablePrefabs( (MyTextsWrapperEnum.SLAVER_BASE_1_HACK_NUKE_Name), MyMissionID.SLAVER_BASE_1_HACK_NUKE, (MyTextsWrapperEnum.SLAVER_BASE_1_HACK_NUKE_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_9 }, null, new List <uint> { (uint)EntityID.HangarDoorsHub }, new List <uint> { (uint)EntityID.Cargo_Bay_Doors } ) { HudName = MyTextsWrapperEnum.HudHub }; m_objectives.Add(m_openHangarDoors); m_openHangarDoors.OnMissionSuccess += MSEscape; m_openHangarDoors.OnMissionSuccess += MoveFourthReichMSStart; var talkWith10 = new MyTimedObjective( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_10_Name), MyMissionID.SLAVER_BASE_1_DIALOG_10, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_10_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_HACK_NUKE }, TimeSpan.FromSeconds(50) ) { SaveOnSuccess = false, SuccessDialogId = MyDialogueEnum.SLAVERBASE_1100_FAKE_ESCAPED, DisplayCounter = false, }; talkWith10.MissionEntityIDs.Add((uint)EntityID.Escape_Dummy); m_objectives.Add(talkWith10); }
public MyChineseTransportMission() { #region Validate IDs m_validateIDlists = new List<List<uint>>(); m_validateIDlists.Add(m_explosion1); m_validateIDlists.Add(m_explosion2); m_validateIDlists.Add(m_explosion3); m_validateIDlists.Add(m_explosion4); m_validateIDlists.Add(m_explosionFinal); m_validateIDlists.Add(m_transmitterPrefabs1); m_validateIDlists.Add(m_transmitterPrefabs2); m_validateIDlists.Add(m_spawnsStart); m_validateIDlists.Add(m_spawnsCenterAsteroid); m_validateIDlists.Add(m_spawnsTransmitter); m_validateIDlists.Add(m_spawnsCenterAsteroidOut); m_validateIDlists.Add(m_spawnsWave1); m_validateIDlists.Add(m_spawnsWave2); m_validateIDlists.Add(m_spawnsWave3); m_validateIDlists.Add(m_spawnsWave4); m_validateIDlists.Add(m_spawnsWave5); #endregion ID = MyMissionID.CHINESE_TRANSPORT; /* ID must be added to MyMissions.cs */ Name = MyTextsWrapperEnum.CHINESE_TRANSPORT; Description = MyTextsWrapperEnum.CHINESE_TRANSPORT_Description; // "Destroy the transmitter and steal the chinese transporter\n" DebugName = new StringBuilder("08b-Chinese mines of Changde"); Flags = MyMissionFlags.Story; MyMwcVector3Int baseSector = new MyMwcVector3Int(-4274372, 0, 4874227); // Story sector of the script Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); // Starting dummy point RequiredMissions = new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE }; RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_LAND_IN }; RequiredActors = new MyActorEnum[] { MyActorEnum.MADELYN, MyActorEnum.MARCUS, MyActorEnum.TARJA, MyActorEnum.VALENTIN }; m_objectives = new List<MyObjective>(); // Creating of list of submissions m_mission01_getFirstKey = new MyObjective( // One member of that list - its type defines the type of submission - MySubmission means fly to the dummypoint to success. Here it is var so you cannot call methods on it (MyTextsWrapperEnum.CHINESE_TRANSPORT_GET_SECURITY_KEY_Name), // Name of the submission MyMissionID.CHINESE_TRANSPORT_GET_SECURITY_KEY, // ID of the submission - must be added to MyMissions.cs (MyTextsWrapperEnum.CHINESE_TRANSPORT_GET_SECURITY_KEY_Description), // Description of the submission null, this, new MyMissionID[] { }, // ID of submissions required to make this submission available - it is clear so this submission is the starting submission null, startDialogId: MyDialogueEnum.CHINESE_TRANSPORT_0100_INTRODUCE ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudHub }; m_mission01_getFirstKey.MissionEntityIDs.Add((uint)EntityID.HUBGetKey); m_objectives.Add(m_mission01_getFirstKey); m_mission02_reachTunnel_1 = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_REACH_TUNNEL_1_Name), MyMissionID.CHINESE_TRANSPORT_REACH_TUNNEL_1, (MyTextsWrapperEnum.CHINESE_TRANSPORT_REACH_TUNNEL_1_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_GET_SECURITY_KEY }, new MyMissionLocation(baseSector, (uint) EntityID.ReachTunnel1), startDialogId: MyDialogueEnum.CHINESE_TRANSPORT_0200_FIRST_DEVICE_HACKED ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudTunnel }; m_objectives.Add(m_mission02_reachTunnel_1); m_mission03_reachTransmitter = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_REACH_TRANSMITTER_Name), MyMissionID.CHINESE_TRANSPORT_REACH_TRANSMITTER, (MyTextsWrapperEnum.CHINESE_TRANSPORT_REACH_TRANSMITTER_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_REACH_TUNNEL_1 }, new MyMissionLocation(baseSector, (uint)EntityID.ReachTransmitter) ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudTransmitter }; m_objectives.Add(m_mission03_reachTransmitter); m_mission04_killGuards = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.CHINESE_TRANSPORT_KILL_GUARDS_Name), MyMissionID.CHINESE_TRANSPORT_KILL_GUARDS, (MyTextsWrapperEnum.CHINESE_TRANSPORT_KILL_GUARDS_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_REACH_TRANSMITTER }, null, m_spawnsTransmitter, true, startDialogID: MyDialogueEnum.CHINESE_TRANSPORT_0500_MARCUS_IS_HERE ) { SaveOnSuccess = true }; m_objectives.Add(m_mission04_killGuards); m_mission05HackTransmitters = new MyMultipleUseObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_HACK_TRANSMITTER_Name), MyMissionID.CHINESE_TRANSPORT_HACK_TRANSMITTER, (MyTextsWrapperEnum.CHINESE_TRANSPORT_HACK_TRANSMITTER_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_KILL_GUARDS }, MyTextsWrapperEnum.HoldToUseSecurityKey, MyTextsWrapperEnum.Using, MyTextsWrapperEnum.DeactivatingInProgress, 2000, new List<uint> { (uint) EntityID.HUBHackTrans1, (uint) EntityID.HUBHackTrans2 } ) { StartDialogId = MyDialogueEnum.CHINESE_TRANSPORT_0600_DESTROY_THE_TRANSMITTER, SaveOnSuccess = false, RadiusOverride = 30, MakeEntityIndestructible = false, FailIfEntityDestroyed = true }; m_objectives.Add(m_mission05HackTransmitters); m_mission06_placeBomb = new MyUseObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_PLACE_BOMB_Name), MyMissionID.CHINESE_TRANSPORT_PLACE_BOMB, (MyTextsWrapperEnum.CHINESE_TRANSPORT_PLACE_BOMB_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_HACK_TRANSMITTER }, new MyMissionLocation(baseSector, (uint)EntityID.PlaceBomb), MyTextsWrapperEnum.PressToPlaceBomb, MyTextsWrapperEnum.Bomb, MyTextsWrapperEnum.PlacementInProgress, 5000, MyUseObjectiveType.Activating, startDialogId: MyDialogueEnum.CHINESE_TRANSPORT_0670_disabling_the_terminals ) { SaveOnSuccess = false }; m_mission06_placeBomb.MissionEntityIDs.Add((uint) EntityID.Bomb); m_objectives.Add(m_mission06_placeBomb); m_mission07_runExplosion = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_RUN_EXPLOSION_Name), MyMissionID.CHINESE_TRANSPORT_RUN_EXPLOSION, (MyTextsWrapperEnum.CHINESE_TRANSPORT_RUN_EXPLOSION_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_PLACE_BOMB }, new MyMissionLocation(baseSector, (uint)EntityID.RunExplosion), startDialogId: MyDialogueEnum.CHINESE_TRANSPORT_0700_RUN ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudSafeArea }; m_objectives.Add(m_mission07_runExplosion); m_mission08_lookOnExplosion = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_LOOK_ON_EXPLOSION_Name), MyMissionID.CHINESE_TRANSPORT_LOOK_ON_EXPLOSION, (MyTextsWrapperEnum.CHINESE_TRANSPORT_LOOK_ON_EXPLOSION_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_RUN_EXPLOSION }, new MyMissionLocation(baseSector, (uint)EntityID.DestructionTransmitter) ) { SaveOnSuccess = true }; m_objectives.Add(m_mission08_lookOnExplosion); m_mission09_reachTunnel2 = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_REACH_TUNNEL_2_Name), MyMissionID.CHINESE_TRANSPORT_REACH_TUNNEL_2, (MyTextsWrapperEnum.CHINESE_TRANSPORT_REACH_TUNNEL_2_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_LOOK_ON_EXPLOSION }, new MyMissionLocation(baseSector, (uint)EntityID.ReachTunnel2), startDialogId: MyDialogueEnum.CHINESE_TRANSPORT_0800_GO_TO_SECOND_BASE ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudTunnel }; m_objectives.Add(m_mission09_reachTunnel2); m_mission10_pastTunnel2 = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_PAST_TUNNEL_2_Name), MyMissionID.CHINESE_TRANSPORT_PAST_TUNNEL_2, (MyTextsWrapperEnum.CHINESE_TRANSPORT_PAST_TUNNEL_2_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_REACH_TUNNEL_2 }, new MyMissionLocation(baseSector, (uint)EntityID.PastTunnel2), startDialogId: MyDialogueEnum.CHINESE_TRANSPORT_0850_INSIDE_TUNNEL, successDialogId: MyDialogueEnum.CHINESE_TRANSPORT_0900_SURRENDER ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudEnd }; m_objectives.Add(m_mission10_pastTunnel2); m_mission11_reachHangarHack = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_REACH_HANGAR_HACK_Name), MyMissionID.CHINESE_TRANSPORT_REACH_HANGAR_HACK, (MyTextsWrapperEnum.CHINESE_TRANSPORT_REACH_HANGAR_HACK_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_PAST_TUNNEL_2 }, new MyMissionLocation(baseSector, (uint)EntityID.ReachHacking), successDialogId: MyDialogueEnum.CHINESE_TRANSPORT_1000_DOOR_BLOCKED ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudServiceRoom }; m_mission11_reachHangarHack.OnMissionLoaded += Mission11ReachHangarHackOnOnMissionLoaded; m_objectives.Add(m_mission11_reachHangarHack); m_mission12_hackHangarServicePC = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_HACK_HANGAR_SERVICE_PC_Name), MyMissionID.CHINESE_TRANSPORT_HACK_HANGAR_SERVICE_PC, (MyTextsWrapperEnum.CHINESE_TRANSPORT_HACK_HANGAR_SERVICE_PC_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_REACH_HANGAR_HACK }, null //startDialogId: MyDialogueEnum.CHINESE_TRANSPORT_1400_DOORS_UNLOCKED ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudHub }; m_mission12_hackHangarServicePC.OnMissionLoaded += new MissionHandler(m_mission12_hackHangarServicePC_OnMissionLoaded); m_objectives.Add(m_mission12_hackHangarServicePC); m_mission12_hackHangarServicePC.MissionEntityIDs.Add((uint)EntityID.HUBHackHangar); m_mission13_defendMarcus = new MyDestroyWavesObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_DEFEND_MARCUS_Name), MyMissionID.CHINESE_TRANSPORT_DEFEND_MARCUS, (MyTextsWrapperEnum.CHINESE_TRANSPORT_DEFEND_MARCUS_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_HACK_HANGAR_SERVICE_PC }, null, null, null, null, 4 ) { SaveOnSuccess = false, StartDialogId = MyDialogueEnum.CHINESE_TRANSPORT_1100_HELP_MARCUS }; m_mission13_defendMarcus.AddWave(m_spawnsWave1); m_mission13_defendMarcus.AddWave(m_spawnsWave2); m_mission13_defendMarcus.AddWave(m_spawnsWave3); m_mission13_defendMarcus.AddWave(m_spawnsWave4); m_mission13_defendMarcus.AddWave(m_spawnsWave5); m_mission13_defendMarcus.Components.Add(new MySpawnpointLimiter(m_spawns, 10)); m_objectives.Add(m_mission13_defendMarcus); m_mission14_killBoss = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.CHINESE_TRANSPORT_KILL_BOSS_Name), MyMissionID.CHINESE_TRANSPORT_KILL_BOSS, (MyTextsWrapperEnum.CHINESE_TRANSPORT_KILL_BOSS_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_DEFEND_MARCUS }, null, new List<uint> { (uint)EntityID.SpawnBossCompanion1, (uint)EntityID.SpawnBossCompanion2, (uint)EntityID.SpawnBoss }, true, startDialogID: MyDialogueEnum.CHINESE_TRANSPORT_1200_GENERAL_ARRIVAL ) { SaveOnSuccess = true }; m_objectives.Add(m_mission14_killBoss); m_mission15_landIn = new MyObjective( (MyTextsWrapperEnum.CHINESE_TRANSPORT_LAND_IN_Name), MyMissionID.CHINESE_TRANSPORT_LAND_IN, (MyTextsWrapperEnum.CHINESE_TRANSPORT_LAND_IN_Description), null, this, new MyMissionID[] { MyMissionID.CHINESE_TRANSPORT_KILL_BOSS }, new MyMissionLocation(baseSector, (uint)EntityID.Land), startDialogId: MyDialogueEnum.CHINESE_TRANSPORT_1300_LAND_IN ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudShip }; m_objectives.Add(m_mission15_landIn); m_mission01_getFirstKey.OnMissionLoaded += M01GetFirstKeyLoaded; m_mission02_reachTunnel_1.OnMissionLoaded += M02ReachTunnel1Loaded; m_mission03_reachTransmitter.OnMissionLoaded += M03ReachTransmitterLoaded; m_mission04_killGuards.OnMissionLoaded += M04KillGuardsLoaded; m_mission05HackTransmitters.OnMissionLoaded += M05HackTransmitterLoaded; m_mission06_placeBomb.OnMissionLoaded += M06PlaceBombLoaded; m_mission07_runExplosion.OnMissionLoaded += M07RunExplosionLoaded; m_mission08_lookOnExplosion.OnMissionLoaded += M08LookOnExplosionLoaded; m_mission09_reachTunnel2.OnMissionLoaded += M09ReachTunnel2Loaded; m_mission10_pastTunnel2.OnMissionLoaded += M10PastTunnel2Loaded; m_mission11_reachHangarHack.OnMissionLoaded += M11ReachHangarHackLoaded; m_mission12_hackHangarServicePC.OnMissionLoaded += M12HackHangarServicePCLoaded; m_mission13_defendMarcus.OnMissionLoaded += M13DefendMarcusLoaded; m_mission13_defendMarcus.OnMissionCleanUp += Mission13DefendMarcusOnOnMissionCleanUp; m_mission14_killBoss.OnMissionLoaded += M14KillBossLoaded; m_mission14_killBoss.OnMissionCleanUp += M14KillBossUnloaded; m_mission15_landIn.OnMissionLoaded += M15LandInLoaded; m_mission06_placeBomb.OnMissionSuccess += M06PlaceBombSuccess; m_mission05HackTransmitters.OnObjectUsedSucces += M05TransmittersSuccess; }
public MyAlienGateMission() { ID = MyMissionID.ALIEN_GATE; DebugName = new StringBuilder("22-Alien artifact"); Name = MyTextsWrapperEnum.ALIEN_GATE; Description = MyTextsWrapperEnum.ALIEN_GATE_Description; Flags = MyMissionFlags.Story; AchievementName = MySteamAchievementNames.Mission31_AlienGate; MyMwcVector3Int baseSector = new MyMwcVector3Int(-1202900, 0, -112652); // Story sector of the script - i.e. (-2465,0,6541) Location = new MyMissionLocation(baseSector, (uint)EntityID.FollowCoordinatesDummy); // Starting dummy point - must by typecasted to uint and referenced from EntityID enum RequiredMissions = new MyMissionID[] { MyMissionID.EAC_TRANSMITTER }; // IDs of missions required to make this mission available RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.ALIEN_GATE_23 }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN, MyActorEnum.TARJA, MyActorEnum.VALENTIN }; #region Objectives m_objectives = new List<MyObjective>(); var keepFormation = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_RIGHT_WING_Name), MyMissionID.ALIEN_GATE_RIGHT_WING, (MyTextsWrapperEnum.ALIEN_GATE_RIGHT_WING_Description), null, this, new MyMissionID[] { }, new MyMissionLocation(baseSector, (uint)EntityID.MadelynSRightWingPosition)) { HudName = MyTextsWrapperEnum.HudLeftWing }; m_objectives.Add(keepFormation); m_followCords = new MyDestroyWavesObjective( (MyTextsWrapperEnum.ALIEN_GATE_FOLLOW_COORDINATES_Name), MyMissionID.ALIEN_GATE_FOLLOW_COORDINATES, (MyTextsWrapperEnum.ALIEN_GATE_FOLLOW_COORDINATES_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_RIGHT_WING, }, new List<uint>() { }, new MyMissionLocation(baseSector, (uint)EntityID.FollowCoordinatesDummy), radiusOverride: 150) { StartDialogId = MyDialogueEnum.ALIEN_GATE_0100, SuccessDialogId = MyDialogueEnum.ALIEN_GATE_0300 }; m_followCords.AddWave(new List<uint>() { (uint)EntityID.FollowCoordinatesSpawnPoint }); m_followCords.OnMissionLoaded += M01FollowCordsOnOnMissionLoaded; m_followCords.OnMissionSuccess += M01FollowCordsOnOnMissionSuccess; m_followCords.Components.Add(new MyMovingEntity("Madelyn", (uint)EntityID.FollowCoordinatesDummy, FollowCoordinatesMadelynTime)); m_objectives.Add(m_followCords); var continueSearching = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_CONTINUE_SEARCHING_Name), MyMissionID.ALIEN_GATE_CONTINUE_SEARCHING, (MyTextsWrapperEnum.ALIEN_GATE_CONTINUE_SEARCHING_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_FOLLOW_COORDINATES }, new MyMissionLocation(baseSector, (uint)EntityID.ContinueSearchingDummy) ) { SaveOnSuccess = false, SuccessDialogId = MyDialogueEnum.ALIEN_GATE_0400, HudName = MyTextsWrapperEnum.HudSearch }; continueSearching.Components.Add(new MyMovingEntity("Madelyn", (uint)EntityID.ContinueSearchingDummy, ContinueSearchingMadelynTime)); m_objectives.Add(continueSearching); var followDirection = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_FOLLOW_DIRECTION_Name), MyMissionID.ALIEN_GATE_FOLLOW_DIRECTION, (MyTextsWrapperEnum.ALIEN_GATE_FOLLOW_DIRECTION_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_CONTINUE_SEARCHING }, new MyMissionLocation(baseSector, (uint)EntityID.FollowDirectionDummy)) { HudName = MyTextsWrapperEnum.HudFollow }; followDirection.OnMissionLoaded += M03FollowDirectionOnOnMissionLoaded; followDirection.OnMissionCleanUp += M03FollowDirectionOnOnMissionCleanUp; m_objectives.Add(followDirection); m_coughtInTrap = new MyObjectiveDialog (MyTextsWrapperEnum.ALIEN_GATE_COUGHT_IN_TRAP_Name, MyMissionID.ALIEN_GATE_COUGHT_IN_TRAP, MyTextsWrapperEnum.ALIEN_GATE_COUGHT_IN_TRAP_Description, null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_FOLLOW_DIRECTION }, MyDialogueEnum.ALIEN_GATE_0500 ) { Location = new MyMissionLocation(baseSector, (uint)EntityID.CoughtInTrapDummy), SaveOnSuccess = true }; m_coughtInTrap.OnMissionLoaded += M04CoughtInTrapOnOnMissionLoaded; m_coughtInTrap.Components.Add(new MyMovingEntity((uint)EntityID.CoughtInTrapShip1, (uint)EntityID.CoughtInTrapShip1Target, CoughtInTrapMoveTime)); m_coughtInTrap.Components.Add(new MyMovingEntity((uint)EntityID.CoughtInTrapShip2, (uint)EntityID.CoughtInTrapShip2Target, CoughtInTrapMoveTime)); m_coughtInTrap.Components.Add(new MyMovingEntity((uint)EntityID.CoughtInTrapShip3, (uint)EntityID.CoughtInTrapShip3Target, CoughtInTrapMoveTime)); m_objectives.Add(m_coughtInTrap); m_runForYourLife = new MyTimedObjective ((MyTextsWrapperEnum.ALIEN_GATE_RUN_FOR_LIFE_Name), MyMissionID.ALIEN_GATE_RUN_FOR_LIFE, (MyTextsWrapperEnum.ALIEN_GATE_RUN_FOR_LIFE_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_COUGHT_IN_TRAP }, TimeSpan.FromMilliseconds(RunForYourLifeObjectiveTime), startDialogId: MyDialogueEnum.ALIEN_GATE_0600 ) { DisplayCounter = false, Location = new MyMissionLocation(baseSector, (uint)EntityID.RunForYourLifeDummy), HudName = MyTextsWrapperEnum.HudRun }; m_runForYourLife.OnMissionLoaded += M05RunForYourLifeOnOnMissionLoaded; m_runForYourLife.Components.Add(new MyMovingEntity(MyActorConstants.GetActorName(MyActorEnum.MADELYN), (uint)EntityID.RunForYourLifeShipTarget, RunForYourLifeShipMoveTime)); m_objectives.Add(m_runForYourLife); m_regroupWithMadelyn = new MyTimedObjective( (MyTextsWrapperEnum.ALIEN_GATE_REGROUP_WITH_MADELYN_Name), MyMissionID.ALIEN_GATE_REGROUP_WITH_MADELYN, (MyTextsWrapperEnum.ALIEN_GATE_REGROUP_WITH_MADELYN_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_RUN_FOR_LIFE, }, TimeSpan.FromMilliseconds(RegroupWithMadelynMissionTime) ) { DisplayCounter = false, Location = new MyMissionLocation(baseSector, (uint)EntityID.RegroupWithMadelynShip1Target), HudName = MyTextsWrapperEnum.HudRegroup, SaveOnSuccess = true }; m_regroupWithMadelyn.OnMissionLoaded += M06RegroupWithMadelynOnOnMissionLoaded; m_regroupWithMadelyn.Components.Add(new MySpawnpointWaves((uint)EntityID.RegroupWithMadelynDetector, 1, new List<uint[]>() { new uint[]{(uint)EntityID.RegroupWithMadelynSpawn1}, new uint[]{(uint)EntityID.RegroupWithMadelynSpawn2} })); m_regroupWithMadelyn.Components.Add(new MySpawnpointWaves((uint)EntityID.RegroupWithMadelynDetector2, 1, new List<uint[]>() { new uint[]{(uint)EntityID.RegroupWithMadelynSpawn3, (uint)EntityID.RegroupWithMadelynSpawn4} })); m_regroupWithMadelyn.Components.Add(new MyMovingEntity(MyActorConstants.GetActorName(MyActorEnum.MADELYN), (uint)EntityID.RegroupWithMadelynShip1Target, RegroupWithMadelynMissionTime)); m_regroupWithMadelyn.Components.Add(new MyMovingEntity((uint)EntityID.CoughtInTrapShip1, (uint)EntityID.RegroupWithMadelynShip2Target, RegroupWithMadelynMissionTime)); m_regroupWithMadelyn.Components.Add(new MyMovingEntity((uint)EntityID.CoughtInTrapShip2, (uint)EntityID.RegroupWithMadelynShip3Target, RegroupWithMadelynMissionTime)); m_regroupWithMadelyn.Components.Add(new MyMovingEntity((uint)EntityID.CoughtInTrapShip3, (uint)EntityID.RegroupWithMadelynShip4Target, RegroupWithMadelynMissionTime)); m_regroupWithMadelyn.Components.Add(new MyTimedDialogue(new TimeSpan(0, 0, 50), MyDialogueEnum.ALIEN_GATE_0900)); m_regroupWithMadelyn.Components.Add(new MyDetectorDialogue((uint)EntityID.RegroupWithMadelynShip1Target, MyDialogueEnum.ALIEN_GATE_0800B)); m_objectives.Add(m_regroupWithMadelyn); m_boardMotherShip = new MyObjective ((MyTextsWrapperEnum.ALIEN_GATE_BOARD_MOTHER_SHIP_Name), MyMissionID.ALIEN_GATE_BOARD_MOTHER_SHIP, (MyTextsWrapperEnum.ALIEN_GATE_BOARD_MOTHER_SHIP_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_REGROUP_WITH_MADELYN, }, new MyMissionLocation(baseSector, (uint)EntityID.BoardmotherShipDummy) ) { SuccessDialogId = MyDialogueEnum.ALIEN_GATE_1100, HudName = MyTextsWrapperEnum.HudMothership }; m_boardMotherShip.Components.Add(new MySpawnpointWaves((uint)EntityID.BoardmotherShipDetector1, 1, (uint)EntityID.BoardmotherShipSpawn1)); m_boardMotherShip.Components.Add(new MySpawnpointWaves((uint)EntityID.BoardmotherShipDetector2, 1, (uint)EntityID.BoardmotherShipSpawn2)); m_boardMotherShip.Components.Add(new MySpawnpointWaves((uint)EntityID.BoardmotherShipDetector3, 1, (uint)EntityID.BoardmotherShipSpawn3)); m_boardMotherShip.Components.Add(new MyDetectorDialogue((uint)EntityID.RussianGeneralSpeak, MyDialogueEnum.ALIEN_GATE_1000)); m_boardMotherShip.OnMissionLoaded += BoardMotherShipOnOnMissionLoaded; m_objectives.Add(m_boardMotherShip); m_hackGenerator = new MyUseObjective ((MyTextsWrapperEnum.ALIEN_GATE_HACK_GENERATOR_Name), MyMissionID.ALIEN_GATE_HACK_GENERATOR, (MyTextsWrapperEnum.ALIEN_GATE_HACK_GENERATOR_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_BOARD_MOTHER_SHIP }, new MyMissionLocation(baseSector, (uint)EntityID.HackGeneratorDummy), MyTextsWrapperEnum.PressToHack, MyTextsWrapperEnum.Generator, MyTextsWrapperEnum.StartingProgress, 5000 ); m_hackGenerator.SaveOnSuccess = true; m_hackGenerator.OnMissionLoaded += M08HackGeneratorOnOnMissionLoaded; m_hackGenerator.Components.Add(new MyTimedDialogue(new TimeSpan(0, 0, 2), MyDialogueEnum.ALIEN_GATE_1200)); m_hackGenerator.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGeneratorDetector1, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackGeneratorSpawn11}, new uint[]{(uint)EntityID.HackGeneratorSpawn12} })); m_hackGenerator.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGeneratorDetector2, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackGeneratorSpawn21}, new uint[]{(uint)EntityID.HackGeneratorSpawn22} })); m_hackGenerator.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGeneratorDetector3, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackGeneratorSpawn31,(uint)EntityID.HackGeneratorSpawn32,(uint)EntityID.HackGeneratorSpawn33}, })); m_hackGenerator.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGeneratorDetector4, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackGeneratorSpawn41,(uint)EntityID.HackGeneratorSpawn42}, })); m_hackGenerator.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGeneratorDetector5, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackGeneratorSpawn5}, })); m_objectives.Add(m_hackGenerator); m_hackEngine = new MyUseObjective ((MyTextsWrapperEnum.ALIEN_GATE_HACK_ENGINE_Name), MyMissionID.ALIEN_GATE_HACK_ENGINE, (MyTextsWrapperEnum.ALIEN_GATE_HACK_ENGINE_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_HACK_GENERATOR }, new MyMissionLocation(baseSector, (uint)EntityID.HackEngineDummy), MyTextsWrapperEnum.PressToHack, MyTextsWrapperEnum.Generator, MyTextsWrapperEnum.StartingProgress, 5000, MyUseObjectiveType.Hacking, startDialogId: MyDialogueEnum.ALIEN_GATE_1300 ) { SuccessDialogId = MyDialogueEnum.ALIEN_GATE_1500, SaveOnSuccess = true }; m_hackEngine.OnMissionLoaded += M09HackEngineOnOnMissionLoaded; m_hackEngine.Components.Add(new MyDetectorDialogue((uint)EntityID.HackEngineDummy, MyDialogueEnum.ALIEN_GATE_1400)); m_hackEngine.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGeneratorDetector5, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackGeneratorSpawn5}, })); m_hackEngine.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGeneratorDetector4, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackEngineSpawn2}, })); m_hackEngine.Components.Add(new MySpawnpointWaves((uint)EntityID.HackEngineDetector3, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackEngineSpawn3}, })); m_hackEngine.Components.Add(new MySpawnpointWaves((uint)EntityID.HackEngineDetector4, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackEngineSpawn4}, })); m_hackEngine.Components.Add(new MySpawnpointWaves((uint)EntityID.HackEngineDetector5, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackEngineSpawn51}, new uint[]{(uint)EntityID.HackEngineSpawn52}, })); m_hackEngine.Components.Add(new MySpawnpointWaves((uint)EntityID.HackEngineDetector6, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackEngineSpawn6}, })); m_objectives.Add(m_hackEngine); m_leaveShip1 = new MyTimedReachLocationObjective ((MyTextsWrapperEnum.ALIEN_GATE_LEAVE_SHIP_Name), MyMissionID.ALIEN_GATE_LEAVE_SHIP, (MyTextsWrapperEnum.ALIEN_GATE_LEAVE_SHIP_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_HACK_ENGINE, }, TimeSpan.FromMilliseconds((double)m_10ObjectiveTime), new MyMissionLocation(baseSector, (uint)EntityID._10Dummy) ) { HudName = MyTextsWrapperEnum.Nothing }; m_leaveShip1.OnMissionLoaded += M10LeaveShip1OnOnMissionLoaded; m_leaveShip1.OnMissionFailed += M10LeaveShip1OnOnMissionFailed; m_leaveShip1.Components.Add(new MySpawnpointWaves((uint)EntityID.HackEngineDetector4, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackEngineSpawn4}, })); m_leaveShip1.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGeneratorDetector3, 1, new List<uint[]>() { new uint[]{(uint)EntityID._10Spawn2}, })); m_objectives.Add(m_leaveShip1); m_regroupWithMadelyn2 = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_REGROPUP_WITH_MADELYN_Name), MyMissionID.ALIEN_GATE_REGROPUP_WITH_MADELYN, (MyTextsWrapperEnum.ALIEN_GATE_REGROPUP_WITH_MADELYN_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_LEAVE_SHIP, }, new MyMissionLocation(baseSector, (uint)EntityID.RegroupWithMadelynShip1Target), startDialogId: MyDialogueEnum.ALIEN_GATE_1700 ) { HudName = MyTextsWrapperEnum.HudRegroup, SaveOnSuccess = true }; m_regroupWithMadelyn2.OnMissionLoaded += M11RegroupWithMadelyn2OnOnMissionLoaded; m_objectives.Add(m_regroupWithMadelyn2); m_shipbBoard2 = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_BOARD_SECOND_Name), MyMissionID.ALIEN_GATE_BOARD_SECOND, (MyTextsWrapperEnum.ALIEN_GATE_BOARD_SECOND_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_REGROPUP_WITH_MADELYN, }, new MyMissionLocation(baseSector, (uint)EntityID.BoardSecondShipbDummy) ) { StartDialogId = MyDialogueEnum.ALIEN_GATE_1900, HudName = MyTextsWrapperEnum.HudMothership }; m_shipbBoard2.Components.Add(new MySpawnpointWaves((uint)EntityID.RegroupWithMadelynDetector, 1, new List<uint[]>() { new uint[]{(uint)EntityID.BoardSecondShipbSpawn1, (uint)EntityID.BoardSecondShipbSpawn2}, })); m_shipbBoard2.OnMissionLoaded += M11BBoard2OnOnMissionLoaded; m_objectives.Add(m_shipbBoard2); m_hackGenerator2 = new MyUseObjective ((MyTextsWrapperEnum.ALIEN_GATE_HACK_GENERATOR2_Name), MyMissionID.ALIEN_GATE_HACK_GENERATOR2, (MyTextsWrapperEnum.ALIEN_GATE_HACK_GENERATOR2_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_BOARD_SECOND }, new MyMissionLocation(baseSector, (uint)EntityID.HackGenerator2Dummy), MyTextsWrapperEnum.PressToHack, MyTextsWrapperEnum.Generator, MyTextsWrapperEnum.StartingProgress, 5000, MyUseObjectiveType.Hacking ) { StartDialogId = MyDialogueEnum.ALIEN_GATE_2000, SaveOnSuccess = true }; m_hackGenerator2.OnMissionLoaded += M12HackGenerator2OnOnMissionLoaded; m_hackGenerator2.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGenerator2Detector1, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackGenerator2Spawn11, (uint)EntityID.HackGenerator2Spawn12}, })); m_hackGenerator2.Components.Add(new MySpawnpointWaves((uint)EntityID.HackGenerator2Detector2, 1, new List<uint[]>() { new uint[]{(uint)EntityID.HackGenerator2Spawn2}, })); m_objectives.Add(m_hackGenerator2); m_hackEngine2 = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_HACK_ENGINE_2_Name), MyMissionID.ALIEN_GATE_HACK_ENGINE_2, (MyTextsWrapperEnum.ALIEN_GATE_HACK_ENGINE_2_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_HACK_GENERATOR2 }, new MyMissionLocation(baseSector, (uint)EntityID._13Dummy)/*, startDialogId: MyDialogueEnum.ALIEN_GATE_2100*/ ); m_hackEngine2.OnMissionLoaded += M13HackEngine2OnOnMissionLoaded; m_hackEngine2.Components.Add(new MySpawnpointWaves((uint)EntityID._13Detector1, 1, new List<uint[]>() { new uint[]{(uint)EntityID._13Spawn11, (uint)EntityID._13Spawn12,(uint)EntityID._13Spawn13}, })); m_hackEngine2.Components.Add(new MySpawnpointWaves((uint)EntityID._13Detector2, 1, new List<uint[]>() { new uint[]{(uint)EntityID._13Spawn2} })); m_hackEngine2.Components.Add(new MySpawnpointWaves((uint)EntityID._13Detector3, 1, new List<uint[]>() { new uint[]{(uint)EntityID._13Spawn3} })); m_hackEngine2.Components.Add(new MySpawnpointWaves((uint)EntityID._13Detector4, 1, new List<uint[]>() { new uint[]{(uint)EntityID._13Spawn41}, new uint[]{(uint)EntityID._13Spawn42} })); m_hackEngine2.Components.Add(new MySpawnpointWaves((uint)EntityID._13Detector5, 1, new List<uint[]>() { new uint[]{(uint)EntityID._13Spawn51}, new uint[]{(uint)EntityID._13Spawn52} })); m_objectives.Add(m_hackEngine2); m_enableDoors = new MyObjectiveEnablePrefabs( (MyTextsWrapperEnum.ALIEN_GATE_ENABLE_DOORS_Name), MyMissionID.ALIEN_GATE_ENABLE_DOORS, (MyTextsWrapperEnum.ALIEN_GATE_ENABLE_DOORS_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_HACK_ENGINE_2 }, null, new List<uint> { (uint)EntityID.EnableDoorsHUB }, new List<uint> { (uint)EntityID.EnableDoorsDoors, } ) { HudName = MyTextsWrapperEnum.HudHub }; m_enableDoors.Components.Add(new MySpawnpointWaves((uint)EntityID.EnableDoorsDetector, 1, new List<uint[]>() { new uint[]{(uint)EntityID.EnableDoorsSpawnPoint} })); m_enableDoors.Components.Add(new MyDetectorDialogue((uint)EntityID.DoorsDialogue, MyDialogueEnum.ALIEN_GATE_2200)); m_objectives.Add(m_enableDoors); m_enterlaboratory = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_ENTER_LAB_Name), MyMissionID.ALIEN_GATE_ENTER_LAB, (MyTextsWrapperEnum.ALIEN_GATE_ENTER_LAB_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_ENABLE_DOORS }, new MyMissionLocation(baseSector, (uint)EntityID.EnterLaboratoryDummy) // startDialogId: m_dialog12 ) { StartDialogId = MyDialogueEnum.ALIEN_GATE_2300, HudName = MyTextsWrapperEnum.HudLab }; m_enterlaboratory.Components.Add(new MySpawnpointWaves((uint)EntityID.EnterLaboratoryDetector, 1, new List<uint[]>() { new uint[]{(uint)EntityID.EnterLaboratorySpawn} })); m_objectives.Add(m_enterlaboratory); m_downloadData = new MyUseObjective ((MyTextsWrapperEnum.ALIEN_GATE_16_Name), MyMissionID.ALIEN_GATE_16, (MyTextsWrapperEnum.ALIEN_GATE_16_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_ENTER_LAB }, new MyMissionLocation(baseSector, (uint)EntityID._16Dummy), MyTextsWrapperEnum.PressToDownloadData, MyTextsWrapperEnum.DataTransfer, MyTextsWrapperEnum.DownloadingData, 3000, MyUseObjectiveType.Taking ) { StartDialogId = MyDialogueEnum.ALIEN_GATE_2400, SaveOnSuccess = true }; m_objectives.Add(m_downloadData); m_hackGenerator3 = new MyUseObjective ((MyTextsWrapperEnum.ALIEN_GATE_17_Name), MyMissionID.ALIEN_GATE_17, (MyTextsWrapperEnum.ALIEN_GATE_17_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_16 }, new MyMissionLocation(baseSector, (uint)EntityID._17Dummy), MyTextsWrapperEnum.PressToHack, MyTextsWrapperEnum.Generator, MyTextsWrapperEnum.StartingProgress, 5000, MyUseObjectiveType.Hacking, startDialogId: MyDialogueEnum.ALIEN_GATE_2500 ); m_objectives.Add(m_hackGenerator3); m_hackGenerator3.OnMissionLoaded += M17HackGenerator3OnOnMissionLoaded; m_hackGenerator3.Components.Add(new MySpawnpointWaves((uint)EntityID._17Detector, 1, new List<uint[]>() { new uint[]{(uint)EntityID._17Spawn1,(uint)EntityID.EnterLaboratorySpawn} })); m_leaveShip = new MyTimedReachLocationObjective ((MyTextsWrapperEnum.ALIEN_GATE_18_Name), MyMissionID.ALIEN_GATE_18, (MyTextsWrapperEnum.ALIEN_GATE_18_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_17, }, TimeSpan.FromMilliseconds((double)m_18ObjectiveTime), new MyMissionLocation(baseSector, (uint)EntityID._18Dummy) ) { StartDialogId = MyDialogueEnum.ALIEN_GATE_2600, HudName = MyTextsWrapperEnum.Nothing, SaveOnSuccess = true }; m_leaveShip.OnMissionLoaded += M18LeaveShipOnOnMissionLoaded; m_leaveShip.OnMissionFailed += M18LeaveShipOnOnMissionFailed; m_leaveShip.Components.Add(new MySpawnpointWaves((uint)EntityID._13Detector5, 1, new List<uint[]>() { new uint[]{(uint)EntityID._18Spawn1} })); m_objectives.Add(m_leaveShip); m_killReef = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_19_Name), MyMissionID.ALIEN_GATE_19, (MyTextsWrapperEnum.ALIEN_GATE_19_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_18 }, new MyMissionLocation(baseSector, (uint)EntityID._19Dummy) ) { StartDialogId = MyDialogueEnum.ALIEN_GATE_2800 }; m_killReef.OnMissionLoaded += M19KilReefOnOnMissionLoaded; m_objectives.Add(m_killReef); m_20ReefEscape = new MyTimedObjective ((MyTextsWrapperEnum.ALIEN_GATE_20_Name), MyMissionID.ALIEN_GATE_20, (MyTextsWrapperEnum.ALIEN_GATE_20_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_19, }, TimeSpan.FromMilliseconds(m_20ObjectiveTime) ) { HudName = MyTextsWrapperEnum.HudFrancisReef }; m_20ReefEscape.Location = new MyMissionLocation(baseSector, (uint)EntityID._20Prefab); m_20ReefEscape.Components.Add(new MyMovingEntity((uint)EntityID._19Ship, (uint)EntityID._20ShipTarget, m_20ObjectiveTime)); m_20ReefEscape.OnMissionLoaded += M20ReefEscapeOnOnMissionLoaded; m_20ReefEscape.OnMissionSuccess += ReefEscapeOnOnMissionSuccess; m_objectives.Add(m_20ReefEscape); m_21DestroyReef = new MyObjectiveDestroy( (MyTextsWrapperEnum.ALIEN_GATE_21_Name), MyMissionID.ALIEN_GATE_21, (MyTextsWrapperEnum.ALIEN_GATE_21_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_20 }, new List<uint>() { (uint)EntityID._21ToDesroy }) { StartDialogId = MyDialogueEnum.ALIEN_GATE_2900, HudName = MyTextsWrapperEnum.HudFrancisReef, SaveOnSuccess = true }; m_21DestroyReef.OnMissionLoaded += M21DestroyReefOnOnMissionLoaded; m_21DestroyReef.OnMissionSuccess += M21DestroyReefOnOnMissionSuccess; m_21DestroyReef.Components.Add(new MySpawnpointWaves((uint)EntityID._21Detector1, 1, new List<uint[]>() { new uint[]{(uint)EntityID._21SpawnPoint11}, new uint[]{(uint)EntityID._21SpawnPoint12} })); m_21DestroyReef.Components.Add(new MyMovingEntity((uint)EntityID._21Ship2, (uint)EntityID._21Ship2Target, m_21ObjectiveMovingTime)); m_21DestroyReef.Components.Add(new MyMovingEntity((uint)EntityID._21Particle1, (uint)EntityID._21Particle1Target, m_21ObjectiveMovingTime, false)); m_21DestroyReef.Components.Add(new MyMovingEntity((uint)EntityID._21Particle2, (uint)EntityID._21Particle2Target, m_21ObjectiveMovingTime, false)); //m_21DestroyReef.Components.Add(new MyTimedDialogue(TimeSpan.FromMilliseconds(m_21ObjectiveMovingTime), MyDialogueEnum.ALIEN_GATE_3100)); m_21DestroyReef.Components.Add(new MyTimedDialogue(TimeSpan.FromMilliseconds(5000), MyDialogueEnum.ALIEN_GATE_3000)); m_objectives.Add(m_21DestroyReef); m_22FlyBackTomadelyn = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_22_Name), MyMissionID.ALIEN_GATE_22, (MyTextsWrapperEnum.ALIEN_GATE_22_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_21 }, new MyMissionLocation(baseSector, (uint)EntityID._22Dummy), startDialogId: MyDialogueEnum.ALIEN_GATE_3200 ) { HudName = MyTextsWrapperEnum.HudMeetingPoint }; m_22FlyBackTomadelyn.OnMissionLoaded += M22FlyBackTomadelynOnOnMissionLoaded; m_objectives.Add(m_22FlyBackTomadelyn); m_23ExploreAliengate = new MyObjective( (MyTextsWrapperEnum.ALIEN_GATE_23_Name), MyMissionID.ALIEN_GATE_23, (MyTextsWrapperEnum.ALIEN_GATE_23_Description), null, this, new MyMissionID[] { MyMissionID.ALIEN_GATE_22 }, new MyMissionLocation(baseSector, (uint)EntityID._23Dummy), startDialogId: MyDialogueEnum.ALIEN_GATE_3300 ) { HudName = MyTextsWrapperEnum.Nothing }; m_23ExploreAliengate.Components.Add(new MyMovingEntity(MyActorConstants.GetActorName(MyActorEnum.MADELYN), (uint)EntityID._23Shiptarget, 50000)); m_23ExploreAliengate.OnMissionLoaded += M23ExploreAliengateOnOnMissionLoaded; m_objectives.Add(m_23ExploreAliengate); #endregion }
public MyJunkyardConvinceMission() { ID = MyMissionID.JUNKYARD_CONVINCE; /* ID must be added to MyMissions.cs */ Name = MyTextsWrapperEnum.JUNKYARD_CONVINCE; Description = MyTextsWrapperEnum.JUNKYARD_CONVINCE_Description; //"Convince the Smuggler to join you in your mission \n" DebugName = new StringBuilder("08a-Junkyard"); // Name of mission Flags = MyMissionFlags.Story; AchievementName = MySteamAchievementNames.Mission08_JunkyardDuncan; MyMwcVector3Int baseSector = new MyMwcVector3Int(2567538, 0, -172727); // Story sector of the script - i.e. (-2465,0,6541) Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); // Starting dummy point - must by typecasted to uint and referenced from EntityID enum RequiredMissions = new MyMissionID[] { MyMissionID.LAST_HOPE }; // IDs of missions required to make this mission available RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_RETURN_TO_MS }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN, }; #region Objectives m_objectives = new List <MyObjective>(); // Creating of list of submissions // ----- objectives ----- m_objective01FindInformator = new MyMeetObjective( // One member of that list - its type defines the type of submission - MySubmission means fly to the dummypoint to success. Here it is var so you cannot call methods on it (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIND_INFORMATOR_Name), // Name of the submission MyMissionID.JUNKYARD_CONVINCE_FIND_INFORMATOR, // ID of the submission - must be added to MyMissions.cs (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIND_INFORMATOR_Description), // Description of the submission this, new MyMissionID[] { }, // ID of submissions required to make this submission available - it is clear so this submission is the starting submission null, "RavenGirl", 250, 1.00f, startDialogueId: MyDialogueEnum.JUNKYARD_CONVINCE_0100_INTRODUCE ) { // False means do not save game in that checkpoint SaveOnSuccess = false, FollowMe = false }; m_objective01FindInformator.OnMissionLoaded += O01FindInformatorLoaded; m_objectives.Add(m_objective01FindInformator); m_objective01BFindInformator = new MyObjectiveDialog( MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_FIND_INFORMATOR_Name, MyMissionID.JUNKYARD_CONVINCE_D_FIND_INFORMATOR, MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_FIND_INFORMATOR_Description, null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FIND_INFORMATOR }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_0200_INFORMATOR ) { SaveOnSuccess = false, }; m_objective01BFindInformator.OnMissionLoaded += O01BFindInformatorLoaded; m_objective01BFindInformator.OnMissionSuccess += O01BFindInformatorSuccess; m_objectives.Add(m_objective01BFindInformator); m_objective02FindSmuggler = new MyObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIND_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_FIND_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIND_SMUGGLER_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_FIND_INFORMATOR }, new MyMissionLocation(baseSector, (uint)EntityID.FindSmuggler) // ID of dummy point of checkpoint ) { SaveOnSuccess = false, SuccessDialogId = MyDialogueEnum.JUNKYARD_CONVINCE_0300_RUN, HudName = MyTextsWrapperEnum.HudManjeet }; m_objective02FindSmuggler.OnMissionLoaded += O02FindSmugglerLoaded; m_objective02FindSmuggler.OnMissionSuccess += O2FindSmugglerSuccess; m_objectives.Add(m_objective02FindSmuggler); m_objective04FollowSmuggler = new MyMeetObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FOLLOW_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_FOLLOW_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FOLLOW_SMUGGLER_Description), this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FIND_SMUGGLER }, null, (uint)EntityID.Smuggler, 300, 1.00f ) { SaveOnSuccess = false, FollowMe = false }; m_objective04FollowSmuggler.OnMissionLoaded += O04FollowSmugglerLoaded; m_objective04FollowSmuggler.OnMissionSuccess += O04FollowSmugglerSuccess; m_objectives.Add(m_objective04FollowSmuggler); m_objective04DFollowSmuggler = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_FOLLOW_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_D_FOLLOW_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_FOLLOW_SMUGGLER_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FOLLOW_SMUGGLER }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_0500_CATCHED ) { SaveOnSuccess = false, }; m_objectives.Add(m_objective04DFollowSmuggler); m_objective04DFollowSmuggler.OnMissionLoaded += O04DFollowSmugglerLoaded; m_objective04DFollowSmuggler.OnMissionSuccess += O04DFollowSmugglerSuccess; m_objective05GetCloserToEnemy = new MyObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FLY_TO_ENEMY_Name), MyMissionID.JUNKYARD_CONVINCE_FLY_TO_ENEMY, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FLY_TO_ENEMY_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_FOLLOW_SMUGGLER }, new MyMissionLocation(baseSector, (uint)EntityID.FlyToEnemy), radiusOverride: 500f ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing }; m_objective05GetCloserToEnemy.OnMissionLoaded += O05GetCloserToEnemyLoaded; m_objectives.Add(m_objective05GetCloserToEnemy); m_objective05MetZappasFirstGangman = new MyObjectiveDialog( MyMissionID.JUNKYARD_CONVINCE_MEET_GANGMAN, null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FLY_TO_ENEMY }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_0650_MET_ZAPPA_GUARD ); m_objectives.Add(m_objective05MetZappasFirstGangman); m_objective05MetZappasFirstGangman.OnMissionLoaded += O05MetZappasFirstGangmanLoaded; m_objective05MetZappasFirstGangman.OnMissionSuccess += O05MetZappasFirstGangmanSuccess; m_objective06KillWaves = new MyDestroyWavesObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_KILL_WAVES_Name), MyMissionID.JUNKYARD_CONVINCE_KILL_WAVES, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_KILL_WAVES_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_MEET_GANGMAN }, null, null, null, null, 4 ) { SaveOnSuccess = false }; m_objective06KillWaves.AddWave(new List <uint> { (uint)EntityID.SP1_1, (uint)EntityID.SP1_2, (uint)EntityID.SP1_3, (uint)EntityID.SP1_4 }); m_objective06KillWaves.AddWave(new List <uint> { (uint)EntityID.SP2_1, (uint)EntityID.SP2_2 }); m_objective06KillWaves.AddWave(new List <uint> { (uint)EntityID.SP3_1, (uint)EntityID.SP3_2, (uint)EntityID.SP3_3 }); m_objective06KillWaves.OnMissionLoaded += O06KillWavesLoaded; m_objective06KillWaves.OnMissionSuccess += O06KillWavesSuccess; m_objectives.Add(m_objective06KillWaves); m_objective07SpeakWithMomo = new MyMeetObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_SPEAK_WITH_MOMO_Name), MyMissionID.JUNKYARD_CONVINCE_SPEAK_WITH_MOMO, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_SPEAK_WITH_MOMO_Description), this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_KILL_WAVES }, null, (uint?)null, 500, 1.00f ) { SaveOnSuccess = false, FollowMe = false }; m_objectives.Add(m_objective07SpeakWithMomo); m_objective07DSpeakWithMomo = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_SPEAK_WITH_MOMO_Name), MyMissionID.JUNKYARD_CONVINCE_D_SPEAK_WITH_MOMO, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_SPEAK_WITH_MOMO_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_SPEAK_WITH_MOMO }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_0900_THE_MOMO ) { SaveOnSuccess = false }; m_objectives.Add(m_objective07DSpeakWithMomo); m_objective07DSpeakWithMomo.OnMissionLoaded += O07DSpeakWithMomoLoaded; m_objective07DSpeakWithMomo.OnMissionSuccess += O07DSpeakWithMomoSuccess; m_objective08FightMomo = new MyObjectiveDestroy( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIGHT_MOMO_Name), MyMissionID.JUNKYARD_CONVINCE_FIGHT_MOMO, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIGHT_MOMO_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_SPEAK_WITH_MOMO }, null, new List <uint> { (uint)EntityID.SP4_1, (uint)EntityID.SP4_2, (uint)EntityID.MomoZappaSP }, true ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.Nothing }; m_objective08FightMomo.OnMissionLoaded += O08FightMomoLoaded; m_objectives.Add(m_objective08FightMomo); m_objective09ReturnToSmuggler = new MyMeetObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_RETURN_TO_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_RETURN_TO_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_RETURN_TO_SMUGGLER_Description), this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FIGHT_MOMO }, null, (uint)EntityID.Smuggler, 300, 1.00f //startDialogueId: MyDialogueEnum.JUNKYARD_CONVINCE_1000_LAST_OF_THEM ) { SaveOnSuccess = true, FollowMe = false }; m_objective09ReturnToSmuggler.OnMissionLoaded += O09ReturnToSmugglerLoaded; m_objectives.Add(m_objective09ReturnToSmuggler); m_objective09DReturnToSmuggler = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_RETURN_TO_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_D_RETURN_TO_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_RETURN_TO_SMUGGLER_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_RETURN_TO_SMUGGLER }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_1100_FIGHT_ENDS ) { SaveOnSuccess = false }; m_objectives.Add(m_objective09DReturnToSmuggler); m_objective09DReturnToSmuggler.OnMissionLoaded += O09DReturnToSmugglerLoaded; m_objective09DReturnToSmuggler.OnMissionSuccess += O09DReturnToSmugglerSuccess; m_objective10FindBombDealer = new MyMeetObjective( // One member of that list - its type defines the type of submission - MySubmission means fly to the dummypoint to success. Here it is var so you cannot call methods on it (MyTextsWrapperEnum.JUNKYARD_CONVINCE_GO_TO_BOMB_DEALER_Name), // Name of the submission MyMissionID.JUNKYARD_CONVINCE_GO_TO_BOMB_DEALER, // ID of the submission - must be added to MyMissions.cs (MyTextsWrapperEnum.JUNKYARD_CONVINCE_GO_TO_BOMB_DEALER_Description), // Description of the submission this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_RETURN_TO_SMUGGLER }, // ID of submissions required to make this submission available - it is clear so this submission is the starting submission null, (uint)EntityID.BombDealer, 300, 1.00f ) { SaveOnSuccess = false, RequiredActors = new MyActorEnum[] { MyActorEnum.TARJA, MyActorEnum.VALENTIN }, FollowMe = false }; m_objective10FindBombDealer.OnMissionLoaded += O10FindBombDealerLoaded; m_objectives.Add(m_objective10FindBombDealer); m_objective10DFindBombDealer = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_GO_TO_BOMB_DEALER_Name), MyMissionID.JUNKYARD_CONVINCE_D_GO_TO_BOMB_DEALER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_GO_TO_BOMB_DEALER_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_GO_TO_BOMB_DEALER }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_1300_BOMB_DEALER ) { SaveOnSuccess = false }; m_objectives.Add(m_objective10DFindBombDealer); m_objective10DFindBombDealer.OnMissionLoaded += O10DFindBombDealerLoaded; m_objective10DFindBombDealer.OnMissionSuccess += O10DFindBombDealerSuccess; m_objective11GetToMarcus = new MyMeetObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_GO_TO_MARCUS_Name), MyMissionID.JUNKYARD_CONVINCE_GO_TO_MARCUS, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_GO_TO_MARCUS_Description), this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_GO_TO_BOMB_DEALER }, null, "Marcus", 300, 1.00f ) { SaveOnSuccess = true, FollowMe = false, }; m_objective11GetToMarcus.OnMissionLoaded += O11GetToMarcusLoaded; m_objective11GetToMarcus.OnMissionSuccess += O11GetToMarcusSuccess; m_objectives.Add(m_objective11GetToMarcus); var objective11DGetToMarcus = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_GO_TO_MARCUS_Name), MyMissionID.JUNKYARD_CONVINCE_D_GO_TO_MARCUS, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_GO_TO_MARCUS_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_GO_TO_MARCUS }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_1400_ARRIVED_AT_MARCUS ) { SaveOnSuccess = false }; m_objectives.Add(objective11DGetToMarcus); m_objective12BrFight = new MyDestroyWavesObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_BR_FIGHT_Name), MyMissionID.JUNKYARD_CONVINCE_BR_FIGHT, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_BR_FIGHT_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_GO_TO_MARCUS }, new List <uint> { (uint)EntityID.BR_SP_1, (uint)EntityID.BR_SP_2, (uint)EntityID.BR_SP_3, (uint)EntityID.BR_SP_4, (uint)EntityID.BR_SP_Boss } ) { SaveOnSuccess = false, StartDialogId = MyDialogueEnum.JUNKYARD_CONVINCE_1500_GANGSTER_FIGHT_STARTED, SuccessDialogId = MyDialogueEnum.JUNKYARD_CONVINCE_1600_GO_TO_MS }; m_objective12BrFight.OnMissionLoaded += O12BRFightLoaded; m_objective12BrFight.OnMissionSuccess += O12BRFightSuccess; m_objective12BrFight.AddWave(m_killWavesSecond1); m_objective12BrFight.AddWave(m_killWavesSecond2); m_objective12BrFight.AddWave(m_killWavesSecond3); m_objective12BrFight.AddWave(m_killWavesSecond4); m_objectives.Add(m_objective12BrFight); m_objective13FlyToMS = new MyObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_RETURN_TO_MS_Name), MyMissionID.JUNKYARD_CONVINCE_RETURN_TO_MS, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_RETURN_TO_MS_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_BR_FIGHT }, new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR), radiusOverride: 300f ) { SaveOnSuccess = true, SuccessDialogId = MyDialogueEnum.JUNKYARD_CONVINCE_1700_FINALE, HudName = MyTextsWrapperEnum.HudMadelynsSapho }; m_objectives.Add(m_objective13FlyToMS); #endregion m_spawns.AddRange(m_killWavesSecond1); m_spawns.AddRange(m_killWavesSecond2); m_spawns.AddRange(m_killWavesSecond3); m_spawns.AddRange(m_killWavesSecond4); }
//private MySubmisisonDefend m_defendGenerator; #endregion public MySlaverBaseMission() { m_ValidateIDlists = new List<List<uint>>(); m_ValidateIDlists.Add(m_closeddoors); m_ValidateIDlists.Add(m_finalparticle); m_ValidateIDlists.Add(m_openedddoors); m_ValidateIDlists.Add(m_standbyparticle); m_ValidateIDlists.Add(m_pilotsSpawn); m_ValidateIDlists.Add(m_closeentiites); ID = MyMissionID.SLAVER_BASE_1; /* ID must be added to MyMissions.cs */ Name = MyTextsWrapperEnum.SLAVER_BASE_GRAND_BURROW; Description = MyTextsWrapperEnum.SLAVER_BASE_GRAND_BURROW_Description; DebugName = new StringBuilder("09b-Slaver base Grand Burrow"); // Nazev mise Flags = MyMissionFlags.Story; MyMwcVector3Int baseSector = new MyMwcVector3Int(2052452, 0, -10533886); // Story sector of the script Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); // Starting dummy point RequiredMissions = new MyMissionID[] { MyMissionID.FORT_VALIANT }; // mise ktere musi byt splneny pred prijetim teto mise RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_10 }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN, MyActorEnum.TARJA, MyActorEnum.VALENTIN }; m_objectives = new List<MyObjective>(); // Creating of list of submissions // -------------- START DEFINICE SUBMISE --------------------- var talkWith = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_1_Name), MyMissionID.SLAVER_BASE_1_DIALOG_1, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_1_Description), null, this, new MyMissionID[] { }, dialogId: MyDialogueEnum.SLAVERBASE_0100_INTRODUCE ) { SaveOnSuccess = false }; m_objectives.Add(talkWith); var DestroyGenerators = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_GENERATOR_Name), MyMissionID.SLAVER_BASE_1_DESTROY_GENERATOR, (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_GENERATOR_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_1 }, Generators, false ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudGenerator }; m_objectives.Add(DestroyGenerators); // pridani do seznamu submisi DestroyGenerators.OnMissionSuccess += DestroyGeneratorMSSuccess; var talkWith2 = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_2_Name), MyMissionID.SLAVER_BASE_1_DIALOG_2, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_2_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DESTROY_GENERATOR }, dialogId: MyDialogueEnum.SLAVERBASE_0200_GENERATORS_DESTROYED ) { SaveOnSuccess = false }; m_objectives.Add(talkWith2); var DestroyBatteries = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_BATTERIES_Name), MyMissionID.SLAVER_BASE_1_DESTROY_BATTERIES, (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_BATTERIES_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_2 }, Batteries, false ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudBatteries }; m_objectives.Add(DestroyBatteries); // pridani do seznamu submisi DestroyBatteries.OnMissionSuccess += DestroyBatteriesMSSuccess; var FindPrison = new MyObjective( // One member of that list - je to MyObjective takze cilem je doletet do checkpointu (MyTextsWrapperEnum.SLAVER_BASE_1_FIND_PRISON_Name), // nazev submise MyMissionID.SLAVER_BASE_1_FIND_PRISON, // id submise (MyTextsWrapperEnum.SLAVER_BASE_1_FIND_PRISON_Description), // popis submise null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DESTROY_BATTERIES }, // ID submisi ktere musi byt splneny - je to prazdne takze je to prvni submise new MyMissionLocation(baseSector, (uint)EntityID.Prison_Dummy), startDialogId: MyDialogueEnum.SLAVERBASE_0300_BATTERIES_DESTROYED// ID of dummy point of checkpoint ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudPrison }; // nastaveni save na checkpointu nebo ne m_objectives.Add(FindPrison); // pridani do seznamu submisi FindPrison.OnMissionSuccess += FindPrisonMSSuccess; m_freeSlaves = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_FREE_SLAVES_Name), MyMissionID.SLAVER_BASE_1_FREE_SLAVES, (MyTextsWrapperEnum.SLAVER_BASE_1_FREE_SLAVES_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_FIND_PRISON }, m_Bars, false ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.HudCage }; m_objectives.Add(m_freeSlaves); // pridani do seznamu submisi var talkWith4 = new MyObjectiveDialog( MyMissionID.SLAVER_BASE_1_DIALOG_4, null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_FREE_SLAVES }, dialogId: MyDialogueEnum.SLAVERBASE_0400_SLAVES_SAVED ) { SaveOnSuccess = true }; m_objectives.Add(talkWith4); m_hackHangar = new MyObjectiveEnablePrefabs( (MyTextsWrapperEnum.SLAVER_BASE_1_HACK_HANGAR_Name), MyMissionID.SLAVER_BASE_1_HACK_HANGAR, (MyTextsWrapperEnum.SLAVER_BASE_1_HACK_HANGAR_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_4 }, null, new List<uint> { (uint)EntityID.Hack_PC }, new List<uint> { (uint)EntityID.Hangar_Doors } ) { HudName = MyTextsWrapperEnum.HudHub }; m_objectives.Add(m_hackHangar); m_hackHangar.OnMissionSuccess += HangarOpen; m_freeSlavesMS = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_FREE_SLAVES_2_Name), MyMissionID.SLAVER_BASE_1_FREE_SLAVES_2, (MyTextsWrapperEnum.SLAVER_BASE_1_FREE_SLAVES_2_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_HACK_HANGAR }, Mothership_Bars, false ) { SaveOnSuccess = false, ToDestroyCount = 1, HudName = MyTextsWrapperEnum.HudCage }; m_objectives.Add(m_freeSlavesMS); // pridani do seznamu submisi var talkWith6 = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_6_Name), MyMissionID.SLAVER_BASE_1_DIALOG_6, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_6_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_FREE_SLAVES_2, }, dialogId: MyDialogueEnum.SLAVERBASE_0600_MOTHERSHIP_EMPTY ) { SaveOnSuccess = false }; m_objectives.Add(talkWith6); var findSlaves = new MyObjectiveDestroy( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_FIND_SLAVES_Name), MyMissionID.SLAVER_BASE_1_FIND_SLAVES, (MyTextsWrapperEnum.SLAVER_BASE_1_FIND_SLAVES_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_6 }, bar_pit, // ID of dummy point of checkpoint false ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudCage }; findSlaves.MissionEntityIDs.Add((uint)EntityID.Bar_pit); m_objectives.Add(findSlaves); // pridani do seznamu submisi var talkWith7 = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_7_Name), MyMissionID.SLAVER_BASE_1_DIALOG_7, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_7_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_FIND_SLAVES, }, dialogId: MyDialogueEnum.SLAVERBASE_0700_PIT_EMPTY ) { SaveOnSuccess = false }; m_objectives.Add(talkWith7); talkWith7.OnMissionLoaded += FreePilotsMSSuccess; var destroyEnemies = new MyDestroyWavesObjective( // Var is used to call functions on that member (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_ENEMIES_Name), MyMissionID.SLAVER_BASE_1_DESTROY_ENEMIES, (MyTextsWrapperEnum.SLAVER_BASE_1_DESTROY_ENEMIES_Description), null, this, new[] { MyMissionID.SLAVER_BASE_1_DIALOG_7 } //new List<uint> // { // (uint) EntityID.Mothership_Spawn_1, // (uint) EntityID.Mothership_Spawn_2, // (uint) EntityID.Mothership_Spawn_3 // }, ) { SaveOnSuccess = false }; destroyEnemies.AddWave(new List<uint> { (uint)EntityID.Mothership_Spawn_1 }); destroyEnemies.AddWave(new List<uint> { (uint)EntityID.Mothership_Spawn_2 }); destroyEnemies.AddWave(new List<uint> { (uint)EntityID.Mothership_Spawn_3 }); destroyEnemies.OnMissionSuccess += EnemiesDestroyed; m_objectives.Add(destroyEnemies); // pridani do seznamu submisi var talkWith9 = new MyObjectiveDialog( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_9_Name), MyMissionID.SLAVER_BASE_1_DIALOG_9, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_9_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DESTROY_ENEMIES }, dialogId: MyDialogueEnum.SLAVERBASE_0800_ENEMIES_DESTROYED ) { SaveOnSuccess = false }; m_objectives.Add(talkWith9); m_openHangarDoors = new MyObjectiveEnablePrefabs( (MyTextsWrapperEnum.SLAVER_BASE_1_HACK_NUKE_Name), MyMissionID.SLAVER_BASE_1_HACK_NUKE, (MyTextsWrapperEnum.SLAVER_BASE_1_HACK_NUKE_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_DIALOG_9 }, null, new List<uint> { (uint)EntityID.HangarDoorsHub }, new List<uint> { (uint)EntityID.Cargo_Bay_Doors } ) { HudName = MyTextsWrapperEnum.HudHub }; m_objectives.Add(m_openHangarDoors); m_openHangarDoors.OnMissionSuccess += MSEscape; m_openHangarDoors.OnMissionSuccess += MoveFourthReichMSStart; var talkWith10 = new MyTimedObjective( (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_10_Name), MyMissionID.SLAVER_BASE_1_DIALOG_10, (MyTextsWrapperEnum.SLAVER_BASE_1_DIALOG_10_Description), null, this, new MyMissionID[] { MyMissionID.SLAVER_BASE_1_HACK_NUKE }, TimeSpan.FromSeconds(50) ) { SaveOnSuccess = false, SuccessDialogId = MyDialogueEnum.SLAVERBASE_1100_FAKE_ESCAPED, DisplayCounter = false, }; talkWith10.MissionEntityIDs.Add((uint) EntityID.Escape_Dummy); m_objectives.Add(talkWith10); }
public MyLastHopeMission() { ID = MyMissionID.LAST_HOPE; Name = MyTextsWrapperEnum.LAST_HOPE; Description = MyTextsWrapperEnum.LAST_HOPE_Description; DebugName = new StringBuilder("07-Last Hope"); Flags = MyMissionFlags.Story; MyMwcVector3Int baseSector = new MyMwcVector3Int(-190694, 0, -18204363); Location = new MyMissionLocation(baseSector, (uint)EntityId.ReachColonyDummy); RequiredMissions = new MyMissionID[] { MyMissionID.BARTHS_MOON_TRANSMITTER }; RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.LAST_HOPE_LEAVE_UNDERGROUND }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN }; #region Objectives m_objectives = new List<MyObjective>(); var reachColony = new MyObjective( MyTextsWrapperEnum.LAST_HOPE_REACH_COLONY, MyMissionID.LAST_HOPE_REACH_COLONY, MyTextsWrapperEnum.LAST_HOPE_REACH_COLONY_DESCRIPTION, null, this, new MyMissionID[] { }, new MyMissionLocation(baseSector, (uint)EntityId.ReachColonyDummy), startDialogId: MyDialogueEnum.LAST_HOPE_0100 ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudLastHope }; reachColony.Components.Add(new MySpawnpointWaves((uint)EntityId.ReachColonyDialogDetector, 1, new List<uint[]>() { new uint[]{(uint)EntityId.ReachColonySpawn1} })); var dialogComponent = new MyDetectorDialogue((uint)EntityId.ReachColonyDialogDetector, MyDialogueEnum.LAST_HOPE_0200); dialogComponent.OnDialogStarted += ReachColonyDialogComonentOnOnDialogStarted; dialogComponent.OnDialogFinished += ReachColonyDialogComonentOnOnDialogFinished; reachColony.Components.Add(dialogComponent); m_objectives.Add(reachColony); var destroySlaverRiders = new MyObjectiveDestroy( MyTextsWrapperEnum.LAST_HOPE_REACH_DESTROY_RIDERS, MyMissionID.LAST_HOPE_DESTROY_SLAVER_RIDERS, MyTextsWrapperEnum.LAST_HOPE_REACH_DESTROY_RIDERS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_REACH_COLONY }, new List<uint> { (uint)EntityId.DestroySlaverRidersGenerator1, (uint)EntityId.DestroySlaverRidersGenerator2 } ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_0300, HudName = MyTextsWrapperEnum.Nothing }; destroySlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.DestroySlaverRidersDetector1, 1, new List<uint[]>() { new uint[]{(uint)EntityId.DestroySlaverRidersSpawn11}, new uint[]{(uint)EntityId.DestroySlaverRidersSpawn12} })); destroySlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.DestroySlaverRidersDetector1, 1, new List<uint[]>() { new uint[]{(uint)EntityId.DestroySlaverRidersSpawn21}, new uint[]{(uint)EntityId.DestroySlaverRidersSpawn22} })); destroySlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.DestroySlaverRidersDetector3, 1, new List<uint[]>() { new uint[]{(uint)EntityId.DestroySlaverRidersSpawn31}, new uint[]{(uint)EntityId.DestroySlaverRidersSpawn32} })); destroySlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.DestroySlaverRidersDetector3, 1, new List<uint[]>() { new uint[]{(uint)EntityId.DestroySlaverRidersSpawn41}, new uint[]{(uint)EntityId.DestroySlaverRidersSpawn42} })); destroySlaverRiders.OnMissionLoaded += DestroySlaverRiders_Loaded; m_objectives.Add(destroySlaverRiders); m_catchSlaverRiders = new MyObjective( MyTextsWrapperEnum.LAST_HOPE_REACH_CATCH_SHIPS, MyMissionID.LAST_HOPE_CATCH_SLAVER_RIDERS, MyTextsWrapperEnum.LAST_HOPE_REACH_CATCH_SHIPS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_DESTROY_SLAVER_RIDERS, }, new MyMissionLocation(baseSector, (uint)EntityId.CatchSlaverRidersDummy) ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_0400 }; m_catchSlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.CatchSlaverRidersDetector1, 1, new List<uint[]>() { new uint[]{(uint)EntityId.CatchSlaverRidersSpawn1}, })); m_catchSlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.CatchSlaverRidersDetector2, 1, new List<uint[]>() { new uint[]{(uint)EntityId.CatchSlaverRidersSpawn21}, new uint[]{(uint)EntityId.CatchSlaverRidersSpawn22} })); m_catchSlaverRiders.OnMissionLoaded += CatchSlaverRiders_Loaded; m_objectives.Add(m_catchSlaverRiders); m_stopSlaverTransport = new MyObjectiveDestroy( MyTextsWrapperEnum.LAST_HOPE_REACH_STOP_SHIPS, MyMissionID.LAST_HOPE_STOP_SLAVER_RIDERS, MyTextsWrapperEnum.LAST_HOPE_REACH_STOP_SHIPS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_CATCH_SLAVER_RIDERS }, new List<uint>() { (uint)EntityId.StopSlaverTransportGenerator1, (uint)EntityId.StopSlaverTransportGenerator2 } ) { SaveOnSuccess = false, StartDialogId = MyDialogueEnum.LAST_HOPE_0500 }; m_movingShip1 = new MyMovingEntity((uint)EntityId.StopSlaverTransportShip1, (uint)EntityId.StopSlaverTransportShip1Target, StopSlaversObjectiveTime, false); m_movingShip2 = new MyMovingEntity((uint)EntityId.StopSlaverTransportShip2, (uint)EntityId.StopSlaverTransportShip2Target, StopSlaversObjectiveTime, false); m_movingShip1Particle = new MyMovingEntity((uint)EntityId.StopSlaverTransportShip1Particle, (uint)EntityId.StopSlaverTransportShip1TargetParticle, StopSlaversObjectiveTime, false); m_movingShip2Particle = new MyMovingEntity((uint)EntityId.StopSlaverTransportShip2Particle, (uint)EntityId.StopSlaverTransportShip2TargetParticle, StopSlaversObjectiveTime, false); m_stopSlaverTransport.Components.Add(m_movingShip1); m_stopSlaverTransport.Components.Add(m_movingShip2); m_stopSlaverTransport.Components.Add(m_movingShip1Particle); m_stopSlaverTransport.Components.Add(m_movingShip2Particle); m_stopSlaverTransport.OnMissionLoaded += StopSlaverTransport_Loaded; m_stopSlaverTransport.Components.Add(new MySpawnpointWaves((uint)EntityId.CatchSlaverRidersDummy, 1, new List<uint[]>() { new uint[]{(uint)EntityId.StopSlaverTransportSpawn11,(uint)EntityId.StopSlaverTransportSpawn21,}, new uint[]{(uint)EntityId.StopSlaverTransportSpawn12,(uint)EntityId.StopSlaverTransportSpawn22,}, })); m_objectives.Add(m_stopSlaverTransport); var speakWithFathetTobias = new MyObjectiveDialog ( MyTextsWrapperEnum.LAST_HOPE_SPEAK_WITH_FATHER, MyMissionID.LAST_HOPE_SPEAK_WITH_FATHER, MyTextsWrapperEnum.LAST_HOPE_SPEAK_WITH_FATHER_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_STOP_SLAVER_RIDERS }, MyDialogueEnum.LAST_HOPE_0600 ) { SaveOnSuccess = true }; m_objectives.Add(speakWithFathetTobias); var reachCaves = new MyObjective( MyTextsWrapperEnum.LAST_HOPE_REACH_REACH_CAVE, MyMissionID.LAST_HOPE_REACH_UNDEGROUND_CAVES, MyTextsWrapperEnum.LAST_HOPE_REACH_REACH_CAVE_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_SPEAK_WITH_FATHER }, new MyMissionLocation(baseSector, (uint)EntityId.ReachCavesLocation) ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_0700, HudName = MyTextsWrapperEnum.HudCave }; m_objectives.Add(reachCaves); m_findTunnel = new MyObjective( MyTextsWrapperEnum.LAST_HOPE_REACH_TUNNEL, MyMissionID.LAST_HOPE_FIND_MAINTANCE_TUNELL, MyTextsWrapperEnum.LAST_HOPE_REACH_TUNNEL_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_REACH_UNDEGROUND_CAVES }, new MyMissionLocation(baseSector, (uint)EntityId.FindTunnelDummy) ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_0800, HudName = MyTextsWrapperEnum.HudTunnel }; m_findTunnel.Components.Add(new MySpawnpointWaves((uint)EntityId.ReachCavesLocation, 1, new List<uint[]>() { new uint[]{(uint)EntityId.FindTunnelSpawn1}, new uint[]{(uint)EntityId.FindTunnelSpawn2}, new uint[]{(uint)EntityId.FindTunnelSpawn3}, })); m_objectives.Add(m_findTunnel); var killSaboteurSquad = new MyDestroyWavesObjective ( MyTextsWrapperEnum.LAST_HOPE_KILL_SABOTERS, MyMissionID.LAST_HOPE_KILL_SQUAD, MyTextsWrapperEnum.LAST_HOPE_KILL_SABOTERS, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_FIND_MAINTANCE_TUNELL } ) { SaveOnSuccess = true }; killSaboteurSquad.AddWave(new List<uint>() { (uint)EntityId.KillSaboteursSpawn }); killSaboteurSquad.Components.Add(new MyDetectorDialogue((uint)EntityId.KillSabotersDetector, MyDialogueEnum.LAST_HOPE_1100)); m_objectives.Add(killSaboteurSquad); var deactivateBombs = new MyMultipleUseObjective (MyTextsWrapperEnum.LAST_HOPE_DEACTIVATE_BOMBS, MyMissionID.LAST_HOPE_DEACTIVATE_BOMB, MyTextsWrapperEnum.LAST_HOPE_DEACTIVATE_BOMBS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_KILL_SQUAD }, MyTextsWrapperEnum.PressToDeactivateNuclearHead, MyTextsWrapperEnum.NuclearHead, MyTextsWrapperEnum.DeactivatingInProgress, 5000, new List<uint>() { (uint)EntityId.DeactivateBombPrefab1, (uint)EntityId.DeactivateBombPrefab2 }, MyUseObjectiveType.Taking ) { RadiusOverride = 30, SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_1200 }; deactivateBombs.OnMissionLoaded += DeactivateBombs_Loaded; deactivateBombs.OnObjectUsedSucces += DeactivateBombs_ObjectUsedSuccess; deactivateBombs.Components.Add(new MyDetectorDialogue((uint)EntityId.GasCloudsDetector, MyDialogueEnum.LAST_HOPE_1300)); m_objectives.Add(deactivateBombs); m_repairPipes = new MyMultipleUseObjective (MyTextsWrapperEnum.LAST_HOPE_STABILIZE_GAS, MyMissionID.LAST_HOPE_REPAIR_PIPES, MyTextsWrapperEnum.LAST_HOPE_STABILIZE_GAS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_DEACTIVATE_BOMB }, MyTextsWrapperEnum.PressToRepairGasPipe, MyTextsWrapperEnum.GasPipe, MyTextsWrapperEnum.ProgressRepairing, 5000, new List<uint>() { }, MyUseObjectiveType.Repairing ) { SaveOnSuccess = true, RadiusOverride = 30, StartDialogId = MyDialogueEnum.LAST_HOPE_1400, SuccessDialogId = MyDialogueEnum.LAST_HOPE_1600 }; foreach (var gasPipe in m_gasPipes) { m_repairPipes.MissionEntityIDs.Add(gasPipe.Key); } m_repairPipes.OnObjectUsedSucces += RepairPipes_ObjectUsedSuccess; m_objectives.Add(m_repairPipes); var stabilizeNuclearCore = new MyMultipleUseObjective ( MyTextsWrapperEnum.LAST_HOPE_STABILIZE_NUCLEAR_CORE, MyMissionID.LAST_HOPE_STABILIZE_NUCLEAR_CORE, MyTextsWrapperEnum.LAST_HOPE_STABILIZE_GAS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_REPAIR_PIPES }, MyTextsWrapperEnum.PressToRepairRadiation, MyTextsWrapperEnum.RadiationLeak, MyTextsWrapperEnum.Fixing, 5000, new List<uint>() { }, MyUseObjectiveType.Repairing ) { RadiusOverride = 40, SaveOnSuccess = true }; stabilizeNuclearCore.Components.Add(new MyDetectorDialogue((uint)EntityId.StabilizeCoreDialog1Dummy, MyDialogueEnum.LAST_HOPE_1700)); stabilizeNuclearCore.Components.Add(new MyDetectorDialogue((uint)EntityId.StabilizeCoreDialog2Dummy, MyDialogueEnum.LAST_HOPE_1800)); foreach (var core in m_nuclearCores) { stabilizeNuclearCore.MissionEntityIDs.Add(core.Key); } stabilizeNuclearCore.OnObjectUsedSucces += StabilizeNuclearCore_ObjectUsedSuccess; m_objectives.Add(stabilizeNuclearCore); var leaveUnderground = new MyObjective ( MyTextsWrapperEnum.LAST_HOPE_LEAVE_SHAFTS, MyMissionID.LAST_HOPE_LEAVE_UNDERGROUND, MyTextsWrapperEnum.LAST_HOPE_LEAVE_SHAFTS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_STABILIZE_NUCLEAR_CORE }, new MyMissionLocation(baseSector, (uint)EntityId.LaveUndergroundDummy)) { StartDialogId = MyDialogueEnum.LAST_HOPE_1900, HudName = MyTextsWrapperEnum.Nothing }; leaveUnderground.OnMissionSuccess += LeaveUnderground_Success; m_objectives.Add(leaveUnderground); #endregion }
public MyLastHopeMission() { ID = MyMissionID.LAST_HOPE; Name = MyTextsWrapperEnum.LAST_HOPE; Description = MyTextsWrapperEnum.LAST_HOPE_Description; DebugName = new StringBuilder("07-Last Hope"); Flags = MyMissionFlags.Story; MyMwcVector3Int baseSector = new MyMwcVector3Int(-190694, 0, -18204363); Location = new MyMissionLocation(baseSector, (uint)EntityId.ReachColonyDummy); RequiredMissions = new MyMissionID[] { MyMissionID.BARTHS_MOON_TRANSMITTER }; RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.LAST_HOPE_LEAVE_UNDERGROUND }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN }; #region Objectives m_objectives = new List <MyObjective>(); var reachColony = new MyObjective( MyTextsWrapperEnum.LAST_HOPE_REACH_COLONY, MyMissionID.LAST_HOPE_REACH_COLONY, MyTextsWrapperEnum.LAST_HOPE_REACH_COLONY_DESCRIPTION, null, this, new MyMissionID[] { }, new MyMissionLocation(baseSector, (uint)EntityId.ReachColonyDummy), startDialogId: MyDialogueEnum.LAST_HOPE_0100 ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudLastHope }; reachColony.Components.Add(new MySpawnpointWaves((uint)EntityId.ReachColonyDialogDetector, 1, new List <uint[]>() { new uint[] { (uint)EntityId.ReachColonySpawn1 } })); var dialogComponent = new MyDetectorDialogue((uint)EntityId.ReachColonyDialogDetector, MyDialogueEnum.LAST_HOPE_0200); dialogComponent.OnDialogStarted += ReachColonyDialogComonentOnOnDialogStarted; dialogComponent.OnDialogFinished += ReachColonyDialogComonentOnOnDialogFinished; reachColony.Components.Add(dialogComponent); m_objectives.Add(reachColony); var destroySlaverRiders = new MyObjectiveDestroy( MyTextsWrapperEnum.LAST_HOPE_REACH_DESTROY_RIDERS, MyMissionID.LAST_HOPE_DESTROY_SLAVER_RIDERS, MyTextsWrapperEnum.LAST_HOPE_REACH_DESTROY_RIDERS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_REACH_COLONY }, new List <uint> { (uint)EntityId.DestroySlaverRidersGenerator1, (uint)EntityId.DestroySlaverRidersGenerator2 } ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_0300, HudName = MyTextsWrapperEnum.Nothing }; destroySlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.DestroySlaverRidersDetector1, 1, new List <uint[]>() { new uint[] { (uint)EntityId.DestroySlaverRidersSpawn11 }, new uint[] { (uint)EntityId.DestroySlaverRidersSpawn12 } })); destroySlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.DestroySlaverRidersDetector1, 1, new List <uint[]>() { new uint[] { (uint)EntityId.DestroySlaverRidersSpawn21 }, new uint[] { (uint)EntityId.DestroySlaverRidersSpawn22 } })); destroySlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.DestroySlaverRidersDetector3, 1, new List <uint[]>() { new uint[] { (uint)EntityId.DestroySlaverRidersSpawn31 }, new uint[] { (uint)EntityId.DestroySlaverRidersSpawn32 } })); destroySlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.DestroySlaverRidersDetector3, 1, new List <uint[]>() { new uint[] { (uint)EntityId.DestroySlaverRidersSpawn41 }, new uint[] { (uint)EntityId.DestroySlaverRidersSpawn42 } })); destroySlaverRiders.OnMissionLoaded += DestroySlaverRiders_Loaded; m_objectives.Add(destroySlaverRiders); m_catchSlaverRiders = new MyObjective( MyTextsWrapperEnum.LAST_HOPE_REACH_CATCH_SHIPS, MyMissionID.LAST_HOPE_CATCH_SLAVER_RIDERS, MyTextsWrapperEnum.LAST_HOPE_REACH_CATCH_SHIPS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_DESTROY_SLAVER_RIDERS, }, new MyMissionLocation(baseSector, (uint)EntityId.CatchSlaverRidersDummy) ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_0400 }; m_catchSlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.CatchSlaverRidersDetector1, 1, new List <uint[]>() { new uint[] { (uint)EntityId.CatchSlaverRidersSpawn1 }, })); m_catchSlaverRiders.Components.Add(new MySpawnpointWaves((uint)EntityId.CatchSlaverRidersDetector2, 1, new List <uint[]>() { new uint[] { (uint)EntityId.CatchSlaverRidersSpawn21 }, new uint[] { (uint)EntityId.CatchSlaverRidersSpawn22 } })); m_catchSlaverRiders.OnMissionLoaded += CatchSlaverRiders_Loaded; m_objectives.Add(m_catchSlaverRiders); m_stopSlaverTransport = new MyObjectiveDestroy( MyTextsWrapperEnum.LAST_HOPE_REACH_STOP_SHIPS, MyMissionID.LAST_HOPE_STOP_SLAVER_RIDERS, MyTextsWrapperEnum.LAST_HOPE_REACH_STOP_SHIPS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_CATCH_SLAVER_RIDERS }, new List <uint>() { (uint)EntityId.StopSlaverTransportGenerator1, (uint)EntityId.StopSlaverTransportGenerator2 } ) { SaveOnSuccess = false, StartDialogId = MyDialogueEnum.LAST_HOPE_0500 }; m_movingShip1 = new MyMovingEntity((uint)EntityId.StopSlaverTransportShip1, (uint)EntityId.StopSlaverTransportShip1Target, StopSlaversObjectiveTime, false); m_movingShip2 = new MyMovingEntity((uint)EntityId.StopSlaverTransportShip2, (uint)EntityId.StopSlaverTransportShip2Target, StopSlaversObjectiveTime, false); m_movingShip1Particle = new MyMovingEntity((uint)EntityId.StopSlaverTransportShip1Particle, (uint)EntityId.StopSlaverTransportShip1TargetParticle, StopSlaversObjectiveTime, false); m_movingShip2Particle = new MyMovingEntity((uint)EntityId.StopSlaverTransportShip2Particle, (uint)EntityId.StopSlaverTransportShip2TargetParticle, StopSlaversObjectiveTime, false); m_stopSlaverTransport.Components.Add(m_movingShip1); m_stopSlaverTransport.Components.Add(m_movingShip2); m_stopSlaverTransport.Components.Add(m_movingShip1Particle); m_stopSlaverTransport.Components.Add(m_movingShip2Particle); m_stopSlaverTransport.OnMissionLoaded += StopSlaverTransport_Loaded; m_stopSlaverTransport.Components.Add(new MySpawnpointWaves((uint)EntityId.CatchSlaverRidersDummy, 1, new List <uint[]>() { new uint[] { (uint)EntityId.StopSlaverTransportSpawn11, (uint)EntityId.StopSlaverTransportSpawn21, }, new uint[] { (uint)EntityId.StopSlaverTransportSpawn12, (uint)EntityId.StopSlaverTransportSpawn22, }, })); m_objectives.Add(m_stopSlaverTransport); var speakWithFathetTobias = new MyObjectiveDialog ( MyTextsWrapperEnum.LAST_HOPE_SPEAK_WITH_FATHER, MyMissionID.LAST_HOPE_SPEAK_WITH_FATHER, MyTextsWrapperEnum.LAST_HOPE_SPEAK_WITH_FATHER_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_STOP_SLAVER_RIDERS }, MyDialogueEnum.LAST_HOPE_0600 ) { SaveOnSuccess = true }; m_objectives.Add(speakWithFathetTobias); var reachCaves = new MyObjective( MyTextsWrapperEnum.LAST_HOPE_REACH_REACH_CAVE, MyMissionID.LAST_HOPE_REACH_UNDEGROUND_CAVES, MyTextsWrapperEnum.LAST_HOPE_REACH_REACH_CAVE_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_SPEAK_WITH_FATHER }, new MyMissionLocation(baseSector, (uint)EntityId.ReachCavesLocation) ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_0700, HudName = MyTextsWrapperEnum.HudCave }; m_objectives.Add(reachCaves); m_findTunnel = new MyObjective( MyTextsWrapperEnum.LAST_HOPE_REACH_TUNNEL, MyMissionID.LAST_HOPE_FIND_MAINTANCE_TUNELL, MyTextsWrapperEnum.LAST_HOPE_REACH_TUNNEL_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_REACH_UNDEGROUND_CAVES }, new MyMissionLocation(baseSector, (uint)EntityId.FindTunnelDummy) ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_0800, HudName = MyTextsWrapperEnum.HudTunnel }; m_findTunnel.Components.Add(new MySpawnpointWaves((uint)EntityId.ReachCavesLocation, 1, new List <uint[]>() { new uint[] { (uint)EntityId.FindTunnelSpawn1 }, new uint[] { (uint)EntityId.FindTunnelSpawn2 }, new uint[] { (uint)EntityId.FindTunnelSpawn3 }, })); m_objectives.Add(m_findTunnel); var killSaboteurSquad = new MyDestroyWavesObjective ( MyTextsWrapperEnum.LAST_HOPE_KILL_SABOTERS, MyMissionID.LAST_HOPE_KILL_SQUAD, MyTextsWrapperEnum.LAST_HOPE_KILL_SABOTERS, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_FIND_MAINTANCE_TUNELL } ) { SaveOnSuccess = true }; killSaboteurSquad.AddWave(new List <uint>() { (uint)EntityId.KillSaboteursSpawn }); killSaboteurSquad.Components.Add(new MyDetectorDialogue((uint)EntityId.KillSabotersDetector, MyDialogueEnum.LAST_HOPE_1100)); m_objectives.Add(killSaboteurSquad); var deactivateBombs = new MyMultipleUseObjective (MyTextsWrapperEnum.LAST_HOPE_DEACTIVATE_BOMBS, MyMissionID.LAST_HOPE_DEACTIVATE_BOMB, MyTextsWrapperEnum.LAST_HOPE_DEACTIVATE_BOMBS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_KILL_SQUAD }, MyTextsWrapperEnum.PressToDeactivateNuclearHead, MyTextsWrapperEnum.NuclearHead, MyTextsWrapperEnum.DeactivatingInProgress, 5000, new List <uint>() { (uint)EntityId.DeactivateBombPrefab1, (uint)EntityId.DeactivateBombPrefab2 }, MyUseObjectiveType.Taking ) { RadiusOverride = 30, SaveOnSuccess = true, StartDialogId = MyDialogueEnum.LAST_HOPE_1200 }; deactivateBombs.OnMissionLoaded += DeactivateBombs_Loaded; deactivateBombs.OnObjectUsedSucces += DeactivateBombs_ObjectUsedSuccess; deactivateBombs.Components.Add(new MyDetectorDialogue((uint)EntityId.GasCloudsDetector, MyDialogueEnum.LAST_HOPE_1300)); m_objectives.Add(deactivateBombs); m_repairPipes = new MyMultipleUseObjective (MyTextsWrapperEnum.LAST_HOPE_STABILIZE_GAS, MyMissionID.LAST_HOPE_REPAIR_PIPES, MyTextsWrapperEnum.LAST_HOPE_STABILIZE_GAS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_DEACTIVATE_BOMB }, MyTextsWrapperEnum.PressToRepairGasPipe, MyTextsWrapperEnum.GasPipe, MyTextsWrapperEnum.ProgressRepairing, 5000, new List <uint>() { }, MyUseObjectiveType.Repairing ) { SaveOnSuccess = true, RadiusOverride = 30, StartDialogId = MyDialogueEnum.LAST_HOPE_1400, SuccessDialogId = MyDialogueEnum.LAST_HOPE_1600 }; foreach (var gasPipe in m_gasPipes) { m_repairPipes.MissionEntityIDs.Add(gasPipe.Key); } m_repairPipes.OnObjectUsedSucces += RepairPipes_ObjectUsedSuccess; m_objectives.Add(m_repairPipes); var stabilizeNuclearCore = new MyMultipleUseObjective ( MyTextsWrapperEnum.LAST_HOPE_STABILIZE_NUCLEAR_CORE, MyMissionID.LAST_HOPE_STABILIZE_NUCLEAR_CORE, MyTextsWrapperEnum.LAST_HOPE_STABILIZE_GAS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_REPAIR_PIPES }, MyTextsWrapperEnum.PressToRepairRadiation, MyTextsWrapperEnum.RadiationLeak, MyTextsWrapperEnum.Fixing, 5000, new List <uint>() { }, MyUseObjectiveType.Repairing ) { RadiusOverride = 40, SaveOnSuccess = true }; stabilizeNuclearCore.Components.Add(new MyDetectorDialogue((uint)EntityId.StabilizeCoreDialog1Dummy, MyDialogueEnum.LAST_HOPE_1700)); stabilizeNuclearCore.Components.Add(new MyDetectorDialogue((uint)EntityId.StabilizeCoreDialog2Dummy, MyDialogueEnum.LAST_HOPE_1800)); foreach (var core in m_nuclearCores) { stabilizeNuclearCore.MissionEntityIDs.Add(core.Key); } stabilizeNuclearCore.OnObjectUsedSucces += StabilizeNuclearCore_ObjectUsedSuccess; m_objectives.Add(stabilizeNuclearCore); var leaveUnderground = new MyObjective ( MyTextsWrapperEnum.LAST_HOPE_LEAVE_SHAFTS, MyMissionID.LAST_HOPE_LEAVE_UNDERGROUND, MyTextsWrapperEnum.LAST_HOPE_LEAVE_SHAFTS_DESC, null, this, new MyMissionID[] { MyMissionID.LAST_HOPE_STABILIZE_NUCLEAR_CORE }, new MyMissionLocation(baseSector, (uint)EntityId.LaveUndergroundDummy)) { StartDialogId = MyDialogueEnum.LAST_HOPE_1900, HudName = MyTextsWrapperEnum.Nothing }; leaveUnderground.OnMissionSuccess += LeaveUnderground_Success; m_objectives.Add(leaveUnderground); #endregion }
public MyJunkyardConvinceMission() { ID = MyMissionID.JUNKYARD_CONVINCE; /* ID must be added to MyMissions.cs */ Name = MyTextsWrapperEnum.JUNKYARD_CONVINCE; Description = MyTextsWrapperEnum.JUNKYARD_CONVINCE_Description; //"Convince the Smuggler to join you in your mission \n" DebugName = new StringBuilder("08a-Junkyard"); // Name of mission Flags = MyMissionFlags.Story; AchievementName = MySteamAchievementNames.Mission08_JunkyardDuncan; MyMwcVector3Int baseSector = new MyMwcVector3Int(2567538,0,-172727); // Story sector of the script - i.e. (-2465,0,6541) Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); // Starting dummy point - must by typecasted to uint and referenced from EntityID enum RequiredMissions = new MyMissionID[] { MyMissionID.LAST_HOPE }; // IDs of missions required to make this mission available RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_RETURN_TO_MS }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN, }; #region Objectives m_objectives = new List<MyObjective>(); // Creating of list of submissions // ----- objectives ----- m_objective01FindInformator = new MyMeetObjective( // One member of that list - its type defines the type of submission - MySubmission means fly to the dummypoint to success. Here it is var so you cannot call methods on it (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIND_INFORMATOR_Name), // Name of the submission MyMissionID.JUNKYARD_CONVINCE_FIND_INFORMATOR, // ID of the submission - must be added to MyMissions.cs (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIND_INFORMATOR_Description), // Description of the submission this, new MyMissionID[] { }, // ID of submissions required to make this submission available - it is clear so this submission is the starting submission null, "RavenGirl", 250, 1.00f, startDialogueId:MyDialogueEnum.JUNKYARD_CONVINCE_0100_INTRODUCE ) { // False means do not save game in that checkpoint SaveOnSuccess = false, FollowMe = false }; m_objective01FindInformator.OnMissionLoaded += O01FindInformatorLoaded; m_objectives.Add(m_objective01FindInformator); m_objective01BFindInformator = new MyObjectiveDialog( MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_FIND_INFORMATOR_Name, MyMissionID.JUNKYARD_CONVINCE_D_FIND_INFORMATOR, MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_FIND_INFORMATOR_Description, null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FIND_INFORMATOR }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_0200_INFORMATOR ) { SaveOnSuccess = false, }; m_objective01BFindInformator.OnMissionLoaded += O01BFindInformatorLoaded; m_objective01BFindInformator.OnMissionSuccess += O01BFindInformatorSuccess; m_objectives.Add(m_objective01BFindInformator); m_objective02FindSmuggler = new MyObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIND_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_FIND_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIND_SMUGGLER_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_FIND_INFORMATOR }, new MyMissionLocation(baseSector, (uint) EntityID.FindSmuggler) // ID of dummy point of checkpoint ) { SaveOnSuccess = false, SuccessDialogId = MyDialogueEnum.JUNKYARD_CONVINCE_0300_RUN, HudName = MyTextsWrapperEnum.HudManjeet }; m_objective02FindSmuggler.OnMissionLoaded += O02FindSmugglerLoaded; m_objective02FindSmuggler.OnMissionSuccess += O2FindSmugglerSuccess; m_objectives.Add(m_objective02FindSmuggler); m_objective04FollowSmuggler = new MyMeetObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FOLLOW_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_FOLLOW_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FOLLOW_SMUGGLER_Description), this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FIND_SMUGGLER }, null, (uint) EntityID.Smuggler, 300, 1.00f ) { SaveOnSuccess = false, FollowMe = false }; m_objective04FollowSmuggler.OnMissionLoaded += O04FollowSmugglerLoaded; m_objective04FollowSmuggler.OnMissionSuccess += O04FollowSmugglerSuccess; m_objectives.Add(m_objective04FollowSmuggler); m_objective04DFollowSmuggler = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_FOLLOW_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_D_FOLLOW_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_FOLLOW_SMUGGLER_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FOLLOW_SMUGGLER }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_0500_CATCHED ) { SaveOnSuccess = false, }; m_objectives.Add(m_objective04DFollowSmuggler); m_objective04DFollowSmuggler.OnMissionLoaded += O04DFollowSmugglerLoaded; m_objective04DFollowSmuggler.OnMissionSuccess += O04DFollowSmugglerSuccess; m_objective05GetCloserToEnemy = new MyObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FLY_TO_ENEMY_Name), MyMissionID.JUNKYARD_CONVINCE_FLY_TO_ENEMY, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FLY_TO_ENEMY_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_FOLLOW_SMUGGLER }, new MyMissionLocation(baseSector, (uint) EntityID.FlyToEnemy), radiusOverride: 500f ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing }; m_objective05GetCloserToEnemy.OnMissionLoaded += O05GetCloserToEnemyLoaded; m_objectives.Add(m_objective05GetCloserToEnemy); m_objective05MetZappasFirstGangman = new MyObjectiveDialog( MyMissionID.JUNKYARD_CONVINCE_MEET_GANGMAN, null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FLY_TO_ENEMY }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_0650_MET_ZAPPA_GUARD ); m_objectives.Add(m_objective05MetZappasFirstGangman); m_objective05MetZappasFirstGangman.OnMissionLoaded += O05MetZappasFirstGangmanLoaded; m_objective05MetZappasFirstGangman.OnMissionSuccess += O05MetZappasFirstGangmanSuccess; m_objective06KillWaves = new MyDestroyWavesObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_KILL_WAVES_Name), MyMissionID.JUNKYARD_CONVINCE_KILL_WAVES, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_KILL_WAVES_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_MEET_GANGMAN }, null, null, null, null, 4 ) { SaveOnSuccess = false }; m_objective06KillWaves.AddWave(new List<uint> {(uint)EntityID.SP1_1, (uint)EntityID.SP1_2, (uint)EntityID.SP1_3, (uint)EntityID.SP1_4}); m_objective06KillWaves.AddWave(new List<uint> {(uint)EntityID.SP2_1, (uint)EntityID.SP2_2}); m_objective06KillWaves.AddWave(new List<uint> { (uint)EntityID.SP3_1, (uint)EntityID.SP3_2, (uint)EntityID.SP3_3 }); m_objective06KillWaves.OnMissionLoaded += O06KillWavesLoaded; m_objective06KillWaves.OnMissionSuccess += O06KillWavesSuccess; m_objectives.Add(m_objective06KillWaves); m_objective07SpeakWithMomo = new MyMeetObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_SPEAK_WITH_MOMO_Name), MyMissionID.JUNKYARD_CONVINCE_SPEAK_WITH_MOMO, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_SPEAK_WITH_MOMO_Description), this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_KILL_WAVES }, null, (uint?) null, 500, 1.00f ) { SaveOnSuccess = false, FollowMe = false }; m_objectives.Add(m_objective07SpeakWithMomo); m_objective07DSpeakWithMomo = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_SPEAK_WITH_MOMO_Name), MyMissionID.JUNKYARD_CONVINCE_D_SPEAK_WITH_MOMO, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_SPEAK_WITH_MOMO_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_SPEAK_WITH_MOMO }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_0900_THE_MOMO ) { SaveOnSuccess = false }; m_objectives.Add(m_objective07DSpeakWithMomo); m_objective07DSpeakWithMomo.OnMissionLoaded += O07DSpeakWithMomoLoaded; m_objective07DSpeakWithMomo.OnMissionSuccess += O07DSpeakWithMomoSuccess; m_objective08FightMomo = new MyObjectiveDestroy( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIGHT_MOMO_Name), MyMissionID.JUNKYARD_CONVINCE_FIGHT_MOMO, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_FIGHT_MOMO_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_SPEAK_WITH_MOMO }, null, new List<uint> { (uint) EntityID.SP4_1, (uint) EntityID.SP4_2, (uint) EntityID.MomoZappaSP }, true ) { SaveOnSuccess = false, HudName = MyTextsWrapperEnum.Nothing }; m_objective08FightMomo.OnMissionLoaded += O08FightMomoLoaded; m_objectives.Add(m_objective08FightMomo); m_objective09ReturnToSmuggler = new MyMeetObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_RETURN_TO_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_RETURN_TO_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_RETURN_TO_SMUGGLER_Description), this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_FIGHT_MOMO }, null, (uint) EntityID.Smuggler, 300, 1.00f //startDialogueId: MyDialogueEnum.JUNKYARD_CONVINCE_1000_LAST_OF_THEM ) { SaveOnSuccess = true, FollowMe = false }; m_objective09ReturnToSmuggler.OnMissionLoaded += O09ReturnToSmugglerLoaded; m_objectives.Add(m_objective09ReturnToSmuggler); m_objective09DReturnToSmuggler = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_RETURN_TO_SMUGGLER_Name), MyMissionID.JUNKYARD_CONVINCE_D_RETURN_TO_SMUGGLER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_RETURN_TO_SMUGGLER_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_RETURN_TO_SMUGGLER }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_1100_FIGHT_ENDS ) { SaveOnSuccess = false }; m_objectives.Add(m_objective09DReturnToSmuggler); m_objective09DReturnToSmuggler.OnMissionLoaded += O09DReturnToSmugglerLoaded; m_objective09DReturnToSmuggler.OnMissionSuccess += O09DReturnToSmugglerSuccess; m_objective10FindBombDealer = new MyMeetObjective( // One member of that list - its type defines the type of submission - MySubmission means fly to the dummypoint to success. Here it is var so you cannot call methods on it (MyTextsWrapperEnum.JUNKYARD_CONVINCE_GO_TO_BOMB_DEALER_Name), // Name of the submission MyMissionID.JUNKYARD_CONVINCE_GO_TO_BOMB_DEALER, // ID of the submission - must be added to MyMissions.cs (MyTextsWrapperEnum.JUNKYARD_CONVINCE_GO_TO_BOMB_DEALER_Description), // Description of the submission this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_RETURN_TO_SMUGGLER }, // ID of submissions required to make this submission available - it is clear so this submission is the starting submission null, (uint) EntityID.BombDealer, 300, 1.00f ) { SaveOnSuccess = false, RequiredActors = new MyActorEnum[] { MyActorEnum.TARJA, MyActorEnum.VALENTIN }, FollowMe = false }; m_objective10FindBombDealer.OnMissionLoaded += O10FindBombDealerLoaded; m_objectives.Add(m_objective10FindBombDealer); m_objective10DFindBombDealer = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_GO_TO_BOMB_DEALER_Name), MyMissionID.JUNKYARD_CONVINCE_D_GO_TO_BOMB_DEALER, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_GO_TO_BOMB_DEALER_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_GO_TO_BOMB_DEALER}, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_1300_BOMB_DEALER ) { SaveOnSuccess = false }; m_objectives.Add(m_objective10DFindBombDealer); m_objective10DFindBombDealer.OnMissionLoaded += O10DFindBombDealerLoaded; m_objective10DFindBombDealer.OnMissionSuccess += O10DFindBombDealerSuccess; m_objective11GetToMarcus = new MyMeetObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_GO_TO_MARCUS_Name), MyMissionID.JUNKYARD_CONVINCE_GO_TO_MARCUS, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_GO_TO_MARCUS_Description), this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_GO_TO_BOMB_DEALER }, null, "Marcus", 300, 1.00f ) { SaveOnSuccess = true, FollowMe = false, }; m_objective11GetToMarcus.OnMissionLoaded += O11GetToMarcusLoaded; m_objective11GetToMarcus.OnMissionSuccess += O11GetToMarcusSuccess; m_objectives.Add(m_objective11GetToMarcus); var objective11DGetToMarcus = new MyObjectiveDialog( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_GO_TO_MARCUS_Name), MyMissionID.JUNKYARD_CONVINCE_D_GO_TO_MARCUS, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_D_GO_TO_MARCUS_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_GO_TO_MARCUS }, dialogId: MyDialogueEnum.JUNKYARD_CONVINCE_1400_ARRIVED_AT_MARCUS ) { SaveOnSuccess = false }; m_objectives.Add(objective11DGetToMarcus); m_objective12BrFight = new MyDestroyWavesObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_BR_FIGHT_Name), MyMissionID.JUNKYARD_CONVINCE_BR_FIGHT, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_BR_FIGHT_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_D_GO_TO_MARCUS }, new List<uint> { (uint) EntityID.BR_SP_1, (uint) EntityID.BR_SP_2, (uint) EntityID.BR_SP_3, (uint) EntityID.BR_SP_4, (uint) EntityID.BR_SP_Boss } ) { SaveOnSuccess = false, StartDialogId = MyDialogueEnum.JUNKYARD_CONVINCE_1500_GANGSTER_FIGHT_STARTED, SuccessDialogId = MyDialogueEnum.JUNKYARD_CONVINCE_1600_GO_TO_MS }; m_objective12BrFight.OnMissionLoaded += O12BRFightLoaded; m_objective12BrFight.OnMissionSuccess += O12BRFightSuccess; m_objective12BrFight.AddWave(m_killWavesSecond1); m_objective12BrFight.AddWave(m_killWavesSecond2); m_objective12BrFight.AddWave(m_killWavesSecond3); m_objective12BrFight.AddWave(m_killWavesSecond4); m_objectives.Add(m_objective12BrFight); m_objective13FlyToMS = new MyObjective( (MyTextsWrapperEnum.JUNKYARD_CONVINCE_RETURN_TO_MS_Name), MyMissionID.JUNKYARD_CONVINCE_RETURN_TO_MS, (MyTextsWrapperEnum.JUNKYARD_CONVINCE_RETURN_TO_MS_Description), null, this, new MyMissionID[] { MyMissionID.JUNKYARD_CONVINCE_BR_FIGHT }, new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR), radiusOverride: 300f ) { SaveOnSuccess = true, SuccessDialogId = MyDialogueEnum.JUNKYARD_CONVINCE_1700_FINALE, HudName = MyTextsWrapperEnum.HudMadelynsSapho }; m_objectives.Add(m_objective13FlyToMS); #endregion m_spawns.AddRange(m_killWavesSecond1); m_spawns.AddRange(m_killWavesSecond2); m_spawns.AddRange(m_killWavesSecond3); m_spawns.AddRange(m_killWavesSecond4); }