|
1 | 1 | class InventoryBar |
2 | | - constructor: (options)-> |
3 | | - @boxSize=options.boxSize |
4 | | - @div=options.div |
5 | | - @padding=options.padding |
6 | | - @boxes=9 |
7 | | - @activeBox=1 |
8 | | - document.querySelector(@div).style="position:fixed;bottom:50px;left:50%;width:#{(@boxSize+2)*@boxes}px;margin-left:-#{@boxSize*@boxes/2}px;height:#{@boxSize}px;" |
9 | | - setBox: (number,imageSrc)-> |
10 | | - if imageSrc is null |
11 | | - imageSrc = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" |
12 | | - $(".inv_box").eq(number-1).attr("src",imageSrc) |
13 | | - return |
14 | | - setFocus: (number,state)-> |
15 | | - if state |
16 | | - $(".inv_box").eq(number-1).css("background","rgba(0,0,0,0.7)") |
17 | | - $(".inv_box").eq(number-1).css("border","1px solid black") |
18 | | - else |
19 | | - $(".inv_box").eq(number-1).css("background","rgba(54,54,54,0.5)") |
20 | | - $(".inv_box").eq(number-1).css("border","1px solid #363636") |
21 | | - return |
22 | | - setFocusOnly: (number)-> |
23 | | - for i in [1..@boxes] |
24 | | - @setFocus i, i is number |
25 | | - @activeBox=number |
26 | | - return @ |
27 | | - moveBoxMinus: -> |
28 | | - if @activeBox + 1 > @boxes |
29 | | - @setFocusOnly 1 |
30 | | - else |
31 | | - @setFocusOnly @activeBox + 1 |
32 | | - return |
33 | | - moveBoxPlus: -> |
34 | | - if @activeBox - 1 is 0 |
35 | | - @setFocusOnly @boxes |
36 | | - else |
37 | | - @setFocusOnly @activeBox - 1 |
38 | | - directBoxChange: (event)-> |
39 | | - code = event.keyCode |
40 | | - if code >= 49 and code < 49 + @boxes |
41 | | - @setFocusOnly code - 48 |
42 | | - setBoxes: (images)-> |
43 | | - for i in [0..images.length-1] |
44 | | - @setBox i+1,images[i] |
45 | | - return @ |
46 | 2 | setHp: (points)-> |
| 3 | + lista={} |
47 | 4 | for i in [1..10] |
48 | | - $(".hp").eq(i-1).attr("src","assets/images/heart/black.png") |
| 5 | + lista[i-1]="empty" |
| 6 | + $(".hp").eq(i-1).removeClass("empty") |
| 7 | + $(".hp").eq(i-1).removeClass("full") |
| 8 | + $(".hp").eq(i-1).removeClass("half") |
49 | 9 | if points isnt 0 |
50 | 10 | for i in [1..(points+points%2)/2] |
51 | | - $(".hp").eq(i-1).attr("src","assets/images/heart/red.png") |
| 11 | + lista[i-1]="full" |
52 | 12 | if points%2 is 1 |
53 | | - $(".hp").eq((points+points%2)/2-1).attr("src","assets/images/heart/half.png") |
| 13 | + lista[(points+points%2)/2-1]="half" |
| 14 | + for i in [1..10] |
| 15 | + $(".hp").eq(i-1).addClass(lista[i-1]) |
54 | 16 | return |
55 | 17 | setFood: (points)-> |
| 18 | + lista={} |
56 | 19 | for i in [1..10] |
57 | | - $(".food").eq(10-i).attr("src","assets/images/hunger/black.png") |
| 20 | + lista[10-i]="empty" |
| 21 | + $(".food").eq(10-i).removeClass("empty") |
| 22 | + $(".food").eq(10-i).removeClass("full") |
| 23 | + $(".food").eq(10-i).removeClass("half") |
58 | 24 | if points isnt 0 |
59 | 25 | for i in [1..(points+points%2)/2] |
60 | | - $(".food").eq(10-i).attr("src","assets/images/hunger/full.png") |
| 26 | + lista[10-i]="full" |
61 | 27 | if points%2 is 1 |
62 | | - $(".food").eq(10-(points+points%2)/2).attr("src","assets/images/hunger/half.png") |
| 28 | + lista[10-(points+points%2)/2]="half" |
| 29 | + for i in [1..10] |
| 30 | + $(".food").eq(10-i).addClass(lista[10-i]) |
63 | 31 | return |
| 32 | + setXp: (level,progress)-> |
| 33 | + $(".player_xp").text level |
| 34 | + $(".xp_bar").css "width","#{500*progress}px" |
64 | 35 | listen: -> |
65 | 36 | _this=@ |
66 | | - $(window).on 'wheel', (event) -> |
67 | | - if event.originalEvent.deltaY < 0 |
68 | | - _this.moveBoxPlus() |
69 | | - else |
70 | | - _this.moveBoxMinus() |
71 | | - $(document).keydown (z) -> |
72 | | - _this.directBoxChange(z) |
| 37 | + # $(window).on 'wheel', (event) -> |
| 38 | + # if event.originalEvent.deltaY < 0 |
| 39 | + # _this.moveBoxPlus() |
| 40 | + # else |
| 41 | + # _this.moveBoxMinus() |
| 42 | + # $(document).keydown (z) -> |
| 43 | + # _this.directBoxChange(z) |
73 | 44 | return @ |
74 | 45 | export {InventoryBar} |
0 commit comments