Class: CSSStats
- Defined in:
- lib/steam/community/css/css_stats.rb
Overview
The CSSStats class represents the game statistics for a single user in Counter-Strike: Source
Constant Summary collapse
- MAPS =
[ 'cs_assault', 'cs_compound', 'cs_havana', 'cs_italy', 'cs_militia', 'cs_office', 'de_aztec', 'de_cbble', 'de_chateau', 'de_dust', 'de_dust2', 'de_inferno', 'de_nuke', 'de_piranesi', 'de_port', 'de_prodigy', 'de_tides', 'de_train' ]
- WEAPONS =
[ 'deagle', 'usp', 'glock', 'p228', 'elite', 'fiveseven', 'awp', 'ak47', 'm4a1', 'aug', 'sg552', 'sg550', 'galil', 'famas', 'scout', 'g3sg1', 'p90', 'mp5navy', 'tmp', 'mac10', 'ump45', 'm3', 'xm1014', 'm249', 'knife', 'grenade' ]
Instance Attribute Summary collapse
-
#last_match_stats ⇒ Object
readonly
Returns the value of attribute last_match_stats.
-
#total_stats ⇒ Object
readonly
Returns the value of attribute total_stats.
Attributes inherited from GameStats
#app_id, #custom_url, #game_friendly_name, #game_name, #hours_played, #privacy_state, #steam_id64
Instance Method Summary collapse
-
#initialize(steam_id) ⇒ CSSStats
constructor
Creates a CSSStats object by calling the super constructor with the game name “cs:s”.
-
#map_stats ⇒ Object
Returns a Hash of CSSMap for this user containing all Counter-Strike: Source maps.
-
#weapon_stats ⇒ Object
Returns a Hash of CSSWeapon for this user containing all Counter-Strike: Source weapons.
Methods inherited from GameStats
#achievements, #achievements_done, #achievements_percentage, #base_url, create_game_stats, #public?
Constructor Details
#initialize(steam_id) ⇒ CSSStats
Creates a CSSStats object by calling the super constructor with the game name “cs:s”
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/steam/community/css/css_stats.rb', line 27 def initialize(steam_id) super steam_id, 'cs:s' if public? @last_match_stats = {} @total_stats = {} @last_match_stats[:cost_per_kill] = @xml_data.elements['stats/lastmatch/costkill'].text.to_f @last_match_stats[:ct_wins] = @xml_data.elements['stats/lastmatch/ct_wins'].text.to_i @last_match_stats[:damage] = @xml_data.elements['stats/lastmatch/dmg'].text.to_i @last_match_stats[:deaths] = @xml_data.elements['stats/lastmatch/deaths'].text.to_i @last_match_stats[:dominations] = @xml_data.elements['stats/lastmatch/dominations'].text.to_i @last_match_stats[:favorite_weapon_id] = @xml_data.elements['stats/lastmatch/favwpnid'].text.to_i @last_match_stats[:kills] = @xml_data.elements['stats/lastmatch/kills'].text.to_i @last_match_stats[:max_players] = @xml_data.elements['stats/lastmatch/max_players'].text.to_i @last_match_stats[:money] = @xml_data.elements['stats/lastmatch/money'].text.to_i @last_match_stats[:revenges] = @xml_data.elements['stats/lastmatch/revenges'].text.to_i @last_match_stats[:stars] = @xml_data.elements['stats/lastmatch/stars'].text.to_i @last_match_stats[:t_wins] = @xml_data.elements['stats/lastmatch/t_wins'].text.to_i @last_match_stats[:wins] = @xml_data.elements['stats/lastmatch/wins'].text.to_i @total_stats[:blind_kills] = @xml_data.elements['stats/lifetime/blindkills'].text.to_i @total_stats[:bombs_defused] = @xml_data.elements['stats/lifetime/bombsdefused'].text.to_i @total_stats[:bombs_planted] = @xml_data.elements['stats/lifetime/bombsplanted'].text.to_i @total_stats[:damage] = @xml_data.elements['stats/lifetime/dmg'].text.to_i @total_stats[:deaths] = @xml_data.elements['stats/summary/deaths'].text.to_i @total_stats[:domination_overkills] = @xml_data.elements['stats/lifetime/dominationoverkills'].text.to_i @total_stats[:dominations] = @xml_data.elements['stats/lifetime/dominations'].text.to_i @total_stats[:earned_money] = @xml_data.elements['stats/lifetime/money'].text.to_i @total_stats[:enemy_weapon_kills] = @xml_data.elements['stats/lifetime/enemywpnkills'].text.to_i @total_stats[:headshots] = @xml_data.elements['stats/lifetime/headshots'].text.to_i @total_stats[:hits] = @xml_data.elements['stats/summary/shotshit'].text.to_i @total_stats[:hostages_rescued] = @xml_data.elements['stats/lifetime/hostagesrescued'].text.to_i @total_stats[:kills] = @xml_data.elements['stats/summary/kills'].text.to_i @total_stats[:knife_kills] = @xml_data.elements['stats/lifetime/knifekills'].text.to_i @total_stats[:logos_sprayed] = @xml_data.elements['stats/lifetime/decals'].text.to_i @total_stats[:nightvision_damage] = @xml_data.elements['stats/lifetime/nvgdmg'].text.to_i @total_stats[:pistol_rounds_won] = @xml_data.elements['stats/lifetime/pistolrounds'].text.to_i @total_stats[:revenges] = @xml_data.elements['stats/lifetime/revenges'].text.to_i @total_stats[:rounds_played] = @xml_data.elements['stats/summary/rounds'].text.to_i @total_stats[:rounds_won] = @xml_data.elements['stats/summary/wins'].text.to_i @total_stats[:seconds_played] = @xml_data.elements['stats/summary/timeplayed'].text.to_i @total_stats[:shots] = @xml_data.elements['stats/summary/shots'].text.to_i @total_stats[:stars] = @xml_data.elements['stats/summary/stars'].text.to_i @total_stats[:weapons_donated] = @xml_data.elements['stats/lifetime/wpndonated'].text.to_i @total_stats[:windows_broken] = @xml_data.elements['stats/lifetime/winbroken'].text.to_i @total_stats[:zoomed_sniper_kills] = @xml_data.elements['stats/lifetime/zsniperkills'].text.to_i @last_match_stats[:kdratio] = (@total_stats[:deaths] > 0) ? @last_match_stats[:kills].to_f / @last_match_stats[:deaths] : 0 @total_stats[:accuracy] = (@total_stats[:shots] > 0) ? @total_stats[:hits].to_f / @total_stats[:shots] : 0 @total_stats[:kdratio] = (@total_stats[:deaths] > 0) ? @total_stats[:kills].to_f / @total_stats[:deaths] : 0 @total_stats[:rounds_lost] = @total_stats[:rounds_played] - @total_stats[:rounds_won] end end |
Instance Attribute Details
#last_match_stats ⇒ Object (readonly)
Returns the value of attribute last_match_stats.
23 24 25 |
# File 'lib/steam/community/css/css_stats.rb', line 23 def last_match_stats @last_match_stats end |
#total_stats ⇒ Object (readonly)
Returns the value of attribute total_stats.
23 24 25 |
# File 'lib/steam/community/css/css_stats.rb', line 23 def total_stats @total_stats end |
Instance Method Details
#map_stats ⇒ Object
Returns a Hash of CSSMap for this user containing all Counter-Strike: Source maps. If the maps haven’t been parsed already, parsing is done now.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/steam/community/css/css_stats.rb', line 83 def map_stats return unless public? if @map_stats.nil? @map_stats = {} maps_data = @xml_data.elements['stats/maps'] MAPS.each do |map_name| @map_stats[map_name] = CSSMap.new(map_name, maps_data) end end @map_stats end |
#weapon_stats ⇒ Object
Returns a Hash of CSSWeapon for this user containing all Counter-Strike: Source weapons. If the weapons haven’t been parsed already, parsing is done now.
101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/steam/community/css/css_stats.rb', line 101 def weapon_stats return unless public? if @weapon_stats.nil? @weapon_stats = {} weapons_data = @xml_data.elements['stats/weapons'] WEAPONS.each do |weapon_name| @weapon_stats[weapon_name] = CSSWeapon.new(weapon_name, weapons_data) end end @weapon_stats end |