diff --git a/LoLMasteryManager/ChampionGG.vb b/LoLMasteryManager/ChampionGG.vb
index b71d702..012d3e4 100644
--- a/LoLMasteryManager/ChampionGG.vb
+++ b/LoLMasteryManager/ChampionGG.vb
@@ -317,7 +317,8 @@ Module ChampionGG
For Each oMasteryNode As HtmlNode In oMasteryRow.SelectNodes("descendant::div[contains(@class, 'mastery-icon')]")
- Dim iMasteryID As Integer = CInt(oMasteryNode.Attributes.Item("api-primary-id").Value)
+ 'Dim iMasteryID As Integer = CInt(oMasteryNode.Attributes.Item("api-primary-id").Value)
+ Dim iMasteryID As Integer = CInt(oMasteryNode.Attributes.Item("data-id").Value)
oMastery = GetMastery(iMasteryID)
@@ -412,6 +413,8 @@ Module ChampionGG
End Using
Dim oRiotMasteries As Dictionary(Of String, RiotMastery) = JsonConvert.DeserializeObject(Of RiotMasteryListFile)(sJson).Masteries
+ Dim oRiotTree As RiotMasteryTreeList = JsonConvert.DeserializeObject(Of RiotMasteryListFile)(sJson).Tree
+
Dim oRiotMastery As RiotMastery = oRiotMasteries(id.ToString)
Dim oMastery As New Mastery
@@ -419,7 +422,8 @@ Module ChampionGG
With oMastery
.ID = oRiotMastery.ID
.Name = oRiotMastery.Name
- .Tree = oRiotMastery.Tree
+ '.Tree = oRiotMastery.Tree
+ .Tree = ExtractTree(oRiotMastery.ID, oRiotTree)
End With
Return oMastery
@@ -432,6 +436,44 @@ Module ChampionGG
End Function
+ Private Function ExtractTree(iD As Integer, oRiotTree As RiotMasteryTreeList) As String
+
+ For Each oCunningList In oRiotTree.Cunning
+ For Each oMastery As RiotMasteryIdPrereq In oCunningList
+ If oMastery IsNot Nothing Then
+ If oMastery.MasteryId.Equals(Convert.ToString(iD)) Then
+ Return "Cunning"
+ End If
+ End If
+
+ Next
+ Next
+
+ For Each oFerocityList In oRiotTree.Ferocity
+ For Each oMastery As RiotMasteryIdPrereq In oFerocityList
+ If oMastery IsNot Nothing Then
+ If oMastery.MasteryId.Equals(Convert.ToString(iD)) Then
+ Return "Ferocity"
+ End If
+ End If
+
+ Next
+ Next
+
+ For Each oResolveList In oRiotTree.Resolve
+ For Each oMastery As RiotMasteryIdPrereq In oResolveList
+ If oMastery IsNot Nothing Then
+ If oMastery.MasteryId.Equals(Convert.ToString(iD)) Then
+ Return "Resolve"
+ End If
+ End If
+
+ Next
+ Next
+
+ Return ""
+ End Function
+
'''
''' Extracts the number of assigned mastery ranks from the given node.
'''
diff --git a/LoLMasteryManager/Coordinates.json b/LoLMasteryManager/Coordinates.json
index d6186ba..030dc14 100644
--- a/LoLMasteryManager/Coordinates.json
+++ b/LoLMasteryManager/Coordinates.json
@@ -1,87 +1,97 @@
{
"reference_client_size": "1280, 800",
+ "absolute_coordinates": "true",
"mastery_coordinates_menu": {
- "6111": "387, 267",
- "6114": "521, 267",
- "6121": "422, 339",
- "6122": "489, 339",
- "6131": "388, 410",
- "6134": "522, 410",
- "6141": "422, 481",
- "6142": "489, 481",
- "6151": "388, 552",
- "6154": "522, 552",
- "6161": "388, 623",
- "6162": "455, 623",
- "6164": "522, 623",
- "6211": "937, 267",
- "6212": "1071, 267",
- "6221": "972, 339",
- "6223": "1039, 339",
- "6231": "938, 410",
- "6232": "1072, 410",
- "6241": "972, 481",
- "6242": "1039, 481",
- "6251": "938, 552",
- "6252": "1072, 552",
- "6261": "938, 623",
- "6262": "1005, 623",
- "6263": "1072, 623",
- "6311": "662, 267",
- "6312": "796, 267",
- "6321": "663, 339",
- "6322": "730, 339",
- "6323": "797, 339",
- "6331": "663, 410",
- "6332": "797, 410",
- "6342": "697, 481",
- "6343": "764, 481",
- "6351": "663, 552",
- "6352": "797, 552",
- "6361": "663, 623",
- "6362": "730, 623",
- "6363": "797, 623"
+ "6111": "730,470",
+ "6114": "865,470",
+ "6121": "730,545",
+ "6122": "800,545",
+ "6123": "865,545",
+ "6131": "730,615",
+ "6134": "865,615",
+ "6141": "770,685",
+ "6142": "835,685",
+ "6151": "730,755",
+ "6154": "865,755",
+ "6161": "730,830",
+ "6162": "800,830",
+ "6164": "865,830",
+ "6211": "1280,470",
+ "6212": "1415,470",
+ "6221": "1320,545",
+ "6223": "1385,545",
+ "6231": "1280,615",
+ "6232": "1415,615",
+ "6241": "1320,685",
+ "6242": "1385,685",
+ "6251": "1280,755",
+ "6252": "1415,755",
+ "6261": "1280,830",
+ "6262": "1350,830",
+ "6263": "1415,830",
+ "6311": "1005,470",
+ "6312": "1140,470",
+ "6321": "1005,545",
+ "6322": "1075,545",
+ "6323": "1140,545",
+ "6331": "1005,615",
+ "6332": "1140,615",
+ "6342": "1040,685",
+ "6343": "1110,685",
+ "6351": "1005,755",
+ "6352": "1140,755",
+ "6361": "1005,830",
+ "6362": "1075,830",
+ "6363": "1140,830",
+ "Input": "540,445",
+ "Return": "540,600",
+ "Save": "540,570"
},
"mastery_coordinates_champion_select": {
- "6111": "397, 186",
- "6114": "531, 186",
- "6121": "432, 258",
- "6122": "499, 258",
- "6131": "398, 329",
- "6134": "532, 329",
- "6141": "432, 400",
- "6142": "499, 400",
- "6151": "398, 471",
- "6154": "532, 471",
- "6161": "398, 542",
- "6162": "465, 542",
- "6164": "532, 542",
- "6211": "947, 186",
- "6212": "1081, 186",
- "6221": "982, 258",
- "6223": "1049, 258",
- "6231": "948, 329",
- "6232": "1082, 329",
- "6241": "982, 400",
- "6242": "1049, 400",
- "6251": "948, 471",
- "6252": "1082, 471",
- "6261": "948, 542",
- "6262": "1015, 542",
- "6263": "1082, 542",
- "6311": "672, 186",
- "6312": "806, 186",
- "6321": "673, 258",
- "6322": "740, 258",
- "6323": "807, 258",
- "6331": "673, 329",
- "6332": "807, 329",
- "6342": "707, 400",
- "6343": "774, 400",
- "6351": "673, 471",
- "6352": "807, 471",
- "6361": "673, 542",
- "6362": "740, 542",
- "6363": "807, 542"
+ "6111": "730, 330",
+ "6114": "865, 330",
+ "6121": "730, 400",
+ "6122": "800, 400",
+ "6123": "870, 400",
+ "6131": "730, 475",
+ "6134": "865, 475",
+ "6141": "770, 545",
+ "6142": "840, 545",
+ "6151": "730, 615",
+ "6154": "865, 615",
+ "6161": "730, 690",
+ "6162": "800, 690",
+ "6164": "865, 690",
+ "6211": "1280, 330",
+ "6212": "1415, 330",
+ "6221": "1320, 400",
+ "6223": "1390, 400",
+ "6231": "1280, 475",
+ "6232": "1415, 475",
+ "6241": "1320, 545",
+ "6242": "1390, 545",
+ "6251": "1280, 615",
+ "6252": "1415, 615",
+ "6261": "1280, 690",
+ "6262": "1350, 690",
+ "6263": "1415, 690",
+ "6311": "1005, 330",
+ "6312": "1140, 330",
+ "6321": "1005, 400",
+ "6322": "1080, 400",
+ "6323": "1140, 400",
+ "6331": "1005, 475",
+ "6332": "1140, 475",
+ "6342": "1050, 545",
+ "6343": "1110, 545",
+ "6351": "1005, 615",
+ "6352": "1140, 615",
+ "6361": "1005, 690",
+ "6362": "1080, 690",
+ "6363": "1140, 690",
+ "Input": "540, 305",
+ "Return": "540,460",
+ "Save": "540,430"
}
}
+
diff --git a/LoLMasteryManager/Extensions.vb b/LoLMasteryManager/Extensions.vb
index a9e6211..451916e 100644
--- a/LoLMasteryManager/Extensions.vb
+++ b/LoLMasteryManager/Extensions.vb
@@ -46,7 +46,7 @@ Public Module Extensions
''' The stat value to get the abbreviation for.
''' The abbreviation for the given stat.
- Public Function GetAbbreviation(ByRef stat As Stats) As String
+ Public Function GetStatAbbreviation(ByRef stat As Stats) As String
Try
@@ -78,4 +78,41 @@ Public Module Extensions
End Function
+
+ Public Function GetRoleAbbreviation(ByRef role As String) As String
+
+ Try
+
+ Dim sAbbreviation As String
+
+ Select Case role
+
+ Case "Middle"
+
+ sAbbreviation = "MID"
+
+ Case "Support"
+
+ sAbbreviation = "SUP"
+
+ Case "Jungle"
+
+ sAbbreviation = "JNG"
+
+
+ Case Else
+
+ sAbbreviation = role
+
+ End Select
+
+ Return sAbbreviation
+
+ Catch ex As Exception
+
+ Throw
+
+ End Try
+ End Function
+
End Module
diff --git a/LoLMasteryManager/Masteries.json b/LoLMasteryManager/Masteries.json
index a487354..4c124cc 100644
--- a/LoLMasteryManager/Masteries.json
+++ b/LoLMasteryManager/Masteries.json
@@ -1,354 +1 @@
-{
- "data": {
- "6111": {
- "id": 6111,
- "description": [
- "+0.8% Attack Speed",
- "+1.6% Attack Speed",
- "+2.4% Attack Speed",
- "+3.2% Attack Speed",
- "+4% Attack Speed"
- ],
- "name": "Fury",
- "masteryTree": "Ferocity"
- },
- "6114": {
- "id": 6114,
- "description": [
- "+0.4% increased Ability and Spell damage",
- "+0.8% increased Ability and Spell damage",
- "+1.2% increased Ability and Spell damage",
- "+1.6% increased Ability and Spell damage",
- "+2.0% increased Ability and Spell damage"
- ],
- "name": "Sorcery",
- "masteryTree": "Ferocity"
- },
- "6121": {
- "id": 6121,
- "description": [ "Melee - Deal an additional 3% damage, take an additional 1.5% damage.
Ranged - Deal and take an additional 2% damage." ],
- "name": "Double Edged Sword",
- "masteryTree": "Ferocity"
- },
- "6122": {
- "id": 6122,
- "description": [ "Killing a unit restores 20 Health (20 second cooldown)." ],
- "name": "Feast",
- "masteryTree": "Ferocity"
- },
- "6131": {
- "id": 6131,
- "description": [
- "+0.4% Lifesteal and Spell Vamp",
- "+0.8% Lifesteal and Spell Vamp",
- "+1.2% Lifesteal and Spell Vamp",
- "+1.6% Lifesteal and Spell Vamp",
- "+2.0% Lifesteal and Spell Vamp"
- ],
- "name": "Vampirism",
- "masteryTree": "Ferocity"
- },
- "6134": {
- "id": 6134,
- "description": [
- "+2 Attack Damage and 3 Ability Power at level 18 (.11 Attack Damage and .16 Ability Power per level)",
- "+4 Attack Damage and 6 Ability Power at level 18 (.22 Attack Damage and .32 Ability Power per level)",
- "+6 Attack Damage and 9 Ability Power at level 18 (.33 Attack Damage and .5 Ability Power per level)",
- "+8 Attack Damage and 12 Ability Power at level 18 (.44 Attack Damage and .66 Ability Power per level)",
- "+10 Attack Damage and 15 Ability Power at level 18 (.55 Attack Damage and .83 Ability Power per level)"
- ],
- "name": "Natural Talent",
- "masteryTree": "Ferocity"
- },
- "6141": {
- "id": 6141,
- "description": [ "You deal 1% increased damage for each unique enemy champion you kill." ],
- "name": "Bounty Hunter",
- "masteryTree": "Ferocity"
- },
- "6142": {
- "id": 6142,
- "description": [ "You deal 2.5% increased damage to targets with impaired movement (slow, stun, snare, taunt, etc.)." ],
- "name": "Oppressor",
- "masteryTree": "Ferocity"
- },
- "6151": {
- "id": 6151,
- "description": [
- "+1.4% Armor Penetration",
- "+2.8% Armor Penetration",
- "+4.2% Armor Penetration",
- "+5.6% Armor Penetration",
- "+7% Armor Penetration"
- ],
- "name": "Battering Blows",
- "masteryTree": "Ferocity"
- },
- "6154": {
- "id": 6154,
- "description": [
- "+1.4% Magic Penetration",
- "+2.8% Magic Penetration",
- "+4.2% Magic Penetration",
- "+5.6% Magic Penetration",
- "+7% Magic Penetration"
- ],
- "name": "Piercing Thoughts",
- "masteryTree": "Ferocity"
- },
- "6161": {
- "id": 6161,
- "description": [ "Critical strikes heal for 15% of the damage dealt and grant you 20% attack speed for 4 seconds (2 second cooldown)." ],
- "name": "Warlord's Bloodlust",
- "masteryTree": "Ferocity"
- },
- "6162": {
- "id": 6162,
- "description": [ "Your basic attacks and spells grant you a stack of Fervor for 5 seconds (max 10 stacks). Each stack of Fervor adds 1-8 bonus physical damage to your basic attacks against champions, based on your level." ],
- "name": "Fervor of Battle",
- "masteryTree": "Ferocity"
- },
- "6164": {
- "id": 6164,
- "description": [ "Your damaging abilities cause enemy champions to take 6 + 50% of your Bonus Attack Damage and 20% of your Ability Power in Magic damage over 3 seconds (Area of effect and damage over time abilities apply half of this damage over 1.5 seconds instead)." ],
- "name": "Deathfire Touch",
- "masteryTree": "Ferocity"
- },
- "6211": {
- "id": 6211,
- "description": [
- "+0.4 Health Regen per 5 seconds",
- "+0.8 Health Regen per 5 seconds",
- "+1.2 Health Regen per 5 seconds",
- "+1.6 Health Regen per 5 seconds",
- "+2.0 Health Regen per 5 seconds"
- ],
- "name": "Recovery",
- "masteryTree": "Resolve"
- },
- "6212": {
- "id": 6212,
- "description": [
- "+1.2% Bonus Armor and Magic Resist",
- "+2.4% Bonus Armor and Magic Resist",
- "+3.6% Bonus Armor and Magic Resist",
- "+4.8% Bonus Armor and Magic Resist",
- "+6% Bonus Armor and Magic Resist"
- ],
- "name": "Unyielding",
- "masteryTree": "Resolve"
- },
- "6221": {
- "id": 6221,
- "description": [ "+12 Movement Speed in Brush and River" ],
- "name": "Explorer",
- "masteryTree": "Resolve"
- },
- "6223": {
- "id": 6223,
- "description": [ "You take 2 less damage from Champion and Monster basic attacks." ],
- "name": "Tough Skin",
- "masteryTree": "Resolve"
- },
- "6231": {
- "id": 6231,
- "description": [
- "+1.6% bonus to all shields and healing on you (includes lifesteal and regeneration).",
- "+3.2% bonus to all shields and healing on you (includes lifesteal and regeneration)",
- "+4.8% bonus to all shields and healing on you (includes lifesteal and regeneration)",
- "+6.4% bonus to all shields and healing on you (includes lifesteal and regeneration)",
- "+8% bonus to all shields and healing on you (includes lifesteal and regeneration)"
- ],
- "name": "Runic Armor",
- "masteryTree": "Resolve"
- },
- "6232": {
- "id": 6232,
- "description": [
- "+0.8% Total Health",
- "+1.6% Total Health",
- "+2.4% Total Health",
- "+3.2% Total Health",
- "+4% Total Health"
- ],
- "name": "Veteran's Scars",
- "masteryTree": "Resolve"
- },
- "6241": {
- "id": 6241,
- "description": [ "Your summoner spells have 15% reduced cooldown." ],
- "name": "Insight",
- "masteryTree": "Resolve"
- },
- "6242": {
- "id": 6242,
- "description": [ "+50% Health Regen, increased to +200% when below 20% Health" ],
- "name": "Perseverance",
- "masteryTree": "Resolve"
- },
- "6251": {
- "id": 6251,
- "description": [
- "+3% Tenacity and Slow Resist",
- "+6% Tenacity and Slow Resist",
- "+9% Tenacity and Slow Resist",
- "+12% Tenacity and Slow Resist",
- "+15% Tenacity and Slow Resist"
- ],
- "name": "Swiftness",
- "masteryTree": "Resolve"
- },
- "6252": {
- "id": 6252,
- "description": [
- "+0.6 Armor and Magic Resist for each nearby enemy champion",
- "+1.2 Armor and Magic Resist for each nearby enemy champion",
- "+1.8 Armor and Magic Resist for each nearby enemy champion",
- "+2.4 Armor and Magic Resist for each nearby enemy champion",
- "+3 Armor and Magic Resist for each nearby enemy champion"
- ],
- "name": "Legendary Guardian",
- "masteryTree": "Resolve"
- },
- "6261": {
- "id": 6261,
- "description": [ "Every 4 seconds in combat your next attack against an enemy champion steals life equal to 3% of your max Health (halved for ranged champions)." ],
- "name": "Grasp of the Undying",
- "masteryTree": "Resolve"
- },
- "6262": {
- "id": 6262,
- "description": [ "Large monsters and siege minions that you or nearby allies kill grant you 20 and 10 permanent Health respectively (300 max). After reaching the max bonus further siege minion kills restore 100 Health." ],
- "name": "Strength of the Ages",
- "masteryTree": "Resolve"
- },
- "6263": {
- "id": 6263,
- "description": [ "+4% Damage Reduction. While near an ally this bonus is doubled and 8% of the damage they would take from champions is dealt to you instead (cannot reduce you below 15% Health)." ],
- "name": "Bond of Stone",
- "masteryTree": "Resolve"
- },
- "6311": {
- "id": 6311,
- "description": [
- "+0.6% Movement Speed out of Combat",
- "+1.2% Movement Speed out of Combat",
- "+1.8% Movement Speed out of Combat",
- "+2.4% Movement Speed out of Combat",
- "+3% Movement Speed out of Combat"
- ],
- "name": "Wanderer",
- "masteryTree": "Cunning"
- },
- "6312": {
- "id": 6312,
- "description": [
- "Basic attacks and single target spells deal 1 bonus damage to minions and monsters.",
- "Basic attacks and single target spells deal 2 bonus damage to minions and monsters.",
- "Basic attacks and single target spells deal 3 bonus damage to minions and monsters.",
- "Basic attacks and single target spells deal 4 bonus damage to minions and monsters.",
- "Basic attacks and single target spells deal 5 bonus damage to minions and monsters."
- ],
- "name": "Savagery",
- "masteryTree": "Cunning"
- },
- "6321": {
- "id": 6321,
- "description": [ "Buffs granted by jungle monsters last 15% longer, including Epic Monsters." ],
- "name": "Runic Affinity",
- "masteryTree": "Cunning"
- },
- "6322": {
- "id": 6322,
- "description": [ "Your potions, flasks, and elixirs last 10% longer. Additionally, your potions are replaced with biscuits that restore 20 Health and 10 Mana instantly upon consumption." ],
- "name": "Secret Stash",
- "masteryTree": "Cunning"
- },
- "6323": {
- "id": 6323,
- "description": [ "Deal 1.5% increased damage when no allied champions are nearby" ],
- "name": "Assassin",
- "masteryTree": "Cunning"
- },
- "6331": {
- "id": 6331,
- "description": [
- "Deal 1% increased damage to champions below 40% Health.",
- "Deal 2% increased damage to champions below 40% Health.",
- "Deal 3% increased damage to champions below 40% Health.",
- "Deal 4% increased damage to champions below 40% Health.",
- "Deal 5% increased damage to champions below 40% Health."
- ],
- "name": "Merciless",
- "masteryTree": "Cunning"
- },
- "6332": {
- "id": 6332,
- "description": [
- "Once every 5 seconds, regenerate 0.3% of your missing Mana.",
- "Once every 5 seconds, regenerate 0.6% of your missing Mana.",
- "Once every 5 seconds, regenerate 0.9% of your missing Mana.",
- "Once every 5 seconds, regenerate 1.2% of your missing Mana.",
- "Once every 5 seconds, regenerate 1.5% of your missing Mana."
- ],
- "name": "Meditation",
- "masteryTree": "Cunning"
- },
- "6342": {
- "id": 6342,
- "description": [ "Gain 1 gold for each nearby minions killed by allied champions. Gain an additional 3 gold (or 10 if you're melee) when hitting an enemy champion with an attack or spell (Cannot occur more than once every 5 seconds)." ],
- "name": "Bandit",
- "masteryTree": "Cunning"
- },
- "6343": {
- "id": 6343,
- "description": [ "Champion kills and assists restore 5% of your missing Health and Mana." ],
- "name": "Dangerous Game",
- "masteryTree": "Cunning"
- },
- "6351": {
- "id": 6351,
- "description": [
- "Gain 0.6 + 0.06 per level Armor and Magic Penetration.",
- "Gain 1.2 + 0.12 per level Armor and Magic Penetration.",
- "Gain 1.8 + 0.18 per level Armor and Magic Penetration.",
- "Gain 2.4 + 0.24 per level Armor and Magic Penetration.",
- "Gain 3 + 0.3 per level Armor and Magic Penetration."
- ],
- "name": "Precision",
- "masteryTree": "Cunning"
- },
- "6352": {
- "id": 6352,
- "description": [
- "Your Cooldown Reduction cap is increased by 1%, gain 1% Cooldown Reduction.",
- "Your Cooldown Reduction cap is increased by 2%, gain 2% Cooldown Reduction.",
- "Your Cooldown Reduction cap is increased by 3%, gain 3% Cooldown Reduction.",
- "Your Cooldown Reduction cap is increased by 4%, gain 4% Cooldown Reduction.",
- "Your Cooldown Reduction cap is increased by 5%, gain 5% Cooldown Reduction."
- ],
- "name": "Intelligence",
- "masteryTree": "Cunning"
- },
- "6361": {
- "id": 6361,
- "description": [ "Dealing 30% of a champion's max Health within 2 seconds grants you 35% Movement Speed for 3 seconds (10 second cooldown)." ],
- "name": "Stormraider's Surge",
- "masteryTree": "Cunning"
- },
- "6362": {
- "id": 6362,
- "description": [ "Your 3rd attack or spell on an enemy champion shocks the area around them, dealing 10 damage per level plus 20% of your Bonus Attack Damage and 10% of your Ability Power as Magic damage to enemies in the area (30 second cooldown)." ],
- "name": "Thunderlord's Decree",
- "masteryTree": "Cunning"
- },
- "6363": {
- "id": 6363,
- "description": [ "Your heals and shields are 10% stronger. Additionally, your shields and heals increase your target's resistances by 15% for 3 seconds when used on an ally other than yourself." ],
- "name": "Windspeaker's Blessing",
- "masteryTree": "Cunning"
- }
- },
- "type": "mastery",
- "version": "5.22.3"
-}
+{"type":"mastery","version":"6.4.1","tree":{"Ferocity":[[{"masteryId":"6111","prereq":"0"},null,{"masteryId":"6114","prereq":"0"}],[{"masteryId":"6121","prereq":"0"},{"masteryId":"6122","prereq":"0"},{"masteryId":"6123","prereq":"0"}],[{"masteryId":"6131","prereq":"0"},null,{"masteryId":"6134","prereq":"0"}],[{"masteryId":"6141","prereq":"0"},{"masteryId":"6142","prereq":"0"}],[{"masteryId":"6151","prereq":"0"},null,{"masteryId":"6154","prereq":"0"}],[{"masteryId":"6161","prereq":"0"},{"masteryId":"6162","prereq":"0"},{"masteryId":"6164","prereq":"0"}]],"Cunning":[[{"masteryId":"6311","prereq":"0"},null,{"masteryId":"6312","prereq":"0"}],[{"masteryId":"6321","prereq":"0"},{"masteryId":"6322","prereq":"0"},{"masteryId":"6323","prereq":"0"}],[{"masteryId":"6331","prereq":"0"},null,{"masteryId":"6332","prereq":"0"}],[{"masteryId":"6342","prereq":"0"},{"masteryId":"6343","prereq":"0"}],[{"masteryId":"6351","prereq":"0"},null,{"masteryId":"6352","prereq":"0"}],[{"masteryId":"6361","prereq":"0"},{"masteryId":"6362","prereq":"0"},{"masteryId":"6363","prereq":"0"}]],"Resolve":[[{"masteryId":"6211","prereq":"0"},null,{"masteryId":"6212","prereq":"0"}],[{"masteryId":"6221","prereq":"0"},{"masteryId":"6223","prereq":"0"}],[{"masteryId":"6231","prereq":"0"},null,{"masteryId":"6232","prereq":"0"}],[{"masteryId":"6241","prereq":"0"},{"masteryId":"6242","prereq":"0"}],[{"masteryId":"6251","prereq":"0"},null,{"masteryId":"6252","prereq":"0"}],[{"masteryId":"6261","prereq":"0"},{"masteryId":"6262","prereq":"0"},{"masteryId":"6263","prereq":"0"}]]},"data":{"6111":{"id":6111,"name":"Fury","description":["+0.8% Attack Speed","+1.6% Attack Speed","+2.4% Attack Speed","+3.2% Attack Speed","+4% Attack Speed"],"image":{"full":"6111.png","sprite":"mastery0.png","group":"gray_mastery","x":144,"y":384,"w":48,"h":48},"ranks":5,"prereq":"0"},"6114":{"id":6114,"name":"Sorcery","description":["+0.4% increased Ability damage","+0.8% increased Ability damage","+1.2% increased Ability damage","+1.6% increased Ability damage","+2.0% increased Ability damage"],"image":{"full":"6114.png","sprite":"mastery0.png","group":"gray_mastery","x":192,"y":384,"w":48,"h":48},"ranks":5,"prereq":"0"},"6121":{"id":6121,"name":"Double Edged Sword","description":["Melee: Deal 3% additional damage, take 1.5% additional damage.
Ranged: Deal and take 2% additional damage"],"image":{"full":"6121.png","sprite":"mastery0.png","group":"gray_mastery","x":240,"y":384,"w":48,"h":48},"ranks":1,"prereq":"0"},"6122":{"id":6122,"name":"Feast","description":["Killing a unit restores 20 Health (25 second cooldown)"],"image":{"full":"6122.png","sprite":"mastery0.png","group":"gray_mastery","x":288,"y":384,"w":48,"h":48},"ranks":1,"prereq":"0"},"6123":{"id":6123,"name":"Expose Weakness","description":["Damaging enemy champions causes them to take 3% more damage from your allies"],"image":{"full":"6123.png","sprite":"mastery0.png","group":"gray_mastery","x":336,"y":432,"w":48,"h":48},"ranks":1,"prereq":"0"},"6131":{"id":6131,"name":"Vampirism","description":["+0.4% Lifesteal and Spell Vamp","+0.8% Lifesteal and Spell Vamp","+1.2% Lifesteal and Spell Vamp","+1.6% Lifesteal and Spell Vamp","+2.0% Lifesteal and Spell Vamp"],"image":{"full":"6131.png","sprite":"mastery0.png","group":"gray_mastery","x":336,"y":384,"w":48,"h":48},"ranks":5,"prereq":"0"},"6134":{"id":6134,"name":"Natural Talent","description":["+2 Attack Damage and 3 Ability Power at level 18 (0.11 Attack Damage and 0.16 Ability Power per level)","+4 Attack Damage and 6 Ability Power at level 18 (0.22 Attack Damage and 0.32 Ability Power per level)","+6 Attack Damage and 9 Ability Power at level 18 (0.33 Attack Damage and 0.5 Ability Power per level)","+8 Attack Damage and 12 Ability Power at level 18 (0.44 Attack Damage and 0.66 Ability Power per level)","+10 Attack Damage and 15 Ability Power at level 18 (0.55 Attack Damage and 0.83 Ability Power per level)"],"image":{"full":"6134.png","sprite":"mastery0.png","group":"gray_mastery","x":384,"y":384,"w":48,"h":48},"ranks":5,"prereq":"0"},"6141":{"id":6141,"name":"Bounty Hunter","description":["Deal 1% increased damage for each unique enemy champion you have killed"],"image":{"full":"6141.png","sprite":"mastery0.png","group":"gray_mastery","x":432,"y":384,"w":48,"h":48},"ranks":1,"prereq":"0"},"6142":{"id":6142,"name":"Oppressor","description":["Deal 2.5% increased damage to targets with impaired movement (slow, stun, root, taunt, etc.)"],"image":{"full":"6142.png","sprite":"mastery0.png","group":"gray_mastery","x":0,"y":432,"w":48,"h":48},"ranks":1,"prereq":"0"},"6151":{"id":6151,"name":"Battering Blows","description":["+1.4% Armor Penetration","+2.8% Armor Penetration","+4.2% Armor Penetration","+5.6% Armor Penetration","+7% Armor Penetration"],"image":{"full":"6151.png","sprite":"mastery0.png","group":"gray_mastery","x":48,"y":432,"w":48,"h":48},"ranks":5,"prereq":"0"},"6154":{"id":6154,"name":"Piercing Thoughts","description":["+1.4% Magic Penetration","+2.8% Magic Penetration","+4.2% Magic Penetration","+5.6% Magic Penetration","+7% Magic Penetration"],"image":{"full":"6154.png","sprite":"mastery0.png","group":"gray_mastery","x":96,"y":432,"w":48,"h":48},"ranks":5,"prereq":"0"},"6161":{"id":6161,"name":"Warlord's Bloodlust","description":["Gain increasingly more Life Steal based on your missing health against champions (up to 20%). Against minions gain 50% benefit."],"image":{"full":"6161.png","sprite":"mastery0.png","group":"gray_mastery","x":144,"y":432,"w":48,"h":48},"ranks":1,"prereq":"0"},"6162":{"id":6162,"name":"Fervor of Battle","description":["You generate stacks of Fervor by hitting enemy champions with attacks and abilities. Your basic attacks deal 1-14 bonus physical damage (based on your level) to enemy champions for each of your stacks of Fervor (max 8 stacks).
Attacking enemy champions generates 1 stack of Fervor (2 for melee champions) and damaging enemy champions with an ability generates 2 stacks of Fervor (2 second cooldown). Stacks of Fervor last 6 seconds."],"image":{"full":"6162.png","sprite":"mastery0.png","group":"gray_mastery","x":192,"y":432,"w":48,"h":48},"ranks":1,"prereq":"0"},"6164":{"id":6164,"name":"Deathfire Touch","description":["Your damaging abilities cause enemy champions to take additional magic damage equal to 8 + 60% of your Bonus Attack Damage and 25% of your Ability Power, over 4 seconds.
Deathfire Touch has reduced effectiveness when applied by area of effect and damage over time abilities.
- Area of Effect: 2 second duration.
- Damage over time: 1 second duration."],"image":{"full":"6164.png","sprite":"mastery0.png","group":"gray_mastery","x":240,"y":432,"w":48,"h":48},"ranks":1,"prereq":"0"},"6311":{"id":6311,"name":"Wanderer","description":["+0.6% Movement Speed out of combat","+1.2% Movement Speed out of combat","+1.8% Movement Speed out of combat","+2.4% Movement Speed out of combat","+3% Movement Speed out of combat"],"image":{"full":"6311.png","sprite":"mastery0.png","group":"gray_mastery","x":0,"y":336,"w":48,"h":48},"ranks":5,"prereq":"0"},"6312":{"id":6312,"name":"Savagery","description":["Single target attacks and spells deal 1 bonus damage to minions and monsters","Single target attacks and spells deal 2 bonus damage to minions and monsters","Single target attacks and spells deal 3 bonus damage to minions and monsters","Single target attacks and spells deal 4 bonus damage to minions and monsters","Single target attacks and spells deal 5 bonus damage to minions and monsters"],"image":{"full":"6312.png","sprite":"mastery0.png","group":"gray_mastery","x":48,"y":336,"w":48,"h":48},"ranks":5,"prereq":"0"},"6321":{"id":6321,"name":"Runic Affinity","description":["Buffs from neutral monsters last 15% longer"],"image":{"full":"6321.png","sprite":"mastery0.png","group":"gray_mastery","x":96,"y":336,"w":48,"h":48},"ranks":1,"prereq":"0"},"6322":{"id":6322,"name":"Secret Stash","description":["Your Potions and Elixirs last 10% longer.
Your Health Potions are replaced with Biscuits that restore 20 Health and 10 Mana instantly on use"],"image":{"full":"6322.png","sprite":"mastery0.png","group":"gray_mastery","x":144,"y":336,"w":48,"h":48},"ranks":1,"prereq":"0"},"6323":{"id":6323,"name":"Assassin","description":["Deal 2% increased damage to champions when no allied champions are nearby"],"image":{"full":"6323.png","sprite":"mastery0.png","group":"gray_mastery","x":288,"y":432,"w":48,"h":48},"ranks":1,"prereq":"0"},"6331":{"id":6331,"name":"Merciless","description":["Deal 1% increased damage to champions below 40% Health","Deal 2% increased damage to champions below 40% Health","Deal 3% increased damage to champions below 40% Health","Deal 4% increased damage to champions below 40% Health","Deal 5% increased damage to champions below 40% Health"],"image":{"full":"6331.png","sprite":"mastery0.png","group":"gray_mastery","x":192,"y":336,"w":48,"h":48},"ranks":5,"prereq":"0"},"6332":{"id":6332,"name":"Meditation","description":["Regenerate 0.3% of your missing Mana every 5 seconds","Regenerate 0.6% of your missing Mana every 5 seconds","Regenerate 0.9% of your missing Mana every 5 seconds","Regenerate 1.2% of your missing Mana every 5 seconds","Regenerate 1.5% of your missing Mana every 5 seconds"],"image":{"full":"6332.png","sprite":"mastery0.png","group":"gray_mastery","x":240,"y":336,"w":48,"h":48},"ranks":5,"prereq":"0"},"6342":{"id":6342,"name":"Bandit","description":["Gain 1 gold for each nearby minion killed by an ally.
Gain 3 gold (10 if melee) when hitting an enemy champion with a basic attack (5 second cooldown)"],"image":{"full":"6342.png","sprite":"mastery0.png","group":"gray_mastery","x":288,"y":336,"w":48,"h":48},"ranks":1,"prereq":"0"},"6343":{"id":6343,"name":"Dangerous Game","description":["Champion kills and assists restore 5% of your missing Health and Mana"],"image":{"full":"6343.png","sprite":"mastery0.png","group":"gray_mastery","x":336,"y":336,"w":48,"h":48},"ranks":1,"prereq":"0"},"6351":{"id":6351,"name":"Precision","description":["Gain 0.6 + 0.06 per level Magic Penetration and Armor Penetration","Gain 1.2 + 0.12 per level Magic Penetration and Armor Penetration","Gain 1.8 + 0.18 per level Magic Penetration and Armor Penetration","Gain 2.4 + 0.24 per level Magic Penetration and Armor Penetration","Gain 3 + 0.3 per level Magic Penetration and Armor Penetration"],"image":{"full":"6351.png","sprite":"mastery0.png","group":"gray_mastery","x":384,"y":336,"w":48,"h":48},"ranks":5,"prereq":"0"},"6352":{"id":6352,"name":"Intelligence","description":["Your Cooldown Reduction cap is increased to 41% and you gain 1% Cooldown Reduction","Your Cooldown Reduction cap is increased to 42% and you gain 2% Cooldown Reduction","Your Cooldown Reduction cap is increased to 43% and you gain 3% Cooldown Reduction","Your Cooldown Reduction cap is increased to 44% and you gain 4% Cooldown Reduction","Your Cooldown Reduction cap is increased to 45% and you gain 5% Cooldown Reduction"],"image":{"full":"6352.png","sprite":"mastery0.png","group":"gray_mastery","x":432,"y":336,"w":48,"h":48},"ranks":5,"prereq":"0"},"6361":{"id":6361,"name":"Stormraider's Surge","description":["Dealing 30% of a champion's max Health within 2.5 seconds grants you 40% Movement Speed and 75% Slow Resistance for 3 seconds (10 second cooldown)."],"image":{"full":"6361.png","sprite":"mastery0.png","group":"gray_mastery","x":0,"y":384,"w":48,"h":48},"ranks":1,"prereq":"0"},"6362":{"id":6362,"name":"Thunderlord's Decree","description":["Your 3rd attack or damaging spell against the same enemy champion calls down a lightning strike, dealing magic damage in the area.
Damage: 10 per level, plus 30% of your Bonus Attack Damage, and 10% of your Ability Power (25-15 second cooldown, based on level)."],"image":{"full":"6362.png","sprite":"mastery0.png","group":"gray_mastery","x":48,"y":384,"w":48,"h":48},"ranks":1,"prereq":"0"},"6363":{"id":6363,"name":"Windspeaker's Blessing","description":["Your heals and shields are 10% stronger. Additionally, your shields and heals on other allies increase their armor by 5-22 (based on level) and their magic resistance by half that amount for 3 seconds."],"image":{"full":"6363.png","sprite":"mastery0.png","group":"gray_mastery","x":96,"y":384,"w":48,"h":48},"ranks":1,"prereq":"0"},"6211":{"id":6211,"name":"Recovery","description":["+0.4 Health per 5 seconds","+0.8 Health per 5 seconds","+1.2 Health per 5 seconds","+1.6 Health per 5 seconds","+2.0 Health per 5 seconds"],"image":{"full":"6211.png","sprite":"mastery0.png","group":"gray_mastery","x":336,"y":240,"w":48,"h":48},"ranks":5,"prereq":"0"},"6212":{"id":6212,"name":"Unyielding","description":["+1% Bonus Armor and Magic Resist","+2% Bonus Armor and Magic Resist","+3% Bonus Armor and Magic Resist","+4% Bonus Armor and Magic Resist","+5% Bonus Armor and Magic Resist"],"image":{"full":"6212.png","sprite":"mastery0.png","group":"gray_mastery","x":384,"y":240,"w":48,"h":48},"ranks":5,"prereq":"0"},"6221":{"id":6221,"name":"Explorer","description":["+15 Movement Speed in Brush and River"],"image":{"full":"6221.png","sprite":"mastery0.png","group":"gray_mastery","x":432,"y":240,"w":48,"h":48},"ranks":1,"prereq":"0"},"6223":{"id":6223,"name":"Tough Skin","description":["You take 2 less damage from champion and neutral monster basic attacks"],"image":{"full":"6223.png","sprite":"mastery0.png","group":"gray_mastery","x":0,"y":288,"w":48,"h":48},"ranks":1,"prereq":"0"},"6231":{"id":6231,"name":"Runic Armor","description":["Shields, healing, regeneration, and lifesteal on you are 1.6% stronger","Shields, healing, regeneration, and lifesteal on you are 3.2% stronger","Shields, healing, regeneration, and lifesteal on you are 4.8% stronger","Shields, healing, regeneration, and lifesteal on you are 6.4% stronger","Shields, healing, regeneration, and lifesteal on you are 8% stronger"],"image":{"full":"6231.png","sprite":"mastery0.png","group":"gray_mastery","x":48,"y":288,"w":48,"h":48},"ranks":5,"prereq":"0"},"6232":{"id":6232,"name":"Veteran's Scars","description":["+9 Health","+18 Health","+27 Health","+36 Health","+45 Health"],"image":{"full":"6232.png","sprite":"mastery0.png","group":"gray_mastery","x":96,"y":288,"w":48,"h":48},"ranks":5,"prereq":"0"},"6241":{"id":6241,"name":"Insight","description":["Reduces the cooldown of Summoner Spells by 15%"],"image":{"full":"6241.png","sprite":"mastery0.png","group":"gray_mastery","x":144,"y":288,"w":48,"h":48},"ranks":1,"prereq":"0"},"6242":{"id":6242,"name":"Perseverance","description":["+50% Base Health Regen, increased to +200% when below 25% Health"],"image":{"full":"6242.png","sprite":"mastery0.png","group":"gray_mastery","x":192,"y":288,"w":48,"h":48},"ranks":1,"prereq":"0"},"6251":{"id":6251,"name":"Swiftness","description":["+3% Tenacity and Slow Resist","+6% Tenacity and Slow Resist","+9% Tenacity and Slow Resist","+12% Tenacity and Slow Resist","+15% Tenacity and Slow Resist"],"image":{"full":"6251.png","sprite":"mastery0.png","group":"gray_mastery","x":240,"y":288,"w":48,"h":48},"ranks":5,"prereq":"0"},"6252":{"id":6252,"name":"Legendary Guardian","description":["+0.6 Armor and Magic Resist for each nearby enemy champion","+1.2 Armor and Magic Resist for each nearby enemy champion","+1.8 Armor and Magic Resist for each nearby enemy champion","+2.4 Armor and Magic Resist for each nearby enemy champion","+3 Armor and Magic Resist for each nearby enemy champion"],"image":{"full":"6252.png","sprite":"mastery0.png","group":"gray_mastery","x":288,"y":288,"w":48,"h":48},"ranks":5,"prereq":"0"},"6261":{"id":6261,"name":"Grasp of the Undying","description":["Every 4 seconds in combat your next attack against an enemy champion steals life equal to 3% of your max Health (halved for ranged champions, deals magic damage)"],"image":{"full":"6261.png","sprite":"mastery0.png","group":"gray_mastery","x":336,"y":288,"w":48,"h":48},"ranks":1,"prereq":"0"},"6262":{"id":6262,"name":"Strength of the Ages","description":["Siege minions and large monsters that you or nearby allied champions kill grant 20 and 10 permanent Health, respectively (300 max). After reaching the max bonus, these kills instead restore 6% of your Maximum Health."],"image":{"full":"6262.png","sprite":"mastery0.png","group":"gray_mastery","x":384,"y":288,"w":48,"h":48},"ranks":1,"prereq":"0"},"6263":{"id":6263,"name":"Bond of Stone","description":["+4% Damage Reduction. 6% of the damage from enemy champions taken by the nearest allied champion is dealt to you instead. Damage is not redirected if you are below 5% of your maximum health."],"image":{"full":"6263.png","sprite":"mastery0.png","group":"gray_mastery","x":432,"y":288,"w":48,"h":48},"ranks":1,"prereq":"0"}}}
\ No newline at end of file
diff --git a/LoLMasteryManager/MasteryAssigner.vb b/LoLMasteryManager/MasteryAssigner.vb
index 7439856..9c0dfd0 100644
--- a/LoLMasteryManager/MasteryAssigner.vb
+++ b/LoLMasteryManager/MasteryAssigner.vb
@@ -26,7 +26,7 @@ Public Class MasteryAssigner
End Sub
- Public Sub Assign(ByVal masteryPage As MasteryPage)
+ Public Sub Assign(ByVal masteryPage As MasteryPage, PatchNumber As String)
Try
@@ -36,7 +36,7 @@ Public Class MasteryAssigner
AssignMasteries(masteryPage)
- NameMasteryPage(masteryPage.Name)
+ NameMasteryPage(masteryPage.Name + "-" + PatchNumber)
SaveMasteries()
@@ -77,16 +77,38 @@ Public Class MasteryAssigner
Dim oPosition As New Point
- oPosition.X = oClientPosition.X + oMasteryPageNameInputFieldOffset.X + (ClientMasteryPageNameInputField.Width \ 2)
- oPosition.Y = oClientPosition.Y + oMasteryPageNameInputFieldOffset.Y + (ClientMasteryPageNameInputField.Height \ 2)
+ If Not _MasteryCoordinatesListFile.ReferenceCoordinatesAbsolute Then
+ oPosition.X = oClientPosition.X + oMasteryPageNameInputFieldOffset.X + (ClientMasteryPageNameInputField.Width \ 2)
+ oPosition.Y = oClientPosition.Y + oMasteryPageNameInputFieldOffset.Y + (ClientMasteryPageNameInputField.Height \ 2)
+ Else
+ 'Dim oInputCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Input")
+
+ Dim oInputCoordinates As New Point
+
+ Select Case _Mode
+
+ Case Modes.Menu
+
+ oInputCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Input")
+
+ Case Modes.ChampionSelect
+
+ oInputCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesChampionSelect("Input")
+
+ End Select
+
+ oPosition.X = oInputCoordinates.X
+ oPosition.Y = oInputCoordinates.Y
+ End If
+
Mouse.Move(oPosition)
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
Mouse.LeftClick()
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
Catch ex As Exception
@@ -105,16 +127,39 @@ Public Class MasteryAssigner
Dim oPosition As New Point
- oPosition.X = oClientPosition.X + oReturnPointsButtonOffsets.X + (ClientReturnPointsButton.Width \ 2)
- oPosition.Y = oClientPosition.Y + oReturnPointsButtonOffsets.Y + (ClientReturnPointsButton.Height \ 2)
+ If Not _MasteryCoordinatesListFile.ReferenceCoordinatesAbsolute Then
+ oPosition.X = oClientPosition.X + oReturnPointsButtonOffsets.X + (ClientReturnPointsButton.Width \ 2)
+ oPosition.Y = oClientPosition.Y + oReturnPointsButtonOffsets.Y + (ClientReturnPointsButton.Height \ 2)
+ Else
+ 'Dim oReturnCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Return")
+
+ Dim oReturnCoordinates As New Point
+
+ Select Case _Mode
+
+ Case Modes.Menu
+
+ oReturnCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Return")
+
+ Case Modes.ChampionSelect
+
+ oReturnCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesChampionSelect("Return")
+
+ End Select
+
+ oPosition.X = oReturnCoordinates.X
+ oPosition.Y = oReturnCoordinates.Y
+ End If
+
+
Mouse.Move(oPosition)
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
Mouse.LeftClick()
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
Catch ex As Exception
@@ -133,16 +178,37 @@ Public Class MasteryAssigner
Dim oPosition As New Point
- oPosition.X = oClientPosition.X + oSaveMasteriesButtonOffsets.X + (ClientSaveMasteriesButton.Width \ 2)
- oPosition.Y = oClientPosition.Y + oSaveMasteriesButtonOffsets.Y + (ClientSaveMasteriesButton.Height \ 2)
+ If Not _MasteryCoordinatesListFile.ReferenceCoordinatesAbsolute Then
+ oPosition.X = oClientPosition.X + oSaveMasteriesButtonOffsets.X + (ClientSaveMasteriesButton.Width \ 2)
+ oPosition.Y = oClientPosition.Y + oSaveMasteriesButtonOffsets.Y + (ClientSaveMasteriesButton.Height \ 2)
+ Else
+ 'Dim oSaveCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Save")
+
+ Dim oSaveCoordinates As New Point
+
+ Select Case _Mode
+
+ Case Modes.Menu
+
+ oSaveCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Save")
+
+ Case Modes.ChampionSelect
+
+ oSaveCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesChampionSelect("Save")
+
+ End Select
+
+ oPosition.X = oSaveCoordinates.X
+ oPosition.Y = oSaveCoordinates.Y
+ End If
Mouse.Move(oPosition)
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
Mouse.LeftClick()
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
Catch ex As Exception
@@ -200,7 +266,7 @@ Public Class MasteryAssigner
Mouse.Move(oMasteryPosition)
' Sleep the thread to ensure the mouse has time to move
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
' If the mastery has all of the points for that row
If mastery.Ranks = 5 Then
@@ -209,7 +275,7 @@ Public Class MasteryAssigner
Mouse.LeftClick()
' Sleep the thread to ensure the click has time to complete
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
Else ' Points shared between both masteries on the row
@@ -220,7 +286,7 @@ Public Class MasteryAssigner
Mouse.LeftClick()
' Sleep the thread to ensure the click has time to complete
- Threading.Thread.Sleep(100)
+ Threading.Thread.Sleep(200)
Next iRank ' Loop through the mastery ranks
@@ -251,6 +317,7 @@ Public Class MasteryAssigner
Dim oRefererenceClientSize As Size = _MasteryCoordinatesListFile.ReferenceClientSize
Dim oMasteryPosition As Point
+ Dim oAbsoluteCoordinates As Boolean = _MasteryCoordinatesListFile.ReferenceCoordinatesAbsolute
Select Case _Mode
@@ -264,14 +331,30 @@ Public Class MasteryAssigner
End Select
- Dim oPosition As New Point
+ If Not oAbsoluteCoordinates Then
+
+ Dim oPosition As New Point
+
+ With oPosition
+ .X = oClientPosition.X + CInt(oMasteryPosition.X * (oClientSize.Width / oRefererenceClientSize.Width)) + (oMasteryNodeSize.Width \ 2)
+ .Y = oClientPosition.Y + CInt(oMasteryPosition.Y * (oClientSize.Height / oRefererenceClientSize.Height)) + (oMasteryNodeSize.Height \ 2)
+ End With
+
+ Return oPosition
- With oPosition
- .X = oClientPosition.X + CInt(oMasteryPosition.X * (oClientSize.Width / oRefererenceClientSize.Width)) + (oMasteryNodeSize.Width \ 2)
- .Y = oClientPosition.Y + CInt(oMasteryPosition.Y * (oClientSize.Height / oRefererenceClientSize.Height)) + (oMasteryNodeSize.Height \ 2)
- End With
+ Else
+
+ Dim oPosition As New Point
+
+ With oPosition
+ .X = oMasteryPosition.X
+ .Y = oMasteryPosition.Y
+ End With
+
+ Return oPosition
+
+ End If
- Return oPosition
Catch ex As Exception
@@ -468,7 +551,17 @@ Public Class MasteryAssigner
Try
- Return HwndInterface.GetHwndFromTitle(My.Resources.LeagueClientWindowTitle)
+ Dim oLeagueWindow As IntPtr = HwndInterface.GetHwndFromTitle(My.Resources.LeagueClientWindowTitle)
+
+ If oLeagueWindow = IntPtr.Zero Then
+
+ Return HwndInterface.GetHwndFromTitle(My.Resources.LeagueClientWindowTitleAlternative)
+
+ Else
+
+ Return oLeagueWindow
+
+ End If
Catch ex As Exception
diff --git a/LoLMasteryManager/MasteryManager.vb b/LoLMasteryManager/MasteryManager.vb
index 78e7191..1f2e616 100644
--- a/LoLMasteryManager/MasteryManager.vb
+++ b/LoLMasteryManager/MasteryManager.vb
@@ -68,7 +68,7 @@ Public Class MasteryManager
If oMetadata IsNot Nothing Then
- If Not String.Equals(_PatchNumber, oMetadata.PatchNumber) Then
+ If Not String.Equals(_PatchNumber, oMetadata.PatchNumber) AndAlso Not String.Equals(_PatchNumber, "") Then
Directory.Delete(Directories.Data, True)
@@ -419,7 +419,7 @@ Public Class MasteryManager
oMasteryPage = LoadMasteryPage(championKey, role, eStat)
- _Assigner.Assign(oMasteryPage)
+ _Assigner.Assign(oMasteryPage, PatchNumber)
bResult = True
diff --git a/LoLMasteryManager/Models/MasteryCoordinates.vb b/LoLMasteryManager/Models/MasteryCoordinates.vb
index 5f25b20..3b0bca9 100644
--- a/LoLMasteryManager/Models/MasteryCoordinates.vb
+++ b/LoLMasteryManager/Models/MasteryCoordinates.vb
@@ -8,6 +8,9 @@ Partial Public Module Models
Public ReferenceClientSize As Size
+
+ Public ReferenceCoordinatesAbsolute As Boolean
+
Public MasteryCoordinatesMenu As New Dictionary(Of String, Point)
diff --git a/LoLMasteryManager/Models/MasteryPage.vb b/LoLMasteryManager/Models/MasteryPage.vb
index a085e4c..a588f17 100644
--- a/LoLMasteryManager/Models/MasteryPage.vb
+++ b/LoLMasteryManager/Models/MasteryPage.vb
@@ -28,8 +28,8 @@ Partial Public Module Models
Public ReadOnly Property Name As String
Get
-
- Return String.Format("[{0}] {1} - {2}", Stat.GetAbbreviation(), ChampionName, Role)
+ ' String.Format("Patch {0}", _MasteryManager.PatchNumber)
+ Return String.Format("[{0}][{2}]{1}", Stat.GetStatAbbreviation(), ChampionName, Role.GetRoleAbbreviation())
End Get
End Property
@@ -44,7 +44,7 @@ Partial Public Module Models
Friend Shared Function GenerateFileName(ByVal championKey As String, ByVal role As String, ByVal stat As Stats) As String
- Return String.Format("[{0}] {1} - {2}", stat.GetAbbreviation(), championKey, role)
+ Return String.Format("[{0}] {1} - {2}", stat.GetStatAbbreviation(), championKey, role)
End Function
diff --git a/LoLMasteryManager/Models/Riot.vb b/LoLMasteryManager/Models/Riot.vb
index 10c8574..705a35d 100644
--- a/LoLMasteryManager/Models/Riot.vb
+++ b/LoLMasteryManager/Models/Riot.vb
@@ -66,6 +66,9 @@ Public Class RiotMasteryListFile
Public Version As String
+
+ Public Tree As RiotMasteryTreeList
+
Public Masteries As Dictionary(Of String, RiotMastery)
@@ -77,8 +80,8 @@ Public Class RiotMastery
Public ID As Integer
-
- Public Tree As String
+ '
+ 'Public Tree As String
Public Name As String
@@ -86,4 +89,38 @@ Public Class RiotMastery
Public Description As List(Of String)
+ '
+ 'Public Image As String
+
+
+ Public Ranks As Integer
+
+
+ Public Prereq As String
+
+End Class
+
+
+Public Class RiotMasteryTreeList
+
+
+ Public Ferocity As List(Of List(Of RiotMasteryIdPrereq))
+
+
+ Public Cunning As List(Of List(Of RiotMasteryIdPrereq))
+
+
+ Public Resolve As List(Of List(Of RiotMasteryIdPrereq))
+
End Class
+
+
+Public Class RiotMasteryIdPrereq
+
+
+ Public MasteryId As String
+
+
+ Public Prereq As String
+
+End Class
\ No newline at end of file
diff --git a/LoLMasteryManager/My Project/Resources.Designer.vb b/LoLMasteryManager/My Project/Resources.Designer.vb
index ac7f818..7359413 100644
--- a/LoLMasteryManager/My Project/Resources.Designer.vb
+++ b/LoLMasteryManager/My Project/Resources.Designer.vb
@@ -1,10 +1,10 @@
'------------------------------------------------------------------------------
'
-' This code was generated by a tool.
-' Runtime Version:4.0.30319.42000
+' Il codice è stato generato da uno strumento.
+' Versione runtime:4.0.30319.42000
'
-' Changes to this file may cause incorrect behavior and will be lost if
-' the code is regenerated.
+' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
+' il codice viene rigenerato.
'
'------------------------------------------------------------------------------
@@ -15,12 +15,12 @@ Imports System
Namespace My.Resources
- 'This class was auto-generated by the StronglyTypedResourceBuilder
- 'class via a tool like ResGen or Visual Studio.
- 'To add or remove a member, edit your .ResX file then rerun ResGen
- 'with the /str option, or rebuild your VS project.
+ 'Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder.
+ 'tramite uno strumento quale ResGen o Visual Studio.
+ 'Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen
+ 'con l'opzione /str oppure ricompilare il progetto VS.
'''
- ''' A strongly-typed resource class, for looking up localized strings, etc.
+ ''' Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via.
'''
- ''' Returns the cached ResourceManager instance used by this class.
+ ''' Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe.
'''
_
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
@@ -47,8 +47,8 @@ Namespace My.Resources
End Property
'''
- ''' Overrides the current thread's CurrentUICulture property for all
- ''' resource lookups using this strongly typed resource class.
+ ''' Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le
+ ''' ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata.
'''
_
Friend Property Culture() As Global.System.Globalization.CultureInfo
@@ -61,7 +61,7 @@ Namespace My.Resources
End Property
'''
- ''' Looks up a localized string similar to http://champion.gg.
+ ''' Cerca una stringa localizzata simile a http://champion.gg.
'''
Friend ReadOnly Property ChampionGGUrl() As String
Get
@@ -70,7 +70,7 @@ Namespace My.Resources
End Property
'''
- ''' Looks up a localized string similar to http://ddragon.leagueoflegends.com/cdn/.
+ ''' Cerca una stringa localizzata simile a http://ddragon.leagueoflegends.com/cdn/.
'''
Friend ReadOnly Property DataDragonUrl() As String
Get
@@ -79,7 +79,7 @@ Namespace My.Resources
End Property
'''
- ''' Looks up a localized string similar to https://github.com/maxdeviant/lol-mastery-manager/releases/latest.
+ ''' Cerca una stringa localizzata simile a https://github.com/maxdeviant/lol-mastery-manager/releases/latest.
'''
Friend ReadOnly Property GitHubLatestReleaseUrl() As String
Get
@@ -88,12 +88,21 @@ Namespace My.Resources
End Property
'''
- ''' Looks up a localized string similar to PVP.net Client.
+ ''' Cerca una stringa localizzata simile a PVP.net Client.
'''
Friend ReadOnly Property LeagueClientWindowTitle() As String
Get
Return ResourceManager.GetString("LeagueClientWindowTitle", resourceCulture)
End Get
End Property
+
+ '''
+ ''' Cerca una stringa localizzata simile a Client PVP.net.
+ '''
+ Friend ReadOnly Property LeagueClientWindowTitleAlternative() As String
+ Get
+ Return ResourceManager.GetString("LeagueClientWindowTitleAlternative", resourceCulture)
+ End Get
+ End Property
End Module
End Namespace
diff --git a/LoLMasteryManager/My Project/Resources.resx b/LoLMasteryManager/My Project/Resources.resx
index 794dc32..6dd0bf0 100644
--- a/LoLMasteryManager/My Project/Resources.resx
+++ b/LoLMasteryManager/My Project/Resources.resx
@@ -129,4 +129,7 @@
PVP.net Client
+
+ Client PVP.net
+
\ No newline at end of file