Exemple #1
0
        private Profile.Gear GetGear()
        {
            var gear  = new Profile.Gear();
            var cdata = _document.DescendantNodes().FirstOrDefault(node =>
                                                                   node.NodeType == XmlNodeType.CDATA && node.Parent?.Attribute("Name")?.Value == "GearSetChange");

            if (cdata == null)
            {
                return(gear);
            }
            var patterns = new []
            {
                @"var index = (\d+);",    //1.5.2+
                @"ChangeGearset\((\d+)\)" //1.5.0 - 1.5.1
            };

            foreach (var pattern in patterns)
            {
                var match = new Regex(pattern).Match(cdata.ToString());
                if (match.Success && Int32.TryParse(match.Groups[1].Value, out var number))
                {
                    gear.GearSet = number;
                    gear.Enabled = true;
                    return(gear);
                }
            }

            throw new ParsingException("Could not parse gearset");
        }
Exemple #2
0
        private Profile.Gear GetGearSetChange()
        {
            var xGearSetChangeElements = this._xRoot.DescendantNodes().Where(n =>
                                                                             n.NodeType == XmlNodeType.CDATA &&
                                                                             n.Parent.Name == "CodeChunk" &&
                                                                             n.Parent.Attribute("Name").Value == "GearSetChange");

            var gearSet = new Profile.Gear();

            if (xGearSetChangeElements.Any())
            {
                string cdata = xGearSetChangeElements.First().ToString();
                var    match = new Regex("ff14bot\\.Managers\\.ChatManager\\.SendChat\\(\"\\/gs change (\\d+)").Match(cdata);
                if (match.Success)
                {
                    int gearSetNr;
                    if (Int32.TryParse(match.Groups[1].Value, out gearSetNr))
                    {
                        gearSet.Enabled = true;
                        gearSet.GearSet = gearSetNr;
                        return(gearSet);
                    }
                    else
                    {
                        this._errorMessages.add("The profile appears to have a specified gearset but the parsing failed. Gear change: disabled.");
                        return(gearSet);
                    }
                }
            }

            return(gearSet);
        }