From 9e85bee1041d02d4b8848ef5e3019c76e054036b Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Sat, 6 Feb 2016 11:38:08 +0100 Subject: [PATCH 01/10] When champion.gg is offline , _PatchNumber is empty and an update is triggered , this should fix the problem --- LoLMasteryManager/MasteryManager.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoLMasteryManager/MasteryManager.vb b/LoLMasteryManager/MasteryManager.vb index 78e7191..22c43ac 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) From 10194416f31f1f13c22bb53777adfbc374606f58 Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Sat, 6 Feb 2016 11:39:36 +0100 Subject: [PATCH 02/10] First attempt to fix mouse click bug with localized LOL client , still needs a rebuilded Resources.Designer.vb --- LoLMasteryManager/MasteryAssigner.vb | 12 +++++++++++- LoLMasteryManager/My Project/Resources.resx | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/LoLMasteryManager/MasteryAssigner.vb b/LoLMasteryManager/MasteryAssigner.vb index 7439856..0008cf3 100644 --- a/LoLMasteryManager/MasteryAssigner.vb +++ b/LoLMasteryManager/MasteryAssigner.vb @@ -468,7 +468,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/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 From 02f80320d60557c1d2f475ca80b1535ab63dc681 Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Sun, 14 Feb 2016 01:08:20 +0100 Subject: [PATCH 03/10] Added a new option for coordinates.json , now you can use absolute coordinates --- LoLMasteryManager/Coordinates.json | 168 +++++++++--------- LoLMasteryManager/MasteryAssigner.vb | 62 +++++-- .../Models/MasteryCoordinates.vb | 3 + 3 files changed, 141 insertions(+), 92 deletions(-) diff --git a/LoLMasteryManager/Coordinates.json b/LoLMasteryManager/Coordinates.json index d6186ba..a9198a2 100644 --- a/LoLMasteryManager/Coordinates.json +++ b/LoLMasteryManager/Coordinates.json @@ -1,87 +1,95 @@ { "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": "415,290", + "6114": "545,290", + "6121": "450,365", + "6122": "515,365", + "6131": "415,435", + "6134": "545,435", + "6141": "450,505", + "6142": "515,505", + "6151": "415,575", + "6154": "545,575", + "6161": "415,650", + "6162": "480,650", + "6164": "545,650", + "6211": "960,290", + "6212": "1095,290", + "6221": "1000,365", + "6223": "1065,365", + "6231": "960,435", + "6232": "1095,435", + "6241": "1000,505", + "6242": "1065,505", + "6251": "960,575", + "6252": "1095,575", + "6261": "960,650", + "6262": "1035,650", + "6263": "1095,650", + "6311": "690,290", + "6312": "820,290", + "6321": "690,365", + "6322": "755,365", + "6323": "820,365", + "6331": "690,435", + "6332": "820,435", + "6342": "725,505", + "6343": "790,505", + "6351": "690,575", + "6352": "820,575", + "6361": "690,650", + "6362": "755,650", + "6363": "820,650", + "Input": "225, 265", + "Return": "225, 420", + "Save": "225, 390" }, "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": "410, 150", + "6114": "550, 150", + "6121": "450, 225", + "6122": "520, 225", + "6131": "410, 290", + "6134": "550, 290", + "6141": "450, 370", + "6142": "520, 370", + "6151": "410, 435", + "6154": "550, 435", + "6161": "410, 510", + "6162": "480, 510", + "6164": "550, 510", + "6211": "960, 150", + "6212": "1100, 150", + "6221": "1000, 225", + "6223": "1070, 225", + "6231": "960, 290", + "6232": "1100, 290", + "6241": "1000, 370", + "6242": "1070, 370", + "6251": "960, 435", + "6252": "1100, 435", + "6261": "960, 510", + "6262": "1030, 510", + "6263": "1100, 510", + "6311": "690, 150", + "6312": "820, 150", + "6321": "690, 225", + "6322": "760, 225", + "6323": "820, 225", + "6331": "690, 290", + "6332": "820, 290", + "6342": "730, 370", + "6343": "790, 370", + "6351": "690, 435", + "6352": "820, 435", + "6361": "690, 510", + "6362": "760, 510", + "6363": "820, 510", + "Input": "225, 125", + "Return": "225, 280", + "Save": "225, 245" } } + diff --git a/LoLMasteryManager/MasteryAssigner.vb b/LoLMasteryManager/MasteryAssigner.vb index 0008cf3..b86d0f7 100644 --- a/LoLMasteryManager/MasteryAssigner.vb +++ b/LoLMasteryManager/MasteryAssigner.vb @@ -77,8 +77,15 @@ 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") + oPosition.X = oClientPosition.X + oInputCoordinates.X + oPosition.Y = oClientPosition.Y + oInputCoordinates.Y + End If + Mouse.Move(oPosition) @@ -105,8 +112,16 @@ 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") + oPosition.X = oClientPosition.X + oReturnCoordinates.X + oPosition.Y = oClientPosition.Y + oReturnCoordinates.Y + End If + + Mouse.Move(oPosition) @@ -133,8 +148,14 @@ 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") + oPosition.X = oClientPosition.X + oSaveCoordinates.X + oPosition.Y = oClientPosition.Y + oSaveCoordinates.Y + End If Mouse.Move(oPosition) @@ -251,6 +272,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 +286,30 @@ Public Class MasteryAssigner End Select - Dim oPosition As New Point + If Not oAbsoluteCoordinates Then - 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 + 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 + + Else + + Dim oPosition As New Point + + With oPosition + .X = oClientPosition.X + CInt(oMasteryPosition.X) + .Y = oClientPosition.Y + CInt(oMasteryPosition.Y) + End With + + Return oPosition + + End If - Return oPosition Catch ex As Exception 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) From 75c902670066b802cb910632cd1fa91bc8df6715 Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Sat, 20 Feb 2016 18:54:58 +0100 Subject: [PATCH 04/10] Fix for absolute coordinates --- LoLMasteryManager/MasteryAssigner.vb | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/LoLMasteryManager/MasteryAssigner.vb b/LoLMasteryManager/MasteryAssigner.vb index b86d0f7..6afa8ba 100644 --- a/LoLMasteryManager/MasteryAssigner.vb +++ b/LoLMasteryManager/MasteryAssigner.vb @@ -82,18 +82,18 @@ Public Class MasteryAssigner oPosition.Y = oClientPosition.Y + oMasteryPageNameInputFieldOffset.Y + (ClientMasteryPageNameInputField.Height \ 2) Else Dim oInputCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Input") - oPosition.X = oClientPosition.X + oInputCoordinates.X - oPosition.Y = oClientPosition.Y + oInputCoordinates.Y + 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 @@ -117,19 +117,19 @@ Public Class MasteryAssigner oPosition.Y = oClientPosition.Y + oReturnPointsButtonOffsets.Y + (ClientReturnPointsButton.Height \ 2) Else Dim oReturnCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Return") - oPosition.X = oClientPosition.X + oReturnCoordinates.X - oPosition.Y = oClientPosition.Y + oReturnCoordinates.Y + 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 @@ -153,17 +153,17 @@ Public Class MasteryAssigner oPosition.Y = oClientPosition.Y + oSaveMasteriesButtonOffsets.Y + (ClientSaveMasteriesButton.Height \ 2) Else Dim oSaveCoordinates = _MasteryCoordinatesListFile.MasteryCoordinatesMenu("Save") - oPosition.X = oClientPosition.X + oSaveCoordinates.X - oPosition.Y = oClientPosition.Y + oSaveCoordinates.Y + 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 @@ -221,7 +221,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 @@ -230,7 +230,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 @@ -241,7 +241,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 @@ -302,8 +302,8 @@ Public Class MasteryAssigner Dim oPosition As New Point With oPosition - .X = oClientPosition.X + CInt(oMasteryPosition.X) - .Y = oClientPosition.Y + CInt(oMasteryPosition.Y) + .X = oMasteryPosition.X + .Y = oMasteryPosition.Y End With Return oPosition From fcacfb7277776de9129d3c538bfb21b83afdce9e Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Mon, 22 Feb 2016 18:28:35 +0100 Subject: [PATCH 05/10] Another Fix for absolute coordinates , forgot to check between mastery in champ select and menu --- LoLMasteryManager/MasteryAssigner.vb | 51 ++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/LoLMasteryManager/MasteryAssigner.vb b/LoLMasteryManager/MasteryAssigner.vb index 6afa8ba..7dc0c8a 100644 --- a/LoLMasteryManager/MasteryAssigner.vb +++ b/LoLMasteryManager/MasteryAssigner.vb @@ -81,7 +81,22 @@ Public Class MasteryAssigner 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 = _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 @@ -116,7 +131,22 @@ Public Class MasteryAssigner 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 = _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 @@ -152,7 +182,22 @@ Public Class MasteryAssigner 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 = _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 From a7c0755ae157e98a3440c517dbd463a167046736 Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Sat, 27 Feb 2016 20:04:37 +0100 Subject: [PATCH 06/10] New Mastery --- LoLMasteryManager/Coordinates.json | 174 +++++++++++++++-------------- 1 file changed, 88 insertions(+), 86 deletions(-) diff --git a/LoLMasteryManager/Coordinates.json b/LoLMasteryManager/Coordinates.json index a9198a2..030dc14 100644 --- a/LoLMasteryManager/Coordinates.json +++ b/LoLMasteryManager/Coordinates.json @@ -2,94 +2,96 @@ "reference_client_size": "1280, 800", "absolute_coordinates": "true", "mastery_coordinates_menu": { - "6111": "415,290", - "6114": "545,290", - "6121": "450,365", - "6122": "515,365", - "6131": "415,435", - "6134": "545,435", - "6141": "450,505", - "6142": "515,505", - "6151": "415,575", - "6154": "545,575", - "6161": "415,650", - "6162": "480,650", - "6164": "545,650", - "6211": "960,290", - "6212": "1095,290", - "6221": "1000,365", - "6223": "1065,365", - "6231": "960,435", - "6232": "1095,435", - "6241": "1000,505", - "6242": "1065,505", - "6251": "960,575", - "6252": "1095,575", - "6261": "960,650", - "6262": "1035,650", - "6263": "1095,650", - "6311": "690,290", - "6312": "820,290", - "6321": "690,365", - "6322": "755,365", - "6323": "820,365", - "6331": "690,435", - "6332": "820,435", - "6342": "725,505", - "6343": "790,505", - "6351": "690,575", - "6352": "820,575", - "6361": "690,650", - "6362": "755,650", - "6363": "820,650", - "Input": "225, 265", - "Return": "225, 420", - "Save": "225, 390" + "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": "410, 150", - "6114": "550, 150", - "6121": "450, 225", - "6122": "520, 225", - "6131": "410, 290", - "6134": "550, 290", - "6141": "450, 370", - "6142": "520, 370", - "6151": "410, 435", - "6154": "550, 435", - "6161": "410, 510", - "6162": "480, 510", - "6164": "550, 510", - "6211": "960, 150", - "6212": "1100, 150", - "6221": "1000, 225", - "6223": "1070, 225", - "6231": "960, 290", - "6232": "1100, 290", - "6241": "1000, 370", - "6242": "1070, 370", - "6251": "960, 435", - "6252": "1100, 435", - "6261": "960, 510", - "6262": "1030, 510", - "6263": "1100, 510", - "6311": "690, 150", - "6312": "820, 150", - "6321": "690, 225", - "6322": "760, 225", - "6323": "820, 225", - "6331": "690, 290", - "6332": "820, 290", - "6342": "730, 370", - "6343": "790, 370", - "6351": "690, 435", - "6352": "820, 435", - "6361": "690, 510", - "6362": "760, 510", - "6363": "820, 510", - "Input": "225, 125", - "Return": "225, 280", - "Save": "225, 245" + "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" } } From d0f5c06d5c4afc6e5919ec127dd5976548947a0c Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Fri, 4 Mar 2016 11:21:36 +0100 Subject: [PATCH 07/10] New masteries.json from Riot Api --- LoLMasteryManager/Masteries.json | 355 +------------------------------ 1 file changed, 1 insertion(+), 354 deletions(-) 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 From 205cf44fb192badca3445ec13090920ab95a75df Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Fri, 4 Mar 2016 11:23:23 +0100 Subject: [PATCH 08/10] New way for extracting tree name for masteries --- LoLMasteryManager/ChampionGG.vb | 43 +++++++++++++++++++++++++++++++- LoLMasteryManager/Models/Riot.vb | 41 ++++++++++++++++++++++++++++-- 2 files changed, 81 insertions(+), 3 deletions(-) diff --git a/LoLMasteryManager/ChampionGG.vb b/LoLMasteryManager/ChampionGG.vb index b71d702..c2458d2 100644 --- a/LoLMasteryManager/ChampionGG.vb +++ b/LoLMasteryManager/ChampionGG.vb @@ -412,6 +412,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 +421,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 +435,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/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 From c2a4efca83b65d764784f14784736dbc8ef1c7d0 Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Fri, 11 Nov 2016 17:43:06 +0100 Subject: [PATCH 09/10] Reflect changes in site html : from "api-primary-id" to "data-id" --- LoLMasteryManager/ChampionGG.vb | 3 +- .../My Project/Resources.Designer.vb | 41 +++++++++++-------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/LoLMasteryManager/ChampionGG.vb b/LoLMasteryManager/ChampionGG.vb index c2458d2..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) 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 From f9b2c640bf854381cec4e4dddf2fad39e9429dc7 Mon Sep 17 00:00:00 2001 From: J-a-n-n Date: Sun, 2 Apr 2017 19:16:56 +0200 Subject: [PATCH 10/10] Fix for website update Added new name for mastery page --- LoLMasteryManager/Extensions.vb | 39 ++++++++++++++++++++++++- LoLMasteryManager/MasteryAssigner.vb | 4 +-- LoLMasteryManager/MasteryManager.vb | 2 +- LoLMasteryManager/Models/MasteryPage.vb | 6 ++-- 4 files changed, 44 insertions(+), 7 deletions(-) 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/MasteryAssigner.vb b/LoLMasteryManager/MasteryAssigner.vb index 7dc0c8a..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() diff --git a/LoLMasteryManager/MasteryManager.vb b/LoLMasteryManager/MasteryManager.vb index 22c43ac..1f2e616 100644 --- a/LoLMasteryManager/MasteryManager.vb +++ b/LoLMasteryManager/MasteryManager.vb @@ -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/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