private void img_MouseLeave(object sender, MouseEventArgs e) { SmallChampionItem icon = (SmallChampionItem)sender; LargeChatPlayer PlayerItem = (LargeChatPlayer)icon.Tag; if (PlayerItem != null) { Client.MainGrid.Children.Remove(PlayerItem); icon.Tag = null; } }
void UpdateReplays() { GamePanel.Children.Clear(); var dir = new DirectoryInfo("cabinet"); var directories = dir.EnumerateDirectories() .OrderBy(d => d.CreationTime); string[] Replays = Directory.GetDirectories("cabinet"); foreach (DirectoryInfo di in directories) { string d = di.Name; if (!File.Exists(Path.Combine("cabinet", d, "token")) || !File.Exists(Path.Combine("cabinet", d, "key")) || !File.Exists(Path.Combine("cabinet", d, "endOfGameStats"))) continue; byte[] Base64Stats = Convert.FromBase64String(File.ReadAllText(Path.Combine("cabinet", d, "endOfGameStats"))); AmfReader statsReader = new AmfReader(new MemoryStream(Base64Stats), context); EndOfGameStats stats = (EndOfGameStats)statsReader.ReadAmf3Item(); ReplayItem item = new ReplayItem(); //Use unoccupied variable stats.Difficulty = d; item.Tag = stats; item.GameId.Content = d; item.GameType.Content = stats.GameMode.ToLower(); item.GameDate.Content = di.CreationTime.ToShortTimeString() + " " + di.CreationTime.ToShortDateString(); double seconds = stats.GameLength % 60; double minutes = stats.GameLength / 60; item.GameTime.Content = string.Format("{0:0}:{1:00}", minutes, seconds); item.Margin = new Thickness(0, 5, 0, 0); foreach (PlayerParticipantStatsSummary summary in stats.TeamPlayerParticipantStats) { SmallChampionItem image = new SmallChampionItem(); image.Width = 38; image.Height = 38; Uri UriSource = new Uri("/LegendaryReplays;component/champion/" + summary.SkinName + ".png", UriKind.RelativeOrAbsolute); image.ChampionImage.Source = new BitmapImage(UriSource); item.TeamOnePanel.Children.Add(image); } foreach (PlayerParticipantStatsSummary summary in stats.OtherTeamPlayerParticipantStats) { SmallChampionItem image = new SmallChampionItem(); image.Width = 38; image.Height = 38; Uri UriSource = new Uri("/LegendaryReplays;component/champion/" + summary.SkinName + ".png", UriKind.RelativeOrAbsolute); image.ChampionImage.Source = new BitmapImage(UriSource); item.TeamTwoPanel.Children.Add(image); } item.MouseDown += item_MouseDown; //Insert on top GamePanel.Children.Insert(0, item); } }
private void img_MouseMove(object sender, MouseEventArgs e) { SmallChampionItem icon = (SmallChampionItem)sender; BitmapImage img = (BitmapImage)icon.ChampionImage.Source; if (img == null) { return; } LargeChatPlayer PlayerItem = (LargeChatPlayer)icon.Tag; if (PlayerItem == null) { PlayerItem = new LargeChatPlayer(); string[] s = img.UriSource.Segments; int id = int.Parse(s[s.Length - 1].Replace(".png", "")); Client.MainGrid.Children.Add(PlayerItem); items Item = items.GetItem(id); PlayerItem.PlayerName.Content = Item.name; PlayerItem.PlayerName.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); if (PlayerItem.PlayerName.DesiredSize.Width > 250) //Make title fit in item { PlayerItem.Width = PlayerItem.PlayerName.DesiredSize.Width; } else { PlayerItem.Width = 250; } PlayerItem.PlayerWins.Content = Item.price + " gold (" + Item.sellprice + " sell)"; PlayerItem.PlayerLeague.Content = "Item ID " + Item.id; PlayerItem.LevelLabel.Content = ""; PlayerItem.UsingLegendary.Visibility = System.Windows.Visibility.Hidden; string ParsedDescription = Item.description; ParsedDescription = ParsedDescription.Replace("<br>", Environment.NewLine); ParsedDescription = Regex.Replace(ParsedDescription, "<.*?>", string.Empty); PlayerItem.PlayerStatus.Text = ParsedDescription; PlayerItem.ProfileImage.Source = img; PlayerItem.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; PlayerItem.VerticalAlignment = System.Windows.VerticalAlignment.Top; PlayerItem.Visibility = Visibility.Hidden; icon.Tag = PlayerItem; } if (PlayerItem.ActualHeight != 0 && PlayerItem.ActualWidth != 0) { double YMargin = (Client.MainGrid.ActualHeight / 2) - (PlayerItem.ActualHeight / 2); double XMargin = (Client.MainGrid.ActualWidth / 2) - (PlayerItem.ActualWidth / 2); PlayerItem.Margin = new Thickness(XMargin, YMargin, 0, 0); if (PlayerItem.Visibility == Visibility.Hidden) { PlayerItem.Visibility = Visibility.Visible; } } }