Beispiel #1
0
        public static MissionHubServer AddMission(this MissionHubServer s, ActiveMission m, bool insertTop = false, bool preventRegistryChange = false, int desiredIndex = -1)
        {
            if (insertTop && desiredIndex <= -1)
            {
                desiredIndex = 0;
            }
            s.contractRegistryNumber += Utils.getRandomByte() + 1;
            s.listingMissions.Add(string.Concat(s.contractRegistryNumber), m);
            var item = new FileEntry(MissionSerializer.generateMissionFile(m, s.contractRegistryNumber, s.groupName), "Contract#" + s.contractRegistryNumber);

            if (insertTop || desiredIndex >= 0)
            {
                s.listingsFolder.files.Insert(desiredIndex, item);
            }
            else
            {
                s.listingsFolder.files.Add(item);
            }
            var inst = m as Instance;

            if (inst != null)
            {
                inst.MissionComputer = s.comp;
            }
            return(s);
        }
Beispiel #2
0
        public static MissionHubServer CreateMissionHubDaemon(this Computer c, string serviceName, OS os = null)
        {
            var s = new MissionHubServer(c, serviceName, serviceName, os ?? Utility.ClientOS);

            c.daemons.Add(s);
            return(s);
        }
Beispiel #3
0
 public static MissionHubServer SetGroupName(this MissionHubServer s, string name)
 {
     s.groupName = name;
     return(s);
 }
Beispiel #4
0
 public static MissionHubServer SetThemeColor(this MissionHubServer s, Color color)
 {
     s.themeColor = color;
     return(s);
 }
Beispiel #5
0
        public override void addValue(int value, object os)
        {
            int playerValue = this.playerValue;

            base.addValue(value, os);
            if (this.valuePassedPoint(playerValue, 1) && !((OS)os).Flags.HasFlag("themeChangerAdded"))
            {
                Folder folder1 = Programs.getComputer((OS)os, "mainHubAssets").files.root.searchForFolder("bin");
                Folder folder2 = new Folder("ThemeChanger");
                folder2.files.Add(new FileEntry(PortExploits.crackExeData[14], "ThemeChanger.exe"));
                string dataEntry = Utils.readEntireFile("Content/LocPost/ThemeChangerReadme.txt");
                folder2.files.Add(new FileEntry(dataEntry, "info.txt"));
                folder1.folders.Add(folder2);
                ((OS)os).delayer.Post(ActionDelayer.Wait(1.0), (Action)(() =>
                {
                    this.SendAssetAddedNotification(os);
                    ((OS)os).Flags.AddFlag("themeChangerAdded");
                    ((OS)os).saveGame();
                }));
            }
            if (this.valuePassedPoint(playerValue, 4))
            {
                ((OS)os).delayer.Post(ActionDelayer.Wait(2.0), (Action)(() =>
                {
                    ((MissionHubServer)Programs.getComputer((OS)os, "mainHub").getDaemon(typeof(MissionHubServer))).AddMissionToListings("Content/Missions/MainHub/BitSet/Missions/BitHubSet01.xml", -1);
                    ((OS)os).saveGame();
                }));
            }
            else if (this.playerValue >= 7 && ((OS)os).Flags.HasFlag("decypher") && ((OS)os).Flags.HasFlag("dechead") && !((OS)os).Flags.HasFlag("csecRankingS2Pass"))
            {
                this.SendNotification(os, "Project Junebug");
                ((OS)os).Flags.AddFlag("csecRankingS2Pass");
                ((OS)os).saveGame();
            }
            else if (this.playerValue >= 10 && !((OS)os).Flags.HasFlag("bitPathStarted"))
            {
                MissionHubServer daemon = (MissionHubServer)Programs.getComputer((OS)os, "mainHub").getDaemon(typeof(MissionHubServer));
                if (daemon != null && daemon.GetNumberOfAvaliableMissions() > 0)
                {
                    return;
                }
                this.ForceStartBitMissions(os);
            }
            if (this.playerValue >= 2 && ((OS)os).Flags.HasFlag("dlc_complete") && DLC1SessionUpgrader.HasDLC1Installed && !((OS)os).Flags.HasFlag("dlc_post_missionadded"))
            {
                bool   flag             = false;
                string flagStartingWith = ((OS)os).Flags.GetFlagStartingWith("dlc_csec_end_facval");
                if (flagStartingWith != null)
                {
                    try
                    {
                        if (this.playerValue - Convert.ToInt32(flagStartingWith.Substring(flagStartingWith.IndexOf(":") + 1)) > 1)
                        {
                            flag = true;
                        }
                    }
                    catch (Exception ex)
                    {
                        Utils.AppendToErrorFile(Utils.GenerateReportFromException(ex));
                    }
                }
                else
                {
                    flag = true;
                }
                if (flag && ((OS)os).Flags.HasFlag("DLC_PlaneSaveResponseTriggered"))
                {
                    ((OS)os).Flags.AddFlag("dlc_post_missionadded");
                    MissionHubServer daemon1   = (MissionHubServer)Programs.getComputer((OS)os, "mainHub").getDaemon(typeof(MissionHubServer));
                    FileEntry        fileEntry = Programs.getComputer((OS)os, "dHidden").files.root.searchForFolder("home").searchForFile("PA_0022_Incident.dec");
                    Programs.getComputer((OS)os, "mainHubAssets").files.root.searchForFolder("home").files.Add(fileEntry);
                    daemon1.AddMissionToListings("Content/DLC/Missions/Injections/Missions/CSEC_Injection_Mission.xml", -1);
                    if (Programs.getComputer((OS)os, "dAttackHome").files.root.searchForFolder("home").searchForFolder("uni").files.Count == 0)
                    {
                        MailServer    daemon2     = ((OS)os).netMap.mailServer.getDaemon(typeof(MailServer)) as MailServer;
                        string        str         = Utils.readEntireFile("Content/DLC/Docs/StrikerLateEmail.txt");
                        int           num         = str.IndexOf("\n");
                        string        subject     = str.Substring(0, num).Trim();
                        string        body        = str.Substring(num, str.Length - num).Trim();
                        List <string> attachments = new List <string>();
                        if (Settings.ActiveLocale == "en-us")
                        {
                            attachments.Add("note#%#Important Extra Information#%#F**k you");
                        }
                        daemon2.addMail(MailServer.generateEmail(subject, body, "StrikeR", attachments), ((OS)os).defaultUser.name);
                    }
                    ((OS)os).saveGame();
                }
            }
        }