rot-js
Version:
A roguelike toolkit in JavaScript
26 lines (25 loc) • 720 B
JavaScript
import Scheduler from "./scheduler.js";
/**
* @class Speed-based scheduler
*/
export default class Speed extends Scheduler {
/**
* @param {object} item anything with "getSpeed" method
* @param {bool} repeat
* @param {number} [time=1/item.getSpeed()]
* @see ROT.Scheduler#add
*/
add(item, repeat, time) {
this._queue.add(item, time !== undefined ? time : 1 / item.getSpeed());
return super.add(item, repeat);
}
/**
* @see ROT.Scheduler#next
*/
next() {
if (this._current && this._repeat.indexOf(this._current) != -1) {
this._queue.add(this._current, 1 / this._current.getSpeed());
}
return super.next();
}
}