Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
FogNetwork
GitHub Repository: FogNetwork/Tsunami
Path: blob/main/public/games/files/hextris/js/comboTimer.js
1036 views
1
function drawTimer() {
2
if(gameState==1){
3
var leftVertexes = [];
4
var rightVertexes = [];
5
if(MainHex.ct - MainHex.lastCombo < settings.comboTime){
6
for(var i=0;i<6;i++){
7
var done = (MainHex.ct -MainHex.lastCombo);
8
if(done<(settings.comboTime)*(5-i)*(1/6)){
9
leftVertexes.push(calcSide(i,i+1,1,1));
10
rightVertexes.push(calcSide(12-i,11-i,1,1));
11
}
12
else{
13
leftVertexes.push(calcSide(i,i+1,1-((done*6)/settings.comboTime)%(1),1));
14
rightVertexes.push(calcSide(12-i,11-i,1-((done*6)/settings.comboTime)%(1),1));
15
break;
16
}
17
}
18
}
19
if(rightVertexes.length !== 0) drawSide(rightVertexes);
20
if(leftVertexes.length !== 0) drawSide(leftVertexes);
21
}
22
}
23
24
function calcSide(startVertex,endVertex,fraction,offset){
25
startVertex = (startVertex+offset)%12;
26
endVertex = (endVertex+offset)%12;
27
ctx.globalAlpha=1;
28
ctx.beginPath();
29
ctx.lineCap = "round";
30
31
var radius = (settings.rows * settings.blockHeight) * (2/Math.sqrt(3)) + settings.hexWidth ;
32
var halfRadius = radius/2;
33
var triHeight = radius *(Math.sqrt(3)/2);
34
var Vertexes =[
35
[(halfRadius*3)/2,triHeight/2],
36
[radius,0],
37
[(halfRadius*3)/2,-triHeight/2],
38
[halfRadius,-triHeight],
39
[0,-triHeight],
40
[-halfRadius,-triHeight],
41
[-(halfRadius*3)/2,-triHeight/2],
42
[-radius,0],
43
[-(halfRadius*3)/2,triHeight/2],
44
[-halfRadius,triHeight],
45
[0,triHeight],
46
[halfRadius,triHeight]
47
].reverse();
48
var startX =trueCanvas.width/2 + Vertexes[startVertex][0];
49
var startY =trueCanvas.height/2 + Vertexes[startVertex][1];
50
var endX = trueCanvas.width/2 + Vertexes[endVertex][0];
51
var endY = trueCanvas.height/2 + Vertexes[endVertex][1];
52
return [[startX,startY],[((endX-startX)*fraction)+startX,((endY-startY)*fraction)+startY]];
53
}
54
function drawSide(vertexes){
55
if (gameState === 0) {
56
ctx.strokeStyle = hexColorsToTintedColors[MainHex.lastColorScored];
57
} else {
58
ctx.strokeStyle = MainHex.lastColorScored;
59
}
60
ctx.lineWidth =4*settings.scale;
61
ctx.moveTo(vertexes[0][0][0],vertexes[0][0][1]);
62
ctx.lineTo(vertexes[0][1][0],vertexes[0][1][1]);
63
for(var i=1;i<vertexes.length;i++){
64
ctx.lineTo(vertexes[i][1][0],vertexes[i][1][1]);
65
ctx.moveTo(vertexes[i][1][0],vertexes[i][1][1]);
66
}
67
ctx.closePath();
68
ctx.fill();
69
ctx.stroke();
70
71
}
72
73