forked from github/game-off-2012
-
Notifications
You must be signed in to change notification settings - Fork 1
/
energybar.js
45 lines (35 loc) · 1.09 KB
/
energybar.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
var EnergyBar = function (game, energy, force) {
this.game = game;
this.energyNode = energy;
this.forceNode = force;
};
EnergyBar.prototype.reset = function () {
this.energy = 0;
this.force = 0;
this.pressed = false;
};
EnergyBar.prototype.tick = function (multiplier) {
var energyMultiplier;
energyMultiplier = multiplier / Math.log(Math.max(2, this.game.nodes.length));
this.energy = Math.min(1, this.energy + energyMultiplier * 0.5 * this.game.difficulty);
if (this.pressed) {
this.force = Math.min(this.energy, this.force + multiplier);
}
};
EnergyBar.prototype.draw = function () {
this.forceNode.style.height = Math.round(this.force * 100).toString() + '%';
this.energyNode.style.height = Math.round(this.energy * 100).toString() + '%';
};
EnergyBar.prototype.start = function () {
this.pressed = true;
};
EnergyBar.prototype.stop = function () {
var force = Math.max(0.2, this.force);
this.pressed = false;
this.force = 0;
if (this.energy < 0.15) {
return 0;
}
this.energy -= force;
return force;
};