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 }
//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 MyBarthsMoonPlantMission() : base(MyMissionID.BARTHS_MOON_PLANT, new StringBuilder("15-Barth's moon plant"), MyTextsWrapperEnum.BARTHS_MOON_PLANT, MyTextsWrapperEnum.BARTHS_MOON_PLANT_Description, new MyMissionID[] { MyMissionID.RIFT }, new EntityID[] { EntityID.BuildContainer4 }, EntityID.PlayerStartLocationPlant) { m_objectives = new List<MyObjective>(); RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_TALK_BARTH }; RequiredActors = new MyActorEnum[] { MyActorEnum.MADELYN, MyActorEnum.VALENTIN, MyActorEnum.TARJA }; RequiredMissions = new MyMissionID[] { MyMissionID.RIFT }; #region Objectives var saveThomas = new MyTimedMeetObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_SAVE_BARTH_Name), MyMissionID.BARTHS_MOON_PLANT_SAVE_BARTH, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_SAVE_BARTH_Description), this, new MyMissionID[] { }, (uint)EntityID._01Detector, (uint)EntityID._01SmallShipBarth, 100, 0.25f, new TimeSpan(0, 1, 30), startDialogueId: MyDialogueEnum.BARTHS_MOON_PLANT_0100, successDialogueId: MyDialogueEnum.BARTHS_MOON_PLANT_0200, stopFollow: false ) { SaveOnSuccess = true, PathName = "BarthEs" }; saveThomas.Components.Add(new MyMovingEntity((uint)EntityID._01PirateShip, (uint)EntityID._01PirateShiptarget, (int)new TimeSpan(0, 1, 30).TotalMilliseconds)); saveThomas.OnMissionLoaded += SaveThomas_Loaded; m_objectives.Add(saveThomas); var killAttackers = new MyObjectiveDestroy( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_KILL_ATTACKERS_Name), MyMissionID.BARTHS_MOON_PLANT_KILL_ATTACKERS, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_KILL_ATTACKERS_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_SAVE_BARTH }, null, m_02SpawnPoints, false ) { SaveOnSuccess = true, }; killAttackers.OnMissionLoaded += KillAttackers_Loaded; m_objectives.Add(killAttackers); var getTurrets = new MyUseObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_DEFENCE_Name), MyMissionID.BARTHS_MOON_PLANT_DEFENCE, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_DEFENCE_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_KILL_ATTACKERS }, new MyMissionLocation(baseSector, (uint)EntityID._03Dummy), MyTextsWrapperEnum.PressToTakeTurrets, MyTextsWrapperEnum.Turrets, MyTextsWrapperEnum.TransferInProgress, 3000, startDialogId: MyDialogueEnum.BARTHS_MOON_PLANT_0300) { SaveOnSuccess = true }; getTurrets.OnMissionLoaded += GetTurrets_Loaded; getTurrets.OnMissionSuccess += GetTurrets_Success; m_objectives.Add(getTurrets); m_buildDefenses = new MyTimedObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_BUILD_DEFENCE_LINE_Name), MyMissionID.BARTHS_MOON_PLANT_BUILD_DEFENCE_LINE, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_BUILD_DEFENCE_LINE_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_DEFENCE }, new TimeSpan(0, 0, minutes: 1, seconds: 30) ) { DisplayCounter = true, SaveOnSuccess = true }; m_buildDefenses.OnMissionLoaded += BuildDefenses_Loaded; m_buildDefenses.OnMissionUpdate += BuildDefenses_Update; m_buildDefenses.OnMissionCleanUp += BuildDefenses_Unloaded; m_objectives.Add(m_buildDefenses); m_protectBarth = new MyTimedObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_PROTECT_BARTH_Name), MyMissionID.BARTHS_MOON_PLANT_PROTECT_BARTH, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_PROTECT_BARTH_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_BUILD_DEFENCE_LINE }, new TimeSpan(0, minutes: 2, seconds: 0), true ) { DisplayCounter = false, SaveOnSuccess = true, StartDialogId = MyDialogueEnum.BARTHS_MOON_PLANT_0400, MakeEntityIndestructible = false }; m_protectBarth.MissionEntityIDs.Add((uint)EntityID._01SmallShipBarth); m_protectBarth.Components.Add(new MyMovingEntity((uint)EntityID._05PirateShip, (uint)EntityID._01PirateShiptarget, (int)m_protectBarth.SubmissionDuration.TotalMilliseconds)); m_protectBarth.Components.Add(new MyMovingEntity((uint)EntityID._05PirateBigShip, (uint)EntityID._05PirateBigShipTarget, (int)m_protectBarth.SubmissionDuration.TotalMilliseconds)); m_protectBarth.OnMissionLoaded += ProtectBarth_Loaded; m_protectBarth.OnMissionCleanUp += ProtectBarth_Unloaded; m_protectBarth.OnMissionSuccess += ProtectBarth_Success; m_objectives.Add(m_protectBarth); m_protectMadelyn = new MyTimedObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_PROTECT_MADELYN_Name), MyMissionID.BARTHS_MOON_PLANT_PROTECT_MADELYN, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_PROTECT_MADELYN_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_PROTECT_BARTH }, new TimeSpan(0, minutes: 3, seconds: 0), true) { SaveOnSuccess = true, DisplayCounter = false, HudName = MyTextsWrapperEnum.HudCommandCenter }; m_protectMadelyn.OnMissionLoaded += ProtectMadelyn_Loaded; m_protectMadelyn.OnMissionSuccess += ProtectMadelyn_Success; m_protectMadelyn.OnMissionCleanUp += ProtectMadelyn_CleanUp; m_protectMadelyn.OnMissionUpdate += ProtectMadelyn_Update; m_protectMadelyn.Components.Add(new MyTimedDialogue(new TimeSpan(0, 0, 5), MyDialogueEnum.BARTHS_MOON_PLANT_0600)); m_objectives.Add(m_protectMadelyn); m_lastStand = new MyTimedObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_ENEMY_Name), MyMissionID.BARTHS_MOON_PLANT_ENEMY, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_ENEMY_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_PROTECT_MADELYN }, new TimeSpan(0, 0, 50), true ) { /*DisplayCounter = false, */ SaveOnSuccess = true, StartDialogId = MyDialogueEnum.BARTHS_MOON_PLANT_0800 }; m_lastStand.Components.Add(new MyMovingEntity((uint)EntityID._05PirateShip, (uint)EntityID._07PirateShipTarget, (int)m_lastStand.SubmissionDuration.TotalMilliseconds)); m_lastStand.Components.Add(new MyMovingEntity((uint)EntityID._05PirateBigShip, (uint)EntityID._07PirateBigShipTarget, (int)m_lastStand.SubmissionDuration.TotalMilliseconds)); m_lastStand.OnMissionLoaded += LastStand_Loaded; m_lastStand.OnMissionCleanUp += LastStand_CleanUp; m_objectives.Add(m_lastStand); m_destroyGenerators = new MyObjectiveDestroy( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_DESTROY_GENERATORS_Name), MyMissionID.BARTHS_MOON_PLANT_DESTROY_GENERATORS, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_DESTROY_GENERATORS_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_ENEMY }, new List<uint> { (uint)EntityID._08generator1, (uint)EntityID._08generator2 }, // entities needed to kill new List<uint> { }, // spawnpoint from which bots must be killed true, false // dont count ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.BARTHS_MOON_PLANT_0900, HudName = MyTextsWrapperEnum.HudGenerator }; m_destroyGenerators.OnMissionSuccess += DestroyGenerators_Success; m_destroyGenerators.OnMissionLoaded += DestroyGenerators_Loaded; m_objectives.Add(m_destroyGenerators); var getComponents = new MyUseObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_GET_NEEDED_COMPONENTS_Name), MyMissionID.BARTHS_MOON_PLANT_GET_NEEDED_COMPONENTS, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_GET_NEEDED_COMPONENTS_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_DESTROY_GENERATORS }, new MyMissionLocation(baseSector, (uint)EntityID.GetNeededComponentsDummy), MyTextsWrapperEnum.PressToPickItems, MyTextsWrapperEnum.Items, MyTextsWrapperEnum.PickingInProgress, 4000, MyUseObjectiveType.Taking, startDialogId: MyDialogueEnum.BARTHS_MOON_PLANT_1000) { SaveOnSuccess = true }; getComponents.OnMissionLoaded += GetComponents_Loaded; getComponents.OnMissionSuccess += GetComponents_Success; m_objectives.Add(getComponents); var buildPlant = new MyUseObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_BUILD_PLANT_Name), MyMissionID.BARTHS_MOON_PLANT_BUILD_PLANT, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_BUILD_PLANT_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_GET_NEEDED_COMPONENTS }, new MyMissionLocation(baseSector, (uint)EntityID.ConstructDetector), MyTextsWrapperEnum.PressToBuildTransmitter, MyTextsWrapperEnum.Items, MyTextsWrapperEnum.BuildingInProgress, 4000, MyUseObjectiveType.Activating, startDialogId: MyDialogueEnum.BARTHS_MOON_PLANT_1100) { SaveOnSuccess = true }; buildPlant.OnMissionLoaded += new MissionHandler(BuildPlant_OnMissionLoaded); buildPlant.OnMissionSuccess += new MissionHandler(BuildPlant_OnMissionSuccess); m_objectives.Add(buildPlant); var constructDetectors = new MyUseObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_CONSTRUCT_DETECTORS_Name), MyMissionID.BARTHS_MOON_PLANT_CONSTRUCT_DETECTORS, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_CONSTRUCT_DETECTORS_Description), null, this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_BUILD_PLANT }, new MyMissionLocation(baseSector, (uint)EntityID.ConstructDetector), MyTextsWrapperEnum.PressToBuildTransmitter, MyTextsWrapperEnum.Items, MyTextsWrapperEnum.BuildingInProgress, 4000, MyUseObjectiveType.Activating) { SaveOnSuccess = true }; constructDetectors.OnMissionLoaded +=new MissionHandler(ConstructDetectors_Loaded); constructDetectors.OnMissionSuccess += new MissionHandler(ConstructDetectors_Success); m_objectives.Add(constructDetectors); m_barthEndDialogue = new MyMeetObjective( (MyTextsWrapperEnum.BARTHS_MOON_PLANT_TALK_BARTH_Name), MyMissionID.BARTHS_MOON_PLANT_TALK_BARTH, (MyTextsWrapperEnum.BARTHS_MOON_PLANT_TALK_BARTH_Description), this, new MyMissionID[] { MyMissionID.BARTHS_MOON_PLANT_CONSTRUCT_DETECTORS }, (uint)EntityID._01Detector, (uint)EntityID._01SmallShipBarth, 50, 0.25f, successDialogueId: MyDialogueEnum.BARTHS_MOON_PLANT_1200 ) { SaveOnSuccess = true, FollowMe = false, PathName = "Group23", MakeEntityIndestructible = false }; m_barthEndDialogue.OnMissionLoaded += BarthEndDialogue_Loaded; m_objectives.Add(m_barthEndDialogue); #endregion }
public MyLaikaMission() { ID = MyMissionID.LAIKA; /* ID must be added to MyMissions.cs */ Name = MyTextsWrapperEnum.LAIKA; Description = MyTextsWrapperEnum.LAIKA_Description; DebugName = new StringBuilder("02-Laika"); Flags = MyMissionFlags.Story; MyMwcVector3Int baseSector = new MyMwcVector3Int(-3851812, 0, -2054500); /* sector where the mission is located */ Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); RequiredMissions = new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE }; RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.LAIKA_LASTSTAND }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN }; m_objectives = new List<MyObjective>(); var toHangarSubmission = new MyObjective( (MyTextsWrapperEnum.LAIKA_GOTO_10_Name), MyMissionID.LAIKA_GOTO_10, (MyTextsWrapperEnum.LAIKA_GOTO_10_Description), null, this, new MyMissionID[] { }, new MyMissionLocation(baseSector, (uint)EntityID.Objective01_Hangar) ) { HudName = MyTextsWrapperEnum.HudHangar }; //{ SaveOnSuccess = true }; toHangarSubmission.OnMissionUpdate += new MissionHandler(toHangarSubmission_OnMissionUpdate); //toHangarSubmission.OnMissionSuccess += ToHangarSubmissionSuccess; toHangarSubmission.OnMissionLoaded += ToHangarSubmissionLoaded; m_objectives.Add(toHangarSubmission); var inHangarSubmission = new MyTimedObjective( MyTextsWrapperEnum.Null, MyMissionID.LAIKA_GOTO_11, MyTextsWrapperEnum.Null, null, this, new MyMissionID[] { MyMissionID.LAIKA_GOTO_10 }, TimeSpan.FromSeconds(0.2f), successDialogId: MyDialogueEnum.LAIKA_0275_INSIDEHANGAR ) { DisplayCounter = false }; inHangarSubmission.OnMissionSuccess += InHangarSubmissionSuccess; m_objectives.Add(inHangarSubmission); var inHangarSubmission2 = new MyTimedObjective( MyTextsWrapperEnum.Null, MyMissionID.LAIKA_GOTO_12, MyTextsWrapperEnum.Null, null, this, new MyMissionID[] { MyMissionID.LAIKA_GOTO_11 }, TimeSpan.FromSeconds(5) ) { DisplayCounter = false }; m_objectives.Add(inHangarSubmission2); m_generatorSubmission = new MyObjectiveDestroy( (MyTextsWrapperEnum.LAIKA_GOTO_GENERATOR_Name), MyMissionID.LAIKA_GOTO_GENERATOR, (MyTextsWrapperEnum.LAIKA_GOTO_GENERATOR_Description), null, this, new MyMissionID[] { MyMissionID.LAIKA_GOTO_12, }, new List<uint> { (uint)EntityID.Objective01_Generator }, successDialogID: MyDialogueEnum.LAIKA_0300_AFTERHANGAR, startDialogID: MyDialogueEnum.LAIKA_0277_DESTROYGENERATOR ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudGenerator }; m_generatorSubmission.OnMissionSuccess += GeneratorSubmissionSuccess; m_generatorSubmission.OnMissionLoaded += GeneratorSubmissionLoaded; m_objectives.Add(m_generatorSubmission); m_toCommandCentreSubmission = new MyObjective( (MyTextsWrapperEnum.LAIKA_GOTO_COMMAND_Name), MyMissionID.LAIKA_GOTO_COMMAND, (MyTextsWrapperEnum.LAIKA_GOTO_COMMAND_Description), null, this, new MyMissionID[] { MyMissionID.LAIKA_GOTO_GENERATOR }, null, new List<uint>() { (uint)EntityID.Objective02_CommandHub }, successDialogId: MyDialogueEnum.LAIKA_0500_COMMAND, startDialogId: MyDialogueEnum.LAIKA_0350_GPS ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudCommandCenter }; m_toCommandCentreSubmission.OnMissionSuccess += ToCommandCentreSubmissionSuccess; m_toCommandCentreSubmission.OnMissionLoaded += ToCommandCentreSubmissionLoaded; m_objectives.Add(m_toCommandCentreSubmission); m_communication01Submission = new MyObjective( (MyTextsWrapperEnum.LAIKA_GOTO_COMMUNICATION_01_Name), MyMissionID.LAIKA_GOTO_COMMUNICATION_01, (MyTextsWrapperEnum.LAIKA_GOTO_COMMUNICATION_01_Description), null, this, new MyMissionID[] { MyMissionID.LAIKA_GOTO_COMMAND }, null, new List<uint>() { (uint)EntityID.Objective03_Transmitter1Hub }, successDialogId: MyDialogueEnum.LAIKA_0700_LEFTHUB ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudCommunicationHub }; m_communication01Submission.OnMissionSuccess += Communication01SubmissionSuccess; m_communication01Submission.OnMissionLoaded += Communication01SubmissionLoaded; m_objectives.Add(m_communication01Submission); m_communication02Submission = new MyObjective( (MyTextsWrapperEnum.LAIKA_GOTO_COMMUNICATION_02_Name), MyMissionID.LAIKA_GOTO_COMMUNICATION_02, (MyTextsWrapperEnum.LAIKA_GOTO_COMMUNICATION_02_Description), null, this, new MyMissionID[] { MyMissionID.LAIKA_GOTO_COMMUNICATION_01 }, null, new List<uint>() { (uint)EntityID.Objective04_Transmitter2Hub }, successDialogId: MyDialogueEnum.LAIKA_0800_RIGHTHUB, startDialogId: MyDialogueEnum.LAIKA_0700_LEFTHUB2 ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudCommunicationHub }; m_communication02Submission.OnMissionSuccess += Communication02SubmissionSuccess; m_communication02Submission.OnMissionLoaded += Communication02SubmissionLoaded; m_objectives.Add(m_communication02Submission); m_warheadSubmission = new MyObjective( (MyTextsWrapperEnum.LAIKA_WARHEAD_Name), MyMissionID.LAIKA_WARHEAD, (MyTextsWrapperEnum.LAIKA_WARHEAD_Description), null, this, new MyMissionID[] { MyMissionID.LAIKA_GOTO_COMMUNICATION_02 }, null, new List<uint>() { (uint)EntityID.Objective05_Warhead }, successDialogId: MyDialogueEnum.LAIKA_1800_WARHEAD_DONE ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudWarhead }; m_warheadSubmission.OnMissionSuccess += WarheadSubmissionSuccess; m_warheadSubmission.OnMissionLoaded += WarheadSubmissionLoaded; m_objectives.Add(m_warheadSubmission); m_escapeSubmission = new MyObjective( (MyTextsWrapperEnum.LAIKA_RETURN_Name), MyMissionID.LAIKA_RETURN, (MyTextsWrapperEnum.LAIKA_RETURN_Description), null, this, new MyMissionID[] { MyMissionID.LAIKA_WARHEAD }, new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR), radiusOverride: 1000 ) { HudName = MyTextsWrapperEnum.HudMadelynsSapho }; m_escapeSubmission.OnMissionLoaded += EscapeSubmissionLoaded; m_escapeSubmission.OnMissionSuccess += EscapeSubmissionSuccess; m_escapeSubmission.OnMissionUpdate += EscapeSubmissionUpdate; m_escapeSubmission.OnMissionCleanUp += EscapeSubmissionUnload; m_objectives.Add(m_escapeSubmission); var hideSubmission = new MyTimedObjective( (MyTextsWrapperEnum.LAIKA_LASTSTAND_Name), MyMissionID.LAIKA_LASTSTAND, (MyTextsWrapperEnum.LAIKA_LASTSTAND_Description), null, this, new MyMissionID[] { MyMissionID.LAIKA_RETURN }, TimeSpan.FromSeconds(15), true ) { SaveOnSuccess = false, DisplayCounter = false, HudName = MyTextsWrapperEnum.Nothing }; m_objectives.Add(hideSubmission); hideSubmission.OnMissionLoaded += new MissionHandler(hideSubmission_OnMissionLoaded); }
public MyTwinTowersMission() { ID = MyMissionID.TWIN_TOWERS; /* ID must be added to MyMissions.cs */ Name = MyTextsWrapperEnum.TWIN_TOWERS; Description = MyTextsWrapperEnum.TWIN_TOWERS_Description; DebugName = new StringBuilder("19-Doppelburg"); Flags = MyMissionFlags.Story; MyMwcVector3Int baseSector = new MyMwcVector3Int(-2809328, 0, -4609055); /* sector where the mission is located */ Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); RequiredMissions = new MyMissionID[] { MyMissionID.REICHSTAG_C }; RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.TWIN_TOWERS_MOTHERSHIP1_V2 }; RequiredActors = new MyActorEnum[] { MyActorEnum.MADELYN, MyActorEnum.TARJA, MyActorEnum.VALENTIN }; MovePlayerToMadelynHangar = false; m_objectives = new List<MyObjective>(); m_introTalk = new MyObjective( MyTextsWrapperEnum.Blank, MyMissionID.TWIN_TOWERS_INTRO, MyTextsWrapperEnum.Blank, null, this, new MyMissionID[] { }, null ) { StartDialogId = MyDialogueEnum.TWIN_TOWERS_0100_INTRO }; m_objectives.Add(m_introTalk); var multipleSabotage = new MyMultipleUseObjective( (MyTextsWrapperEnum.TWIN_TOWERS_SABOTAGE_Name), MyMissionID.TWIN_TOWERS_SABOTAGE, (MyTextsWrapperEnum.TWIN_TOWERS_SABOTAGE_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_INTRO }, MyTextsWrapperEnum.PressToPlaceExplosive, MyTextsWrapperEnum.Blank, MyTextsWrapperEnum.PlacingExplosives, 1000, new List<uint> { (uint)EntityID.Explosives2, (uint)EntityID.Explosives3, (uint)EntityID.Explosives1 }, MyUseObjectiveType.Putting ) { StartDialogId = MyDialogueEnum.TWIN_TOWERS_0200_PLACE_EXPLOSIVES }; multipleSabotage.OnObjectUsedSucces += MultipleSabotageOnOnObjectUsedSucces; multipleSabotage.RequiredUncompletedMissions = new MyMissionID[] { MyMissionID.TWIN_TOWERS_RANDEVOUZ }; multipleSabotage.Components.Add( new MyDetectorDialogue( (uint) EntityID.Sabotage1, MyDialogueEnum.TWIN_TOWERS_0300_player_reaching_the_main_electricity_supply)); multipleSabotage.Components.Add( new MyDetectorDialogue( (uint) EntityID.Sabotage2, MyDialogueEnum.TWIN_TOWERS_0400_reaching_a_hangar_with_unmanned_enemy_small_ships)); multipleSabotage.Components.Add( new MyDetectorDialogue( (uint) EntityID.Sabotage3, MyDialogueEnum.TWIN_TOWERS_0500_reaching_electricity_distribution_HUB)); m_objectives.Add(multipleSabotage); /* var sabotageSubmission04 = new MySabotageSubmission( new StringBuilder("Industrial section control room"), MyMissionID.TWIN_TOWERS_SABOTAGE04, new StringBuilder(""), null, this, new MyMissionID[] { }, new MyMissionLocation(baseSector, (uint)EntityID.Sabotage4) ); sabotageSubmission04.RequiredUncompletedMissions = new MyMissionID[] { MyMissionID.TWIN_TOWERS_RANDEVOUZ }; sabotageSubmission04.OnMissionSuccess += Sabotage04SubmissionSuccess; m_objectives.Add(sabotageSubmission04); */ var randevouzSubmission = new MyObjective( (MyTextsWrapperEnum.TWIN_TOWERS_RANDEVOUZ_Name), MyMissionID.TWIN_TOWERS_RANDEVOUZ, (MyTextsWrapperEnum.TWIN_TOWERS_RANDEVOUZ_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_SABOTAGE }, new MyMissionLocation(baseSector, (uint)EntityID.Objective_randevouz) ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.TWIN_TOWERS_0600_after_all_the_sabotages_are_done, HudName = MyTextsWrapperEnum.HudMeetingPoint }; randevouzSubmission.OnMissionLoaded += RandevouzSubmissionLoaded; randevouzSubmission.OnMissionSuccess += RandevouzSubmissionSuccess; m_objectives.Add(randevouzSubmission); m_assaultSubmission = new MyObjectiveDestroy( (MyTextsWrapperEnum.TWIN_TOWERS_ASSAULT_Name), MyMissionID.TWIN_TOWERS_ASSAULT, (MyTextsWrapperEnum.TWIN_TOWERS_ASSAULT_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_RANDEVOUZ }, null, new List<uint> { (uint) EntityID.Spawnpoint_Command } ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.TWIN_TOWERS_0700_Meeting_point, SuccessDialogId = MyDialogueEnum.TWIN_TOWERS_0800_command_center_cleared }; m_assaultSubmission.OnMissionSuccess += AssaultSubmissionSuccess; m_assaultSubmission.OnMissionLoaded += AssaultSubmissionLoaded; m_objectives.Add(m_assaultSubmission); m_hackerSubmission = new MyTimedObjective( (MyTextsWrapperEnum.TWIN_TOWERS_HACKING_Name), MyMissionID.TWIN_TOWERS_HACKING, (MyTextsWrapperEnum.TWIN_TOWERS_HACKING_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_ASSAULT }, new TimeSpan(0, 3, 0), false ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.TWIN_TOWERS_0900_hacker_reaches_computer, SuccessDialogId = MyDialogueEnum.TWIN_TOWERS_1100_hacking_gets_jammed, HudName = MyTextsWrapperEnum.HudHacker }; m_hackerSubmission.OnMissionSuccess += HackerSubmissionSuccess; m_hackerSubmission.OnMissionLoaded += HackerSubmissionLoaded; m_hackerSubmission.NotificationText = MyTextsWrapperEnum.CountdownHacker; m_hackerSubmission.Components.Add(new MyTimedDialogue(TimeSpan.FromSeconds(90), MyDialogueEnum.TWIN_TOWERS_1000_through_the_fight)); m_objectives.Add(m_hackerSubmission); m_jammerSubmission = new MyObjectiveDestroy( (MyTextsWrapperEnum.TWIN_TOWERS_JAMMER_Name), MyMissionID.TWIN_TOWERS_JAMMER, (MyTextsWrapperEnum.TWIN_TOWERS_JAMMER_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_HACKING }, null, new List<uint> { (uint) EntityID.Spawnpoint_Jammer } ) { SaveOnSuccess = true, SuccessDialogId = MyDialogueEnum.TWIN_TOWERS_1200_killing_jammer, HudName = MyTextsWrapperEnum.HudJammer }; m_jammerSubmission.OnMissionSuccess += JammerSubmissionSuccess; m_jammerSubmission.OnMissionLoaded += JammerSubmissionLoaded; m_objectives.Add(m_jammerSubmission); m_hackerSubmission2 = new MyTimedObjective( (MyTextsWrapperEnum.TWIN_TOWERS_HACKING_CONTINUE_Name), MyMissionID.TWIN_TOWERS_HACKING_CONTINUE, (MyTextsWrapperEnum.TWIN_TOWERS_HACKING_CONTINUE_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_JAMMER }, new TimeSpan(0, 1, 7) ) { SaveOnSuccess = true, SuccessDialogId = MyDialogueEnum.TWIN_TOWERS_1300_hacking_done, HudName = MyTextsWrapperEnum.HudHacker }; m_hackerSubmission2.OnMissionSuccess += Hacker2SubmissionSuccess; m_hackerSubmission2.OnMissionLoaded += Hacker2SubmissionLoaded; m_hackerSubmission2.NotificationText = MyTextsWrapperEnum.CountdownHacker; m_objectives.Add(m_hackerSubmission2); var railgun01Submission = new MyObjectiveDestroy( (MyTextsWrapperEnum.TWIN_TOWERS_RAILGUN1_Name), MyMissionID.TWIN_TOWERS_RAILGUN1, (MyTextsWrapperEnum.TWIN_TOWERS_RAILGUN1_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_HACKING_CONTINUE }, new List<uint> { (uint) EntityID.Objective_Railgun1_Controls_01, (uint) EntityID.Objective_Railgun1_Controls_02 } ) { SuccessDialogId = MyDialogueEnum.TWIN_TOWERS_1400_clearing_first_control_room }; railgun01Submission.OnMissionSuccess += Railgun01SubmissionSuccess; m_objectives.Add(railgun01Submission); var railgun02Submission = new MyObjectiveDestroy( (MyTextsWrapperEnum.TWIN_TOWERS_RAILGUN2_Name), MyMissionID.TWIN_TOWERS_RAILGUN2, (MyTextsWrapperEnum.TWIN_TOWERS_RAILGUN2_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_RAILGUN1 }, new List<uint> { (uint) EntityID.Objective_Railgun2_Controls_01, (uint) EntityID.Objective_Railgun2_Controls_02, (uint) EntityID.Objective_Railgun2_Controls_03, (uint) EntityID.Objective_Railgun2_Controls_04 } ) { SaveOnSuccess = true }; railgun02Submission.OnMissionLoaded += Railgun02SubmissionLoaded; railgun02Submission.OnMissionSuccess += Railgun02SubmissionSuccess; m_objectives.Add(railgun02Submission); var rightBaseGoToSubmission = new MyObjective( (MyTextsWrapperEnum.TWIN_TOWERS_GOTO_RIGHT_Name), MyMissionID.TWIN_TOWERS_GOTO_RIGHT, (MyTextsWrapperEnum.TWIN_TOWERS_GOTO_RIGHT_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_RAILGUN2 }, new MyMissionLocation(baseSector, (uint) EntityID.Objective_RightBase) ) { StartDialogId = MyDialogueEnum.TWIN_TOWERS_1500_clearing_second_control_room, HudName = MyTextsWrapperEnum.HudTowerB }; rightBaseGoToSubmission.OnMissionSuccess += RightBaseGoToSubmissionSuccess; m_objectives.Add(rightBaseGoToSubmission); var rightBaseGeneratorSubmission = new MyObjectiveDestroy( (MyTextsWrapperEnum.TWIN_TOWERS_GENERATOR_Name), MyMissionID.TWIN_TOWERS_GENERATOR, (MyTextsWrapperEnum.TWIN_TOWERS_GENERATOR_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_GOTO_RIGHT }, new List<uint> { (uint) EntityID.Objective_Generator_Pipe1, (uint) EntityID.Objective_Generator_Pipe2 } ) { StartDialogId = MyDialogueEnum.TWIN_TOWERS_1600_in_tower_B, HudName = MyTextsWrapperEnum.HudGenerator }; rightBaseGeneratorSubmission.SaveOnSuccess = true; rightBaseGeneratorSubmission.OnMissionLoaded += RightBaseGeneratorSubmissionLoaded; rightBaseGeneratorSubmission.OnMissionSuccess += RightBaseGeneratorSubmissionSuccess; m_objectives.Add(rightBaseGeneratorSubmission); m_rightBaseCommandSubmission = new MyObjective( (MyTextsWrapperEnum.TWIN_TOWERS_COMMAND_Name), MyMissionID.TWIN_TOWERS_COMMAND, (MyTextsWrapperEnum.TWIN_TOWERS_COMMAND_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_GENERATOR }, null, new List<uint> { (uint) EntityID.Objective_Command_HUB } ) { StartDialogId = MyDialogueEnum.TWIN_TOWERS_1700_reactor_shut_down, SuccessDialogId = MyDialogueEnum.TWIN_TOWERS_1800_computer_hacked, HudName = MyTextsWrapperEnum.HudCommandCenter }; m_rightBaseCommandSubmission.OnMissionLoaded += RightBaseCommandSubmissionLoaded; m_rightBaseCommandSubmission.OnMissionSuccess += RightBaseCommandSubmissionSuccess; m_objectives.Add(m_rightBaseCommandSubmission); m_waitSubmission = new MyObjective( (MyTextsWrapperEnum.TWIN_TOWERS_WAIT_Name), MyMissionID.TWIN_TOWERS_WAIT, (MyTextsWrapperEnum.TWIN_TOWERS_WAIT_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_COMMAND }, null ) { SuccessDialogId = MyDialogueEnum.TWIN_TOWERS_1900_motherships_arrived }; m_waitSubmission.SaveOnSuccess = true; m_waitSubmission.OnMissionLoaded += WaitSubmissionLoaded; m_waitSubmission.OnMissionSuccess += WaitSubmissionSuccess; m_objectives.Add(m_waitSubmission); m_mothership1Submission = new MyObjectiveDestroy( (MyTextsWrapperEnum.TWIN_TOWERS_MOTHERSHIP1_Name), MyMissionID.TWIN_TOWERS_MOTHERSHIP1, (MyTextsWrapperEnum.TWIN_TOWERS_MOTHERSHIP1_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_WAIT }, new List<uint> { (uint)EntityID.Objective_Zeppelin1_Generator } ) { HudName = MyTextsWrapperEnum.HudGenerator }; m_mothership1Submission.SaveOnSuccess = true; m_mothership1Submission.Components.Add(new MySpawnpointWaves((uint)EntityID.Detector_Zeppelin_WW1_Hounds, 0, (uint)EntityID.Spawnpoint_Zeppelin_WW1_03_Hounds)); m_mothership1Submission.OnMissionLoaded += Mothership1SubmissionLoaded; m_mothership1Submission.OnMissionSuccess += Mothership1SubmissionSuccess; m_mothership1Submission.Components.Add(new MySpawnpointLimiter(m_WWZeppelinSpawns, 10)); m_objectives.Add(m_mothership1Submission); m_mothership1Submission2 = new MyObjectiveDestroy( (MyTextsWrapperEnum.TWIN_TOWERS_MOTHERSHIP1_V2_Name), MyMissionID.TWIN_TOWERS_MOTHERSHIP1_V2, (MyTextsWrapperEnum.TWIN_TOWERS_MOTHERSHIP1_V2_Description), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_MOTHERSHIP1 }, new List<uint> { (uint) EntityID.Objective_Zeppelin1_Battery1, (uint) EntityID.Objective_Zeppelin1_Battery2 } ) { StartDialogId = MyDialogueEnum.TWIN_TOWERS_2000_destroying_the_generator, SuccessDialogId = MyDialogueEnum.TWIN_TOWERS_2100_destroying_batteries, HudName = MyTextsWrapperEnum.HudBatteries }; m_mothership1Submission2.Components.Add(new MySpawnpointWaves((uint)EntityID.Detector_Zeppelin_WW1_Hounds, 0, (uint)EntityID.Spawnpoint_Zeppelin_WW1_03_Hounds)); m_mothership1Submission2.OnMissionLoaded += Mothership1Submission2Loaded; m_mothership1Submission2.OnMissionSuccess += Mothership1Submission2Success; m_mothership1Submission2.Components.Add(new MySpawnpointLimiter(m_WWZeppelinSpawns, 10)); m_objectives.Add(m_mothership1Submission2); /* var mothership2Submission = new MyObjective( new StringBuilder("Destroy the second mothership"), MyMissionID.TWIN_TOWERS_MOTHERSHIP2, new StringBuilder(""), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_MOTHERSHIP1_V2 }, new MyMissionLocation(baseSector, (uint)EntityID.Objective_Zeppelin2_Command) ); mothership2Submission.OnMissionLoaded += Mothership2SubmissionLoaded; mothership2Submission.OnMissionSuccess += Mothership2SubmissionSuccess; m_objectives.Add(mothership2Submission); */ /* var returnSubmission = new MyObjective( new StringBuilder("Return to Madelyn"), MyMissionID.TWIN_TOWERS_GOTO_MADELYN, new StringBuilder(""), null, this, new MyMissionID[] { MyMissionID.TWIN_TOWERS_MOTHERSHIP1_V2 }, new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR) ); m_objectives.Add(returnSubmission);*/ }
public MyPirateBaseMission() { ID = MyMissionID.PIRATE_BASE; /* ID must be added to MyMissions.cs */ DebugName = new StringBuilder("04-Pirate base"); Name = MyTextsWrapperEnum.PIRATE_BASE; Description = MyTextsWrapperEnum.PIRATE_BASE_Description; Flags = MyMissionFlags.Story; MyMwcVector3Int baseSector = new MyMwcVector3Int(190921, 0, 2152692); /* sector where the mission is located */ Location = new MyMissionLocation(baseSector, 228782); RequiredMissions = new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE }; RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.PIRATE_BASE_ALLY_ARRIVED }; RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN }; m_objectives = new List<MyObjective>(); // == Objective 01 == var travel = new MyObjective( (MyTextsWrapperEnum.PIRATE_BASE_TRAVEL_TO_BASE_Name), MyMissionID.PIRATE_BASE_TRAVEL_TO_BASE, (MyTextsWrapperEnum.PIRATE_BASE_TRAVEL_TO_BASE_Description), null, this, new MyMissionID[] { }, new MyMissionLocation(baseSector, (uint)EntityID.FIND_PIRATE_BASE_LOCATION) ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing }; travel.Components.Add(new MySpawnpointWaves((uint)EntityID.AMBUSH_1_DETECTOR, 0, new List<uint[]> { new uint[] { (uint)EntityID.AMBUSH_1_SPAWNPOINT_A }, new uint[] { (uint)EntityID.AMBUSH_1_SPAWNPOINT_B } })); travel.Components.Add(new MySpawnpointWaves((uint)EntityID.AMBUSH_2_DETECTOR, 0, new List<uint[]> { new uint[] { (uint)EntityID.AMBUSH_2_SPAWNPOINT_A }, new uint[] { (uint)EntityID.AMBUSH_2_SPAWNPOINT_B } })); travel.Components.Add(new MySpawnpointWaves((uint)EntityID.AMBUSH_3_DETECTOR, 0, new List<uint[]> { new uint[] { (uint)EntityID.AMBUSH_3_SPAWNPOINT_A }, new uint[] { (uint)EntityID.AMBUSH_3_SPAWNPOINT_B } })); travel.Components.Add(new MySpawnpointWaves((uint)EntityID.AMBUSH_4_DETECTOR, 0, new List<uint[]> { new uint[] { (uint)EntityID.AMBUSH_4_SPAWNPOINT_A }, new uint[] { (uint)EntityID.AMBUSH_4_SPAWNPOINT_B } })); travel.Components.Add(new MySpawnpointWaves((uint)EntityID.AMBUSH_5_DETECTOR, 0, new List<uint[]> { new uint[] { (uint)EntityID.AMBUSH_5_SPAWNPOINT_A }, new uint[] { (uint)EntityID.AMBUSH_5_SPAWNPOINT_B } })); travel.Components.Add(new MySpawnpointWaves((uint)EntityID.AMBUSH_6_DETECTOR, 0, new List<uint[]> { new uint[] { (uint)EntityID.AMBUSH_6_SPAWNPOINT_A }, new uint[] { (uint)EntityID.AMBUSH_6_SPAWNPOINT_B } })); //travel.OnMissionSuccess += ArrivedToBase; travel.OnMissionLoaded += Travel_OnMissionLoaded; travel.OnMissionCleanUp += Travel_OnMissionUnload; m_objectives.Add(travel); // == Objective 02 == var speakWithPirates = new MyMeetObjective( (MyTextsWrapperEnum.PIRATE_BASE_SPEAK_WITH_PIRATES_Name), MyMissionID.PIRATE_BASE_SPEAK_WITH_PIRATES, (MyTextsWrapperEnum.PIRATE_BASE_SPEAK_WITH_PIRATES_Description), this, new MyMissionID[] { MyMissionID.PIRATE_BASE_TRAVEL_TO_BASE }, null, (uint)EntityID.PIRATE_LEADER, 300) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudPirateCaptain }; speakWithPirates.OnMissionLoaded += SpeakWithPirates_OnMissionLoaded; m_objectives.Add(speakWithPirates); // == Objective 03 == var listenToCaptain = new MyObjectiveDialog( MyMissionID.PIRATE_BASE_LISTEN_TO_CAPTAIN, null, this, new MyMissionID[] { MyMissionID.PIRATE_BASE_SPEAK_WITH_PIRATES }, MyDialogueEnum.PIRATE_BASE_0600); listenToCaptain.OnMissionLoaded += ListenToCaptain_OnMissionLoaded; listenToCaptain.OnMissionCleanUp += ListenToCaptain_OnMissionUnload; m_objectives.Add(listenToCaptain); // == Objective 04 == var prepareForDefense = new MyObjective( (MyTextsWrapperEnum.PIRATE_BASE_PREPARE_FOR_DEFENSE_Name), MyMissionID.PIRATE_BASE_PREPARE_FOR_DEFENSE, (MyTextsWrapperEnum.PIRATE_BASE_PREPARE_FOR_DEFENSE_Description), null, this, new MyMissionID[] { MyMissionID.PIRATE_BASE_LISTEN_TO_CAPTAIN }, new MyMissionLocation(baseSector, (uint)EntityID.PREPARE_FOR_DEFENSE_LOCATION), startDialogId: MyDialogueEnum.PIRATE_BASE_0800) { SaveOnSuccess = true }; prepareForDefense.Components.Add(new MySpawnpointWaves((uint)EntityID.PREPARE_DETECTOR, 0, new List<uint[]> { new uint[] { (uint)EntityID.PREPARE_SPAWNPOINT0, (uint)EntityID.PREPARE_SPAWNPOINT1, (uint)EntityID.PREPARE_SPAWNPOINT2 } })); prepareForDefense.OnMissionLoaded += PrepareForDefense_OnMissionLoaded; m_objectives.Add(prepareForDefense); // == Objective 05 == m_getTurrets = new MyUseObjective( (MyTextsWrapperEnum.PIRATE_BASE_GET_TURRETS_Name), MyMissionID.PIRATE_BASE_GET_TURRETS, (MyTextsWrapperEnum.PIRATE_BASE_GET_TURRETS_Description), null, this, new MyMissionID[] { MyMissionID.PIRATE_BASE_PREPARE_FOR_DEFENSE }, new MyMissionLocation(baseSector, (uint)EntityID.TURRET_PREFABS_DUMMY), MyTextsWrapperEnum.PressToTakeTurrets, MyTextsWrapperEnum.Turrets, MyTextsWrapperEnum.TransferInProgress, 3000, objectiveType: MyUseObjectiveType.Taking) { SaveOnSuccess = true }; m_getTurrets.OnMissionLoaded += GetTurrets_OnMissionLoaded; m_getTurrets.OnMissionSuccess += GetTurrets_OnMissionSuccess; m_objectives.Add(m_getTurrets); // == Objective 06 == m_buildDefensesObjective = new MyTimedObjective( (MyTextsWrapperEnum.PIRATE_BASE_DEFENSE_SETUP_Name), MyMissionID.PIRATE_BASE_DEFENSE_SETUP, (MyTextsWrapperEnum.PIRATE_BASE_DEFENSE_SETUP_Description), null, this, new MyMissionID[] { MyMissionID.PIRATE_BASE_GET_TURRETS }, new TimeSpan(0, 0, minutes: 5, seconds: 0) ) { SaveOnSuccess = true }; m_buildDefensesObjective.OnMissionLoaded += BuildDefenses_OnMissionLoaded; m_buildDefensesObjective.OnMissionUpdate += BuildDefenses_OnMissionUpdate; m_buildDefensesObjective.OnMissionCleanUp += BuildDefenses_OnMissionUnloaded; m_buildDefensesObjective.OnMissionSuccess += BuildDefenses_OnMissionSuccess; m_objectives.Add(m_buildDefensesObjective); // == Objective 07 == m_defendObjective = new MyTimedObjective( (MyTextsWrapperEnum.PIRATE_BASE_DEFEND_Name), MyMissionID.PIRATE_BASE_DEFEND, (MyTextsWrapperEnum.PIRATE_BASE_DEFEND_Description), null, this, new MyMissionID[] { MyMissionID.PIRATE_BASE_DEFENSE_SETUP }, new TimeSpan(0, 0, minutes: 5, seconds: 0), startDialogId: MyDialogueEnum.PIRATE_BASE_0900 ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudGenerator }; m_defendObjective.OnMissionLoaded += Defend_OnMissionLoaded; m_defendObjective.OnMissionCleanUp += Defend_OnMissionUnloaded; m_defendObjective.OnMissionUpdate += Defend_OnMissionUpdate; m_defendObjective.OnMissionSuccess += Defend_OnMissionSuccess; m_defendObjective.Components.Add(new MyHeadshake((3*60)*1000, MyHeadshake.DefaultShaking)); m_defendObjective.Components.Add(new MyHeadshake((6*60)*1000, MyHeadshake.DefaultShaking)); m_defendObjective.Components.Add(new MyHeadshake((9*60)*1000, MyHeadshake.DefaultShaking)); m_objectives.Add(m_defendObjective); // == Objective 08 == m_allyArrivedObjective = new MyObjective( (MyTextsWrapperEnum.PIRATE_BASE_ALLY_ARRIVED_Name), MyMissionID.PIRATE_BASE_ALLY_ARRIVED, (MyTextsWrapperEnum.PIRATE_BASE_ALLY_ARRIVED_Description), null, this, new MyMissionID[] { MyMissionID.PIRATE_BASE_DEFEND }, null, startDialogId: MyDialogueEnum.PIRATE_BASE_1100) { SaveOnSuccess = true }; m_allyArrivedObjective.OnMissionLoaded += AllyArrived_OnMissionLoaded; m_allyArrivedObjective.OnMissionCleanUp += AllyArrived_OnMissionUnload; m_allyArrivedObjective.OnMissionUpdate += AllyArrived_OnMissionUpdate; m_allyArrivedObjective.OnMissionSuccess += AllyArrived_OnMissionSuccess; m_objectives.Add(m_allyArrivedObjective); /* var returnBackToMotherShip = new MyObjective( new StringBuilder("Return to your mothership"), MyMissionID.PIRATE_BASE_RETURN_BACK_TO_MOTHERSHIP, new StringBuilder(""), null, this, new MyMissionID[] { MyMissionID.PIRATE_BASE_ALLY_ARRIVED }, new MyMissionLocation(baseSector, (uint)EntityID.MADELYN_DUMMY) ) { SaveOnSuccess = true }; m_objectives.Add(returnBackToMotherShip); */ }
//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); }