/// <summary> /// Returns the ScoreScreen award BitmapImage of the given mvpAwardType and color /// </summary> /// <param name="mvpAwardType">Reference name of award</param> /// <param name="mvpColor">Color of icon</param> /// <param name="awardName"></param> /// <returns></returns> public BitmapImage GetMVPScoreScreenAward(string mvpAwardType, MVPScoreScreenColor mvpColor, out string awardName) { if (MVPScoreScreenAwardByAwardType.ContainsKey(mvpAwardType)) { var award = MVPScoreScreenAwardByAwardType[mvpAwardType]; var uriString = award.Item2.AbsoluteUri.Replace("%7BmvpColor%7D", mvpColor.ToString()); awardName = award.Item1; try { return(HeroesBitmapImage(uriString)); } catch (IOException) { LogMissingImage($"Missing image: {uriString}"); awardName = mvpAwardType; return(HeroesBitmapImage($@"Talents\_Generic\{NoTalentIconFound}")); } } else { LogReferenceNameNotFound($"MVP score screen award type: {mvpAwardType}"); awardName = mvpAwardType; return(HeroesBitmapImage($@"Talents\_Generic\{NoTalentIconFound}")); } }
/// <summary> /// Returns the ScoreScreen award Stream of the given mvpAwardType and color /// </summary> /// <param name="mvpAwardType">Reference name of award</param> /// <param name="mvpColor">Color of icon</param> /// <param name="awardName"></param> /// <returns></returns> public Stream GetMVPScoreScreenAward(string mvpAwardType, MVPScoreScreenColor mvpColor, out string awardName) { if (MVPScoreScreenAwardByAwardType.ContainsKey(mvpAwardType)) { var award = MVPScoreScreenAwardByAwardType[mvpAwardType]; awardName = award.Item1; return(HeroesIcons.GetHeroesIconsAssembly().GetManifestResourceStream(award.Item2.Replace("{mvpColor}", mvpColor.ToString().ToLowerInvariant()))); } else { LogReferenceNameNotFound($"MVP score screen award type: {mvpAwardType}"); awardName = mvpAwardType; return(HeroesIcons.GetHeroesIconsAssembly().GetManifestResourceStream(SetImageStreamString($"{TalentFolderName}.{TalentGenericFolderName}", NoTalentIconFound))); } }
protected override void ParseChildFiles() { try { foreach (var award in XmlChildFiles) { using (XmlReader reader = XmlReader.Create(Path.Combine(XmlMainFolderName, XmlBaseFolder, $"{award}{DefaultFileExtension}"), GetXmlReaderSettings())) { reader.MoveToContent(); if (reader.Name != award) { continue; } // get the real award name // example MasteroftheCurse -> (real) Master of the Curse string realAwardName = reader["name"]; if (string.IsNullOrEmpty(realAwardName)) { realAwardName = award; // default to award name } while (reader.Read()) { if (reader.IsStartElement()) { string awardType = reader.Name; // example: MostDamageTaken while (reader.Read() && reader.Name != awardType) { if (reader.NodeType == XmlNodeType.Element) { string elementName = reader.Name; if (reader.Read()) { if (elementName == "Description") { MVPAwardDescriptionByAwardType.Add(awardType, reader.Value); } else { var awardTuple = new Tuple <string, string>(realAwardName, SetImageStreamString(IconFolderName, reader.Value)); if (elementName == "MVPScreen") { MVPScreenAwardByAwardType.Add(awardType, awardTuple); } else if (elementName == "ScoreScreen") { MVPScoreScreenAwardByAwardType.Add(awardType, awardTuple); } } } } } } } } } } catch (Exception ex) { throw new ParseXmlException($"Error on xml parsing of {XmlParentFile}", ex); } }
protected override void ParseChildFiles() { try { foreach (var award in XmlChildFiles) { using (XmlReader reader = XmlReader.Create($@"Xml\{XmlBaseFolder}\{award}.xml")) { reader.MoveToContent(); if (reader.Name != award) { continue; } // get the real award name // example MasteroftheCurse -> (real) Master of the Curse string realAwardName = reader["name"]; if (string.IsNullOrEmpty(realAwardName)) { realAwardName = award; // default to award name } while (reader.Read()) { if (reader.IsStartElement()) { string awardType = reader.Name; // example: MostDamageTaken while (reader.Read() && reader.Name != awardType) { if (reader.NodeType == XmlNodeType.Element) { string elementName = reader.Name; if (reader.Read()) { if (elementName == "Description") { MVPAwardDescriptionByAwardType.Add(awardType, reader.Value); } else { var awardTuple = new Tuple <string, Uri>(realAwardName, SetMVPAwardUri(reader.Value)); if (elementName == "MVPScreen") { MVPScreenAwardByAwardType.Add(awardType, awardTuple); } else if (elementName == "ScoreScreen") { MVPScoreScreenAwardByAwardType.Add(awardType, awardTuple); } } } } } } } } } } catch (Exception ex) { throw new ParseXmlException("Error on parsing of xml files", ex); } }