-
Notifications
You must be signed in to change notification settings - Fork 2
/
experience_bar.js
83 lines (73 loc) · 1.82 KB
/
experience_bar.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
class Experience{
constructor(){
this.level = 1;
this.maxLevel = 20;
this.amount = 0;
this.needed = 100;
this.pickUpAmount = 25;
this.width = 0;
this.levelUps = 0;
}
/**
* @returns the current level
*/
getLevel(){return this.level;}
getLevelUps(){return this.levelUps}
setLevelUps(num){this.levelUps = num }
/**
* Increases the experience bar by the given amount
* @param {Int16Array} amount - the amount of experience gained
*/
updateExp(){
}
increase(amount){
let toggle = false;
if(this.level <this.maxLevel){
this.amount += amount;
while(this.amount >= this.needed){
this.level++;
this.levelUps++;
this.amount = this.amount -this.needed;
toggle = true
print("entering level up state")
state.levelingup()
}
if(toggle)
this.#resetLevel()
}
}
#resetLevel(){
this.width = 0;
this.needed *= 1.50;
}
/**
* draws the experience bar to the screen
*/
draw(){
let percentneeded = this.amount/this.needed;
this.width = width * percentneeded;
push()
rectMode(CORNER)
fill('rgb(173, 216, 230)');
rect(0,10,width,10)
pop()
push()
rectMode(CORNER)
fill('rgb(0,255,0)');
rect(0,10,this.width,10)
pop()
}
test_increase(){
if(kb.presses(' ')){
this.increase()
}
}
reset(){
this.level = 1;
this.maxLevel = 20;
this.amount = 0;
this.needed = 100;
this.pickUpAmount = 25;
this.width = 0;
}
};