public void HoldPiece() { if (cGameState == GameState.Running) { if (hPiece.GetTetraType().Equals(Tetramino.TetraType.Empty)) { hPiece = cPiece.Hold(); cPiece = nPiece.Activate(StartPos); nPiece = Tetramino.NextPiece(); } else { Tetramino tmpPiece = hPiece; hPiece = cPiece.Hold(); cPiece = tmpPiece.Activate(cPiece.GetLocation()); // FIX while (MoveCollision(new Point(0, 0))) { RotatePiece(); if (MoveCollision(new Point(0, 0))) { RotatePiece(); } else { return; } if (MoveCollision(new Point(0, 0))) { RotatePiece(); } else { return; } if (MoveCollision(new Point(0, 0))) { RotatePiece(); } else { return; } cPiece.MoveUp(); } } } }
private void NextPiece() { cPiece = nPiece.Activate(StartPos); nPiece = Tetramino.NextPiece(); }