module jg {
	export class GameTimer {
		tick:number;
		wait:number;
		trigger:Trigger;

		constructor(wait:number) {
			this.wait = wait;
			this.tick = 0;
			this.trigger = new Trigger();
		}

		tryFire(t:number) {
			this.tick += t;
			if (this.wait <= this.tick)
				this.fire(t);
		}

		fire(t:number) {
			// GameTimerは、あえて正確を度外視した大体の処理
			// ちゃんと差分とる場合はこう。 this.tick -= this.wait
			this.tick = 0;
			// 起動が保証されないfastFire
			this.trigger.fastFire(t);
		}
	}
}