示例#1
0
        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;
            }
        }
示例#2
0
        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);
        }