d2ad 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: db8005eae12d3a84a62eb14f9a01a2f51c4997f6
4
+ data.tar.gz: 0cde04a123ef3342360b7a069211cc2ad64645e0
5
+ SHA512:
6
+ metadata.gz: 9d0f5d0a1529b98a23ad69307bdb280bc85d58fe00bc85d23b867c23f212b9e934d75f86a02d68eb7604db6e1019ddc2b39a0ade75f15a6c81579793b0b21fd4
7
+ data.tar.gz: 5925659f8a66444c47db883ef1695f71cbc9fe6892a85c13a2fa88b6ca8cca1ac36baf80c3118dd05902e61af013f334d8ff0b27813060ebd4ad88569b00e068
data/bin/d2ad ADDED
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'd2ad'
4
+ require 'optparse'
5
+ require 'ostruct'
6
+
7
+ class D2ADOpts
8
+ def self.parse(args)
9
+ options = OpenStruct.new
10
+ options.key = ENV['STEAM_WEB_API_KEY']
11
+ options.matches = '5'
12
+
13
+ opt_parser = OptionParser.new do |opts|
14
+ opts.banner = 'Usage: d2ad command [arguments] [options]'
15
+
16
+ opts.on('-k', '--key [KEY]', 'Steam Web API Key to use') do |key|
17
+ options.key = key
18
+ end
19
+
20
+ opts.on('-n', '--matches [N]', 'Number of matches to retreive') do |n|
21
+ options.matches = n
22
+ end
23
+
24
+ opts.on_tail('-h', '--help', 'Show this message') do
25
+ puts help
26
+ exit
27
+ end
28
+ end
29
+
30
+ opt_parser.parse!(args)
31
+ options
32
+ end
33
+
34
+ def self.help
35
+ "Dota Ability Draft Analyzer is here to help you.\n\n"\
36
+ " Usage:\n"\
37
+ " d2ad command [arguments...] [options...]\n\n"\
38
+ " Commands:\n"\
39
+ " d2ad match <MATCH_ID> show ability upgrades for match MATCH_ID\n"\
40
+ " d2ad account <ACCOUNT_ID> show details about last 5 matches for ACCOUNT_ID\n"\
41
+ " d2ad account <ACCOUNT_ID> --num [N] show details about last N matches for ACCOUNT_ID\n"\
42
+ " d2ad help display this message\n\n"\
43
+ " Further information:\n"\
44
+ " http://ngscheurich.github.com/d2ad"
45
+ end
46
+ end
47
+
48
+ def error(what)
49
+ "Error: Missing #{what}\n\n d2ad help can show you the way"
50
+ end
51
+
52
+ opt = D2ADOpts.parse(ARGV)
53
+
54
+ if ARGV.empty? || ARGV[0] == 'help'
55
+ puts D2ADOpts.help
56
+ elsif opt.key.nil?
57
+ puts error('Steam Web API Key')
58
+ else
59
+ com = ARGV[0]
60
+ arg = ARGV[1]
61
+
62
+ #puts 'options: ' + opt.inspect
63
+ #puts 'command: ' + com
64
+ #puts 'argument: ' + arg
65
+
66
+ case com
67
+ when 'account'
68
+ out = arg.nil? ? error('account') : D2AD.matches(opt.key, arg, opt.matches)
69
+ when 'match'
70
+ out = arg.nil? ? error('match') : D2AD.abilities(opt.key, arg)
71
+ end
72
+
73
+ puts out
74
+ end
data/lib/d2ad.rb ADDED
@@ -0,0 +1,27 @@
1
+ module D2AD
2
+ require 'd2ad/dota-api'
3
+ require 'date'
4
+ require 'json'
5
+
6
+ def self.matches(api_key, account_id, matches_requested=5)
7
+ data = JSON.parse(DotaAPI.query(api_key, 'GetMatchHistory', { account_id: account_id, matches_requested: matches_requested }))
8
+ data['result']['matches'].each { |m| puts "#{DateTime.strptime(m['start_time'].to_s, '%s').to_s} #{m['match_id']}" }
9
+ nil
10
+ end
11
+
12
+ def self.abilities(api_key, match_id)
13
+ abilities = JSON.parse(File.read('lib/d2ad/abilities.json'))
14
+ match_details = JSON.parse(DotaAPI.query(api_key, 'GetMatchDetails', { match_id: match_id }))
15
+
16
+ match_details['result']['players'].each do |p|
17
+ puts "\naccount_id: #{p['account_id']}"
18
+ p['ability_upgrades'].each do |u|
19
+ abilities['abilities'].each do |a|
20
+ puts " #{u['level'].to_s.rjust(2)}: #{a['name']}" if u['ability'].to_s == a['id']
21
+ end
22
+ end
23
+ end
24
+
25
+ nil
26
+ end
27
+ end
@@ -0,0 +1,2192 @@
1
+ {
2
+ "abilities": [
3
+ {
4
+ "name": "centaur_khan_war_stomp",
5
+ "id": "5295"
6
+ },
7
+ {
8
+ "name": "necronomicon_warrior_last_will",
9
+ "id": "5200"
10
+ },
11
+ {
12
+ "name": "enigma_demonic_conversion",
13
+ "id": "5147"
14
+ },
15
+ {
16
+ "name": "beastmaster_boar_poison",
17
+ "id": "5171"
18
+ },
19
+ {
20
+ "name": "juggernaut_blade_fury",
21
+ "id": "5028"
22
+ },
23
+ {
24
+ "name": "witch_doctor_voodoo_restoration",
25
+ "id": "5139"
26
+ },
27
+ {
28
+ "name": "bloodseeker_blood_bath",
29
+ "id": "5016"
30
+ },
31
+ {
32
+ "name": "backdoor_protection_in_base",
33
+ "id": "5351"
34
+ },
35
+ {
36
+ "name": "broodmother_spawn_spiderite",
37
+ "id": "5283"
38
+ },
39
+ {
40
+ "name": "spirit_breaker_charge_of_darkness",
41
+ "id": "5353"
42
+ },
43
+ {
44
+ "name": "chaos_knight_reality_rift",
45
+ "id": "5427"
46
+ },
47
+ {
48
+ "name": "lina_laguna_blade",
49
+ "id": "5043"
50
+ },
51
+ {
52
+ "name": "riki_backstab",
53
+ "id": "5144"
54
+ },
55
+ {
56
+ "name": "forest_troll_high_priest_heal",
57
+ "id": "5318"
58
+ },
59
+ {
60
+ "name": "warlock_upheaval",
61
+ "id": "5164"
62
+ },
63
+ {
64
+ "name": "ogre_magi_frost_armor",
65
+ "id": "5304"
66
+ },
67
+ {
68
+ "name": "stats",
69
+ "id": "5002"
70
+ },
71
+ {
72
+ "name": "dazzle_poison_touch",
73
+ "id": "5233"
74
+ },
75
+ {
76
+ "name": "templar_assassin_self_trap",
77
+ "id": "5199"
78
+ },
79
+ {
80
+ "name": "silencer_glaives_of_wisdom",
81
+ "id": "5378"
82
+ },
83
+ {
84
+ "name": "warlock_rain_of_chaos",
85
+ "id": "5165"
86
+ },
87
+ {
88
+ "name": "sven_warcry",
89
+ "id": "5096"
90
+ },
91
+ {
92
+ "name": "templar_assassin_meld",
93
+ "id": "5195"
94
+ },
95
+ {
96
+ "name": "enchantress_impetus",
97
+ "id": "5270"
98
+ },
99
+ {
100
+ "name": "earthshaker_enchant_totem",
101
+ "id": "5024"
102
+ },
103
+ {
104
+ "name": "lone_druid_synergy",
105
+ "id": "5414"
106
+ },
107
+ {
108
+ "name": "invoker_forge_spirit",
109
+ "id": "5387"
110
+ },
111
+ {
112
+ "name": "chaos_knight_phantasm",
113
+ "id": "5429"
114
+ },
115
+ {
116
+ "name": "satyr_hellcaller_unholy_aura",
117
+ "id": "5317"
118
+ },
119
+ {
120
+ "name": "shadow_shaman_shackles",
121
+ "id": "5080"
122
+ },
123
+ {
124
+ "name": "ogre_magi_bloodlust",
125
+ "id": "5440"
126
+ },
127
+ {
128
+ "name": "shadow_demon_shadow_poison_release",
129
+ "id": "5424"
130
+ },
131
+ {
132
+ "name": "blue_dragonspawn_sorcerer_evasion",
133
+ "id": "5325"
134
+ },
135
+ {
136
+ "name": "antimage_mana_break",
137
+ "id": "5003"
138
+ },
139
+ {
140
+ "name": "spirit_breaker_empowering_haste",
141
+ "id": "5354"
142
+ },
143
+ {
144
+ "name": "satyr_hellcaller_shockwave",
145
+ "id": "5316"
146
+ },
147
+ {
148
+ "name": "morphling_morph_agi",
149
+ "id": "5055"
150
+ },
151
+ {
152
+ "name": "bounty_hunter_track",
153
+ "id": "5288"
154
+ },
155
+ {
156
+ "name": "bloodseeker_bloodrage",
157
+ "id": "5015"
158
+ },
159
+ {
160
+ "name": "obsidian_destroyer_astral_imprisonment",
161
+ "id": "5392"
162
+ },
163
+ {
164
+ "name": "lich_dark_ritual",
165
+ "id": "5136"
166
+ },
167
+ {
168
+ "name": "antimage_spell_shield",
169
+ "id": "5005"
170
+ },
171
+ {
172
+ "name": "enchantress_natures_attendants",
173
+ "id": "5269"
174
+ },
175
+ {
176
+ "name": "broodmother_incapacitating_bite",
177
+ "id": "5281"
178
+ },
179
+ {
180
+ "name": "undying_flesh_golem",
181
+ "id": "5447"
182
+ },
183
+ {
184
+ "name": "lone_druid_rabid",
185
+ "id": "5413"
186
+ },
187
+ {
188
+ "name": "slardar_sprint",
189
+ "id": "5114"
190
+ },
191
+ {
192
+ "name": "sandking_caustic_finale",
193
+ "id": "5104"
194
+ },
195
+ {
196
+ "name": "nevermore_dark_lord",
197
+ "id": "5063"
198
+ },
199
+ {
200
+ "name": "lycan_summon_wolves_invisibility",
201
+ "id": "5500"
202
+ },
203
+ {
204
+ "name": "life_stealer_infest",
205
+ "id": "5252"
206
+ },
207
+ {
208
+ "name": "lycan_feral_impulse",
209
+ "id": "5397"
210
+ },
211
+ {
212
+ "name": "ursa_overpower",
213
+ "id": "5358"
214
+ },
215
+ {
216
+ "name": "enraged_wildkin_toughness_aura",
217
+ "id": "5313"
218
+ },
219
+ {
220
+ "name": "pudge_flesh_heap",
221
+ "id": "5074"
222
+ },
223
+ {
224
+ "name": "witch_doctor_maledict",
225
+ "id": "5140"
226
+ },
227
+ {
228
+ "name": "vengefulspirit_nether_swap",
229
+ "id": "5125"
230
+ },
231
+ {
232
+ "name": "weaver_shukuchi",
233
+ "id": "5290"
234
+ },
235
+ {
236
+ "name": "weaver_the_swarm",
237
+ "id": "5289"
238
+ },
239
+ {
240
+ "name": "alchemist_acid_spray",
241
+ "id": "5365"
242
+ },
243
+ {
244
+ "name": "phantom_assassin_stifling_dagger",
245
+ "id": "5190"
246
+ },
247
+ {
248
+ "name": "sandking_epicenter",
249
+ "id": "5105"
250
+ },
251
+ {
252
+ "name": "tornado_tempest",
253
+ "id": "5310"
254
+ },
255
+ {
256
+ "name": "jakiro_liquid_fire",
257
+ "id": "5299"
258
+ },
259
+ {
260
+ "name": "chen_hand_of_god",
261
+ "id": "5331"
262
+ },
263
+ {
264
+ "name": "batrider_flaming_lasso",
265
+ "id": "5323"
266
+ },
267
+ {
268
+ "name": "lone_druid_true_form",
269
+ "id": "5416"
270
+ },
271
+ {
272
+ "name": "spirit_breaker_nether_strike",
273
+ "id": "5356"
274
+ },
275
+ {
276
+ "name": "spectre_haunt",
277
+ "id": "5337"
278
+ },
279
+ {
280
+ "name": "alchemist_chemical_rage",
281
+ "id": "5369"
282
+ },
283
+ {
284
+ "name": "silencer_last_word",
285
+ "id": "5379"
286
+ },
287
+ {
288
+ "name": "tinker_rearm",
289
+ "id": "5153"
290
+ },
291
+ {
292
+ "name": "rattletrap_rocket_flare",
293
+ "id": "5239"
294
+ },
295
+ {
296
+ "name": "omniknight_guardian_angel",
297
+ "id": "5266"
298
+ },
299
+ {
300
+ "name": "leshrac_diabolic_edict",
301
+ "id": "5242"
302
+ },
303
+ {
304
+ "name": "tiny_toss",
305
+ "id": "5107"
306
+ },
307
+ {
308
+ "name": "razor_static_link",
309
+ "id": "5083"
310
+ },
311
+ {
312
+ "name": "invoker_ice_wall",
313
+ "id": "5389"
314
+ },
315
+ {
316
+ "name": "brewmaster_drunken_haze",
317
+ "id": "5401"
318
+ },
319
+ {
320
+ "name": "batrider_flamebreak",
321
+ "id": "5321"
322
+ },
323
+ {
324
+ "name": "dark_seer_ion_shell",
325
+ "id": "5256"
326
+ },
327
+ {
328
+ "name": "queenofpain_scream_of_pain",
329
+ "id": "5175"
330
+ },
331
+ {
332
+ "name": "phantom_assassin_blur",
333
+ "id": "5192"
334
+ },
335
+ {
336
+ "name": "phantom_lancer_juxtapose",
337
+ "id": "5067"
338
+ },
339
+ {
340
+ "name": "tidehunter_anchor_smash",
341
+ "id": "5120"
342
+ },
343
+ {
344
+ "name": "axe_battle_hunger",
345
+ "id": "5008"
346
+ },
347
+ {
348
+ "name": "pugna_life_drain",
349
+ "id": "5189"
350
+ },
351
+ {
352
+ "name": "batrider_firefly",
353
+ "id": "5322"
354
+ },
355
+ {
356
+ "name": "beastmaster_primal_roar",
357
+ "id": "5177"
358
+ },
359
+ {
360
+ "name": "shadow_shaman_mass_serpent_ward",
361
+ "id": "5081"
362
+ },
363
+ {
364
+ "name": "treant_leech_seed",
365
+ "id": "5435"
366
+ },
367
+ {
368
+ "name": "chen_holy_persuasion",
369
+ "id": "5330"
370
+ },
371
+ {
372
+ "name": "courier_burst",
373
+ "id": "5210"
374
+ },
375
+ {
376
+ "name": "luna_lucent_beam",
377
+ "id": "5222"
378
+ },
379
+ {
380
+ "name": "luna_lucent_beam",
381
+ "id": "5222"
382
+ },
383
+ {
384
+ "name": "morphling_morph_replicate",
385
+ "id": "5058"
386
+ },
387
+ {
388
+ "name": "venomancer_poison_sting",
389
+ "id": "5179"
390
+ },
391
+ {
392
+ "name": "roshan_bash",
393
+ "id": "5214"
394
+ },
395
+ {
396
+ "name": "tinker_march_of_the_machines",
397
+ "id": "5152"
398
+ },
399
+ {
400
+ "name": "lone_druid_spirit_bear_demolish",
401
+ "id": "5420"
402
+ },
403
+ {
404
+ "name": "mirana_leap",
405
+ "id": "5050"
406
+ },
407
+ {
408
+ "name": "brewmaster_storm_wind_walk",
409
+ "id": "5410"
410
+ },
411
+ {
412
+ "name": "skeleton_king_reincarnation",
413
+ "id": "5089"
414
+ },
415
+ {
416
+ "name": "beastmaster_call_of_the_wild",
417
+ "id": "5169"
418
+ },
419
+ {
420
+ "name": "riki_permanent_invisibility",
421
+ "id": "5145"
422
+ },
423
+ {
424
+ "name": "courier_shield",
425
+ "id": "5209"
426
+ },
427
+ {
428
+ "name": "clinkz_searing_arrows",
429
+ "id": "5260"
430
+ },
431
+ {
432
+ "name": "puck_illusory_orb",
433
+ "id": "5069"
434
+ },
435
+ {
436
+ "name": "forged_spirit_melting_strike",
437
+ "id": "5388"
438
+ },
439
+ {
440
+ "name": "viper_viper_strike",
441
+ "id": "5221"
442
+ },
443
+ {
444
+ "name": "furion_wrath_of_nature",
445
+ "id": "5248"
446
+ },
447
+ {
448
+ "name": "silencer_curse_of_the_silent",
449
+ "id": "5377"
450
+ },
451
+ {
452
+ "name": "lich_frost_nova",
453
+ "id": "5134"
454
+ },
455
+ {
456
+ "name": "doom_bringer_doom",
457
+ "id": "5342"
458
+ },
459
+ {
460
+ "name": "warlock_golem_flaming_fists",
461
+ "id": "5166"
462
+ },
463
+ {
464
+ "name": "invoker_quas",
465
+ "id": "5370"
466
+ },
467
+ {
468
+ "name": "invoker_invoke",
469
+ "id": "5375"
470
+ },
471
+ {
472
+ "name": "dazzle_weave",
473
+ "id": "5236"
474
+ },
475
+ {
476
+ "name": "courier_go_to_secretshop",
477
+ "id": "5492"
478
+ },
479
+ {
480
+ "name": "meepo_geostrike",
481
+ "id": "5432"
482
+ },
483
+ {
484
+ "name": "ogre_magi_multicast",
485
+ "id": "5441"
486
+ },
487
+ {
488
+ "name": "crystal_maiden_frostbite",
489
+ "id": "5127"
490
+ },
491
+ {
492
+ "name": "invoker_deafening_blast",
493
+ "id": "5390"
494
+ },
495
+ {
496
+ "name": "crystal_maiden_freezing_field",
497
+ "id": "5129"
498
+ },
499
+ {
500
+ "name": "lina_light_strike_array",
501
+ "id": "5041"
502
+ },
503
+ {
504
+ "name": "dragon_knight_breathe_fire",
505
+ "id": "5226"
506
+ },
507
+ {
508
+ "name": "earthshaker_fissure",
509
+ "id": "5023"
510
+ },
511
+ {
512
+ "name": "witch_doctor_paralyzing_cask",
513
+ "id": "5138"
514
+ },
515
+ {
516
+ "name": "centaur_khan_endurance_aura",
517
+ "id": "5294"
518
+ },
519
+ {
520
+ "name": "gyrocopter_homing_missile",
521
+ "id": "5362"
522
+ },
523
+ {
524
+ "name": "death_prophet_silence",
525
+ "id": "5091"
526
+ },
527
+ {
528
+ "name": "beastmaster_wild_axes",
529
+ "id": "5168"
530
+ },
531
+ {
532
+ "name": "doom_bringer_lvl_death",
533
+ "id": "5341"
534
+ },
535
+ {
536
+ "name": "queenofpain_shadow_strike",
537
+ "id": "5173"
538
+ },
539
+ {
540
+ "name": "tiny_avalanche",
541
+ "id": "5106"
542
+ },
543
+ {
544
+ "name": "invoker_exort",
545
+ "id": "5372"
546
+ },
547
+ {
548
+ "name": "lone_druid_true_form_battle_cry",
549
+ "id": "5417"
550
+ },
551
+ {
552
+ "name": "tiny_craggy_exterior",
553
+ "id": "5108"
554
+ },
555
+ {
556
+ "name": "antimage_mana_void",
557
+ "id": "5006"
558
+ },
559
+ {
560
+ "name": "riki_smoke_screen",
561
+ "id": "5142"
562
+ },
563
+ {
564
+ "name": "roshan_spell_block",
565
+ "id": "5213"
566
+ },
567
+ {
568
+ "name": "juggernaut_healing_ward",
569
+ "id": "5029"
570
+ },
571
+ {
572
+ "name": "ancient_apparition_ice_blast_release",
573
+ "id": "5349"
574
+ },
575
+ {
576
+ "name": "obsidian_destroyer_arcane_orb",
577
+ "id": "5391"
578
+ },
579
+ {
580
+ "name": "earthshaker_aftershock",
581
+ "id": "5025"
582
+ },
583
+ {
584
+ "name": "satyr_trickster_purge",
585
+ "id": "5314"
586
+ },
587
+ {
588
+ "name": "slardar_amplify_damage",
589
+ "id": "5117"
590
+ },
591
+ {
592
+ "name": "dazzle_shallow_grave",
593
+ "id": "5234"
594
+ },
595
+ {
596
+ "name": "tiny_grow",
597
+ "id": "5109"
598
+ },
599
+ {
600
+ "name": "shadow_demon_demonic_purge",
601
+ "id": "5425"
602
+ },
603
+ {
604
+ "name": "enigma_midnight_pulse",
605
+ "id": "5148"
606
+ },
607
+ {
608
+ "name": "treant_living_armor",
609
+ "id": "5436"
610
+ },
611
+ {
612
+ "name": "spectre_desolate",
613
+ "id": "5335"
614
+ },
615
+ {
616
+ "name": "weaver_time_lapse",
617
+ "id": "5292"
618
+ },
619
+ {
620
+ "name": "ancient_apparition_chilling_touch",
621
+ "id": "5347"
622
+ },
623
+ {
624
+ "name": "brewmaster_storm_cyclone",
625
+ "id": "5409"
626
+ },
627
+ {
628
+ "name": "vengefulspirit_command_aura",
629
+ "id": "5123"
630
+ },
631
+ {
632
+ "name": "broodmother_spawn_spiderlings",
633
+ "id": "5279"
634
+ },
635
+ {
636
+ "name": "bane_fiends_grip",
637
+ "id": "5013"
638
+ },
639
+ {
640
+ "name": "gyrocopter_flak_cannon",
641
+ "id": "5363"
642
+ },
643
+ {
644
+ "name": "sniper_take_aim",
645
+ "id": "5156"
646
+ },
647
+ {
648
+ "name": "sven_great_cleave",
649
+ "id": "5095"
650
+ },
651
+ {
652
+ "name": "death_prophet_exorcism",
653
+ "id": "5093"
654
+ },
655
+ {
656
+ "name": "mirana_arrow",
657
+ "id": "5048"
658
+ },
659
+ {
660
+ "name": "bounty_hunter_jinada",
661
+ "id": "5286"
662
+ },
663
+ {
664
+ "name": "pudge_rot",
665
+ "id": "5076"
666
+ },
667
+ {
668
+ "name": "chen_test_of_faith",
669
+ "id": "5329"
670
+ },
671
+ {
672
+ "name": "jakiro_ice_path",
673
+ "id": "5298"
674
+ },
675
+ {
676
+ "name": "enraged_wildkin_tornado",
677
+ "id": "5312"
678
+ },
679
+ {
680
+ "name": "pugna_decrepify",
681
+ "id": "5187"
682
+ },
683
+ {
684
+ "name": "dark_troll_warlord_raise_dead",
685
+ "id": "5306"
686
+ },
687
+ {
688
+ "name": "drow_ranger_trueshot",
689
+ "id": "5021"
690
+ },
691
+ {
692
+ "name": "vengefulspirit_wave_of_terror",
693
+ "id": "5124"
694
+ },
695
+ {
696
+ "name": "bounty_hunter_wind_walk",
697
+ "id": "5287"
698
+ },
699
+ {
700
+ "name": "nevermore_requiem",
701
+ "id": "5064"
702
+ },
703
+ {
704
+ "name": "courier_transfer_items",
705
+ "id": "5206"
706
+ },
707
+ {
708
+ "name": "viper_poison_attack",
709
+ "id": "5218"
710
+ },
711
+ {
712
+ "name": "brewmaster_fire_permanent_immolation",
713
+ "id": "5411"
714
+ },
715
+ {
716
+ "name": "alchemist_unstable_concoction",
717
+ "id": "5366"
718
+ },
719
+ {
720
+ "name": "undying_soul_rip",
721
+ "id": "5443"
722
+ },
723
+ {
724
+ "name": "roshan_devotion",
725
+ "id": "5217"
726
+ },
727
+ {
728
+ "name": "zuus_thundergods_wrath",
729
+ "id": "5113"
730
+ },
731
+ {
732
+ "name": "broodmother_spin_web",
733
+ "id": "5280"
734
+ },
735
+ {
736
+ "name": "jakiro_dual_breath",
737
+ "id": "5297"
738
+ },
739
+ {
740
+ "name": "luna_moon_glaive",
741
+ "id": "5223"
742
+ },
743
+ {
744
+ "name": "roshan_slam",
745
+ "id": "5215"
746
+ },
747
+ {
748
+ "name": "queenofpain_sonic_wave",
749
+ "id": "5176"
750
+ },
751
+ {
752
+ "name": "sniper_assassinate",
753
+ "id": "5157"
754
+ },
755
+ {
756
+ "name": "invoker_tornado",
757
+ "id": "5382"
758
+ },
759
+ {
760
+ "name": "dark_troll_warlord_ensnare",
761
+ "id": "5305"
762
+ },
763
+ {
764
+ "name": "courier_return_stash_items",
765
+ "id": "5207"
766
+ },
767
+ {
768
+ "name": "batrider_sticky_napalm",
769
+ "id": "5320"
770
+ },
771
+ {
772
+ "name": "ancient_apparition_ice_vortex",
773
+ "id": "5346"
774
+ },
775
+ {
776
+ "name": "windrunner_shackleshot",
777
+ "id": "5130"
778
+ },
779
+ {
780
+ "name": "lion_voodoo",
781
+ "id": "5045"
782
+ },
783
+ {
784
+ "name": "undying_decay",
785
+ "id": "5442"
786
+ },
787
+ {
788
+ "name": "tinker_heat_seeking_missile",
789
+ "id": "5151"
790
+ },
791
+ {
792
+ "name": "lion_mana_drain",
793
+ "id": "5046"
794
+ },
795
+ {
796
+ "name": "lone_druid_spirit_bear",
797
+ "id": "5412"
798
+ },
799
+ {
800
+ "name": "shadow_shaman_voodoo",
801
+ "id": "5079"
802
+ },
803
+ {
804
+ "name": "brewmaster_thunder_clap",
805
+ "id": "5400"
806
+ },
807
+ {
808
+ "name": "meepo_divided_we_stand",
809
+ "id": "5433"
810
+ },
811
+ {
812
+ "name": "big_thunder_lizard_frenzy",
813
+ "id": "5333"
814
+ },
815
+ {
816
+ "name": "luna_eclipse",
817
+ "id": "5225"
818
+ },
819
+ {
820
+ "name": "sandking_sand_storm",
821
+ "id": "5103"
822
+ },
823
+ {
824
+ "name": "giant_wolf_critical_strike",
825
+ "id": "5307"
826
+ },
827
+ {
828
+ "name": "brewmaster_storm_dispel_magic",
829
+ "id": "5408"
830
+ },
831
+ {
832
+ "name": "big_thunder_lizard_slam",
833
+ "id": "5332"
834
+ },
835
+ {
836
+ "name": "forest_troll_high_priest_mana_aura",
837
+ "id": "5491"
838
+ },
839
+ {
840
+ "name": "invoker_wex",
841
+ "id": "5371"
842
+ },
843
+ {
844
+ "name": "clinkz_wind_walk",
845
+ "id": "5261"
846
+ },
847
+ {
848
+ "name": "lone_druid_true_form",
849
+ "id": "5415"
850
+ },
851
+ {
852
+ "name": "undying_tombstone_zombie_deathstrike",
853
+ "id": "5446"
854
+ },
855
+ {
856
+ "name": "queenofpain_blink",
857
+ "id": "5174"
858
+ },
859
+ {
860
+ "name": "roshan_illusion_protection",
861
+ "id": "5216"
862
+ },
863
+ {
864
+ "name": "necronomicon_archer_aoe",
865
+ "id": "5204"
866
+ },
867
+ {
868
+ "name": "witch_doctor_death_ward",
869
+ "id": "5141"
870
+ },
871
+ {
872
+ "name": "enchantress_untouchable",
873
+ "id": "5267"
874
+ },
875
+ {
876
+ "name": "night_stalker_void",
877
+ "id": "5275"
878
+ },
879
+ {
880
+ "name": "faceless_void_time_lock",
881
+ "id": "5184"
882
+ },
883
+ {
884
+ "name": "faceless_void_backtrack",
885
+ "id": "5183"
886
+ },
887
+ {
888
+ "name": "polar_furbolg_ursa_warrior_thunder_clap",
889
+ "id": "5302"
890
+ },
891
+ {
892
+ "name": "slardar_bash",
893
+ "id": "5116"
894
+ },
895
+ {
896
+ "name": "omniknight_repel",
897
+ "id": "5264"
898
+ },
899
+ {
900
+ "name": "huskar_life_break",
901
+ "id": "5274"
902
+ },
903
+ {
904
+ "name": "spirit_breaker_greater_bash",
905
+ "id": "5355"
906
+ },
907
+ {
908
+ "name": "invoker_ghost_walk",
909
+ "id": "5381"
910
+ },
911
+ {
912
+ "name": "tidehunter_gush",
913
+ "id": "5118"
914
+ },
915
+ {
916
+ "name": "tidehunter_ravage",
917
+ "id": "5121"
918
+ },
919
+ {
920
+ "name": "lycan_summon_wolves",
921
+ "id": "5395"
922
+ },
923
+ {
924
+ "name": "drow_ranger_frost_arrows",
925
+ "id": "5019"
926
+ },
927
+ {
928
+ "name": "rattletrap_power_cogs",
929
+ "id": "5238"
930
+ },
931
+ {
932
+ "name": "chen_penitence",
933
+ "id": "5328"
934
+ },
935
+ {
936
+ "name": "skeleton_king_critical_strike",
937
+ "id": "5088"
938
+ },
939
+ {
940
+ "name": "dazzle_shadow_wave",
941
+ "id": "5235"
942
+ },
943
+ {
944
+ "name": "sniper_headshot",
945
+ "id": "5155"
946
+ },
947
+ {
948
+ "name": "life_stealer_consume",
949
+ "id": "5253"
950
+ },
951
+ {
952
+ "name": "kunkka_x_marks_the_spot",
953
+ "id": "5033"
954
+ },
955
+ {
956
+ "name": "furion_teleportation",
957
+ "id": "5246"
958
+ },
959
+ {
960
+ "name": "brewmaster_drunken_brawler",
961
+ "id": "5402"
962
+ },
963
+ {
964
+ "name": "morphling_waveform",
965
+ "id": "5052"
966
+ },
967
+ {
968
+ "name": "morphling_replicate",
969
+ "id": "5057"
970
+ },
971
+ {
972
+ "name": "storm_spirit_static_remnant",
973
+ "id": "5098"
974
+ },
975
+ {
976
+ "name": "drow_ranger_marksmanship",
977
+ "id": "5022"
978
+ },
979
+ {
980
+ "name": "night_stalker_darkness",
981
+ "id": "5278"
982
+ },
983
+ {
984
+ "name": "windrunner_powershot",
985
+ "id": "5131"
986
+ },
987
+ {
988
+ "name": "venomancer_plague_ward",
989
+ "id": "5180"
990
+ },
991
+ {
992
+ "name": "invoker_sun_strike",
993
+ "id": "5386"
994
+ },
995
+ {
996
+ "name": "riki_blink_strike",
997
+ "id": "5143"
998
+ },
999
+ {
1000
+ "name": "zuus_static_field",
1001
+ "id": "5112"
1002
+ },
1003
+ {
1004
+ "name": "pudge_meat_hook",
1005
+ "id": "5075"
1006
+ },
1007
+ {
1008
+ "name": "pugna_nether_ward",
1009
+ "id": "5188"
1010
+ },
1011
+ {
1012
+ "name": "treant_overgrowth",
1013
+ "id": "5437"
1014
+ },
1015
+ {
1016
+ "name": "zuus_lightning_bolt",
1017
+ "id": "5111"
1018
+ },
1019
+ {
1020
+ "name": "luna_lunar_blessing",
1021
+ "id": "5224"
1022
+ },
1023
+ {
1024
+ "name": "brewmaster_primal_split",
1025
+ "id": "5403"
1026
+ },
1027
+ {
1028
+ "name": "invoker_chaos_meteor",
1029
+ "id": "5385"
1030
+ },
1031
+ {
1032
+ "name": "ogre_magi_fireblast",
1033
+ "id": "5438"
1034
+ },
1035
+ {
1036
+ "name": "tidehunter_kraken_shell",
1037
+ "id": "5119"
1038
+ },
1039
+ {
1040
+ "name": "ursa_enrage",
1041
+ "id": "5360"
1042
+ },
1043
+ {
1044
+ "name": "lich_chain_frost",
1045
+ "id": "5137"
1046
+ },
1047
+ {
1048
+ "name": "razor_eye_of_the_storm",
1049
+ "id": "5085"
1050
+ },
1051
+ {
1052
+ "name": "ursa_fury_swipes",
1053
+ "id": "5359"
1054
+ },
1055
+ {
1056
+ "name": "juggernaut_omni_slash",
1057
+ "id": "5030"
1058
+ },
1059
+ {
1060
+ "name": "obsidian_destroyer_essence_aura",
1061
+ "id": "5393"
1062
+ },
1063
+ {
1064
+ "name": "warlock_shadow_word",
1065
+ "id": "5163"
1066
+ },
1067
+ {
1068
+ "name": "axe_berserkers_call",
1069
+ "id": "5007"
1070
+ },
1071
+ {
1072
+ "name": "dark_seer_wall_of_replica",
1073
+ "id": "5258"
1074
+ },
1075
+ {
1076
+ "name": "razor_unstable_current",
1077
+ "id": "5084"
1078
+ },
1079
+ {
1080
+ "name": "necrolyte_death_pulse",
1081
+ "id": "5158"
1082
+ },
1083
+ {
1084
+ "name": "necrolyte_reapers_scythe",
1085
+ "id": "5161"
1086
+ },
1087
+ {
1088
+ "name": "broodmother_insatiable_hunger",
1089
+ "id": "5282"
1090
+ },
1091
+ {
1092
+ "name": "templar_assassin_psi_blades",
1093
+ "id": "5196"
1094
+ },
1095
+ {
1096
+ "name": "pugna_nether_blast",
1097
+ "id": "5186"
1098
+ },
1099
+ {
1100
+ "name": "leshrac_pulse_nova",
1101
+ "id": "5244"
1102
+ },
1103
+ {
1104
+ "name": "doom_bringer_scorched_earth",
1105
+ "id": "5340"
1106
+ },
1107
+ {
1108
+ "name": "warlock_golem_permanent_immolation",
1109
+ "id": "5167"
1110
+ },
1111
+ {
1112
+ "name": "bloodseeker_thirst",
1113
+ "id": "5017"
1114
+ },
1115
+ {
1116
+ "name": "mirana_starfall",
1117
+ "id": "5051"
1118
+ },
1119
+ {
1120
+ "name": "viper_corrosive_skin",
1121
+ "id": "5220"
1122
+ },
1123
+ {
1124
+ "name": "kunkka_ghostship",
1125
+ "id": "5035"
1126
+ },
1127
+ {
1128
+ "name": "dark_seer_surge",
1129
+ "id": "5257"
1130
+ },
1131
+ {
1132
+ "name": "lone_druid_spirit_bear_return",
1133
+ "id": "5418"
1134
+ },
1135
+ {
1136
+ "name": "meepo_poof",
1137
+ "id": "5431"
1138
+ },
1139
+ {
1140
+ "name": "black_dragon_splash_attack",
1141
+ "id": "5324"
1142
+ },
1143
+ {
1144
+ "name": "rattletrap_battery_assault",
1145
+ "id": "5237"
1146
+ },
1147
+ {
1148
+ "name": "drow_ranger_silence",
1149
+ "id": "5020"
1150
+ },
1151
+ {
1152
+ "name": "nevermore_necromastery",
1153
+ "id": "5062"
1154
+ },
1155
+ {
1156
+ "name": "jakiro_macropyre",
1157
+ "id": "5300"
1158
+ },
1159
+ {
1160
+ "name": "lone_druid_spirit_bear_entangle",
1161
+ "id": "5419"
1162
+ },
1163
+ {
1164
+ "name": "treant_natures_guise",
1165
+ "id": "5434"
1166
+ },
1167
+ {
1168
+ "name": "beastmaster_greater_boar_poison",
1169
+ "id": "5352"
1170
+ },
1171
+ {
1172
+ "name": "tinker_laser",
1173
+ "id": "5150"
1174
+ },
1175
+ {
1176
+ "name": "clinkz_death_pact",
1177
+ "id": "5262"
1178
+ },
1179
+ {
1180
+ "name": "morphling_morph",
1181
+ "id": "5054"
1182
+ },
1183
+ {
1184
+ "name": "morphling_adaptive_strike",
1185
+ "id": "5053"
1186
+ },
1187
+ {
1188
+ "name": "mirana_invis",
1189
+ "id": "5049"
1190
+ },
1191
+ {
1192
+ "name": "enigma_malefice",
1193
+ "id": "5146"
1194
+ },
1195
+ {
1196
+ "name": "skeleton_king_hellfire_blast",
1197
+ "id": "5086"
1198
+ },
1199
+ {
1200
+ "name": "silencer_global_silence",
1201
+ "id": "5380"
1202
+ },
1203
+ {
1204
+ "name": "phantom_assassin_phantom_strike",
1205
+ "id": "5191"
1206
+ },
1207
+ {
1208
+ "name": "lycan_shapeshift",
1209
+ "id": "5398"
1210
+ },
1211
+ {
1212
+ "name": "templar_assassin_refraction",
1213
+ "id": "5194"
1214
+ },
1215
+ {
1216
+ "name": "warlock_fatal_bonds",
1217
+ "id": "5162"
1218
+ },
1219
+ {
1220
+ "name": "death_prophet_carrion_swarm",
1221
+ "id": "5090"
1222
+ },
1223
+ {
1224
+ "name": "lion_finger_of_death",
1225
+ "id": "5047"
1226
+ },
1227
+ {
1228
+ "name": "ursa_earthshock",
1229
+ "id": "5357"
1230
+ },
1231
+ {
1232
+ "name": "life_stealer_open_wounds",
1233
+ "id": "5251"
1234
+ },
1235
+ {
1236
+ "name": "blue_dragonspawn_overseer_evasion",
1237
+ "id": "5326"
1238
+ },
1239
+ {
1240
+ "name": "slardar_slithereen_crush",
1241
+ "id": "5115"
1242
+ },
1243
+ {
1244
+ "name": "razor_plasma_field",
1245
+ "id": "5082"
1246
+ },
1247
+ {
1248
+ "name": "storm_spirit_electric_vortex",
1249
+ "id": "5099"
1250
+ },
1251
+ {
1252
+ "name": "spectre_dispersion",
1253
+ "id": "5336"
1254
+ },
1255
+ {
1256
+ "name": "courier_return_to_base",
1257
+ "id": "5205"
1258
+ },
1259
+ {
1260
+ "name": "sven_gods_strength",
1261
+ "id": "5097"
1262
+ },
1263
+ {
1264
+ "name": "leshrac_lightning_storm",
1265
+ "id": "5243"
1266
+ },
1267
+ {
1268
+ "name": "life_stealer_rage",
1269
+ "id": "5249"
1270
+ },
1271
+ {
1272
+ "name": "spectre_reality",
1273
+ "id": "5338"
1274
+ },
1275
+ {
1276
+ "name": "antimage_blink",
1277
+ "id": "5004"
1278
+ },
1279
+ {
1280
+ "name": "sniper_shrapnel",
1281
+ "id": "5154"
1282
+ },
1283
+ {
1284
+ "name": "rattletrap_hookshot",
1285
+ "id": "5240"
1286
+ },
1287
+ {
1288
+ "name": "invoker_cold_snap",
1289
+ "id": "5376"
1290
+ },
1291
+ {
1292
+ "name": "crystal_maiden_crystal_nova",
1293
+ "id": "5126"
1294
+ },
1295
+ {
1296
+ "name": "bloodseeker_rupture",
1297
+ "id": "5018"
1298
+ },
1299
+ {
1300
+ "name": "kunkka_tidebringer",
1301
+ "id": "5032"
1302
+ },
1303
+ {
1304
+ "name": "invoker_alacrity",
1305
+ "id": "5384"
1306
+ },
1307
+ {
1308
+ "name": "huskar_inner_vitality",
1309
+ "id": "5271"
1310
+ },
1311
+ {
1312
+ "name": "axe_counter_helix",
1313
+ "id": "5009"
1314
+ },
1315
+ {
1316
+ "name": "spectre_spectral_dagger",
1317
+ "id": "5334"
1318
+ },
1319
+ {
1320
+ "name": "furion_force_of_nature",
1321
+ "id": "5247"
1322
+ },
1323
+ {
1324
+ "name": "brewmaster_earth_hurl_boulder",
1325
+ "id": "5404"
1326
+ },
1327
+ {
1328
+ "name": "alchemist_goblins_greed",
1329
+ "id": "5368"
1330
+ },
1331
+ {
1332
+ "name": "windrunner_windrun",
1333
+ "id": "5132"
1334
+ },
1335
+ {
1336
+ "name": "kunkka_return",
1337
+ "id": "5034"
1338
+ },
1339
+ {
1340
+ "name": "backdoor_protection",
1341
+ "id": "5350"
1342
+ },
1343
+ {
1344
+ "name": "dragon_knight_dragon_blood",
1345
+ "id": "5228"
1346
+ },
1347
+ {
1348
+ "name": "vengefulspirit_magic_missile",
1349
+ "id": "5122"
1350
+ },
1351
+ {
1352
+ "name": "phantom_lancer_spirit_lance",
1353
+ "id": "5065"
1354
+ },
1355
+ {
1356
+ "name": "nevermore_shadowraze1",
1357
+ "id": "5059"
1358
+ },
1359
+ {
1360
+ "name": "courier_take_stash_items",
1361
+ "id": "5208"
1362
+ },
1363
+ {
1364
+ "name": "nevermore_shadowraze2",
1365
+ "id": "5060"
1366
+ },
1367
+ {
1368
+ "name": "nevermore_shadowraze3",
1369
+ "id": "5061"
1370
+ },
1371
+ {
1372
+ "name": "weaver_geminate_attack",
1373
+ "id": "5291"
1374
+ },
1375
+ {
1376
+ "name": "alpha_wolf_command_aura",
1377
+ "id": "5309"
1378
+ },
1379
+ {
1380
+ "name": "ancient_apparition_ice_blast",
1381
+ "id": "5348"
1382
+ },
1383
+ {
1384
+ "name": "ogre_magi_ignite",
1385
+ "id": "5439"
1386
+ },
1387
+ {
1388
+ "name": "harpy_storm_chain_lightning",
1389
+ "id": "5319"
1390
+ },
1391
+ {
1392
+ "name": "omniknight_degen_aura",
1393
+ "id": "5265"
1394
+ },
1395
+ {
1396
+ "name": "enchantress_enchant",
1397
+ "id": "5268"
1398
+ },
1399
+ {
1400
+ "name": "leshrac_split_earth",
1401
+ "id": "5241"
1402
+ },
1403
+ {
1404
+ "name": "death_prophet_witchcraft",
1405
+ "id": "5092"
1406
+ },
1407
+ {
1408
+ "name": "viper_nethertoxin",
1409
+ "id": "5219"
1410
+ },
1411
+ {
1412
+ "name": "necrolyte_sadist",
1413
+ "id": "5160"
1414
+ },
1415
+ {
1416
+ "name": "phantom_assassin_coup_de_grace",
1417
+ "id": "5193"
1418
+ },
1419
+ {
1420
+ "name": "ancient_apparition_cold_feet",
1421
+ "id": "5345"
1422
+ },
1423
+ {
1424
+ "name": "puck_dream_coil",
1425
+ "id": "5073"
1426
+ },
1427
+ {
1428
+ "name": "venomancer_poison_nova",
1429
+ "id": "5181"
1430
+ },
1431
+ {
1432
+ "name": "chaos_knight_chaos_bolt",
1433
+ "id": "5426"
1434
+ },
1435
+ {
1436
+ "name": "doom_bringer_devour",
1437
+ "id": "5339"
1438
+ },
1439
+ {
1440
+ "name": "bounty_hunter_shuriken_toss",
1441
+ "id": "5285"
1442
+ },
1443
+ {
1444
+ "name": "blue_dragonspawn_overseer_devotion_aura",
1445
+ "id": "5327"
1446
+ },
1447
+ {
1448
+ "name": "earthshaker_echo_slam",
1449
+ "id": "5026"
1450
+ },
1451
+ {
1452
+ "name": "necronomicon_warrior_sight",
1453
+ "id": "5201"
1454
+ },
1455
+ {
1456
+ "name": "huskar_berserkers_blood",
1457
+ "id": "5273"
1458
+ },
1459
+ {
1460
+ "name": "templar_assassin_psionic_trap",
1461
+ "id": "5197"
1462
+ },
1463
+ {
1464
+ "name": "night_stalker_crippling_fear",
1465
+ "id": "5276"
1466
+ },
1467
+ {
1468
+ "name": "storm_spirit_overload",
1469
+ "id": "5100"
1470
+ },
1471
+ {
1472
+ "name": "alchemist_unstable_concoction_throw",
1473
+ "id": "5367"
1474
+ },
1475
+ {
1476
+ "name": "morphling_morph_str",
1477
+ "id": "5056"
1478
+ },
1479
+ {
1480
+ "name": "doom_bringer_empty",
1481
+ "id": "5343"
1482
+ },
1483
+ {
1484
+ "name": "doom_bringer_empty",
1485
+ "id": "5344"
1486
+ },
1487
+ {
1488
+ "name": "lycan_howl",
1489
+ "id": "5396"
1490
+ },
1491
+ {
1492
+ "name": "beastmaster_hawk_invisibility",
1493
+ "id": "5170"
1494
+ },
1495
+ {
1496
+ "name": "storm_spirit_ball_lightning",
1497
+ "id": "5101"
1498
+ },
1499
+ {
1500
+ "name": "omniknight_purification",
1501
+ "id": "5263"
1502
+ },
1503
+ {
1504
+ "name": "shadow_demon_shadow_poison",
1505
+ "id": "5423"
1506
+ },
1507
+ {
1508
+ "name": "dragon_knight_elder_dragon_form",
1509
+ "id": "5229"
1510
+ },
1511
+ {
1512
+ "name": "juggernaut_blade_dance",
1513
+ "id": "5027"
1514
+ },
1515
+ {
1516
+ "name": "shadow_demon_disruption",
1517
+ "id": "5421"
1518
+ },
1519
+ {
1520
+ "name": "venomancer_venomous_gale",
1521
+ "id": "5178"
1522
+ },
1523
+ {
1524
+ "name": "gnoll_assassin_envenomed_weapon",
1525
+ "id": "5296"
1526
+ },
1527
+ {
1528
+ "name": "alpha_wolf_critical_strike",
1529
+ "id": "5308"
1530
+ },
1531
+ {
1532
+ "name": "shadow_shaman_ether_shock",
1533
+ "id": "5078"
1534
+ },
1535
+ {
1536
+ "name": "night_stalker_hunter_in_the_night",
1537
+ "id": "5277"
1538
+ },
1539
+ {
1540
+ "name": "dragon_knight_dragon_tail",
1541
+ "id": "5227"
1542
+ },
1543
+ {
1544
+ "name": "gyrocopter_call_down",
1545
+ "id": "5364"
1546
+ },
1547
+ {
1548
+ "name": "beastmaster_inner_beast",
1549
+ "id": "5172"
1550
+ },
1551
+ {
1552
+ "name": "pudge_dismember",
1553
+ "id": "5077"
1554
+ },
1555
+ {
1556
+ "name": "pudge_dismember",
1557
+ "id": "5077"
1558
+ },
1559
+ {
1560
+ "name": "windrunner_focusfire",
1561
+ "id": "5133"
1562
+ },
1563
+ {
1564
+ "name": "ghost_frost_attack",
1565
+ "id": "5301"
1566
+ },
1567
+ {
1568
+ "name": "bane_brain_sap",
1569
+ "id": "5011"
1570
+ },
1571
+ {
1572
+ "name": "necrolyte_heartstopper_aura",
1573
+ "id": "5159"
1574
+ },
1575
+ {
1576
+ "name": "chaos_knight_chaos_strike",
1577
+ "id": "5428"
1578
+ },
1579
+ {
1580
+ "name": "skeleton_king_vampiric_aura",
1581
+ "id": "5087"
1582
+ },
1583
+ {
1584
+ "name": "clinkz_strafe",
1585
+ "id": "5259"
1586
+ },
1587
+ {
1588
+ "name": "life_stealer_feast",
1589
+ "id": "5250"
1590
+ },
1591
+ {
1592
+ "name": "faceless_void_chronosphere",
1593
+ "id": "5185"
1594
+ },
1595
+ {
1596
+ "name": "lion_impale",
1597
+ "id": "5044"
1598
+ },
1599
+ {
1600
+ "name": "necronomicon_archer_mana_burn",
1601
+ "id": "5203"
1602
+ },
1603
+ {
1604
+ "name": "axe_culling_blade",
1605
+ "id": "5010"
1606
+ },
1607
+ {
1608
+ "name": "huskar_burning_spear",
1609
+ "id": "5272"
1610
+ },
1611
+ {
1612
+ "name": "brewmaster_earth_pulverize",
1613
+ "id": "5406"
1614
+ },
1615
+ {
1616
+ "name": "kobold_taskmaster_speed_aura",
1617
+ "id": "5293"
1618
+ },
1619
+ {
1620
+ "name": "brewmaster_earth_spell_immunity",
1621
+ "id": "5405"
1622
+ },
1623
+ {
1624
+ "name": "necronomicon_warrior_mana_burn",
1625
+ "id": "5202"
1626
+ },
1627
+ {
1628
+ "name": "furion_sprout",
1629
+ "id": "5245"
1630
+ },
1631
+ {
1632
+ "name": "invoker_empty2",
1633
+ "id": "5374"
1634
+ },
1635
+ {
1636
+ "name": "puck_ethereal_jaunt",
1637
+ "id": "5070"
1638
+ },
1639
+ {
1640
+ "name": "invoker_empty1",
1641
+ "id": "5373"
1642
+ },
1643
+ {
1644
+ "name": "kunkka_torrent",
1645
+ "id": "5031"
1646
+ },
1647
+ {
1648
+ "name": "phantom_lancer_doppelwalk",
1649
+ "id": "5066"
1650
+ },
1651
+ {
1652
+ "name": "undying_tombstone",
1653
+ "id": "5444"
1654
+ },
1655
+ {
1656
+ "name": "bane_nightmare",
1657
+ "id": "5014"
1658
+ },
1659
+ {
1660
+ "name": "zuus_arc_lightning",
1661
+ "id": "5110"
1662
+ },
1663
+ {
1664
+ "name": "undying_tombstone_zombie_aura",
1665
+ "id": "5445"
1666
+ },
1667
+ {
1668
+ "name": "crystal_maiden_brilliance_aura",
1669
+ "id": "5128"
1670
+ },
1671
+ {
1672
+ "name": "bane_enfeeble",
1673
+ "id": "5012"
1674
+ },
1675
+ {
1676
+ "name": "satyr_soulstealer_mana_burn",
1677
+ "id": "5315"
1678
+ },
1679
+ {
1680
+ "name": "gyrocopter_rocket_barrage",
1681
+ "id": "5361"
1682
+ },
1683
+ {
1684
+ "name": "dragon_knight_frost_breath",
1685
+ "id": "5232"
1686
+ },
1687
+ {
1688
+ "name": "invoker_emp",
1689
+ "id": "5383"
1690
+ },
1691
+ {
1692
+ "name": "shadow_demon_soul_catcher",
1693
+ "id": "5422"
1694
+ },
1695
+ {
1696
+ "name": "lina_fiery_soul",
1697
+ "id": "5042"
1698
+ },
1699
+ {
1700
+ "name": "lina_dragon_slave",
1701
+ "id": "5040"
1702
+ },
1703
+ {
1704
+ "name": "sven_storm_bolt",
1705
+ "id": "5094"
1706
+ },
1707
+ {
1708
+ "name": "broodmother_poison_sting",
1709
+ "id": "5284"
1710
+ },
1711
+ {
1712
+ "name": "meepo_earthbind",
1713
+ "id": "5430"
1714
+ },
1715
+ {
1716
+ "name": "phantom_lancer_phantom_edge",
1717
+ "id": "5068"
1718
+ },
1719
+ {
1720
+ "name": "puck_phase_shift",
1721
+ "id": "5072"
1722
+ },
1723
+ {
1724
+ "name": "faceless_void_time_walk",
1725
+ "id": "5182"
1726
+ },
1727
+ {
1728
+ "name": "puck_waning_rift",
1729
+ "id": "5071"
1730
+ },
1731
+ {
1732
+ "name": "lich_frost_armor",
1733
+ "id": "5135"
1734
+ },
1735
+ {
1736
+ "name": "sandking_burrowstrike",
1737
+ "id": "5102"
1738
+ },
1739
+ {
1740
+ "name": "dark_seer_vacuum",
1741
+ "id": "5255"
1742
+ },
1743
+ {
1744
+ "name": "obsidian_destroyer_sanity_eclipse",
1745
+ "id": "5394"
1746
+ },
1747
+ {
1748
+ "name": "enigma_black_hole",
1749
+ "id": "5149"
1750
+ },
1751
+ {
1752
+ "name": "lycan_summon_wolves_critical_strike",
1753
+ "id": "5399"
1754
+ },
1755
+ {
1756
+ "name": "default_attack",
1757
+ "id": "5001"
1758
+ },
1759
+ {
1760
+ "name": "templar_assassin_trap",
1761
+ "id": "5198"
1762
+ },
1763
+ {
1764
+ "name": "neutral_spell_immunity",
1765
+ "id": "5303"
1766
+ },
1767
+ {
1768
+ "name": "nyx_assassin_impale",
1769
+ "id": "5462"
1770
+ },
1771
+ {
1772
+ "name": "nyx_assassin_mana_burn",
1773
+ "id": "5463"
1774
+ },
1775
+ {
1776
+ "name": "nyx_assassin_spiked_carapace",
1777
+ "id": "5464"
1778
+ },
1779
+ {
1780
+ "name": "nyx_assassin_vendetta",
1781
+ "id": "5465"
1782
+ },
1783
+ {
1784
+ "name": "slark_dark_pact",
1785
+ "id": "5494"
1786
+ },
1787
+ {
1788
+ "name": "slark_pounce",
1789
+ "id": "5495"
1790
+ },
1791
+ {
1792
+ "name": "slark_essence_shift",
1793
+ "id": "5496"
1794
+ },
1795
+ {
1796
+ "name": "slark_shadow_dance",
1797
+ "id": "5497"
1798
+ },
1799
+ {
1800
+ "name": "medusa_split_shot",
1801
+ "id": "5504"
1802
+ },
1803
+ {
1804
+ "name": "medusa_mystic_snake",
1805
+ "id": "5505"
1806
+ },
1807
+ {
1808
+ "name": "medusa_mana_shield",
1809
+ "id": "5506"
1810
+ },
1811
+ {
1812
+ "name": "medusa_stone_gaze",
1813
+ "id": "5507"
1814
+ },
1815
+ {
1816
+ "name": "troll_warlord_berserkers_rage",
1817
+ "id": "5508"
1818
+ },
1819
+ {
1820
+ "name": "troll_warlord_whirling_axes_ranged",
1821
+ "id": "5509"
1822
+ },
1823
+ {
1824
+ "name": "troll_warlord_whirling_axes_melee",
1825
+ "id": "5510"
1826
+ },
1827
+ {
1828
+ "name": "troll_warlord_fervor",
1829
+ "id": "5511"
1830
+ },
1831
+ {
1832
+ "name": "troll_warlord_battle_trance",
1833
+ "id": "5512"
1834
+ },
1835
+ {
1836
+ "name": "centaur_hoof_stomp",
1837
+ "id": "5514"
1838
+ },
1839
+ {
1840
+ "name": "centaur_double_edge",
1841
+ "id": "5515"
1842
+ },
1843
+ {
1844
+ "name": "centaur_return",
1845
+ "id": "5516"
1846
+ },
1847
+ {
1848
+ "name": "centaur_stampede",
1849
+ "id": "5517"
1850
+ },
1851
+ {
1852
+ "name": "magnataur_shockwave",
1853
+ "id": "5518"
1854
+ },
1855
+ {
1856
+ "name": "magnataur_empower",
1857
+ "id": "5519"
1858
+ },
1859
+ {
1860
+ "name": "magnataur_skewer",
1861
+ "id": "5520"
1862
+ },
1863
+ {
1864
+ "name": "magnataur_reverse_polarity",
1865
+ "id": "5521"
1866
+ },
1867
+ {
1868
+ "name": "shredder_whirling_death",
1869
+ "id": "5524"
1870
+ },
1871
+ {
1872
+ "name": "shredder_timber_chain",
1873
+ "id": "5525"
1874
+ },
1875
+ {
1876
+ "name": "shredder_reactive_armor",
1877
+ "id": "5526"
1878
+ },
1879
+ {
1880
+ "name": "shredder_chakram",
1881
+ "id": "5527"
1882
+ },
1883
+ {
1884
+ "name": "shredder_return_chakram",
1885
+ "id": "5528"
1886
+ },
1887
+ {
1888
+ "name": "keeper_of_the_light_illuminate",
1889
+ "id": "5471"
1890
+ },
1891
+ {
1892
+ "name": "keeper_of_the_light_mana_leak",
1893
+ "id": "5472"
1894
+ },
1895
+ {
1896
+ "name": "keeper_of_the_light_chakra_magic",
1897
+ "id": "5473"
1898
+ },
1899
+ {
1900
+ "name": "keeper_of_the_light_spirit_form",
1901
+ "id": "5474"
1902
+ },
1903
+ {
1904
+ "name": "keeper_of_the_light_recall",
1905
+ "id": "5475"
1906
+ },
1907
+ {
1908
+ "name": "keeper_of_the_light_blinding_light",
1909
+ "id": "5476"
1910
+ },
1911
+ {
1912
+ "name": "keeper_of_the_light_illuminate_end",
1913
+ "id": "5477"
1914
+ },
1915
+ {
1916
+ "name": "keeper_of_the_light_spirit_form_illuminate",
1917
+ "id": "5479"
1918
+ },
1919
+ {
1920
+ "name": "rubick_telekinesis",
1921
+ "id": "5448"
1922
+ },
1923
+ {
1924
+ "name": "rubick_fade_bolt",
1925
+ "id": "5450"
1926
+ },
1927
+ {
1928
+ "name": "rubick_null_field",
1929
+ "id": "5451"
1930
+ },
1931
+ {
1932
+ "name": "rubick_spell_steal",
1933
+ "id": "5452"
1934
+ },
1935
+ {
1936
+ "name": "disruptor_thunder_strike",
1937
+ "id": "5458"
1938
+ },
1939
+ {
1940
+ "name": "disruptor_glimpse",
1941
+ "id": "5459"
1942
+ },
1943
+ {
1944
+ "name": "disruptor_kinetic_field",
1945
+ "id": "5460"
1946
+ },
1947
+ {
1948
+ "name": "disruptor_static_storm",
1949
+ "id": "5461"
1950
+ },
1951
+ {
1952
+ "name": "naga_siren_mirror_image",
1953
+ "id": "5467"
1954
+ },
1955
+ {
1956
+ "name": "naga_siren_ensnare",
1957
+ "id": "5468"
1958
+ },
1959
+ {
1960
+ "name": "naga_siren_rip_tide",
1961
+ "id": "5469"
1962
+ },
1963
+ {
1964
+ "name": "naga_siren_song_of_the_siren",
1965
+ "id": "5470"
1966
+ },
1967
+ {
1968
+ "name": "visage_grave_chill",
1969
+ "id": "5480"
1970
+ },
1971
+ {
1972
+ "name": "visage_soul_assumption",
1973
+ "id": "5481"
1974
+ },
1975
+ {
1976
+ "name": "visage_gravekeepers_cloak",
1977
+ "id": "5482"
1978
+ },
1979
+ {
1980
+ "name": "visage_summon_familiars",
1981
+ "id": "5483"
1982
+ },
1983
+ {
1984
+ "name": "wisp_tether",
1985
+ "id": "5485"
1986
+ },
1987
+ {
1988
+ "name": "wisp_spirits",
1989
+ "id": "5486"
1990
+ },
1991
+ {
1992
+ "name": "wisp_overcharge",
1993
+ "id": "5487"
1994
+ },
1995
+ {
1996
+ "name": "wisp_relocate",
1997
+ "id": "5488"
1998
+ },
1999
+ {
2000
+ "name": "wisp_tether_break",
2001
+ "id": "5489"
2002
+ },
2003
+ {
2004
+ "name": "wisp_spirits_in",
2005
+ "id": "wisp_spirits_out"
2006
+ },
2007
+ {
2008
+ "name": "bristleback_viscous_nasal_goo",
2009
+ "id": "5548"
2010
+ },
2011
+ {
2012
+ "name": "bristleback_quill_spray",
2013
+ "id": "5549"
2014
+ },
2015
+ {
2016
+ "name": "bristleback_bristleback",
2017
+ "id": "5550"
2018
+ },
2019
+ {
2020
+ "name": "bristleback_warpath",
2021
+ "id": "5551"
2022
+ },
2023
+ {
2024
+ "name": "tusk_ice_shards",
2025
+ "id": "5565"
2026
+ },
2027
+ {
2028
+ "name": "tusk_snowball",
2029
+ "id": "5566"
2030
+ },
2031
+ {
2032
+ "name": "tusk_frozen_sigil",
2033
+ "id": "5567"
2034
+ },
2035
+ {
2036
+ "name": "tusk_walrus_punch",
2037
+ "id": "5568"
2038
+ },
2039
+ {
2040
+ "name": "skywrath_mage_arcane_bolt",
2041
+ "id": "5581"
2042
+ },
2043
+ {
2044
+ "name": "skywrath_mage_concussive_shot",
2045
+ "id": "5582"
2046
+ },
2047
+ {
2048
+ "name": "skywrath_mage_ancient_seal",
2049
+ "id": "5583"
2050
+ },
2051
+ {
2052
+ "name": "skywrath_mage_mystic_flare",
2053
+ "id": "5584"
2054
+ },
2055
+ {
2056
+ "name": "abaddon_death_coil",
2057
+ "id": "5585"
2058
+ },
2059
+ {
2060
+ "name": "abaddon_aphotic_shield",
2061
+ "id": "5586"
2062
+ },
2063
+ {
2064
+ "name": "abaddon_frostmourne",
2065
+ "id": "5587"
2066
+ },
2067
+ {
2068
+ "name": "abaddon_borrowed_time",
2069
+ "id": "5588"
2070
+ },
2071
+ {
2072
+ "name": "elder_titan_echo_stomp",
2073
+ "id": "5589"
2074
+ },
2075
+ {
2076
+ "name": "elder_titan_ancestral_spirit",
2077
+ "id": "5591"
2078
+ },
2079
+ {
2080
+ "name": "elder_titan_natural_order",
2081
+ "id": "5593"
2082
+ },
2083
+ {
2084
+ "name": "elder_titan_earth_splitter",
2085
+ "id": "5594"
2086
+ },
2087
+ {
2088
+ "name": "legion_commander_overwhelming_odds",
2089
+ "id": "5595"
2090
+ },
2091
+ {
2092
+ "name": "legion_commander_press_the_attack",
2093
+ "id": "5596"
2094
+ },
2095
+ {
2096
+ "name": "legion_commander_moment_of_courage",
2097
+ "id": "5597"
2098
+ },
2099
+ {
2100
+ "name": "legion_commander_duel",
2101
+ "id": "5598"
2102
+ },
2103
+ {
2104
+ "name": "ember_spirit_searing_chains",
2105
+ "id": "5603"
2106
+ },
2107
+ {
2108
+ "name": "ember_spirit_sleight_of_fist",
2109
+ "id": "5604"
2110
+ },
2111
+ {
2112
+ "name": "ember_spirit_flame_guard",
2113
+ "id": "5605"
2114
+ },
2115
+ {
2116
+ "name": "ember_spirit_fire_remnant",
2117
+ "id": "5606"
2118
+ },
2119
+ {
2120
+ "name": "ember_spirit_activate_fire_remnant",
2121
+ "id": "5607"
2122
+ },
2123
+ {
2124
+ "name": "earth_spirit_boulder_smash",
2125
+ "id": "5608"
2126
+ },
2127
+ {
2128
+ "name": "earth_spirit_rolling_boulder",
2129
+ "id": "5609"
2130
+ },
2131
+ {
2132
+ "name": "earth_spirit_geomagnetic_grip",
2133
+ "id": "5610"
2134
+ },
2135
+ {
2136
+ "name": "earth_spirit_stone_caller",
2137
+ "id": "5611"
2138
+ },
2139
+ {
2140
+ "name": "earth_spirit_magnetize",
2141
+ "id": "5612"
2142
+ },
2143
+ {
2144
+ "name": "abyssal_underlord_firestorm",
2145
+ "id": "5613"
2146
+ },
2147
+ {
2148
+ "name": "abyssal_underlord_pit_of_malice",
2149
+ "id": "5614"
2150
+ },
2151
+ {
2152
+ "name": "abyssal_underlord_atrophy_aura",
2153
+ "id": "5615"
2154
+ },
2155
+ {
2156
+ "name": "abyssal_underlord_dark_rift",
2157
+ "id": "5616"
2158
+ },
2159
+ {
2160
+ "name": "terrorblade_reflection",
2161
+ "id": "5619"
2162
+ },
2163
+ {
2164
+ "name": "terrorblade_conjure_image",
2165
+ "id": "5620"
2166
+ },
2167
+ {
2168
+ "name": "terrorblade_metamorphosis",
2169
+ "id": "5621"
2170
+ },
2171
+ {
2172
+ "name": "terrorblade_sunder",
2173
+ "id": "5622"
2174
+ },
2175
+ {
2176
+ "name": "phoenix_icarus_dive",
2177
+ "id": "5623"
2178
+ },
2179
+ {
2180
+ "name": "phoenix_fire_spirits",
2181
+ "id": "5625"
2182
+ },
2183
+ {
2184
+ "name": "phoenix_sun_ray",
2185
+ "id": "5626"
2186
+ },
2187
+ {
2188
+ "name": "phoenix_supernova",
2189
+ "id": "5630"
2190
+ }
2191
+ ]
2192
+ }