steam-condenser 1.3.5 → 1.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +228 -0
  3. data/CONTRIBUTING.md +59 -0
  4. data/Gemfile.lock +12 -13
  5. data/README.md +9 -4
  6. data/lib/steam-condenser/version.rb +1 -1
  7. data/lib/steam/community/alien_swarm/alien_swarm_mission.rb +10 -9
  8. data/lib/steam/community/alien_swarm/alien_swarm_stats.rb +74 -72
  9. data/lib/steam/community/css/css_map.rb +2 -2
  10. data/lib/steam/community/css/css_stats.rb +54 -56
  11. data/lib/steam/community/css/css_weapon.rb +4 -4
  12. data/lib/steam/community/game_item.rb +2 -3
  13. data/lib/steam/community/game_leaderboard.rb +22 -15
  14. data/lib/steam/community/l4d/abstract_l4d_stats.rb +64 -61
  15. data/lib/steam/community/l4d/l4d2_stats.rb +26 -21
  16. data/lib/steam/community/steam_id.rb +8 -11
  17. data/lib/steam/community/web_api.rb +19 -14
  18. data/lib/steam/packets/s2a_info2_packet.rb +16 -14
  19. data/lib/steam/packets/s2a_info_detailed_packet.rb +24 -19
  20. data/lib/steam/packets/steam_packet_factory.rb +7 -2
  21. data/lib/steam/servers/game_server.rb +3 -2
  22. data/lib/steam/servers/master_server.rb +1 -1
  23. data/lib/steam/sockets/source_socket.rb +4 -9
  24. data/pkg/steam-condenser-1.3.5.gem +0 -0
  25. data/pkg/steam-condenser-1.3.5/Gemfile +7 -0
  26. data/pkg/steam-condenser-1.3.5/Gemfile.lock +45 -0
  27. data/pkg/steam-condenser-1.3.5/LICENSE +25 -0
  28. data/pkg/steam-condenser-1.3.5/README.md +70 -0
  29. data/pkg/steam-condenser-1.3.5/Rakefile +46 -0
  30. data/pkg/steam-condenser-1.3.5/lib/core_ext/stringio.rb +91 -0
  31. data/pkg/steam-condenser-1.3.5/lib/errors/packet_format_error.rb +13 -0
  32. data/pkg/steam-condenser-1.3.5/lib/errors/rcon_ban_error.rb +22 -0
  33. data/pkg/steam-condenser-1.3.5/lib/errors/rcon_no_auth_error.rb +21 -0
  34. data/pkg/steam-condenser-1.3.5/lib/errors/steam_condenser_error.rb +26 -0
  35. data/pkg/steam-condenser-1.3.5/lib/errors/timeout_error.rb +28 -0
  36. data/pkg/steam-condenser-1.3.5/lib/errors/web_api_error.rb +57 -0
  37. data/pkg/steam-condenser-1.3.5/lib/steam-condenser.rb +18 -0
  38. data/pkg/steam-condenser-1.3.5/lib/steam-condenser/community.rb +24 -0
  39. data/pkg/steam-condenser-1.3.5/lib/steam-condenser/servers.rb +24 -0
  40. data/pkg/steam-condenser-1.3.5/lib/steam-condenser/version.rb +11 -0
  41. data/pkg/steam-condenser-1.3.5/lib/steam/community/alien_swarm/alien_swarm_mission.rb +119 -0
  42. data/pkg/steam-condenser-1.3.5/lib/steam/community/alien_swarm/alien_swarm_stats.rb +186 -0
  43. data/pkg/steam-condenser-1.3.5/lib/steam/community/alien_swarm/alien_swarm_weapon.rb +49 -0
  44. data/pkg/steam-condenser-1.3.5/lib/steam/community/app_news.rb +133 -0
  45. data/pkg/steam-condenser-1.3.5/lib/steam/community/cacheable.rb +199 -0
  46. data/pkg/steam-condenser-1.3.5/lib/steam/community/css/css_map.rb +61 -0
  47. data/pkg/steam-condenser-1.3.5/lib/steam/community/css/css_stats.rb +142 -0
  48. data/pkg/steam-condenser-1.3.5/lib/steam/community/css/css_weapon.rb +69 -0
  49. data/pkg/steam-condenser-1.3.5/lib/steam/community/defense_grid/defense_grid_stats.rb +238 -0
  50. data/pkg/steam-condenser-1.3.5/lib/steam/community/dods/dods_class.rb +90 -0
  51. data/pkg/steam-condenser-1.3.5/lib/steam/community/dods/dods_stats.rb +62 -0
  52. data/pkg/steam-condenser-1.3.5/lib/steam/community/dods/dods_weapon.rb +67 -0
  53. data/pkg/steam-condenser-1.3.5/lib/steam/community/dota2/dota2_beta_inventory.rb +30 -0
  54. data/pkg/steam-condenser-1.3.5/lib/steam/community/dota2/dota2_inventory.rb +30 -0
  55. data/pkg/steam-condenser-1.3.5/lib/steam/community/dota2/dota2_item.rb +33 -0
  56. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_achievement.rb +109 -0
  57. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_class.rb +22 -0
  58. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_inventory.rb +171 -0
  59. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_item.rb +156 -0
  60. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_item_schema.rb +131 -0
  61. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_leaderboard.rb +205 -0
  62. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_leaderboard_entry.rb +43 -0
  63. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_stats.rb +175 -0
  64. data/pkg/steam-condenser-1.3.5/lib/steam/community/game_weapon.rb +41 -0
  65. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/abstract_l4d_stats.rb +185 -0
  66. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/abstract_l4d_weapon.rb +56 -0
  67. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d2_map.rb +90 -0
  68. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d2_stats.rb +174 -0
  69. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d2_weapon.rb +38 -0
  70. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d_explosive.rb +34 -0
  71. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d_map.rb +65 -0
  72. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d_stats.rb +73 -0
  73. data/pkg/steam-condenser-1.3.5/lib/steam/community/l4d/l4d_weapon.rb +26 -0
  74. data/pkg/steam-condenser-1.3.5/lib/steam/community/portal2/portal2_inventory.rb +30 -0
  75. data/pkg/steam-condenser-1.3.5/lib/steam/community/portal2/portal2_item.rb +55 -0
  76. data/pkg/steam-condenser-1.3.5/lib/steam/community/portal2/portal2_stats.rb +33 -0
  77. data/pkg/steam-condenser-1.3.5/lib/steam/community/steam_game.rb +193 -0
  78. data/pkg/steam-condenser-1.3.5/lib/steam/community/steam_group.rb +129 -0
  79. data/pkg/steam-condenser-1.3.5/lib/steam/community/steam_id.rb +498 -0
  80. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_beta_inventory.rb +28 -0
  81. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_class.rb +92 -0
  82. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_class_factory.rb +40 -0
  83. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_engineer.rb +43 -0
  84. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_golden_wrench.rb +70 -0
  85. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_inventory.rb +30 -0
  86. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_item.rb +55 -0
  87. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_medic.rb +35 -0
  88. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_sniper.rb +28 -0
  89. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_spy.rb +41 -0
  90. data/pkg/steam-condenser-1.3.5/lib/steam/community/tf2/tf2_stats.rb +77 -0
  91. data/pkg/steam-condenser-1.3.5/lib/steam/community/web_api.rb +130 -0
  92. data/pkg/steam-condenser-1.3.5/lib/steam/community/xml_data.rb +27 -0
  93. data/pkg/steam-condenser-1.3.5/lib/steam/packets/a2m_get_servers_batch2_packet.rb +59 -0
  94. data/pkg/steam-condenser-1.3.5/lib/steam/packets/a2s_info_packet.rb +24 -0
  95. data/pkg/steam-condenser-1.3.5/lib/steam/packets/a2s_player_packet.rb +31 -0
  96. data/pkg/steam-condenser-1.3.5/lib/steam/packets/a2s_rules_packet.rb +32 -0
  97. data/pkg/steam-condenser-1.3.5/lib/steam/packets/a2s_serverquery_getchallenge_packet.rb +25 -0
  98. data/pkg/steam-condenser-1.3.5/lib/steam/packets/c2m_checkmd5_packet.rb +31 -0
  99. data/pkg/steam-condenser-1.3.5/lib/steam/packets/m2a_server_batch_packet.rb +52 -0
  100. data/pkg/steam-condenser-1.3.5/lib/steam/packets/m2c_isvalidmd5_packet.rb +34 -0
  101. data/pkg/steam-condenser-1.3.5/lib/steam/packets/m2s_requestrestart_packet.rb +34 -0
  102. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_auth_request.rb +28 -0
  103. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_auth_response.rb +30 -0
  104. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_exec_request.rb +28 -0
  105. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_exec_response.rb +37 -0
  106. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_goldsrc_request.rb +35 -0
  107. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_goldsrc_response.rb +34 -0
  108. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_packet.rb +57 -0
  109. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_packet_factory.rb +43 -0
  110. data/pkg/steam-condenser-1.3.5/lib/steam/packets/rcon/rcon_terminator.rb +29 -0
  111. data/pkg/steam-condenser-1.3.5/lib/steam/packets/request_with_challenge.rb +19 -0
  112. data/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_info2_packet.rb +74 -0
  113. data/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_info_base_packet.rb +25 -0
  114. data/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_info_detailed_packet.rb +59 -0
  115. data/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_logstring_packet.rb +30 -0
  116. data/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_player_packet.rb +44 -0
  117. data/pkg/steam-condenser-1.3.5/lib/steam/packets/s2a_rules_packet.rb +48 -0
  118. data/pkg/steam-condenser-1.3.5/lib/steam/packets/s2c_challenge_packet.rb +35 -0
  119. data/pkg/steam-condenser-1.3.5/lib/steam/packets/s2m_heartbeat2_packet.rb +72 -0
  120. data/pkg/steam-condenser-1.3.5/lib/steam/packets/steam_packet.rb +52 -0
  121. data/pkg/steam-condenser-1.3.5/lib/steam/packets/steam_packet_factory.rb +108 -0
  122. data/pkg/steam-condenser-1.3.5/lib/steam/servers/game_server.rb +392 -0
  123. data/pkg/steam-condenser-1.3.5/lib/steam/servers/goldsrc_server.rb +74 -0
  124. data/pkg/steam-condenser-1.3.5/lib/steam/servers/master_server.rb +188 -0
  125. data/pkg/steam-condenser-1.3.5/lib/steam/servers/server.rb +115 -0
  126. data/pkg/steam-condenser-1.3.5/lib/steam/servers/source_server.rb +117 -0
  127. data/pkg/steam-condenser-1.3.5/lib/steam/sockets/goldsrc_socket.rb +142 -0
  128. data/pkg/steam-condenser-1.3.5/lib/steam/sockets/master_server_socket.rb +34 -0
  129. data/pkg/steam-condenser-1.3.5/lib/steam/sockets/rcon_socket.rb +103 -0
  130. data/pkg/steam-condenser-1.3.5/lib/steam/sockets/source_socket.rb +78 -0
  131. data/pkg/steam-condenser-1.3.5/lib/steam/sockets/steam_socket.rb +91 -0
  132. data/pkg/steam-condenser-1.3.5/lib/steam/steam_player.rb +143 -0
  133. data/pkg/steam-condenser-1.3.5/steam-condenser.gemspec +26 -0
  134. data/pkg/steam-condenser-1.3.5/test/core_ext/test_stringio.rb +59 -0
  135. data/pkg/steam-condenser-1.3.5/test/fixtures/invalid.xml +2 -0
  136. data/pkg/steam-condenser-1.3.5/test/fixtures/sonofthor.xml +882 -0
  137. data/pkg/steam-condenser-1.3.5/test/fixtures/status_goldsrc +3 -0
  138. data/pkg/steam-condenser-1.3.5/test/fixtures/status_source +3 -0
  139. data/pkg/steam-condenser-1.3.5/test/fixtures/valve-members.xml +231 -0
  140. data/pkg/steam-condenser-1.3.5/test/helper.rb +48 -0
  141. data/pkg/steam-condenser-1.3.5/test/steam/community/test_cacheable.rb +100 -0
  142. data/pkg/steam-condenser-1.3.5/test/steam/community/test_steam_group.rb +83 -0
  143. data/pkg/steam-condenser-1.3.5/test/steam/community/test_steam_id.rb +144 -0
  144. data/pkg/steam-condenser-1.3.5/test/steam/community/test_web_api.rb +98 -0
  145. data/pkg/steam-condenser-1.3.5/test/steam/packets/test_steam_packet.rb +37 -0
  146. data/pkg/steam-condenser-1.3.5/test/steam/servers/test_game_server.rb +296 -0
  147. data/pkg/steam-condenser-1.3.5/test/steam/servers/test_goldsrc_server.rb +59 -0
  148. data/pkg/steam-condenser-1.3.5/test/steam/servers/test_master_server.rb +131 -0
  149. data/pkg/steam-condenser-1.3.5/test/steam/servers/test_server.rb +72 -0
  150. data/pkg/steam-condenser-1.3.5/test/steam/servers/test_source_server.rb +134 -0
  151. data/pkg/steam-condenser-1.3.5/test/steam/sockets/test_goldsrc_socket.rb +127 -0
  152. data/pkg/steam-condenser-1.3.5/test/steam/sockets/test_master_server_socket.rb +42 -0
  153. data/pkg/steam-condenser-1.3.5/test/steam/sockets/test_rcon_socket.rb +118 -0
  154. data/pkg/steam-condenser-1.3.5/test/steam/sockets/test_source_socket.rb +77 -0
  155. data/pkg/steam-condenser-1.3.5/test/steam/sockets/test_steam_socket.rb +97 -0
  156. data/steam-condenser.gemspec +2 -3
  157. data/test/steam/community/test_cacheable.rb +3 -0
  158. data/test/steam/community/test_web_api.rb +15 -2
  159. data/test/steam/packets/test_steam_packet.rb +1 -1
  160. data/test/steam/sockets/test_source_socket.rb +1 -1
  161. metadata +151 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA512:
3
- metadata.gz: 6e724ccb42cf8919d3c93f337b3aa9d318731c632c7d4f3a847c563e05d7a307c374df5e430bcedc0905f33addd5ad8d8b45fc3732fe281aebc622816d03c575
4
- data.tar.gz: f0a334cb4fb78275d8b9bd54e1e57647fe6d32be8f43d29eac6636f339947c3eb095e9df1f5336f885b83cbf29a423f82328623c7e43d9457af5a8adf6c933af
5
2
  SHA1:
6
- metadata.gz: 4df93af96fcac8cf99dfcfe7898c39db94619635
7
- data.tar.gz: 39366be0313e83bedb40fa1e1e735ca714e93763
3
+ metadata.gz: 16627283b79e75d800e64e9718e9828c739a2bfb
4
+ data.tar.gz: b4ec72489e29d4403a77e15e7da36b1770e34f89
5
+ SHA512:
6
+ metadata.gz: af373818b41b9297e576f4154255a2f5f081f062ccd587acf5fad6e3c6dc7a131730efe373bf95a913e0911321f8522234ce18beb44c236ed8d641ca1d7896cd
7
+ data.tar.gz: e1c19250df122451b026a11c10076568b63472aaf5d8cc2c5db9454c3c93cffccdb0fe171903b91d4d09693b975c7b91d359e475af3eb252f9ed6fde5dfafa2a
data/CHANGELOG.md ADDED
@@ -0,0 +1,228 @@
1
+ ## Version 1.3.6 / Unreleased
2
+
3
+ * [SECURITY] Use HTTPS for Web API by default
4
+ * [ENHANCEMENT] bzip2-ruby is optional again for compatibility with Ruby 2.0.0
5
+ and JRuby
6
+ * [ENHANCEMENT] Improved code style in various places
7
+ * [BUGFIX] Changed to the correct GoldSrc master server port
8
+ * [BUGFIX] Fixed SourceSocket not failing when it should
9
+ * [BUGFIX] Fixed creating SteamId instances with `U_` IDs
10
+
11
+ ## Version 1.3.5 / 2013-03-29
12
+
13
+ * [ENHANCEMENT] Adapted game item parsing to *DotA 2* API changes
14
+ * [SECURITY] Strip Wep API keys from debug output
15
+ * [BUGFIX] Fixed creating SteamId instances with `STEAM_` IDs
16
+
17
+ ## Version 1.3.4.1 / 2013-02-13
18
+
19
+ * [BUGFIX] Corrected gem build for version 1.3.4
20
+
21
+ ## Version 1.3.4 / 2013-02-13
22
+
23
+ * [BUGFIX] Fixed a regression in community error handling
24
+
25
+ ## Version 1.3.3 / 2013-02-12
26
+
27
+ * [FEATURE] Added support for game ID in server info
28
+ * [ENHANCEMENT] Improved error handling for XML data
29
+ * [ENHANCEMENT] Simplified server info packets
30
+
31
+ ## Version 1.3.2 / 2013-02-04
32
+
33
+ * [ENHANCEMENT] Improved detection of RCON bans
34
+
35
+ ## Version 1.3.1 / 2013-01-20
36
+
37
+ * [ENHANCEMENT] Added support for preliminary inventory items
38
+ * [ENHANCEMENT] Further improved RCON connection handling
39
+ * [BUGFIX] Do not cache failed user groups and friends
40
+ * [BUGFIX] Fixed errors when creating cacheable classes
41
+
42
+ ## Version 1.3.0 / 2012-12-29
43
+
44
+ * [FEATURE] Added support for new Web API interfaces
45
+ * [FEATURE] Added support for new Steam ID format ("[U:#:#####]")
46
+ * [ENHANCEMENT] Vastly improved inventories
47
+ * [ENHANCEMENT] Better handling of RCON edge cases
48
+ * [ENHANCEMENT] Improved connection handling for RCON edge cases
49
+ * [BUGFIX] Fixed several community parsing issues
50
+
51
+ ## Version 1.2.1 / 2012-07-21
52
+
53
+ * [FEATURE] Support for *DotA 2* (beta) inventories
54
+ * [ENHANCEMENT] Improved behavior of cacheable classes
55
+ * [ENHANCEMENT] Workaround for game URLs with duplicate slashes
56
+
57
+ ## Version 1.2.0 / 2012-04-24
58
+
59
+ * [FEATURE] Support for game version checks
60
+ * [FEATURE] Support query for all Web API interfaces
61
+ * [FEATURE] Check game versions using its `steam.inf` file
62
+ * [FEATURE] Support for new Steam profile attributes
63
+ * [ENHANCEMENT] Improved fetching of community groups
64
+ * [ENHANCEMENT] Improved unit tests
65
+ * [ENHANCEMENT] Cleaned up community-related code
66
+ * [ENHANCEMENT] Use multi_xml for parsing XML
67
+ * [BUGFIX] Use `A2S_PLAYER` packet to challenge game servers
68
+ * [BUGFIX] Fixed several URL related problems
69
+ * [BUGFIX] Fixed Web API not working without an API key
70
+ * [PERFORMACE] Optimized fetching of Steam group members
71
+
72
+ ## Version 1.1.0 / 2011-12-13
73
+
74
+ * [FEATURE] Support for leaderboards
75
+ * [FEATURE] Support for *Team Fortress 2* beta stats
76
+ * [ENHANCEMENT] Allow use of service names instead of port numbers
77
+ * [BUGFIX] Fixed sending master server heartbeats
78
+ * [BUGFIX] Fixed check for profile links
79
+
80
+ ## Version 1.0.2 / 2011-10-24
81
+
82
+ * [ENHANCEMENT] Added API name and description to achievements
83
+ * [BUGFIX] Fixed handling of empty RCON responses
84
+ * [BUGFIX] Fixed `SourceServer.master`
85
+ * [BUGFIX] Fixed parsing rules with empty values
86
+ * [BUGFIX] Fixed server info for some Source servers
87
+ * [BUGFIX] Fixed Rakefile encoding for Ruby 1.9
88
+
89
+ ## Version 1.0.1 / 2011-08-23
90
+
91
+ * [BUGFIX] Fixed several packaging problems
92
+
93
+ ## Version 1.0.0 / 2011-08-18
94
+
95
+ * [ENHANCEMENT] Added intuitive way to get master servers
96
+ * [ENHANCEMENT] Added a shortcut to get stats for a SteamGame
97
+ * [ENHANCEMENT] Added a way to bypass master server problems
98
+ * [ENHANCEMENT] Updated documentation
99
+ * [ENHANCEMENT] Improved code style
100
+ * [ENHANCEMENT] Updated achievement Web API to version 2
101
+ * [ENHANCEMENT] Updated application news Web API to version 2
102
+ * [ENHANCEMENT] Use Bundler instead of Ore
103
+ * [ENHANCEMENT] Use multi_json instead of json
104
+ * [BUGFIX] Fixed author field for application news
105
+
106
+ ## Version 0.14.0 / 2011-06-01
107
+
108
+ * [FEATURE] Support for *Portal 2* stats
109
+ * [ENHANCEMENT] Updated documentation
110
+ * [ENHANCEMENT] Use `IEconItems` Web API interfaces for inventories
111
+ * [BUGFIX] Fixed consecutive Source RCON requests
112
+ * [BUGFIX] Fixed inventory caching
113
+
114
+ ## Version 0.13.1 / 2011-04-15
115
+
116
+ * [BUGFIX] Fixed several problems when parsing RCON `status` output
117
+
118
+ ## Version 0.13.0 / 2011-04-12
119
+
120
+ * [FEATURE] Support for Steam's Web API
121
+ * [FEATURE] Support for Steam application news
122
+ * [FEATURE] Support for *Team Fortress 2* inventories, golden wrenches
123
+ * [FEATURE] Support for master server heartbeating
124
+ * [FEATURE] Dynamic name resolution and automatic failover for master servers
125
+ * [ENHANCEMENT] Improved parsing of RCON `status` output
126
+ * [BUGFIX] Fixed pinging game servers
127
+ * [BUGFIX] Fixed `A2S_PLAYER` and `A2S_RULES` packet creation
128
+ * [BUGFIX] Fixed regular expression for game links
129
+ * [PERFORMANCE] Optimized RCON queries
130
+ * [PERFORMANCE] Fixed timeout calculation in `SteamSocket`
131
+ * [PERFORMANCE] Lazy load zlib for compressed packets
132
+
133
+ ## Version 0.12.0 / 2010-12-29
134
+
135
+ * [FEATURE] Support for *Alien Swarm* stats
136
+ * [FEATURE] Allow customization of socket timeouts
137
+ * [ENHANCEMENT] Moved from Jeweler to Ore
138
+ * [BUGFIX] Fixed stats for games without a specific implementation
139
+
140
+ ## Version 0.11.4 / 2010-11-07
141
+
142
+ * [BUGFIX] Fixed split packet handling
143
+ * [BUGFIX] Fixed compatibility with Ruby 1.9
144
+ * [BUGFIX] Fix for a change in *CS:S*' stats XML data
145
+
146
+ ## Version 0.11.3 / 2010-10-05
147
+
148
+ * [BUGFIX] Fix for `SteamId#game_stats`
149
+
150
+ ## Version 0.11.2 / 2010-09-08
151
+
152
+ * [ENHANCEMENT] Provide the unlock date of achievements if available
153
+ * [BUGFIX] Removed workaround for GoldSrc master servers
154
+ * [BUGFIX] Compatibility fix for `StringIO` additions
155
+
156
+ ## Version 0.11.1 / 2010-07-05
157
+
158
+ * [BUGFIX] Fixed parsing of RCON replies
159
+
160
+ ## Version 0.11.0 / 2010-07-02
161
+
162
+ * [FEATURE] Support for *Counter-Strike: Source* stats
163
+ * [ENHANCEMENT] Adapt to common Ruby code conventions
164
+ * [BUGFIX] Fixed timouts for unresponsive master servers
165
+ * [BUGFIX] Fixed querying GoldSrc master servers
166
+
167
+ ## Version 0.10.1 / 2010-04-05
168
+
169
+ * [FEATURE] Load servers' Steam IDs from `S2A_INFO2` replies
170
+ * [BUGFIX] Fixed fetching group members
171
+ * [BUGFIX] Fixed cacheable community data
172
+ * [BUGFIX] Fixed check for EDF in `S2A_INFO2` replies
173
+
174
+ ## Version 0.10.0 / 2010-02-24
175
+
176
+ * [FEATURE] Support for *Left4Dead 2* stats
177
+ * [FEATURE] Added conversion from 64bit to `STEAM_` IDs
178
+ * [ENHANCEMENT] Parse XML data to get a user's games
179
+ * [BUGFIX] Fixed parsing of deactivated community profiles
180
+ * [BUGFIX] Fixed loading additional player information for Source servers
181
+
182
+ ## Version 0.9.0 / 2009-09-16
183
+
184
+ * [FEATURE] Support loading community groups of a user
185
+ * [FEATURE] Support for *Defense Grid: The Awakening* stats
186
+ * [ENHANCEMENT] Workaround for corrupt `S2A_RULES` replies
187
+ * [ENHANCEMENT] Supply a `VERSION` constant
188
+ * [BUGFIX] Fixed gem packaging
189
+ * [BUGFIX] Fixed handling of really long RCON replies
190
+ * [BUGFIX] Improved parsing of `S2A_RULES` packets
191
+ * [BUGFIX] Fixed compatibility with Ruby 1.9
192
+ * [PERFORMANCE] Added caching to `SteamGroup` and `SteamId`
193
+
194
+ ## Version 0.8.0 / 2009-06-15
195
+
196
+ * [FEATURE] Load additional player information via RCON
197
+ * [FEATURE] Support for *Day of Defeat: Source* stats
198
+ * [FEATURE] Support for *Left4Dead* stats
199
+ * [FEATURE] Support loading games of a user
200
+ * [ENHANCEMENT] Let `SteamCondenserError` inherit from `StandardError`
201
+ * [ENHANCEMENT] Several improvements to Steam Community features
202
+ * [ENHANCEMENT] Several improvements to server queries
203
+ * [ENHANCEMENT] Use Jeweler for packaging
204
+ * [BUGFIX] Fixed problems with compressed packets
205
+ * [BUGFIX] Fixed parsing profiles without favorite or most played games
206
+ * [PERFORMANCE] Optimized server queries
207
+
208
+ ## Version 0.7.0 / 2009-03-02
209
+
210
+ * [FEATURE] Support for *Team Fortress 2* stats and achievements
211
+ * [FEATURE] Support for split RCON replies
212
+ * [FEATURE] Support for compressed query replies
213
+ * [ENHANCEMENT] Better support for HTLV servers
214
+ * [ENHANCEMENT] XML cache for `GameStats`
215
+ * [ENHANCEMENT] Use correct packet names
216
+ * [BUGFIX] Fixed fetching of `SteamId` data
217
+ * [BUGFIX] Fixed several GoldSrc RCON problems
218
+
219
+ ## Version 0.6.0 / 2008-10-23
220
+
221
+ * [FEATURE] Support for Steam Community profiles
222
+ * [FEATURE] Support for game statistics
223
+ * [FEATURE] Support for RCON
224
+
225
+ ## Version 0.5.0 / 2008-08-10
226
+
227
+ * [FEATURE] Support for GoldSrc and Source server queries
228
+ * [FEATURE] Support for master server queries
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,59 @@
1
+ Contribution Guidelines
2
+ =======================
3
+
4
+ First of all, each single contribution is appreciated, whether a typo fix,
5
+ improved documentation, a fixed bug or a whole new feature.
6
+
7
+ ## Making your changes
8
+
9
+ 1. Fork the repository on GitHub
10
+ 2. Create a topic branch with a descriptive name, e.g. `fix-issue-123` or
11
+ `feature-x`
12
+ 3. Make your modifications, complying with the
13
+ [code conventions](#code-conventions)
14
+ 4. Commit small logical changes, each with a descriptive commit message.
15
+ Please don't mix unrelated changes in a single commit.
16
+
17
+ ## Commit messages
18
+
19
+ Please format your commit messages as follows:
20
+
21
+ Short summary of the change (up to 50 characters)
22
+
23
+ Optionally add a more extensive description of your change after a
24
+ blank line. Wrap the lines in this and the following paragraphs after
25
+ 72 characters.
26
+
27
+ ## Submitting your changes
28
+
29
+ 1. Push your changes to a topic branch in your fork of the repository.
30
+ 2. [Submit a pull request][pr] to the original repository.
31
+ Describe your changes as short as possible, but as detailed as needed for
32
+ others to get an overview of your modifications.
33
+ 3. *Optionally*, [open an issue][issue] in the meta-repository if your change
34
+ might be relevant to other implementations of Steam Condenser. Please add a
35
+ link to your pull request.
36
+
37
+ ## Code conventions
38
+
39
+ * White spaces:
40
+ * Indent using 2 spaces
41
+ * Line endings must be line feeds (\n)
42
+ * Add a newline at end of file
43
+ * Name conventions:
44
+ * `UpperCamelCase` for classes and modules
45
+ * `lower_case` for variables and methods
46
+ * `UPPER_CASE` for constants
47
+
48
+ ## Further information
49
+
50
+ * [General GitHub documentation][gh-help]
51
+ * [GitHub pull request documentation][gh-pr]
52
+ * [Google group][mail]
53
+ * \#steam-condenser on freenode.net
54
+
55
+ [gh-help]: https://help.github.com
56
+ [gh-pr]: https://help.github.com/send-pull-requests
57
+ [issue]: https://github.com/koraktor/steam-condenser/issues/new
58
+ [mail]: https://groups.google.com/group/steam-condenser
59
+ [pr]: https://github.com/koraktor/steam-condenser-ruby/pull/new
data/Gemfile.lock CHANGED
@@ -1,46 +1,45 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- steam-condenser (1.3.5)
5
- bzip2-ruby (~> 0.2.7)
6
- multi_json (~> 1.6.0)
4
+ steam-condenser (1.3.6)
5
+ multi_json (~> 1.7.2)
7
6
  multi_xml (~> 0.5.2)
8
7
 
9
8
  GEM
10
9
  remote: https://rubygems.org/
11
10
  specs:
12
- bzip2-ruby (0.2.7)
13
11
  colorize (0.5.8)
14
- coveralls (0.6.2)
12
+ coveralls (0.6.7)
15
13
  colorize
16
14
  multi_json (~> 1.3)
17
15
  rest-client
18
16
  simplecov (>= 0.7)
19
17
  thor
20
18
  metaclass (0.0.1)
21
- mime-types (1.21)
22
- mocha (0.13.1)
19
+ mime-types (1.23)
20
+ mocha (0.13.3)
23
21
  metaclass (~> 0.0.1)
24
- multi_json (1.6.0)
22
+ multi_json (1.7.3)
25
23
  multi_xml (0.5.3)
26
- rake (10.0.3)
24
+ rake (10.0.4)
27
25
  rest-client (1.6.7)
28
26
  mime-types (>= 1.16)
29
- shoulda-context (1.0.2)
27
+ shoulda-context (1.1.1)
30
28
  simplecov (0.7.1)
31
29
  multi_json (~> 1.0)
32
30
  simplecov-html (~> 0.7.1)
33
31
  simplecov-html (0.7.1)
34
- thor (0.17.0)
35
- yard (0.8.3)
32
+ thor (0.18.1)
33
+ yard (0.8.6.1)
36
34
 
37
35
  PLATFORMS
36
+ java
38
37
  ruby
39
38
 
40
39
  DEPENDENCIES
41
40
  coveralls
42
41
  mocha (~> 0.13.0)
43
42
  rake (~> 10.0.1)
44
- shoulda-context (~> 1.0.0)
43
+ shoulda-context (~> 1.1.1)
45
44
  steam-condenser!
46
45
  yard (~> 0.8.0)
data/README.md CHANGED
@@ -1,7 +1,11 @@
1
1
  Steam Condenser
2
2
  ===============
3
3
 
4
- [![Build Status](https://secure.travis-ci.org/koraktor/steam-condenser-ruby.png)](http://travis-ci.org/koraktor/steam-condenser-ruby) [![Dependency Status](https://gemnasium.com/koraktor/steam-condenser-ruby.png)](https://gemnasium.com/koraktor/steam-condenser-ruby) [![Code Climate](https://codeclimate.com/github/koraktor/steam-condenser-ruby.png)](https://codeclimate.com/github/koraktor/steam-condenser-ruby) [![Coverage Status](https://coveralls.io/repos/koraktor/steam-condenser-ruby/badge.png?branch=master)](https://coveralls.io/r/koraktor/steam-condenser-ruby)
4
+ [![Gem Version](https://badge.fury.io/rb/steam-condenser.png)](http://badge.fury.io/rb/steam-condenser)
5
+ [![Build Status](https://secure.travis-ci.org/koraktor/steam-condenser-ruby.png)](http://travis-ci.org/koraktor/steam-condenser-ruby)
6
+ [![Dependency Status](https://gemnasium.com/koraktor/steam-condenser-ruby.png)](https://gemnasium.com/koraktor/steam-condenser-ruby)
7
+ [![Code Climate](https://codeclimate.com/github/koraktor/steam-condenser-ruby.png)](https://codeclimate.com/github/koraktor/steam-condenser-ruby)
8
+ [![Coverage Status](https://coveralls.io/repos/koraktor/steam-condenser-ruby/badge.png?branch=master)](https://coveralls.io/r/koraktor/steam-condenser-ruby)
5
9
 
6
10
  The Steam Condenser is a multi-language library for querying the Steam
7
11
  Community, Source and GoldSrc game servers as well as the Steam master servers.
@@ -59,12 +63,13 @@ included LICENSE file.
59
63
 
60
64
  ## See Also
61
65
 
62
- * [Steam Condenser home](https://koraktor.de/steam-condenser)
66
+ * [Steam Condenser home](http://koraktor.de/steam-condenser)
63
67
  * [Documentation](http://rubydoc.info/gems/steam-condenser)
64
68
  * [GitHub project page](https://github.com/koraktor/steam-condenser)
65
69
  * [Wiki](https://github.com/koraktor/steam-condenser/wiki)
66
70
  * [Google group](http://groups.google.com/group/steam-condenser)
67
71
  * [Ohloh profile](http://www.ohloh.net/projects/steam-condenser)
68
72
 
69
- Follow Steam Condenser on Twitter
70
- [@steamcondenser](http://twitter.com/steamcondenser).
73
+ Follow Steam Condenser on Google Plus+ via
74
+ [+Steam Condenser](https://plus.google.com/b/109400543549250623875/109400543549250623875)
75
+ or on Twitter via [@steamcondenser](https://twitter.com/steamcondenser).
@@ -6,6 +6,6 @@
6
6
  module SteamCondenser
7
7
 
8
8
  # The current version of Steam Condenser
9
- VERSION = '1.3.5'
9
+ VERSION = '1.3.6'
10
10
 
11
11
  end
@@ -1,7 +1,7 @@
1
1
  # This code is free software; you can redistribute it and/or modify it under
2
2
  # the terms of the new BSD License.
3
3
  #
4
- # Copyright (c) 2010-2011, Sebastian Staudt
4
+ # Copyright (c) 2010-2013, Sebastian Staudt
5
5
 
6
6
  # This class holds statistical information about missions played by a player in
7
7
  # Alien Swarm
@@ -106,14 +106,15 @@ class AlienSwarmMission
106
106
  @total_games = mission_data['gamestotal'].to_i
107
107
  @total_games_percentage = mission_data['gamestotalpct'].to_f
108
108
 
109
- @time = {}
110
- @time[:average] = mission_data['avgtime']
111
- @time[:brutal] = mission_data['brutaltime']
112
- @time[:easy] = mission_data['easytime']
113
- @time[:hard] = mission_data['hardtime']
114
- @time[:insane] = mission_data['insanetime']
115
- @time[:normal] = mission_data['normaltime']
116
- @time[:total] = mission_data['totaltime']
109
+ @time = {
110
+ :average => mission_data['avgtime'],
111
+ :brutal => mission_data['brutaltime'],
112
+ :easy => mission_data['easytime'],
113
+ :hard => mission_data['hardtime'],
114
+ :insane => mission_data['insanetime'],
115
+ :normal => mission_data['normaltime'],
116
+ :total => mission_data['totaltime']
117
+ }
117
118
  end
118
119
 
119
120
  end
@@ -1,7 +1,7 @@
1
1
  # This code is free software; you can redistribute it and/or modify it under
2
2
  # the terms of the new BSD License.
3
3
  #
4
- # Copyright (c) 2010-2011, Sebastian Staudt
4
+ # Copyright (c) 2010-2013, Sebastian Staudt
5
5
 
6
6
  require 'steam/community/alien_swarm/alien_swarm_mission'
7
7
  require 'steam/community/alien_swarm/alien_swarm_weapon'
@@ -20,12 +20,11 @@ class AlienSwarmStats < GameStats
20
20
  BASE_URL = 'http://cdn.steamcommunity.com/public/images/gamestats/swarm/'
21
21
 
22
22
  # The names of all weapons in Alien Swarm
23
- WEAPONS = [ 'Autogun', 'Cannon_Sentry', 'Chainsaw', 'Flamer',
24
- 'Grenade_Launcher', 'Hand_Grenades', 'Hornet_Barrage',
25
- 'Incendiary_Sentry', 'Laser_Mines', 'Marskman_Rifle', 'Minigun',
26
- 'Mining_Laser', 'PDW', 'Pistol', 'Prototype_Rifle', 'Rail_Rifle',
27
- 'Rifle', 'Rifle_Grenade', 'Sentry_Gun', 'Shotgun',
28
- 'Tesla_Cannon', 'Vindicator', 'Vindicator_Grenade' ]
23
+ WEAPONS = %w(Autogun Cannon_Sentry Chainsaw Flamer Grenade_Launcher
24
+ Hand_Grenades Hornet_Barrage Incendiary_Sentry Laser_Mines
25
+ Marskman_Rifle Minigun Mining_Laser PDW Pistol Prototype_Rifle
26
+ Rail_Rifle Rifle Rifle_Grenade Sentry_Gun Shotgun Tesla_Cannon
27
+ Vindicator Vindicator_Grenade)
29
28
 
30
29
  # Creates a new `AlienSwarmStats` instance by calling the super constructor
31
30
  # with the game name `'alienswarm'`
@@ -41,28 +40,29 @@ class AlienSwarmStats < GameStats
41
40
 
42
41
  @hours_played = lifetime_data['timeplayed']
43
42
 
44
- @lifetime_stats = {}
45
- @lifetime_stats[:accuracy] = lifetime_data['accuracy'].to_f
46
- @lifetime_stats[:aliens_burned] = lifetime_data['aliensburned'].to_i
47
- @lifetime_stats[:aliens_killed] = lifetime_data['alienskilled'].to_i
48
- @lifetime_stats[:campaigns] = lifetime_data['campaigns'].to_i
49
- @lifetime_stats[:damage_taken] = lifetime_data['damagetaken'].to_i
50
- @lifetime_stats[:experience] = lifetime_data['experience'].to_i
51
- @lifetime_stats[:experience_required] = lifetime_data['xprequired'].to_i
52
- @lifetime_stats[:fast_hacks] = lifetime_data['fasthacks'].to_i
53
- @lifetime_stats[:friendly_fire] = lifetime_data['friendlyfire'].to_i
54
- @lifetime_stats[:games_successful] = lifetime_data['gamessuccess'].to_i
55
- @lifetime_stats[:healing] = lifetime_data['healing'].to_i
56
- @lifetime_stats[:kills_per_hour] = lifetime_data['killsperhour'].to_f
57
- @lifetime_stats[:level] = lifetime_data['level'].to_i
58
- @lifetime_stats[:promotion] = lifetime_data['promotion'].to_i
59
- @lifetime_stats[:promotion_img] = BASE_URL + lifetime_data['promotionpic'] if @lifetime_stats[:promotion] > 0
60
- @lifetime_stats[:next_unlock] = lifetime_data['nextunlock']
61
- @lifetime_stats[:next_unlock_img] = BASE_URL + lifetime_data['nextunlockimg']
62
- @lifetime_stats[:shots_fired] = lifetime_data['shotsfired'].to_i
63
- @lifetime_stats[:total_games] = lifetime_data['totalgames'].to_i
64
-
65
- @lifetime_stats[:games_successful_percentage] = (@lifetime_stats[:total_games] > 0) ? @lifetime_stats[:games_successful].to_f / @lifetime_stats[:total_games] : 0;
43
+ @lifetime_stats = {
44
+ :accuracy => lifetime_data['accuracy'].to_f,
45
+ :aliens_burned => lifetime_data['aliensburned'].to_i,
46
+ :aliens_killed => lifetime_data['alienskilled'].to_i,
47
+ :campaigns => lifetime_data['campaigns'].to_i,
48
+ :damage_taken => lifetime_data['damagetaken'].to_i,
49
+ :experience => lifetime_data['experience'].to_i,
50
+ :experience_required => lifetime_data['xprequired'].to_i,
51
+ :fast_hacks => lifetime_data['fasthacks'].to_i,
52
+ :friendly_fire => lifetime_data['friendlyfire'].to_i,
53
+ :games_successful => lifetime_data['gamessuccess'].to_i,
54
+ :healing => lifetime_data['healing'].to_i,
55
+ :kills_per_hour => lifetime_data['killsperhour'].to_f,
56
+ :level => lifetime_data['level'].to_i,
57
+ :promotion => lifetime_data['promotion'].to_i,
58
+ :next_unlock => lifetime_data['nextunlock'],
59
+ :next_unlock_img => BASE_URL + lifetime_data['nextunlockimg'],
60
+ :shots_fired => lifetime_data['shotsfired'].to_i,
61
+ :total_games => lifetime_data['totalgames'].to_i,
62
+ :games_successful_percentage => (@lifetime_stats[:total_games] > 0) ? @lifetime_stats[:games_successful].to_f / @lifetime_stats[:total_games] : 0
63
+ }
64
+
65
+ @lifetime_stats[:promotion_img] = BASE_URL + lifetime_data['promotionpic'] if @lifetime_stats[:promotion] > 0
66
66
  end
67
67
  end
68
68
 
@@ -77,27 +77,28 @@ class AlienSwarmStats < GameStats
77
77
  if @favorites.nil?
78
78
  favorites_data = @xml_data['stats']['favorites']
79
79
 
80
- @favorites = {}
81
- @favorites[:class] = favorites_data['class']
82
- @favorites[:class_img] = favorites_data['classimg']
83
- @favorites[:class_percentage] = favorites_data['classpct'].to_f
84
- @favorites[:difficulty] = favorites_data['difficulty']
85
- @favorites[:difficulty_percentage] = favorites_data['difficultypct'].to_f
86
- @favorites[:extra] = favorites_data['extra']
87
- @favorites[:extra_img] = favorites_data['extraimg']
88
- @favorites[:extra_percentage] = favorites_data['extrapct'].to_f
89
- @favorites[:marine] = favorites_data['marine']
90
- @favorites[:marine_img] = favorites_data['marineimg']
91
- @favorites[:marine_percentage] = favorites_data['marinepct'].to_f
92
- @favorites[:mission] = favorites_data['mission']
93
- @favorites[:mission_img] = favorites_data['missionimg']
94
- @favorites[:mission_percentage] = favorites_data['missionpct'].to_f
95
- @favorites[:primary_weapon] = favorites_data['primary']
96
- @favorites[:primary_weapon_img] = favorites_data['primaryimg']
97
- @favorites[:primary_weapon_percentage] = favorites_data['primarypct'].to_f
98
- @favorites[:secondary_weapon] = favorites_data['secondary']
99
- @favorites[:secondary_weapon_img] = favorites_data['secondaryimg']
100
- @favorites[:secondary_weapon_percentage] = favorites_data['secondarypct'].to_f
80
+ @favorites = {
81
+ :class => favorites_data['class'],
82
+ :class_img => favorites_data['classimg'],
83
+ :class_percentage => favorites_data['classpct'].to_f,
84
+ :difficulty => favorites_data['difficulty'],
85
+ :difficulty_percentage => favorites_data['difficultypct'].to_f,
86
+ :extra => favorites_data['extra'],
87
+ :extra_img => favorites_data['extraimg'],
88
+ :extra_percentage => favorites_data['extrapct'].to_f,
89
+ :marine => favorites_data['marine'],
90
+ :marine_img => favorites_data['marineimg'],
91
+ :marine_percentage => favorites_data['marinepct'].to_f,
92
+ :mission => favorites_data['mission'],
93
+ :mission_img => favorites_data['missionimg'],
94
+ :mission_percentage => favorites_data['missionpct'].to_f,
95
+ :primary_weapon => favorites_data['primary'],
96
+ :primary_weapon_img => favorites_data['primaryimg'],
97
+ :primary_weapon_percentage => favorites_data['primarypct'].to_f,
98
+ :secondary_weapon => favorites_data['secondary'],
99
+ :secondary_weapon_img => favorites_data['secondaryimg'],
100
+ :secondary_weapon_percentage => favorites_data['secondarypct'].to_f
101
+ }
101
102
  end
102
103
 
103
104
  @favorites
@@ -115,28 +116,29 @@ class AlienSwarmStats < GameStats
115
116
  if @item_stats.nil?
116
117
  weapons_data = @xml_data['stats']['weapons']
117
118
 
118
- @item_stats = {}
119
- @item_stats[:ammo_deployed] = weapons_data['ammo_deployed'].to_i
120
- @item_stats[:sentryguns_deployed] = weapons_data['sentryguns_deployed'].to_i
121
- @item_stats[:sentry_flamers_deployed] = weapons_data['sentry_flamers_deployed'].to_i
122
- @item_stats[:sentry_freeze_deployed] = weapons_data['sentry_freeze_deployed'].to_i
123
- @item_stats[:sentry_cannon_deployed] = weapons_data['sentry_cannon_deployed'].to_i
124
- @item_stats[:medkits_used] = weapons_data['medkits_used'].to_i
125
- @item_stats[:flares_used] = weapons_data['flares_used'].to_i
126
- @item_stats[:adrenaline_used] = weapons_data['adrenaline_used'].to_i
127
- @item_stats[:tesla_traps_deployed] = weapons_data['tesla_traps_deployed'].to_i
128
- @item_stats[:freeze_grenades_thrown] = weapons_data['freeze_grenades_thrown'].to_i
129
- @item_stats[:electric_armor_used] = weapons_data['electric_armor_used'].to_i
130
- @item_stats[:healgun_heals] = weapons_data['healgun_heals'].to_i
131
- @item_stats[:healgun_heals_self] = weapons_data['healgun_heals_self'].to_i
132
- @item_stats[:healbeacon_heals] = weapons_data['healbeacon_heals'].to_i
133
- @item_stats[:healbeacon_heals_self] = weapons_data['healbeacon_heals_self'].to_i
134
- @item_stats[:damage_amps_used] = weapons_data['damage_amps_used'].to_i
135
- @item_stats[:healbeacons_deployed] = weapons_data['healbeacons_deployed'].to_i
136
- @item_stats[:healbeacon_heals_pct] = weapons_data['healbeacon_heals_pct'].to_f
137
- @item_stats[:healgun_heals_pct] = weapons_data['healgun_heals_pct'].to_f
138
- @item_stats[:healbeacon_heals_pct_self] = weapons_data['healbeacon_heals_pct_self'].to_f
139
- @item_stats[:healgun_heals_pct_self] = weapons_data['healgun_heals_pct_self'].to_f
119
+ @item_stats = {
120
+ :ammo_deployed => weapons_data['ammo_deployed'].to_i,
121
+ :sentryguns_deployed => weapons_data['sentryguns_deployed'].to_i,
122
+ :sentry_flamers_deployed => weapons_data['sentry_flamers_deployed'].to_i,
123
+ :sentry_freeze_deployed => weapons_data['sentry_freeze_deployed'].to_i,
124
+ :sentry_cannon_deployed => weapons_data['sentry_cannon_deployed'].to_i,
125
+ :medkits_used => weapons_data['medkits_used'].to_i,
126
+ :flares_used => weapons_data['flares_used'].to_i,
127
+ :adrenaline_used => weapons_data['adrenaline_used'].to_i,
128
+ :tesla_traps_deployed => weapons_data['tesla_traps_deployed'].to_i,
129
+ :freeze_grenades_thrown => weapons_data['freeze_grenades_thrown'].to_i,
130
+ :electric_armor_used => weapons_data['electric_armor_used'].to_i,
131
+ :healgun_heals => weapons_data['healgun_heals'].to_i,
132
+ :healgun_heals_self => weapons_data['healgun_heals_self'].to_i,
133
+ :healbeacon_heals => weapons_data['healbeacon_heals'].to_i,
134
+ :healbeacon_heals_self => weapons_data['healbeacon_heals_self'].to_i,
135
+ :damage_amps_used => weapons_data['damage_amps_used'].to_i,
136
+ :healbeacons_deployed => weapons_data['healbeacons_deployed'].to_i,
137
+ :healbeacon_heals_pct => weapons_data['healbeacon_heals_pct'].to_f,
138
+ :healgun_heals_pct => weapons_data['healgun_heals_pct'].to_f,
139
+ :healbeacon_heals_pct_self => weapons_data['healbeacon_heals_pct_self'].to_f,
140
+ :healgun_heals_pct_self => weapons_data['healgun_heals_pct_self'].to_f
141
+ }
140
142
  end
141
143
 
142
144
  @item_stats