private void Awake() { boardLogic = new BoardLogic(width, height); boardLogic.FillBoardWithCells(); activePieces = new List <BoardPieceController>(); inactivePieces = new List <BoardPieceController>(); for (int i = 0; i < (width * height) * 2; i++) { BoardPieceController piece = GameObject.Instantiate(piecePrefab, inactiveHolder); piece.gameObject.SetActive(false); inactivePieces.Add(piece); } pieceSprite = new List <Sprite>(); pieceSprite.Add(greenPiece); pieceSprite.Add(bluePiece); pieceSprite.Add(purplePiece); pieceSprite.Add(redPiece); pieceSprite.Add(yellowPiece); CreateFromBoard(); canMove = true; tweeningPiece = new List <BoardPieceController>(); boardState = START_DELAY; delayer = 1; time = 15; timeDisplay.text = time.ToString(TIME_SCHEME); startPanel.SetActive(true); startDelayCounter = Time.time; }
public void RemovePiece(BoardPieceController bpc) { activePieces.Remove(bpc); bpc.gameObject.SetActive(false); bpc.transform.SetParent(inactiveHolder); inactivePieces.Add(bpc); tweeningPiece.Remove(bpc); }
public void RemovePiece(int bpc) { BoardPieceController boardPieceController = activePieces[bpc]; activePieces.RemoveAt(bpc); boardPieceController.gameObject.SetActive(false); boardPieceController.transform.SetParent(inactiveHolder); inactivePieces.Add(boardPieceController); }
private void CreateFromBoard() { int[] board = boardLogic.GetBoard(); boardLogic.PrintBoard(); for (int i = 0; i < board.Length; i++) { int y = Mathf.FloorToInt(i / width); int x = i - (y * width); int pieceType = board[i]; BoardPieceController newPiece = inactivePieces[0]; inactivePieces.RemoveAt(0); newPiece.transform.SetParent(pieceHolder); newPiece.x = x; newPiece.y = y; newPiece.gameManager = this; newPiece.SetSprite(pieceSprite[pieceType]); newPiece.gameObject.SetActive(true); newPiece.transform.localPosition = new Vector3(x * pieceWidth, y * InvertedHeight, 0); activePieces.Add(newPiece); } }
public void RefillBoard() { List <int> positionsToRefil = new List <int>(); int[] board = boardLogic.GetBoard(); for (int i = 0; i < board.Length; i++) { if (board[i] == -1) { positionsToRefil.Add(i); } } boardLogic.RefillBoard(); board = boardLogic.GetBoard(); for (int v = 0; v < positionsToRefil.Count; v++) { int i = positionsToRefil[v]; int y = Mathf.FloorToInt(i / width); int x = i - (y * width); int pieceType = board[i]; BoardPieceController newPiece = inactivePieces[0]; inactivePieces.RemoveAt(0); newPiece.transform.SetParent(pieceHolder); newPiece.x = x; newPiece.y = y; newPiece.gameManager = this; newPiece.SetSprite(pieceSprite[pieceType]); newPiece.gameObject.SetActive(true); newPiece.transform.localPosition = new Vector3(x * pieceWidth, 20, 0); newPiece.transform.localScale = new Vector3(1, 1, 1); activePieces.Add(newPiece); tweeningPiece.Add(newPiece); newPiece.ShiftDownOnFill(y * InvertedHeight); } }
public void PieceTweenDone(BoardPieceController bpc) { tweeningPiece.Remove(bpc); }