public MyFortValiantMissionC()
            : base()
        {
            ID                         = MyMissionID.FORT_VALIANT_C;              /* ID must be added to MyMissions.cs */
            DebugName                  = new StringBuilder("09e-Fort Valiant C"); // Name of mission
            Name                       = MyTextsWrapperEnum.FORT_VALIANT_C;
            Description                = MyTextsWrapperEnum.FORT_VALIANT_C_Description;
            RequiredActors             = new MyActorEnum[] { MyActorEnum.MADELYN, MyActorEnum.MARCUS, MyActorEnum.TARJA, MyActorEnum.VALENTIN };
            Location                   = new MyMissionLocation(baseSector, (uint)EntityID.StartLocationC); //StartLocationC Starting dummy point - must by typecasted to uint and referenced from EntityID enum
            RequiredMissions           = new MyMissionID[] { MyMissionID.SLAVER_BASE_2 };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.FORT_VALIANT_C_PICK_UP_EQUIP };
            AchievementName            = MySteamAchievementNames.Mission17_FortValiantDungeons;

            #region Objectives
            m_objectives = new List <MyObjective>();

            var speakCaptain = new MyMeetObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_CAPTAIN_Name),
                MyMissionID.FORT_VALIANT_C_CAPTAIN,
                (MyTextsWrapperEnum.FORT_VALIANT_C_CAPTAIN_Description),
                this,
                new MyMissionID[] { },
                (uint)EntityID.CaptainDummy,
                (uint)EntityID.Captain,
                50,
                0.25f,
                MyDialogueEnum.FORT_VALIANT_C_0100,
                null,
                false
                )
            {
                SaveOnSuccess = true, FollowMe = false, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_0100_BEGIN, HudName = MyTextsWrapperEnum.HudCaptainCedric
            };
            speakCaptain.OnMissionSuccess += SpeakCaptainOnOnMissionSuccess;
            m_objectives.Add(speakCaptain);


            var reachUpperFloor = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_UPPER_FLOOR_Name),
                MyMissionID.FORT_VALIANT_C_UPPER_FLOOR,
                (MyTextsWrapperEnum.FORT_VALIANT_C_UPPER_FLOOR_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_CAPTAIN },
                new MyMissionLocation(baseSector, (uint)EntityID.UpperFloorDummy)
                )
            {
                HudName = MyTextsWrapperEnum.Nothing
            };
            m_objectives.Add(reachUpperFloor);



            var meetRoyal = new MyMeetObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_EQUIP_TALK_Name),
                MyMissionID.FORT_VALIANT_C_EQUIP_TALK,
                (MyTextsWrapperEnum.FORT_VALIANT_C_EQUIP_TALK_Description),
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_UPPER_FLOOR },
                (uint)EntityID.RoyalDummy,
                (uint)EntityID.BotRoyal,
                50,
                0.25f,
                MyDialogueEnum.FORT_VALIANT_C_0200,
                null,
                false
                )
            {
                SaveOnSuccess = true, FollowMe = false
            };
            m_objectives.Add(meetRoyal);


            var giveoutEquipment = new MyUseObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_EQUIP_Name),
                MyMissionID.FORT_VALIANT_C_EQUIP,
                (MyTextsWrapperEnum.FORT_VALIANT_C_EQUIP_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_EQUIP_TALK },
                new MyMissionLocation(baseSector, (uint)EntityID.RoyalCargoBoxDetector),
                MyTextsWrapperEnum.PressToGiveEquipment,
                MyTextsWrapperEnum.CargoBox,
                MyTextsWrapperEnum.TransferInProgress,
                3000,
                MyUseObjectiveType.Activating
                )
            {
                SaveOnSuccess = true
            };
            giveoutEquipment.OnMissionSuccess += GiveoutEquipmentOnOnMissionSuccess;
            m_objectives.Add(giveoutEquipment);



            var meetOfficers = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_MEET_OFFICIALS_Name),
                MyMissionID.FORT_VALIANT_C_MEET_OFFICIALS,
                (MyTextsWrapperEnum.FORT_VALIANT_C_MEET_OFFICIALS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_EQUIP },
                new MyMissionLocation(baseSector, (uint)EntityID.OfficalsDetector),
                null
                )
            {
                StartDialogId = MyDialogueEnum.FORT_VALIANT_C_0300, SuccessDialogId = MyDialogueEnum.FORT_VALIANT_C_0400, HudName = MyTextsWrapperEnum.HudChamber
            };
            m_objectives.Add(meetOfficers);


            var leaveOfficers = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_LEAVE_OFFICIALS_Name),
                MyMissionID.FORT_VALIANT_C_LEAVE_OFFICIALS,
                (MyTextsWrapperEnum.FORT_VALIANT_C_LEAVE_OFFICIALS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_MEET_OFFICIALS },
                new MyMissionLocation(baseSector, (uint)EntityID.OfficalsleaveDetector),
                null
                )
            {
                SuccessDialogId = MyDialogueEnum.FORT_VALIANT_C_0500, HudName = MyTextsWrapperEnum.Nothing
            };
            m_objectives.Add(leaveOfficers);

            var followPath = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_LEAVE_FOLLOW_Name),
                MyMissionID.FORT_VALIANT_C_LEAVE_FOLLOW,
                (MyTextsWrapperEnum.FORT_VALIANT_C_LEAVE_FOLLOW_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_LEAVE_OFFICIALS },
                new MyMissionLocation(baseSector, (uint)EntityID.FollowPathDetector),
                null,
                null)
            {
                HudName = MyTextsWrapperEnum.Nothing
            };
            m_objectives.Add(followPath);

            var speakWithSir = new MyMeetObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SPEAK_SIR_Name),
                MyMissionID.FORT_VALIANT_C_SPEAK_SIR,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SPEAK_SIR_Description),
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_LEAVE_FOLLOW },
                (uint)EntityID.SirBendivereDummy,
                (uint)EntityID.BotTemplar,
                50,
                0.25f,
                MyDialogueEnum.FORT_VALIANT_C_0600,
                null,
                false
                )
            {
                SaveOnSuccess = true, FollowMe = false, HudName = MyTextsWrapperEnum.HudSirGeraint
            };
            m_objectives.Add(speakWithSir);


            var getItemsFromCargoBoxes = new MyObjectiveGetItems(
                (MyTextsWrapperEnum.FORT_VALIANT_C_GET_EQUP_CARGO_Name),
                MyMissionID.FORT_VALIANT_C_GET_EQUP_CARGO,
                (MyTextsWrapperEnum.FORT_VALIANT_C_GET_EQUP_CARGO_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SPEAK_SIR },
                new List <MyItemToGetDefinition>()
            {
                new MyItemToGetDefinition(MyMwcObjectBuilderTypeEnum.SmallShip_HackingTool, (int)MyMwcObjectBuilder_SmallShip_HackingTool_TypesEnum.Level_1)
            },
                new List <uint>()
            {
                (uint)EntityID.CargoBox
            }
                )
            {
                SaveOnSuccess = true
            };
            m_objectives.Add(getItemsFromCargoBoxes);



            var findEntrance = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION_Name),
                MyMissionID.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION,
                (MyTextsWrapperEnum.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_GET_EQUP_CARGO },
                new MyMissionLocation(baseSector, (uint)EntityID.Ventilation),
                null,
                null)
            {
                StartDialogId = MyDialogueEnum.FORT_VALIANT_C_0700, HudName = MyTextsWrapperEnum.HudEntrance
            };
            findEntrance.OnMissionLoaded += FindEntranceOnOnMissionLoaded;
            m_objectives.Add(findEntrance);


            var disableScanner = new MyObjectiveDisablePrefabs(
                (MyTextsWrapperEnum.FORT_VALIANT_C_FOLLOW_TURN_OFF_GATE_Name),
                MyMissionID.FORT_VALIANT_C_FOLLOW_TURN_OFF_GATE,
                (MyTextsWrapperEnum.FORT_VALIANT_C_FOLLOW_TURN_OFF_GATE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION },
                new List <uint> {
                (uint)EntityID.DisableScanner
            },
                new List <uint> {
                (uint)EntityID.DisableScannerHub
            },
                false,
                false
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_0800, HudName = MyTextsWrapperEnum.HudSecurityHub
            };
            disableScanner.OnMissionLoaded += DisableScannerOnOnMissionLoaded;
            m_objectives.Add(disableScanner);

            var scanners1 = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS1_Name),
                MyMissionID.FORT_VALIANT_C_SCANNERS1,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS1_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_FOLLOW_TURN_OFF_GATE },
                new MyMissionLocation(baseSector, (uint)EntityID.ScannersLocation1))
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_1000, HudName = MyTextsWrapperEnum.Nothing
            };
            //scanners1.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorGuardsDialogue, MyDialogueEnum.FORT_VALIANT_C_1100));
            scanners1.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorSensorsDialogue, MyDialogueEnum.FORT_VALIANT_C_1200));
            m_objectives.Add(scanners1);


            var scanners2 = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS2_Name),
                MyMissionID.FORT_VALIANT_C_SCANNERS2,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS2_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SCANNERS1 },
                new MyMissionLocation(baseSector, (uint)EntityID.ScannersLocation2))
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing
            };
            scanners2.OnMissionSuccess += Scanners2OnOnMissionSuccess;
            m_objectives.Add(scanners2);


            var scanners23 = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS23_Name),
                MyMissionID.FORT_VALIANT_C_SCANNERS23,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS23_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SCANNERS2 },
                new MyMissionLocation(baseSector, (uint)EntityID.ScannersLocation23))
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing
            };
            m_objectives.Add(scanners23);

            m_findArtifact = new MyUseObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_TAKE_ARTEFACT_Name),
                MyMissionID.FORT_VALIANT_C_TAKE_ARTEFACT,
                (MyTextsWrapperEnum.FORT_VALIANT_C_TAKE_ARTEFACT_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SCANNERS23 },
                null,
                MyTextsWrapperEnum.NotificationTakeArtifact,
                MyTextsWrapperEnum.Artifact,
                MyTextsWrapperEnum.TakingInProgress,
                3000,
                MyUseObjectiveType.Taking,
                null,
                null,
                null,
                new List <uint>()
            {
                (uint)EntityID.Box1Marker, (uint)EntityID.Box2Marker, (uint)EntityID.Box3Marker, (uint)EntityID.Box4Marker
            },
                (uint)EntityID.ArtifactDummy
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_1400
            };
            m_findArtifact.OnMissionLoaded  += FindArtifactOnOnMissionLoaded;
            m_findArtifact.OnMissionSuccess += FindArtifactOnOnMissionSuccess;
            m_findArtifact.Components.Add(new MyTimedDialogue(new TimeSpan(0, 0, 10), MyDialogueEnum.FORT_VALIANT_C_1500));
            m_objectives.Add(m_findArtifact);


            var vault = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_VALUT_Name),
                MyMissionID.FORT_VALIANT_C_VALUT,
                (MyTextsWrapperEnum.FORT_VALIANT_C_VALUT_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_TAKE_ARTEFACT },
                new MyMissionLocation(baseSector, (uint)EntityID.ScannersLocation2))
            {
                HudName = MyTextsWrapperEnum.Nothing
            };
            vault.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorSecurityFields, MyDialogueEnum.FORT_VALIANT_C_1700));
            vault.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorOpenDoors, MyDialogueEnum.FORT_VALIANT_C_1800));
            vault.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorComputer, MyDialogueEnum.FORT_VALIANT_C_1900));
            m_objectives.Add(vault);

            m_disableScanner2 = new MyObjectiveDisablePrefabs(
                (MyTextsWrapperEnum.FORT_VALIANT_C_TURN_OFF_SCANNER_Name),
                MyMissionID.FORT_VALIANT_C_TURN_OFF_SCANNER,
                (MyTextsWrapperEnum.FORT_VALIANT_C_TURN_OFF_SCANNER_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_VALUT },
                new List <uint> {
                (uint)EntityID.DisableSnanners2
            },
                new List <uint> {
                (uint)EntityID.DisableScanner2Hub
            },
                false

                )
            {
                SaveOnSuccess = true, SuccessDialogId = MyDialogueEnum.FORT_VALIANT_C_2100, HudName = MyTextsWrapperEnum.HudSecurityHub
            };
            m_disableScanner2.OnMissionSuccess += DisableScanner2_Success;
            m_objectives.Add(m_disableScanner2);

            var scanners4 = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS4_Name),
                MyMissionID.FORT_VALIANT_C_SCANNERS4,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS4_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_TURN_OFF_SCANNER },
                new MyMissionLocation(baseSector, (uint)EntityID.HigherFloors))
            {
                HudName = MyTextsWrapperEnum.Nothing
            };
            m_objectives.Add(scanners4);


            var elevator = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_TOP_ELEVATOR_Name),
                MyMissionID.FORT_VALIANT_C_TOP_ELEVATOR,
                (MyTextsWrapperEnum.FORT_VALIANT_C_TOP_ELEVATOR_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SCANNERS4 },
                new MyMissionLocation(baseSector, (uint)EntityID.ElevatorDummy))
            {
                HudName = MyTextsWrapperEnum.Nothing
            };
            m_objectives.Add(elevator);


            var escape = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_VENT_SYSTEM_Name),
                MyMissionID.FORT_VALIANT_C_VENT_SYSTEM,
                (MyTextsWrapperEnum.FORT_VALIANT_C_VENT_SYSTEM_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_TOP_ELEVATOR },
                new MyMissionLocation(baseSector, (uint)EntityID.EscapeVentSystemDummy))
            {
                SuccessDialogId = MyDialogueEnum.FORT_VALIANT_C_2300, HudName = MyTextsWrapperEnum.Nothing
            };
            m_objectives.Add(escape);


            var useCatacombs = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_CATACOMBS_Name),
                MyMissionID.FORT_VALIANT_C_CATACOMBS,
                (MyTextsWrapperEnum.FORT_VALIANT_C_CATACOMBS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_VENT_SYSTEM },
                new MyMissionLocation(baseSector, (uint)EntityID.EscapeCatacombsDummy)
                //startDialogId: dialog9
                )
            {
                HudName = MyTextsWrapperEnum.Nothing
            };
            useCatacombs.OnMissionSuccess += UseCatacombsOnOnMissionSuccess;
            m_objectives.Add(useCatacombs);

            var getItemsFromCargoBoxes2 = new MyUseObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_PICK_UP_EQUIP_Name),
                MyMissionID.FORT_VALIANT_C_PICK_UP_EQUIP,
                (MyTextsWrapperEnum.FORT_VALIANT_C_PICK_UP_EQUIP_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_CATACOMBS },
                new MyMissionLocation(baseSector, (uint)EntityID.RoyalCargoBoxDetector),
                MyTextsWrapperEnum.PressToTakeCargo,
                MyTextsWrapperEnum.CargoBox,
                MyTextsWrapperEnum.TakingInProgress,
                3000,
                MyUseObjectiveType.Taking
                //startDialogId: dialog10
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_2400
            };
            getItemsFromCargoBoxes2.Components.Add(new MyDetectorDialogue((uint)EntityID.GetItemsWayBackDialogue, MyDialogueEnum.FORT_VALIANT_C_2500));
            getItemsFromCargoBoxes2.OnMissionSuccess += GetItemsFromCargoBoxesOnOnMissionSuccess;
            m_objectives.Add(getItemsFromCargoBoxes2);
            #endregion
        }
Ejemplo n.º 2
0
        public MyEACPrisonMission()
        {
            ID              = MyMissionID.EAC_PRISON; /* ID must be added to MyMissions.cs */
            DebugName       = new StringBuilder("20-EAC prison");
            Name            = MyTextsWrapperEnum.EAC_PRISON;
            Description     = MyTextsWrapperEnum.EAC_PRISON_Description;
            Flags           = MyMissionFlags.Story;
            AchievementName = MySteamAchievementNames.Mission29_EacPrison;

            MyMwcVector3Int baseSector = new MyMwcVector3Int(5480055, 0, -5077310);

            /* sector where the mission is located */
            Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); //posledne cislo - ID dummy pointu kde prijimam misiu

            RequiredMissions           = new MyMissionID[] { MyMissionID.TWIN_TOWERS };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.EAC_PRISON_MEETINGPOINT };
            RequiredActors             = new MyActorEnum[] { MyActorEnum.TARJA, MyActorEnum.VALENTIN, MyActorEnum.MADELYN, MyActorEnum.MARCUS };

            m_objectives = new List <MyObjective>();

            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeStorage, 0, (uint)EntityID.SpawnpointAtStorage));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeIndustry, 0, (uint)EntityID.SpawnpointAtIndustry1));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeIndustry, 0, (uint)EntityID.SpawnpointAtIndustry2));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeParking, 0, (uint)EntityID.SpawnpointAtParking));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeMines, 0, (uint)EntityID.SpawnpointAtMines));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeMinesEntrance, 0, (uint)EntityID.SpawnpointAtMinesEntrance));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeMarcusCell, 0, (uint)EntityID.SpawnpointAtMarcusCell));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck7, 0, (uint)EntityID.SpawnpointAtSecurityCheck7));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck6, 0, (uint)EntityID.SpawnpointAtSecurityCheck6));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck8, 0, (uint)EntityID.SpawnpointAtSecurityCheck8));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck4, 0, (uint)EntityID.SpawnpointAtSecurityCheck4));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCellAfterSecurityCheck4, 0, (uint)EntityID.SpawnpointAtCellAfterSecurityCheck4));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck5, 0, (uint)EntityID.SpawnpointAtSecurityCheck5));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell1AfterSecurityCheck5, 0, (uint)EntityID.SpawnpointAtCell1AfterSecurityCheck5));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell2AfterSecurityCheck5, 0, (uint)EntityID.SpawnpointAtCell2AfterSecurityCheck5));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell3AfterSecurityCheck5, 0, (uint)EntityID.SpawnpointAtCell3AfterSecurityCheck5));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck3, 0, (uint)EntityID.SpawnpointAtSecurityCheck3));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell1AfterSecurityCheck3, 0, (uint)EntityID.SpawnpointAtCell1AfterSecurityCheck3));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell2AfterSecurityCheck3, 0, (uint)EntityID.SpawnpointAtCell2AfterSecurityCheck3));

            //Components.Add(new MySpawnpointWaves(detectorId, 3, new List<uint[]> {
            //    new uint[] { spawnpointId1, spawnpointId2, spawnpointId3 },
            //    new uint[] { spawnpointId4, spawnpointId5 }}));

            //01
            var mothershipBattle = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_THRUSWARM_Name),
                MyMissionID.EAC_PRISON_THRUSWARM,
                (MyTextsWrapperEnum.EAC_PRISON_THRUSWARM_Description),
                null,
                this,
                new MyMissionID[] {},
                new MyMissionLocation(baseSector, (uint)EntityID.MotherShiBattleLocationDummy)
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_0100, SuccessDialogId = MyDialogueEnum.EAC_PRISON_0200
            };

            m_objectives.Add(mothershipBattle);
            //mothershipBattle.Components.Add(new MySpawnpointWaves(77073, 0, 76625));
            mothershipBattle.OnMissionLoaded += mothershipBattle_OnMissionLoaded;

            //02

            var destroySolarDefence = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.EAC_PRISON_SOLARDEF_Name),
                MyMissionID.EAC_PRISON_SOLARDEF,
                (MyTextsWrapperEnum.EAC_PRISON_SOLARDEF_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_THRUSWARM },
                m_02toKill
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_0300
            };

            destroySolarDefence.OnMissionSuccess += DestroySolarDefenceOnOnMissionSuccess;
            m_objectives.Add(destroySolarDefence);
            destroySolarDefence.OnMissionLoaded += destroySolarDefence_OnMissionLoaded;

            //03
            m_destroySolarPanelsFirst = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_SOLAROFF1_Name),
                MyMissionID.EAC_PRISON_SOLAROFF1,
                (MyTextsWrapperEnum.EAC_PRISON_SOLAROFF1_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_SOLARDEF },
                null
                )
            {
                SaveOnSuccess = false
            };
            m_destroySolarPanelsFirst.OnMissionLoaded  += DestroySolarPanelsFirstSubmissionLoaded;
            m_destroySolarPanelsFirst.OnMissionSuccess += DestroySolarPanelsFirstSubmissionSuccess;
            m_objectives.Add(m_destroySolarPanelsFirst);
            m_destroySolarPanelsFirst.SaveOnSuccess = true;

            //04
            var motherShipHelp = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.EAC_PRISON_MOTHERSHIPHELP_Name),
                MyMissionID.EAC_PRISON_MOTHERSHIPHELP,
                (MyTextsWrapperEnum.EAC_PRISON_MOTHERSHIPHELP_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_SOLAROFF1 },
                m_04toKill
                )
            {
                SaveOnSuccess = false, StartDialogId = MyDialogueEnum.EAC_PRISON_0400, SuccessDialogId = MyDialogueEnum.EAC_PRISON_0500
            };

            m_objectives.Add(motherShipHelp);
            motherShipHelp.OnMissionLoaded += new MissionHandler(motherShipHelp_OnMissionLoaded);

            //05
            m_destroySolarPanelsSecond = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_SOLAROFF2_Name),
                MyMissionID.EAC_PRISON_SOLAROFF2,
                (MyTextsWrapperEnum.EAC_PRISON_SOLAROFF2_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_MOTHERSHIPHELP },
                null
                )
            {
                SaveOnSuccess = true,
            };
            m_destroySolarPanelsSecond.OnMissionLoaded  += DestroySolarPanelsSecondSubmissionLoaded;
            m_destroySolarPanelsSecond.OnMissionSuccess += DestroySolarPanelsSecondSubmissionSuccess;
            m_objectives.Add(m_destroySolarPanelsSecond);

            //06
            var breakInsideStation = new MyTimedReachLocationObjective(
                (MyTextsWrapperEnum.EAC_PRISON_BREAKIN_Name),
                MyMissionID.EAC_PRISON_BREAKIN,
                (MyTextsWrapperEnum.EAC_PRISON_BREAKIN_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_SOLAROFF2 },
                new System.TimeSpan(0, 1, 0),
                new MyMissionLocation(baseSector, (uint)EntityID.BreakInsideStationLocationDummy)
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_0600, HudName = MyTextsWrapperEnum.HudCargoBay
            };

            breakInsideStation.OnMissionSuccess += BreakInsideStationSubmissionSuccess;
            breakInsideStation.OnMissionLoaded  += BreakInsideStationOnOnMissionLoaded;
            m_objectives.Add(breakInsideStation);

            //07
            var marcusLocationIntel = new MyUseObjective(
                (MyTextsWrapperEnum.EAC_PRISON_LOCINTEL_Name),
                MyMissionID.EAC_PRISON_LOCINTEL,
                (MyTextsWrapperEnum.EAC_PRISON_LOCINTEL_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_BREAKIN },
                new MyMissionLocation(baseSector, (uint)EntityID._MarcusIntelLocation),
                MyTextsWrapperEnum.PressToDownloadData,
                MyTextsWrapperEnum.Console,
                MyTextsWrapperEnum.DownloadingData,
                5000,
                MyUseObjectiveType.Hacking
                )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudSecurityHub
            };

            m_objectives.Add(marcusLocationIntel);
            marcusLocationIntel.OnMissionLoaded  += new MissionHandler(marcusLocationIntel_OnMissionLoaded);
            marcusLocationIntel.OnMissionSuccess += MarcusLocationIntelOnOnMissionSuccess;
            marcusLocationIntel.Components.Add(new MySpawnpointLimiter(m_spawns, 6));

            //08
            m_findCircoutPart = new MyUseObjective(
                (MyTextsWrapperEnum.EAC_PRISON_ACQUIREIDCARD_Name),
                MyMissionID.EAC_PRISON_ACQUIREIDCARD,
                (MyTextsWrapperEnum.EAC_PRISON_ACQUIREIDCARD_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_LOCINTEL },
                new MyMissionLocation(baseSector, (uint)EntityID.CargoIDCard),
                MyTextsWrapperEnum.PressToTakeCargo,
                MyTextsWrapperEnum.TakeAll,
                MyTextsWrapperEnum.TakeAll,
                2000,
                MyUseObjectiveType.Taking,
                radiusOverride: 50
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_0700, HudName = MyTextsWrapperEnum.HudIdCard
            };

            m_findCircoutPart.OnMissionLoaded  += OnFindCircuitLoaded;
            m_findCircoutPart.OnMissionSuccess += new MissionHandler(m_findCircoutPart_OnMissionSuccess);
            m_objectives.Add(m_findCircoutPart);


            var marcusLocationIntel2 = new MyUseObjective(
                (MyTextsWrapperEnum.EAC_PRISON_LOCINTEL2_Name),
                MyMissionID.EAC_PRISON_LOCINTEL2,
                (MyTextsWrapperEnum.EAC_PRISON_LOCINTEL2_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_ACQUIREIDCARD },
                new MyMissionLocation(baseSector, (uint)EntityID._MarcusIntelLocation),
                MyTextsWrapperEnum.PressToDownloadData,
                MyTextsWrapperEnum.Console,
                MyTextsWrapperEnum.DownloadingData,
                5000,
                MyUseObjectiveType.Hacking
                )
            {
                SaveOnSuccess = true, SuccessDialogId = MyDialogueEnum.EAC_PRISON_0900, StartDialogId = MyDialogueEnum.EAC_PRISON_0800, HudName = MyTextsWrapperEnum.HudSecurityHub
            };

            m_objectives.Add(marcusLocationIntel2);

            //09
            var openDoors = new MyObjectiveEnablePrefabs(
                (MyTextsWrapperEnum.EAC_PRISON_OPENACCESS_Name),
                MyMissionID.EAC_PRISON_OPENACCESS,
                (MyTextsWrapperEnum.EAC_PRISON_OPENACCESS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_LOCINTEL2 },
                null,
                new List <uint> {
                (int)EntityID.SecurityHub
            },
                m_09toEnablePrefabs
                )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudSecurityHub
            };

            m_objectives.Add(openDoors);

            openDoors.OnMissionLoaded += OnOpenDoorsLoaded;

            //10
            var takeOffSecurityCircuit = new MyObjectiveDisablePrefabs(
                (MyTextsWrapperEnum.EAC_PRISON_SECURITYOFF_Name),
                MyMissionID.EAC_PRISON_SECURITYOFF,
                (MyTextsWrapperEnum.EAC_PRISON_SECURITYOFF_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_OPENACCESS },
                new List <uint> {
                (uint)EntityID.HubHack
            },
                new List <uint> {
                (uint)EntityID.HubHackGenerator
            },
                false,
                false
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_1000, HudName = MyTextsWrapperEnum.HudHub
            };

            takeOffSecurityCircuit.OnMissionLoaded += OntakeOffSecuritypartLoaded;//zapne svetlo
            m_objectives.Add(takeOffSecurityCircuit);

            //11
            var approachMarcusCell = new MyUseObjective(
                (MyTextsWrapperEnum.EAC_PRISON_MARCUSCELL_Name),
                MyMissionID.EAC_PRISON_MARCUSCELL,
                (MyTextsWrapperEnum.EAC_PRISON_MARCUSCELL_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_SECURITYOFF },
                new MyMissionLocation(baseSector, (uint)EntityID.MarcusCellLocation),
                MyTextsWrapperEnum.HoldToMoveMarcus,
                MyTextsWrapperEnum.Actor_Marcus,
                MyTextsWrapperEnum.Moving,
                4000,
                MyUseObjectiveType.Taking
                )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudMarcus
            };

            approachMarcusCell.OnMissionLoaded += OnapproachMarcusLoaded;
            m_objectives.Add(approachMarcusCell);

            var marcusLoaded = new MyObjectiveDialog(
                MyMissionID.EAC_PRISON_MARCUSDIALOG,
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_MARCUSCELL },
                MyDialogueEnum.EAC_PRISON_1200
                )
            {
                SaveOnSuccess = true
            };

            marcusLoaded.OnMissionLoaded += OnMarcusLoadedLoaded;
            m_objectives.Add(marcusLoaded);

            var weHaveCompany = new MyObjectiveDialog(
                MyMissionID.EAC_PRISON_WE_HAVE_COMPANY,
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_MARCUSDIALOG },
                MyDialogueEnum.EAC_PRISON_1250
                )
            {
                SaveOnSuccess = false
            };

            weHaveCompany.OnMissionLoaded += OnWeHaveCompanyLoaded;
            m_objectives.Add(weHaveCompany);

            //12
            var findMarcusSmallShip = new MyUseObjective(
                (MyTextsWrapperEnum.EAC_PRISON_COVERMARCUS_Name),
                MyMissionID.EAC_PRISON_COVERMARCUS,
                (MyTextsWrapperEnum.EAC_PRISON_COVERMARCUS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_WE_HAVE_COMPANY },
                new MyMissionLocation(baseSector, (uint)EntityID.MarcusShipDetector),
                MyTextsWrapperEnum.HoldToMoveMarcus,
                MyTextsWrapperEnum.Actor_Marcus,
                MyTextsWrapperEnum.Moving,
                4000,
                MyUseObjectiveType.Putting
                )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudShip
            };

            // destroySolarDefence.OnMissionSuccess += ToHangarSubmissionSuccess;
            m_objectives.Add(findMarcusSmallShip);
            findMarcusSmallShip.OnMissionSuccess += OnSuccesfindMarcusSmallShip;

            //13
            var equipMarcus = new MyUseObjective(
                (MyTextsWrapperEnum.EAC_PRISON_GETARMS_Name),
                MyMissionID.EAC_PRISON_GETARMS,
                (MyTextsWrapperEnum.EAC_PRISON_GETARMS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_COVERMARCUS },
                new MyMissionLocation(baseSector, (uint)EntityID.CargoForMarcus),
                MyTextsWrapperEnum.HoldToMoveWeapons,
                MyTextsWrapperEnum.Actor_Marcus,
                MyTextsWrapperEnum.Moving,
                4000
                )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudEquipment
            };

            // destroySolarDefence.OnMissionSuccess += ToHangarSubmissionSuccess;
            m_objectives.Add(equipMarcus);
            equipMarcus.OnMissionSuccess += OnEquipMarcussSucces;
            equipMarcus.OnMissionLoaded  += EquipMarcusOnOnMissionLoaded;

            //14
            var fightOutStation = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_FIGHTOUT_Name),
                MyMissionID.EAC_PRISON_FIGHTOUT,
                (MyTextsWrapperEnum.EAC_PRISON_FIGHTOUT_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_GETARMS },
                new MyMissionLocation(baseSector, (uint)EntityID.StationDummy)
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_1300, SuccessDialogId = MyDialogueEnum.EAC_PRISON_1400, HudName = MyTextsWrapperEnum.Nothing
            };

            fightOutStation.OnMissionLoaded  += fightOutStation_OnMissionLoaded;
            fightOutStation.OnMissionSuccess += fightOutStation_OnMissionSuccess;
            m_objectives.Add(fightOutStation);

            //15
            var CrushRemainingShips = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.EAC_PRISON_CRUSHREINFORCEMENTS_Name),
                MyMissionID.EAC_PRISON_CRUSHREINFORCEMENTS,
                (MyTextsWrapperEnum.EAC_PRISON_CRUSHREINFORCEMENTS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_FIGHTOUT },
                new List <uint> {
            },                          // entities needed to kill
                m_15toKillSpawnpoints,  // spawnpoint from which bots must be killed
                false                   // don't show marks on entities (not from spawnpoint)
                )
            {
                SaveOnSuccess = true,
            };

            m_objectives.Add(CrushRemainingShips);

            //16
            var GetToMeetingPoint = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_MEETINGPOINT_Name),
                MyMissionID.EAC_PRISON_MEETINGPOINT,
                (MyTextsWrapperEnum.EAC_PRISON_MEETINGPOINT_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_CRUSHREINFORCEMENTS },
                new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR),
                radiusOverride: MyMissionLocation.MADELYN_HANGAR_RADIUS
                )
            {
                SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_1500, SuccessDialogId = MyDialogueEnum.EAC_PRISON_1600, HudName = MyTextsWrapperEnum.HudMeetingPoint
            };

            m_objectives.Add(GetToMeetingPoint);
        }
Ejemplo n.º 3
0
        public MyFortValiantMissionC()
            : base()
        {
            ID = MyMissionID.FORT_VALIANT_C; /* ID must be added to MyMissions.cs */
            DebugName = new StringBuilder("09e-Fort Valiant C"); // Name of mission
            Name = MyTextsWrapperEnum.FORT_VALIANT_C;
            Description = MyTextsWrapperEnum.FORT_VALIANT_C_Description;
            RequiredActors = new MyActorEnum[] { MyActorEnum.MADELYN, MyActorEnum.MARCUS, MyActorEnum.TARJA, MyActorEnum.VALENTIN };
            Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocationC); //StartLocationC Starting dummy point - must by typecasted to uint and referenced from EntityID enum
            RequiredMissions = new MyMissionID[] { MyMissionID.SLAVER_BASE_2 };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.FORT_VALIANT_C_PICK_UP_EQUIP };
            AchievementName = MySteamAchievementNames.Mission17_FortValiantDungeons;

            #region Objectives
            m_objectives = new List<MyObjective>();

            var speakCaptain = new MyMeetObjective(
                 (MyTextsWrapperEnum.FORT_VALIANT_C_CAPTAIN_Name),
                 MyMissionID.FORT_VALIANT_C_CAPTAIN,
                 (MyTextsWrapperEnum.FORT_VALIANT_C_CAPTAIN_Description),
                 this,
                 new MyMissionID[] { },
                 (uint)EntityID.CaptainDummy,
                 (uint)EntityID.Captain,
                 50,
                 0.25f,
                 MyDialogueEnum.FORT_VALIANT_C_0100,
                 null,
                 false
            ) { SaveOnSuccess = true, FollowMe = false, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_0100_BEGIN, HudName = MyTextsWrapperEnum.HudCaptainCedric };
            speakCaptain.OnMissionSuccess += SpeakCaptainOnOnMissionSuccess;
            m_objectives.Add(speakCaptain);


            var reachUpperFloor = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_UPPER_FLOOR_Name),
                MyMissionID.FORT_VALIANT_C_UPPER_FLOOR,
                (MyTextsWrapperEnum.FORT_VALIANT_C_UPPER_FLOOR_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_CAPTAIN },
                new MyMissionLocation(baseSector, (uint)EntityID.UpperFloorDummy)
                ) { HudName = MyTextsWrapperEnum.Nothing };
            m_objectives.Add(reachUpperFloor);



            var meetRoyal = new MyMeetObjective(
                 (MyTextsWrapperEnum.FORT_VALIANT_C_EQUIP_TALK_Name),
                 MyMissionID.FORT_VALIANT_C_EQUIP_TALK,
                 (MyTextsWrapperEnum.FORT_VALIANT_C_EQUIP_TALK_Description),
                 this,
                 new MyMissionID[] { MyMissionID.FORT_VALIANT_C_UPPER_FLOOR },
                 (uint)EntityID.RoyalDummy,
                 (uint)EntityID.BotRoyal,
                 50,
                 0.25f,
                 MyDialogueEnum.FORT_VALIANT_C_0200,
                 null,
                 false
            ) { SaveOnSuccess = true, FollowMe = false };
            m_objectives.Add(meetRoyal);


            var giveoutEquipment = new MyUseObjective(
                   (MyTextsWrapperEnum.FORT_VALIANT_C_EQUIP_Name),
                   MyMissionID.FORT_VALIANT_C_EQUIP,
                   (MyTextsWrapperEnum.FORT_VALIANT_C_EQUIP_Description),
                   null,
                   this,
                   new MyMissionID[] { MyMissionID.FORT_VALIANT_C_EQUIP_TALK },
                   new MyMissionLocation(baseSector, (uint)EntityID.RoyalCargoBoxDetector),
                   MyTextsWrapperEnum.PressToGiveEquipment,
                   MyTextsWrapperEnum.CargoBox,
                   MyTextsWrapperEnum.TransferInProgress,
                   3000,
                   MyUseObjectiveType.Activating
            ) { SaveOnSuccess = true };
            giveoutEquipment.OnMissionSuccess += GiveoutEquipmentOnOnMissionSuccess;
            m_objectives.Add(giveoutEquipment);



            var meetOfficers = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_MEET_OFFICIALS_Name),
                MyMissionID.FORT_VALIANT_C_MEET_OFFICIALS,
                (MyTextsWrapperEnum.FORT_VALIANT_C_MEET_OFFICIALS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_EQUIP },
                new MyMissionLocation(baseSector, (uint)EntityID.OfficalsDetector),
                null
                ) { StartDialogId = MyDialogueEnum.FORT_VALIANT_C_0300, SuccessDialogId = MyDialogueEnum.FORT_VALIANT_C_0400, HudName = MyTextsWrapperEnum.HudChamber };
            m_objectives.Add(meetOfficers);


            var leaveOfficers = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_LEAVE_OFFICIALS_Name),
                MyMissionID.FORT_VALIANT_C_LEAVE_OFFICIALS,
                (MyTextsWrapperEnum.FORT_VALIANT_C_LEAVE_OFFICIALS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_MEET_OFFICIALS },
                new MyMissionLocation(baseSector, (uint)EntityID.OfficalsleaveDetector),
                null
                ) { SuccessDialogId = MyDialogueEnum.FORT_VALIANT_C_0500, HudName = MyTextsWrapperEnum.Nothing };
            m_objectives.Add(leaveOfficers);

            var followPath = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_LEAVE_FOLLOW_Name),
                MyMissionID.FORT_VALIANT_C_LEAVE_FOLLOW,
                (MyTextsWrapperEnum.FORT_VALIANT_C_LEAVE_FOLLOW_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_LEAVE_OFFICIALS },
                new MyMissionLocation(baseSector, (uint)EntityID.FollowPathDetector),
                null,
                null) { HudName = MyTextsWrapperEnum.Nothing };
            m_objectives.Add(followPath);

            var speakWithSir = new MyMeetObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SPEAK_SIR_Name),
                MyMissionID.FORT_VALIANT_C_SPEAK_SIR,
                 (MyTextsWrapperEnum.FORT_VALIANT_C_SPEAK_SIR_Description),
                 this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_LEAVE_FOLLOW },
                 (uint)EntityID.SirBendivereDummy,
                 (uint)EntityID.BotTemplar,
                 50,
                 0.25f,
                 MyDialogueEnum.FORT_VALIANT_C_0600,
                 null,
                 false
            ) { SaveOnSuccess = true, FollowMe = false, HudName = MyTextsWrapperEnum.HudSirGeraint };
            m_objectives.Add(speakWithSir);


            var getItemsFromCargoBoxes = new MyObjectiveGetItems(
                (MyTextsWrapperEnum.FORT_VALIANT_C_GET_EQUP_CARGO_Name),
                MyMissionID.FORT_VALIANT_C_GET_EQUP_CARGO,
                (MyTextsWrapperEnum.FORT_VALIANT_C_GET_EQUP_CARGO_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SPEAK_SIR },
                new List<MyItemToGetDefinition>() {
                            new MyItemToGetDefinition(MyMwcObjectBuilderTypeEnum.SmallShip_HackingTool, (int)MyMwcObjectBuilder_SmallShip_HackingTool_TypesEnum.Level_1)},
                new List<uint>() { (uint)EntityID.CargoBox }
            ) { SaveOnSuccess = true };
            m_objectives.Add(getItemsFromCargoBoxes);



            var findEntrance = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION_Name),
                MyMissionID.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION,
                (MyTextsWrapperEnum.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_GET_EQUP_CARGO },
                new MyMissionLocation(baseSector, (uint)EntityID.Ventilation),
                null,
                null) { StartDialogId = MyDialogueEnum.FORT_VALIANT_C_0700, HudName = MyTextsWrapperEnum.HudEntrance };
            findEntrance.OnMissionLoaded += FindEntranceOnOnMissionLoaded;
            m_objectives.Add(findEntrance);
            

            var disableScanner = new MyObjectiveDisablePrefabs(
                  (MyTextsWrapperEnum.FORT_VALIANT_C_FOLLOW_TURN_OFF_GATE_Name),
                  MyMissionID.FORT_VALIANT_C_FOLLOW_TURN_OFF_GATE,
                  (MyTextsWrapperEnum.FORT_VALIANT_C_FOLLOW_TURN_OFF_GATE_Description),
                    null,
                    this,
                    new MyMissionID[] { MyMissionID.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION },
                    new List<uint> { (uint)EntityID.DisableScanner },
                    new List<uint> { (uint)EntityID.DisableScannerHub },
                    false,
                    false
                ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_0800, HudName = MyTextsWrapperEnum.HudSecurityHub };
            disableScanner.OnMissionLoaded += DisableScannerOnOnMissionLoaded;
            m_objectives.Add(disableScanner);

            var scanners1 = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS1_Name),
                MyMissionID.FORT_VALIANT_C_SCANNERS1,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS1_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_FOLLOW_TURN_OFF_GATE },
                new MyMissionLocation(baseSector, (uint)EntityID.ScannersLocation1)) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_1000, HudName = MyTextsWrapperEnum.Nothing };
            //scanners1.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorGuardsDialogue, MyDialogueEnum.FORT_VALIANT_C_1100));
            scanners1.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorSensorsDialogue, MyDialogueEnum.FORT_VALIANT_C_1200));
            m_objectives.Add(scanners1);


            var scanners2 = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS2_Name),
                MyMissionID.FORT_VALIANT_C_SCANNERS2,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS2_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SCANNERS1 },
                new MyMissionLocation(baseSector, (uint)EntityID.ScannersLocation2)) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing };
            scanners2.OnMissionSuccess += Scanners2OnOnMissionSuccess;
            m_objectives.Add(scanners2);

            
            var scanners23 = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS23_Name),
                MyMissionID.FORT_VALIANT_C_SCANNERS23,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS23_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SCANNERS2 },
                new MyMissionLocation(baseSector, (uint)EntityID.ScannersLocation23)) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing };
            m_objectives.Add(scanners23);
            
            m_findArtifact = new MyUseObjective(
               (MyTextsWrapperEnum.FORT_VALIANT_C_TAKE_ARTEFACT_Name),
               MyMissionID.FORT_VALIANT_C_TAKE_ARTEFACT,
               (MyTextsWrapperEnum.FORT_VALIANT_C_TAKE_ARTEFACT_Description),
               null,
               this,
               new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SCANNERS23 },
               null,
               MyTextsWrapperEnum.NotificationTakeArtifact,
               MyTextsWrapperEnum.Artifact,
               MyTextsWrapperEnum.TakingInProgress,
               3000,
               MyUseObjectiveType.Taking,
               null,
               null,
               null,
               new List<uint>() { (uint)EntityID.Box1Marker, (uint)EntityID.Box2Marker, (uint)EntityID.Box3Marker, (uint)EntityID.Box4Marker },
               (uint)EntityID.ArtifactDummy
            ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.FORT_VALIANT_C_1400 };
            m_findArtifact.OnMissionLoaded += FindArtifactOnOnMissionLoaded;
            m_findArtifact.OnMissionSuccess += FindArtifactOnOnMissionSuccess;
            m_findArtifact.Components.Add(new MyTimedDialogue(new TimeSpan(0,0,10),MyDialogueEnum.FORT_VALIANT_C_1500 ));
            m_objectives.Add(m_findArtifact);


            var vault = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_VALUT_Name),
                MyMissionID.FORT_VALIANT_C_VALUT,
                (MyTextsWrapperEnum.FORT_VALIANT_C_VALUT_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_TAKE_ARTEFACT },
                new MyMissionLocation(baseSector, (uint)EntityID.ScannersLocation2)) { HudName = MyTextsWrapperEnum.Nothing };
            vault.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorSecurityFields, MyDialogueEnum.FORT_VALIANT_C_1700));
            vault.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorOpenDoors, MyDialogueEnum.FORT_VALIANT_C_1800));
            vault.Components.Add(new MyDetectorDialogue((uint)EntityID.DetectorComputer, MyDialogueEnum.FORT_VALIANT_C_1900));
            m_objectives.Add(vault);

            m_disableScanner2 = new MyObjectiveDisablePrefabs(
                  (MyTextsWrapperEnum.FORT_VALIANT_C_TURN_OFF_SCANNER_Name),
                  MyMissionID.FORT_VALIANT_C_TURN_OFF_SCANNER,
                  (MyTextsWrapperEnum.FORT_VALIANT_C_TURN_OFF_SCANNER_Description),
                    null,
                    this,
                    new MyMissionID[] { MyMissionID.FORT_VALIANT_C_VALUT },
                    new List<uint> { (uint)EntityID.DisableSnanners2 },
                    new List<uint> { (uint)EntityID.DisableScanner2Hub },
                    false

                ) { SaveOnSuccess = true, SuccessDialogId = MyDialogueEnum.FORT_VALIANT_C_2100, HudName = MyTextsWrapperEnum.HudSecurityHub };
            m_disableScanner2.OnMissionSuccess += DisableScanner2_Success;
            m_objectives.Add(m_disableScanner2);

            var scanners4 = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS4_Name),
                MyMissionID.FORT_VALIANT_C_SCANNERS4,
                (MyTextsWrapperEnum.FORT_VALIANT_C_SCANNERS4_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_TURN_OFF_SCANNER },
                new MyMissionLocation(baseSector, (uint)EntityID.HigherFloors)) { HudName = MyTextsWrapperEnum.Nothing };
            m_objectives.Add(scanners4);


            var elevator = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_TOP_ELEVATOR_Name),
                MyMissionID.FORT_VALIANT_C_TOP_ELEVATOR,
                (MyTextsWrapperEnum.FORT_VALIANT_C_TOP_ELEVATOR_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_SCANNERS4 },
                new MyMissionLocation(baseSector, (uint)EntityID.ElevatorDummy)) { HudName = MyTextsWrapperEnum.Nothing };
            m_objectives.Add(elevator);


            var escape = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_VENT_SYSTEM_Name),
                MyMissionID.FORT_VALIANT_C_VENT_SYSTEM,
                (MyTextsWrapperEnum.FORT_VALIANT_C_VENT_SYSTEM_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_TOP_ELEVATOR },
                new MyMissionLocation(baseSector, (uint)EntityID.EscapeVentSystemDummy)) { SuccessDialogId = MyDialogueEnum.FORT_VALIANT_C_2300, HudName = MyTextsWrapperEnum.Nothing };
            m_objectives.Add(escape);


            var useCatacombs = new MyObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_CATACOMBS_Name),
                MyMissionID.FORT_VALIANT_C_CATACOMBS,
                (MyTextsWrapperEnum.FORT_VALIANT_C_CATACOMBS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.FORT_VALIANT_C_VENT_SYSTEM },
                new MyMissionLocation(baseSector, (uint)EntityID.EscapeCatacombsDummy)
                //startDialogId: dialog9
                ) { HudName = MyTextsWrapperEnum.Nothing };
            useCatacombs.OnMissionSuccess += UseCatacombsOnOnMissionSuccess;
            m_objectives.Add(useCatacombs);

            var getItemsFromCargoBoxes2 = new MyUseObjective(
                (MyTextsWrapperEnum.FORT_VALIANT_C_PICK_UP_EQUIP_Name),
                MyMissionID.FORT_VALIANT_C_PICK_UP_EQUIP,
                (MyTextsWrapperEnum.FORT_VALIANT_C_PICK_UP_EQUIP_Description),
               null,
               this,
               new MyMissionID[] { MyMissionID.FORT_VALIANT_C_CATACOMBS },
               new MyMissionLocation(baseSector, (uint)EntityID.RoyalCargoBoxDetector),
               MyTextsWrapperEnum.PressToTakeCargo,
               MyTextsWrapperEnum.CargoBox,
               MyTextsWrapperEnum.TakingInProgress,
               3000,
               MyUseObjectiveType.Taking
               //startDialogId: dialog10
        ) { SaveOnSuccess = true,StartDialogId = MyDialogueEnum.FORT_VALIANT_C_2400};
            getItemsFromCargoBoxes2.Components.Add(new MyDetectorDialogue((uint)EntityID.GetItemsWayBackDialogue, MyDialogueEnum.FORT_VALIANT_C_2500));
            getItemsFromCargoBoxes2.OnMissionSuccess += GetItemsFromCargoBoxesOnOnMissionSuccess;
            m_objectives.Add(getItemsFromCargoBoxes2);
            #endregion
        }
        public MyRussianWarehouseMission()
        {
            MyMwcVector3Int baseSector = new MyMwcVector3Int(-7420630, 0, 388170);

            ID = MyMissionID.RUSSIAN_WAREHOUSE;
            DebugName = new StringBuilder("05-Russian warehouse");
            Name = MyTextsWrapperEnum.RUSSIAN_WAREHOUSE;
            Description = MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_Description;
            Flags = MyMissionFlags.Story;
            Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation);

            RequiredMissions = new MyMissionID[] { MyMissionID.PIRATE_BASE };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_MEETINGPOINT };
            RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN };

            m_objectives = new List<MyObjective>();
            m_sneakInsideMainBaseSubmission = new MyObjective(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_SNEAKINMAINBASE_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_SNEAKINMAINBASE,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_SNEAKINMAINBASE_Description),
                null,
                this,
                new MyMissionID[] { },
                new MyMissionLocation(baseSector, (uint)EntityID.SneakInsideSubmissionLocation),
                startDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_0100
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudEntrance };
            m_sneakInsideMainBaseSubmission.OnMissionLoaded += SneakInsideMainBaseSubmission_OnMissionLoaded;
            m_objectives.Add(m_sneakInsideMainBaseSubmission);
            
            var TurnOffSecurityCams = new MyObjectiveDisablePrefabs(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_TURNOFFCAMS_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_TURNOFFCAMS,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_TURNOFFCAMS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_SNEAKINMAINBASE },
                new List<uint>() { (uint)EntityID.TurnOffCamera0, (uint)EntityID.TurnOffCamera1, (uint)EntityID.TurnOffCamera2 },
                new List<uint>() { (uint)EntityID.TurnOffHUB },
                markObjectsToDisable: false,
                startDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_0200
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudSecurityHub };
            m_objectives.Add(TurnOffSecurityCams);
            TurnOffSecurityCams.OnMissionLoaded += TurnOffSecurityCams_OnMissionLoaded;

            var ControlTurret = new MyObjectiveDisablePrefabs(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_CTRLTURRET_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_CTRLTURRET,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_CTRLTURRET_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_TURNOFFCAMS },
                new List<uint>() { (uint)EntityID.SecurityTower1, (uint)EntityID.SecurityTower2, (uint)EntityID.SecurityTower3, (uint)EntityID.SecurityTower4, (uint)EntityID.SecurityTower5 },
                new List<uint>() { (uint)EntityID.SecurityTowersHUB },
                markObjectsToDisable: false
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudSecurityHub };
            ControlTurret.OnMissionLoaded += ControlTurretOnLoaded;
            ControlTurret.OnMissionSuccess += ControlTurretOnSuccess;
            m_objectives.Add(ControlTurret);

            var OpenDoor = new MyObjectiveEnablePrefabs(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_OPEN_DOORS_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_OPEN_DOORS,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_OPEN_DOORS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_CTRLTURRET },
                null,
                new List<uint> { (uint)EntityID.OpenDoorHUB},
                new List<uint> { (uint)EntityID.GetOutsideDoors },
                startDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_0300
                ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudHub };
            m_objectives.Add(OpenDoor);

            var GetOutsideMainBase = new MyObjective(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_GETOUTMAINBASE_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_GETOUTMAINBASE,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_GETOUTMAINBASE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_OPEN_DOORS },
                new MyMissionLocation(baseSector, (uint)EntityID.GetOutsideSubmissionLocation),
                startDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_0400
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing };
            GetOutsideMainBase.OnMissionLoaded += new MissionHandler(GetOutsideMainBase_OnMissionLoaded);
            m_objectives.Add(GetOutsideMainBase);

            var BreakThruOldEntrance = new MyObjective(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_BREAKOLDENTRANCE_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_BREAKOLDENTRANCE,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_BREAKOLDENTRANCE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_GETOUTMAINBASE },
                new MyMissionLocation(baseSector, (uint)EntityID.BreakThroughSubmissionLocation),
                startDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_1100
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing };
            BreakThruOldEntrance.OnMissionLoaded += BreakThruOldEntrance_OnMissionLoaded;
            BreakThruOldEntrance.OnMissionUpdate += UpdateRussianMothershipMovement;
            m_objectives.Add(BreakThruOldEntrance);

            var LocateWarehouse = new MyObjective(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_LOCATEWAREHOUSE_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_LOCATEWAREHOUSE,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_LOCATEWAREHOUSE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_BREAKOLDENTRANCE },
                new MyMissionLocation(baseSector, (uint)EntityID.LocateWarehouseSubmissionLocation),
                startDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_0500
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing };
            LocateWarehouse.OnMissionUpdate += UpdateRussianMothershipMovement;
            LocateWarehouse.OnMissionLoaded += LocateWarehouse_OnMissionLoaded;
            LocateWarehouse.OnMissionCleanUp += LocateWarehouse_OnMissionUnload;
            m_objectives.Add(LocateWarehouse);

            var FindTransmitter = new MyUseObjective(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_FINDTRANSMITTER_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_FINDTRANSMITTER,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_FINDTRANSMITTER_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_LOCATEWAREHOUSE },
                new MyMissionLocation(baseSector, (uint)EntityID.TransmitterCargoBox),
                Localization.MyTextsWrapperEnum.PressToTakeCargo,
                Localization.MyTextsWrapperEnum.TakeAll,
                Localization.MyTextsWrapperEnum.TakeAll,
                1000,
                radiusOverride: 50,
                startDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_0700
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudTransmitter };
            FindTransmitter.OnMissionUpdate += UpdateRussianMothershipMovement;
            FindTransmitter.OnMissionLoaded += new MissionHandler(FindTransmitter_OnMissionLoaded);
            FindTransmitter.OnMissionSuccess += new MissionHandler(FindTransmitter_OnMissionSuccess);
            m_objectives.Add(FindTransmitter);

            var downDataDlgSubmission = new MyObjectiveDialog(
                    MyMissionID.RUSSIAN_WAREHOUSE_DOWNDATADIALOGUE,
                    null,
                    this,
                    new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_FINDTRANSMITTER },
                    MyDialogueEnum.RUSSIAN_WAREHOUSE_0800
                );
            downDataDlgSubmission.OnMissionUpdate += UpdateRussianMothershipMovement;
            m_objectives.Add(downDataDlgSubmission);

            var DownData = new MyUseObjective(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_DOWNLOAD_DATA_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_DOWNLOAD_DATA,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_DOWNLOAD_DATA_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_DOWNDATADIALOGUE },
                new MyMissionLocation(baseSector, (uint)EntityID.DownloadDataDummy),
                Localization.MyTextsWrapperEnum.PressToDownloadData,
                Localization.MyTextsWrapperEnum.Console,
                Localization.MyTextsWrapperEnum.DownloadingData,
                3000) { SaveOnSuccess = true };
            DownData.OnMissionUpdate += UpdateRussianMothershipMovement;
            DownData.OnMissionLoaded += DownDataOnLoaded;
            m_objectives.Add(DownData);

            var TurnOffMainDefense1 = new MyObjectiveDisablePrefabs(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART1_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART1,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART1_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_DOWNLOAD_DATA },
                new List<uint>() { (uint)EntityID.CargoTurret0, (uint)EntityID.CargoTurret1, (uint)EntityID.CargoTurret2, (uint)EntityID.CargoTurret3, (uint)EntityID.CargoTurret4 },
                new List<uint>() { (uint)EntityID.CargoTurretHUB0 },
                markObjectsToDisable: false,
                startDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_0900
            ) { HudName = MyTextsWrapperEnum.HudHubA };
            TurnOffMainDefense1.OnMissionUpdate += UpdateRussianMothershipMovement;
            m_objectives.Add(TurnOffMainDefense1);

            var TurnOffMainDefense2 = new MyObjectiveDisablePrefabs(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART2_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART2,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART2_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART1 },
                new List<uint>() { (uint)EntityID.CargoTurret5, (uint)EntityID.CargoTurret6, (uint)EntityID.CargoTurret7, (uint)EntityID.CargoTurret8, (uint)EntityID.CargoTurret9 },
                new List<uint>() { (uint)EntityID.CargoTurretHUB1 },
                markObjectsToDisable: false
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudHubB };
            TurnOffMainDefense2.OnMissionUpdate += UpdateRussianMothershipMovement;
            m_objectives.Add(TurnOffMainDefense2);

            var GetOutsideWarehouse = new MyObjective(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_GETOUTWAREHOUSE_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_GETOUTWAREHOUSE,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_GETOUTWAREHOUSE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART1, MyMissionID.RUSSIAN_WAREHOUSE_TURNOFFMAINDEF_PART2 },
                new MyMissionLocation(baseSector, (uint)EntityID.GetOutsideThruCargoSubmissionLocation)
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.Nothing };
            GetOutsideWarehouse.OnMissionUpdate += UpdateRussianMothershipMovement;
            GetOutsideWarehouse.OnMissionLoaded += GetOutsideWarehouseOnLoad;
            GetOutsideWarehouse.OnMissionCleanUp += GetOutsideWarehouseOnCleanUp;
            m_objectives.Add(GetOutsideWarehouse);

            var CrushRemainingShips = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_CRUSHREMAINGSHIPS_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_CRUSHREMAINGSHIPS,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_CRUSHREMAINGSHIPS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_GETOUTWAREHOUSE },
                new List<uint> { },
                new List<uint> { (uint)EntityID.CrushRussiansSpawnpoint },
                false
            ) { SaveOnSuccess = true };
            CrushRemainingShips.OnMissionUpdate += UpdateRussianMothershipMovement;
            CrushRemainingShips.OnMissionLoaded += CrushRemainingShipsOnLoad;
            m_objectives.Add(CrushRemainingShips);

            m_returnToMeetingPointSubmission = new MyObjective(
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_MEETINGPOINT_Name),
                MyMissionID.RUSSIAN_WAREHOUSE_MEETINGPOINT,
                (MyTextsWrapperEnum.RUSSIAN_WAREHOUSE_MEETINGPOINT_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RUSSIAN_WAREHOUSE_CRUSHREMAINGSHIPS },
                new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR),
                successDialogId: MyDialogueEnum.RUSSIAN_WAREHOUSE_1000,
                radiusOverride: MyMissionLocation.MADELYN_HANGAR_RADIUS
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudMadelynsSapho };
            m_returnToMeetingPointSubmission.OnMissionUpdate += UpdateRussianMothershipMovement;
            m_returnToMeetingPointSubmission.OnMissionUpdate += new MissionHandler(ReturnToMeetingPointSubmissionOnUpdate);
            m_objectives.Add(m_returnToMeetingPointSubmission);

            Components.Add(new MySpawnpointWaves((uint)EntityID.RaidDetector, 0, (uint)EntityID.RaidSpawnpoint));
        }
Ejemplo n.º 5
0
        public MyEACPrisonMission()
        {
            ID = MyMissionID.EAC_PRISON; /* ID must be added to MyMissions.cs */
            DebugName = new StringBuilder("20-EAC prison");
            Name = MyTextsWrapperEnum.EAC_PRISON;
            Description = MyTextsWrapperEnum.EAC_PRISON_Description;
            Flags = MyMissionFlags.Story;
            AchievementName = MySteamAchievementNames.Mission29_EacPrison;

            MyMwcVector3Int baseSector = new MyMwcVector3Int(5480055, 0, -5077310);

            /* sector where the mission is located */
            Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation); //posledne cislo - ID dummy pointu kde prijimam misiu

            RequiredMissions = new MyMissionID[] { MyMissionID.TWIN_TOWERS };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.EAC_PRISON_MEETINGPOINT };
            RequiredActors = new MyActorEnum[] { MyActorEnum.TARJA, MyActorEnum.VALENTIN, MyActorEnum.MADELYN, MyActorEnum.MARCUS };
            
            m_objectives = new List<MyObjective>();

            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeStorage, 0, (uint)EntityID.SpawnpointAtStorage));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeIndustry, 0, (uint)EntityID.SpawnpointAtIndustry1));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeIndustry, 0, (uint)EntityID.SpawnpointAtIndustry2));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeParking, 0, (uint)EntityID.SpawnpointAtParking));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeMines, 0, (uint)EntityID.SpawnpointAtMines));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeMinesEntrance, 0, (uint)EntityID.SpawnpointAtMinesEntrance));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeMarcusCell, 0, (uint)EntityID.SpawnpointAtMarcusCell));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck7, 0, (uint)EntityID.SpawnpointAtSecurityCheck7));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck6, 0, (uint)EntityID.SpawnpointAtSecurityCheck6));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck8, 0, (uint)EntityID.SpawnpointAtSecurityCheck8));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck4, 0, (uint)EntityID.SpawnpointAtSecurityCheck4));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCellAfterSecurityCheck4, 0, (uint)EntityID.SpawnpointAtCellAfterSecurityCheck4));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck5, 0, (uint)EntityID.SpawnpointAtSecurityCheck5));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell1AfterSecurityCheck5, 0, (uint)EntityID.SpawnpointAtCell1AfterSecurityCheck5));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell2AfterSecurityCheck5, 0, (uint)EntityID.SpawnpointAtCell2AfterSecurityCheck5));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell3AfterSecurityCheck5, 0, (uint)EntityID.SpawnpointAtCell3AfterSecurityCheck5));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeSecurityCheck3, 0, (uint)EntityID.SpawnpointAtSecurityCheck3));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell1AfterSecurityCheck3, 0, (uint)EntityID.SpawnpointAtCell1AfterSecurityCheck3));
            Components.Add(new MySpawnpointWaves((uint)EntityID.DetectorBeforeCell2AfterSecurityCheck3, 0, (uint)EntityID.SpawnpointAtCell2AfterSecurityCheck3));

            //Components.Add(new MySpawnpointWaves(detectorId, 3, new List<uint[]> { 
            //    new uint[] { spawnpointId1, spawnpointId2, spawnpointId3 },
            //    new uint[] { spawnpointId4, spawnpointId5 }}));
                        
            //01
            var mothershipBattle = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_THRUSWARM_Name),
                MyMissionID.EAC_PRISON_THRUSWARM,
                (MyTextsWrapperEnum.EAC_PRISON_THRUSWARM_Description),
                null,
                this,
                new MyMissionID[] {},
                new MyMissionLocation(baseSector, (uint)EntityID.MotherShiBattleLocationDummy)
                ) {SaveOnSuccess = true,StartDialogId = MyDialogueEnum.EAC_PRISON_0100, SuccessDialogId = MyDialogueEnum.EAC_PRISON_0200};
            m_objectives.Add(mothershipBattle);
            //mothershipBattle.Components.Add(new MySpawnpointWaves(77073, 0, 76625));
            mothershipBattle.OnMissionLoaded += mothershipBattle_OnMissionLoaded;

            //02
            
            var destroySolarDefence = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.EAC_PRISON_SOLARDEF_Name),
                MyMissionID.EAC_PRISON_SOLARDEF,
                (MyTextsWrapperEnum.EAC_PRISON_SOLARDEF_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_THRUSWARM },
                m_02toKill
            ) { SaveOnSuccess = true,StartDialogId = MyDialogueEnum.EAC_PRISON_0300};
            destroySolarDefence.OnMissionSuccess += DestroySolarDefenceOnOnMissionSuccess;
            m_objectives.Add(destroySolarDefence);
            destroySolarDefence.OnMissionLoaded += destroySolarDefence_OnMissionLoaded;

            //03
            m_destroySolarPanelsFirst = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_SOLAROFF1_Name),
                MyMissionID.EAC_PRISON_SOLAROFF1,
                (MyTextsWrapperEnum.EAC_PRISON_SOLAROFF1_Description),
                null,
                this,
                new MyMissionID[] {MyMissionID.EAC_PRISON_SOLARDEF},
                null
                ) {SaveOnSuccess = false};
            m_destroySolarPanelsFirst.OnMissionLoaded += DestroySolarPanelsFirstSubmissionLoaded;
            m_destroySolarPanelsFirst.OnMissionSuccess += DestroySolarPanelsFirstSubmissionSuccess;
            m_objectives.Add(m_destroySolarPanelsFirst);
            m_destroySolarPanelsFirst.SaveOnSuccess = true;

            //04
            var motherShipHelp = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.EAC_PRISON_MOTHERSHIPHELP_Name),
                MyMissionID.EAC_PRISON_MOTHERSHIPHELP,
                (MyTextsWrapperEnum.EAC_PRISON_MOTHERSHIPHELP_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_SOLAROFF1 },
                m_04toKill
            ) { SaveOnSuccess = false, StartDialogId = MyDialogueEnum.EAC_PRISON_0400, SuccessDialogId = MyDialogueEnum.EAC_PRISON_0500};
            m_objectives.Add(motherShipHelp);
            motherShipHelp.OnMissionLoaded += new MissionHandler(motherShipHelp_OnMissionLoaded);

                        //05
            m_destroySolarPanelsSecond = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_SOLAROFF2_Name),
                MyMissionID.EAC_PRISON_SOLAROFF2,
                (MyTextsWrapperEnum.EAC_PRISON_SOLAROFF2_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_MOTHERSHIPHELP },
                null
            ) { SaveOnSuccess = true,};
            m_destroySolarPanelsSecond.OnMissionLoaded += DestroySolarPanelsSecondSubmissionLoaded;
            m_destroySolarPanelsSecond.OnMissionSuccess += DestroySolarPanelsSecondSubmissionSuccess;
            m_objectives.Add(m_destroySolarPanelsSecond);
            
            //06
            var breakInsideStation = new MyTimedReachLocationObjective(
               (MyTextsWrapperEnum.EAC_PRISON_BREAKIN_Name),
               MyMissionID.EAC_PRISON_BREAKIN,
               (MyTextsWrapperEnum.EAC_PRISON_BREAKIN_Description),
               null,
               this,
               new MyMissionID[] { MyMissionID.EAC_PRISON_SOLAROFF2 },
               new System.TimeSpan(0, 1, 0),
               new MyMissionLocation(baseSector,(uint) EntityID.BreakInsideStationLocationDummy)
           ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_0600, HudName = MyTextsWrapperEnum.HudCargoBay };
            breakInsideStation.OnMissionSuccess += BreakInsideStationSubmissionSuccess;
            breakInsideStation.OnMissionLoaded += BreakInsideStationOnOnMissionLoaded;
            m_objectives.Add(breakInsideStation);
            
            //07
            var marcusLocationIntel = new MyUseObjective(
                   (MyTextsWrapperEnum.EAC_PRISON_LOCINTEL_Name),
                   MyMissionID.EAC_PRISON_LOCINTEL,
                   (MyTextsWrapperEnum.EAC_PRISON_LOCINTEL_Description),
                   null,
                   this,
                   new MyMissionID[] { MyMissionID.EAC_PRISON_BREAKIN },
                   new MyMissionLocation(baseSector, (uint)EntityID._MarcusIntelLocation),
                   MyTextsWrapperEnum.PressToDownloadData,
                   MyTextsWrapperEnum.Console,
                   MyTextsWrapperEnum.DownloadingData,
                   5000,
                   MyUseObjectiveType.Hacking
                ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudSecurityHub };

            m_objectives.Add(marcusLocationIntel);
            marcusLocationIntel.OnMissionLoaded += new MissionHandler(marcusLocationIntel_OnMissionLoaded);
            marcusLocationIntel.OnMissionSuccess += MarcusLocationIntelOnOnMissionSuccess;
            marcusLocationIntel.Components.Add(new MySpawnpointLimiter(m_spawns, 6));
            
            //08
            m_findCircoutPart = new MyUseObjective(
                    (MyTextsWrapperEnum.EAC_PRISON_ACQUIREIDCARD_Name),
                    MyMissionID.EAC_PRISON_ACQUIREIDCARD,
                    (MyTextsWrapperEnum.EAC_PRISON_ACQUIREIDCARD_Description),
                    null,
                    this,
                    new MyMissionID[] { MyMissionID.EAC_PRISON_LOCINTEL},
                    new MyMissionLocation(baseSector, (uint)EntityID.CargoIDCard),
                    MyTextsWrapperEnum.PressToTakeCargo,
                    MyTextsWrapperEnum.TakeAll,
                    MyTextsWrapperEnum.TakeAll,
                    2000,
                    MyUseObjectiveType.Taking,
                    radiusOverride: 50
            ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_0700, HudName = MyTextsWrapperEnum.HudIdCard };

            m_findCircoutPart.OnMissionLoaded += OnFindCircuitLoaded;
            m_findCircoutPart.OnMissionSuccess += new MissionHandler(m_findCircoutPart_OnMissionSuccess);
            m_objectives.Add(m_findCircoutPart);


            var marcusLocationIntel2 = new MyUseObjective(
               (MyTextsWrapperEnum.EAC_PRISON_LOCINTEL2_Name),
               MyMissionID.EAC_PRISON_LOCINTEL2,
               (MyTextsWrapperEnum.EAC_PRISON_LOCINTEL2_Description),
               null,
               this,
               new MyMissionID[] { MyMissionID.EAC_PRISON_ACQUIREIDCARD },
               new MyMissionLocation(baseSector, (uint)EntityID._MarcusIntelLocation),
               MyTextsWrapperEnum.PressToDownloadData,
               MyTextsWrapperEnum.Console,
               MyTextsWrapperEnum.DownloadingData,
               5000,
               MyUseObjectiveType.Hacking
            ) { SaveOnSuccess = true, SuccessDialogId = MyDialogueEnum.EAC_PRISON_0900, StartDialogId = MyDialogueEnum.EAC_PRISON_0800, HudName = MyTextsWrapperEnum.HudSecurityHub };

            m_objectives.Add(marcusLocationIntel2);
            
            //09
            var openDoors = new MyObjectiveEnablePrefabs(
                (MyTextsWrapperEnum.EAC_PRISON_OPENACCESS_Name),
                MyMissionID.EAC_PRISON_OPENACCESS,
                (MyTextsWrapperEnum.EAC_PRISON_OPENACCESS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_LOCINTEL2 },
                null,
                new List<uint> {(int)EntityID.SecurityHub},
                m_09toEnablePrefabs
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudSecurityHub };
            m_objectives.Add(openDoors);

            openDoors.OnMissionLoaded += OnOpenDoorsLoaded;
            
            //10
            var takeOffSecurityCircuit = new MyObjectiveDisablePrefabs(
              (MyTextsWrapperEnum.EAC_PRISON_SECURITYOFF_Name),
              MyMissionID.EAC_PRISON_SECURITYOFF,
              (MyTextsWrapperEnum.EAC_PRISON_SECURITYOFF_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_OPENACCESS },
                new List<uint> { (uint)EntityID.HubHack },
                new List<uint> { (uint)EntityID.HubHackGenerator },
                false,
                false
            ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_1000, HudName = MyTextsWrapperEnum.HudHub };

            takeOffSecurityCircuit.OnMissionLoaded += OntakeOffSecuritypartLoaded;//zapne svetlo
            m_objectives.Add(takeOffSecurityCircuit);
            
            //11
            var approachMarcusCell = new MyUseObjective(
                (MyTextsWrapperEnum.EAC_PRISON_MARCUSCELL_Name),
               MyMissionID.EAC_PRISON_MARCUSCELL,
               (MyTextsWrapperEnum.EAC_PRISON_MARCUSCELL_Description),
               null,
               this,
               new MyMissionID[] { MyMissionID.EAC_PRISON_SECURITYOFF },
               new MyMissionLocation(baseSector, (uint)EntityID.MarcusCellLocation),
               MyTextsWrapperEnum.HoldToMoveMarcus,
               MyTextsWrapperEnum.Actor_Marcus,
               MyTextsWrapperEnum.Moving,
               4000,
               MyUseObjectiveType.Taking
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudMarcus };
            approachMarcusCell.OnMissionLoaded += OnapproachMarcusLoaded;
            m_objectives.Add(approachMarcusCell);

            var marcusLoaded = new MyObjectiveDialog(
                MyMissionID.EAC_PRISON_MARCUSDIALOG,
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_MARCUSCELL },
                MyDialogueEnum.EAC_PRISON_1200
            ) { SaveOnSuccess = true };
            marcusLoaded.OnMissionLoaded += OnMarcusLoadedLoaded;
            m_objectives.Add(marcusLoaded);

            var weHaveCompany = new MyObjectiveDialog(
                MyMissionID.EAC_PRISON_WE_HAVE_COMPANY,
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_MARCUSDIALOG },
                MyDialogueEnum.EAC_PRISON_1250
            ) { SaveOnSuccess = false };
            weHaveCompany.OnMissionLoaded += OnWeHaveCompanyLoaded;
            m_objectives.Add(weHaveCompany);

            //12
            var findMarcusSmallShip = new MyUseObjective(
             (MyTextsWrapperEnum.EAC_PRISON_COVERMARCUS_Name),
             MyMissionID.EAC_PRISON_COVERMARCUS,
             (MyTextsWrapperEnum.EAC_PRISON_COVERMARCUS_Description),
               null,
               this,
               new MyMissionID[] { MyMissionID.EAC_PRISON_WE_HAVE_COMPANY },
               new MyMissionLocation(baseSector, (uint)EntityID.MarcusShipDetector),
               MyTextsWrapperEnum.HoldToMoveMarcus,
               MyTextsWrapperEnum.Actor_Marcus,
               MyTextsWrapperEnum.Moving,
               4000,
               MyUseObjectiveType.Putting
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudShip };

            // destroySolarDefence.OnMissionSuccess += ToHangarSubmissionSuccess;
            m_objectives.Add(findMarcusSmallShip);
            findMarcusSmallShip.OnMissionSuccess += OnSuccesfindMarcusSmallShip;

            //13
            var equipMarcus = new MyUseObjective(
             (MyTextsWrapperEnum.EAC_PRISON_GETARMS_Name),
             MyMissionID.EAC_PRISON_GETARMS,
             (MyTextsWrapperEnum.EAC_PRISON_GETARMS_Description),
                   null,
                   this,
                   new MyMissionID[] { MyMissionID.EAC_PRISON_COVERMARCUS },
                   new MyMissionLocation(baseSector, (uint)EntityID.CargoForMarcus),
                   MyTextsWrapperEnum.HoldToMoveWeapons,
                   MyTextsWrapperEnum.Actor_Marcus,
                   MyTextsWrapperEnum.Moving,
                   4000
             ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudEquipment };

            // destroySolarDefence.OnMissionSuccess += ToHangarSubmissionSuccess;
            m_objectives.Add(equipMarcus);
            equipMarcus.OnMissionSuccess += OnEquipMarcussSucces;
            equipMarcus.OnMissionLoaded += EquipMarcusOnOnMissionLoaded;

            //14
            var fightOutStation = new MyObjective(
                    (MyTextsWrapperEnum.EAC_PRISON_FIGHTOUT_Name),
                MyMissionID.EAC_PRISON_FIGHTOUT,
                (MyTextsWrapperEnum.EAC_PRISON_FIGHTOUT_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_GETARMS },
                new MyMissionLocation(baseSector, (uint)EntityID.StationDummy)
            ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_1300, SuccessDialogId = MyDialogueEnum.EAC_PRISON_1400, HudName = MyTextsWrapperEnum.Nothing };
            fightOutStation.OnMissionLoaded += fightOutStation_OnMissionLoaded;
            fightOutStation.OnMissionSuccess += fightOutStation_OnMissionSuccess;
            m_objectives.Add(fightOutStation);

            //15
            var CrushRemainingShips = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.EAC_PRISON_CRUSHREINFORCEMENTS_Name),
                MyMissionID.EAC_PRISON_CRUSHREINFORCEMENTS,
                (MyTextsWrapperEnum.EAC_PRISON_CRUSHREINFORCEMENTS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_FIGHTOUT },
                new List<uint> { },         // entities needed to kill
                m_15toKillSpawnpoints,  // spawnpoint from which bots must be killed
                false                       // don't show marks on entities (not from spawnpoint)
            ) { SaveOnSuccess = true, };
            m_objectives.Add(CrushRemainingShips);
            
            //16
            var GetToMeetingPoint = new MyObjective(
                (MyTextsWrapperEnum.EAC_PRISON_MEETINGPOINT_Name),
                MyMissionID.EAC_PRISON_MEETINGPOINT,
                (MyTextsWrapperEnum.EAC_PRISON_MEETINGPOINT_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_PRISON_CRUSHREINFORCEMENTS },
                new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR),
                radiusOverride: MyMissionLocation.MADELYN_HANGAR_RADIUS
              ) { SaveOnSuccess = true, StartDialogId = MyDialogueEnum.EAC_PRISON_1500, SuccessDialogId = MyDialogueEnum.EAC_PRISON_1600, HudName = MyTextsWrapperEnum.HudMeetingPoint };
            m_objectives.Add(GetToMeetingPoint);
            
        }