Lyrianalyzerの話

これなに

実践でダメージ周りの分析したいってことで開発しているツール

仕様

データ構造

Background.jsでchrome.storage.localに保存される(後述)。

  • RaidHistoryList
    • リスト表示用のraid_id一覧
    • 基本的にはRaidInfoから情報を引っ張るはず
  • RaidInfo_{raid_id}
    • 敵の名前とか編成が入ってる
  • RaidDetail_{raid_id}
    • 実際の戦いの情報
    • 具体的にはArrayでターン毎の情報が含まれる
    • ターン毎の情報については後述

situation, 再現情報

  • character(Array), キャラクターごと
    • health, 味方HP
    • ultGauge, 奥義ゲージ
    • ct(Array), アビCT
  • summonCt(Array), 石CT
  • potion, ポーション(未定)
  • boss(Array) 敵
    • healthPercentage, 敵HP%
    • modeGauge, MODEゲージ
    • ct, 敵CT

ターン毎の情報

  • ability(Array)
    • from, 誰が発動させたか
    • name, アビリティ名
    • damage, ダメージ
    • heal, 回復
    • デバフやバフは追跡できなさそうなので放置
    • situation, アビ後の状況
  • attack(Array)
    • from, 誰の攻撃か
    • damage(Array), 連撃ごとにダメージ
      • base, 基本ダメージ
      • additional(Array) 追撃ダメージ
    • ultDamage, 奥義ダメージ
    • ultAdditionalDamage 奥義追加ダメージ(未定)
    • chainBurst, チェンバ(未定)
    • ability, トリガ系アビ(未定)
    • situation, 殴り終えた時の状況

読み書き

chrome.storageの仕様的にCreateではなくUpdateとReadの実装をする

  • key: RaidHistoryList
    • addRaidHistoryList(newRaidId)
    • getRaidHistoryList()
  • key: RaidInfo_{raid_id}
    • addRaidInfo(startObject)
    • getRaidInfo(raidId)
  • key: RaidDetail_{raid_id}
    • addRaidDetail(startObject |abilityObject | attackObject)
    • getRaidDetail(raidId)

分析

lyrianalyzer.htmlで確認できるやつ

  • キャラクター別ダメージ分析
    • 総アビリティダメージ
    • 総通常攻撃ダメージ
      • 総追撃ダメージ
      • 平均連撃回数
    • 総奥義ダメージ
  • ターン別行動分析(気が向いたら実装する)