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); }
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); }
public static MissionHubServer SetGroupName(this MissionHubServer s, string name) { s.groupName = name; return(s); }
public static MissionHubServer SetThemeColor(this MissionHubServer s, Color color) { s.themeColor = color; return(s); }
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(); } } }