예제 #1
0
        public MyBarthsMoonConvinceMission()
            : base(
                MyMissionID.BARTHS_MOON_CONVINCE,
                new StringBuilder("03-Barth's moon convince"),
                MyTextsWrapperEnum.BARTHS_MOON_CONVINCE,
                MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_Description,
                new MyMissionID[] { MyMissionID.LAIKA },
                new EntityID[] {},
                EntityID.PlayerStartLocationConvince
                )
        {
            RequiredMissions           = new MyMissionID[] { MyMissionID.LAIKA };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_RETURN_BACK_TO_MADELYN };
            RequiredActors             = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN };
            AchievementName            = MySteamAchievementNames.Mission03_Barths;

            m_objectives = new List <MyObjective>();

            var meetThomasBarth = new MyObjective(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_MEET_THOMAS_BART_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_MEET_THOMAS_BART,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_MEET_THOMAS_BART_Description),
                null,
                this,
                new MyMissionID[] {},
                new MyMissionLocation(baseSector, (uint)EntityID.ThomasBartId),
                startDialogId: MyDialogueEnum.BARTHS_MOON_CONVINCE_0100,
                radiusOverride: 50
                )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudBarth
            };

            meetThomasBarth.OnMissionLoaded  += MeetThomasBarthOnLoaded;
            meetThomasBarth.OnMissionCleanUp += MeetThomasBarthOnUnload;
            m_objectives.Add(meetThomasBarth);

            var talkWithThomasBarth = new MyBarthsMoonSubmissionTalkWithThomasBarth(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_TALK_WITH_THOMAS_BART_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_TALK_WITH_THOMAS_BART,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_TALK_WITH_THOMAS_BART_Description),
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_MEET_THOMAS_BART },
                MyDialogueEnum.BARTHS_MOON_CONVINCE_0300,
                true
                )
            {
                SaveOnSuccess = false
            };

            m_objectives.Add(talkWithThomasBarth);

            var flyToEnemyBase = new MyObjective(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_FLY_TO_ENEMY_BASE_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_FLY_TO_ENEMY_BASE,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_FLY_TO_ENEMY_BASE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_TALK_WITH_THOMAS_BART },
                new MyMissionLocation(baseSector, (uint)EntityID.FlyToEnemyBaseSubmissionLocation),
                null,
                successDialogId: MyDialogueEnum.BARTHS_MOON_CONVINCE_0500,
                startDialogId: MyDialogueEnum.BARTHS_MOON_CONVINCE_0400
                )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudEnemyBase
            };

            flyToEnemyBase.OnMissionLoaded  += FlyToEnemyBaseOnLoaded;
            flyToEnemyBase.OnMissionCleanUp += FlyToEnemyBaseOnCleanUp;
            m_objectives.Add(flyToEnemyBase);

            var destroyShipSubmission = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_DESTROY_SHIP_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_DESTROY_SHIP,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_DESTROY_SHIP_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_FLY_TO_ENEMY_BASE },
                new List <uint>()
            {
                (uint)EntityID.ShipGenerator
            },
                new List <uint>()
            {
            },
                startDialogID: MyDialogueEnum.BARTHS_MOON_CONVINCE_0600
                )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudGenerator
            };

            destroyShipSubmission.OnMissionLoaded += DestroyShipSubmissionOnLoad;
            m_objectives.Add(destroyShipSubmission);

            var destroyGeneratorSubmission = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_DESTROY_GENERATOR_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_DESTROY_GENERATOR,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_DESTROY_GENERATOR_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_DESTROY_SHIP },
                new List <uint>() /*(uint)EntityID.BaseGenerator,*/ (
            {
                uint)EntityID.MainSmallShip
            },
        public MyBarthsMoonConvinceMission()
            : base(
            MyMissionID.BARTHS_MOON_CONVINCE,
            new StringBuilder("03-Barth's moon convince"), 
            MyTextsWrapperEnum.BARTHS_MOON_CONVINCE,
            MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_Description,
            new MyMissionID[] { MyMissionID.LAIKA }, 
            new EntityID[]{},
            EntityID.PlayerStartLocationConvince
            )
        {
            RequiredMissions = new MyMissionID[] { MyMissionID.LAIKA };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_RETURN_BACK_TO_MADELYN };
            RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN };
            AchievementName = MySteamAchievementNames.Mission03_Barths;
            
            m_objectives = new List<MyObjective>();

            var meetThomasBarth = new MyObjective(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_MEET_THOMAS_BART_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_MEET_THOMAS_BART,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_MEET_THOMAS_BART_Description),
                null,
                this,
                new MyMissionID[] {},
                new MyMissionLocation(baseSector, (uint)EntityID.ThomasBartId),
                startDialogId: MyDialogueEnum.BARTHS_MOON_CONVINCE_0100, 
                radiusOverride: 50
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudBarth };
            meetThomasBarth.OnMissionLoaded += MeetThomasBarthOnLoaded;
            meetThomasBarth.OnMissionCleanUp += MeetThomasBarthOnUnload;
            m_objectives.Add(meetThomasBarth);

            var talkWithThomasBarth = new MyBarthsMoonSubmissionTalkWithThomasBarth(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_TALK_WITH_THOMAS_BART_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_TALK_WITH_THOMAS_BART,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_TALK_WITH_THOMAS_BART_Description),
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_MEET_THOMAS_BART },
                MyDialogueEnum.BARTHS_MOON_CONVINCE_0300,
                true
            ) { SaveOnSuccess = false };
            m_objectives.Add(talkWithThomasBarth);

            var flyToEnemyBase = new MyObjective(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_FLY_TO_ENEMY_BASE_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_FLY_TO_ENEMY_BASE,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_FLY_TO_ENEMY_BASE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_TALK_WITH_THOMAS_BART },
                new MyMissionLocation(baseSector, (uint)EntityID.FlyToEnemyBaseSubmissionLocation),
                null,
                successDialogId: MyDialogueEnum.BARTHS_MOON_CONVINCE_0500,
                startDialogId: MyDialogueEnum.BARTHS_MOON_CONVINCE_0400
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudEnemyBase };
            flyToEnemyBase.OnMissionLoaded += FlyToEnemyBaseOnLoaded;
            flyToEnemyBase.OnMissionCleanUp += FlyToEnemyBaseOnCleanUp;
            m_objectives.Add(flyToEnemyBase);

            var destroyShipSubmission = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_DESTROY_SHIP_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_DESTROY_SHIP,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_DESTROY_SHIP_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_FLY_TO_ENEMY_BASE },
                new List<uint>() { (uint)EntityID.ShipGenerator },
                new List<uint>() {},
                startDialogID: MyDialogueEnum.BARTHS_MOON_CONVINCE_0600
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudGenerator };
            destroyShipSubmission.OnMissionLoaded += DestroyShipSubmissionOnLoad;
            m_objectives.Add(destroyShipSubmission);

            var destroyGeneratorSubmission = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_DESTROY_GENERATOR_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_DESTROY_GENERATOR,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_DESTROY_GENERATOR_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_DESTROY_SHIP },
                new List<uint>() { /*(uint)EntityID.BaseGenerator,*/ (uint)EntityID.MainSmallShip },
                new List<uint>() { /*(uint)EntityID.EngineSpawnpoint, (uint)EntityID.EngineSpawnpoint2, */(uint)EntityID.CaveSpawnpoint1, (uint)EntityID.CaveSpawnpoint2, (uint)EntityID.CaveSpawnpoint3, (uint)EntityID.CaveSpawnpoint4 },
                showMarks: false
            ) { SaveOnSuccess = true };
            destroyGeneratorSubmission.OnMissionLoaded += DestroyGeneratorSubmissionOnLoad;
            destroyGeneratorSubmission.OnMissionSuccess += new MissionHandler(destroyGeneratorSubmission_OnMissionSuccess);
            m_objectives.Add(destroyGeneratorSubmission);
            
            var findTransmitterSubmission = new MyUseObjective(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_FIND_TRANSMITTER_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_FIND_TRANSMITTER,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_FIND_TRANSMITTER_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_DESTROY_GENERATOR },
                new MyMissionLocation(baseSector, (uint)EntityID.TakeTransmitterDummy),
                MyTextsWrapperEnum.PressToCollectReward,
                MyTextsWrapperEnum.Reward,
                MyTextsWrapperEnum.TransferInProgress,
                3000
            ) { SaveOnSuccess = true };

            findTransmitterSubmission.OnMissionLoaded += FindTransmitterSubmissionOnMissionLoaded;
            findTransmitterSubmission.OnMissionSuccess += FindTransmitterSubmissionOnSuccess;
            m_objectives.Add(findTransmitterSubmission);

            /*
            var flyBackSubmission = new MyBarthsMoonSubmissionTalkWithThomasBarth(
                new StringBuilder("Fly back to Barth"),
                MyMissionID.BARTHS_MOON_CONVINCE_FLY_BACK_TO_BARTH,
                new StringBuilder(""),
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_FIND_TRANSMITTER },
                null,
                false
            ) { SaveOnSuccess = false };
            flyBackSubmission.OnMissionLoaded += FlyBackSubmissionOnLoaded;
            flyBackSubmission.OnMissionCleanUp += FlyBackSubmissionOnCleanUp;
            m_objectives.Add(flyBackSubmission);
            */
            
            var backToMadelyn = new MyObjective(
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_RETURN_BACK_TO_MADELYN_Name),
                MyMissionID.BARTHS_MOON_CONVINCE_RETURN_BACK_TO_MADELYN,
                (MyTextsWrapperEnum.BARTHS_MOON_CONVINCE_RETURN_BACK_TO_MADELYN_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.BARTHS_MOON_CONVINCE_FIND_TRANSMITTER },
                new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR),
                startDialogId: MyDialogueEnum.BARTHS_MOON_CONVINCE_0700,
                radiusOverride: MyMissionLocation.MADELYN_HANGAR_RADIUS
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudMadelynsSapho };
            m_objectives.Add(backToMadelyn);
        }