예제 #1
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);
        }
예제 #2
0
    public MissionMap loadMissionFromFile(string link)
    {
        var missionMap = new MissionMap();
        var textAsset  = (TextAsset)Resources.Load(link);
        var xmldoc     = new XmlDocument();

        xmldoc.LoadXml(textAsset.text);

        var map = xmldoc.GetElementsByTagName("map").Item(0);

        foreach (XmlNode xmlMapPoint in map)
        {
            var mapPoint = new MapPoint();
            mapPoint.id         = int.Parse(xmlMapPoint["id"].InnerText);
            mapPoint.fightPower = int.Parse(xmlMapPoint["fightPower"].InnerText);

            mapPoint.count = int.Parse(xmlMapPoint["count"].InnerText);

            if (xmlMapPoint["final"] != null &&
                xmlMapPoint["final"].InnerText == "true")
            {
                mapPoint.isFinal = true;
            }
            else
            {
                mapPoint.isFinal = false;
            }
            if (xmlMapPoint["dependList"].InnerText.Length > 0)
            {
                mapPoint.dependList.AddRange(xmlMapPoint["dependList"].InnerText.Split(','));
            }

            mapPoint.position = XMLFactory.laodPosition(xmlMapPoint["position"]);
            if (mapPoint.dependList.Count == 0)
            {
                mapPoint.isEnable = true;
            }
            missionMap.fights.Add(mapPoint);
        }
        return(missionMap);
    }