public void SavePlayerState() { var universe = new Universe(); PlayerCorporation corporation = universe.RegisterPlayerCorporation("andy", "AAAA", "*****@*****.**"); var state = universe.SaveState(); var reloaded = new Universe(); reloaded.LoadState(state); Assert.AreEqual(universe.Players.Count, reloaded.Players.Count); Assert.AreEqual(corporation.ID, reloaded.Players[0].ID); }
public void SaveAgent() { const string stateXml = @"<universe objectID=""0"" nextObjectID=""2"" currentTick=""0""> <corporations> <corporation objectID=""1""> <agents /> </corporation> </corporations> </universe>"; var xdoc = new XmlDocument(); xdoc.LoadXml(stateXml); var universe = new Universe(); universe.LoadState(xdoc.Select("universe")); Assert.AreEqual(1, universe.Corporations.Count); var corporation = universe.Corporations[0]; var agent = corporation.Recruit(); agent.Stats[AgentStatistic.Memory].SetValue(100); var state = universe.SaveState(); var reloaded = new Universe(); reloaded.LoadState(state); Assert.AreEqual(1, reloaded.Corporations.Count); var reloadedCorporation = reloaded.Corporations[0]; Assert.AreEqual(corporation.Employees.Count, reloadedCorporation.Employees.Count); var reloadedAgent = reloadedCorporation.Employees[0]; Assert.AreEqual(agent.ObjectID, reloadedAgent.ObjectID); Assert.AreEqual(agent.Stats[AgentStatistic.Memory].Value, reloadedAgent.Stats[AgentStatistic.Memory].Value); }
private void Initialise() { isShutdown = false; Rand.Initialise(0); universe = new Universe(); dataPath = Server.MapPath("~/app_data"); var templateFilename = Path.Combine(dataPath, "templates.xml"); var stateFilename = Path.Combine(dataPath, "universe.xml"); var date = DateTime.Now; if ( File.Exists(templateFilename) ) { var templates = new XmlDocument(); templates.Load(templateFilename); universe.ObjectFactory.Load(templates.SelectRootElement()); } if ( File.Exists(stateFilename) ) { string backupName = string.Format("{0:yyyyMd_HHmmss}_universe.xml", date); File.Copy(stateFilename, Path.Combine(dataPath, backupName)); var state = new XmlDocument(); state.Load(stateFilename); universe.LoadState(state.SelectRootElement()); } dataWatcher = new FileSystemWatcher(dataPath, "*.xml"); dataWatcher.Changed += UniverseChanged; dataWatcher.EnableRaisingEvents = true; isInitialised = true; }