Exemplo n.º 1
0
    public static Directionale ConvertIntToDir(int dir)
    {
        Directionale res = Directionale.In;

        switch (dir)
        {
        case 0:
            res = Directionale.Left;
            break;

        case 1:
            res = Directionale.Up;
            break;

        case 2:
            res = Directionale.Right;
            break;

        case 3:
            res = Directionale.Down;
            break;

        case 4:
            res = Directionale.In;
            break;

        default:
            res = Directionale.In;
            break;
        }
        return(res);
    }
Exemplo n.º 2
0
    public static Square GetSquareInDirection(Pawn pawn, Directionale dir)
    {
        Square res = null;

        if (CheckValidMove(pawn, dir))
        {
            switch (dir)
            {
            case Directionale.Up:
                res = Board.BoardInst.Squares[(int)pawn.transform.position.x, (int)pawn.transform.position.y + 1];
                break;

            case Directionale.Right:
                res = Board.BoardInst.Squares[(int)pawn.transform.position.x + 1, (int)pawn.transform.position.y];
                break;

            case Directionale.Down:
                res = Board.BoardInst.Squares[(int)pawn.transform.position.x, (int)pawn.transform.position.y - 1];

                break;

            case Directionale.Left:
                res = Board.BoardInst.Squares[(int)pawn.transform.position.x - 1, (int)pawn.transform.position.y];
                break;

            case Directionale.In:
                if (pawn.Player1Owned)
                {
                    res = Board.BoardInst.Squares[2, 0];
                }
                else
                {
                    res = Board.BoardInst.Squares[2, 4];
                }
                break;

            default:
                Debug.Log("Pawn could not find a square");
                break;
            }
        }
        return(res);
    }
Exemplo n.º 3
0
    public static bool CheckValidMove(Pawn pawn, Directionale dir)
    {
        bool CanIMove = false;

        switch (dir)
        {
        case Directionale.Up:

            if (pawn.transform.position.y < 4)
            {
                if (Board.BoardInst.Squares[(int)pawn.transform.position.x, (int)pawn.transform.position.y + 1].Occupant == null)
                {
                    Vector3 vec = pawn.transform.position + Vector3.up;
                    if (vec != pawn.lastPos)
                    {
                        CanIMove = true;
                    }
                }
            }


            break;

        case Directionale.Right:
            if (pawn.transform.position.x < 4)
            {
                if (Board.BoardInst.Squares[(int)pawn.transform.position.x + 1, (int)pawn.transform.position.y].Occupant == null)
                {
                    Vector3 vec = pawn.transform.position + Vector3.right;
                    if (vec != pawn.lastPos)
                    {
                        CanIMove = true;
                    }
                }
            }

            break;

        case Directionale.Down:
            if (pawn.transform.position.y > 0)
            {
                if (Board.BoardInst.Squares[(int)pawn.transform.position.x, (int)pawn.transform.position.y - 1].Occupant == null)
                {
                    Vector3 vec = pawn.transform.position + Vector3.down;
                    if (vec != pawn.lastPos)
                    {
                        CanIMove = true;
                    }
                }
            }
            break;

        case Directionale.Left:
            if (pawn.transform.position.x > 0)
            {
                if (Board.BoardInst.Squares[(int)pawn.transform.position.x - 1, (int)pawn.transform.position.y].Occupant == null)
                {
                    Vector3 vec = pawn.transform.position + Vector3.left;
                    if (vec != pawn.lastPos)
                    {
                        CanIMove = true;
                    }
                }
            }


            break;

        case Directionale.In:
            if (pawn.Player1Owned)
            {
                if (Board.BoardInst.Squares[2, 0].Occupant == null)
                {
                    CanIMove = true;
                }
                else
                {
                    if (!Board.BoardInst.Squares[2, 0].Occupant.GetComponent <Pawn>().Player1Owned)
                    {
                        CanIMove = true;
                    }
                }
            }
            else
            {
                if (Board.BoardInst.Squares[2, 4].Occupant == null)
                {
                    CanIMove = true;
                }
                else
                {
                    if (Board.BoardInst.Squares[2, 4].Occupant.GetComponent <Pawn>().Player1Owned)
                    {
                        CanIMove = true;
                    }
                }
            }
            break;

        default:
            throw new ArgumentOutOfRangeException("dir", dir, null);
        }
        return(CanIMove);
    }
Exemplo n.º 4
0
    public bool CheckValidMove(Directionale dir)
    {
        bool CanIMove = false;

        switch (dir)
        {
        case Directionale.Up:

            if (transform.position.y < 4)
            {
                if (Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y + 1].Occupant == null)
                {
                    Vector3 vec = transform.position + Vector3.up;
                    if (vec != lastPos)
                    {
                        CanIMove = true;
                    }
                }
            }


            break;

        case Directionale.Right:
            if (transform.position.x < 4)
            {
                if (Board.BoardInst.Squares[(int)transform.position.x + 1, (int)transform.position.y].Occupant == null)
                {
                    Vector3 vec = transform.position + Vector3.right;
                    if (vec != lastPos)
                    {
                        CanIMove = true;
                    }
                }
            }

            break;

        case Directionale.Down:
            if (transform.position.y > 0)
            {
                if (Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y - 1].Occupant == null)
                {
                    Vector3 vec = transform.position + Vector3.down;
                    if (vec != lastPos)
                    {
                        CanIMove = true;
                    }
                }
            }
            break;

        case Directionale.Left:
            if (transform.position.x > 0)
            {
                if (Board.BoardInst.Squares[(int)transform.position.x - 1, (int)transform.position.y].Occupant == null)
                {
                    Vector3 vec = transform.position + Vector3.left;
                    if (vec != lastPos)
                    {
                        CanIMove = true;
                    }
                }
            }

            break;

        default:
            throw new ArgumentOutOfRangeException("dir", dir, null);
        }
        return(CanIMove);
    }
Exemplo n.º 5
0
    public void Move(Directionale dir)
    {
        Thread.Sleep(50);
        if (!OnBoard)
        {
            Debug.Log("Not on board");
            return;
        }
        switch (dir)
        {
        case Directionale.Left:

            if (CheckValidMove(dir))
            {
                lastPos = transform.position;

                Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].Occupant = null;

                transform.position += Vector3.left;

                Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].Occupant = gameObject;
            }

            break;

        case Directionale.Up:

            if (CheckValidMove(dir))
            {
                lastPos = transform.position;
                Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].Occupant = null;

                transform.position += Vector3.up;
                Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].Occupant = gameObject;
            }

            break;

        case Directionale.Right:
            if (CheckValidMove(dir))
            {
                lastPos = transform.position;

                Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].Occupant = null;

                transform.position += Vector3.right;

                Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].Occupant = gameObject;
            }

            break;

        case Directionale.Down:

            if (CheckValidMove(dir))
            {
                lastPos = transform.position;

                Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].Occupant = null;

                transform.position += Vector3.down;

                Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].Occupant = gameObject;
            }

            break;



        default:
            throw new ArgumentOutOfRangeException("dir", dir, null);
        }
        if (Board.BoardInst.Squares[(int)transform.position.x, (int)transform.position.y].SQColour == Colour)
        {
            Board.BoardInst.KillColour(Player1Owned, Colour);
        }
        if (GameManager.GmInst.GameMasterMode)
        {
            ResetLastPosition();
        }
        GameManager.GmInst.Moves--;
    }