dota 0.0.12 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Guardfile +1 -1
- data/README.md +145 -112
- data/data/heroes.yml +327 -0
- data/data/items.yml +714 -0
- data/lib/dota.rb +8 -1
- data/lib/dota/api/basic_match.rb +52 -0
- data/lib/dota/api/basic_player.rb +61 -0
- data/lib/dota/api/client.rb +12 -2
- data/lib/dota/api/cosmetic/rarity.rb +1 -9
- data/lib/dota/api/entity.rb +13 -0
- data/lib/dota/api/friend.rb +1 -9
- data/lib/dota/api/hero.rb +2 -111
- data/lib/dota/api/item.rb +1 -240
- data/lib/dota/api/league.rb +6 -8
- data/lib/dota/api/live_match.rb +29 -35
- data/lib/dota/api/live_match/player.rb +29 -22
- data/lib/dota/api/live_match/side.rb +25 -11
- data/lib/dota/api/match.rb +30 -117
- data/lib/dota/api/match/draft.rb +1 -9
- data/lib/dota/api/match/player.rb +7 -59
- data/lib/dota/api/match/side.rb +41 -0
- data/lib/dota/api/scheduled_match.rb +32 -0
- data/lib/dota/api/team.rb +1 -9
- data/lib/dota/version.rb +1 -1
- data/spec/dota/api/cosmetic/rarity_spec.rb +2 -2
- data/spec/dota/api/hero_spec.rb +2 -6
- data/spec/dota/api/item_spec.rb +1 -5
- data/spec/dota/api/live_match/player_spec.rb +76 -8
- data/spec/dota/api/live_match/side_spec.rb +42 -8
- data/spec/dota/api/live_match_spec.rb +5 -16
- data/spec/dota/api/match/draft_spec.rb +4 -1
- data/spec/dota/api/match/player_spec.rb +7 -3
- data/spec/dota/api/match/side_spec.rb +54 -0
- data/spec/dota/api/match_spec.rb +0 -62
- data/spec/dota/api/scheduled_match_spec.rb +36 -0
- data/spec/dota_spec.rb +56 -7
- data/spec/fixtures/vcr_cassettes/GetScheduledLeagueGames.yml +112 -0
- metadata +15 -5
- data/lib/dota/api/live_match/scoreboard.rb +0 -31
- data/spec/dota/api/live_match/scoreboard_spec.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adb79effd365cfddfeccab6653bc8ebeaa17b448
|
4
|
+
data.tar.gz: 866ea82ef3fb0f8e44e053c6bbcb4b4912d226c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1628d277437c89febddd92971c60284e4617eb04eb3a9cc50f9f235fe7b5572b7ab96ff996a0c11967e91eb3888c3fc673e5b18fe9d35c07801f4d2c2fc34738
|
7
|
+
data.tar.gz: f0d9529ab46fa3adc765faa8df0c455857c910d3d3867c60110c5bcd11247370514d847a6d6fdad7b5d7bd0c3f4e87720c1b2994cb60acb7bb8b52107e69daf1
|
data/Guardfile
CHANGED
data/README.md
CHANGED
@@ -13,6 +13,7 @@ Currently supported endpoints:
|
|
13
13
|
- [GetRarities](https://wiki.teamfortress.com/wiki/WebAPI/GetRarities)
|
14
14
|
- [GetTeamInfoByTeamID](https://wiki.teamfortress.com/wiki/WebAPI/GetTeamInfoByTeamID)
|
15
15
|
- [GetLiveLeagueGames](https://wiki.teamfortress.com/wiki/WebAPI/GetLiveLeagueGames)
|
16
|
+
- [GetScheduledLeagueGames](https://wiki.teamfortress.com/wiki/WebAPI/GetScheduledLeagueGames)
|
16
17
|
|
17
18
|
Unsupported endpoints can still be queried via [custom requests](#custom-requests).
|
18
19
|
|
@@ -23,7 +24,6 @@ This gem is in alpha, keep that in mind when upgrading.
|
|
23
24
|
- Support for more endpoints
|
24
25
|
- [GetMatchHistoryBySequenceNum](https://wiki.teamfortress.com/wiki/WebAPI/GetMatchHistoryBySequenceNum)
|
25
26
|
- [GetPlayerSummaries](https://wiki.teamfortress.com/wiki/WebAPI/GetPlayerSummaries)
|
26
|
-
- [GetScheduledLeagueGames](https://wiki.teamfortress.com/wiki/WebAPI/GetScheduledLeagueGames)
|
27
27
|
- [GetTournamentPlayerStats](https://wiki.teamfortress.com/wiki/WebAPI/GetTournamentPlayerStats)
|
28
28
|
- [GetTournamentPrizePool](https://wiki.teamfortress.com/wiki/WebAPI/GetTournamentPrizePool)
|
29
29
|
- Validations and error classes
|
@@ -61,42 +61,52 @@ Get your Steam API key [here](http://steamcommunity.com/dev/apikey).
|
|
61
61
|
```ruby
|
62
62
|
api = Dota.api
|
63
63
|
|
64
|
-
api.heroes(43)
|
65
|
-
api.heroes
|
66
|
-
|
67
|
-
api.items(114)
|
68
|
-
api.items
|
69
|
-
|
70
|
-
api.cosmetic_rarities
|
71
|
-
|
72
|
-
api.teams(1375614)
|
73
|
-
api.teams
|
74
|
-
api.teams(after: 1375614)
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
api.leagues
|
80
|
-
|
81
|
-
api.matches(789645621)
|
82
|
-
api.matches
|
83
|
-
api.matches(hero_id: 43)
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
api.live_matches
|
98
|
-
|
99
|
-
|
64
|
+
api.heroes(43) # => (Cached) A single hero - "Death Prophet"
|
65
|
+
api.heroes # => (Cached) All heroes
|
66
|
+
|
67
|
+
api.items(114) # => (Cached) A single item - "Heart of Tarrasque"
|
68
|
+
api.items # => (Cached) All items
|
69
|
+
|
70
|
+
api.cosmetic_rarities # => All cosmetic rarities
|
71
|
+
|
72
|
+
api.teams(1375614) # => A single team - "Newbee"
|
73
|
+
api.teams # => A list of teams
|
74
|
+
api.teams(after: 1375614) # Allowed options:
|
75
|
+
#
|
76
|
+
# :after - Integer, With team IDs equal or greater than this
|
77
|
+
# :limit - Integer, Amount of teams to return (default is 100)
|
78
|
+
|
79
|
+
api.leagues # => All leagues
|
80
|
+
|
81
|
+
api.matches(789645621) # => A single match - "Newbee vs Vici Gaming"
|
82
|
+
api.matches # => A list of matches
|
83
|
+
api.matches(hero_id: 43) # Allowed options:
|
84
|
+
#
|
85
|
+
# :hero_id - Integer, With this hero. See Dota::API::Hero::MAPPING
|
86
|
+
# :after - Integer, With match IDs equal or greater than this
|
87
|
+
# :player_id - Integer, With this player (32-bit Steam ID)
|
88
|
+
# :league_id - Integer, In this league. Use Dota.leagues to get a list of leagues
|
89
|
+
# :mode_id - Integer, In this game mode. See Dota::API::Match::MODES
|
90
|
+
# :skill_level - Integer, In this skill level (ignored if :player_id is provided). See Dota::API::Match::SKILL_LEVELS
|
91
|
+
# :from - Integer, Minimum timestamp
|
92
|
+
# :to - Integer, Maximum timestamp
|
93
|
+
# :min_players - Integer, With at least this number of players
|
94
|
+
# :league_only - Boolean, Only league matches
|
95
|
+
# :limit - Integer, Amount of matches to return (default is 100)
|
96
|
+
|
97
|
+
api.live_matches # => All live league matches
|
98
|
+
api.live_matches(league_id: 600) # Allowed options:
|
99
|
+
#
|
100
|
+
# :league_id - Integer, In this league. Use Dota.leagues to get a list of leagues
|
101
|
+
# :match_id - Integer, With this match
|
102
|
+
|
103
|
+
api.scheduled_matches # => All scheduled league matches
|
104
|
+
api.scheduled_matches(from: 123) # Allowed options:
|
105
|
+
#
|
106
|
+
# :from - Integer, Minimum timestamp
|
107
|
+
# :to - Integer, Maximum timestamp
|
108
|
+
|
109
|
+
api.friends(76561198052976237) # => All friends of user
|
100
110
|
```
|
101
111
|
|
102
112
|
#### Custom Requests
|
@@ -157,72 +167,112 @@ Caveat: Getting a list of matches via `api.matches` will call [GetMatchHistory](
|
|
157
167
|
When an instance method in a `Dota::API::Match` class returns `nil`, it most likely means the endpoint called doesn't provide it yet.
|
158
168
|
|
159
169
|
```ruby
|
160
|
-
match.
|
161
|
-
match.
|
162
|
-
|
163
|
-
match.
|
164
|
-
match.
|
165
|
-
match.
|
166
|
-
match.
|
167
|
-
match.
|
168
|
-
match.
|
169
|
-
match.
|
170
|
-
match.
|
171
|
-
match.
|
172
|
-
match.starts_at
|
173
|
-
match.first_blood
|
174
|
-
match.duration
|
175
|
-
match.winner
|
176
|
-
match.positive_votes
|
177
|
-
match.negative_votes
|
178
|
-
|
179
|
-
|
180
|
-
match.
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
match.dire_id # Integer, Dire team's ID
|
188
|
-
match.dire_captain_id # Integer, Dire captain's 32-bit Steam ID
|
189
|
-
match.dire_logo_id # Integer, Dire logo's UGC ID
|
190
|
-
match.dire_name # String, Dire team's name
|
191
|
-
match.dire_complete? # Boolean, true if the Dire team's roster is complete
|
192
|
-
match.dire_tower_status # Integer, See https://wiki.teamfortress.com/wiki/WebAPI/GetMatchDetails # Tower_Status
|
193
|
-
match.dire_barracks_status # Integer, See https://wiki.teamfortress.com/wiki/WebAPI/GetMatchDetails # Barracks_Status
|
170
|
+
match.radiant # Dota::API::Match::Side, Info about the team on the Radiant side
|
171
|
+
match.dire # Dota::API::Match::Side, Info about the team on the Dire side
|
172
|
+
|
173
|
+
match.id # Integer, ID of the match
|
174
|
+
match.league_id # Integer, ID of the league this match was a part of
|
175
|
+
match.type # String, See Dota::API::Match::TYPES
|
176
|
+
match.type_id # Integer, See Dota::API::Match::TYPES
|
177
|
+
match.mode # String, See Dota::API::Match::MODES
|
178
|
+
match.mode_id # Integer, See Dota::API::Match::MODES
|
179
|
+
match.sequence # Integer, A 'sequence number', representing the order in which matches were recorded
|
180
|
+
match.season # Integer, Season the match was played in
|
181
|
+
match.cluster # Integer, Server cluster the match was played on
|
182
|
+
match.starts_at # Time, When the match started
|
183
|
+
match.first_blood # Integer, Seconds since the match started when first blood occured
|
184
|
+
match.duration # Integer, Length of the match, in seconds since the match began
|
185
|
+
match.winner # Symbol, :radiant or :dire
|
186
|
+
match.positive_votes # Integer, Number of thumbs-up the game has received
|
187
|
+
match.negative_votes # Integer, Number of thumbs-down the game has received
|
188
|
+
match.players_count # Integer, Number of players in the match
|
189
|
+
|
190
|
+
match.drafts # Array[Dota::API::Match::Draft], Picks and bans in the match, if the game mode is "Captains Mode"
|
191
|
+
|
192
|
+
# Dota::API::Match::Draft
|
193
|
+
draft.order # Integer, 1-20
|
194
|
+
draft.pick? # Boolean, true if the draft is a pick, and not a ban
|
195
|
+
draft.team # Symbol, :radiant or :dire
|
196
|
+
draft.hero # Dota::API::Hero, Picked or banned hero
|
194
197
|
```
|
195
198
|
|
196
|
-
####
|
199
|
+
#### Live Matches
|
200
|
+
|
201
|
+
```ruby
|
202
|
+
live_match.radiant # Dota::API::LiveMatch::Side, Info about the team on the Radiant side
|
203
|
+
live_match.dire # Dota::API::LiveMatch::Side, Info about the team on the Dire side
|
204
|
+
|
205
|
+
live_match.id # Integer, ID of the match
|
206
|
+
live_match.lobby_id # Integer, ID of the lobby
|
207
|
+
live_match.spectators_count # Integer, Number of spectators watching on DotaTV
|
208
|
+
live_match.league_id # Integer, ID of the league
|
209
|
+
live_match.stream_delay # Integer, Number of seconds the stream is behind actual game time
|
210
|
+
live_match.series_type # Integer, Best of X series
|
211
|
+
live_match.league_tier # String, What tier the match's league is
|
212
|
+
live_match.duration # Integer, Length of the match, in seconds since the match began
|
213
|
+
live_match.roshan_timer # Integer, Seconds until Roshan respawns
|
214
|
+
```
|
215
|
+
|
216
|
+
#### Scheduled Matches
|
197
217
|
|
198
218
|
```ruby
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
player.kills # Integer, Number of kills attributed to this player
|
206
|
-
player.deaths # Integer, Times this player died during the match
|
207
|
-
player.assists # Integer, Number of assists the player got
|
208
|
-
player.last_hits # Integer, Number of last-hits the player got
|
209
|
-
player.denies # Integer, Number of denies the player got
|
210
|
-
player.gold # Integer, Amount of gold the player had remaining at the end of the match
|
211
|
-
player.gold_spent # Integer, Amount of gold the player spent
|
212
|
-
player.gpm # Integer, Player's overall gold/minute
|
213
|
-
player.xpm # Integer, Player's overall experience/minute
|
214
|
-
player.hero_damage # Integer, Amount of damage the player dealt to heroes
|
215
|
-
player.tower_damage # Integer, Amount of damage the player dealt to towers
|
216
|
-
player.hero_healing # Integer, Amount of health the player had healed on heroes
|
219
|
+
scheduled_match.league_id # Integer, ID of the league
|
220
|
+
scheduled_match.game_id # Integer, ID of the game
|
221
|
+
scheduled_match.teams # Array[Dota::API::Team], List of teams who are playing each other
|
222
|
+
scheduled_match.starts_at # Time, When the match is scheduled to start
|
223
|
+
scheduled_match.description # String, Description of the match
|
224
|
+
scheduled_match.final? # Boolean, true if the game is the last of the series
|
217
225
|
```
|
218
226
|
|
219
|
-
####
|
227
|
+
#### Sides - Radiant/Dire
|
220
228
|
|
221
229
|
```ruby
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
230
|
+
radiant.id # Integer, Team's ID
|
231
|
+
radiant.logo_id # Integer, Team logo's UGC ID
|
232
|
+
radiant.name # String, Team's name
|
233
|
+
radiant.complete? # Boolean, true if the team's roster is complete
|
234
|
+
radiant.players # Array[Dota::API::Match::Player|Dota::API::LiveMatch::Player], Players in the match
|
235
|
+
|
236
|
+
# Additional methods in Match::Side
|
237
|
+
radiant.captain_id # Integer, Team captain's 32-bit Steam ID
|
238
|
+
|
239
|
+
# Additional methods in LiveMatch::Side
|
240
|
+
radiant.score # Integer, The team's current score
|
241
|
+
radiant.series_wins # Integer, Number of wins in the series so far
|
242
|
+
```
|
243
|
+
|
244
|
+
#### Players
|
245
|
+
|
246
|
+
```ruby
|
247
|
+
player.id # Integer, 32-bit Steam ID
|
248
|
+
player.hero # Dota::API::Hero, Player's hero
|
249
|
+
player.items # Array[Dota::API::Item], Player's inventory (6 items)
|
250
|
+
player.slot # Integer, See https://wiki.teamfortress.com/wiki/WebAPI/GetMatchDetails#Player_Slot
|
251
|
+
player.level # Integer, The player's level at match end
|
252
|
+
player.kills # Integer, Number of kills attributed to this player
|
253
|
+
player.deaths # Integer, Times this player died during the match
|
254
|
+
player.assists # Integer, Number of assists the player got
|
255
|
+
player.last_hits # Integer, Number of last-hits the player got
|
256
|
+
player.denies # Integer, Number of denies the player got
|
257
|
+
player.gold # Integer, Amount of gold the player had remaining at the end of the match
|
258
|
+
player.gpm # Integer, Player's overall gold/minute
|
259
|
+
player.xpm # Integer, Player's overall experience/minute
|
260
|
+
|
261
|
+
# Additional methods in Match::Player
|
262
|
+
player.status # Symbol, :played, :left_safe, :abandoned, or :bot
|
263
|
+
player.gold_spent # Integer, Amount of gold the player spent
|
264
|
+
player.hero_damage # Integer, Amount of damage the player dealt to heroes
|
265
|
+
player.tower_damage # Integer, Amount of damage the player dealt to towers
|
266
|
+
player.hero_healing # Integer, Amount of health the player had healed on heroes
|
267
|
+
|
268
|
+
# Additional methods in LiveMatch::Player
|
269
|
+
player.name # String, Name of the player
|
270
|
+
player.net_worth # Integer
|
271
|
+
player.ultimate_state # Integer
|
272
|
+
player.ultimate_cooldown # Integer
|
273
|
+
player.respawn_timer # Integer
|
274
|
+
player.position_x # Float
|
275
|
+
player.position_y # Float
|
226
276
|
```
|
227
277
|
|
228
278
|
#### Cosmetic Rarities
|
@@ -242,23 +292,6 @@ friend.relationship # String, Relation to the player
|
|
242
292
|
friend.made_at # Time, When the friend was added to the player's friend list
|
243
293
|
```
|
244
294
|
|
245
|
-
#### Live Matches
|
246
|
-
```ruby
|
247
|
-
live_matches.id # Integer, ID of the match
|
248
|
-
live_matches.lobby_id # Integer, ID of the lobby
|
249
|
-
live_matches.spectators_count # Integer, Number of spectators watching on DotaTV
|
250
|
-
live_matches.league_id # Integer, ID of the league
|
251
|
-
live_matches.stream_delay # Integer, Number of seconds the stream is behind actual game time
|
252
|
-
live_matches.radiant_series_wins # Integer, Number of wins the Radiant team has in the series
|
253
|
-
live_matches.dire_series_wins # Integer, Number of wins the Dire team has in the series
|
254
|
-
live_matches.radiant # Dota::API::LiveMatch::Side, Info about the team on the Radiant side
|
255
|
-
live_matches.dire # Dota::API::LiveMatch::Side, Info about the team on the Dire side
|
256
|
-
live_matches.series_type # Integer, Best of X series
|
257
|
-
live_matches.league_tier # String, What tier the match's league is
|
258
|
-
live_matches.players # Array[Dota::API::LiveMatch::Players], High level info about the players in the match (some redundant info in scoreboard)
|
259
|
-
live_matches.scoreboard # Hash, Details of the scoreboard (to be converted soon to an object and/or integrated with our players class)
|
260
|
-
```
|
261
|
-
|
262
295
|
## Contributing
|
263
296
|
|
264
297
|
1. [Fork it!](https://github.com/vinnicc/dota/fork)
|
data/data/heroes.yml
ADDED
@@ -0,0 +1,327 @@
|
|
1
|
+
1:
|
2
|
+
- antimage
|
3
|
+
- Anti-Mage
|
4
|
+
2:
|
5
|
+
- axe
|
6
|
+
- Axe
|
7
|
+
3:
|
8
|
+
- bane
|
9
|
+
- Bane
|
10
|
+
4:
|
11
|
+
- bloodseeker
|
12
|
+
- Bloodseeker
|
13
|
+
5:
|
14
|
+
- crystal_maiden
|
15
|
+
- Crystal Maiden
|
16
|
+
6:
|
17
|
+
- drow_ranger
|
18
|
+
- Drow Ranger
|
19
|
+
7:
|
20
|
+
- earthshaker
|
21
|
+
- Earthshaker
|
22
|
+
8:
|
23
|
+
- juggernaut
|
24
|
+
- Juggernaut
|
25
|
+
9:
|
26
|
+
- mirana
|
27
|
+
- Mirana
|
28
|
+
10:
|
29
|
+
- morphling
|
30
|
+
- Morphling
|
31
|
+
11:
|
32
|
+
- nevermore
|
33
|
+
- Shadow Fiend
|
34
|
+
12:
|
35
|
+
- phantom_lancer
|
36
|
+
- Phantom Lancer
|
37
|
+
13:
|
38
|
+
- puck
|
39
|
+
- Puck
|
40
|
+
14:
|
41
|
+
- pudge
|
42
|
+
- Pudge
|
43
|
+
15:
|
44
|
+
- razor
|
45
|
+
- Razor
|
46
|
+
16:
|
47
|
+
- sand_king
|
48
|
+
- Sand King
|
49
|
+
17:
|
50
|
+
- storm_spirit
|
51
|
+
- Storm Spirit
|
52
|
+
18:
|
53
|
+
- sven
|
54
|
+
- Sven
|
55
|
+
19:
|
56
|
+
- tiny
|
57
|
+
- Tiny
|
58
|
+
20:
|
59
|
+
- vengefulspirit
|
60
|
+
- Vengeful Spirit
|
61
|
+
21:
|
62
|
+
- windrunner
|
63
|
+
- Windranger
|
64
|
+
22:
|
65
|
+
- zuus
|
66
|
+
- Zeus
|
67
|
+
23:
|
68
|
+
- kunkka
|
69
|
+
- Kunkka
|
70
|
+
25:
|
71
|
+
- lina
|
72
|
+
- Lina
|
73
|
+
26:
|
74
|
+
- lion
|
75
|
+
- Lion
|
76
|
+
27:
|
77
|
+
- shadow_shaman
|
78
|
+
- Shadow Shaman
|
79
|
+
28:
|
80
|
+
- slardar
|
81
|
+
- Slardar
|
82
|
+
29:
|
83
|
+
- tidehunter
|
84
|
+
- Tidehunter
|
85
|
+
30:
|
86
|
+
- witch_doctor
|
87
|
+
- Witch Doctor
|
88
|
+
31:
|
89
|
+
- lich
|
90
|
+
- Lich
|
91
|
+
32:
|
92
|
+
- riki
|
93
|
+
- Riki
|
94
|
+
33:
|
95
|
+
- enigma
|
96
|
+
- Enigma
|
97
|
+
34:
|
98
|
+
- tinker
|
99
|
+
- Tinker
|
100
|
+
35:
|
101
|
+
- sniper
|
102
|
+
- Sniper
|
103
|
+
36:
|
104
|
+
- necrolyte
|
105
|
+
- Necrophos
|
106
|
+
37:
|
107
|
+
- warlock
|
108
|
+
- Warlock
|
109
|
+
38:
|
110
|
+
- beastmaster
|
111
|
+
- Beastmaster
|
112
|
+
39:
|
113
|
+
- queenofpain
|
114
|
+
- Queen of Pain
|
115
|
+
40:
|
116
|
+
- venomancer
|
117
|
+
- Venomancer
|
118
|
+
41:
|
119
|
+
- faceless_void
|
120
|
+
- Faceless Void
|
121
|
+
42:
|
122
|
+
- skeleton_king
|
123
|
+
- Wraith King
|
124
|
+
43:
|
125
|
+
- death_prophet
|
126
|
+
- Death Prophet
|
127
|
+
44:
|
128
|
+
- phantom_assassin
|
129
|
+
- Phantom Assassin
|
130
|
+
45:
|
131
|
+
- pugna
|
132
|
+
- Pugna
|
133
|
+
46:
|
134
|
+
- templar_assassin
|
135
|
+
- Templar Assassin
|
136
|
+
47:
|
137
|
+
- viper
|
138
|
+
- Viper
|
139
|
+
48:
|
140
|
+
- luna
|
141
|
+
- Luna
|
142
|
+
49:
|
143
|
+
- dragon_knight
|
144
|
+
- Dragon Knight
|
145
|
+
50:
|
146
|
+
- dazzle
|
147
|
+
- Dazzle
|
148
|
+
51:
|
149
|
+
- rattletrap
|
150
|
+
- Clockwerk
|
151
|
+
52:
|
152
|
+
- leshrac
|
153
|
+
- Leshrac
|
154
|
+
53:
|
155
|
+
- furion
|
156
|
+
- Nature's Prophet
|
157
|
+
54:
|
158
|
+
- life_stealer
|
159
|
+
- Lifestealer
|
160
|
+
55:
|
161
|
+
- dark_seer
|
162
|
+
- Dark Seer
|
163
|
+
56:
|
164
|
+
- clinkz
|
165
|
+
- Clinkz
|
166
|
+
57:
|
167
|
+
- omniknight
|
168
|
+
- Omniknight
|
169
|
+
58:
|
170
|
+
- enchantress
|
171
|
+
- Enchantress
|
172
|
+
59:
|
173
|
+
- huskar
|
174
|
+
- Huskar
|
175
|
+
60:
|
176
|
+
- night_stalker
|
177
|
+
- Night Stalker
|
178
|
+
61:
|
179
|
+
- broodmother
|
180
|
+
- Broodmother
|
181
|
+
62:
|
182
|
+
- bounty_hunter
|
183
|
+
- Bounty Hunter
|
184
|
+
63:
|
185
|
+
- weaver
|
186
|
+
- Weaver
|
187
|
+
64:
|
188
|
+
- jakiro
|
189
|
+
- Jakiro
|
190
|
+
65:
|
191
|
+
- batrider
|
192
|
+
- Batrider
|
193
|
+
66:
|
194
|
+
- chen
|
195
|
+
- Chen
|
196
|
+
67:
|
197
|
+
- spectre
|
198
|
+
- Spectre
|
199
|
+
68:
|
200
|
+
- ancient_apparition
|
201
|
+
- Ancient Apparition
|
202
|
+
69:
|
203
|
+
- doom_bringer
|
204
|
+
- Doom
|
205
|
+
70:
|
206
|
+
- ursa
|
207
|
+
- Ursa
|
208
|
+
71:
|
209
|
+
- spirit_breaker
|
210
|
+
- Spirit Breaker
|
211
|
+
72:
|
212
|
+
- gyrocopter
|
213
|
+
- Gyrocopter
|
214
|
+
73:
|
215
|
+
- alchemist
|
216
|
+
- Alchemist
|
217
|
+
74:
|
218
|
+
- invoker
|
219
|
+
- Invoker
|
220
|
+
75:
|
221
|
+
- silencer
|
222
|
+
- Silencer
|
223
|
+
76:
|
224
|
+
- obsidian_destroyer
|
225
|
+
- Outworld Devourer
|
226
|
+
77:
|
227
|
+
- lycan
|
228
|
+
- Lycan
|
229
|
+
78:
|
230
|
+
- brewmaster
|
231
|
+
- Brewmaster
|
232
|
+
79:
|
233
|
+
- shadow_demon
|
234
|
+
- Shadow Demon
|
235
|
+
80:
|
236
|
+
- lone_druid
|
237
|
+
- Lone Druid
|
238
|
+
81:
|
239
|
+
- chaos_knight
|
240
|
+
- Chaos Knight
|
241
|
+
82:
|
242
|
+
- meepo
|
243
|
+
- Meepo
|
244
|
+
83:
|
245
|
+
- treant
|
246
|
+
- Treant Protector
|
247
|
+
84:
|
248
|
+
- ogre_magi
|
249
|
+
- Ogre Magi
|
250
|
+
85:
|
251
|
+
- undying
|
252
|
+
- Undying
|
253
|
+
86:
|
254
|
+
- rubick
|
255
|
+
- Rubick
|
256
|
+
87:
|
257
|
+
- disruptor
|
258
|
+
- Disruptor
|
259
|
+
88:
|
260
|
+
- nyx_assassin
|
261
|
+
- Nyx Assassin
|
262
|
+
89:
|
263
|
+
- naga_siren
|
264
|
+
- Naga Siren
|
265
|
+
90:
|
266
|
+
- keeper_of_the_light
|
267
|
+
- Keeper of the Light
|
268
|
+
91:
|
269
|
+
- wisp
|
270
|
+
- Io
|
271
|
+
92:
|
272
|
+
- visage
|
273
|
+
- Visage
|
274
|
+
93:
|
275
|
+
- slark
|
276
|
+
- Slark
|
277
|
+
94:
|
278
|
+
- medusa
|
279
|
+
- Medusa
|
280
|
+
95:
|
281
|
+
- troll_warlord
|
282
|
+
- Troll Warlord
|
283
|
+
96:
|
284
|
+
- centaur
|
285
|
+
- Centaur Warrunner
|
286
|
+
97:
|
287
|
+
- magnataur
|
288
|
+
- Magnus
|
289
|
+
98:
|
290
|
+
- shredder
|
291
|
+
- Timbersaw
|
292
|
+
99:
|
293
|
+
- bristleback
|
294
|
+
- Bristleback
|
295
|
+
100:
|
296
|
+
- tusk
|
297
|
+
- Tusk
|
298
|
+
101:
|
299
|
+
- skywrath_mage
|
300
|
+
- Skywrath Mage
|
301
|
+
102:
|
302
|
+
- abaddon
|
303
|
+
- Abaddon
|
304
|
+
103:
|
305
|
+
- elder_titan
|
306
|
+
- Elder Titan
|
307
|
+
104:
|
308
|
+
- legion_commander
|
309
|
+
- Legion Commander
|
310
|
+
105:
|
311
|
+
- techies
|
312
|
+
- Techies
|
313
|
+
106:
|
314
|
+
- ember_spirit
|
315
|
+
- Ember Spirit
|
316
|
+
107:
|
317
|
+
- earth_spirit
|
318
|
+
- Earth Spirit
|
319
|
+
109:
|
320
|
+
- terrorblade
|
321
|
+
- Terrorblade
|
322
|
+
110:
|
323
|
+
- phoenix
|
324
|
+
- Phoenix
|
325
|
+
111:
|
326
|
+
- oracle
|
327
|
+
- Oracle
|