/// <summary> /// Called once every frame. Checks for player input. /// </summary> private void FixedUpdate() { if (GameEngine.instance.lineClonePiecesLeft == 0) { GameEngine.instance.lineClonePiecesLeft = GameEngine.instance.lineClonePerPiece[GameEngine.instance.curSect]; BoardController.instance.CloneLineToBottom(); } else if (GameEngine.instance.lineClonePiecesLeft > GameEngine.instance.lineClonePerPiece[GameEngine.instance.curSect]) { GameEngine.instance.lineClonePiecesLeft = GameEngine.instance.lineClonePerPiece[GameEngine.instance.curSect]; } DAStuning = (int)GameEngine.instance.DAS; if (GameEngine.instance.framestepped && !MenuEngine.instance.GameOver) { frames++; if (piecemovementlocked == false) { gravityTiles = gravityTiles + GameEngine.instance.gravity; } if (nextpiecequeued == true) { GameEngine.instance.AREf++; if (GameEngine.instance.AREf >= (int)Math.Floor(GameEngine.instance.ARE)) { nextpiecequeued = false; GameEngine.instance.lineClonePiecesLeft--; if (GameEngine.instance.lineClonePiecesLeft == 0) { GameEngine.instance.lineClonePiecesLeft = GameEngine.instance.lineClonePerPiece[GameEngine.instance.curSect]; BoardController.instance.CloneLineToBottom(); } else if (GameEngine.instance.lineClonePiecesLeft > GameEngine.instance.lineClonePerPiece[GameEngine.instance.curSect]) { GameEngine.instance.lineClonePiecesLeft = GameEngine.instance.lineClonePerPiece[GameEngine.instance.curSect]; } SpawnPiece(bag[pieces]); GameEngine.instance.AREf = 0; } if ((GameEngine.instance.Inputs[2] || GameEngine.instance.Inputs[6]) && (!GameEngine.instance.Inputs[1]) && (!GameEngine.instance.Inputs[3])) { IRSCW = true; IRSCCW = false; IRSUD = false; } else if ((!GameEngine.instance.Inputs[2] && !GameEngine.instance.Inputs[6]) && (GameEngine.instance.Inputs[1]) && !(GameEngine.instance.Inputs[3])) { IRSCCW = true; IRSCW = false; IRSUD = false; } else if ((!GameEngine.instance.Inputs[2] && !GameEngine.instance.Inputs[6]) && (!GameEngine.instance.Inputs[1]) && (GameEngine.instance.Inputs[3])) { IRSCCW = false; IRSCW = false; IRSUD = true; } else { IRSCCW = false; IRSCW = false; IRSUD = false; } if (GameEngine.instance.Inputs[4]) { IHS = true; } else { IHS = false; } if (GameEngine.instance.RS == RotationSystems.ARS) { IARS = true; } } else { IRSCCW = false; IRSCW = false; IRSUD = false; IARS = false; IHS = false; } if (GameEngine.instance.movement.y < -0.5 && !piecemovementlocked) { gravityTiles += (float)GameEngine.instance.gravity * (float)GameEngine.instance.SDF * (GameEngine.instance.movement.y * -1); } if (GameEngine.instance.movement.x < -0.5) { if (DASfl == 0 && !piecemovementlocked) { MoveCurPiece(Vector2Int.left); } DASfl++; if (DASfl > DAStuning && !piecemovementlocked) { MoveCurPiece(Vector2Int.left); if (ARRtuning == 0) { for (int i = 0; i < 10; i++) { MoveCurPiece(Vector2Int.left); } } } } else { DASfl = 0; } if (GameEngine.instance.movement.x > 0.5) { if (DASfr == 0 && !piecemovementlocked) { MoveCurPiece(Vector2Int.right); } DASfr++; if (DASfr > DAStuning && !piecemovementlocked) { MoveCurPiece(Vector2Int.right); if (ARRtuning == 0) { for (int i = 0; i < 10; i++) { MoveCurPiece(Vector2Int.right); } } } } else { DASfr = 0; } // if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.KeypadEnter)) // { // if(curPieceController != null) // { // return; // } // UpdatePieceBag(); // } if (Input.GetKeyDown(KeyCode.Escape)) { MenuEngine.instance.GameOver = true; MenuEngine.instance.IntentionalGameOver = true; MenuEngine.instance.frames = 300; } if (((GameEngine.instance.Inputs[4] && !PrevInputs[4]) || IHS) && !piecemovementlocked && allowHold) { if (IHS) { gameAudio.PlayOneShot(audioIHS); IHSexecuted = true; } ExecuteHold(); } if ((((GameEngine.instance.Inputs[2] && !PrevInputs[2]) || (GameEngine.instance.Inputs[6] && !PrevInputs[6])) || IRSCW) && !piecemovementlocked) { curPieceController.RotatePiece(true, true, false); if (IRSCW) { gameAudio.PlayOneShot(audioIRS); } } if (((GameEngine.instance.Inputs[1] && !PrevInputs[1]) || IRSCCW) && !piecemovementlocked) { curPieceController.RotatePiece(false, true, false); if (IRSCCW) { gameAudio.PlayOneShot(audioIRS); } } if (((GameEngine.instance.Inputs[3] && !PrevInputs[3]) || IRSUD) && !piecemovementlocked) { curPieceController.RotatePiece(true, false, true); if (IRSUD) { gameAudio.PlayOneShot(audioIRS); } } if (IARS && !piecemovementlocked) { curPieceController.RotatePiece(true, false, true); } // if (Input.GetKeyDown(KeyCode.Alpha0)) // { // SpawnDebug(0); // } // if (Input.GetKeyDown(KeyCode.Alpha1)) // { // SpawnDebug(1); // } // if (Input.GetKeyDown(KeyCode.Alpha2)) // { // SpawnDebug(2); // } // if (Input.GetKeyDown(KeyCode.Alpha3)) // { // SpawnDebug(3); // } // if (Input.GetKeyDown(KeyCode.Alpha4)) // { // SpawnDebug(4); // } // if (Input.GetKeyDown(KeyCode.Alpha5)) // { // SpawnDebug(5); // } // if (Input.GetKeyDown(KeyCode.Alpha6)) // { // SpawnDebug(6); // } if (!curPieceController.CanMovePiece(Vector2Int.zero) && !piecemovementlocked) { curPieceController.SendPieceToFloor(); } for (int i = 0; i < (int)Math.Floor(gravityTiles); i++) { if (piecemovementlocked == false) { MoveCurPiece(Vector2Int.down); } } gravityTiles -= (float)Math.Floor(gravityTiles); if (((GameEngine.instance.Inputs[0]) && !PrevInputs[0]) && !piecemovementlocked) { curPieceController.SendPieceToFloor(); } for (int i = 1; i < 7; i++) { PrevInputs[i] = GameEngine.instance.Inputs[i]; } if (!piecemovementlocked || PrevInputs[0] == true) { PrevInputs[0] = GameEngine.instance.Inputs[0]; } } }