forked from sent/waves
225 lines
10 KiB
JavaScript
225 lines
10 KiB
JavaScript
var rainbowGradient = canvas.createLinearGradient(302, 0, 498, 0);
|
|
rainbowGradient.addColorStop(0, "rgb(" + PLAYER_FILL_COLORS[0][0] + "," + PLAYER_FILL_COLORS[0][1] + "," + PLAYER_FILL_COLORS[0][2] + ")");
|
|
rainbowGradient.addColorStop(0 + (1 / 8), "rgb(" + PLAYER_FILL_COLORS[1][0] + "," + PLAYER_FILL_COLORS[1][1] + "," + PLAYER_FILL_COLORS[1][2] + ")");
|
|
rainbowGradient.addColorStop(0 + (2 / 8), "rgb(" + PLAYER_FILL_COLORS[2][0] + "," + PLAYER_FILL_COLORS[2][1] + "," + PLAYER_FILL_COLORS[2][2] + ")");
|
|
rainbowGradient.addColorStop(0 + (3 / 8), "rgb(" + PLAYER_FILL_COLORS[3][0] + "," + PLAYER_FILL_COLORS[3][1] + "," + PLAYER_FILL_COLORS[3][2] + ")");
|
|
rainbowGradient.addColorStop(0 + (4 / 8), "rgb(" + PLAYER_FILL_COLORS[4][0] + "," + PLAYER_FILL_COLORS[4][1] + "," + PLAYER_FILL_COLORS[4][2] + ")");
|
|
rainbowGradient.addColorStop(0 + (5 / 8), "rgb(" + PLAYER_FILL_COLORS[5][0] + "," + PLAYER_FILL_COLORS[5][1] + "," + PLAYER_FILL_COLORS[5][2] + ")");
|
|
rainbowGradient.addColorStop(0 + (6 / 8), "rgb(" + PLAYER_FILL_COLORS[6][0] + "," + PLAYER_FILL_COLORS[6][1] + "," + PLAYER_FILL_COLORS[6][2] + ")");
|
|
rainbowGradient.addColorStop(0 + (7 / 8), "rgb(" + PLAYER_FILL_COLORS[7][0] + "," + PLAYER_FILL_COLORS[7][1] + "," + PLAYER_FILL_COLORS[7][2] + ")");
|
|
rainbowGradient.addColorStop(1, "rgb(" + PLAYER_FILL_COLORS[0][0] + "," + PLAYER_FILL_COLORS[0][1] + "," + PLAYER_FILL_COLORS[0][2] + ")");
|
|
|
|
|
|
function drawIGMenu() {
|
|
if (!mobile) {
|
|
if (paused && (state == "game" || state == "intermission")) {
|
|
|
|
// bg
|
|
canvas.beginPath();
|
|
canvas.rect(0, BAR_HEIGHT, CANVAS_WIDTH, CANVAS_HEIGHT - BAR_HEIGHT * 2);
|
|
canvas.fillStyle = "rgba(0, 0, 0, " + INGAME_MENU_BG_ALPHA + ")";
|
|
canvas.fill();
|
|
|
|
// timer
|
|
canvas.fillStyle = TIMER_COLOR;
|
|
canvas.font = IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "right";
|
|
canvas.fillText(msToTime(gameTimer), CANVAS_WIDTH - 10, BAR_HEIGHT + 30);
|
|
|
|
// resume game
|
|
if (onButton("ig_resumeGame"))
|
|
canvas.fillStyle = BARS_BUTTON_HOVER_COLOR;
|
|
else
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("RESUME GAME", CANVAS_WIDTH / 2, IG_BUTTONS_TOP);
|
|
|
|
// main menu
|
|
if (onButton("ig_mainMenu"))
|
|
canvas.fillStyle = BARS_BUTTON_HOVER_COLOR;
|
|
else
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("MAIN MENU", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE);
|
|
|
|
// level select
|
|
if (onButton("ig_levelSelect"))
|
|
canvas.fillStyle = BARS_BUTTON_HOVER_COLOR;
|
|
else
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("LEVEL SELECT", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 2);
|
|
|
|
// change player color
|
|
if (onButton("ig_playerColor")) {
|
|
if (player.color == PLAYER_OUTLINE_COLORS.length) {
|
|
canvas.fillStyle = rainbowGradient;
|
|
} else {
|
|
canvas.fillStyle = "rgba(" + player.redFill + ", " + player.greenFill + ", " + player.blueFill + ", 1)";
|
|
}
|
|
} else {
|
|
canvas.fillStyle = "white";
|
|
}
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("PLAYER COLOR", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 3);
|
|
|
|
// mute SFX
|
|
if (onButton("ig_muteSFX"))
|
|
canvas.fillStyle = BARS_BUTTON_HOVER_COLOR;
|
|
else
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
if (muteSFX)
|
|
canvas.fillText("UNMUTE SFX", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 4);
|
|
else
|
|
canvas.fillText("MUTE SFX", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 4);
|
|
|
|
// mute music
|
|
if (onButton("ig_muteMusic"))
|
|
canvas.fillStyle = BARS_BUTTON_HOVER_COLOR;
|
|
else
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
if (muteMusic)
|
|
canvas.fillText("UNMUTE MUSIC", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 5);
|
|
else
|
|
canvas.fillText("MUTE MUSIC", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 5);
|
|
|
|
// player bouncing
|
|
if (onButton("ig_playerBouncing"))
|
|
canvas.fillStyle = BARS_BUTTON_HOVER_COLOR;
|
|
else
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
if (bouncingEnabled)
|
|
canvas.fillText("DISABLE PLAYER BOUNCING", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 6);
|
|
else
|
|
canvas.fillText("ENABLE PLAYER BOUNCING", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 6);
|
|
|
|
// coolmath games
|
|
/*
|
|
if (onButton("ig_coolmathGames"))
|
|
canvas.fillStyle = BARS_BUTTON_HOVER_COLOR;
|
|
else
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("COOLMATH GAMES", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 7);
|
|
*/
|
|
|
|
// stephen critoph
|
|
//if (onButton("ig_stephenCritoph"))
|
|
// canvas.fillStyle = BARS_BUTTON_HOVER_COLOR;
|
|
//else
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + IG_BTN_TEXT_SIZE + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("BY: STEPHEN CRITOPH", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 7);
|
|
}
|
|
} else {
|
|
if (paused && (state == "game" || state == "intermission")) {
|
|
|
|
// bg
|
|
canvas.beginPath();
|
|
canvas.rect(os.x, cwh(BAR_HEIGHT) + os.y, cwh(CANVAS_WIDTH), cwh(CANVAS_HEIGHT - BAR_HEIGHT * 2));
|
|
canvas.fillStyle = "rgba(0, 0, 0, " + INGAME_MENU_BG_ALPHA + ")";
|
|
canvas.fill();
|
|
|
|
// timer
|
|
canvas.fillStyle = TIMER_COLOR;
|
|
canvas.font = cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "right";
|
|
canvas.fillText(msToTime(gameTimer), cwh(CANVAS_WIDTH - 10) + os.x, cwh(BAR_HEIGHT + 30) + os.y);
|
|
|
|
// resume game
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("RESUME GAME", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP) + os.y);
|
|
|
|
// main menu
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("MAIN MENU", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE) + os.y);
|
|
|
|
// level select
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("LEVEL SELECT", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 2) + os.y);
|
|
|
|
// change player color
|
|
canvas.fillStyle = "rgba(" + player.redFill + ", " + player.greenFill + ", " + player.blueFill + ", 1)";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("PLAYER COLOR", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 3) + os.y);
|
|
|
|
// mute SFX
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
if (muteSFX)
|
|
canvas.fillText("UNMUTE SFX", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 4) + os.y);
|
|
else
|
|
canvas.fillText("MUTE SFX", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 4) + os.y);
|
|
|
|
// mute music
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
if (muteMusic)
|
|
canvas.fillText("UNMUTE MUSIC", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 5) + os.y);
|
|
else
|
|
canvas.fillText("MUTE MUSIC", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 5) + os.y);
|
|
|
|
// player bouncing
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
if (bouncingEnabled)
|
|
canvas.fillText("DISABLE PLAYER BOUNCING", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 6) + os.y);
|
|
else
|
|
canvas.fillText("ENABLE PLAYER BOUNCING", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 6) + os.y);
|
|
|
|
// coolmath games
|
|
/*
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("COOLMATH GAMES", CANVAS_WIDTH / 2, IG_BUTTONS_TOP + IG_BTN_SPACE * 7);
|
|
*/
|
|
|
|
// stephen critoph
|
|
canvas.fillStyle = "white";
|
|
canvas.font = "Bold " + cwh(IG_BTN_TEXT_SIZE) + "px Arial";
|
|
canvas.textAlign = "center";
|
|
canvas.fillText("BY: STEPHEN CRITOPH", cwh(CANVAS_WIDTH / 2) + os.x, cwh(IG_BUTTONS_TOP + IG_BTN_SPACE * 7) + os.y);
|
|
}
|
|
}
|
|
}
|
|
|
|
// https://stackoverflow.com/questions/9763441/milliseconds-to-time-in-javascript
|
|
function msToTime(s) {
|
|
|
|
function pad(n, z) {
|
|
z = z || 2;
|
|
return ('00' + n).slice(-z);
|
|
}
|
|
|
|
var ms = s % 1000;
|
|
s = (s - ms) / 1000;
|
|
var secs = s % 60;
|
|
s = (s - secs) / 60;
|
|
var mins = s % 60;
|
|
var hrs = (s - mins) / 60;
|
|
|
|
return pad(hrs) + ':' + pad(mins) + ':' + pad(secs) + '.' + pad(ms, 3);
|
|
} |