作りました。

スタミナmaxまでどれくらいかなー?とか、次イベント曲(25消費)をやるのに区切りがいいのはいつかなー
みたいなのを計算するのが面倒だったので、その辺の計算を自動でやってくれます。

使い方

初期化

スタミナ1あたりいくつ回復するかはゲームによって違うので、コンストラクタで渡します。
なお、指定は秒で行います。
stamina_calculator = new StaminaCalculator 6*60
この例ですと、6分で1スタミナ回復するゲームになります。

指定した値までの回復時間(getNextMaxStaminaTime)

現在値と指定値を渡すと、指定した値までに何秒かかるかを返します。
Maxまでどれくらいかな?とか、50になるのは何分後か?みたいな計算に使います。
stamina_calculator.getNextMaxStaminaTime(10, 60)

指定した倍数の値まで回復する時間(getMultipleRecoveryTime)

現在値とMAX値、それと倍数を渡すことで、指定した倍数になる時間を返します。
今30で、一回25消費できるから、50か75か100になる時間を知りたい…みたいな時に使います。
next_multiple_time = calc.getMultipleRecoveryTime(10, 80, 25)

結果をDateオブジェクトにする

メソッドを呼んだ時間から指定秒たった時点のDateオブジェクトを返します。
Dateオブジェクトのコンストラクタには、指定時間後のオブジェクトを作る方法が見当たらなかったので作りました。
stamina_calculator.convertToDate(second)

サンプルコード

StaminaCalculator = require('stamina-calculator').StaminaCalculator;

stamina_calculator = new StaminaCalculator 6*60

second = stamina_calculator.getNextMaxStaminaTime(10, 60)

console.log second
# 今から何秒後にスタミナが50回復するか

console.log stamina_calculator.convertToDate(second)
# 現在時刻からスタミナが50回復する時間がDateオブジェクトで帰ってくる
このエントリーをはてなブックマークに追加