Esempio n. 1
0
        public MyRiftMission()
        {
            m_subShakeAction = new MyTimerActionDelegate(SubShake);
            m_farExplosionAction = new MyTimerActionDelegate(FarExplosion);
            
            ID = MyMissionID.RIFT; /* ID must be added to MyMissions.cs */
            DebugName = new StringBuilder("14-Rift");
            Name = Localization.MyTextsWrapperEnum.RIFT;
            Description = Localization.MyTextsWrapperEnum.RIFT_Description;
            Flags = MyMissionFlags.Story;
            AchievementName = MySteamAchievementNames.Mission21_Rift;

            MyMwcVector3Int baseSector = new MyMwcVector3Int(-56700, 0, 4276);

            Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation);

            RequiredMissions = new MyMissionID[] { MyMissionID.JUNKYARD_EAC_AMBUSH };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.RIFT_GOTO_30 };
            RequiredActors = new MyActorEnum[] { MyActorEnum.MADELYN, MyActorEnum.TARJA, MyActorEnum.VALENTIN };

            m_objectives = new List<MyObjective>();

            MySpawnpointSmartWaves spawnPointSmartWaves = new MySpawnpointSmartWaves(null, null, 2);

            var intro = new MyObjectiveDialog(
                MyMissionID.RIFT_INTRO,
                null,
                this,
                new MyMissionID[] { },
                MyDialogueEnum.RIFT_0050_INTRO
            )
            {
                SaveOnSuccess = true,
            };
            m_objectives.Add(intro);


            //Cannot see dialogues over inv.screen
            /*
            var getSupplies = new MyObjectiveEnterInventroy(
                new StringBuilder("Get supplies for the journey to the Rift"),
                MyMissionID.RIFT_GOTO_GETSUPPLIES1,
                new StringBuilder("Buy whatever useful."),
                null,
                this,
                new MyMissionID[] { MyMissionID.RIFT_INTRO },
                new List<uint>() {  (uint)EntityID.Objective_Vendor }
            )
            {
                SaveOnSuccess = true,
            };*/
            var getSupplies = new MyObjective(
                (MyTextsWrapperEnum.RIFT_GOTO_GETSUPPLIES1_Name),
                MyMissionID.RIFT_GOTO_GETSUPPLIES1,
                (MyTextsWrapperEnum.RIFT_GOTO_GETSUPPLIES1_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RIFT_INTRO },
                new MyMissionLocation(baseSector, (uint)EntityID.Objective_Vendor),
                radiusOverride: 30
            )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudSupplies
            };
            getSupplies.OnMissionSuccess += GetSuppliesSubmissionSuccess;
            getSupplies.OnMissionLoaded += GetSuppliesSubmissionLoaded;
            m_objectives.Add(getSupplies);

            var reachTheRiftSubmission = new MyObjective(
                (MyTextsWrapperEnum.RIFT_GOTO_10_Name),
                MyMissionID.RIFT_GOTO_10,
                (MyTextsWrapperEnum.RIFT_GOTO_10_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RIFT_GOTO_GETSUPPLIES1 },
                new MyMissionLocation(baseSector, (uint)EntityID.Objective_RiftEntraceLocation)
            )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudRift
            };
            reachTheRiftSubmission.OnMissionLoaded += ReachTheRiftSubmissionLoaded;
            reachTheRiftSubmission.OnMissionSuccess += ReachTheRiftSubmissionSuccess;
            m_objectives.Add(reachTheRiftSubmission);

            var getOreSubmission = new MyHarvestOreSubmission(
                (MyTextsWrapperEnum.RIFT_URANITE_Name),
                MyMissionID.RIFT_URANITE,
                (MyTextsWrapperEnum.RIFT_URANITE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RIFT_GOTO_10 },
                new MyMissionLocation(baseSector, (uint)EntityID.Objective_Uranite),
                MyMwcObjectBuilder_Ore_TypesEnum.URANITE,
                URANITE_TO_OBTAIN,
                successDialogId: MyDialogueEnum.RIFT_1000_MINING_DONE
            )
            {
                SaveOnSuccess = true
            };
            getOreSubmission.Components.Add(spawnPointSmartWaves);
            getOreSubmission.OnMissionLoaded += GetOreSubmissionLoaded;
            getOreSubmission.OnMissionSuccess += GetOreSubmissionSuccess;
            m_objectives.Add(getOreSubmission);

            var returnToMothershipSubmission = new MyObjective(
                (MyTextsWrapperEnum.RIFT_GOTO_30_Name),
                MyMissionID.RIFT_GOTO_30,
                (MyTextsWrapperEnum.RIFT_GOTO_30_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.RIFT_URANITE },
                new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR),
                radiusOverride: MyMissionLocation.MADELYN_HANGAR_RADIUS
            )
            {
                SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudMadelynsSapho
            };
            returnToMothershipSubmission.OnMissionLoaded += ReturnSubmissionLoaded;
            returnToMothershipSubmission.OnMissionSuccess += ReturnSubmissionSuccess;
            m_objectives.Add(returnToMothershipSubmission);

            //m_subShakeAction = SubShake;
            //m_farExplosionAction = FarExplosion;
        }
        public MyEACSurveySiteMission()
        {
            m_subShakeAction = new MyTimerActionDelegate(SubShake);
            m_farExplosionAction = new MyTimerActionDelegate(FarExplosion);

            ID = MyMissionID.EAC_SURVEY_SITE; /* ID must be added to MyMissions.cs */
            DebugName = new StringBuilder("01-EAC survey site");
            Name = MyTextsWrapperEnum.EAC_SURVEY_SITE;
            Description = MyTextsWrapperEnum.EAC_SURVEY_SITE_Description;
            Flags = MyMissionFlags.Story;
            AchievementName = MySteamAchievementNames.Mission01_EacSS;

            MyMwcVector3Int baseSector = new MyMwcVector3Int(-913818, 0, -790076);

            /* sector where the mission is located */
            Location = new MyMissionLocation(baseSector, (uint)EntityID.StartLocation);
            //m_Shaft7 = new MyMissionLocation(baseSector, (uint)EntityID.FollowDetector);
            RequiredMissions = new MyMissionID[] { };
            RequiredMissionsForSuccess = new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_90 };
            RequiredActors = new MyActorEnum[] { MyActorEnum.MARCUS, MyActorEnum.MADELYN };

            this.OnMissionSuccess += new MissionHandler(MyEACSurveySiteMission_OnMissionSuccess);
            
            m_objectives = new List<MyObjective>();

     
            /*
            m_followSubmission = new MyObjective(
                new StringBuilder("Follow Marcus to the mines"),
                MyMissionID.EAC_SURVEY_SITE_FOLLOWMARCUS_1,
                new StringBuilder("Another boring day...\n"),
                null,
                this,
                new MyMissionID[] { },
                null,
                successDialogId: MyDialogueEnum.EAC_SURVEY_SITE_0200_ACTIONSTARTS
            ) { SaveOnSuccess = true };
            m_followSubmission.OnMissionLoaded += FollowSubmission_OnMissionLoaded;
            m_followSubmission.OnMissionSuccess += FollowSubmissionSuccess;
            m_followSubmission.OnMissionUpdate += FollowSubmission_OnMissionUpdate;

            m_objectives.Add(m_followSubmission);
              */
            var redHubSubmission = new MyObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_10_Name),
                MyMissionID.EAC_SURVEY_SITE_GOTO_10,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_10_Description),
                null,
                this,
                new MyMissionID[] { },
                new MyMissionLocation(baseSector, (uint)EntityID.RedHubSubmissionLocation)
            ) { HudName = MyTextsWrapperEnum.Nothing };
            redHubSubmission.OnMissionLoaded += RedHubLoaded;
            m_objectives.Add(redHubSubmission);

                        
            m_spawnPointSmartWaves = new MySpawnpointSmartWaves(
                new uint[] 
                {
                    (uint)EntityID.SpawnPointPipe1,
                    (uint)EntityID.SpawnPointPipe2,
                    (uint)EntityID.SpawnPointPipe3,
                    (uint)EntityID.SpawnPointPipe4,
                    (uint)EntityID.SpawnPointEnemyStream01,
                    (uint)EntityID.SpawnPointEnemyStream02,
                    (uint)EntityID.SpawnPointEnemyStream03,
                },
               new uint[] { (uint)EntityID.SpawnPointCrazyRussian }
               , MAX_ANNOYING_BOTS);

            Components.Add(m_spawnPointSmartWaves);

            m_barricadeSubmission = new MyObjectiveDestroy(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_CLEAR_THE_WAY_Name),
                MyMissionID.EAC_SURVEY_SITE_CLEAR_THE_WAY,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_CLEAR_THE_WAY_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_10 },
                m_barricade
            ) { HudName = MyTextsWrapperEnum.Nothing };
            m_barricadeSubmission.OnMissionLoaded += BarricadeLoaded;
            m_barricadeSubmission.OnMissionSuccess += BarricadeSuccess;
            m_objectives.Add(m_barricadeSubmission);

            m_toTheBaseSubmission = new MyObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_30_Name),
                MyMissionID.EAC_SURVEY_SITE_GOTO_30,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_30_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_CLEAR_THE_WAY },
                new MyMissionLocation(baseSector, (uint)EntityID.ToTheBaseSubmissionLocation)
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudMainBase };
            m_toTheBaseSubmission.OnMissionLoaded += ToTheBaseLoaded;
            m_objectives.Add(m_toTheBaseSubmission);


            var commandCentreSubmission = new MyObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_40_Name),
                MyMissionID.EAC_SURVEY_SITE_GOTO_40,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_40_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_30 },
                new MyMissionLocation(baseSector, (uint)EntityID.CommandCentreSubmissionLocation),
                successDialogId: MyDialogueEnum.EAC_SURVEY_SITE_0550_COMMANDOFFLINE
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudCommandCenter };
            commandCentreSubmission.OnMissionLoaded += CommandCenterLoaded;// CommandCentreSubmissionSuccess;
            m_objectives.Add(commandCentreSubmission);

            m_generatorSubmission = new MyObjectiveEnablePrefabs(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GENERATOR_Name),
               MyMissionID.EAC_SURVEY_SITE_GENERATOR,
               (MyTextsWrapperEnum.EAC_SURVEY_SITE_GENERATOR_Description),
               null,
               this,
               new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_40 },
               new MyMissionLocation(baseSector, (uint)EntityID.GaneratorHUB),
               new List<uint>() { (uint)EntityID.Generator1, (uint)EntityID.Generator2, (uint)EntityID.Generator3, (uint)EntityID.Generator4 },
               new List<uint>() { (uint)EntityID.Generator1, (uint)EntityID.Generator2, (uint)EntityID.Generator3, (uint)EntityID.Generator4 }
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudHub };
           // m_generatorSubmission = new MyUseObjective(
           //    new StringBuilder("Start the generator"),
           //    MyMissionID.EAC_SURVEY_SITE_GENERATOR,
           //    new StringBuilder("An auxiliary generator is near the workshop.\n"),
           //    null,
           //    this,
           //    new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_40 },
           //    new MyMissionLocation(baseSector, (uint)EntityID.GeneratorSubmissionLocation),
           //    MyTextsWrapperEnum.PressToStartGenerator,
           //    MyTextsWrapperEnum.Generator,
           //    MyTextsWrapperEnum.StartingProgress,
           //    5000,
           //    MyUseObjectiveType.Activating
           //) { SaveOnSuccess = true };
            m_generatorSubmission.OnMissionLoaded += GeneratorLoaded;// GeneratorSubmissionSuccess;
            m_generatorSubmission.OnMissionSuccess += GeneratorSuccess;
            m_objectives.Add(m_generatorSubmission);


            var commandCentreAgainSubmission = new MyObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_60_Name),
                MyMissionID.EAC_SURVEY_SITE_GOTO_60,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_60_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GENERATOR },
                new MyMissionLocation(baseSector, (uint)EntityID.CommandCentreSubmissionLocation),
                successDialogId: MyDialogueEnum.EAC_SURVEY_SITE_0700_MADELYN
            ) { HudName = MyTextsWrapperEnum.HudCommandCenter };
            commandCentreAgainSubmission.OnMissionLoaded += CommandCenterAgainLoaded;// CommandCentreAgainSubmissionSuccess;
            m_objectives.Add(commandCentreAgainSubmission);

            m_optionalSaveMinersAccept = new MyObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_65_Name),
                MyMissionID.EAC_SURVEY_SITE_GOTO_65,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_65_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_60 },
                new MyMissionLocation(baseSector, (uint)EntityID.OptionalSaveMinersAcceptLocation)
            ) { HudName = MyTextsWrapperEnum.Nothing };
            m_optionalSaveMinersAccept.OnMissionSuccess += OptionalSaveMinersAcceptSubmissionSuccess;
            m_optionalSaveMinersAccept.OnMissionLoaded += OptionalSaveMinersAcceptSubmissionLoaded;
            m_objectives.Add(m_optionalSaveMinersAccept);

            m_optionalSaveMiners = new MyObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_SAVEMINERS_Name),
                MyMissionID.EAC_SURVEY_SITE_SAVEMINERS,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_SAVEMINERS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_65 },
                new MyMissionLocation(baseSector, (uint)EntityID.OptionalSaveMinersLocation)
            ) { HudName = MyTextsWrapperEnum.HudMiners };
            m_optionalSaveMiners.OnMissionSuccess += OptionalSaveMinersSubmissionSuccess;
            m_objectives.Add(m_optionalSaveMiners);


            var hangarSubmission = new MyObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_70_Name),
                MyMissionID.EAC_SURVEY_SITE_GOTO_70,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_70_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_SAVEMINERS },
                new MyMissionLocation(baseSector, (uint)EntityID.HangarSubmissionLocation)
            ) { SaveOnSuccess = true, HudName = MyTextsWrapperEnum.HudHangar };
            hangarSubmission.OnMissionLoaded += HangarLoaded; // HangarSubmissionSuccess;
            m_objectives.Add(hangarSubmission);





            m_hangarLastStand = new MyTimedObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_SURVIVE_Name),
                MyMissionID.EAC_SURVEY_SITE_SURVIVE,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_SURVIVE_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_70 },
                new TimeSpan(0, 3, 0)
            ) { SaveOnSuccess = true };
            m_hangarLastStand.OnMissionLoaded += HangarLastStandLoaded;// Survived;
            m_objectives.Add(m_hangarLastStand);

                           /*
            var TurretsRightSubmission = new MyObjectiveEnablePrefabs(
               new StringBuilder("Activate the turrets"),
               MyMissionID.EAC_SURVEY_SITE_TURRETS_RIGHT,
               new StringBuilder(""),
               null,
               this,
               new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_70 },
               new MyMissionLocation(baseSector, (uint)EntityID.Right_Generator),
               null,
               new List<uint>() { (uint)EntityID.Right_Generator }
           ) { ShowAsOptional = true };
                            
            TurretsRightSubmission.OnMissionSuccess += TurretsRightSuccess;// TurretsRightSubmissionSuccess;
            m_objectives.Add(TurretsRightSubmission);

            var TurretsLeftSubmission = new MyObjectiveEnablePrefabs(
               new StringBuilder("Activate the turrets"),
               MyMissionID.EAC_SURVEY_SITE_TURRETS_LEFT,
               new StringBuilder(""),
               null,
               this,
               new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_GOTO_70 },
               new MyMissionLocation(baseSector, (uint)EntityID.Left_Generator),
               null,
               new List<uint>() { (uint)EntityID.Left_Generator }
           ) { ShowAsOptional = true };
            TurretsLeftSubmission.OnMissionSuccess += TurretLeftSuccess;// TurretsLeftSubmissionSuccess;
            m_objectives.Add(TurretsLeftSubmission);
                            */


            var hangarEscape = new MyObjective(
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_90_Name),
                MyMissionID.EAC_SURVEY_SITE_GOTO_90,
                (MyTextsWrapperEnum.EAC_SURVEY_SITE_GOTO_90_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.EAC_SURVEY_SITE_SURVIVE },
                //new MyMissionLocation(baseSector, (uint)EntityID.HangerEscapeLocation)
                new MyMissionLocation(baseSector, MyMissionLocation.MADELYN_HANGAR),
                radiusOverride: MyMissionLocation.MADELYN_HANGAR_RADIUS
            ) { HudName = MyTextsWrapperEnum.HudMadelynsSapho };
            hangarEscape.OnMissionLoaded += HangarEscapeLoaded;
            m_objectives.Add(hangarEscape);

            m_subShakeAction = SubShake;
            m_farExplosionAction = FarExplosion;
        }