FEZ Skill Counter

スキル判定アルゴリズム

概要

スキルの使用はPowの減少によって判断する。
しかし、Powの減少はスキルの使用以外にパワーブレイク(以下パワブレ)によっても減少する。
そこで、Powの減少がパワブレによるものかどうか判定し、
パワブレによるPow減少でなければスキル使用と判断する。

前提

  1. 複数Pow減少デバフが存在しないものとする
    → Pow減少デバフは現状スカウトのパワブレのみのため
  2. Pow回復は徐々に増加する
    → 50から65に回復するとき、53, 55, 60…といった具合に増加する。
    → 増加量は取得するフレームの間隔に依存するため一定ではない(処理時間に依存するため)。
  3. Pow減少(スキル使用・パワブレ)は一気に減少する
    → 回復と異なり減少は一気に行われる

アルゴリズム

前回と今回のPowBuffの一覧を比較し、新たにパワブレが追加されていれば、
前回から今回までの間にパワブレをもらったということになる。
パワブレはスキルをもらってから、3, 6, 9 … 24秒経過後(3秒間隔)でPowが減少するため、
1回目のPow減少は “前回のタイムスタンプ + 3秒後”
2回目のPow減少は “前回のタイムスタンプ + 6秒後”



がそれぞれ最短のPow減少タイミングとなる。

パワブレをもらったタイミングで減少する最短タイミングをリストに追加し、
以降はその最短タイミングを超えていないかチェックし、
超えていればその時点でのPow減少がパワブレによるものと判定する。

考慮事項

Pow回復とデバフの同時発生

Pow回復中に、パワブレまたはスキル使用によるPow減少が起きると、
本来 20 消費するはずのところが、回復によって 15 といったことになりうる。
フレーム取得タイミングが一定でないため、回復量も一定ではない。
そのため、1フレーム内で回復しうる閾値を設け、その閾値以下であればデバフによるPow消費と判断する。
なお、上記にさらにスキル使用によるPow消費が同時に発生しうるが、
3つが重なることは滅多にないため考慮しない。

パニッシングストライク

パニはスキル発動と同時に1つ上のスキルが選択状態となる。
そのため、スキル発動時に選択中のスキルの消費Powが減ったか確認するという判断では、
1つ上のスキルの消費Powで判定してしまうことになる。
そのため、パニは特殊ケースとして1つ前に選択状態だったスキルを確認して判定する。