예제 #1
0
        public ushort Parse(string htmlSingleRowInput)
        {
            var statsColumn = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[5]");
            var catchRate   = statsColumn.SelectSingleNode(".//tr[2]/td[2]").InnerText.ToLower();

            return(ushort.Parse(catchRate));
        }
예제 #2
0
        public QuickMove Parse(string htmlSingleRowInput)
        {
            var nameNode           = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[1]");
            var typeNode           = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[2]//img");
            var DamageNode         = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[3]");
            var EnergyIncreaseNode = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[4]");
            var CoolDownNode       = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[5]");

            var quickMove = new QuickMove();

            //Name
            quickMove.Name   = nameNode.InnerText.Trim();
            quickMove.MoveId = string.Join("-", quickMove.Name.Split(new char[] { '-', ' ' }).Select(s => s.ToLowerInvariant())).Trim();

            //Type
            var src        = typeNode.GetAttributeValue("src", string.Empty);
            var typeAsText = Regex.Match(src, @"/([A-Za-z]+?)\.gif").Groups[1].Value;

            quickMove.Type = (PokemonType)Enum.Parse(typeof(PokemonType), typeAsText, true);

            //Damage
            quickMove.Damage = ushort.Parse(DamageNode.InnerText);

            //EnergyIncreased
            quickMove.EnergyGenerated = ushort.Parse(EnergyIncreaseNode.InnerText);

            //CoolDown
            quickMove.CoolDown = float.Parse(CoolDownNode.InnerText.Replace(" seconds", string.Empty));

            return(quickMove);
        }
예제 #3
0
        private IEnumerable <string> GetMoves(string html, string xpath)
        {
            var movesColumn = HtmlUtils.GetSingleHtmlNode(html, xpath);
            var moves       = movesColumn.SelectNodes(".//u").Select(item => item.InnerText.ToLowerInvariant());

            return(moves.Select(move => string.Join("-", move.Split(' ').ToArray())).ToList());
        }
예제 #4
0
파일: CandiesParser.cs 프로젝트: kazo0/Dexr
        public ushort Parse(string htmlSingleRowInput)
        {
            var candiesColumn = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[6]");
            var rowContent    = candiesColumn.InnerText;
            var match         = Regex.Match(rowContent, "[0-9]{2,3}").Value;

            return(string.IsNullOrEmpty(match) ? (ushort)0 : ushort.Parse(match));
        }
예제 #5
0
        public ushort Parse(string htmlSingleRowInput)
        {
            var nameColumn = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[1]");
            var rowContent = nameColumn.InnerText;
            var match      = Regex.Match(rowContent, "[0-9]{3}").Value;

            return(ushort.Parse(match));
        }
예제 #6
0
        public PokemonType[] Parse(string htmlSingleRowInput)
        {
            var nameColumn = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[4]");
            var hrefs      = nameColumn.SelectNodes(".//a").Select(node => node.GetAttributeValue("href", null));

            return(hrefs.Select(href =>
            {
                var typeAsText = Regex.Match(href, @"/([A-Za-z]+?)\.shtml").Groups[1].Value;
                return (PokemonType)Enum.Parse(typeof(PokemonType), typeAsText, true);
            }).ToArray());
        }
예제 #7
0
        public ChargeMove Parse(string htmlSingleRowInput)
        {
            var nameNode        = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[1]");
            var typeNode        = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[2]//a");
            var DamageNode      = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[3]");
            var CriticalHitNode = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[4]");
            var CoolDownNode    = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[5]");
            var EnergyBarsNode  = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[6]/img");

            var chargeMove = new ChargeMove();

            //Name
            chargeMove.Name   = nameNode.InnerText.Trim();
            chargeMove.MoveId = string.Join("-", chargeMove.Name.Split(new char[] { '-', ' ' }).Select(s => s.ToLowerInvariant())).Trim();

            //Type
            var href       = typeNode.GetAttributeValue("href", string.Empty);
            var typeAsText = Regex.Match(href, @"/([A-Za-z]+?)\.shtml").Groups[1].Value;

            chargeMove.Type = (PokemonType)Enum.Parse(typeof(PokemonType), typeAsText, true);

            //Damage
            chargeMove.Damage = ushort.Parse(DamageNode.InnerText);

            //CriticalHit
            chargeMove.Critical = ushort.Parse(CriticalHitNode.InnerText.Replace("%", string.Empty));

            //CoolDown
            chargeMove.CoolDown = float.Parse(CoolDownNode.InnerText.Replace(" seconds", string.Empty));

            //EnergyBars
            var src = EnergyBarsNode.GetAttributeValue("src", string.Empty);

            chargeMove.EnergyBars = ushort.Parse(src.Replace("energy.png", string.Empty));

            return(chargeMove);
        }
예제 #8
0
파일: NameParser.cs 프로젝트: kazo0/Dexr
        public string Parse(string htmlSingleRowInput)
        {
            var nameColumn = HtmlUtils.GetSingleHtmlNode(htmlSingleRowInput, "./tr/td[3]");

            return(HtmlUtils.HtmlDecode(nameColumn.SelectSingleNode(".//a").InnerText.ToLower()));
        }