public void readMessage(GameMessage message) { switch (message.type) { case MessageType.LOAD_SAVED_GAME: PartiesSingleton.currentGame = XMLGame.getInstance().loadSavedGame((string)message.parameters[0]); GameObject.Find(Constants.NAVIGATION_OBJECT).GetComponent <NavigationController>().generateShop(); break; case MessageType.START_NEW_GAME: PartiesSingleton.currentGame = XMLGame.getInstance().createNewGame(); PartiesSingleton.currentGame.saveLink = (string)message.parameters[1]; PartiesSingleton.currentGame.userName = (string)message.parameters[0]; GameObject.Find(Constants.NAVIGATION_OBJECT).GetComponent <NavigationController>().openMainMenu(); GameObject.Find(Constants.NAVIGATION_OBJECT).GetComponent <NavigationController>().generateShop(); break; case MessageType.SAVE_GAME: XMLGame.getInstance().saveGame(PartiesSingleton.currentGame); break; case MessageType.GENERATE_SHOP: PartiesSingleton.currentShop = new Shop { gold = 100, items = new List <Item> { XMLFactory.loadItem("configs/items/weapons/mage_stuff"), XMLFactory.loadItem("configs/items/shields/shield") } }; break; } }
public Game loadSavedGame(string link) { var xmldoc = new XmlDocument(); xmldoc.Load(link); XmlNode loadGame = xmldoc[XML_SAVED_GAME]; var game = new Game { saveLink = link, userName = loadGame[XML_USER_NAME].InnerText, gold = int.Parse(loadGame[XML_GOLD].InnerText), startGame = Time.time, gameTime = DateTime.ParseExact(loadGame[XML_TIME].InnerText, TIME_FORMAT, CultureInfo.CurrentCulture) }; foreach (XmlNode xmlPerson in loadGame[XML_PERSONS]) { var person = XMLFactory.loadPerson(xmlPerson[XML_PERSON_TYPE].InnerText); person.name = xmlPerson[XML_PERSON_NAME].InnerText; person.isActive = xmlPerson[XML_PERSON_ISACTIVE].InnerText.Equals(true.ToString()); person.setLevel(int.Parse(xmlPerson[XML_PERSON_LEVEL].InnerText)); person.setExpirience(int.Parse(xmlPerson[XML_PERSON_EXPERIENCE].InnerText)); person.activeInventory.leftHand = XMLFactory.loadItem(xmlPerson[XML_PERSON_ACTIVE_ITEMS][XML_PERSON_ITEMS_LEFT_HAND].InnerText); person.activeInventory.rightHand = XMLFactory.loadItem(xmlPerson[XML_PERSON_ACTIVE_ITEMS][XML_PERSON_ITEMS_RIGHT_HAND].InnerText); person.activeInventory.armor = XMLFactory.loadItem(xmlPerson[XML_PERSON_ACTIVE_ITEMS][XML_PERSON_ITEMS_ARMOR].InnerText); person.activeInventory.activeItem = XMLFactory.loadItem(xmlPerson[XML_PERSON_ACTIVE_ITEMS][XML_PERSON_ITEMS_ACTIVE_ITEM].InnerText); person.knownAbilities.FindAll(ability => !string.IsNullOrEmpty(ability.resource)) .ForEach(ability => ability.isActive = false); foreach (XmlNode xmlAbility in xmlPerson[XML_PERSON_ACTIVE_ABILITIES]) { person.findAbility(xmlAbility.InnerText).isActive = true; } person.place = XMLFactory.laodPosition(xmlPerson[XML_PERSON_POSITION]); game.selectedHeroes.Add(person); } foreach (XmlNode xmlItem in loadGame[InventoryController.INVENTORY_OBJECT]) { game.inventory.Add(XMLFactory.loadItem(xmlItem.InnerText)); } return(game); }