UnmappedIsland ソースリファレンス - v0.1.0
    検索インデックスを準備しています...

    クラス TickProgress

    時間を消費するアクションの、時間経過の見せ方(CardInteraction.md 7節 時間経過のドーナツグラフ)。

    ゲーム内の変化が起きるのはtick境界だけなので、実時間を一定の速さで滑らかに映すのではなく、 区切りごとに一拍置く。区切り(目盛り)は絶対時刻がminutes_per_tickの倍数になる瞬間で、 WorldSession.advanceWorldTimeが実際にtickを回す瞬間と一致する。開始時刻が境界に乗っていなければ 最初の区切りだけ短くなり、durationが倍数でなければ最後の区切りだけ短くなる。

    目盛りへ向かう間は一定の速さでは動かさず、加速して動き出し減速して止まる(eased)。一拍置く作りは そのままなので、目盛りごとに動きが切れて見えないようにするのは、その両端の形だけが受け持つ。

    ドーナツグラフの塗り(ratioAt)と時計の刻み(steppedMinutesAt)が食い違わないよう、どちらも 同じ区切りから導く。

    インデックス
    marks: readonly number[]

    開始からの経過分で表した目盛りの位置。末尾は必ずtotalMinutes(そこで塗り切る)。

    totalMinutes: number

    開始からの経過分。これを100%として塗る。

    • 次のtick境界から順に、経過し切るまでの目盛りを並べる(末尾は経過し切る位置そのもの)。 開始時刻が境界に乗っていれば最初の目盛りはtickMinutes後、乗っていなければ端数の残りだけ後。

      パラメータ

      • totalMinutes: number
      • fromMinutes: number
      • tickMinutes: number

      戻り値 number[]

    • 経過した分に対する、ドーナツグラフの塗り(0〜1)。

      パラメータ

      • elapsedMinutes: number

      戻り値 number

    • 経過分が入っている区切りと、その中での進み具合(0〜1)。

      パラメータ

      • elapsedMinutes: number

      戻り値 { end: number; start: number; within: number }

    • 経過した分に対する、時計へ出す「開始からの経過分」。塗りが次の目盛りへ届くまでは手前の目盛りの ままで、届いた瞬間にその目盛りの時刻へ飛ぶ。

      パラメータ

      • elapsedMinutes: number

      戻り値 number