private IList<WeaponDescriptor> ParseWeaponDescriptors()
{
var documet = new HtmlDocument();
documet.LoadHtml(File.ReadAllText("Data/weapons.html"));
return documet.DocumentNode.SelectSingleNode("//table")
.Descendants("tr")
.Skip(1)//skipp header
.Select(tr =>
{
var columns = tr.Elements("td").Select(td => td.InnerText).ToArray();
var classDelta = columns[6].Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
int val;
var res = new WeaponDescriptor
{
Name = columns[0].Trim(),
Weight = float.Parse(columns[1].Trim(), CultureInfo.InvariantCulture),
Strength = int.Parse(columns[3]),
KineticEnergy = int.Parse(columns[4]),
ShootDamage = int.Parse(columns[5]),
Class = int.Parse(classDelta[0]),
DeltaEnergy = int.TryParse(classDelta[1], out val) ? (int?)val : null
};
descriptorMaping.Add(GetKey(res.Name), res);
return res;
})
.ToArray();
}