示例#1
0
        internal Pokemon(string[] data)
        {
            if (data[0] != "")
            {
                UniqueId = Convert.ToInt32(data[0]);
            }
            if (data[32] != "")
            {
                Id = Convert.ToInt32(data[32]);
            }
            if (data[7] != "")
            {
                MaxHealth = Convert.ToInt32(data[7]);
            }
            if (data[27] != "")
            {
                CurrentHealth = Convert.ToInt32(data[27]);
            }
            if (data[31] != "" && data[29] != "" && data[28] != "")
            {
                Experience = new PokemonExperience(Convert.ToInt32(data[31]), Convert.ToInt32(data[29]), Convert.ToInt32(data[28]));
            }
            IsShiny = (data[30].ToLowerInvariant() == "true");
            Status  = data[36];

            Moves = new PokemonMove[4];
            if (data[21] != "")
            {
                Moves[0] = new PokemonMove(1, Convert.ToInt32(data[21]), 999, 999); //Infinite PP lol
            }
            if (data[22] != "")
            {
                Moves[1] = new PokemonMove(2, Convert.ToInt32(data[22]), 999, 999);
            }
            if (data[23] != "")
            {
                Moves[2] = new PokemonMove(3, Convert.ToInt32(data[23]), 999, 999);
            }
            if (data[24] != "")
            {
                Moves[3] = new PokemonMove(4, Convert.ToInt32(data[24]), 999, 999);
            }

            OriginalTrainer = data[38];
            Form            = data[39];

            _nature = data[20];
            if (data[35] != "")
            {
                AbilityNo = Convert.ToInt32(data[35]);
                Ability   = new PokemonAbility(AbilityNo);
            }
            if (data[37] != "")
            {
                AbilityLength = Convert.ToInt32(data[37]);
            }
            if (data[1] != "")
            {
                Happiness = Convert.ToInt32(data[1]);
            }
            ItemHeld = data[34];
            if (data[2] != "")
            {
                Stats = new PokemonStats(data, 2, MaxHealth);
            }
            Ailment = data[36];
            if (data[14] != "")
            {
                IV = new PokemonStats(data, 14);
            }
            if (data[8] != "")
            {
                EV = new PokemonStats(data, 8);
            }

            Type1 = TypesManager.Instance.Type1[Id];
            Type2 = TypesManager.Instance.Type2[Id];
        }
示例#2
0
        public Pokemon(XmlNodeList node)
        {
            if (node is null)
            {
                return;
            }
            int damnR = int.MinValue;

            EV    = new PokemonStats();
            IV    = new PokemonStats();
            Stats = new PokemonStats();
            Moves = new PokemonMove[4];
            foreach (XmlNode no in node)
            {
                if (!int.TryParse(no.Attributes[0].Value, out damnR))
                {
                    if (no.Attributes[0].Value.ToLowerInvariant() == "moves")
                    {
                        foreach (XmlElement el in no)
                        {
                            switch (el.GetAttribute("n"))
                            {
                            case "3":
                                Moves[3] = new PokemonMove(4, Convert.ToInt32(el.InnerText), 999);     //Infinite PP lol
                                break;

                            case "2":
                                Moves[2] = new PokemonMove(3, Convert.ToInt32(el.InnerText), 999);     //Infinite PP lol
                                break;

                            case "1":
                                Moves[1] = new PokemonMove(2, Convert.ToInt32(el.InnerText), 999);     //Infinite PP lol
                                break;

                            case "0":
                                Moves[0] = new PokemonMove(1, Convert.ToInt32(el.InnerText), 999);     //Infinite PP lol
                                break;
                            }
                        }
                    }
                    else
                    {
                        switch (no.Attributes[0].Value)
                        {
                        //normal
                        case "id":
                            Id = Convert.ToInt32(no.InnerText);
                            break;

                        case "heldItem":
                            _itemHeld = no.InnerText;
                            break;

                        case "currentHp":
                            CurrentHealth = Convert.ToInt32(no.InnerText);
                            break;

                        case "hp":
                            MaxHealth    = Convert.ToInt32(no.InnerText);
                            Stats.Health = Convert.ToInt32(no.InnerText);
                            break;

                        case "uniqueId":
                            UniqueId = Convert.ToInt32(no.InnerText);
                            break;

                        case "nature":
                            _nature = no.InnerText;
                            break;

                        case "ability":
                            AbilityNo = Convert.ToInt32(no.InnerText);
                            Ability   = new PokemonAbility(AbilityNo);
                            break;

                        case "ailment":
                            Ailment = no.InnerText;
                            break;

                        case "ailmentLength":
                            AbilityLength = Convert.ToInt32(no.InnerText);
                            break;

                        case "exp":
                            exp = Convert.ToInt32(no.InnerText);
                            break;

                        case "level":
                            level = Convert.ToInt32(no.InnerText);
                            break;

                        case "totalExp":
                            totalExp = Convert.ToInt32(no.InnerText);
                            break;

                        case "originalCatcher":
                            OriginalTrainer = no.InnerText;
                            break;

                        case "happiness":
                            Happiness = Convert.ToInt32(no.InnerText);
                            break;

                        case "form":
                            Form = no.InnerText;
                            break;

                        case "status":
                            Status = no.InnerText;
                            break;

                        case "shiny":
                            IsShiny = no.InnerText != "0";
                            break;

                        //stat
                        case "attack":
                            Stats.Attack = Convert.ToInt32(no.InnerText);
                            break;

                        case "speed":
                            Stats.Speed = Convert.ToInt32(no.InnerText);
                            break;

                        case "defense":
                            Stats.Defence = Convert.ToInt32(no.InnerText);
                            break;

                        case "specialAttack":
                            Stats.SpAttack = Convert.ToInt32(no.InnerText);
                            break;

                        case "specialDefense":
                            Stats.SpDefence = Convert.ToInt32(no.InnerText);
                            break;

                        //iv
                        case "attackIV":
                            IV.Attack = Convert.ToInt32(no.InnerText);
                            break;

                        case "speedIV":
                            IV.Speed = Convert.ToInt32(no.InnerText);
                            break;

                        case "defenseIV":
                            IV.Defence = Convert.ToInt32(no.InnerText);
                            break;

                        case "specialAttackIV":
                            IV.SpAttack = Convert.ToInt32(no.InnerText);
                            break;

                        case "specialDefenseIV":
                            IV.SpDefence = Convert.ToInt32(no.InnerText);
                            break;

                        case "hpIV":
                            IV.Health = Convert.ToInt32(no.InnerText);
                            break;

                        //ev
                        case "attackEV":
                            EV.Attack = Convert.ToInt32(no.InnerText);
                            break;

                        case "speedEV":
                            EV.Speed = Convert.ToInt32(no.InnerText);
                            break;

                        case "defenseEV":
                            EV.Defence = Convert.ToInt32(no.InnerText);
                            break;

                        case "specialAttackEV":
                            EV.SpAttack = Convert.ToInt32(no.InnerText);
                            break;

                        case "specialDefenseEv":
                            EV.SpDefence = Convert.ToInt32(no.InnerText);
                            break;

                        case "hpEV":
                            EV.Health = Convert.ToInt32(no.InnerText);
                            break;
                        }
#if DEBUG
                        Console.WriteLine($"Name: {no.Attributes[0].Value} - Value:{no.InnerText}");
#endif
                    }
                }
            }
            Experience = new PokemonExperience(level, exp, totalExp);
            Type1      = TypesManager.Instance.Type1[Id];
            Type2      = TypesManager.Instance.Type2[Id];
        }