Exemplo n.º 1
0
        public static bool CheckIfAdded(EvolutionTree et, EvolutionInstance ei)
        {
            bool x = false;

            foreach (EvolutionInstance y in et.Evolutions)
            {
                if (ei.Place == y.Place &&
                    ei.Move == y.Move &&
                    ei.Item == y.Item &&
                    ei.Condition == y.Condition)
                {
                    x = true;
                    break;
                }
            }

            return(x);
        }
Exemplo n.º 2
0
        public static List <EvolutionTree> ReadEvoTrees()
        {
            List <int> test = new List <int>();

            List <EvolutionTree> returnable = new List <EvolutionTree>();

            _doc.Load(URL + "evotrees.xml");
            XmlElement root = _doc.DocumentElement;
            XmlElement current;

            for (int x = 0; x < root.GetElementsByTagName("Instance").Count; x++)
            {
                current = (XmlElement)root.ChildNodes[x];

                int       id          = Convert.ToInt32(current.GetElementsByTagName("ID")[0].InnerText);
                int       treenumber  = Convert.ToInt32(current.GetElementsByTagName("TreeNumber")[0].InnerText);
                int       placeintree = Convert.ToInt32(current.GetElementsByTagName("PlaceInTree")[0].InnerText);
                EvoMethod evomethod   = Database.GetEvoMethod(Convert.ToInt32(current.GetElementsByTagName("EvoWay")[0].InnerText));
                string    condition   = current.GetElementsByTagName("Condition")[0].InnerText;
                int       level       = Convert.ToInt32(current.GetElementsByTagName("Level")[0].InnerText);

                EvolutionTree     et = new EvolutionTree(id, treenumber);
                EvolutionInstance ei = null;

                if (returnable.Count > 0)
                {
                    foreach (EvolutionTree temp in returnable)
                    {
                        if (et.TreeID == temp.TreeID)
                        {
                            et = temp;
                            break;
                        }
                    }
                }

                switch (evomethod.Method)
                {
                case "Level":
                case "Level At Time":
                case "Level At Location":
                case "Level With Friendship":
                case "Level With Unique Condition":
                case "Trade":
                case "Trade for Specific Pokemon":
                    ei = new EvolutionInstance(id,
                                               et.TreeID,
                                               placeintree,
                                               evomethod,
                                               level,
                                               condition);
                    break;

                case "Level With Item":
                case "Trade With Item":
                case "Use Stone":
                    ei = new EvolutionInstance(id,
                                               et.TreeID,
                                               placeintree,
                                               evomethod,
                                               level,
                                               condition,
                                               Database.GetItem(Convert.ToInt32(current.GetElementsByTagName("Item")[0].InnerText)));
                    break;

                case "Level With Move":
                    ei = new EvolutionInstance(id,
                                               et.TreeID,
                                               placeintree,
                                               evomethod,
                                               level,
                                               condition,
                                               Database.GetMove(Convert.ToInt32(current.GetElementsByTagName("Move")[0].InnerText)));
                    break;

                case "Egg":
                    ei = new EvolutionInstance(id,
                                               et.TreeID,
                                               placeintree,
                                               evomethod);
                    break;
                }

                if (!Database.CheckIfAdded(et, ei))
                {
                    et.Evolutions.Add(ei);
                }
                if (!returnable.Contains(et))
                {
                    returnable.Add(et);
                }

                foreach (Pokémon p in Database.Pokedex)
                {
                    if (p.EvoInstanceID == id)
                    {
                        p.AddEvolutionInstance(ei);
                    }
                }
            }

            return(returnable);
        }