public MatchPlayerBase(IInternalService internalService, IWebsiteService website, ReplayMatchPlayer player) { Database = internalService.Database; HeroesIcons = internalService.HeroesIcons; UserProfile = internalService.UserProfile; Website = website; Player = player; SilenceIcon = HeroesIcons.GetOtherIcon(OtherIcon.Silence); TalentBorderScoreScreenIcon = HeroesIcons.GetOtherIcon(OtherIcon.TalentAvailable); }
public void GetOtherIconTests() { List <string> assertMessages = new List <string>(); foreach (OtherIcon icon in Enum.GetValues(typeof(OtherIcon))) { if (HeroesIcons.GetOtherIcon(icon) == null) { assertMessages.Add($"Other icon {icon} is null"); } } AssertFailMessage(assertMessages); }
public MatchSummaryViewModel(IInternalService internalService, IWebsiteService website, ILoadingOverlayWindowService loadingOverlayWindow) : base(internalService) { Website = website; LoadingOverlayWindow = loadingOverlayWindow; IsFlyoutLoadingOverlayVisible = false; IsLeftChangeButtonVisible = true; IsRightChangeButtonVisible = true; IsLeftChangeButtonEnabled = false; IsRightChangeButtonEnabled = false; ScoreKillIcon = HeroesIcons.GetOtherIcon(OtherIcon.Kills); ScoreAssistIcon = HeroesIcons.GetOtherIcon(OtherIcon.Assist); ScoreDeathIcon = HeroesIcons.GetOtherIcon(OtherIcon.Death); BlueKillsIcons = HeroesIcons.GetOtherIcon(OtherIcon.KillsBlue); RedKillsIcons = HeroesIcons.GetOtherIcon(OtherIcon.KillsRed); LeftArrowDisabledIcon = HeroesIcons.GetOtherIcon(OtherIcon.LongarrowLeftDisabled); LeftArrowDownIcon = HeroesIcons.GetOtherIcon(OtherIcon.LongarrowLeftDown); LeftArrowHoverIcon = HeroesIcons.GetOtherIcon(OtherIcon.LongarrowLeftHover); LeftArrowNormalIcon = HeroesIcons.GetOtherIcon(OtherIcon.LongarrowLeftNormal); RightArrowDisabledIcon = HeroesIcons.GetOtherIcon(OtherIcon.LongarrowRightDisabled); RightArrowDownIcon = HeroesIcons.GetOtherIcon(OtherIcon.LongarrowRightDown); RightArrowHoverIcon = HeroesIcons.GetOtherIcon(OtherIcon.LongarrowRightHover); RightArrowNormalIcon = HeroesIcons.GetOtherIcon(OtherIcon.LongarrowRightNormal); HasBans = false; HasObservers = false; HasChat = false; TeamLevelTimeGraph = new TeamLevelTimeGraph(); TeamExperienceGraph = new TeamExperienceGraph(Database); StatGraphs = new StatGraphs(Database); Messenger.Default.Register <NotificationMessage>(this, (message) => ReceivedMessage(message)); SimpleIoc.Default.Register <IMatchSummaryReplayService>(() => this); }
// if this algorithm is changed then TalentTooltipStripNonText method in HeroIconsTest.cs needs to be changed as well public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { string text = value as string; if (string.IsNullOrEmpty(text)) { return(text); } var span = new Span(); while (text.Length > 0) { int startIndex = text.IndexOf("<"); if (startIndex > -1) { int endIndex = text.IndexOf(">", startIndex) + 1; // example <c val="#TooltipNumbers"> string startTag = text.Substring(startIndex, endIndex - startIndex); if (startTag == "<n/>" || startTag == "</n>") { span.Inlines.Add(new Run(text.Substring(0, startIndex))); span.Inlines.Add(new Run("\n")); // remove, this part of the string is not needed anymore text = text.Remove(0, endIndex); continue; } else if (startTag.ToLower().StartsWith("<c val=")) { string colorValue = startTag.Substring(8, startTag.Length - 10); int offset = 4; int closingCTagIndex = text.ToLower().IndexOf("</c>", endIndex); // check if an ending tag exists if (closingCTagIndex > 0) { span.Inlines.Add(new Run(text.Substring(0, startIndex))); span.Inlines.Add(new Run(text.Substring(endIndex, closingCTagIndex - endIndex)) { Foreground = SetTooltipColors(colorValue), FontSize = 15, FontWeight = FontWeights.SemiBold }); // remove, this part of the string is not needed anymore text = text.Remove(0, closingCTagIndex + offset); } else { span.Inlines.Add(new Run(text.Substring(0, startIndex))); // add the rest of the text span.Inlines.Add(new Run(text.Substring(endIndex, text.Length - endIndex)) { Foreground = SetTooltipColors(colorValue), FontSize = 15, FontWeight = FontWeights.SemiBold }); // none left text = string.Empty; } } else if (startTag.ToLower().StartsWith("<s val=")) { string colorValue = startTag.Substring(8, startTag.Length - 10); int offset = 4; int closingCTagIndex = text.ToLower().IndexOf("</s>", endIndex); // check if an ending tag exists if (closingCTagIndex > 0) { span.Inlines.Add(new Run(text.Substring(0, startIndex))); span.Inlines.Add(new Run(text.Substring(endIndex, closingCTagIndex - endIndex)) { Foreground = SetTooltipColors(colorValue), FontSize = 15, FontWeight = FontWeights.SemiBold }); // remove, this part of the string is not needed anymore text = text.Remove(0, closingCTagIndex + offset); } else { span.Inlines.Add(new Run(text.Substring(0, startIndex))); // add the rest of the text span.Inlines.Add(new Run(text.Substring(endIndex, text.Length - endIndex)) { Foreground = SetTooltipColors(colorValue), FontSize = 15, FontWeight = FontWeights.SemiBold }); // none left text = string.Empty; } } else if (startTag.StartsWith("<img path=\"@UI/StormTalentInTextQuestIcon\"") || startTag.StartsWith("<img path=\"@UI/StormTalentInTextQuestIcon\"")) { int closingTag = text.IndexOf("/>"); span.Inlines.Add(new Run(text.Substring(0, startIndex))); Image image = new Image() { Source = CreateImage(HeroesIcons.GetOtherIcon(OtherIcon.Quest)), Height = 22, Width = 20, Margin = new Thickness(0, 0, 4, -2), VerticalAlignment = VerticalAlignment.Center, }; InlineUIContainer container = new InlineUIContainer(image); span.Inlines.Add(container); // remove, this part of the string is not needed anymore text = text.Remove(0, closingTag + 2); } else if (startTag.StartsWith("<img path=\"@UI/StormTalentInTextArmorIcon\" alignment=\"uppermiddle\"")) { int closingTag = text.IndexOf("/>"); span.Inlines.Add(new Run(text.Substring(0, startIndex))); BitmapImage bitmapImage = null; if (startTag.Contains("color=\"e12bfc\"")) { bitmapImage = CreateImage(HeroesIcons.GetOtherIcon(OtherIcon.StatusResistShieldSpell)); } else if (startTag.Contains("color=\"ff6600\"")) { bitmapImage = CreateImage(HeroesIcons.GetOtherIcon(OtherIcon.StatusResistShieldPhysical)); } else // if (startTag.Contains("color=\"BBBBBB\"")) { bitmapImage = CreateImage(HeroesIcons.GetOtherIcon(OtherIcon.StatusResistShieldDefault)); } bitmapImage.Freeze(); Image image = new Image() { Source = bitmapImage, Height = 20, Width = 18, Margin = new Thickness(0, 0, 4, -2), VerticalAlignment = VerticalAlignment.Center, }; InlineUIContainer container = new InlineUIContainer(image); span.Inlines.Add(container); // remove, this part of the string is not needed anymore text = text.Remove(0, closingTag + 2); } else { span.Inlines.Add(new Run(text)); text = string.Empty; WarningLog.Log(LogLevel.Warn, $"[{nameof(TalentTooltipTextConverter)}] Unknown tag: {startTag} - FullText: {value.ToString()}"); } } else { // add the rest if (text.Length > 0) { span.Inlines.Add(new Run(text)); } text = string.Empty; } } return(span); }