lolbase 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e807ada0b5d0d9dae9521bebf7c2ddb3f1f84c2
4
- data.tar.gz: 9e0f746491d28099308a09fa79501c606eb2deab
3
+ metadata.gz: c5b69ef5bed39cda2abb25d0e963288727858f8a
4
+ data.tar.gz: e15c0be707b1fec1bfeddeaf6d1ee9a4950e0bc2
5
5
  SHA512:
6
- metadata.gz: f3f1d2dbc553fc233bec59792d258ea7e352be4aa14d456b7969de5265e9006ee4a925ef4c131fa0ec6a9d26bc53d4ba74b746fc4798e905008fbd5d3742d61a
7
- data.tar.gz: cbc5e9d83024e3f549e24ab1afd165d5f4b36307b0214965d3a4b379df8d03ef686e2d3be3404b8d3bbf99be8222af69a38730fed0909f6bf3d51f5d1dd5844c
6
+ metadata.gz: 0297f5dd95ed99c5450e07a45b81e3124264c27574c68f609c3f5a6156db5a96d869821bfac96c4520a94d6eb11935cef558721970cb162b2fa2b9a66feb0981
7
+ data.tar.gz: 01e5f3b76bb4514e8967a98c6af4899242480a13f968fa671c8e70bd9aaddc0eaae9fa02adce817b5720bdb15012764386807f27254fccea44a8f6fde220148d
data/README.md CHANGED
@@ -45,7 +45,23 @@ All connections begin by calling *LoLBase::new* which takes an API key as an arg
45
45
 
46
46
  ### 3. Data Retrieval
47
47
 
48
- #### 3.1 Summoner
48
+ #### 3.1 Champion
49
+
50
+ # Fetch a list of all the champions in the game
51
+ champions = connection.champions.all
52
+
53
+ # Find a specific subset of champions
54
+ f2p_champs = connection.champions.find(free_to_play: true)
55
+ champ = connection.champions.find(id: 99)
56
+ champ = connection.champions.find(name: "Lux")
57
+
58
+ # Given a single champion, retrieve details about it
59
+ champ.id
60
+ champ.name
61
+ champ.status # Check whether it is enabled in a given queue
62
+ champ.stats # Ratings for attributes/difficulty
63
+
64
+ #### 3.2 Summoner
49
65
 
50
66
  # Fetch a summoner by their name...
51
67
  summoner = connection.summoner("A Summoner Name", "na")
@@ -60,11 +76,11 @@ All connections begin by calling *LoLBase::new* which takes an API key as an arg
60
76
  summoner.level
61
77
  summoner.last_modified
62
78
 
63
- #### 3.2 Profile Icon
79
+ #### 3.3 Profile Icon
64
80
 
65
81
  summoner.profile_icon.id
66
82
 
67
- #### 3.3 Statistics
83
+ #### 3.4 Statistics
68
84
 
69
85
  # A specified ranked season is passed - defaults to LoLBase.config.current_season
70
86
  summary = summoner.stats.summary(3)
@@ -3,6 +3,7 @@ require "lolbase/connection"
3
3
  require "lolbase/error"
4
4
  require "lolbase/version"
5
5
 
6
+ require "lolbase/data/champion"
6
7
  require "lolbase/data/summoner"
7
8
  require "lolbase/data/profile_icon"
8
9
  require "lolbase/data/stats"
@@ -37,11 +37,15 @@ module LoLBase
37
37
  end
38
38
 
39
39
  def summoner_by_name(name, region = LoLBase.config.default_region)
40
- return Summoner.new({ name: name, region: region }, self)
40
+ Summoner.new({ name: name, region: region }, self)
41
41
  end
42
42
 
43
43
  def summoner_by_id(id, region = LoLBase.config.default_region)
44
- return Summoner.new({ id: id, region: region }, self)
44
+ Summoner.new({ id: id, region: region }, self)
45
+ end
46
+
47
+ def champions(region = LoLBase.config.default_region)
48
+ ChampionList.new(region, self)
45
49
  end
46
50
  end
47
51
  end
@@ -0,0 +1,62 @@
1
+ module LoLBase
2
+ class ChampionList
3
+ def initialize(region, connection)
4
+ @champions = []
5
+
6
+ data = JSON.parse connection.get("/api/lol/#{region}/v1.1/champion")
7
+ data["champions"].each do |c|
8
+ @champions << Champion.new(c)
9
+ end
10
+
11
+ self
12
+ end
13
+
14
+ def find(criteria = {})
15
+ if criteria[:id]
16
+ return @champions.select { |champ| champ.id == criteria[:id] }.first
17
+ elsif criteria[:name]
18
+ return @champions.select { |champ| champ.name == criteria[:name] }.first
19
+ elsif criteria[:free_to_play]
20
+ return @champions.select { |champ| champ.f2p? == criteria[:free_to_play] }
21
+ end
22
+
23
+ nil
24
+ end
25
+
26
+ def all
27
+ return @champions
28
+ end
29
+ end
30
+
31
+ class Champion
32
+ attr_reader :id, :name, :stats, :status
33
+
34
+ def initialize(data)
35
+ @data = data
36
+ @id = data["id"]
37
+ @name = data["name"]
38
+ end
39
+
40
+ def f2p?
41
+ @data["freeToPlay"]
42
+ end
43
+
44
+ def status
45
+ {
46
+ enabled: @data["active"],
47
+ ranked_enabled: @data["rankedPlayEnabled"],
48
+ bot_enabled: @data["botEnabled"],
49
+ coop_bot_enabled: @data["botMmEnabled"]
50
+ }
51
+ end
52
+
53
+ def stats
54
+ {
55
+ attack_power: @data["attackRank"],
56
+ defense_power: @data["defenseRank"],
57
+ ability_power: @data["magicRank"],
58
+ difficulty: @data["difficultyRank"]
59
+ }
60
+ end
61
+ end
62
+ end
@@ -52,11 +52,10 @@ module LoLBase
52
52
  end
53
53
 
54
54
  def find(criteria = {})
55
- if criteria[:name].nil?
56
- @parsed_data
57
- else
58
- @parsed_data.select { |item| item.name == criteria[:name] }.first
55
+ if criteria[:name]
56
+ return @parsed_data.select { |item| item.name == criteria[:name] }.first
59
57
  end
58
+ nil
60
59
  end
61
60
 
62
61
  def all
@@ -103,11 +102,10 @@ module LoLBase
103
102
  end
104
103
 
105
104
  def find(criteria = {})
106
- if criteria[:champion_id].nil?
107
- @parsed_data
108
- else
109
- @parsed_data.select { |item| item.id == criteria[:champion_id] }.first
105
+ if criteria[:champion_id]
106
+ return @parsed_data.select { |item| item.id == criteria[:champion_id] }.first
110
107
  end
108
+ nil
111
109
  end
112
110
 
113
111
  def all
@@ -1,3 +1,3 @@
1
1
  module LoLBase
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1,36 @@
1
+ require "spec_helper"
2
+
3
+ describe LoLBase::Champion do
4
+ before do
5
+ @connection = LoLBase.new "random-key"
6
+ end
7
+
8
+ it "should retrieve a list of champions when requested" do
9
+ champions = @connection.champions.all
10
+ expect(champions.count).to eq(117)
11
+ end
12
+
13
+ it "should return details of a specific champion (by ID)" do
14
+ champion = @connection.champions.find(id: 99)
15
+ expect(champion.name).to eq("Lux")
16
+ expect(champion.f2p?).to eq(false)
17
+ expect(champion.status[:enabled]).to eq(true)
18
+ expect(champion.status[:ranked_enabled]).to eq(true)
19
+ expect(champion.status[:bot_enabled]).to eq(true)
20
+ expect(champion.status[:coop_bot_enabled]).to eq(true)
21
+ expect(champion.stats[:attack_power]).to eq(2)
22
+ expect(champion.stats[:defense_power]).to eq(4)
23
+ expect(champion.stats[:ability_power]).to eq(9)
24
+ expect(champion.stats[:difficulty]).to eq(6)
25
+ end
26
+
27
+ it "should return details of a specific champion (by name)" do
28
+ champion = @connection.champions.find(name: "Lux")
29
+ expect(champion.id).to eq(99)
30
+ end
31
+
32
+ it "should return a list of all currently free to play champions" do
33
+ f2p = @connection.champions.find(free_to_play: true)
34
+ expect(f2p.count).to eq(10)
35
+ end
36
+ end
@@ -0,0 +1,1523 @@
1
+ {"champions": [
2
+ {
3
+ "botMmEnabled": false,
4
+ "defenseRank": 4,
5
+ "attackRank": 8,
6
+ "id": 266,
7
+ "rankedPlayEnabled": true,
8
+ "name": "Aatrox",
9
+ "botEnabled": false,
10
+ "difficultyRank": 6,
11
+ "active": true,
12
+ "freeToPlay": false,
13
+ "magicRank": 3
14
+ },
15
+ {
16
+ "botMmEnabled": false,
17
+ "defenseRank": 4,
18
+ "attackRank": 3,
19
+ "id": 103,
20
+ "rankedPlayEnabled": true,
21
+ "name": "Ahri",
22
+ "botEnabled": false,
23
+ "difficultyRank": 8,
24
+ "active": true,
25
+ "freeToPlay": false,
26
+ "magicRank": 8
27
+ },
28
+ {
29
+ "botMmEnabled": false,
30
+ "defenseRank": 3,
31
+ "attackRank": 5,
32
+ "id": 84,
33
+ "rankedPlayEnabled": true,
34
+ "name": "Akali",
35
+ "botEnabled": false,
36
+ "difficultyRank": 6,
37
+ "active": true,
38
+ "freeToPlay": false,
39
+ "magicRank": 8
40
+ },
41
+ {
42
+ "botMmEnabled": true,
43
+ "defenseRank": 9,
44
+ "attackRank": 6,
45
+ "id": 12,
46
+ "rankedPlayEnabled": true,
47
+ "name": "Alistar",
48
+ "botEnabled": false,
49
+ "difficultyRank": 8,
50
+ "active": true,
51
+ "freeToPlay": false,
52
+ "magicRank": 5
53
+ },
54
+ {
55
+ "botMmEnabled": true,
56
+ "defenseRank": 6,
57
+ "attackRank": 2,
58
+ "id": 32,
59
+ "rankedPlayEnabled": true,
60
+ "name": "Amumu",
61
+ "botEnabled": false,
62
+ "difficultyRank": 4,
63
+ "active": true,
64
+ "freeToPlay": false,
65
+ "magicRank": 8
66
+ },
67
+ {
68
+ "botMmEnabled": false,
69
+ "defenseRank": 4,
70
+ "attackRank": 1,
71
+ "id": 34,
72
+ "rankedPlayEnabled": true,
73
+ "name": "Anivia",
74
+ "botEnabled": false,
75
+ "difficultyRank": 8,
76
+ "active": true,
77
+ "freeToPlay": false,
78
+ "magicRank": 10
79
+ },
80
+ {
81
+ "botMmEnabled": true,
82
+ "defenseRank": 3,
83
+ "attackRank": 2,
84
+ "id": 1,
85
+ "rankedPlayEnabled": true,
86
+ "name": "Annie",
87
+ "botEnabled": true,
88
+ "difficultyRank": 4,
89
+ "active": true,
90
+ "freeToPlay": true,
91
+ "magicRank": 10
92
+ },
93
+ {
94
+ "botMmEnabled": true,
95
+ "defenseRank": 3,
96
+ "attackRank": 7,
97
+ "id": 22,
98
+ "rankedPlayEnabled": true,
99
+ "name": "Ashe",
100
+ "botEnabled": true,
101
+ "difficultyRank": 4,
102
+ "active": true,
103
+ "freeToPlay": true,
104
+ "magicRank": 2
105
+ },
106
+ {
107
+ "botMmEnabled": true,
108
+ "defenseRank": 8,
109
+ "attackRank": 4,
110
+ "id": 53,
111
+ "rankedPlayEnabled": true,
112
+ "name": "Blitzcrank",
113
+ "botEnabled": false,
114
+ "difficultyRank": 6,
115
+ "active": true,
116
+ "freeToPlay": false,
117
+ "magicRank": 5
118
+ },
119
+ {
120
+ "botMmEnabled": true,
121
+ "defenseRank": 2,
122
+ "attackRank": 2,
123
+ "id": 63,
124
+ "rankedPlayEnabled": true,
125
+ "name": "Brand",
126
+ "botEnabled": false,
127
+ "difficultyRank": 6,
128
+ "active": true,
129
+ "freeToPlay": false,
130
+ "magicRank": 9
131
+ },
132
+ {
133
+ "botMmEnabled": true,
134
+ "defenseRank": 2,
135
+ "attackRank": 8,
136
+ "id": 51,
137
+ "rankedPlayEnabled": true,
138
+ "name": "Caitlyn",
139
+ "botEnabled": false,
140
+ "difficultyRank": 4,
141
+ "active": true,
142
+ "freeToPlay": false,
143
+ "magicRank": 2
144
+ },
145
+ {
146
+ "botMmEnabled": true,
147
+ "defenseRank": 3,
148
+ "attackRank": 2,
149
+ "id": 69,
150
+ "rankedPlayEnabled": true,
151
+ "name": "Cassiopeia",
152
+ "botEnabled": false,
153
+ "difficultyRank": 10,
154
+ "active": true,
155
+ "freeToPlay": false,
156
+ "magicRank": 9
157
+ },
158
+ {
159
+ "botMmEnabled": true,
160
+ "defenseRank": 7,
161
+ "attackRank": 3,
162
+ "id": 31,
163
+ "rankedPlayEnabled": true,
164
+ "name": "Chogath",
165
+ "botEnabled": true,
166
+ "difficultyRank": 7,
167
+ "active": true,
168
+ "freeToPlay": false,
169
+ "magicRank": 7
170
+ },
171
+ {
172
+ "botMmEnabled": false,
173
+ "defenseRank": 3,
174
+ "attackRank": 8,
175
+ "id": 42,
176
+ "rankedPlayEnabled": true,
177
+ "name": "Corki",
178
+ "botEnabled": false,
179
+ "difficultyRank": 7,
180
+ "active": true,
181
+ "freeToPlay": false,
182
+ "magicRank": 6
183
+ },
184
+ {
185
+ "botMmEnabled": true,
186
+ "defenseRank": 5,
187
+ "attackRank": 9,
188
+ "id": 122,
189
+ "rankedPlayEnabled": true,
190
+ "name": "Darius",
191
+ "botEnabled": false,
192
+ "difficultyRank": 4,
193
+ "active": true,
194
+ "freeToPlay": false,
195
+ "magicRank": 1
196
+ },
197
+ {
198
+ "botMmEnabled": false,
199
+ "defenseRank": 6,
200
+ "attackRank": 7,
201
+ "id": 131,
202
+ "rankedPlayEnabled": true,
203
+ "name": "Diana",
204
+ "botEnabled": false,
205
+ "difficultyRank": 4,
206
+ "active": true,
207
+ "freeToPlay": false,
208
+ "magicRank": 8
209
+ },
210
+ {
211
+ "botMmEnabled": false,
212
+ "defenseRank": 3,
213
+ "attackRank": 9,
214
+ "id": 119,
215
+ "rankedPlayEnabled": true,
216
+ "name": "Draven",
217
+ "botEnabled": false,
218
+ "difficultyRank": 10,
219
+ "active": true,
220
+ "freeToPlay": true,
221
+ "magicRank": 1
222
+ },
223
+ {
224
+ "botMmEnabled": true,
225
+ "defenseRank": 7,
226
+ "attackRank": 5,
227
+ "id": 36,
228
+ "rankedPlayEnabled": true,
229
+ "name": "DrMundo",
230
+ "botEnabled": false,
231
+ "difficultyRank": 4,
232
+ "active": true,
233
+ "freeToPlay": false,
234
+ "magicRank": 6
235
+ },
236
+ {
237
+ "botMmEnabled": false,
238
+ "defenseRank": 5,
239
+ "attackRank": 6,
240
+ "id": 60,
241
+ "rankedPlayEnabled": true,
242
+ "name": "Elise",
243
+ "botEnabled": false,
244
+ "difficultyRank": 8,
245
+ "active": true,
246
+ "freeToPlay": false,
247
+ "magicRank": 7
248
+ },
249
+ {
250
+ "botMmEnabled": false,
251
+ "defenseRank": 2,
252
+ "attackRank": 4,
253
+ "id": 28,
254
+ "rankedPlayEnabled": true,
255
+ "name": "Evelynn",
256
+ "botEnabled": false,
257
+ "difficultyRank": 8,
258
+ "active": true,
259
+ "freeToPlay": false,
260
+ "magicRank": 7
261
+ },
262
+ {
263
+ "botMmEnabled": true,
264
+ "defenseRank": 2,
265
+ "attackRank": 7,
266
+ "id": 81,
267
+ "rankedPlayEnabled": true,
268
+ "name": "Ezreal",
269
+ "botEnabled": false,
270
+ "difficultyRank": 8,
271
+ "active": true,
272
+ "freeToPlay": false,
273
+ "magicRank": 6
274
+ },
275
+ {
276
+ "botMmEnabled": true,
277
+ "defenseRank": 3,
278
+ "attackRank": 2,
279
+ "id": 9,
280
+ "rankedPlayEnabled": true,
281
+ "name": "FiddleSticks",
282
+ "botEnabled": true,
283
+ "difficultyRank": 5,
284
+ "active": true,
285
+ "freeToPlay": false,
286
+ "magicRank": 9
287
+ },
288
+ {
289
+ "botMmEnabled": false,
290
+ "defenseRank": 4,
291
+ "attackRank": 10,
292
+ "id": 114,
293
+ "rankedPlayEnabled": true,
294
+ "name": "Fiora",
295
+ "botEnabled": false,
296
+ "difficultyRank": 5,
297
+ "active": true,
298
+ "freeToPlay": false,
299
+ "magicRank": 2
300
+ },
301
+ {
302
+ "botMmEnabled": false,
303
+ "defenseRank": 4,
304
+ "attackRank": 6,
305
+ "id": 105,
306
+ "rankedPlayEnabled": true,
307
+ "name": "Fizz",
308
+ "botEnabled": false,
309
+ "difficultyRank": 8,
310
+ "active": true,
311
+ "freeToPlay": false,
312
+ "magicRank": 7
313
+ },
314
+ {
315
+ "botMmEnabled": true,
316
+ "defenseRank": 7,
317
+ "attackRank": 3,
318
+ "id": 3,
319
+ "rankedPlayEnabled": true,
320
+ "name": "Galio",
321
+ "botEnabled": false,
322
+ "difficultyRank": 4,
323
+ "active": true,
324
+ "freeToPlay": false,
325
+ "magicRank": 6
326
+ },
327
+ {
328
+ "botMmEnabled": false,
329
+ "defenseRank": 6,
330
+ "attackRank": 7,
331
+ "id": 41,
332
+ "rankedPlayEnabled": true,
333
+ "name": "Gangplank",
334
+ "botEnabled": false,
335
+ "difficultyRank": 5,
336
+ "active": true,
337
+ "freeToPlay": false,
338
+ "magicRank": 4
339
+ },
340
+ {
341
+ "botMmEnabled": true,
342
+ "defenseRank": 7,
343
+ "attackRank": 7,
344
+ "id": 86,
345
+ "rankedPlayEnabled": true,
346
+ "name": "Garen",
347
+ "botEnabled": true,
348
+ "difficultyRank": 2,
349
+ "active": true,
350
+ "freeToPlay": false,
351
+ "magicRank": 1
352
+ },
353
+ {
354
+ "botMmEnabled": false,
355
+ "defenseRank": 6,
356
+ "attackRank": 5,
357
+ "id": 79,
358
+ "rankedPlayEnabled": true,
359
+ "name": "Gragas",
360
+ "botEnabled": false,
361
+ "difficultyRank": 6,
362
+ "active": true,
363
+ "freeToPlay": false,
364
+ "magicRank": 7
365
+ },
366
+ {
367
+ "botMmEnabled": true,
368
+ "defenseRank": 5,
369
+ "attackRank": 8,
370
+ "id": 104,
371
+ "rankedPlayEnabled": true,
372
+ "name": "Graves",
373
+ "botEnabled": true,
374
+ "difficultyRank": 4,
375
+ "active": true,
376
+ "freeToPlay": false,
377
+ "magicRank": 3
378
+ },
379
+ {
380
+ "botMmEnabled": false,
381
+ "defenseRank": 6,
382
+ "attackRank": 8,
383
+ "id": 120,
384
+ "rankedPlayEnabled": true,
385
+ "name": "Hecarim",
386
+ "botEnabled": false,
387
+ "difficultyRank": 5,
388
+ "active": true,
389
+ "freeToPlay": false,
390
+ "magicRank": 4
391
+ },
392
+ {
393
+ "botMmEnabled": false,
394
+ "defenseRank": 6,
395
+ "attackRank": 2,
396
+ "id": 74,
397
+ "rankedPlayEnabled": true,
398
+ "name": "Heimerdinger",
399
+ "botEnabled": false,
400
+ "difficultyRank": 4,
401
+ "active": true,
402
+ "freeToPlay": false,
403
+ "magicRank": 8
404
+ },
405
+ {
406
+ "botMmEnabled": true,
407
+ "defenseRank": 4,
408
+ "attackRank": 7,
409
+ "id": 39,
410
+ "rankedPlayEnabled": true,
411
+ "name": "Irelia",
412
+ "botEnabled": false,
413
+ "difficultyRank": 5,
414
+ "active": true,
415
+ "freeToPlay": false,
416
+ "magicRank": 5
417
+ },
418
+ {
419
+ "botMmEnabled": false,
420
+ "defenseRank": 5,
421
+ "attackRank": 3,
422
+ "id": 40,
423
+ "rankedPlayEnabled": true,
424
+ "name": "Janna",
425
+ "botEnabled": false,
426
+ "difficultyRank": 9,
427
+ "active": true,
428
+ "freeToPlay": false,
429
+ "magicRank": 7
430
+ },
431
+ {
432
+ "botMmEnabled": true,
433
+ "defenseRank": 8,
434
+ "attackRank": 6,
435
+ "id": 59,
436
+ "rankedPlayEnabled": true,
437
+ "name": "JarvanIV",
438
+ "botEnabled": false,
439
+ "difficultyRank": 5,
440
+ "active": true,
441
+ "freeToPlay": false,
442
+ "magicRank": 3
443
+ },
444
+ {
445
+ "botMmEnabled": true,
446
+ "defenseRank": 5,
447
+ "attackRank": 7,
448
+ "id": 24,
449
+ "rankedPlayEnabled": true,
450
+ "name": "Jax",
451
+ "botEnabled": false,
452
+ "difficultyRank": 6,
453
+ "active": true,
454
+ "freeToPlay": false,
455
+ "magicRank": 7
456
+ },
457
+ {
458
+ "botMmEnabled": false,
459
+ "defenseRank": 4,
460
+ "attackRank": 8,
461
+ "id": 126,
462
+ "rankedPlayEnabled": true,
463
+ "name": "Jayce",
464
+ "botEnabled": false,
465
+ "difficultyRank": 8,
466
+ "active": true,
467
+ "freeToPlay": false,
468
+ "magicRank": 3
469
+ },
470
+ {
471
+ "botMmEnabled": false,
472
+ "defenseRank": 2,
473
+ "attackRank": 9,
474
+ "id": 222,
475
+ "rankedPlayEnabled": true,
476
+ "name": "Jinx",
477
+ "botEnabled": false,
478
+ "difficultyRank": 9,
479
+ "active": true,
480
+ "freeToPlay": false,
481
+ "magicRank": 4
482
+ },
483
+ {
484
+ "botMmEnabled": false,
485
+ "defenseRank": 7,
486
+ "attackRank": 1,
487
+ "id": 43,
488
+ "rankedPlayEnabled": true,
489
+ "name": "Karma",
490
+ "botEnabled": false,
491
+ "difficultyRank": 8,
492
+ "active": true,
493
+ "freeToPlay": false,
494
+ "magicRank": 8
495
+ },
496
+ {
497
+ "botMmEnabled": true,
498
+ "defenseRank": 2,
499
+ "attackRank": 2,
500
+ "id": 30,
501
+ "rankedPlayEnabled": true,
502
+ "name": "Karthus",
503
+ "botEnabled": false,
504
+ "difficultyRank": 8,
505
+ "active": true,
506
+ "freeToPlay": false,
507
+ "magicRank": 10
508
+ },
509
+ {
510
+ "botMmEnabled": false,
511
+ "defenseRank": 5,
512
+ "attackRank": 3,
513
+ "id": 38,
514
+ "rankedPlayEnabled": true,
515
+ "name": "Kassadin",
516
+ "botEnabled": false,
517
+ "difficultyRank": 8,
518
+ "active": true,
519
+ "freeToPlay": false,
520
+ "magicRank": 8
521
+ },
522
+ {
523
+ "botMmEnabled": false,
524
+ "defenseRank": 3,
525
+ "attackRank": 4,
526
+ "id": 55,
527
+ "rankedPlayEnabled": true,
528
+ "name": "Katarina",
529
+ "botEnabled": false,
530
+ "difficultyRank": 5,
531
+ "active": true,
532
+ "freeToPlay": false,
533
+ "magicRank": 9
534
+ },
535
+ {
536
+ "botMmEnabled": true,
537
+ "defenseRank": 6,
538
+ "attackRank": 6,
539
+ "id": 10,
540
+ "rankedPlayEnabled": true,
541
+ "name": "Kayle",
542
+ "botEnabled": false,
543
+ "difficultyRank": 5,
544
+ "active": true,
545
+ "freeToPlay": false,
546
+ "magicRank": 7
547
+ },
548
+ {
549
+ "botMmEnabled": false,
550
+ "defenseRank": 4,
551
+ "attackRank": 6,
552
+ "id": 85,
553
+ "rankedPlayEnabled": true,
554
+ "name": "Kennen",
555
+ "botEnabled": false,
556
+ "difficultyRank": 5,
557
+ "active": true,
558
+ "freeToPlay": false,
559
+ "magicRank": 7
560
+ },
561
+ {
562
+ "botMmEnabled": false,
563
+ "defenseRank": 4,
564
+ "attackRank": 9,
565
+ "id": 121,
566
+ "rankedPlayEnabled": true,
567
+ "name": "Khazix",
568
+ "botEnabled": false,
569
+ "difficultyRank": 7,
570
+ "active": true,
571
+ "freeToPlay": false,
572
+ "magicRank": 3
573
+ },
574
+ {
575
+ "botMmEnabled": true,
576
+ "defenseRank": 2,
577
+ "attackRank": 8,
578
+ "id": 96,
579
+ "rankedPlayEnabled": true,
580
+ "name": "KogMaw",
581
+ "botEnabled": false,
582
+ "difficultyRank": 8,
583
+ "active": true,
584
+ "freeToPlay": false,
585
+ "magicRank": 5
586
+ },
587
+ {
588
+ "botMmEnabled": false,
589
+ "defenseRank": 4,
590
+ "attackRank": 1,
591
+ "id": 7,
592
+ "rankedPlayEnabled": true,
593
+ "name": "Leblanc",
594
+ "botEnabled": false,
595
+ "difficultyRank": 9,
596
+ "active": true,
597
+ "freeToPlay": false,
598
+ "magicRank": 10
599
+ },
600
+ {
601
+ "botMmEnabled": false,
602
+ "defenseRank": 5,
603
+ "attackRank": 8,
604
+ "id": 64,
605
+ "rankedPlayEnabled": true,
606
+ "name": "LeeSin",
607
+ "botEnabled": false,
608
+ "difficultyRank": 9,
609
+ "active": true,
610
+ "freeToPlay": false,
611
+ "magicRank": 3
612
+ },
613
+ {
614
+ "botMmEnabled": true,
615
+ "defenseRank": 8,
616
+ "attackRank": 4,
617
+ "id": 89,
618
+ "rankedPlayEnabled": true,
619
+ "name": "Leona",
620
+ "botEnabled": true,
621
+ "difficultyRank": 4,
622
+ "active": true,
623
+ "freeToPlay": false,
624
+ "magicRank": 3
625
+ },
626
+ {
627
+ "botMmEnabled": false,
628
+ "defenseRank": 5,
629
+ "attackRank": 2,
630
+ "id": 127,
631
+ "rankedPlayEnabled": true,
632
+ "name": "Lissandra",
633
+ "botEnabled": false,
634
+ "difficultyRank": 8,
635
+ "active": true,
636
+ "freeToPlay": false,
637
+ "magicRank": 8
638
+ },
639
+ {
640
+ "botMmEnabled": true,
641
+ "defenseRank": 5,
642
+ "attackRank": 8,
643
+ "id": 236,
644
+ "rankedPlayEnabled": true,
645
+ "name": "Lucian",
646
+ "botEnabled": false,
647
+ "difficultyRank": 8,
648
+ "active": true,
649
+ "freeToPlay": false,
650
+ "magicRank": 3
651
+ },
652
+ {
653
+ "botMmEnabled": false,
654
+ "defenseRank": 5,
655
+ "attackRank": 4,
656
+ "id": 117,
657
+ "rankedPlayEnabled": true,
658
+ "name": "Lulu",
659
+ "botEnabled": false,
660
+ "difficultyRank": 7,
661
+ "active": true,
662
+ "freeToPlay": false,
663
+ "magicRank": 7
664
+ },
665
+ {
666
+ "botMmEnabled": true,
667
+ "defenseRank": 4,
668
+ "attackRank": 2,
669
+ "id": 99,
670
+ "rankedPlayEnabled": true,
671
+ "name": "Lux",
672
+ "botEnabled": true,
673
+ "difficultyRank": 6,
674
+ "active": true,
675
+ "freeToPlay": false,
676
+ "magicRank": 9
677
+ },
678
+ {
679
+ "botMmEnabled": true,
680
+ "defenseRank": 9,
681
+ "attackRank": 5,
682
+ "id": 54,
683
+ "rankedPlayEnabled": true,
684
+ "name": "Malphite",
685
+ "botEnabled": true,
686
+ "difficultyRank": 3,
687
+ "active": true,
688
+ "freeToPlay": false,
689
+ "magicRank": 7
690
+ },
691
+ {
692
+ "botMmEnabled": true,
693
+ "defenseRank": 2,
694
+ "attackRank": 2,
695
+ "id": 90,
696
+ "rankedPlayEnabled": true,
697
+ "name": "Malzahar",
698
+ "botEnabled": true,
699
+ "difficultyRank": 6,
700
+ "active": true,
701
+ "freeToPlay": false,
702
+ "magicRank": 9
703
+ },
704
+ {
705
+ "botMmEnabled": false,
706
+ "defenseRank": 8,
707
+ "attackRank": 3,
708
+ "id": 57,
709
+ "rankedPlayEnabled": true,
710
+ "name": "Maokai",
711
+ "botEnabled": false,
712
+ "difficultyRank": 4,
713
+ "active": true,
714
+ "freeToPlay": false,
715
+ "magicRank": 6
716
+ },
717
+ {
718
+ "botMmEnabled": true,
719
+ "defenseRank": 4,
720
+ "attackRank": 10,
721
+ "id": 11,
722
+ "rankedPlayEnabled": true,
723
+ "name": "MasterYi",
724
+ "botEnabled": true,
725
+ "difficultyRank": 2,
726
+ "active": true,
727
+ "freeToPlay": false,
728
+ "magicRank": 2
729
+ },
730
+ {
731
+ "botMmEnabled": true,
732
+ "defenseRank": 2,
733
+ "attackRank": 8,
734
+ "id": 21,
735
+ "rankedPlayEnabled": true,
736
+ "name": "MissFortune",
737
+ "botEnabled": true,
738
+ "difficultyRank": 3,
739
+ "active": true,
740
+ "freeToPlay": false,
741
+ "magicRank": 5
742
+ },
743
+ {
744
+ "botMmEnabled": true,
745
+ "defenseRank": 5,
746
+ "attackRank": 8,
747
+ "id": 62,
748
+ "rankedPlayEnabled": true,
749
+ "name": "MonkeyKing",
750
+ "botEnabled": true,
751
+ "difficultyRank": 3,
752
+ "active": true,
753
+ "freeToPlay": false,
754
+ "magicRank": 2
755
+ },
756
+ {
757
+ "botMmEnabled": false,
758
+ "defenseRank": 6,
759
+ "attackRank": 4,
760
+ "id": 82,
761
+ "rankedPlayEnabled": true,
762
+ "name": "Mordekaiser",
763
+ "botEnabled": false,
764
+ "difficultyRank": 3,
765
+ "active": true,
766
+ "freeToPlay": false,
767
+ "magicRank": 7
768
+ },
769
+ {
770
+ "botMmEnabled": true,
771
+ "defenseRank": 6,
772
+ "attackRank": 1,
773
+ "id": 25,
774
+ "rankedPlayEnabled": true,
775
+ "name": "Morgana",
776
+ "botEnabled": true,
777
+ "difficultyRank": 6,
778
+ "active": true,
779
+ "freeToPlay": true,
780
+ "magicRank": 8
781
+ },
782
+ {
783
+ "botMmEnabled": false,
784
+ "defenseRank": 3,
785
+ "attackRank": 4,
786
+ "id": 267,
787
+ "rankedPlayEnabled": true,
788
+ "name": "Nami",
789
+ "botEnabled": false,
790
+ "difficultyRank": 8,
791
+ "active": true,
792
+ "freeToPlay": false,
793
+ "magicRank": 7
794
+ },
795
+ {
796
+ "botMmEnabled": true,
797
+ "defenseRank": 5,
798
+ "attackRank": 7,
799
+ "id": 75,
800
+ "rankedPlayEnabled": true,
801
+ "name": "Nasus",
802
+ "botEnabled": true,
803
+ "difficultyRank": 2,
804
+ "active": true,
805
+ "freeToPlay": false,
806
+ "magicRank": 6
807
+ },
808
+ {
809
+ "botMmEnabled": false,
810
+ "defenseRank": 6,
811
+ "attackRank": 4,
812
+ "id": 111,
813
+ "rankedPlayEnabled": true,
814
+ "name": "Nautilus",
815
+ "botEnabled": false,
816
+ "difficultyRank": 6,
817
+ "active": true,
818
+ "freeToPlay": false,
819
+ "magicRank": 6
820
+ },
821
+ {
822
+ "botMmEnabled": true,
823
+ "defenseRank": 4,
824
+ "attackRank": 5,
825
+ "id": 76,
826
+ "rankedPlayEnabled": true,
827
+ "name": "Nidalee",
828
+ "botEnabled": false,
829
+ "difficultyRank": 7,
830
+ "active": true,
831
+ "freeToPlay": false,
832
+ "magicRank": 7
833
+ },
834
+ {
835
+ "botMmEnabled": false,
836
+ "defenseRank": 5,
837
+ "attackRank": 9,
838
+ "id": 56,
839
+ "rankedPlayEnabled": true,
840
+ "name": "Nocturne",
841
+ "botEnabled": false,
842
+ "difficultyRank": 6,
843
+ "active": true,
844
+ "freeToPlay": false,
845
+ "magicRank": 2
846
+ },
847
+ {
848
+ "botMmEnabled": true,
849
+ "defenseRank": 6,
850
+ "attackRank": 4,
851
+ "id": 20,
852
+ "rankedPlayEnabled": true,
853
+ "name": "Nunu",
854
+ "botEnabled": true,
855
+ "difficultyRank": 1,
856
+ "active": true,
857
+ "freeToPlay": true,
858
+ "magicRank": 7
859
+ },
860
+ {
861
+ "botMmEnabled": false,
862
+ "defenseRank": 5,
863
+ "attackRank": 9,
864
+ "id": 2,
865
+ "rankedPlayEnabled": true,
866
+ "name": "Olaf",
867
+ "botEnabled": false,
868
+ "difficultyRank": 4,
869
+ "active": true,
870
+ "freeToPlay": false,
871
+ "magicRank": 3
872
+ },
873
+ {
874
+ "botMmEnabled": false,
875
+ "defenseRank": 3,
876
+ "attackRank": 4,
877
+ "id": 61,
878
+ "rankedPlayEnabled": true,
879
+ "name": "Orianna",
880
+ "botEnabled": false,
881
+ "difficultyRank": 10,
882
+ "active": true,
883
+ "freeToPlay": true,
884
+ "magicRank": 9
885
+ },
886
+ {
887
+ "botMmEnabled": false,
888
+ "defenseRank": 4,
889
+ "attackRank": 9,
890
+ "id": 80,
891
+ "rankedPlayEnabled": true,
892
+ "name": "Pantheon",
893
+ "botEnabled": false,
894
+ "difficultyRank": 5,
895
+ "active": true,
896
+ "freeToPlay": false,
897
+ "magicRank": 3
898
+ },
899
+ {
900
+ "botMmEnabled": false,
901
+ "defenseRank": 6,
902
+ "attackRank": 6,
903
+ "id": 78,
904
+ "rankedPlayEnabled": true,
905
+ "name": "Poppy",
906
+ "botEnabled": false,
907
+ "difficultyRank": 7,
908
+ "active": true,
909
+ "freeToPlay": false,
910
+ "magicRank": 5
911
+ },
912
+ {
913
+ "botMmEnabled": false,
914
+ "defenseRank": 4,
915
+ "attackRank": 9,
916
+ "id": 133,
917
+ "rankedPlayEnabled": true,
918
+ "name": "Quinn",
919
+ "botEnabled": false,
920
+ "difficultyRank": 7,
921
+ "active": true,
922
+ "freeToPlay": false,
923
+ "magicRank": 2
924
+ },
925
+ {
926
+ "botMmEnabled": true,
927
+ "defenseRank": 10,
928
+ "attackRank": 4,
929
+ "id": 33,
930
+ "rankedPlayEnabled": true,
931
+ "name": "Rammus",
932
+ "botEnabled": false,
933
+ "difficultyRank": 5,
934
+ "active": true,
935
+ "freeToPlay": false,
936
+ "magicRank": 5
937
+ },
938
+ {
939
+ "botMmEnabled": true,
940
+ "defenseRank": 5,
941
+ "attackRank": 8,
942
+ "id": 58,
943
+ "rankedPlayEnabled": true,
944
+ "name": "Renekton",
945
+ "botEnabled": true,
946
+ "difficultyRank": 3,
947
+ "active": true,
948
+ "freeToPlay": false,
949
+ "magicRank": 2
950
+ },
951
+ {
952
+ "botMmEnabled": false,
953
+ "defenseRank": 4,
954
+ "attackRank": 7,
955
+ "id": 107,
956
+ "rankedPlayEnabled": true,
957
+ "name": "Rengar",
958
+ "botEnabled": false,
959
+ "difficultyRank": 5,
960
+ "active": true,
961
+ "freeToPlay": false,
962
+ "magicRank": 2
963
+ },
964
+ {
965
+ "botMmEnabled": false,
966
+ "defenseRank": 5,
967
+ "attackRank": 8,
968
+ "id": 92,
969
+ "rankedPlayEnabled": true,
970
+ "name": "Riven",
971
+ "botEnabled": false,
972
+ "difficultyRank": 4,
973
+ "active": true,
974
+ "freeToPlay": false,
975
+ "magicRank": 1
976
+ },
977
+ {
978
+ "botMmEnabled": false,
979
+ "defenseRank": 6,
980
+ "attackRank": 3,
981
+ "id": 68,
982
+ "rankedPlayEnabled": true,
983
+ "name": "Rumble",
984
+ "botEnabled": false,
985
+ "difficultyRank": 8,
986
+ "active": true,
987
+ "freeToPlay": false,
988
+ "magicRank": 8
989
+ },
990
+ {
991
+ "botMmEnabled": true,
992
+ "defenseRank": 2,
993
+ "attackRank": 2,
994
+ "id": 13,
995
+ "rankedPlayEnabled": true,
996
+ "name": "Ryze",
997
+ "botEnabled": true,
998
+ "difficultyRank": 3,
999
+ "active": true,
1000
+ "freeToPlay": false,
1001
+ "magicRank": 10
1002
+ },
1003
+ {
1004
+ "botMmEnabled": false,
1005
+ "defenseRank": 7,
1006
+ "attackRank": 5,
1007
+ "id": 113,
1008
+ "rankedPlayEnabled": true,
1009
+ "name": "Sejuani",
1010
+ "botEnabled": false,
1011
+ "difficultyRank": 4,
1012
+ "active": true,
1013
+ "freeToPlay": true,
1014
+ "magicRank": 6
1015
+ },
1016
+ {
1017
+ "botMmEnabled": false,
1018
+ "defenseRank": 4,
1019
+ "attackRank": 8,
1020
+ "id": 35,
1021
+ "rankedPlayEnabled": true,
1022
+ "name": "Shaco",
1023
+ "botEnabled": false,
1024
+ "difficultyRank": 9,
1025
+ "active": true,
1026
+ "freeToPlay": false,
1027
+ "magicRank": 6
1028
+ },
1029
+ {
1030
+ "botMmEnabled": true,
1031
+ "defenseRank": 9,
1032
+ "attackRank": 3,
1033
+ "id": 98,
1034
+ "rankedPlayEnabled": true,
1035
+ "name": "Shen",
1036
+ "botEnabled": true,
1037
+ "difficultyRank": 3,
1038
+ "active": true,
1039
+ "freeToPlay": false,
1040
+ "magicRank": 3
1041
+ },
1042
+ {
1043
+ "botMmEnabled": true,
1044
+ "defenseRank": 6,
1045
+ "attackRank": 8,
1046
+ "id": 102,
1047
+ "rankedPlayEnabled": true,
1048
+ "name": "Shyvana",
1049
+ "botEnabled": true,
1050
+ "difficultyRank": 4,
1051
+ "active": true,
1052
+ "freeToPlay": false,
1053
+ "magicRank": 3
1054
+ },
1055
+ {
1056
+ "botMmEnabled": false,
1057
+ "defenseRank": 8,
1058
+ "attackRank": 4,
1059
+ "id": 27,
1060
+ "rankedPlayEnabled": true,
1061
+ "name": "Singed",
1062
+ "botEnabled": false,
1063
+ "difficultyRank": 5,
1064
+ "active": true,
1065
+ "freeToPlay": false,
1066
+ "magicRank": 7
1067
+ },
1068
+ {
1069
+ "botMmEnabled": true,
1070
+ "defenseRank": 8,
1071
+ "attackRank": 5,
1072
+ "id": 14,
1073
+ "rankedPlayEnabled": true,
1074
+ "name": "Sion",
1075
+ "botEnabled": false,
1076
+ "difficultyRank": 4,
1077
+ "active": true,
1078
+ "freeToPlay": false,
1079
+ "magicRank": 7
1080
+ },
1081
+ {
1082
+ "botMmEnabled": true,
1083
+ "defenseRank": 3,
1084
+ "attackRank": 9,
1085
+ "id": 15,
1086
+ "rankedPlayEnabled": true,
1087
+ "name": "Sivir",
1088
+ "botEnabled": true,
1089
+ "difficultyRank": 3,
1090
+ "active": true,
1091
+ "freeToPlay": false,
1092
+ "magicRank": 1
1093
+ },
1094
+ {
1095
+ "botMmEnabled": false,
1096
+ "defenseRank": 6,
1097
+ "attackRank": 7,
1098
+ "id": 72,
1099
+ "rankedPlayEnabled": true,
1100
+ "name": "Skarner",
1101
+ "botEnabled": false,
1102
+ "difficultyRank": 5,
1103
+ "active": true,
1104
+ "freeToPlay": false,
1105
+ "magicRank": 5
1106
+ },
1107
+ {
1108
+ "botMmEnabled": true,
1109
+ "defenseRank": 2,
1110
+ "attackRank": 5,
1111
+ "id": 37,
1112
+ "rankedPlayEnabled": true,
1113
+ "name": "Sona",
1114
+ "botEnabled": true,
1115
+ "difficultyRank": 1,
1116
+ "active": true,
1117
+ "freeToPlay": true,
1118
+ "magicRank": 8
1119
+ },
1120
+ {
1121
+ "botMmEnabled": true,
1122
+ "defenseRank": 5,
1123
+ "attackRank": 2,
1124
+ "id": 16,
1125
+ "rankedPlayEnabled": true,
1126
+ "name": "Soraka",
1127
+ "botEnabled": true,
1128
+ "difficultyRank": 3,
1129
+ "active": true,
1130
+ "freeToPlay": false,
1131
+ "magicRank": 7
1132
+ },
1133
+ {
1134
+ "botMmEnabled": true,
1135
+ "defenseRank": 6,
1136
+ "attackRank": 2,
1137
+ "id": 50,
1138
+ "rankedPlayEnabled": true,
1139
+ "name": "Swain",
1140
+ "botEnabled": true,
1141
+ "difficultyRank": 5,
1142
+ "active": true,
1143
+ "freeToPlay": false,
1144
+ "magicRank": 9
1145
+ },
1146
+ {
1147
+ "botMmEnabled": false,
1148
+ "defenseRank": 3,
1149
+ "attackRank": 2,
1150
+ "id": 134,
1151
+ "rankedPlayEnabled": true,
1152
+ "name": "Syndra",
1153
+ "botEnabled": false,
1154
+ "difficultyRank": 10,
1155
+ "active": true,
1156
+ "freeToPlay": false,
1157
+ "magicRank": 9
1158
+ },
1159
+ {
1160
+ "botMmEnabled": false,
1161
+ "defenseRank": 3,
1162
+ "attackRank": 9,
1163
+ "id": 91,
1164
+ "rankedPlayEnabled": true,
1165
+ "name": "Talon",
1166
+ "botEnabled": false,
1167
+ "difficultyRank": 6,
1168
+ "active": true,
1169
+ "freeToPlay": false,
1170
+ "magicRank": 1
1171
+ },
1172
+ {
1173
+ "botMmEnabled": true,
1174
+ "defenseRank": 8,
1175
+ "attackRank": 4,
1176
+ "id": 44,
1177
+ "rankedPlayEnabled": true,
1178
+ "name": "Taric",
1179
+ "botEnabled": true,
1180
+ "difficultyRank": 3,
1181
+ "active": true,
1182
+ "freeToPlay": false,
1183
+ "magicRank": 5
1184
+ },
1185
+ {
1186
+ "botMmEnabled": false,
1187
+ "defenseRank": 3,
1188
+ "attackRank": 5,
1189
+ "id": 17,
1190
+ "rankedPlayEnabled": true,
1191
+ "name": "Teemo",
1192
+ "botEnabled": false,
1193
+ "difficultyRank": 4,
1194
+ "active": true,
1195
+ "freeToPlay": false,
1196
+ "magicRank": 7
1197
+ },
1198
+ {
1199
+ "botMmEnabled": false,
1200
+ "defenseRank": 6,
1201
+ "attackRank": 5,
1202
+ "id": 412,
1203
+ "rankedPlayEnabled": true,
1204
+ "name": "Thresh",
1205
+ "botEnabled": false,
1206
+ "difficultyRank": 7,
1207
+ "active": true,
1208
+ "freeToPlay": false,
1209
+ "magicRank": 6
1210
+ },
1211
+ {
1212
+ "botMmEnabled": true,
1213
+ "defenseRank": 3,
1214
+ "attackRank": 9,
1215
+ "id": 18,
1216
+ "rankedPlayEnabled": true,
1217
+ "name": "Tristana",
1218
+ "botEnabled": true,
1219
+ "difficultyRank": 3,
1220
+ "active": true,
1221
+ "freeToPlay": false,
1222
+ "magicRank": 5
1223
+ },
1224
+ {
1225
+ "botMmEnabled": true,
1226
+ "defenseRank": 6,
1227
+ "attackRank": 7,
1228
+ "id": 48,
1229
+ "rankedPlayEnabled": true,
1230
+ "name": "Trundle",
1231
+ "botEnabled": true,
1232
+ "difficultyRank": 5,
1233
+ "active": true,
1234
+ "freeToPlay": true,
1235
+ "magicRank": 2
1236
+ },
1237
+ {
1238
+ "botMmEnabled": false,
1239
+ "defenseRank": 5,
1240
+ "attackRank": 10,
1241
+ "id": 23,
1242
+ "rankedPlayEnabled": true,
1243
+ "name": "Tryndamere",
1244
+ "botEnabled": false,
1245
+ "difficultyRank": 6,
1246
+ "active": true,
1247
+ "freeToPlay": false,
1248
+ "magicRank": 2
1249
+ },
1250
+ {
1251
+ "botMmEnabled": false,
1252
+ "defenseRank": 2,
1253
+ "attackRank": 6,
1254
+ "id": 4,
1255
+ "rankedPlayEnabled": true,
1256
+ "name": "TwistedFate",
1257
+ "botEnabled": false,
1258
+ "difficultyRank": 9,
1259
+ "active": true,
1260
+ "freeToPlay": false,
1261
+ "magicRank": 6
1262
+ },
1263
+ {
1264
+ "botMmEnabled": false,
1265
+ "defenseRank": 2,
1266
+ "attackRank": 9,
1267
+ "id": 29,
1268
+ "rankedPlayEnabled": true,
1269
+ "name": "Twitch",
1270
+ "botEnabled": false,
1271
+ "difficultyRank": 8,
1272
+ "active": true,
1273
+ "freeToPlay": false,
1274
+ "magicRank": 3
1275
+ },
1276
+ {
1277
+ "botMmEnabled": true,
1278
+ "defenseRank": 7,
1279
+ "attackRank": 8,
1280
+ "id": 77,
1281
+ "rankedPlayEnabled": true,
1282
+ "name": "Udyr",
1283
+ "botEnabled": false,
1284
+ "difficultyRank": 5,
1285
+ "active": true,
1286
+ "freeToPlay": false,
1287
+ "magicRank": 4
1288
+ },
1289
+ {
1290
+ "botMmEnabled": false,
1291
+ "defenseRank": 5,
1292
+ "attackRank": 8,
1293
+ "id": 6,
1294
+ "rankedPlayEnabled": true,
1295
+ "name": "Urgot",
1296
+ "botEnabled": false,
1297
+ "difficultyRank": 8,
1298
+ "active": true,
1299
+ "freeToPlay": false,
1300
+ "magicRank": 3
1301
+ },
1302
+ {
1303
+ "botMmEnabled": false,
1304
+ "defenseRank": 3,
1305
+ "attackRank": 7,
1306
+ "id": 110,
1307
+ "rankedPlayEnabled": true,
1308
+ "name": "Varus",
1309
+ "botEnabled": false,
1310
+ "difficultyRank": 6,
1311
+ "active": true,
1312
+ "freeToPlay": false,
1313
+ "magicRank": 4
1314
+ },
1315
+ {
1316
+ "botMmEnabled": false,
1317
+ "defenseRank": 1,
1318
+ "attackRank": 10,
1319
+ "id": 67,
1320
+ "rankedPlayEnabled": true,
1321
+ "name": "Vayne",
1322
+ "botEnabled": false,
1323
+ "difficultyRank": 7,
1324
+ "active": true,
1325
+ "freeToPlay": false,
1326
+ "magicRank": 1
1327
+ },
1328
+ {
1329
+ "botMmEnabled": true,
1330
+ "defenseRank": 2,
1331
+ "attackRank": 2,
1332
+ "id": 45,
1333
+ "rankedPlayEnabled": true,
1334
+ "name": "Veigar",
1335
+ "botEnabled": false,
1336
+ "difficultyRank": 6,
1337
+ "active": true,
1338
+ "freeToPlay": false,
1339
+ "magicRank": 10
1340
+ },
1341
+ {
1342
+ "botMmEnabled": false,
1343
+ "defenseRank": 5,
1344
+ "attackRank": 8,
1345
+ "id": 254,
1346
+ "rankedPlayEnabled": true,
1347
+ "name": "Vi",
1348
+ "botEnabled": false,
1349
+ "difficultyRank": 5,
1350
+ "active": true,
1351
+ "freeToPlay": false,
1352
+ "magicRank": 3
1353
+ },
1354
+ {
1355
+ "botMmEnabled": false,
1356
+ "defenseRank": 5,
1357
+ "attackRank": 2,
1358
+ "id": 112,
1359
+ "rankedPlayEnabled": true,
1360
+ "name": "Viktor",
1361
+ "botEnabled": false,
1362
+ "difficultyRank": 9,
1363
+ "active": true,
1364
+ "freeToPlay": false,
1365
+ "magicRank": 9
1366
+ },
1367
+ {
1368
+ "botMmEnabled": true,
1369
+ "defenseRank": 6,
1370
+ "attackRank": 2,
1371
+ "id": 8,
1372
+ "rankedPlayEnabled": true,
1373
+ "name": "Vladimir",
1374
+ "botEnabled": false,
1375
+ "difficultyRank": 2,
1376
+ "active": true,
1377
+ "freeToPlay": false,
1378
+ "magicRank": 8
1379
+ },
1380
+ {
1381
+ "botMmEnabled": false,
1382
+ "defenseRank": 7,
1383
+ "attackRank": 7,
1384
+ "id": 106,
1385
+ "rankedPlayEnabled": true,
1386
+ "name": "Volibear",
1387
+ "botEnabled": false,
1388
+ "difficultyRank": 2,
1389
+ "active": true,
1390
+ "freeToPlay": true,
1391
+ "magicRank": 4
1392
+ },
1393
+ {
1394
+ "botMmEnabled": true,
1395
+ "defenseRank": 4,
1396
+ "attackRank": 7,
1397
+ "id": 19,
1398
+ "rankedPlayEnabled": true,
1399
+ "name": "Warwick",
1400
+ "botEnabled": true,
1401
+ "difficultyRank": 2,
1402
+ "active": true,
1403
+ "freeToPlay": false,
1404
+ "magicRank": 4
1405
+ },
1406
+ {
1407
+ "botMmEnabled": false,
1408
+ "defenseRank": 3,
1409
+ "attackRank": 1,
1410
+ "id": 101,
1411
+ "rankedPlayEnabled": true,
1412
+ "name": "Xerath",
1413
+ "botEnabled": false,
1414
+ "difficultyRank": 6,
1415
+ "active": true,
1416
+ "freeToPlay": false,
1417
+ "magicRank": 10
1418
+ },
1419
+ {
1420
+ "botMmEnabled": true,
1421
+ "defenseRank": 6,
1422
+ "attackRank": 8,
1423
+ "id": 5,
1424
+ "rankedPlayEnabled": true,
1425
+ "name": "XinZhao",
1426
+ "botEnabled": true,
1427
+ "difficultyRank": 3,
1428
+ "active": true,
1429
+ "freeToPlay": false,
1430
+ "magicRank": 3
1431
+ },
1432
+ {
1433
+ "botMmEnabled": false,
1434
+ "defenseRank": 4,
1435
+ "attackRank": 8,
1436
+ "id": 157,
1437
+ "rankedPlayEnabled": true,
1438
+ "name": "Yasuo",
1439
+ "botEnabled": false,
1440
+ "difficultyRank": 8,
1441
+ "active": true,
1442
+ "freeToPlay": false,
1443
+ "magicRank": 4
1444
+ },
1445
+ {
1446
+ "botMmEnabled": false,
1447
+ "defenseRank": 6,
1448
+ "attackRank": 6,
1449
+ "id": 83,
1450
+ "rankedPlayEnabled": true,
1451
+ "name": "Yorick",
1452
+ "botEnabled": false,
1453
+ "difficultyRank": 3,
1454
+ "active": true,
1455
+ "freeToPlay": false,
1456
+ "magicRank": 6
1457
+ },
1458
+ {
1459
+ "botMmEnabled": false,
1460
+ "defenseRank": 7,
1461
+ "attackRank": 3,
1462
+ "id": 154,
1463
+ "rankedPlayEnabled": true,
1464
+ "name": "Zac",
1465
+ "botEnabled": false,
1466
+ "difficultyRank": 6,
1467
+ "active": true,
1468
+ "freeToPlay": false,
1469
+ "magicRank": 7
1470
+ },
1471
+ {
1472
+ "botMmEnabled": false,
1473
+ "defenseRank": 2,
1474
+ "attackRank": 9,
1475
+ "id": 238,
1476
+ "rankedPlayEnabled": true,
1477
+ "name": "Zed",
1478
+ "botEnabled": false,
1479
+ "difficultyRank": 9,
1480
+ "active": true,
1481
+ "freeToPlay": false,
1482
+ "magicRank": 1
1483
+ },
1484
+ {
1485
+ "botMmEnabled": true,
1486
+ "defenseRank": 4,
1487
+ "attackRank": 2,
1488
+ "id": 115,
1489
+ "rankedPlayEnabled": true,
1490
+ "name": "Ziggs",
1491
+ "botEnabled": false,
1492
+ "difficultyRank": 6,
1493
+ "active": true,
1494
+ "freeToPlay": false,
1495
+ "magicRank": 9
1496
+ },
1497
+ {
1498
+ "botMmEnabled": true,
1499
+ "defenseRank": 5,
1500
+ "attackRank": 2,
1501
+ "id": 26,
1502
+ "rankedPlayEnabled": true,
1503
+ "name": "Zilean",
1504
+ "botEnabled": false,
1505
+ "difficultyRank": 4,
1506
+ "active": true,
1507
+ "freeToPlay": false,
1508
+ "magicRank": 8
1509
+ },
1510
+ {
1511
+ "botMmEnabled": true,
1512
+ "defenseRank": 3,
1513
+ "attackRank": 4,
1514
+ "id": 143,
1515
+ "rankedPlayEnabled": true,
1516
+ "name": "Zyra",
1517
+ "botEnabled": false,
1518
+ "difficultyRank": 7,
1519
+ "active": true,
1520
+ "freeToPlay": false,
1521
+ "magicRank": 8
1522
+ }
1523
+ ]}