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
# 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)
  @target = Player.new(target_name, target_steamid, target_team) if target_name
  @value = value.to_i
  @weapon = weapon
end

Class Method Details

.attributesObject



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

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

.regexObject



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

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



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

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

.regex_realdamageObject



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

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

.regex_weaponObject



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

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