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 MyReichstagCMission()
        {
            ID = MyMissionID.REICHSTAG_C; /* ID must be added to MyMissions.cs */
            DebugName = new StringBuilder("18c-Reichstag C");
            Name = MyTextsWrapperEnum.REICHSTAG_C;
            Description = MyTextsWrapperEnum.REICHSTAG_C_Description;
            Flags = MyMissionFlags.Story;
            AchievementName = MySteamAchievementNames.Mission27_Reichstag2;

            MyMwcVector3Int baseSector = new MyMwcVector3Int(-2325831, 0, -7186381);

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

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

            m_objectives = new List<MyObjective>();


            var MeetSubmission = new MyMeetObjective(
                 (MyTextsWrapperEnum.REICHSTAG_C_FOR_Name),
                MyMissionID.REICHSTAG_C_FOR,
                (MyTextsWrapperEnum.REICHSTAG_C_FOR_Description),
                this,
                new MyMissionID[] { },
                null,
                (uint)EntityID.Bot_WaltherStauffenberg,
                100,
                0.25f,
                null
               ) { SaveOnSuccess = true, FollowMe = false };
          /*  MeetSubmission.OnMissionSuccess += MeetSubmissionSuccess;
            MeetSubmission.OnMissionLoaded += MeetSubmissionLoaded;*/
            m_objectives.Add(MeetSubmission);

            var colonelDialogue = new MyObjectiveDialog(
                MyMissionID.REICHSTAG_C_COLONEL_DIALOGUE,
                null,
                this,
                new MyMissionID[] {MyMissionID.REICHSTAG_C_FOR },
                dialogId: MyDialogueEnum.REICHSTAG_C_0100_OFFICER_TALK
                ) { SaveOnSuccess = true };
            m_objectives.Add(colonelDialogue);

            var goToShipyard = new MyMeetObjective(
                (MyTextsWrapperEnum.REICHSTAG_C_GO_TO_SHIPYARD_Name),
                MyMissionID.REICHSTAG_C_GO_TO_SHIPYARD,
                (MyTextsWrapperEnum.REICHSTAG_C_GO_TO_SHIPYARD_Description),
                this,
                new MyMissionID[] { MyMissionID.REICHSTAG_C_COLONEL_DIALOGUE },
                null,
                (uint)EntityID.Bot_ShipyardOfficer,
                100,
                0.25f,
                null,
                startDialogueId: MyDialogueEnum.REICHSTAG_C_0200_ON_THE_WAY
               ) { SaveOnSuccess = true, FollowMe = false };
            m_objectives.Add(goToShipyard);
            goToShipyard.OnMissionLoaded += GoToShipyardLoaded;

            var talkToSupplyOfficer = new MyObjectiveDialog(
                MyMissionID.REICHSTAG_C_TALK_TO_SUPPLY_OFFICER,
                null,
                this,
                new MyMissionID[] { MyMissionID.REICHSTAG_C_GO_TO_SHIPYARD },
                dialogId: MyDialogueEnum.REICHSTAG_C_0400_SUPPLY_OFFICER
                ) { SaveOnSuccess = true };
            m_objectives.Add(talkToSupplyOfficer);

            var ChangeShip = new MyUseObjective(
                (MyTextsWrapperEnum.REICHSTAG_C_CHANGESHIP_Name),
                MyMissionID.REICHSTAG_C_CHANGESHIP,
                (MyTextsWrapperEnum.REICHSTAG_C_CHANGESHIP_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.REICHSTAG_C_TALK_TO_SUPPLY_OFFICER },
                new MyMissionLocation(baseSector, (uint)EntityID.Bot_Disabled_03),
                MyTextsWrapperEnum.PressToBoardShip,
                MyTextsWrapperEnum.Ship,
                MyTextsWrapperEnum.BoardingInProgress,
                3000,
                radiusOverride:30,
                startDialogId: MyDialogueEnum.REICHSTAG_C_0500_REACHING_SHIPS
            );
            m_objectives.Add(ChangeShip);
            ChangeShip.OnMissionSuccess += ChangeShipOnOnMissionSuccess;

            var ShipChangedDialogue = new MyObjectiveDialog(
                MyMissionID.REICHSTAG_C_SHIP_CHANGED_DIALOGUE,
                null,
                this,
                new MyMissionID[] { MyMissionID.REICHSTAG_C_CHANGESHIP },
                dialogId: MyDialogueEnum.REICHSTAG_C_0600_SHIPS_PICKUPED
                ) { SaveOnSuccess = true };
            m_objectives.Add(ShipChangedDialogue);
           
            var GetArmed  = new MyObjectiveEnterInventory(
                (MyTextsWrapperEnum.REICHSTAG_C_WEAPONS_Name),
                MyMissionID.REICHSTAG_C_WEAPONS,
                (MyTextsWrapperEnum.REICHSTAG_C_WEAPONS_Description),
                null,
                this,
                new MyMissionID[] { MyMissionID.REICHSTAG_C_SHIP_CHANGED_DIALOGUE },
                (uint)EntityID.Objective_Shipchange,
                successDialogId: MyDialogueEnum.REICHSTAG_C_0800_SHOPPING_FINISHED
            );
            m_objectives.Add(GetArmed);
            GetArmed.OnMissionLoaded += GetArmedLoaded;

            var MeetTransporterCaptain = new MyMeetObjective(
                (MyTextsWrapperEnum.REICHSTAG_C_GO_TO_HANGAR_Name),
                MyMissionID.REICHSTAG_C_GO_TO_HANGAR,
                (MyTextsWrapperEnum.REICHSTAG_C_GO_TO_HANGAR_Description),
                this,
                new MyMissionID[] { MyMissionID.REICHSTAG_C_WEAPONS},
                null,
                (uint)EntityID.Bot_TransporterCaptain,
                100,
                0.25f,
                null
               ) { SaveOnSuccess = true, FollowMe = false };
            m_objectives.Add(MeetTransporterCaptain);

            var TalkToTransporterCaptain = new MyObjectiveDialog(
                MyMissionID.REICHSTAG_C_TRANSPORTER_CAPTAIN_DIALOGUE,
                null,
                this,
                new MyMissionID[] { MyMissionID.REICHSTAG_C_GO_TO_HANGAR },
                dialogId: MyDialogueEnum.REICHSTAG_C_0900_TRANSPORTER_REACHED
                ) { SaveOnSuccess = true };
            m_objectives.Add(TalkToTransporterCaptain);

            var GetWWMothership = new MyObjective(
                 (MyTextsWrapperEnum.REICHSTAG_C_MOTHERSHIP_Name),
                 MyMissionID.REICHSTAG_C_MOTHERSHIP,
                 (MyTextsWrapperEnum.REICHSTAG_C_MOTHERSHIP_Description),
                 null,
                 this,
                 new MyMissionID[] { MyMissionID.REICHSTAG_C_TRANSPORTER_CAPTAIN_DIALOGUE },
                 new MyMissionLocation(baseSector, (uint)EntityID.Objective_Mothership),
                 radiusOverride: 30
             ) { HudName = MyTextsWrapperEnum.HudMothership };
            m_objectives.Add(GetWWMothership);
        }