示例#1
0
        void item_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            MasteryItem item       = (MasteryItem)sender;
            masteries   playerItem = (masteries)item.Tag;

            if (playerItem.selectedRank == 0)
            {
                return;
            }

            //Temp check - make it so you can remove masteries even if they are above mastery if enough points in tree
            List <masteries> FilteredMasteries = Client.Masteries.FindAll(x => x.tree == playerItem.tree && x.treeRow > playerItem.treeRow);

            foreach (masteries checkMastery in FilteredMasteries)
            {
                if (checkMastery.selectedRank > 0)
                {
                    return;
                }
            }
            playerItem.selectedRank -= 1;
            foreach (masteries talent in Client.Masteries)
            {
                if (playerItem.id == talent.id)
                {
                    talent.selectedRank = playerItem.selectedRank;
                }
            }
            RenderMasteries();
        }
示例#2
0
        void item_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            MasteryItem item       = (MasteryItem)sender;
            masteries   playerItem = (masteries)item.Tag;

            //Max rank
            if (playerItem.selectedRank == playerItem.ranks)
            {
                return;
            }
            //Has enough points in tree
            switch (playerItem.tree)
            {
            case "Offense":
                if (OffenseUsedPoints < playerItem.treeRow * 4)
                {
                    return;
                }
                break;

            case "Defense":
                if (DefenseUsedPoints < playerItem.treeRow * 4)
                {
                    return;
                }
                break;

            default:
                if (UtilityUsedPoints < playerItem.treeRow * 4)
                {
                    return;
                }
                break;
            }
            //Has enough points overall
            if (UsedPoints >= Client.LoginPacket.AllSummonerData.SummonerTalentsAndPoints.TalentPoints)
            {
                return;
            }
            //If it has a prerequisite mastery, check if points in it
            if (playerItem.prereq != 0)
            {
                masteries prereqMastery = Client.Masteries.Find(x => playerItem.prereq == x.id);
                if (prereqMastery.selectedRank != prereqMastery.ranks)
                {
                    return;
                }
            }

            playerItem.selectedRank += 1;
            foreach (masteries talent in Client.Masteries)
            {
                if (playerItem.id == talent.id)
                {
                    talent.selectedRank = playerItem.selectedRank;
                }
            }
            RenderMasteries();
        }
示例#3
0
        public static List <masteries> PopulateMasteries()
        {
            List <masteries> MasteryList = new List <masteries>();

            string masteryJSON = File.ReadAllText(Path.Combine(Client.ExecutingDirectory, "Assets", "data", "en_US", "mastery.json"));
            JavaScriptSerializer        serializer       = new JavaScriptSerializer();
            Dictionary <string, object> deserializedJSON = serializer.Deserialize <Dictionary <string, object> >(masteryJSON);
            Dictionary <string, object> masteryData      = deserializedJSON["data"] as Dictionary <string, object>;
            Dictionary <string, object> treeData         = deserializedJSON["tree"] as Dictionary <string, object>;

            foreach (KeyValuePair <string, object> mastery in masteryData)
            {
                masteries newMastery = new masteries();
                Dictionary <string, object> singularMasteryData = mastery.Value as Dictionary <string, object>;
                newMastery.id          = Convert.ToInt32(mastery.Key);
                newMastery.name        = singularMasteryData["name"] as string;
                newMastery.description = singularMasteryData["description"] as ArrayList;
                newMastery.ranks       = (int)singularMasteryData["ranks"];
                newMastery.prereq      = Convert.ToInt32(singularMasteryData["prereq"]);

                Dictionary <string, object> imageData = singularMasteryData["image"] as Dictionary <string, object>;
                var uriSource = Path.Combine(Client.ExecutingDirectory, "Assets", "mastery", (string)imageData["full"]);
                newMastery.icon = Client.GetImage(uriSource);

                MasteryList.Add(newMastery);
            }

            int i = 0;

            foreach (KeyValuePair <string, object> tree in treeData)
            {
                ArrayList list = (ArrayList)tree.Value;
                for (i = 0; i < list.Count; i++)
                {
                    foreach (Dictionary <string, object> x in (ArrayList)list[i])
                    {
                        if (x != null)
                        {
                            int       MasteryId   = Convert.ToInt32(x["masteryId"]);
                            masteries tempMastery = MasteryList.Find(y => y.id == MasteryId);
                            tempMastery.treeRow = i;
                            tempMastery.tree    = tree.Key;
                        }
                    }
                }
            }

            return(MasteryList);
        }
示例#4
0
        private void item_MouseMove(object sender, MouseEventArgs e)
        {
            MasteryItem item       = (MasteryItem)sender;
            masteries   playerItem = (masteries)item.Tag;

            if (PlayerItem == null)
            {
                PlayerItem = new LargeChatPlayer();
                Client.MainGrid.Children.Add(PlayerItem);

                Panel.SetZIndex(PlayerItem, 4);

                //Only load once
                PlayerItem.ProfileImage.Source = playerItem.icon;
                PlayerItem.PlayerName.Content  = playerItem.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 = "Requires " + playerItem.treeRow * 4 + " points in " + playerItem.tree;

                bool IsAtRequirement = true;
                switch (playerItem.tree)
                {
                case "Offense":
                    if (OffenseUsedPoints < playerItem.treeRow * 4)
                    {
                        IsAtRequirement = false;
                    }
                    break;

                case "Defense":
                    if (DefenseUsedPoints < playerItem.treeRow * 4)
                    {
                        IsAtRequirement = false;
                    }
                    break;

                default:
                    if (UtilityUsedPoints < playerItem.treeRow * 4)
                    {
                        IsAtRequirement = false;
                    }
                    break;
                }

                if (IsAtRequirement)
                {
                    if (playerItem.prereq != 0)
                    {
                        masteries prereqMastery = Client.Masteries.Find(x => playerItem.prereq == x.id);
                        PlayerItem.PlayerWins.Content = "Requires " + prereqMastery.ranks + " points in " + prereqMastery.name;
                    }
                }

                PlayerItem.PlayerLeague.Content      = playerItem.id;
                PlayerItem.LevelLabel.Content        = playerItem.selectedRank + "/" + playerItem.ranks;
                PlayerItem.UsingLegendary.Visibility = System.Windows.Visibility.Hidden;

                int SelectedRank = playerItem.selectedRank;
                if (SelectedRank == 0)
                {
                    SelectedRank = 1;
                }
                PlayerItem.PlayerStatus.Text = ((string)playerItem.description[SelectedRank - 1]).Replace("<br>", Environment.NewLine);

                PlayerItem.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                PlayerItem.VerticalAlignment   = System.Windows.VerticalAlignment.Top;
            }

            Point MouseLocation = e.GetPosition(Client.MainGrid);

            double YMargin = MouseLocation.Y;

            double XMargin = MouseLocation.X;

            if (XMargin + PlayerItem.Width + 10 > Client.MainGrid.ActualWidth)
            {
                XMargin = Client.MainGrid.ActualWidth - PlayerItem.Width - 10;
            }

            PlayerItem.Margin = new Thickness(XMargin + 5, YMargin + 5, 0, 0);
        }
示例#5
0
文件: Masteries.cs 项目: duylee/LMHT
        public static List <masteries> PopulateMasteries()
        {
            var masteryList = new List <masteries>();

            string masteryJson =
                File.ReadAllText(Path.Combine(Client.ExecutingDirectory, "Assets", "data", "en_US", "mastery.json"));
            var serializer       = new JavaScriptSerializer();
            var deserializedJson = serializer.Deserialize <Dictionary <string, object> >(masteryJson);
            var masteryData      = deserializedJson["data"] as Dictionary <string, object>;
            var treeData         = deserializedJson["tree"] as Dictionary <string, object>;

            if (masteryData != null)
            {
                foreach (var mastery in masteryData)
                {
                    var singularMasteryData = mastery.Value as Dictionary <string, object>;
                    var newMastery          = new masteries {
                        id = Convert.ToInt32(mastery.Key)
                    };
                    if (singularMasteryData != null)
                    {
                        newMastery.name        = singularMasteryData["name"] as string;
                        newMastery.description = singularMasteryData["description"] as ArrayList;
                        newMastery.ranks       = (int)singularMasteryData["ranks"];
                        newMastery.prereq      = Convert.ToInt32(singularMasteryData["prereq"]);

                        var imageData = singularMasteryData["image"] as Dictionary <string, object>;
                        if (imageData != null)
                        {
                            string UriSource = Path.Combine(Client.ExecutingDirectory, "Assets", "mastery",
                                                            (string)imageData["full"]);
                            newMastery.icon = Client.GetImage(UriSource);
                        }
                    }

                    masteryList.Add(newMastery);
                }
            }

            if (treeData == null)
            {
                return(masteryList);
            }

            foreach (var tree in treeData)
            {
                var list = (ArrayList)tree.Value;
                int i;
                for (i = 0; i < list.Count; i++)
                {
                    foreach (masteries tempMastery in from Dictionary <string, object> x in (ArrayList)list[i]
                             where x != null
                             select Convert.ToInt32(x["masteryId"])
                             into masteryId
                             select masteryList.Find(y => y.id == masteryId))
                    {
                        tempMastery.treeRow = i;
                        tempMastery.tree    = tree.Key;
                    }
                }
            }

            return(masteryList);
        }