Example #1
0
        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;
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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;
                }
            }
        }