Sha256: 2f447c7ae57a3435c576703264b366680665a8ec2826ff08adff96b7081d0d1b
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
# frozen_string_literal: true module Purtea module FFLogs # Describes a fight entry in FF Logs. class Fight ISO_FORMAT = '%Y-%m-%dT%H:%M:%S%:z' attr_reader :id, :encounter_id, :zone_id, :name, :zone_name, :difficulty, :boss_percentage, :fight_percentage, :start_at, :end_at, :duration # rubocop:disable Metrics/AbcSize def initialize(data, report_start_ms) @id = data.id @encounter_id = data.encounter_id @zone_id = data.game_zone.id @name = data.name @zone_name = data.game_zone.name @difficulty = data.difficulty @boss_percentage = data.boss_percentage @fight_percentage = data.fight_percentage @start_at = parse_fight_timestamp report_start_ms, data.start_time @end_at = parse_fight_timestamp report_start_ms, data.end_time @kill = data.kill @duration = parse_duration @start_at, @end_at end # rubocop:enable Metrics/AbcSize def kill? @kill end def to_s start_f = start_at.strftime(ISO_FORMAT) end_f = end_at.strftime(ISO_FORMAT) duration = Time.at(end_at - start_at).utc.strftime('%H:%M:%S') kw = kill? ? 'CLEAR' : 'WIPE' "[#{@id}] #{start_f} -> #{end_f} [#{duration}] " \ "#{boss_percentage}% (#{fight_percentage}%) - #{kw}" end private def parse_fight_timestamp(report_start_ms, time) Time.at(0, report_start_ms + time, :millisecond) end def parse_duration(start_at, end_at) Time.at(end_at - start_at).utc end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
purtea-0.0.1 | lib/purtea/fflogs/fight.rb |