From 4ca9974dbfd5f27cb2142b46262433963b71993e Mon Sep 17 00:00:00 2001 From: "PolicyChanges1@gmail.com" Date: Fri, 26 Feb 2021 10:53:06 -0500 Subject: [PATCH] added test yourself mode, mko stacking, and fixes --- css/styles.css | 43 -------- dist/tetrion.js | 253 ++++++++++++++++++------------------------------ src/input.js | 84 +++++++--------- src/main.js | 13 +-- src/openers.js | 156 +++++++++++------------------ 5 files changed, 192 insertions(+), 357 deletions(-) diff --git a/css/styles.css b/css/styles.css index eb75cb0..735b60c 100644 --- a/css/styles.css +++ b/css/styles.css @@ -2,50 +2,7 @@ html,body{ height:100%; } - /* Dropdown Button */ -.dropbtn { - background-color: #3498DB; - color: white; - padding: 16px; - font-size: 16px; - border: none; - cursor: pointer; -} -/* Dropdown button on hover & focus */ -.dropbtn:hover, .dropbtn:focus { - background-color: #2980B9; -} - -/* The container
- needed to position the dropdown content */ -.dropdown { - position: relative; - display: inline-block; -} - -/* Dropdown Content (Hidden by Default) */ -.dropdown-content { - display: none; - position: absolute; - background-color: #f1f1f1; - min-width: 160px; - box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); - z-index: 1; -} - -/* Links inside the dropdown */ -.dropdown-content a { - color: black; - padding: 12px 16px; - text-decoration: none; - display: block; -} - -/* Change color of dropdown links on hover */ -.dropdown-content a:hover {background-color: #ddd} - -/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */ -.show {display:block;} body{ diff --git a/dist/tetrion.js b/dist/tetrion.js index 1b7df39..22bff98 100644 --- a/dist/tetrion.js +++ b/dist/tetrion.js @@ -429,24 +429,17 @@ var utils = require('./utils.js'); var UserInputs = { init() { this.settingsMap = new Map(); - var options = ""; + // var init = utils.getCookie("init"); // if(init == "") for(var i in this.settingsList) utils.setCookie(this.settingsList[i], this.settingsDefault[i], 30); // cookies expire in 30 days - - - // else // for(var i in this.settingsList) // this.settingsDefault[i] = utils.getCookie(this.settingsList[i]); for(var i in this.settingsList) this.settingsMap.set(this.settingsList[i], this.settingsDefault[i]); - - - - //document.getElementById("setting").innerHTML = settings; document.addEventListener('keydown', this.keyDown.bind(this)); document.addEventListener('keyup', this.keyUp.bind(this)); @@ -470,31 +463,21 @@ var UserInputs = { }, processGamepadInput() { - // this.gamepadButtonsDown("RB"); // hard drop - // this.gamepadButtonsDown("LB"); // hold - // this.gamepadButtonsDown("A"); // rotate counter - // this.gamepadButtonsDown("B"); // rotate cwise - // this.gamepadButtonsDown("DPad-Up"); // Pop hold stack - // this.gamepadButtonsDown("Back"); // reset - //this.gamepadButtonsDown("X"); - //this.gamepadButtonsDown("Y"); - - this.gamepadButtonsDown(this.settingsMap.get("gamepad_harddrop")); // hard drop - this.gamepadButtonsDown(this.settingsMap.get("gamepad_hold")); // hold - this.gamepadButtonsDown(this.settingsMap.get("gamepad_rotateccw")); // rotate counter - this.gamepadButtonsDown(this.settingsMap.get("gamepad_rotate")); // rotate cwise - this.gamepadButtonsDown(this.settingsMap.get("gamepad_pophold")); // Pop hold stack - this.gamepadButtonsDown(this.settingsMap.get("gamepad_reset")); // reset + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Harddrop")); // hard drop + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Hold")); // hold + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Rotateccw")); // rotate counter + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Rotate")); // rotate cwise + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Pophold")); // Pop hold stack + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Reset")); // reset return; }, - processGamepadDPad() - { - this.gamepadDPadDown(this.settingsMap.get("gamepad_left")); // shift left - this.gamepadDPadDown(this.settingsMap.get("gamepad_right")); // shift right - this.gamepadDPadDown(this.settingsMap.get("gamepad_down")); // down + processGamepadDPad() { + this.gamepadDPadDown(this.settingsMap.get("Gamepad Left")); // shift left + this.gamepadDPadDown(this.settingsMap.get("Gamepad Right")); // shift right + this.gamepadDPadDown(this.settingsMap.get("Gamepad Down")); // down return; }, @@ -533,8 +516,8 @@ var UserInputs = { // Direction Pad gamepadDPadDown(finds) { - var DAS = parseInt(this.settingsMap.get("gamepad_das")); //65.0; - var ARR = parseInt(this.settingsMap.get("gamepad_arr")); //20.0; + var DAS = parseInt(this.settingsMap.get("Gamepad DAS")); //65.0; + var ARR = parseInt(this.settingsMap.get("Gamepad ARR")); //20.0; var isContained = this.gpButtons.includes(finds); var isPrevContained = this.prevGpButtons.includes(finds); @@ -563,15 +546,16 @@ var UserInputs = { return; }, + // doing a lot of back and forth between strings and integers to represtent the same thing -- todo: fix processKeys() { - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_harddrop"))); //32); // Space - hard drop - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_rotate"))); //88); // X - rotate - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_rotateccw"))); //90); // Z - rotateccw - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_hold"))); //16); // shift - push hold stack - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_pophold"))); // ctrl - pop hold stack - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_background"))); // q - turn off background - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_reset"))); // r - reset - //this.processKeyDown(this.settingsMap.get("keyboard_hold"))); // c - pop hold stack + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Harddrop"))); //32); // Space - hard drop + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Rotate"))); //88); // X - rotate + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Rotateccw"))); //90); // Z - rotateccw + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Hold"))); //16); // shift - push hold stack + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Pophold"))); // ctrl - pop hold stack + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Background"))); // q - turn off background + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Reset"))); // r - reset + //this.processKeyDown(this.settingsMap.get("Keyboard hold"))); // c - pop hold stack }, // keyboard keys z,x,space @@ -608,14 +592,14 @@ var UserInputs = { }, processKeyShift() { - this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("keyboard_left"))); //39); // right - this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("keyboard_right"))); //37); // left - this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("keyboard_down"))); // down + this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("Keyboard Left"))); //39); // right + this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("Keyboard Right"))); //37); // left + this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("Keyboard Down"))); // down }, // Direction arrows processKeyboardArrowKeys(key) { - var DAS = parseInt(this.settingsMap.get("keyboard_das")); //65.0; - var ARR = parseInt(this.settingsMap.get("keyboard_arr")); //20.0; + var DAS = parseInt(this.settingsMap.get("Keyboard DAS")); //65.0; + var ARR = parseInt(this.settingsMap.get("Keyboard ARR")); //20.0; if(this.prevKeyboardKeys[key] != this.keyboardKeys[key]) { @@ -689,15 +673,15 @@ var UserInputs = { gamepadQueue: [], ticks: 0, - // todo: change to human readable + settingsList: ["init", - "keyboard_das", "keyboard_arr", "keyboard_harddrop", "keyboard_hold", - "keyboard_left", "keyboard_right", "keyboard_rotateccw", "keyboard_rotate", - "keyboard_down", "keyboard_pophold", "keyboard_reset", "keyboard_background", + "Keyboard DAS", "Keyboard ARR", "Keyboard Harddrop", "Keyboard Hold", + "Keyboard Left", "Keyboard Right", "Keyboard Rotateccw", "Keyboard Rotate", + "Keyboard Down", "Keyboard Pophold", "Keyboard Reset", "Keyboard Background", - "gamepad_das", "gamepad_arr", "gamepad_harddrop", "gamepad_hold", - "gamepad_left", "gamepad_right", "gamepad_rotateccw", "gamepad_rotate", - "gamepad_down","gamepad_pophold", "gamepad_reset", "gamepad_background", + "Gamepad DAS", "Gamepad ARR", "Gamepad Harddrop", "Gamepad Hold", + "Gamepad Left", "Gamepad Right", "Gamepad Rotateccw", "Gamepad Rotate", + "Gamepad Down","Gamepad Pophold", "Gamepad Reset", "Gamepad Background", "path", "SameSite"], settingsDefault: ["true", @@ -922,7 +906,7 @@ Tetris.prototype = { setDoTest: function() { if(this.isFreePlay) return; - this.doTest = true;//!this.doTest; + this.doTest = true; this._restartHandler(); }, createSettings: function () { @@ -942,8 +926,6 @@ Tetris.prototype = { console.log(document.getElementById("setting_value").value = inputs.settingsDefault[document.getElementById("settings").selectedIndex-1]); }, setSettings: function() { - //inputs.settingsDefault[document.getElementById("settings").selectedIndex-1] = document.getElementById("setting_value").value; - var newVal = document.getElementById("setting_value").value; var key = inputs.settingsList[document.getElementById("settings").selectedIndex-1]; utils.setCookie(key, newVal, 30); @@ -1003,8 +985,7 @@ Tetris.prototype = { this.shape = this.shapeQueue.shift(); this.canPopFromHoldStack = false; this.shape.resetOrigin(); - //canvas.drawHoldShape(this.holdStack); - this._draw(); // update? + this._draw(); } }, popHoldStack: function() @@ -1015,7 +996,6 @@ Tetris.prototype = { this.shapeQueue.unshift(utils.deepClone(this.shape)); this.shape = this.holdStack.pop(); this.shape.resetOrigin(); - //canvas.drawHoldShape(this.holdStack); this._draw(); } }, @@ -1035,8 +1015,6 @@ Tetris.prototype = { // Fill next queue and set next shape _fireShape: function() { - - if(this.isFreePlay == false) { while(this.shapeQueue.length <= 4) { @@ -1050,13 +1028,14 @@ Tetris.prototype = { } this.hintMino = this.hintQueue.shift(); - this.shape = this.shapeQueue.shift();// shapes.randomShape(); + this.shape = this.shapeQueue.shift(); this.currentMinoInx++; if(this.currentMinoInx > openers.getLength()) { this.hintQueue = []; this.shapeQueue = []; + // Recursion warning this._restartHandler(); } } else { @@ -1443,7 +1422,7 @@ var OpenerGenerator = { shapes.getShape(3)); break; case 2: - // DTCannon -- O I L S J Z T O I L J T O T + // DTCannon this.shapeQueue = new Array( shapes.getShape(1), shapes.getShape(6), @@ -1461,7 +1440,6 @@ var OpenerGenerator = { shapes.getShape(3)); break; case 3: - // O - 1, I - 6, L - 0, S - 5, J - 4, Z - 2, T - 3 this.shapeQueue = new Array( shapes.getShape(4), shapes.getShape(5), @@ -1471,6 +1449,8 @@ var OpenerGenerator = { shapes.getShape(1), shapes.getShape(5), shapes.getShape(3), + shapes.getShape(1), + shapes.getShape(2), shapes.getShape(6), shapes.getShape(0), shapes.getShape(4), @@ -1504,120 +1484,79 @@ var OpenerGenerator = { switch(opener) { case 0: case 1: - // Fonzie Variation - this.hintQueue = new Array( - shapes.getShape(0), - shapes.getShape(6), - shapes.getShape(1), - shapes.getShape(5), - shapes.getShape(2), - shapes.getShape(4), - shapes.getShape(3)); + // Fonzie Variation + this.hintQueue = new Array( + shapes.getShape(0), + shapes.getShape(6), + shapes.getShape(1), + shapes.getShape(5), + shapes.getShape(2), + shapes.getShape(4), + shapes.getShape(3)); // position x, position y, orientation, position x,... var hintDataList = [-1,17,1, 3,17,1, 6,18,0, 5,17,1, 3,17,0, 7,16,0, 1,17,2]; for(var i = 0; i < this.hintQueue.length; i++) { - this.hintQueue[i].x = hintDataList[i*3]; - this.hintQueue[i].y = hintDataList[i*3 + 1]; - this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i*3 + 2]); + this.hintQueue[i].x = hintDataList[i * 3]; + this.hintQueue[i].y = hintDataList[i * 3 + 1]; + this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]); } break; case 2: - // DT Cannon -- O I L S J Z T O I L J T O T + // DT Cannon this.hintQueue = new Array( - shapes.getShape(1), - shapes.getShape(6), - shapes.getShape(0), - shapes.getShape(5), - shapes.getShape(4), - shapes.getShape(2), - shapes.getShape(3), - shapes.getShape(1), - shapes.getShape(6), - shapes.getShape(0), - shapes.getShape(4), - shapes.getShape(3), - shapes.getShape(1), - shapes.getShape(3)); + shapes.getShape(1), + shapes.getShape(6), + shapes.getShape(0), + shapes.getShape(5), + shapes.getShape(4), + shapes.getShape(2), + shapes.getShape(3), + shapes.getShape(1), + shapes.getShape(6), + shapes.getShape(0), + shapes.getShape(4), + shapes.getShape(3), + shapes.getShape(1), + shapes.getShape(3)); // position x, position y, orientation, position x,... var hintDataList = [-2,18,0, 6,16,0, 6,17,1, 7,17,1, 4,17,-1, 3,17,3, 3,15,0, 5,15,0, 9,14,0, 2,13,-1, -1,15,1, 1,16,2, 3,16,1, 1,17,-1]; for(var i = 0; i < this.hintQueue.length; i++) { - this.hintQueue[i].x = hintDataList[i*3]; - this.hintQueue[i].y = hintDataList[i*3 + 1]; - this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i*3 + 2]); + this.hintQueue[i].x = hintDataList[i * 3]; + this.hintQueue[i].y = hintDataList[i * 3 + 1]; + this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]); } - /* - // O - this.hintQueue[0].x = -2; - this.hintQueue[0].y = 18; - // I - this.hintQueue[1].x = 6; - this.hintQueue[1].y = 16; - // L - this.hintQueue[2].x = 6; - this.hintQueue[2].y = 17; - this.hintQueue[2].state = this.hintQueue[2].nextState(1); - // S - this.hintQueue[3].x = 7; - this.hintQueue[3].y = 17; - this.hintQueue[3].state = this.hintQueue[3].nextState(1); - // J - this.hintQueue[4].x = 4; - this.hintQueue[4].y = 17; - this.hintQueue[4].state = this.hintQueue[4].nextState(-1); - // Z - this.hintQueue[5].x = 3; - this.hintQueue[5].y = 17; - this.hintQueue[5].state = this.hintQueue[5].nextState(3); - // T - this.hintQueue[6].x = 3; - this.hintQueue[6].y = 15; - // O - this.hintQueue[7].x = 5; - this.hintQueue[7].y = 15; - // I - this.hintQueue[8].x = 9; - this.hintQueue[8].y = 14; - // L - this.hintQueue[9].x = 2; - this.hintQueue[9].y = 13; - this.hintQueue[9].state = this.hintQueue[9].nextState(-1); - // J - this.hintQueue[10].x = -1; - this.hintQueue[10].y = 15; - this.hintQueue[10].state = this.hintQueue[10].nextState(1); - // T - this.hintQueue[11].x = 1; - this.hintQueue[11].y = 16; - this.hintQueue[11].state = this.hintQueue[11].nextState(2); - // O - this.hintQueue[12].x = 3; - this.hintQueue[12].y = 16; - this.hintQueue[12].state = this.hintQueue[12].nextState(1); - // T - this.hintQueue[13].x = 1; - this.hintQueue[13].y = 17; - this.hintQueue[13].state = this.hintQueue[13].nextState(-1); - */ break; case 3: - this.shapeQueue = new Array( - shapes.getShape(4), - shapes.getShape(5), - shapes.getShape(6), - shapes.getShape(0), - shapes.getShape(2), - shapes.getShape(1), - shapes.getShape(5), - shapes.getShape(3), - shapes.getShape(6), - shapes.getShape(0), - shapes.getShape(4), - shapes.getShape(3)); + //MKO Stacking // O - 1, I - 6, L - 0, S - 5, J - 4, Z - 2, T - 3 + this.hintQueue = new Array( + shapes.getShape(4), + shapes.getShape(5), + shapes.getShape(6), + shapes.getShape(0), + shapes.getShape(2), + shapes.getShape(1), + shapes.getShape(5), + shapes.getShape(3), + shapes.getShape(1), + shapes.getShape(2), + shapes.getShape(6), + shapes.getShape(0), + shapes.getShape(4), + shapes.getShape(3)); + + // position x, position y, orientation, position x,... + var hintDataList = [0,18,0, 0,16,-1, 9,16,0, 4,18,0, 4,16,1, 5,18,0, 1,15,-1, 2,17,2, 5,18,0, 3,17,1, 6,15,1, 0,15,2, 0,14,0, 2,16,2]; + + for(var i = 0; i < this.hintQueue.length; i++) { + this.hintQueue[i].x = hintDataList[i * 3]; + this.hintQueue[i].y = hintDataList[i * 3 + 1]; + this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]); + } break; default: return; diff --git a/src/input.js b/src/input.js index 1c82c8c..7f2f6e5 100644 --- a/src/input.js +++ b/src/input.js @@ -5,24 +5,17 @@ var utils = require('./utils.js'); var UserInputs = { init() { this.settingsMap = new Map(); - var options = ""; + // var init = utils.getCookie("init"); // if(init == "") for(var i in this.settingsList) utils.setCookie(this.settingsList[i], this.settingsDefault[i], 30); // cookies expire in 30 days - - - // else // for(var i in this.settingsList) // this.settingsDefault[i] = utils.getCookie(this.settingsList[i]); for(var i in this.settingsList) this.settingsMap.set(this.settingsList[i], this.settingsDefault[i]); - - - - //document.getElementById("setting").innerHTML = settings; document.addEventListener('keydown', this.keyDown.bind(this)); document.addEventListener('keyup', this.keyUp.bind(this)); @@ -46,31 +39,21 @@ var UserInputs = { }, processGamepadInput() { - // this.gamepadButtonsDown("RB"); // hard drop - // this.gamepadButtonsDown("LB"); // hold - // this.gamepadButtonsDown("A"); // rotate counter - // this.gamepadButtonsDown("B"); // rotate cwise - // this.gamepadButtonsDown("DPad-Up"); // Pop hold stack - // this.gamepadButtonsDown("Back"); // reset - //this.gamepadButtonsDown("X"); - //this.gamepadButtonsDown("Y"); - - this.gamepadButtonsDown(this.settingsMap.get("gamepad_harddrop")); // hard drop - this.gamepadButtonsDown(this.settingsMap.get("gamepad_hold")); // hold - this.gamepadButtonsDown(this.settingsMap.get("gamepad_rotateccw")); // rotate counter - this.gamepadButtonsDown(this.settingsMap.get("gamepad_rotate")); // rotate cwise - this.gamepadButtonsDown(this.settingsMap.get("gamepad_pophold")); // Pop hold stack - this.gamepadButtonsDown(this.settingsMap.get("gamepad_reset")); // reset + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Harddrop")); // hard drop + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Hold")); // hold + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Rotateccw")); // rotate counter + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Rotate")); // rotate cwise + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Pophold")); // Pop hold stack + this.gamepadButtonsDown(this.settingsMap.get("Gamepad Reset")); // reset return; }, - processGamepadDPad() - { - this.gamepadDPadDown(this.settingsMap.get("gamepad_left")); // shift left - this.gamepadDPadDown(this.settingsMap.get("gamepad_right")); // shift right - this.gamepadDPadDown(this.settingsMap.get("gamepad_down")); // down + processGamepadDPad() { + this.gamepadDPadDown(this.settingsMap.get("Gamepad Left")); // shift left + this.gamepadDPadDown(this.settingsMap.get("Gamepad Right")); // shift right + this.gamepadDPadDown(this.settingsMap.get("Gamepad Down")); // down return; }, @@ -109,8 +92,8 @@ var UserInputs = { // Direction Pad gamepadDPadDown(finds) { - var DAS = parseInt(this.settingsMap.get("gamepad_das")); //65.0; - var ARR = parseInt(this.settingsMap.get("gamepad_arr")); //20.0; + var DAS = parseInt(this.settingsMap.get("Gamepad DAS")); //65.0; + var ARR = parseInt(this.settingsMap.get("Gamepad ARR")); //20.0; var isContained = this.gpButtons.includes(finds); var isPrevContained = this.prevGpButtons.includes(finds); @@ -139,15 +122,16 @@ var UserInputs = { return; }, + // doing a lot of back and forth between strings and integers to represtent the same thing -- todo: fix processKeys() { - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_harddrop"))); //32); // Space - hard drop - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_rotate"))); //88); // X - rotate - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_rotateccw"))); //90); // Z - rotateccw - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_hold"))); //16); // shift - push hold stack - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_pophold"))); // ctrl - pop hold stack - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_background"))); // q - turn off background - this.processKeyDown(parseInt(this.settingsMap.get("keyboard_reset"))); // r - reset - //this.processKeyDown(this.settingsMap.get("keyboard_hold"))); // c - pop hold stack + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Harddrop"))); //32); // Space - hard drop + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Rotate"))); //88); // X - rotate + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Rotateccw"))); //90); // Z - rotateccw + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Hold"))); //16); // shift - push hold stack + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Pophold"))); // ctrl - pop hold stack + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Background"))); // q - turn off background + this.processKeyDown(parseInt(this.settingsMap.get("Keyboard Reset"))); // r - reset + //this.processKeyDown(this.settingsMap.get("Keyboard hold"))); // c - pop hold stack }, // keyboard keys z,x,space @@ -184,14 +168,14 @@ var UserInputs = { }, processKeyShift() { - this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("keyboard_left"))); //39); // right - this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("keyboard_right"))); //37); // left - this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("keyboard_down"))); // down + this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("Keyboard Left"))); //39); // right + this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("Keyboard Right"))); //37); // left + this.processKeyboardArrowKeys(parseInt(this.settingsMap.get("Keyboard Down"))); // down }, // Direction arrows processKeyboardArrowKeys(key) { - var DAS = parseInt(this.settingsMap.get("keyboard_das")); //65.0; - var ARR = parseInt(this.settingsMap.get("keyboard_arr")); //20.0; + var DAS = parseInt(this.settingsMap.get("Keyboard DAS")); //65.0; + var ARR = parseInt(this.settingsMap.get("Keyboard ARR")); //20.0; if(this.prevKeyboardKeys[key] != this.keyboardKeys[key]) { @@ -265,15 +249,15 @@ var UserInputs = { gamepadQueue: [], ticks: 0, - // todo: change to human readable + settingsList: ["init", - "keyboard_das", "keyboard_arr", "keyboard_harddrop", "keyboard_hold", - "keyboard_left", "keyboard_right", "keyboard_rotateccw", "keyboard_rotate", - "keyboard_down", "keyboard_pophold", "keyboard_reset", "keyboard_background", + "Keyboard DAS", "Keyboard ARR", "Keyboard Harddrop", "Keyboard Hold", + "Keyboard Left", "Keyboard Right", "Keyboard Rotateccw", "Keyboard Rotate", + "Keyboard Down", "Keyboard Pophold", "Keyboard Reset", "Keyboard Background", - "gamepad_das", "gamepad_arr", "gamepad_harddrop", "gamepad_hold", - "gamepad_left", "gamepad_right", "gamepad_rotateccw", "gamepad_rotate", - "gamepad_down","gamepad_pophold", "gamepad_reset", "gamepad_background", + "Gamepad DAS", "Gamepad ARR", "Gamepad Harddrop", "Gamepad Hold", + "Gamepad Left", "Gamepad Right", "Gamepad Rotateccw", "Gamepad Rotate", + "Gamepad Down","Gamepad Pophold", "Gamepad Reset", "Gamepad Background", "path", "SameSite"], settingsDefault: ["true", diff --git a/src/main.js b/src/main.js index 901dc8d..10c3e36 100644 --- a/src/main.js +++ b/src/main.js @@ -205,7 +205,7 @@ Tetris.prototype = { setDoTest: function() { if(this.isFreePlay) return; - this.doTest = true;//!this.doTest; + this.doTest = true; this._restartHandler(); }, createSettings: function () { @@ -225,8 +225,6 @@ Tetris.prototype = { console.log(document.getElementById("setting_value").value = inputs.settingsDefault[document.getElementById("settings").selectedIndex-1]); }, setSettings: function() { - //inputs.settingsDefault[document.getElementById("settings").selectedIndex-1] = document.getElementById("setting_value").value; - var newVal = document.getElementById("setting_value").value; var key = inputs.settingsList[document.getElementById("settings").selectedIndex-1]; utils.setCookie(key, newVal, 30); @@ -286,8 +284,7 @@ Tetris.prototype = { this.shape = this.shapeQueue.shift(); this.canPopFromHoldStack = false; this.shape.resetOrigin(); - //canvas.drawHoldShape(this.holdStack); - this._draw(); // update? + this._draw(); } }, popHoldStack: function() @@ -298,7 +295,6 @@ Tetris.prototype = { this.shapeQueue.unshift(utils.deepClone(this.shape)); this.shape = this.holdStack.pop(); this.shape.resetOrigin(); - //canvas.drawHoldShape(this.holdStack); this._draw(); } }, @@ -318,8 +314,6 @@ Tetris.prototype = { // Fill next queue and set next shape _fireShape: function() { - - if(this.isFreePlay == false) { while(this.shapeQueue.length <= 4) { @@ -333,13 +327,14 @@ Tetris.prototype = { } this.hintMino = this.hintQueue.shift(); - this.shape = this.shapeQueue.shift();// shapes.randomShape(); + this.shape = this.shapeQueue.shift(); this.currentMinoInx++; if(this.currentMinoInx > openers.getLength()) { this.hintQueue = []; this.shapeQueue = []; + // Recursion warning this._restartHandler(); } } else { diff --git a/src/openers.js b/src/openers.js index e9c1a1c..d3b7444 100644 --- a/src/openers.js +++ b/src/openers.js @@ -29,7 +29,7 @@ var OpenerGenerator = { shapes.getShape(3)); break; case 2: - // DTCannon -- O I L S J Z T O I L J T O T + // DTCannon this.shapeQueue = new Array( shapes.getShape(1), shapes.getShape(6), @@ -47,7 +47,6 @@ var OpenerGenerator = { shapes.getShape(3)); break; case 3: - // O - 1, I - 6, L - 0, S - 5, J - 4, Z - 2, T - 3 this.shapeQueue = new Array( shapes.getShape(4), shapes.getShape(5), @@ -57,6 +56,8 @@ var OpenerGenerator = { shapes.getShape(1), shapes.getShape(5), shapes.getShape(3), + shapes.getShape(1), + shapes.getShape(2), shapes.getShape(6), shapes.getShape(0), shapes.getShape(4), @@ -90,120 +91,79 @@ var OpenerGenerator = { switch(opener) { case 0: case 1: - // Fonzie Variation - this.hintQueue = new Array( - shapes.getShape(0), - shapes.getShape(6), - shapes.getShape(1), - shapes.getShape(5), - shapes.getShape(2), - shapes.getShape(4), - shapes.getShape(3)); + // Fonzie Variation + this.hintQueue = new Array( + shapes.getShape(0), + shapes.getShape(6), + shapes.getShape(1), + shapes.getShape(5), + shapes.getShape(2), + shapes.getShape(4), + shapes.getShape(3)); // position x, position y, orientation, position x,... var hintDataList = [-1,17,1, 3,17,1, 6,18,0, 5,17,1, 3,17,0, 7,16,0, 1,17,2]; for(var i = 0; i < this.hintQueue.length; i++) { - this.hintQueue[i].x = hintDataList[i*3]; - this.hintQueue[i].y = hintDataList[i*3 + 1]; - this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i*3 + 2]); + this.hintQueue[i].x = hintDataList[i * 3]; + this.hintQueue[i].y = hintDataList[i * 3 + 1]; + this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]); } break; case 2: - // DT Cannon -- O I L S J Z T O I L J T O T + // DT Cannon this.hintQueue = new Array( - shapes.getShape(1), - shapes.getShape(6), - shapes.getShape(0), - shapes.getShape(5), - shapes.getShape(4), - shapes.getShape(2), - shapes.getShape(3), - shapes.getShape(1), - shapes.getShape(6), - shapes.getShape(0), - shapes.getShape(4), - shapes.getShape(3), - shapes.getShape(1), - shapes.getShape(3)); + shapes.getShape(1), + shapes.getShape(6), + shapes.getShape(0), + shapes.getShape(5), + shapes.getShape(4), + shapes.getShape(2), + shapes.getShape(3), + shapes.getShape(1), + shapes.getShape(6), + shapes.getShape(0), + shapes.getShape(4), + shapes.getShape(3), + shapes.getShape(1), + shapes.getShape(3)); // position x, position y, orientation, position x,... var hintDataList = [-2,18,0, 6,16,0, 6,17,1, 7,17,1, 4,17,-1, 3,17,3, 3,15,0, 5,15,0, 9,14,0, 2,13,-1, -1,15,1, 1,16,2, 3,16,1, 1,17,-1]; for(var i = 0; i < this.hintQueue.length; i++) { - this.hintQueue[i].x = hintDataList[i*3]; - this.hintQueue[i].y = hintDataList[i*3 + 1]; - this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i*3 + 2]); + this.hintQueue[i].x = hintDataList[i * 3]; + this.hintQueue[i].y = hintDataList[i * 3 + 1]; + this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]); } - /* - // O - this.hintQueue[0].x = -2; - this.hintQueue[0].y = 18; - // I - this.hintQueue[1].x = 6; - this.hintQueue[1].y = 16; - // L - this.hintQueue[2].x = 6; - this.hintQueue[2].y = 17; - this.hintQueue[2].state = this.hintQueue[2].nextState(1); - // S - this.hintQueue[3].x = 7; - this.hintQueue[3].y = 17; - this.hintQueue[3].state = this.hintQueue[3].nextState(1); - // J - this.hintQueue[4].x = 4; - this.hintQueue[4].y = 17; - this.hintQueue[4].state = this.hintQueue[4].nextState(-1); - // Z - this.hintQueue[5].x = 3; - this.hintQueue[5].y = 17; - this.hintQueue[5].state = this.hintQueue[5].nextState(3); - // T - this.hintQueue[6].x = 3; - this.hintQueue[6].y = 15; - // O - this.hintQueue[7].x = 5; - this.hintQueue[7].y = 15; - // I - this.hintQueue[8].x = 9; - this.hintQueue[8].y = 14; - // L - this.hintQueue[9].x = 2; - this.hintQueue[9].y = 13; - this.hintQueue[9].state = this.hintQueue[9].nextState(-1); - // J - this.hintQueue[10].x = -1; - this.hintQueue[10].y = 15; - this.hintQueue[10].state = this.hintQueue[10].nextState(1); - // T - this.hintQueue[11].x = 1; - this.hintQueue[11].y = 16; - this.hintQueue[11].state = this.hintQueue[11].nextState(2); - // O - this.hintQueue[12].x = 3; - this.hintQueue[12].y = 16; - this.hintQueue[12].state = this.hintQueue[12].nextState(1); - // T - this.hintQueue[13].x = 1; - this.hintQueue[13].y = 17; - this.hintQueue[13].state = this.hintQueue[13].nextState(-1); - */ break; case 3: - this.shapeQueue = new Array( - shapes.getShape(4), - shapes.getShape(5), - shapes.getShape(6), - shapes.getShape(0), - shapes.getShape(2), - shapes.getShape(1), - shapes.getShape(5), - shapes.getShape(3), - shapes.getShape(6), - shapes.getShape(0), - shapes.getShape(4), - shapes.getShape(3)); + //MKO Stacking // O - 1, I - 6, L - 0, S - 5, J - 4, Z - 2, T - 3 + this.hintQueue = new Array( + shapes.getShape(4), + shapes.getShape(5), + shapes.getShape(6), + shapes.getShape(0), + shapes.getShape(2), + shapes.getShape(1), + shapes.getShape(5), + shapes.getShape(3), + shapes.getShape(1), + shapes.getShape(2), + shapes.getShape(6), + shapes.getShape(0), + shapes.getShape(4), + shapes.getShape(3)); + + // position x, position y, orientation, position x,... + var hintDataList = [0,18,0, 0,16,-1, 9,16,0, 4,18,0, 4,16,1, 5,18,0, 1,15,-1, 2,17,2, 5,18,0, 3,17,1, 6,15,1, 0,15,2, 0,14,0, 2,16,2]; + + for(var i = 0; i < this.hintQueue.length; i++) { + this.hintQueue[i].x = hintDataList[i * 3]; + this.hintQueue[i].y = hintDataList[i * 3 + 1]; + this.hintQueue[i].state = this.hintQueue[i].nextState(hintDataList[i * 3 + 2]); + } break; default: return;