Newer
Older
lostmynuts / shared / js / Engine / Utils / SimpleTimeRemaining.js
Engine.SimpleTimeRemaining = class
{
	constructor(seconds /*int*/)
	{
		this.expireTimeMS = 0;
		this.initialSecondsRemaining = 0;
		this.timeRemaining = seconds;
	}

	//Time Remaining in Seconds.
	get timeRemaining()
	{
		return Math.max(0, (this.expireTimeMS - Engine.Utils.getTimer()) / 1000);
	}
	set timeRemaining(value)
	{
		this.initialSecondsRemaining = value;
		this.expireTimeMS = Engine.Utils.getTimer() + value * 1000;
	}

	// if you get the time Remaining of a bunch of items in a list,
	// the items after will have less time remaining because of the processing time
	// this happens for week 10 of challenges
	// so pass in what the current time to measure is.
	getTimeRemaining(currentTime)
	{
		return Math.max(0, (this.expireTimeMS - currentTime) / 1000);
	}

	set baseTime(value)
	{
		this.expireTimeMS = value + this.initialSecondsRemaining * 1000;
	}
}