Exemplo n.º 1
0
        public static PokemonInfo PStoPokemon_once(string PStext)
        {
            string[] data        = Regex.Split(PStext.Trim(), "\r*\n");
            string[] NameandItem = Regex.Split(data[0].Trim(), @"\s+@\s+"); // 昵称
            string   Item        = null;
            string   Name        = NameandItem[0];
            string   move        = "";
            string   Ability     = null;
            Racial   EVSfin      = new Racial();

            EVSfin.clear();
            Racial IVsfin = new Racial();

            IVsfin.fill();
            int Level     = 50;
            int Happiness = 160;

            if (NameandItem.Length > 1)
            {
                Item = Pokemondata.GetItemName(Pokemondata.EnglishNametoItemID(NameandItem[1]));
            }
            string[] ntemp    = Regex.Split(Name, @"\s+\(");
            string   nickname = null;
            string   Nature   = "Serious";
            bool     SHINY    = false;

            if (ntemp.Length == 3)
            {
                nickname = ntemp[0];
                Name     = ntemp[1].Substring(0, ntemp[1].Length - 1);
            }
            else if (ntemp.Length == 2)
            {
                if (ntemp[1].Length <= 4)
                {
                    Name = ntemp[0];
                }
                else
                {
                    Name = ntemp[1].Substring(0, ntemp[1].Length - 1);
                }
            }
            int qq = 9;
            //Name = Name.Replace("-Gmax", "");
            PokemonInfo PB = new PokemonInfo(Pokemondata.GetPokemonBase(Pokemondata.EnglishNametopokeID(Name.Replace("-Gmax", ""))));

            if (Name.Contains("-Gmax"))
            {
                PB.Gmax = true;
            }
            for (int i = 1; i < data.Length; ++i)
            {
                string[] temp = Regex.Split(data[i].Trim(), @"\s*:\s*");
                switch (temp[0])
                {
                case "Ability":
                    Ability = Pokemondata.GetAbilityName(Pokemondata.EnglishNametoAbilityID(temp[1]));
                    break;

                case "EVs":
                    string[] EVs = Regex.Split(temp[1], @"\s*/\s*");

                    foreach (string item in EVs)
                    {
                        string[] orz = Regex.Split(item, @"\s+");
                        if (title(orz[1]) >= 0)
                        {
                            EVSfin.FromnumToSet(title(orz[1]), int.Parse(orz[0]));
                        }
                    }
                    break;

                case "IVs":
                    string[] IVs = Regex.Split(temp[1], @"\s*/\s*");

                    foreach (string item in IVs)
                    {
                        string[] orz = Regex.Split(item, @"\s+");
                        if (title(orz[1]) >= 0)
                        {
                            IVsfin.FromnumToSet(title(orz[1]), int.Parse(orz[0]));
                        }
                    }
                    break;

                case "Level":
                    Level = int.Parse(temp[1]);
                    break;

                case "Shiny":
                    if (temp[1] == "Yes")
                    {
                        SHINY = true;
                    }

                    break;

                case "Happiness":
                    Happiness = int.Parse(temp[1]);
                    break;

                default:
                    string[] gg = data[i].Split(' ');
                    if (gg[1] == "Nature")
                    {
                        Nature = gg[0];
                    }
                    else
                    {
                        string move1 = Regex.Replace(data[i].Trim(), @"\s*-\s+", "");
                        if (move1.Contains("Hidden Power"))
                        {
                            if (move1.Contains("["))
                            {
                                string wqeeq = move1.Substring(move1.IndexOf("[")
                                                               + 1, move1.Length - move1.IndexOf("[") - 2);
                                move1 = "觉醒力量-" + Pokemondata.GetTypeName
                                            (Pokemondata.GetEngTypeId(move1.Substring(move1.IndexOf("[")
                                                                                      + 1, move1.Length - move1.IndexOf("[") - 2)));
                            }
                            else
                            {
                                move1 = "觉醒力量-" + Pokemondata.GetTypeName(Pokemondata.GetEngTypeId(IVsfin.getHiddenPowerType()));
                            }
                            if (move == "")
                            {
                                move = move1;
                            }
                            else
                            {
                                move += "," + (move1);
                            }
                        }
                        else
                        {
                            if (move == "")
                            {
                                move = Pokemondata.GetMoveName(Pokemondata.EnglishNametoMoveID(move1));
                            }
                            else
                            {
                                move += "," + Pokemondata.GetMoveName(Pokemondata.EnglishNametoMoveID(move1));
                            }
                        }
                        //move1 = Regex.Replace(move1, "\\[.+?\\]", "").Trim();
                    }
                    break;
                }
            }
            string[] movelist = move.Split(',');
            PB.Pokemonextend(movelist, Item, Ability, SHINY, EVSfin, IVsfin, Level, Pokemondata.getNatureClass(Nature));
            return(PB);
        }
Exemplo n.º 2
0
            public zhuzhuang1(resstruct[] heidi, int x, int y, tjt main)
            {
                min.BorderStyle = BorderStyle.FixedSingle;
                //min.BackColor = Color.Blue;
                min.BackColor   = Color.FromArgb(Pokemondata.MOVEDATA[(int)Pokemondata.EngMoveID[heidi[0].move]].color1 + (0xff << 24));
                max.BorderStyle = BorderStyle.FixedSingle;
                //max.BackColor = Color.Red;
                max.BackColor = Color.FromArgb(Pokemondata.MOVEDATA[(int)Pokemondata.EngMoveID[heidi[0].move]].color2 + (0xff << 24));

                //Color.FromArgb(0xaaaaaa);
                string[] sci = heidi[1].damagebfb.Substring(0, heidi[0].damagebfb.Length - 1).Split('-');

                min.SetBounds(x, y, (int)(5 * double.Parse(sci[0])), 25);
                min.Text      = Pokemondata.GetMoveName(Pokemondata.EnglishNametoMoveID(heidi[0].move));
                min.TextAlign = ContentAlignment.MiddleCenter;
                max.SetBounds(x, y, (int)(5 * double.Parse(sci[1])), 25);
                minimg.SetBounds(x + 10, y + 25, 40, 40);
                while (!Pokemondata.EngPokemonID.Contains(heidi[1].pokemon))
                {
                    heidi[1].pokemon = heidi[1].pokemon.Substring(0, heidi[1].pokemon.LastIndexOf('-'));
                }

                minimg.Image     = (Image)pokeimg.ResourceManager.GetObject(Pokemondata.GetPokemonBase(Pokemondata.EnglishNametopokeID(heidi[1].pokemon)).name.Replace('-', 'T'));
                dmgdec.Location  = new Point(x + 50, y + 40);
                statdec.Location = new Point(x + 50, y + 60);
                dmgdec.Text      = Pokemondata.GetPokemonBase(Pokemondata.EnglishNametopokeID(heidi[1].pokemon)).name;
                if (heidi[1].item != null)
                {
                    dmgdec.Text += " " + Pokemondata.GetItemName(Pokemondata.EnglishNametoItemID(heidi[1].item));
                }
                dmgdec.Text += "(";
                if (heidi[1].stat > 0)
                {
                    dmgdec.Text += "+";
                    dmgdec.Text += heidi[1].stat.ToString() + " ";
                }
                else if (heidi[1].stat < 0)
                {
                    dmgdec.Text += heidi[1].stat.ToString() + " ";
                }
                if (heidi[1].IVs.Value[2] != -1)
                {
                    string scixing = (heidi[1].IVs.Value[2]).ToString();
                    if (heidi[1].defplus == 1)
                    {
                        scixing += "+";
                    }
                    else if (heidi[1].defplus == -1)
                    {
                        scixing += "-";
                    }
                    dmgdec.Text += string.Format("{0} HP {1} 物防)", heidi[1].IVs.Value[0], scixing);
                }
                else
                {
                    string scixing = (heidi[1].IVs.Value[4]).ToString();
                    if (heidi[1].spaplus == 1)
                    {
                        scixing += "+";
                    }
                    else if (heidi[1].spaplus == -1)
                    {
                        scixing += "-";
                    }
                    dmgdec.Text += string.Format("{0} HP {1} 特防)", heidi[1].IVs.Value[0], scixing);
                }
                dmgdec.Text += "受到 " + Pokemondata.GetMoveName(Pokemondata.EnglishNametoMoveID(heidi[0].move));
                if (heidi[0].movepow != 0)
                {
                    dmgdec.Text += string.Format("({0} 威力)", heidi[0].movepow);
                }
                dmgdec.Text     += " " + heidi[0].damagenum.Trim();
                dmgdec.Text     += string.Format(" ({0})", heidi[0].damagebfb);
                dmgdec.AutoSize  = true;
                statdec.AutoSize = true;
                if (heidi[0].burn)
                {
                    statdec.Text += ",灼伤";
                }
                if (heidi[0].helpinghand)
                {
                    statdec.Text += ",帮助";
                }
                if (heidi[1].reflect)
                {
                    statdec.Text += ",反射壁";
                }
                if (heidi[1].lightscreen)
                {
                    statdec.Text += ",光墙";
                }
                if (heidi[1].auroraveil)
                {
                    statdec.Text += ",极光幕";
                }
                if (heidi[1].friendguard)
                {
                    statdec.Text += ",友情防守";
                }
                if (heidi[1].crit)
                {
                    statdec.Text += ",CT";
                }
                if (heidi[1].protect)
                {
                    statdec.Text += ",保护";
                }
                if (heidi[1].weather != null)
                {
                    statdec.Text += "," + heidi[1].weather;
                }
                if (heidi[1].terrain != null)
                {
                    statdec.Text += "," + heidi[1].terrain;
                }
                if (statdec.Text != "")
                {
                    statdec.Text = "其他附加状态: " + statdec.Text.Substring(1);
                }
                if (heidi[0].damagedec.Contains("HKO"))
                {
                    string mipha = Regex.Split(heidi[0].damagedec, "HKO")[0] + "HKO ";
                    statdec.Text = mipha + statdec.Text;
                }
                main.Controls.Add(min);
                main.Controls.Add(dmgdec);
                main.Controls.Add(statdec);
                main.Controls.Add(max);
                main.Controls.Add(minimg);

                //main.Controls.Add(new Button());
            }