Advertisement
Guest User

script.js

a guest
Jul 22nd, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.89 KB | None | 0 0
  1. //############# Database Information #############
  2. //Initialize Firebase Database
  3. const firebaseConfig = {
  4. apiKey: "AIzaSyA-U1As1xWNjXr8JSfGW2ZU9tnXkbUmQtI",
  5. authDomain: "red-vs-blue-teams.firebaseapp.com",
  6. databaseURL: "https://red-vs-blue-teams.firebaseio.com",
  7. projectId: "red-vs-blue-teams",
  8. storageBucket: "red-vs-blue-teams.appspot.com",
  9. messagingSenderId: "1014387499527",
  10. appId: "1:1014387499527:web:880313bba6be14a2"
  11. };
  12. firebase.initializeApp(firebaseConfig);
  13.  
  14. //############# Variables #############
  15. var uniqueID = createUniqueID();
  16.  
  17. var basicCost = 1;
  18. var betterCost = 3;
  19. var totalCost = 5;
  20.  
  21. var shipCapacity = 5;
  22. var startingShips = 10;
  23.  
  24. var badShips = 0;
  25. var basicSearches = 0;
  26. var betterSearches = 0;
  27. var totalSearches = 0;
  28.  
  29. var j = startingShips;
  30.  
  31. var redTurnCounterNumber = 1;
  32. var blueTurnCounterNumber = 1;
  33.  
  34. var allocatedContraband = 0;
  35. var activeContraband = allocatedContraband;
  36. var successfulContraband = 0;
  37.  
  38. var drugsFound = 0;
  39. var interceptedContraband = 0;
  40.  
  41. var inspectionPointsCounter = document.getElementById("inspectionPointsCounter");
  42.  
  43. var successfulContrabandCounter = document.getElementById("counterNumberSuccessfulContraband");
  44. var interceptContrabandCounter = document.getElementById("interceptedContrabandCounter");
  45.  
  46. var successfulContrabandCounterNumber = 0;
  47. var interceptContrabandCounterNumber = 0;
  48.  
  49. var shipCargos = [
  50. [],
  51. [false, false, false, false, false],
  52. [false, false, false, false, false],
  53. [false, false, false, false, false],
  54. [false, false, false, false, false],
  55. [false, false, false, false, false],
  56. [false, false, false, false, false],
  57. [false, false, false, false, false],
  58. [false, false, false, false, false],
  59. [false, false, false, false, false],
  60. [false, false, false, false, false]
  61. ];
  62.  
  63. var shipCounters = [
  64. [],
  65. 0,
  66. 0,
  67. 0,
  68. 0,
  69. 0,
  70. 0,
  71. 0,
  72. 0,
  73. 0,
  74. 0
  75. ];
  76.  
  77. //Reference Database
  78. var db = firebase.firestore();
  79. var gameRef = db.collection('games').doc(uniqueID);
  80.  
  81. //############# Settings #############
  82. //Contraband
  83. var settingsContrabandCounter = document.getElementById("contrabandDisplay");
  84. var contrabandCounter = document.getElementById("counterNumberContraband");
  85.  
  86. var contrabandInput = 10;
  87. var startingContraband = contrabandInput;
  88.  
  89. settingsContrabandCounter.innerHTML = contrabandInput;
  90. contrabandCounter.innerHTML = contrabandInput;
  91.  
  92. function contrabandSettings(determiner){
  93. //Modifies the number of starting contraband in the settings menu.
  94. if(determiner == 0){
  95. //Subtraction
  96. if(contrabandInput == 1){
  97. alert("Error: you can't play with no contraband! ");
  98. return;
  99. }
  100. contrabandInput -= 1;
  101. settingsContrabandCounter.innerHTML = contrabandInput;
  102. }
  103. else{
  104. //Addition
  105. contrabandInput += 1;
  106. settingsContrabandCounter.innerHTML = contrabandInput;
  107. }
  108. settingsContrabandCounter.innerHTML = contrabandInput;
  109. window.startingContraband = contrabandInput;
  110. };
  111.  
  112. function contrabandCounterUpdate(){
  113. //Updates the contraband counter
  114. contrabandCounter.innerHTML = startingContraband;
  115. };
  116.  
  117. //Inspection Points
  118. var settingsIpCounter = document.getElementById("ipDisplay");
  119. var inspectionPointsCounter = document.getElementById("inspectionPointsCounter");
  120.  
  121. var ipInput = 10;
  122. var startingInspectionPoints = ipInput;
  123.  
  124. settingsIpCounter.innerHTML = ipInput;
  125. inspectionPointsCounter.innerHTML = ipInput;
  126.  
  127. function ipSettings(determiner){
  128. //Modifies the number of starting inspection points in the settings menu.
  129. if(determiner == 0){
  130. //Subtraction
  131. if(ipInput == 1){
  132. alert("Error: you can't play with no inspection points! ");
  133. return;
  134. }
  135. ipInput -= 1;
  136. settingsIpCounter.innerHTML = ipInput;
  137. }
  138. else{
  139. //Addition
  140. ipInput += 1;
  141. settingsIpCounter.innerHTML = ipInput;
  142. }
  143. settingsIpCounter.innerHTML = ipInput;
  144. window.startingInspectionPoints = ipInput;
  145. };
  146.  
  147. function ipCounterUpdate(){
  148. //Updates the contraband counter
  149. inspectionPointsCounter.innerHTML = startingInspectionPoints;
  150. };
  151.  
  152. //Rounds
  153. var settingsRoundsCounter = document.getElementById("roundsDisplay");
  154.  
  155. var turnsInput = 5;
  156. var numberOfTurns = turnsInput;
  157. settingsRoundsCounter.innerHTML = turnsInput;
  158.  
  159. function roundsSettings(determiner){
  160. //Modifies the number of rounds in the settings menu.
  161. if(determiner == 0){
  162. //Subtraction
  163. if(turnsInput == 1){
  164. alert("Error: too few turns! ");
  165. return;
  166. }
  167. turnsInput -= 1;
  168. settingsRoundsCounter.innerHTML = turnsInput;
  169. }
  170. else{
  171. //Addition
  172. turnsInput += 1;
  173. settingsRoundsCounter.innerHTML = turnsInput;
  174. }
  175. settingsRoundsCounter.innerHTML = turnsInput;
  176. window.numberOfTurns = turnsInput;
  177. };
  178.  
  179. ////############# Red Team's Turn #############
  180. function allocateContraband(determiner, shipNumber) {
  181. //Subtracts or adds contraband to the selected ship based on the determiner's value (0 for subtraction, 1 for addition).
  182. var shipID = String("ship counter " + shipNumber);
  183. var shipContrabandCounter = document.getElementById(shipID);
  184.  
  185. //Subtraction
  186. if (determiner == 0) {
  187. if (shipCounters[shipNumber] <= 0) {
  188. alert("Error: ship can't hold negative contraband!");
  189. return;
  190. }
  191. shipCounters[shipNumber] -= 1;
  192. startingContraband += 1;
  193.  
  194. shipContrabandCounter.innerHTML = shipCounters[shipNumber];
  195. contrabandCounterUpdate();
  196.  
  197. for (var i = 0; i < shipCounters[shipNumber]; i++) {
  198. shipCargos[shipNumber][i] = false;
  199. }
  200. allocatedContraband -= 1;
  201. }
  202. //Addition
  203. else if (determiner == 1) {
  204. if (startingContraband <= 0) {
  205. alert("Error: you are out of contraband!");
  206. return;
  207. } else if (shipCounters[shipNumber] >= shipCapacity) {
  208. alert("Error: ship capacity reached!");
  209. return;
  210. }
  211. shipCounters[shipNumber] += 1;
  212. startingContraband -= 1;
  213.  
  214. shipContrabandCounter.innerHTML = shipCounters[shipNumber];
  215. contrabandCounterUpdate();
  216.  
  217. for (var i = 0; i < shipCounters[shipNumber]; i++) {
  218. shipCargos[shipNumber][i] = true;
  219. }
  220. allocatedContraband += 1;
  221. }
  222.  
  223. var shipDiv = document.getElementById("redDiv"+shipNumber);
  224.  
  225. if(shipDiv.children.length>1){
  226. shipDiv.removeChild(shipDiv.children[shipDiv.children.length-1]);
  227. }
  228.  
  229. if(shipCounters[shipNumber]!=0){
  230. shipDiv.innerHTML += "<div class='contrabandCountLabel'><img id = \"countLabel\" src=\"res/contraband.png\">" + shipCounters[shipNumber] + "</div>";
  231. shipDiv.children[0].setAttribute("src","res/ship_active.png");
  232. }
  233.  
  234. else{
  235. shipDiv.children[0].setAttribute("src","res/ship.png");
  236. }
  237. };
  238.  
  239. function redOn(clicked_id) {
  240. //Enables the red ship assignment overlay.
  241. document.getElementById("redOverlay").style.display = "block";
  242. j = clicked_id;
  243.  
  244. var x = shipCounters[j];
  245. var overlaytext = "";
  246.  
  247. overlaytext += "<div class=\"redshipCard\"><div class=\"allocate\"><div class=\"ship\" onclick=\"selectShip(" + j + ")\"><img id=\"ship " + j + "\" class=\"shipImg\" src=\"res\\ship_active.png\"><p class=\"shipLabel\">Ship " + j + "</p></div><div class=\"allocateCommands\"><img class=\"allocateImg\" src=\"res/contraband.png\"><button class=\"allocateMinus\" onclick=\"allocateContraband(0," + j + ")\">-</button><p class=\"allocateCounter\" id=\"ship counter " + j + "\">" + x + "</p><button class=\"allocateAdd\" onclick=\"allocateContraband(1," + j + ")\">+</button></div><button class=\" allocateRedConfirmBtn\" onclick=\"redOff()\">Confirm</button></div></div>"
  248. document.getElementById("redOverlay").innerHTML = overlaytext;
  249. };
  250.  
  251. function redOff() {
  252. //Disables the red ship assignment overlay.
  253. document.getElementById("redOverlay").style.display = "none";
  254. };
  255.  
  256. var text = "";
  257. for (var i = 1; i < 11; i++) {
  258. text += "<div class = \"shiphover\" id = \"redDiv" + i + "\" onclick=\"redOn(" + i + ");\"><img src = \"res/ship.png\" class=\"shiplist\" id=\"ship"+i+"\"></div>";
  259. };
  260.  
  261. document.getElementById("redFlex").innerHTML = text;
  262.  
  263. //############# Blue Team's Turn #############
  264. function blueOn(clicked_id) {
  265. //Enables the blue ship assignment overlay.
  266. document.getElementById("blueOverlay").style.display = "block";
  267. j = clicked_id;
  268.  
  269. var x = shipCounters[j];
  270. var overlaytext = "";
  271.  
  272. overlaytext += "<div class=\"blueshipCard\"><div class=\"ship\" onclick=\"selectShip(" + j + ")\"><img id=\"ship " + j + " class=\"shipImg\" src=\"res/ship_active.png\"><p class=\"shipLabel\">Ship " + j + "</p></div><div class=\"inspection\"><div><span><img src=\"res/basic_search.png\" alt=\"\"><button class=\"searchButton\" onclick=\"inspection(0, " + j + ")\">Basic Search</button></span></div><div><span><img src=\"res/better_search.png\" alt=\"\"><button class=\"searchButton\" onclick=\"inspection(1, " + j + ")\">Better Search</button></span></div><span><img src=\"res/total_search.png\" alt=\"\"><button class=\"searchButton\" onclick=\"inspection(2, " + j + ")\">Total Search</button></span><button class=\" searchBlueConfirmBtn\" onclick=\"blueOff()\">Confirm</button></div></div>"
  273.  
  274. document.getElementById("blueOverlay").innerHTML = overlaytext;
  275. };
  276.  
  277. function blueOff() {
  278. //Disables the blue ship assignment overlay.
  279. document.getElementById("blueOverlay").style.display = "none";
  280. };
  281.  
  282. var text = "";
  283.  
  284. for (var i = 1; i < 11; i++) {
  285. text += "<div class = \"shiphover\" id = \"blueDiv" + i + "\" onclick=\"blueOn(" + i + ");\"><img src = \"res/ship.png\" class=\"shiplist\" id=\"ship"+i+"\"></div>";
  286. };
  287.  
  288. document.getElementById("blueFlex").innerHTML = text;
  289.  
  290. function inspection(determiner, shipNumber) {
  291. //Performs inspection on the ship to see if it contains contraband.
  292. var arr = shipCargos[shipNumber];
  293.  
  294. function randomInteger(min, max) {
  295. //Generates a random integer between the minimum and maximum values for use in the inspection function.
  296. return Math.floor(Math.random() * (max - min + 1)) + min;
  297. };
  298.  
  299. if(arr.length>0){
  300. //Basic Search
  301. if (determiner == 0) {
  302. if (startingInspectionPoints >= basicCost) {
  303. var index = randomInteger(0, arr.length - 1);
  304. if (arr[index] === true) {
  305. // ####DRUGS FOUND#####
  306. alert("Contraband Located! 1 unit seized!")
  307. drugsFound += 1;
  308. //arr[index] = false;
  309. } else {
  310. // ####NO DRUGS FOUND####
  311. alert("No contraband was located.")
  312. }
  313. shipCargos[shipNumber].splice(index,1);
  314. startingInspectionPoints -= basicCost;
  315. ipCounterUpdate();
  316. basicSearches += 1;
  317. } else {
  318. alert("Error: insufficient inspection points!")
  319. return;
  320. }
  321. activeContraband -= drugsFound;
  322. interceptedContraband += drugsFound;
  323. }
  324.  
  325. //Better Search
  326. else if (determiner == 1) {
  327. if (startingInspectionPoints >= betterCost) {
  328. if(arr.length>=3){
  329. var a = randomInteger(0, arr.length-1);
  330. var b = randomInteger(0, arr.length-1);
  331. while(b==a){
  332. b = randomInteger(0,arr.length-1);
  333. }
  334. var c = randomInteger(0,arr.length-1);
  335. while(c==a || c==b){
  336. c = randomInteger(0,arr.length-1);
  337. }
  338. var indexList = [a, b, c];
  339. } else if (arr.length==2){
  340. var a = randomInteger(0, arr.length-1);
  341. var b = randomInteger(0, arr.length-1);
  342. while(b==a){
  343. b = randomInteger(0,arr.length-1);
  344. }
  345. var indexList = [a, b];
  346. } else{
  347. var a = randomInteger(0, arr.length-1);
  348. var indexList = [a];
  349. }
  350.  
  351. for (var i = 0; i <= indexList.length; i++) {
  352. var checker = indexList[i];
  353. if (arr[checker] === true) {
  354. // ####DRUGS FOUND#####
  355. alert("Contraband Located! 1 unit seized!")
  356. drugsFound += 1;
  357. //arr[checker] = false;
  358. } else if (arr[checker] == false) {
  359. // ####NO DRUGS FOUND####
  360. alert("No contraband was located.")
  361. } else {
  362. alert("End of inspection.")
  363. }
  364. }
  365. startingInspectionPoints -= betterCost;
  366. ipCounterUpdate();
  367. betterSearches += 1;
  368. indexList.sort(function(a, b){return b-a});
  369. var counter = 0;
  370. for(var i=0;i<indexList.length;i++){
  371. console.log(shipCargos[shipNumber]);
  372. shipCargos[shipNumber].splice(indexList[i]-counter,1);
  373. console.log(shipCargos[shipNumber]);
  374. counter++;
  375. }
  376. } else {
  377. alert("Error: insufficient inspection points!")
  378. return;
  379. }
  380. activeContraband -= drugsFound;
  381. interceptedContraband += drugsFound;
  382. }
  383.  
  384. //Total Search
  385. else if (determiner == 2) {
  386. if (startingInspectionPoints >= totalCost) {
  387. var contains = arr.includes(true);
  388. if (contains === true) {
  389. drugsFound += 1;
  390. for (x = 1; arr.length >= x; x++) {
  391. if (arr[x] === true) {
  392. drugsFound += 1;
  393. }
  394. }
  395. alert("Contraband Located! " + drugsFound + " units seized!")
  396. //arr = [false, false, false, false, false]
  397. } else {
  398. // ####NO DRUGS FOUND####
  399. alert("No contraband was located.");
  400. }
  401. startingInspectionPoints -= totalCost;
  402. ipCounterUpdate();
  403. totalSearches += 1;
  404. } else {
  405. alert("Error: insufficient inspection points!")
  406. return;
  407. }
  408. shipCargos[shipNumber] = [];
  409. activeContraband -= drugsFound;
  410. interceptedContraband += drugsFound;
  411. }
  412.  
  413. var shipDiv = document.getElementById("blueDiv"+shipNumber);
  414. var updatedShipDrugsFound = drugsFound;
  415.  
  416. if(shipDiv.children.length>1){
  417. updatedShipDrugsFound += parseInt(shipDiv.children[shipDiv.children.length-1].innerHTML,10);
  418. shipDiv.removeChild(shipDiv.children[shipDiv.children.length-1]);
  419. }
  420. shipDiv.innerHTML += "<div class=\"contrabandCountLabel\">" + updatedShipDrugsFound + "<img id = \"countLabel\" src=\"res/contraband_not_found.png\"></div>";
  421.  
  422. shipDiv.children[0].setAttribute("src","res/ship_active.png");
  423.  
  424. drugsFound = 0;
  425. } else{
  426. alert("Error: All cargo units on this ship have already been searched");
  427. }
  428. };
  429.  
  430. //############# Navigation #############
  431. function gameStart(){
  432. //Changes the view from the home to red turn screens.
  433. document.getElementById("homeScreen").style.display = "none";
  434. document.getElementById("redTurn").style.display = "block";
  435.  
  436. playerNames();
  437.  
  438. contrabandCounterUpdate();
  439. ipCounterUpdate();
  440.  
  441. gameInfo(redPlayer, bluePlayer, startingContraband, startingInspectionPoints, startingShips, numberOfTurns);
  442. };
  443.  
  444. function homeToSettings(){
  445. //Changes the view from the home to settings screens.
  446. document.getElementById("homeScreen").style.display = "none";
  447. document.getElementById("settingsScreen").style.display = "block";
  448. };
  449.  
  450. function settingsToHome(){
  451. //Changes the view from the settings to home screens.
  452. document.getElementById("settingsScreen").style.display = "none";
  453. document.getElementById("homeScreen").style.display = "block";
  454. };
  455.  
  456. function redToBlue() {
  457. //Switches from red to blue turns.
  458. if (blueTurnCounterNumber <= numberOfTurns) {
  459.  
  460. activeContraband = allocatedContraband;
  461.  
  462. //Switch Turns
  463. redTurnCounterNumber += 1;
  464. document.getElementById("redTurnCounter").innerHTML = redTurnCounterNumber;
  465.  
  466. document.getElementById("redTurn").style.display = "none";
  467. document.getElementById("blueTurn").style.display = "block";
  468. }
  469. for(i=1;i<11;i++){
  470. var shipDiv = document.getElementById("redDiv"+i);
  471. if(shipDiv.children.length>1){
  472. shipDiv.removeChild(shipDiv.children[shipDiv.children.length-1]);
  473. shipDiv.children[0].setAttribute("src","res/ship.png");
  474. };
  475. }
  476. };
  477.  
  478. function blueToRed() {
  479. if (redTurnCounterNumber == numberOfTurns + 1) {
  480. //Game Ends
  481.  
  482. //Database Purposes
  483. shipCounter();
  484.  
  485. //Updating Score
  486. successfulContraband += activeContraband;
  487. interceptedContraband += drugsFound;
  488.  
  489. successfulContrabandCounterNumber += successfulContraband;
  490. interceptContrabandCounterNumber += interceptedContraband;
  491.  
  492. successfulContrabandCounter.innerHTML = successfulContrabandCounterNumber;
  493. interceptContrabandCounter.innerHTML = interceptContrabandCounterNumber;
  494.  
  495. //Database Upload
  496.  
  497. saveRound(blueTurnCounterNumber, shipCounters, badShips, successfulContraband, interceptedContraband, basicSearches, betterSearches, totalSearches, successfulContrabandCounterNumber, interceptContrabandCounterNumber);
  498.  
  499. gameEnd();
  500. return;
  501. } else {
  502. //Database Purposes
  503. shipCounter();
  504.  
  505. //Updating Score
  506. successfulContraband += activeContraband;
  507. interceptedContraband += drugsFound;
  508.  
  509. successfulContrabandCounterNumber += successfulContraband;
  510. interceptContrabandCounterNumber += interceptedContraband;
  511.  
  512. successfulContrabandCounter.innerHTML = successfulContrabandCounterNumber;
  513. interceptContrabandCounter.innerHTML = interceptContrabandCounterNumber;
  514.  
  515. //Database Upload
  516. saveRound(blueTurnCounterNumber, shipCounters, badShips, successfulContraband, interceptedContraband, basicSearches, betterSearches, totalSearches, successfulContrabandCounterNumber, interceptContrabandCounterNumber);
  517.  
  518. //Reset Board
  519. blueReset();
  520.  
  521. //Switch Turns
  522. blueTurnCounterNumber += 1;
  523. document.getElementById("blueTurnCounter").innerHTML = blueTurnCounterNumber;
  524.  
  525. document.getElementById("redTurn").style.display = "block";
  526. document.getElementById("blueTurn").style.display = "none";
  527. }
  528. for(i=1;i<11;i++){
  529. var shipDiv = document.getElementById("blueDiv"+i);
  530. if(shipDiv.children.length>1){
  531. shipDiv.removeChild(shipDiv.children[shipDiv.children.length-1]);
  532. shipDiv.children[0].setAttribute("src","res/ship.png");
  533. };
  534. }
  535. };
  536.  
  537. function blueReset() {
  538. //Resets the board after blue finishes their turn (thereby ending the round).
  539. shipCargos = [
  540. [],
  541. [false, false, false, false, false],
  542. [false, false, false, false, false],
  543. [false, false, false, false, false],
  544. [false, false, false, false, false],
  545. [false, false, false, false, false],
  546. [false, false, false, false, false],
  547. [false, false, false, false, false],
  548. [false, false, false, false, false],
  549. [false, false, false, false, false],
  550. [false, false, false, false, false]
  551. ];
  552.  
  553. shipCounters = [
  554. [],
  555. 0,
  556. 0,
  557. 0,
  558. 0,
  559. 0,
  560. 0,
  561. 0,
  562. 0,
  563. 0,
  564. 0
  565. ];
  566.  
  567. uniqueID = null;
  568. gameID = null;
  569.  
  570. startingContraband = contrabandInput;
  571. allocatedContraband = 0;
  572. contrabandCounterUpdate();
  573.  
  574. drugsFound = 0;
  575. startingInspectionPoints = ipInput;
  576. ipCounterUpdate();
  577.  
  578. badShips = 0;
  579. basicSearches = 0;
  580. betterSearches = 0;
  581. totalSearches = 0;
  582.  
  583. successfulContrabandCounterNumber = 0;
  584. interceptContrabandCounterNumber = 0;
  585.  
  586. contrabandCounter.innerHTML = startingContraband;
  587. inspectionPointsCounter.innerHTML = startingInspectionPoints;
  588.  
  589. };
  590.  
  591. //############# Database Purposes #############
  592. function saveRound(blueTurnCounterNumber, shipCounters, badShips, successfulContraband, interceptedContraband, basicSearches, betterSearches, totalSearches, successfulContrabandCounterNumber, interceptContrabandCounterNumber){
  593. //Saves game data to Firebase.
  594. gameRef.set({
  595. [blueTurnCounterNumber]: {
  596. ship1: shipCounters[1],
  597. ship2: shipCounters[2],
  598. ship3: shipCounters[3],
  599. ship4: shipCounters[4],
  600. ship5: shipCounters[5],
  601. ship6: shipCounters[6],
  602. ship7: shipCounters[7],
  603. ship8: shipCounters[8],
  604. ship9: shipCounters[9],
  605. ship10: shipCounters[10],
  606. badShips: badShips,
  607. redTeamScore: successfulContraband,
  608. blueTeamScore: interceptedContraband,
  609. basicSearches: basicSearches,
  610. betterSearches: betterSearches,
  611. totalSearches: totalSearches,
  612. redScoreChange: successfulContrabandCounterNumber,
  613. blueScoreChange: interceptContrabandCounterNumber
  614. }
  615. },{ merge: true }
  616. );
  617. };
  618.  
  619. function gameInfo(redPlayer, bluePlayer, startingContraband, startingInspectionPoints, startingShips, numberOfTurns){
  620. gameRef.set({
  621. gameInfo: {
  622. redPlayer: redPlayer,
  623. bluePlayer: bluePlayer,
  624. startingContraband: startingContraband,
  625. startingInspectionPoints: startingInspectionPoints,
  626. startingShips: startingShips,
  627. numberOfTurns: numberOfTurns
  628. }
  629. },{ merge: true }
  630. );
  631. };
  632.  
  633. function createUniqueID() {
  634. //Generates a unique ID using date and time information for data storage.
  635. //Format is the following: YEAR-MONTH-DAY-HOUR-MINUTE-SECOND
  636.  
  637. var d = new Date();
  638.  
  639. var y = d.getFullYear();
  640. var mo = d.getMonth();
  641. var da = d.getDate();
  642. var h = d.getHours();
  643. var m = d.getMinutes();
  644. var s = d.getSeconds();
  645.  
  646. var uniqueID = String(y + "-" + mo + "-" + da + "-" + h + "-" + m + "-" + s);
  647. alert("The unique ID for this game is: " + uniqueID);
  648. return uniqueID;
  649. };
  650.  
  651. function playerNames(){
  652. //Allows each team's player to enter their name.
  653. //Used for database purposes.
  654. window.redPlayer = String(prompt("Red Player Name: ").toLowerCase());
  655. window.bluePlayer = String(prompt("Blue Player Name: ").toLowerCase());
  656. };
  657.  
  658. function shipCounter() {
  659. //Determines the number of ships containing contraband for every round.
  660. for (i = 0; i < shipCounters.length + 1; i++) {
  661. if (shipCounters[i] > 0) {
  662. badShips += 1;
  663. }
  664. }
  665. return badShips;
  666. };
  667.  
  668. // ##########################End of Game####################################
  669. function gameEnd() {
  670. //Ends the game.
  671. document.getElementById("blueTurn").style.display = "none";
  672. document.getElementById("endTurn").style.display = "block";
  673.  
  674.  
  675. var overlaytext = "";
  676. overlaytext += "<div class=\"endTurnDiv\"><h1 class=\"endTitle\">Results</h1><div class=\"itemsListEnd\"><div class =\"setTableEnd\"><div class=\"setRowsEnd\" id = \"redPoints\"><img class=\"settingsCounterEnd\" id=\"endSmuggled\" src=\"res/found contraband.png\"><div id=\"successCounter\"></div></div><div class=\"setRowsEnd\" id = \"bluePoints\"><img class=\"settingsCounterEnd\" id=\"endIntercepted\" src=\"res/contraband_not_found.png\"><div id=\"interceptCounter\">0</th></div></div></div><h1 id=\"redTeamEnd\"></h1><h1 id=\"blueTeamEnd\"></h1><h1 id=\"tieEnd\"></h1><button class=\"rePlay\" id=\"end\" onclick=\"restart()\">Play Again</button></div>"
  677.  
  678. document.getElementById("endTurn").innerHTML = overlaytext;
  679.  
  680. document.getElementById("successCounter").innerHTML = successfulContraband;
  681. document.getElementById("interceptCounter").innerHTML = interceptedContraband;
  682.  
  683. if (successfulContraband > interceptedContraband) {
  684. document.getElementById("redTeamEnd").innerHTML = "Red Wins!";
  685. } else if (successfulContraband < interceptedContraband) {
  686. document.getElementById("blueTeamEnd").innerHTML = "Blue Wins!";
  687. } else {
  688. document.getElementById("tieEnd").innerHTML = "Tie Game!";
  689. }
  690. };
  691.  
  692. function restart(){
  693. //Restarts the game.
  694. location.reload(true);
  695. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement