Exemplo n.º 1
0
        public override IEnumerable <Square> GetAvailableMoves(Board board)
        {
            Square        location       = board.FindPiece(this);
            List <Square> availableMoves = AddKnightMoves(location, board).ToList();
            JumpMovement  doMoves        = new JumpMovement(board, Player);

            availableMoves = availableMoves.Where(inSq => doMoves.TryAddMove(inSq)).ToList();
            return(availableMoves);
        }
Exemplo n.º 2
0
 protected void Awake()
 {
     walkMovement             = GetComponent <WalkMovement>();
     jumpMovement             = GetComponent <JumpMovement>();
     attackMovement           = GetComponent <AttackMovement>();
     floorDetector            = GetComponent <FloorDetector>();
     myBody                   = GetComponent <Rigidbody2D>();
     dashMovement             = GetComponent <DashMovement>();
     CharacterControlDisabled = false;
 }
Exemplo n.º 3
0
        public override IEnumerable <Square> GetAvailableMoves(Board board)
        {
            Square        location       = board.FindPiece(this);
            List <Square> availableMoves = new List <Square>();
            JumpMovement  doMoves        = new JumpMovement(board, Player);

            if (Player == Player.White)
            {
                TryAddForwardMove(location.Row - 1, location.Row - 2);
                TryAddDiagonalMove(location.Row - 1);
            }
            else
            {
                TryAddForwardMove(location.Row + 1, location.Row + 2);
                TryAddDiagonalMove(location.Row + 1);
            }
            IEnumerable <Square> listOfMoves = availableMoves;

            return(listOfMoves);

            void TryAddForwardMove(int row1, int row2)
            {
                Square frontByOne = Square.At(row1, location.Col);

                if (doMoves.TryAddMove(frontByOne, false))
                {
                    availableMoves.Add(frontByOne);
                }
                if ((HasEverMoved == false) & doMoves.TryAddMove(frontByOne, false))
                {
                    Square frontByTwo = Square.At(row2, location.Col);
                    if (doMoves.TryAddMove(frontByTwo, false))
                    {
                        availableMoves.Add(frontByTwo);
                    }
                    ;
                }
            }

            void TryAddDiagonalMove(int inputRow)
            {
                Square leftTake = Square.At(inputRow, location.Col - 1);

                if (doMoves.TryAddMove(leftTake, onlyMoveOnTake: true))
                {
                    availableMoves.Add(leftTake);
                }
                Square rightTake = Square.At(inputRow, location.Col + 1);

                if (doMoves.TryAddMove(rightTake, onlyMoveOnTake: true))
                {
                    availableMoves.Add(rightTake);
                }
            }
        }
Exemplo n.º 4
0
    protected override void OnActiveUpdate()
    {
        if (Input.GetMouseButtonDown(0))
        {
            if (hoverObject != null)
            {
                EnsureRigidbody2DComponent(hoverObject);

                JumpMovement jump = hoverObject.AddComponent <JumpMovement>();
                jump.speed = 20;

                SoundBoard.Instance?.addAttribute?.Play();
                Finished(jump);
            }
        }

        {
            RaycastHit2D ray = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
            if (ray.collider != null)
            {
                hoverObject = ray.collider.gameObject;
            }
        }
    }
Exemplo n.º 5
0
 protected void Awake()
 {
     walkMovement = GetComponent <WalkMovement>();
     jumpMovement = GetComponent <JumpMovement>();
 }
Exemplo n.º 6
0
        public override IEnumerable <Square> GetAvailableMoves(Board board)
        {
            JumpMovement doMoves = new JumpMovement(board, Player);

            return(GetSurrounding(board.FindPiece(this), board).Where(inSq => doMoves.TryAddMove(inSq)));
        }