public async Task <Pet> GetPet(Pet.PetStatic petStatic) { var version = GlobalSettings.FileVersions.Pet; if (string.IsNullOrWhiteSpace(version)) { version = GlobalSettings.DefaultVersion; } var data = await WebClient.GetString(new Uri(GHStatic + version + PetsPath)); if (data == null) { return(null); } var dataCSV = CsvReader.ReadFromText(data); ICsvLine petRow = dataCSV.SingleOrDefault(r => r[0] == "Pet" + petStatic.Id); if (petRow == null) { return(null); } var image = await GetImage(petStatic.ImageUrl); return(BuildPet(petRow, petStatic, image, version)); }
private Pet BuildPet(ICsvLine serverData, Pet.PetStatic staticData, Bitmap image, string version) { var incrementRange = new Dictionary <int, double> { }; double.TryParse(serverData[1], out double damageBase); double.TryParse(serverData[2], out double inc1to40); double.TryParse(serverData[3], out double inc41to80); double.TryParse(serverData[4], out double inc80on); Enum.TryParse(serverData[5], out BonusType bonusType); double.TryParse(serverData[6], out double bonusBase); double.TryParse(serverData[7], out double bonusIncrement); incrementRange.Add(1, inc1to40); incrementRange.Add(41, inc41to80); incrementRange.Add(81, inc80on); return(staticData.Build(damageBase, incrementRange, bonusType, bonusBase, bonusIncrement, image ?? new Bitmap(1, 1), version)); }