public async Task <Artifact> GetArtifact(Artifact.ArtifactStatic artifactStatic) { var version = GlobalSettings.FileVersions.Artifact; if (string.IsNullOrWhiteSpace(version)) { version = GlobalSettings.DefaultVersion; } var data = await WebClient.GetString(new Uri(GHStatic + version + ArtifactsPath)); if (data == null) { return(null); } var dataCSV = CsvReader.ReadFromText(data); ICsvLine artifactRow = dataCSV.SingleOrDefault(r => r[0].EndsWith("t" + artifactStatic.Id)); if (artifactRow == null) { return(null); } var image = await GetImage(artifactStatic.ImageUrl); return(BuildArtifact(artifactRow, artifactStatic, image, version)); }
private Artifact BuildArtifact(ICsvLine serverData, Artifact.ArtifactStatic staticData, Bitmap image, string version) { int.TryParse(serverData[1], out int maxLevel); string tt1 = serverData[2]; Enum.TryParse(serverData[3], out BonusType bonusType); double.TryParse(serverData[4], out double effectPerLevel); double.TryParse(serverData[5], out double damageBonus); double.TryParse(serverData[6], out double costCoef); double.TryParse(serverData[7], out double costExpo); string note = serverData[8]; string name = serverData[9]; return(staticData.Build(maxLevel == 0 ? (int?)null : maxLevel, tt1, bonusType, effectPerLevel, damageBonus, costCoef, costExpo, note, image ?? new Bitmap(1, 1), version)); }