Class: Australium::Game
- Inherits:
-
Object
- Object
- Australium::Game
- Defined in:
- lib/australium/game.rb
Overview
Represents a full game of TF2, comprised of individual Events.
Instance Attribute Summary collapse
-
#events ⇒ Object
readonly
Returns the value of attribute events.
Event filters collapse
-
#chat_messages ⇒ Array<PlayerSay>
Returns all PlayerSay events.
-
#connects ⇒ Array<PlayerConnect>
Returns all PlayerConnect events.
-
#disconnects ⇒ Array<PlayerDisconnect>
Returns all PlayerDisconnect events.
-
#kills ⇒ Array<PlayerKill>
Returns all PlayerKill events.
-
#name_changes ⇒ Array<PlayerNameChange>
Returns all PlayerNameChange events.
-
#role_changes ⇒ Array<PlayerRoleChange>
Returns all PlayerRoleChange events.
-
#suicides ⇒ Array<PlayerSuicide>
Returns all PlayerSuicide events.
-
#team_joins ⇒ Array<PlayerJoinTeam>
Returns all PlayerJoinTeam events.
-
#triggers ⇒ Array<Trigger>
Returns all Trigger events.
Instance Method Summary collapse
-
#initialize(events) ⇒ Game
constructor
A new instance of Game.
-
#inspect ⇒ String
Hide instance variables from #inspect to prevent clutter on interactive terminals.
-
#map_name ⇒ String
Returns the name of the map that was played.
-
#players ⇒ Array<Player>
Returns an array of all Players who connected to the server during this game.
Constructor Details
#initialize(events) ⇒ Game
Returns a new instance of Game.
24 25 26 |
# File 'lib/australium/game.rb', line 24 def initialize(events) @events = events end |
Instance Attribute Details
#events ⇒ Object (readonly)
Returns the value of attribute events.
21 22 23 |
# File 'lib/australium/game.rb', line 21 def events @events end |
Instance Method Details
#chat_messages ⇒ Array<PlayerSay>
Returns all PlayerSay events.
51 |
# File 'lib/australium/game.rb', line 51 event_selector :chat_messages, PlayerSay |
#connects ⇒ Array<PlayerConnect>
Returns all PlayerConnect events.
45 |
# File 'lib/australium/game.rb', line 45 event_selector :connects, PlayerConnect |
#disconnects ⇒ Array<PlayerDisconnect>
Returns all PlayerDisconnect events.
46 |
# File 'lib/australium/game.rb', line 46 event_selector :disconnects, PlayerDisconnect |
#inspect ⇒ String
Hide instance variables from #inspect to prevent clutter on interactive terminals.
58 |
# File 'lib/australium/game.rb', line 58 def inspect ; self.to_s end |
#kills ⇒ Array<PlayerKill>
Returns all PlayerKill events.
49 |
# File 'lib/australium/game.rb', line 49 event_selector :kills, PlayerKill |
#map_name ⇒ String
Returns the name of the map that was played.
40 41 42 |
# File 'lib/australium/game.rb', line 40 def map_name @events.select { |e| e.is_a?(MapStart) }.last.map_name end |
#name_changes ⇒ Array<PlayerNameChange>
Returns all PlayerNameChange events.
50 |
# File 'lib/australium/game.rb', line 50 event_selector :name_changes, PlayerNameChange |
#players ⇒ Array<Player>
Returns an array of all Players who connected to the server during this game. Caches the return value after the first call.
31 32 33 34 35 36 |
# File 'lib/australium/game.rb', line 31 def players @players ||= @events.reverse.each_with_object([]) do |event, all_players| break all_players if event.state.nil? || event.state.players.nil? all_players.concat event.state.players.reject { |p| all_players.include?(p) } end end |
#role_changes ⇒ Array<PlayerRoleChange>
Returns all PlayerRoleChange events.
47 |
# File 'lib/australium/game.rb', line 47 event_selector :role_changes, PlayerRoleChange |
#suicides ⇒ Array<PlayerSuicide>
Returns all PlayerSuicide events.
52 |
# File 'lib/australium/game.rb', line 52 event_selector :suicides, PlayerSuicide |
#team_joins ⇒ Array<PlayerJoinTeam>
Returns all PlayerJoinTeam events.
48 |
# File 'lib/australium/game.rb', line 48 event_selector :team_joins, PlayerJoinTeam |