Class: AlienSwarmStats
- Defined in:
- lib/steam/community/alien_swarm/alien_swarm_stats.rb
Overview
The AlienSwarmStats class represents the game statistics for a single user in Alien Swarm
Constant Summary collapse
- BASE_URL =
'http://steamcommunity.com/public/images/gamestats/swarm/'
- WEAPONS =
[ 'Autogun', 'Cannon_Sentry', 'Chainsaw', 'Flamer', 'Grenade_Launcher', 'Hand_Grenades', 'Hornet_Barrage', 'Incendiary_Sentry', 'Laser_Mines', 'Marskman_Rifle', 'Minigun', 'Mining_Laser', 'PDW', 'Pistol', 'Prototype_Rifle', 'Rail_Rifle', 'Rifle', 'Rifle_Grenade', 'Sentry_Gun', 'Shotgun', 'Tesla_Cannon', 'Vindicator', 'Vindicator_Grenade' ]
Instance Attribute Summary collapse
-
#lifetime_stats ⇒ Object
readonly
Returns the value of attribute lifetime_stats.
Attributes inherited from GameStats
#app_id, #custom_url, #game_friendly_name, #game_name, #hours_played, #privacy_state, #steam_id64
Instance Method Summary collapse
-
#favorites ⇒ Object
Returns a Hash of favorites for this user like weapons and marine.
-
#initialize(steam_id) ⇒ AlienSwarmStats
constructor
Creates an AlienSwarmStats object by calling the super constructor with the game name “alienswarm”.
-
#item_stats ⇒ Object
Returns a Hash of item stats for this user like ammo deployed and medkits used.
-
#mission_stats ⇒ Object
Returns a Hash of AlienSwarmMission for this user containing all Alien Swarm missions.
-
#weapon_stats ⇒ Object
Returns a Hash of AlienSwarmWeapon for this user containing all Alien Swarm weapons.
Methods inherited from GameStats
#achievements, #achievements_done, #achievements_percentage, #base_url, create_game_stats, #public?
Constructor Details
#initialize(steam_id) ⇒ AlienSwarmStats
Creates an AlienSwarmStats object by calling the super constructor with the game name “alienswarm”
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/steam/community/alien_swarm/alien_swarm_stats.rb', line 26 def initialize(steam_id) super steam_id, 'alienswarm' if public? @hours_played = @xml_data.elements['stats/lifetime/timeplayed'].text @lifetime_stats = {} @lifetime_stats[:accuracy] = @xml_data.elements['stats/lifetime/accuracy'].text.to_f @lifetime_stats[:aliens_burned] = @xml_data.elements['stats/lifetime/aliensburned'].text.to_i @lifetime_stats[:aliens_killed] = @xml_data.elements['stats/lifetime/alienskilled'].text.to_i @lifetime_stats[:campaigns] = @xml_data.elements['stats/lifetime/campaigns'].text.to_i @lifetime_stats[:damage_taken] = @xml_data.elements['stats/lifetime/damagetaken'].text.to_i @lifetime_stats[:experience] = @xml_data.elements['stats/lifetime/experience'].text.to_i @lifetime_stats[:experience_required] = @xml_data.elements['stats/lifetime/xprequired'].text.to_i @lifetime_stats[:fast_hacks] = @xml_data.elements['stats/lifetime/fasthacks'].text.to_i @lifetime_stats[:friendly_fire] = @xml_data.elements['stats/lifetime/friendlyfire'].text.to_i @lifetime_stats[:games_successful] = @xml_data.elements['stats/lifetime/gamessuccess'].text.to_i @lifetime_stats[:healing] = @xml_data.elements['stats/lifetime/healing'].text.to_i @lifetime_stats[:kills_per_hour] = @xml_data.elements['stats/lifetime/killsperhour'].text.to_f @lifetime_stats[:level] = @xml_data.elements['stats/lifetime/level'].text.to_i @lifetime_stats[:promotion] = @xml_data.elements['stats/lifetime/promotion'].text.to_i @lifetime_stats[:promotion_img] = BASE_URL + @xml_data.elements['stats/lifetime/promotionpic'].text if @lifetime_stats[:promotion] > 0 @lifetime_stats[:next_unlock] = @xml_data.elements['stats/lifetime/nextunlock'].text @lifetime_stats[:next_unlock_img] = BASE_URL + @xml_data.elements['stats/lifetime/nextunlockimg'].text @lifetime_stats[:shots_fired] = @xml_data.elements['stats/lifetime/shotsfired'].text.to_i @lifetime_stats[:total_games] = @xml_data.elements['stats/lifetime/totalgames'].text.to_i @lifetime_stats[:games_successful_percentage] = (@lifetime_stats[:total_games] > 0) ? @lifetime_stats[:games_successful].to_f / @lifetime_stats[:total_games] : 0; end end |
Instance Attribute Details
#lifetime_stats ⇒ Object (readonly)
Returns the value of attribute lifetime_stats.
13 14 15 |
# File 'lib/steam/community/alien_swarm/alien_swarm_stats.rb', line 13 def lifetime_stats @lifetime_stats end |
Instance Method Details
#favorites ⇒ Object
Returns a Hash of favorites for this user like weapons and marine. If the favorites haven’t been parsed already, parsing is done now.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/steam/community/alien_swarm/alien_swarm_stats.rb', line 59 def favorites return unless public? if @favorites.nil? @favorites = {} @favorites[:class] = @xml_data.elements['stats/favorites/class'].text @favorites[:class_img] = @xml_data.elements['stats/favorites/classimg'].text @favorites[:class_percentage] = @xml_data.elements['stats/favorites/classpct'].text.to_f @favorites[:difficulty] = @xml_data.elements['stats/favorites/difficulty'].text @favorites[:difficulty_percentage] = @xml_data.elements['stats/favorites/difficultypct'].text.to_f @favorites[:extra] = @xml_data.elements['stats/favorites/extra'].text @favorites[:extra_img] = @xml_data.elements['stats/favorites/extraimg'].text @favorites[:extra_percentage] = @xml_data.elements['stats/favorites/extrapct'].text.to_f @favorites[:marine] = @xml_data.elements['stats/favorites/marine'].text @favorites[:marine_img] = @xml_data.elements['stats/favorites/marineimg'].text @favorites[:marine_percentage] = @xml_data.elements['stats/favorites/marinepct'].text.to_f @favorites[:mission] = @xml_data.elements['stats/favorites/mission'].text @favorites[:mission_img] = @xml_data.elements['stats/favorites/missionimg'].text @favorites[:mission_percentage] = @xml_data.elements['stats/favorites/missionpct'].text.to_f @favorites[:primary_weapon] = @xml_data.elements['stats/favorites/primary'].text @favorites[:primary_weapon_img] = @xml_data.elements['stats/favorites/primaryimg'].text @favorites[:primary_weapon_percentage] = @xml_data.elements['stats/favorites/primarypct'].text.to_f @favorites[:secondary_weapon] = @xml_data.elements['stats/favorites/secondary'].text @favorites[:secondary_weapon_img] = @xml_data.elements['stats/favorites/secondaryimg'].text @favorites[:secondary_weapon_percentage] = @xml_data.elements['stats/favorites/secondarypct'].text.to_f end @favorites end |
#item_stats ⇒ Object
Returns a Hash of item stats for this user like ammo deployed and medkits used. If the items haven’t been parsed already, parsing is done now.
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/steam/community/alien_swarm/alien_swarm_stats.rb', line 91 def item_stats return unless public? if @item_stats.nil? @item_stats = {} @item_stats[:ammo_deployed] = @xml_data.elements['stats/weapons/ammo_deployed'].text.to_i @item_stats[:sentryguns_deployed] = @xml_data.elements['stats/weapons/sentryguns_deployed'].text.to_i @item_stats[:sentry_flamers_deployed] = @xml_data.elements['stats/weapons/sentry_flamers_deployed'].text.to_i @item_stats[:sentry_freeze_deployed] = @xml_data.elements['stats/weapons/sentry_freeze_deployed'].text.to_i @item_stats[:sentry_cannon_deployed] = @xml_data.elements['stats/weapons/sentry_cannon_deployed'].text.to_i @item_stats[:medkits_used] = @xml_data.elements['stats/weapons/medkits_used'].text.to_i @item_stats[:flares_used] = @xml_data.elements['stats/weapons/flares_used'].text.to_i @item_stats[:adrenaline_used] = @xml_data.elements['stats/weapons/adrenaline_used'].text.to_i @item_stats[:tesla_traps_deployed] = @xml_data.elements['stats/weapons/tesla_traps_deployed'].text.to_i @item_stats[:freeze_grenades_thrown] = @xml_data.elements['stats/weapons/freeze_grenades_thrown'].text.to_i @item_stats[:electric_armor_used] = @xml_data.elements['stats/weapons/electric_armor_used'].text.to_i @item_stats[:healgun_heals] = @xml_data.elements['stats/weapons/healgun_heals'].text.to_i @item_stats[:healgun_heals_self] = @xml_data.elements['stats/weapons/healgun_heals_self'].text.to_i @item_stats[:healbeacon_heals] = @xml_data.elements['stats/weapons/healbeacon_heals'].text.to_i @item_stats[:healbeacon_heals_self] = @xml_data.elements['stats/weapons/healbeacon_heals_self'].text.to_i @item_stats[:damage_amps_used] = @xml_data.elements['stats/weapons/damage_amps_used'].text.to_i @item_stats[:healbeacons_deployed] = @xml_data.elements['stats/weapons/healbeacons_deployed'].text.to_i @item_stats[:healbeacon_heals_pct] = @xml_data.elements['stats/weapons/healbeacon_heals_pct'].text.to_f @item_stats[:healgun_heals_pct] = @xml_data.elements['stats/weapons/healgun_heals_pct'].text.to_f @item_stats[:healbeacon_heals_pct_self] = @xml_data.elements['stats/weapons/healbeacon_heals_pct_self'].text.to_f @item_stats[:healgun_heals_pct_self] = @xml_data.elements['stats/weapons/healgun_heals_pct_self'].text.to_f end @item_stats end |
#mission_stats ⇒ Object
Returns a Hash of AlienSwarmMission for this user containing all Alien Swarm missions. If the missions haven’t been parsed already, parsing is done now.
125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/steam/community/alien_swarm/alien_swarm_stats.rb', line 125 def mission_stats return unless public? if @mission_stats.nil? @mission_stats = {} @xml_data.elements.each('stats/missions/*') do |mission_data| @mission_stats[mission_data.name] = AlienSwarmMission.new(mission_data) end end @mission_stats end |
#weapon_stats ⇒ Object
Returns a Hash of AlienSwarmWeapon for this user containing all Alien Swarm weapons. If the weapons haven’t been parsed already, parsing is done now.
140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/steam/community/alien_swarm/alien_swarm_stats.rb', line 140 def weapon_stats return unless public? if @weapon_stats.nil? @weapon_stats = {} WEAPONS.each do |weapon_node| weapon_data = @xml_data.elements["stats/weapons/#{weapon_node}"] weapon = AlienSwarmWeapon.new(weapon_data) @weapon_stats[weapon.name] = weapon end end @weapon_stats end |