Class: TF2LineParser::Events::Damage

Inherits:
Event
  • Object
show all
Defined in:
lib/tf2_line_parser/events/damage.rb

Direct Known Subclasses

Airshot, HeadshotDamage

Instance Attribute Summary

Attributes inherited from Event

#airshot, #cap_name, #cap_number, #customkill, #healing, #item, #length, #message, #method, #player, #role, #score, #target, #team, #time, #type, #ubercharge, #unknown, #value, #weapon

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Event

#parse_time, regex_cap, regex_console, regex_message, regex_player, regex_results, regex_target, regex_time, time_format, types

Constructor Details

#initialize(time, player_name, player_steamid, player_team, target_name, target_steamid, target_team, value, weapon) ⇒ Damage

Returns a new instance of Damage.



27
28
29
30
31
32
33
34
35
# File 'lib/tf2_line_parser/events/damage.rb', line 27

def initialize(time, player_name, player_steamid, player_team, target_name, target_steamid, target_team, value, weapon)
  @time = parse_time(time)
  @player = Player.new(player_name, player_steamid, player_team)
  if target_name
    @target = Player.new(target_name, target_steamid, target_team)
  end
  @value = value.to_i
  @weapon = weapon
end

Class Method Details

.attributesObject



23
24
25
# File 'lib/tf2_line_parser/events/damage.rb', line 23

def self.attributes
  @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :target_nick, :target_steamid, :target_team, :value, :weapon]
end

.regexObject



7
8
9
# File 'lib/tf2_line_parser/events/damage.rb', line 7

def self.regex
  @regex ||= /#{regex_time} #{regex_player} triggered "damage" #{regex_damage_against}\(damage "(?'value'\d+)"\)(?:( #{regex_realdamage})?( #{regex_weapon})?)$/.freeze
end

.regex_damage_againstObject



11
12
13
# File 'lib/tf2_line_parser/events/damage.rb', line 11

def self.regex_damage_against
  @regex_damage_against ||= /(against #{regex_target} )?/.freeze
end

.regex_realdamageObject



15
16
17
# File 'lib/tf2_line_parser/events/damage.rb', line 15

def self.regex_realdamage
  @regex_realdamage ||= /(\(realdamage "(?'realdamage'\w*)"\))?/.freeze
end

.regex_weaponObject



19
20
21
# File 'lib/tf2_line_parser/events/damage.rb', line 19

def self.regex_weapon
  @regex_weapon ||= /(\(weapon "(?'weapon'\w*)"\))?/.freeze
end