public List <Computer> generateGameNodes() { var list = new List <Computer>(); var computer1 = (Computer)ComputerLoader.loadComputer("Content/Missions/CoreServers/JMailServer.xml"); computer1.location = new Vector2(0.7f, 0.2f); mailServer = computer1; list.Add(computer1); var c1 = new Computer("boatmail.com", "65.55.72.183", new Vector2(0.6f, 0.9f), 4, 3, os); c1.idName = "boatmail"; c1.daemons.Add(new BoatMail(c1, "Boatmail", os)); c1.initDaemons(); list.Add(c1); var c2 = (Computer)ComputerLoader.loadComputer("Content/Missions/CoreServers/InternationalAcademicDatabase.xml"); var academicDatabaseDaemon = new AcademicDatabaseDaemon(c2, "Academic Databse", os); c2.daemons.Add(academicDatabaseDaemon); c2.initDaemons(); academicDatabaseDaemon.initFilesFromPeople(People.all); academicDatabase = c2; list.Add(c2); var computer2 = (Computer)ComputerLoader.loadComputer("Content/Missions/CoreServers/ContractHubAssetsComp.xml"); list.Add(computer2); var ch = (Computer)ComputerLoader.loadComputer("Content/Missions/CoreServers/ContractHubComp.xml"); os.delayer.Post(ActionDelayer.NextTick(), () => { ch.daemons.Add(new MissionHubServer(ch, "CSEC Contract Database", "CSEC", os)); ch.initDaemons(); }); list.Add(ch); computer2.location = ch.location + Corporation.getNearbyNodeOffset(ch.location, 1, 1, this); list.Add(new Computer("Cheater's Stash", "1337.1337.1337.1337", getRandomPosition(), 0, 2, os) { idName = "haxServer", files = { root = { files = { new FileEntry(PortExploits.crackExeData[PortExploits.portNums[0]], PortExploits.cracks[PortExploits.portNums[0]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[1]], PortExploits.cracks[PortExploits.portNums[1]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[2]], PortExploits.cracks[PortExploits.portNums[2]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[3]], PortExploits.cracks[PortExploits.portNums[3]]) } } } }); return(list); }
private void generateMailServer() { mailServer = new Computer(name + " Mail Server", getAddress(), getLocation(), baseSecurityLevel, 3, os); mailServer.daemons.Add(new MailServer(mailServer, name + " Mail", os)); mailServer.initDaemons(); mailServer.idName = baseID + "MS"; servers.Add(mailServer); }
private void generateFileServer() { fileServer = new Computer(name + " File Server", getAddress(), getLocation(), baseSecurityLevel, 3, os); fileServer.daemons.Add(new MissionListingServer(fileServer, "Mission Board", name, os, false, false)); fileServer.initDaemons(); fileServer.idName = baseID + "FS"; servers.Add(fileServer); }
public List <Computer> generateGameNodes() { List <Computer> computerList = new List <Computer>(); Computer computer1 = (Computer)ComputerLoader.loadComputer("Content/Missions/CoreServers/JMailServer.xml", false, false); computer1.location = new Vector2(0.7f, 0.2f); this.mailServer = computer1; computerList.Add(computer1); Computer c1 = new Computer("boatmail.com", "65.55.72.183", new Vector2(0.6f, 0.9f), 4, (byte)3, this.os); c1.idName = "boatmail"; c1.daemons.Add((Daemon) new BoatMail(c1, "Boatmail", this.os)); c1.initDaemons(); computerList.Add(c1); Computer c2 = (Computer)ComputerLoader.loadComputer("Content/Missions/CoreServers/InternationalAcademicDatabase.xml", false, false); AcademicDatabaseDaemon academicDatabaseDaemon = new AcademicDatabaseDaemon(c2, "Academic Database", this.os); c2.daemons.Add((Daemon)academicDatabaseDaemon); c2.initDaemons(); this.academicDatabase = c2; computerList.Add(c2); Computer computer2 = (Computer)ComputerLoader.loadComputer("Content/Missions/CoreServers/ContractHubAssetsComp.xml", false, false); computerList.Add(computer2); Computer ch = (Computer)ComputerLoader.loadComputer("Content/Missions/CoreServers/ContractHubComp.xml", false, false); this.os.delayer.Post(ActionDelayer.NextTick(), (Action)(() => { ch.daemons.Add((Daemon) new MissionHubServer(ch, "CSEC Contract Database", "CSEC", this.os)); ch.initDaemons(); })); computerList.Add(ch); computer2.location = ch.location + Corporation.getNearbyNodeOffset(ch.location, 1, 1, this, 0.0f, false); computerList.Add(new Computer("Cheater's Stash", "1337.1337.1337.1337", this.getRandomPosition(), 0, (byte)2, this.os) { idName = "haxServer", files = { root = { files = { new FileEntry(PortExploits.crackExeData[PortExploits.portNums[0]], PortExploits.cracks[PortExploits.portNums[0]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[1]], PortExploits.cracks[PortExploits.portNums[1]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[2]], PortExploits.cracks[PortExploits.portNums[2]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[3]], PortExploits.cracks[PortExploits.portNums[3]]), this.GetProgramForNum(1433), this.GetProgramForNum(104), this.GetProgramForNum(9), this.GetProgramForNum(13), this.GetProgramForNum(10) } } } }); return(computerList); }
private void generateWebServer() { webServer = new Computer(name + " Web Server", getAddress(), getLocation(), baseSecurityLevel, 3, os); var webServerDaemon = new WebServerDaemon(webServer, name + " Web Server", os, "Content/Web/BaseImageWebPage.html"); webServer.daemons.Add(webServerDaemon); webServer.initDaemons(); webServerDaemon.generateBaseCorporateSite(getFullName(), "Content/Web/BaseCorporatePage.html"); webServer.idName = baseID + "WS"; servers.Add(webServer); }
private static Computer addWebsiteChangeRequirements(Computer c, OS os) { WebServerDaemon webServerDaemon = new WebServerDaemon(c, MissionGenerationParser.Target + " Web Server", os, "Content/Web/BaseImageWebPage.html"); c.daemons.Add((Daemon)webServerDaemon); c.initDaemons(); if (MissionGenerator.customKeysWereSet && MissionGenerator.customFileData != null) { webServerDaemon.generateBaseCorporateSite(MissionGenerationParser.Target, MissionGenerator.customFileData); } else { webServerDaemon.generateBaseCorporateSite(MissionGenerationParser.Target, "Content/Web/BaseCorporatePage.html"); } MissionGenerationParser.File = "index.html"; MissionGenerationParser.Path = "web"; return(c); }
private static Computer addWebsiteChangeRequirements(Computer c, OS os) { var webServerDaemon = new WebServerDaemon(c, MissionGenerationParser.Target + " Web Server", os, "Content/Web/BaseImageWebPage.html"); c.daemons.Add(webServerDaemon); c.initDaemons(); if (customKeysWereSet && customFileData != null) webServerDaemon.generateBaseCorporateSite(MissionGenerationParser.Target, customFileData); else webServerDaemon.generateBaseCorporateSite(MissionGenerationParser.Target, "Content/Web/BaseCorporatePage.html"); MissionGenerationParser.File = "index.html"; MissionGenerationParser.Path = "web"; return c; }
private void generateWebServer() { webServer = new Computer(name + " Web Server", getAddress(), getLocation(), baseSecurityLevel, 3, os); var webServerDaemon = new WebServerDaemon(webServer, name + " Web Server", os, "Content/Web/BaseImageWebPage.html"); webServer.daemons.Add(webServerDaemon); webServer.initDaemons(); webServerDaemon.generateBaseCorporateSite(getFullName(), "Content/Web/BaseCorporatePage.html"); webServer.idName = baseID + "WS"; servers.Add(webServer); }
private void generateMailServer() { mailServer = new Computer(name + " Mail Server", getAddress(), getLocation(), baseSecurityLevel, 3, os); mailServer.daemons.Add(new MailServer(mailServer, name + " Mail", os)); mailServer.initDaemons(); mailServer.idName = baseID + "MS"; servers.Add(mailServer); }
private void generateFileServer() { fileServer = new Computer(name + " File Server", getAddress(), getLocation(), baseSecurityLevel, 3, os); fileServer.daemons.Add(new MissionListingServer(fileServer, "Mission Board", name, os, false, false)); fileServer.initDaemons(); fileServer.idName = baseID + "FS"; servers.Add(fileServer); }
public static object loadComputer(string filename) { var rdr = XmlReader.Create(TitleContainer.OpenStream(filename)); var str1 = "UNKNOWN"; var compName = "UNKNOWN"; string str2 = null; var seclevel = 0; byte compType = 1; var flag1 = true; var compIP = NetworkMap.generateRandomIP(); while (rdr.Name != "Computer") rdr.Read(); if (rdr.MoveToAttribute("id")) str1 = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("name")) compName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("security")) seclevel = rdr.ReadContentAsInt(); if (rdr.MoveToAttribute("type")) compType = (byte) rdr.ReadContentAsInt(); if (rdr.MoveToAttribute("ip")) compIP = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("icon")) str2 = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("allowsDefaultBootModule")) flag1 = rdr.ReadContentAsBoolean(); var computer1 = new Computer(compName, compIP, os.netMap.getRandomPosition(), seclevel, compType, os); computer1.idName = str1; computer1.AllowsDefaultBootModule = flag1; computer1.icon = str2; if (computer1.type == 4) { var folder = computer1.files.root.searchForFolder("home"); if (folder != null) { folder.files.Clear(); folder.folders.Clear(); } } while (rdr.Name != "Computer") { if (rdr.Name.Equals("file")) { var path = !rdr.MoveToAttribute("path") ? "home" : rdr.ReadContentAsString(); var str3 = filter(!rdr.MoveToAttribute("name") ? "Data" : rdr.ReadContentAsString()); var num = (int) rdr.MoveToContent(); var s = rdr.ReadElementContentAsString(); if (s.Equals("")) s = Computer.generateBinaryString(500); var dataEntry = filter(s); var folderFromPath = computer1.getFolderFromPath(path, true); if (folderFromPath.searchForFile(str3) != null) folderFromPath.searchForFile(str3).data = dataEntry; else folderFromPath.files.Add(new FileEntry(dataEntry, str3)); } if (rdr.Name.Equals("encryptedFile")) { var flag2 = false; var path = !rdr.MoveToAttribute("path") ? "home" : rdr.ReadContentAsString(); var s1 = !rdr.MoveToAttribute("name") ? "Data" : rdr.ReadContentAsString(); var header = !rdr.MoveToAttribute("header") ? "ERROR" : rdr.ReadContentAsString(); var ipLink = !rdr.MoveToAttribute("ip") ? "ERROR" : rdr.ReadContentAsString(); var pass = !rdr.MoveToAttribute("pass") ? "" : rdr.ReadContentAsString(); var fileExtension = !rdr.MoveToAttribute("extension") ? null : rdr.ReadContentAsString(); if (rdr.MoveToAttribute("double")) flag2 = rdr.ReadContentAsBoolean(); var str3 = filter(s1); var num = (int) rdr.MoveToContent(); var s2 = rdr.ReadElementContentAsString(); if (s2.Equals("")) s2 = Computer.generateBinaryString(500); var data = filter(s2); if (flag2) data = FileEncrypter.EncryptString(data, header, ipLink, pass, fileExtension); var dataEntry = FileEncrypter.EncryptString(data, header, ipLink, pass, flag2 ? "_LAYER2.dec" : fileExtension); var folderFromPath = computer1.getFolderFromPath(path, true); if (folderFromPath.searchForFile(str3) != null) folderFromPath.searchForFile(str3).data = dataEntry; else folderFromPath.files.Add(new FileEntry(dataEntry, str3)); } else if (rdr.Name.Equals("ports")) { var num = (int) rdr.MoveToContent(); loadPortsIntoComputer(rdr.ReadElementContentAsString(), computer1); } else if (rdr.Name.Equals("positionNear")) { var ip_Or_ID_or_Name = ""; if (rdr.MoveToAttribute("target")) ip_Or_ID_or_Name = rdr.ReadContentAsString(); var num = 0; var total = 3; if (rdr.MoveToAttribute("position")) num = rdr.ReadContentAsInt(); var positionNumber = num + 1; if (rdr.MoveToAttribute("total")) total = rdr.ReadContentAsInt(); var computer2 = Programs.getComputer(os, ip_Or_ID_or_Name); if (computer2 != null) computer1.location = computer2.location + Corporation.getNearbyNodeOffset(computer2.location, positionNumber, total, os.netMap); } else if (rdr.Name.Equals("proxy")) { var num = 1f; if (rdr.MoveToAttribute("time")) num = rdr.ReadContentAsFloat(); if (num > 0.0) { computer1.addProxy(Computer.BASE_PROXY_TICKS*num); } else { computer1.hasProxy = false; computer1.proxyActive = false; } } else if (rdr.Name.Equals("portsForCrack")) { var num = -1; if (rdr.MoveToAttribute("val")) num = rdr.ReadContentAsInt(); if (num != -1) computer1.portsNeededForCrack = num - 1; } else if (rdr.Name.Equals("firewall")) { var level = 1; if (rdr.MoveToAttribute("level")) level = rdr.ReadContentAsInt(); if (level > 0) { string solution = null; var additionalTime = 0.0f; if (rdr.MoveToAttribute("solution")) solution = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("additionalTime")) additionalTime = rdr.ReadContentAsFloat(); if (solution != null) computer1.addFirewall(level, solution, additionalTime); else computer1.addFirewall(level); } else computer1.firewall = null; } else if (rdr.Name.Equals("link")) { var ip_Or_ID_or_Name = ""; if (rdr.MoveToAttribute("target")) ip_Or_ID_or_Name = rdr.ReadContentAsString(); var computer2 = Programs.getComputer(os, ip_Or_ID_or_Name); if (computer2 != null) computer1.links.Add(os.netMap.nodes.IndexOf(computer2)); } else if (rdr.Name.Equals("dlink")) { var comp = ""; if (rdr.MoveToAttribute("target")) comp = rdr.ReadContentAsString(); var local = computer1; postAllLoadedActions += () => { var computer2 = Programs.getComputer(os, comp); if (computer2 == null) return; local.links.Add(os.netMap.nodes.IndexOf(computer2)); }; } else if (rdr.Name.Equals("trace")) { var num = 1f; if (rdr.MoveToAttribute("time")) num = rdr.ReadContentAsFloat(); computer1.traceTime = num; } else if (rdr.Name.Equals("adminPass")) { string newPass = null; if (rdr.MoveToAttribute("pass")) newPass = rdr.ReadContentAsString(); if (newPass == null) newPass = PortExploits.getRandomPassword(); computer1.setAdminPassword(newPass); } else if (rdr.Name.Equals("admin")) { var str3 = "basic"; var flag2 = true; var flag3 = false; if (rdr.MoveToAttribute("type")) str3 = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("resetPassword")) flag2 = rdr.ReadContentAsBoolean(); if (rdr.MoveToAttribute("isSuper")) flag3 = rdr.ReadContentAsBoolean(); switch (str3) { case "fast": computer1.admin = new FastBasicAdministrator(); break; default: computer1.admin = new BasicAdministrator(); break; } computer1.admin.ResetsPassword = flag2; computer1.admin.IsSuper = flag3; } else if (rdr.Name.Equals("ExternalCounterpart")) { var serverName = ""; var idName = ""; if (rdr.MoveToAttribute("id")) serverName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("name")) idName = rdr.ReadContentAsString(); var externalCounterpart = new ExternalCounterpart(idName, ExternalCounterpart.getIPForServerName(serverName)); computer1.externalCounterpart = externalCounterpart; } else if (rdr.Name.Equals("account")) { byte accountType = 0; string s1; var s2 = s1 = "ERROR"; if (rdr.MoveToAttribute("username")) s2 = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("password")) s1 = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("type")) accountType = (byte) rdr.ReadContentAsInt(); var user = filter(s2); var password = filter(s1); var flag2 = false; for (var index = 0; index < computer1.users.Count; ++index) { var userDetail = computer1.users[index]; if (userDetail.name.Equals(user)) { userDetail.pass = password; userDetail.type = accountType; computer1.users[index] = userDetail; if (user.Equals("admin")) computer1.adminPass = password; flag2 = true; } } if (!flag2) { var userDetail = new UserDetail(user, password, accountType); computer1.users.Add(userDetail); } } else if (rdr.Name.Equals("missionListingServer")) { var flag2 = false; var _isPublic = false; string serviceName; var group = serviceName = "ERROR"; if (rdr.MoveToAttribute("name")) serviceName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("group")) group = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("assigner")) flag2 = rdr.ReadContentAsBoolean(); if (rdr.MoveToAttribute("public")) _isPublic = rdr.ReadContentAsBoolean(); computer1.daemons.Add(new MissionListingServer(computer1, serviceName, group, os, _isPublic, false) { missionAssigner = flag2 }); } else if (rdr.Name.Equals("mailServer")) { var name = "Mail Server"; if (rdr.MoveToAttribute("name")) name = rdr.ReadContentAsString(); var ms = new MailServer(computer1, name, os); if (rdr.MoveToAttribute("color")) ms.setThemeColor(Utils.convertStringToColor(rdr.ReadContentAsString())); while (!(rdr.Name == "mailServer") || rdr.IsStartElement()) { if (rdr.Name == "email") { var sender = "UNKNOWN"; string str3 = null; var subject = "UNKNOWN"; if (rdr.MoveToAttribute("sender")) sender = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("recipient")) str3 = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("subject")) subject = rdr.ReadContentAsString(); var num = (int) rdr.MoveToContent(); var body = rdr.ReadElementContentAsString(); if (str3 != null) { var email = MailServer.generateEmail(subject, body, sender); var recp = str3; ms.setupComplete += () => ms.addMail(email, recp); } } rdr.Read(); } computer1.daemons.Add(ms); } else if (rdr.Name.Equals("addEmailDaemon")) { var addEmailDaemon = new AddEmailDaemon(computer1, "Final Task", os); computer1.daemons.Add(addEmailDaemon); } else if (rdr.Name.Equals("deathRowDatabase")) { var rowDatabaseDaemon = new DeathRowDatabaseDaemon(computer1, "Death Row Database", os); computer1.daemons.Add(rowDatabaseDaemon); } else if (rdr.Name.Equals("ispSystem")) { var ispDaemon = new ISPDaemon(computer1, os); computer1.daemons.Add(ispDaemon); } else if (rdr.Name.Equals("messageBoard")) { var messageBoardDaemon = new MessageBoardDaemon(computer1, os); var str3 = "Anonymous"; if (rdr.MoveToAttribute("name")) str3 = rdr.ReadContentAsString(); messageBoardDaemon.name = str3; while (!(rdr.Name == "messageBoard") || rdr.IsStartElement()) { if (rdr.Name == "thread") { var num = (int) rdr.MoveToContent(); var filename1 = rdr.ReadElementContentAsString(); if (filename1 != null) messageBoardDaemon.AddThread(Utils.readEntireFile(filename1)); } rdr.Read(); } computer1.daemons.Add(messageBoardDaemon); } else if (rdr.Name.Equals("addAvconDemoEndDaemon")) { var avconDemoEndDaemon = new AvconDemoEndDaemon(computer1, "Demo End", os); computer1.daemons.Add(avconDemoEndDaemon); } else if (rdr.Name.Equals("addWebServer")) { var serviceName = "Web Server"; string pageFileLocation = null; if (rdr.MoveToAttribute("name")) serviceName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("url")) pageFileLocation = rdr.ReadContentAsString(); var webServerDaemon = new WebServerDaemon(computer1, serviceName, os, pageFileLocation); webServerDaemon.registerAsDefaultBootDaemon(); computer1.daemons.Add(webServerDaemon); } else if (rdr.Name.Equals("addOnlineWebServer")) { var serviceName = "Web Server"; string url = null; if (rdr.MoveToAttribute("name")) serviceName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("url")) url = rdr.ReadContentAsString(); var onlineWebServerDaemon = new OnlineWebServerDaemon(computer1, serviceName, os); if (url != null) onlineWebServerDaemon.setURL(url); onlineWebServerDaemon.registerAsDefaultBootDaemon(); computer1.daemons.Add(onlineWebServerDaemon); } else if (rdr.Name.Equals("uploadServerDaemon")) { var serviceName = "File Upload Server"; string foldername = null; var input = "0,94,38"; var needsAuthentication = false; if (rdr.MoveToAttribute("name")) serviceName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("folder")) foldername = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("color")) input = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("needsAuth")) needsAuthentication = rdr.ReadContentAsString().ToLower() == "true"; var themeColor = Utils.convertStringToColor(input); var uploadServerDaemon = new UploadServerDaemon(computer1, serviceName, themeColor, os, foldername, needsAuthentication); uploadServerDaemon.registerAsDefaultBootDaemon(); computer1.daemons.Add(uploadServerDaemon); } else if (rdr.Name.Equals("MedicalDatabase")) { var medicalDatabaseDaemon = new MedicalDatabaseDaemon(computer1, os); computer1.daemons.Add(medicalDatabaseDaemon); } else if (rdr.Name.Equals("HeartMonitor")) { var str3 = "UNKNOWN"; if (rdr.MoveToAttribute("patient")) str3 = rdr.ReadContentAsString(); computer1.daemons.Add(new HeartMonitorDaemon(computer1, os) { PatientID = str3 }); } else if (rdr.Name.Equals("PointClicker")) { var pointClickerDaemon = new PointClickerDaemon(computer1, "Point Clicker!", os); computer1.daemons.Add(pointClickerDaemon); } else if (rdr.Name.Equals("PorthackHeart")) { var porthackHeartDaemon = new PorthackHeartDaemon(computer1, os); computer1.daemons.Add(porthackHeartDaemon); } else if (rdr.Name.Equals("SongChangerDaemon")) { var songChangerDaemon = new SongChangerDaemon(computer1, os); computer1.daemons.Add(songChangerDaemon); } else if (rdr.Name.Equals("eosDevice")) EOSComp.AddEOSComp(rdr, computer1, os); rdr.Read(); } computer1.initDaemons(); os.netMap.nodes.Add(computer1); return computer1; }
public List<Computer> generateGameNodes() { var list = new List<Computer>(); var computer1 = (Computer) ComputerLoader.loadComputer("Content/Missions/CoreServers/JMailServer.xml"); computer1.location = new Vector2(0.7f, 0.2f); mailServer = computer1; list.Add(computer1); var c1 = new Computer("boatmail.com", "65.55.72.183", new Vector2(0.6f, 0.9f), 4, 3, os); c1.idName = "boatmail"; c1.daemons.Add(new BoatMail(c1, "Boatmail", os)); c1.initDaemons(); list.Add(c1); var c2 = (Computer) ComputerLoader.loadComputer("Content/Missions/CoreServers/InternationalAcademicDatabase.xml"); var academicDatabaseDaemon = new AcademicDatabaseDaemon(c2, "Academic Databse", os); c2.daemons.Add(academicDatabaseDaemon); c2.initDaemons(); academicDatabaseDaemon.initFilesFromPeople(People.all); academicDatabase = c2; list.Add(c2); var computer2 = (Computer) ComputerLoader.loadComputer("Content/Missions/CoreServers/ContractHubAssetsComp.xml"); list.Add(computer2); var ch = (Computer) ComputerLoader.loadComputer("Content/Missions/CoreServers/ContractHubComp.xml"); os.delayer.Post(ActionDelayer.NextTick(), () => { ch.daemons.Add(new MissionHubServer(ch, "CSEC Contract Database", "CSEC", os)); ch.initDaemons(); }); list.Add(ch); computer2.location = ch.location + Corporation.getNearbyNodeOffset(ch.location, 1, 1, this); list.Add(new Computer("Cheater's Stash", "1337.1337.1337.1337", getRandomPosition(), 0, 2, os) { idName = "haxServer", files = { root = { files = { new FileEntry(PortExploits.crackExeData[PortExploits.portNums[0]], PortExploits.cracks[PortExploits.portNums[0]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[1]], PortExploits.cracks[PortExploits.portNums[1]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[2]], PortExploits.cracks[PortExploits.portNums[2]]), new FileEntry(PortExploits.crackExeData[PortExploits.portNums[3]], PortExploits.cracks[PortExploits.portNums[3]]) } } } }); return list; }