Example #1
0
 private static int getPieceNumber(Board.PlayerTurn playerTurn)
 {
     if (playerTurn == Board.PlayerTurn.X_TURN)
     {
         return(2);
     }
     else if (playerTurn == Board.PlayerTurn.O_TURN)
     {
         return(1);
     }
     return(0);
 }
    void OnMouseDown()
    {
        Board.PlayerTurn turn = FindObjectOfType <GameController>().board.turn;
        if ((blockType == GameController.BlockState.X && turn == Board.PlayerTurn.X_TURN) ||
            (blockType == GameController.BlockState.O && turn == Board.PlayerTurn.O_TURN))
        {
            if (!SceneProperties.aiPlaying ||
                (SceneProperties.aiPlaying && SceneProperties.aiTurn != FindObjectOfType <GameController>().board.turn))
            {
                SceneProperties.heldPiece = true;
                state = PieceState.HELD;
//                Debug.Log("ON MOUSE DOWN: " + state);
            }
        }
    }
Example #3
0
 public void setCanRotate(bool soundOn = true)
 {
     if (counter > TIME_ROTATE + .1f)
     {
         if (clip != null && soundOn)
         {
             AudioSource.PlayClipAtPoint(clip, Vector3.zero);
         }
         //Debug.Log ("Change of Turn!");
         iTween.RotateAdd(gameObject, new Vector3(180, 0, 0), TIME_ROTATE);
         if (turn == Board.PlayerTurn.X_TURN)
         {
             turn = Board.PlayerTurn.O_TURN;
         }
         else
         {
             turn = Board.PlayerTurn.X_TURN;
         }
         counter = 0f;
     }
 }
    void OnMouseUp()
    {
        GameController gameController = FindObjectOfType <GameController>();

        Board.PlayerTurn turn = gameController.board.turn;

        if ((blockType == GameController.BlockState.X && turn == Board.PlayerTurn.X_TURN) ||
            (blockType == GameController.BlockState.O && turn == Board.PlayerTurn.O_TURN))
        {
            if (!SceneProperties.aiPlaying || (SceneProperties.aiPlaying && SceneProperties.aiTurn != gameController.board.turn))
            {
                //find if block is hit:
                SceneProperties.heldPiece = false;
                state = PieceState.RETURNING;

                //TODO fix this for block controller
                bool onBoard = false;

                Vector3 mousePos = Input.mousePosition;

                RaycastHit2D[] hits = AnimationHelper.getRayCastFromScreen(mousePos);
                foreach (RaycastHit2D hit in hits)
                {
                    if (hit.collider.gameObject != this.gameObject)
                    {
                        BlockController block = hit.collider.gameObject.GetComponent <BlockController>();
                        if (block != null && block.state == GameController.BlockState.NUETRAL)
                        {
                            BlockController.Action actionPerformed = block.clickSquare(fromBlock, false);
                            if ((actionPerformed == BlockController.Action.PLACED && returnPlace == startPos) ||
                                actionPerformed == BlockController.Action.MOVED && returnPlace == placePos)
                            {
                                block.clickSquare(fromBlock, true);
                                this.transform.position = block.transform.position;
                                state       = PieceState.PLACED;
                                placePos    = transform.position;
                                returnPlace = placePos;
                                fromBlock   = block;
                            }
                            else
                            {
                                //FindObjectOfType<GameController>().undo();
                            }
                        }
                        else if (hit.collider.gameObject.tag == "Board")
                        {
                            onBoard = true;
                        }
                    }
                }
                //if not placed and picked up happens, then add back to pile.
                if (state != PieceState.PLACED && onBoard == false)
                {
                    if (fromBlock != null && BlockController.Action.PICKED_UP == fromBlock.clickSquare(fromBlock, false))
                    {
                        fromBlock.clickSquare(fromBlock, true);
                        returnToStart();
                    }
                }

                Vector3 pos = transform.position;
                moveDist = new Vector3((returnPlace.x - pos.x) / duration, (returnPlace.y - pos.y) / duration, 0);
//                Debug.Log("ON MOUSE UP: " + state);
            }
        }
    }