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(); }
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(); }
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); }
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); }
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); }