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); }
protected void Awake() { walkMovement = GetComponent <WalkMovement>(); jumpMovement = GetComponent <JumpMovement>(); attackMovement = GetComponent <AttackMovement>(); floorDetector = GetComponent <FloorDetector>(); myBody = GetComponent <Rigidbody2D>(); dashMovement = GetComponent <DashMovement>(); CharacterControlDisabled = false; }
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); } } }
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; } } }
protected void Awake() { walkMovement = GetComponent <WalkMovement>(); jumpMovement = GetComponent <JumpMovement>(); }
public override IEnumerable <Square> GetAvailableMoves(Board board) { JumpMovement doMoves = new JumpMovement(board, Player); return(GetSurrounding(board.FindPiece(this), board).Where(inSq => doMoves.TryAddMove(inSq))); }