First Local Commit - After Clean up.
Signed-off-by: Rick Hays <rhays@haysgang.com>
This commit is contained in:
172
public/assets/js/game.js
Normal file
172
public/assets/js/game.js
Normal file
@@ -0,0 +1,172 @@
|
||||
/***********************************************************************************************************************
|
||||
RPSLS - Rock, Paper, Scissors, Lizard, Spock Game
|
||||
|
||||
@file public/assets/js/game.js
|
||||
@description Handles all javascript for the game.
|
||||
@author Rick Hays
|
||||
@date 11-17-2019
|
||||
@license MIT
|
||||
@copyright Copyright © 2019 - Rick Hays, All Rights Reserved.
|
||||
|
||||
Revisions:
|
||||
YYYY-MM-DD XX Description
|
||||
***********************************************************************************************************************/
|
||||
|
||||
/**
|
||||
* ALL Processes that require the Document to be ready before running.
|
||||
*/
|
||||
$(document).ready(function ()
|
||||
{
|
||||
/**
|
||||
* Capture the Enter key when in User Name Form
|
||||
*/
|
||||
$("#UserName").keypress(function(e)
|
||||
{
|
||||
if (e.which == 13)
|
||||
{
|
||||
e.preventDefault(); // Stops Enter Key Action
|
||||
submitUserName();
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* hideElements - Hides the game play elements from view.
|
||||
*/
|
||||
|
||||
function hideElements()
|
||||
{
|
||||
$('#textRock, #textPaper, #textScissors, #textLizard, #textSpock, #textComputerHas, #textComputerPick, #textWinLoseTie, #textTryAgain, #btnTryAgain, #btnNoThanks').each(function ()
|
||||
{
|
||||
$(this).hide();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* TryAgain Button - This is for phone (small) screens, hides game play elements and moves the screen back to the
|
||||
* top for user to play again.
|
||||
*/
|
||||
$("#btnTryAgain").click(function(evt)
|
||||
{
|
||||
hideElements();
|
||||
$('html, body').animate({scrollTop: $(".container").offset().top});
|
||||
});
|
||||
|
||||
/**
|
||||
* NoThanks Button - Runs endGame from Controller, this removes session and takes you back to home screen.
|
||||
*/
|
||||
$("#btnNoThanks").click(function(evt)
|
||||
{
|
||||
window.location.href = '/endGame';
|
||||
});
|
||||
|
||||
// Game Play Buttons..
|
||||
$(".gameButton").click(function(evt)
|
||||
{
|
||||
hideElements();
|
||||
|
||||
// Get Button Selected
|
||||
let gameButton = $(this).attr("id");
|
||||
|
||||
// AJAX - Play! Pass Option Selected.
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: 'play/' + gameButton,
|
||||
type: 'get',
|
||||
dataType: "json",
|
||||
success: function(data)
|
||||
{
|
||||
$('#textComputerPick h2').text(data.ComputerPick);
|
||||
|
||||
$("#textWinLoseTie").removeAttr('class');
|
||||
switch(data.Result)
|
||||
{
|
||||
case 'WINNER':
|
||||
$("#textWinLoseTie").addClass("text-success");
|
||||
break;
|
||||
case 'LOSER':
|
||||
$("#textWinLoseTie").addClass("text-danger");
|
||||
break;
|
||||
case 'TIE':
|
||||
$("#textWinLoseTie").addClass("text-info");
|
||||
break;
|
||||
default:
|
||||
$("#textWinLoseTie").addClass("text-light");
|
||||
}
|
||||
$('#textWinLoseTie h2').text(data.Result + ' - ' + data.ResultText);
|
||||
$('#textRock, #textPaper, #textScissors, #textLizard, #textSpock, #textComputerHas, #textComputerPick, #textWinLoseTie, #textTryAgain, #btnTryAgain, #btnNoThanks').each(function(fadeInDiv)
|
||||
{
|
||||
$(this).delay(fadeInDiv * 500).fadeIn(1000);
|
||||
$('html, body').animate({scrollTop:$(document).height()}, '100');
|
||||
});
|
||||
// Scores
|
||||
$('#totalWins').html(data.Wins);
|
||||
$('#totalLoses').html(data.Loses);
|
||||
$('#totalTies').html(data.Ties);
|
||||
},
|
||||
error: function(e)
|
||||
{
|
||||
console.log(e.lineNumber + ' - ' + e.script + ': ERROR - ' + e.message);
|
||||
console.trace();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* validateUName
|
||||
* @description
|
||||
* Simple validation for user name.
|
||||
*
|
||||
* @param UName - User Name to validate.
|
||||
* @returns {boolean} True/False if the name validates to the regex
|
||||
*
|
||||
*/
|
||||
function validateUName(UName)
|
||||
{
|
||||
var regex = /^([0-9a-zA-Z-_@\.]*)$/;
|
||||
return (regex.test(UName)) ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* submitUserName
|
||||
* @description
|
||||
* Handles the form submission.
|
||||
*
|
||||
*/
|
||||
function submitUserName()
|
||||
{
|
||||
UName = $("#UserName").val();
|
||||
if (UName === '')
|
||||
{
|
||||
$(".boxerror").html('You must enter a user name to play the game.');
|
||||
}
|
||||
else if(!validateUName(UName))
|
||||
{
|
||||
$(".boxerror").html('User Name can only contain characters: (a-z, A-Z, 0-9, - _ @ .) Only. ');
|
||||
}
|
||||
else
|
||||
{
|
||||
// AJAX to see if name exists and confirm before
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: 'testUser/' + UName,
|
||||
type: 'get',
|
||||
async: false,
|
||||
success: function(data)
|
||||
{
|
||||
if (data !== '0')
|
||||
{
|
||||
let answer = confirm("User Name is already in the Database. \nPress: \nOK - To use this name. \nCANCEL - To pick a new name.");
|
||||
if (answer == true)
|
||||
window.location.href = 'createUser/'+UName+'/'+data;
|
||||
}
|
||||
else
|
||||
window.location.href = 'createUser/'+UName+'/'+data;
|
||||
},
|
||||
error: function(e)
|
||||
{
|
||||
alert('84-game.js: ERROR - ' + e.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user