public void Rotate(Player player, bool reverse)
    {
        PlaySelectSoundEffect();
        if (player.rotationsAreFree || _gameSceneManager.numberOfMoves > 0)
        {
            if (!player.rotationsAreFree)
            {
                _onPlayer.Movement(player);
            }

            var playersCurrentDir = _playerSpriteRenderer.GetDirection(player);

            if (reverse)
            {
                if (playersCurrentDir == Direction.West)
                {
                    _playerSpriteRenderer.RenderDirection(player, Direction.South);
                }
                else if (playersCurrentDir == Direction.North)
                {
                    _playerSpriteRenderer.RenderDirection(player, Direction.West);
                }
                else if (playersCurrentDir == Direction.East)
                {
                    _playerSpriteRenderer.RenderDirection(player, Direction.North);
                }
                else
                {
                    _playerSpriteRenderer.RenderDirection(player, Direction.East);
                }
            }
            else
            {
                if (playersCurrentDir == Direction.West)
                {
                    _playerSpriteRenderer.RenderDirection(player, Direction.North);
                }
                else if (playersCurrentDir == Direction.North)
                {
                    _playerSpriteRenderer.RenderDirection(player, Direction.East);
                }
                else if (playersCurrentDir == Direction.East)
                {
                    _playerSpriteRenderer.RenderDirection(player, Direction.South);
                }
                else
                {
                    _playerSpriteRenderer.RenderDirection(player, Direction.West);
                }
            }
        }
    }
    public List <Vector3> GetValidAttackPositions(Player player)
    {
        var validPositions = new List <Vector3>();
        var direction      = _playerSpriteRenderer.GetDirection(player);
        var westFound      = false;
        var eastFound      = false;
        var northFound     = false;
        var southFound     = false;

        for (int i = 1; i < player.numberOfAttackSpacesPerTurn + 1; i++)
        {
            var west = new Vector3(
                player.transform.position.x - i,
                player.transform.position.y,
                player.transform.position.z
                );
            var east = new Vector3(
                player.transform.position.x + i,
                player.transform.position.y,
                player.transform.position.z
                );
            var north = new Vector3(
                player.transform.position.x,
                player.transform.position.y - i,
                player.transform.position.z
                );
            var south = new Vector3(
                player.transform.position.x,
                player.transform.position.y + i,
                player.transform.position.z
                );

            if (direction == Direction.North || direction == Direction.South)
            {
                if (!westFound)
                {
                    validPositions.Add(west);
                }
                if (!_playerCollisions.CanMoveToSpace(west) && !westFound)
                {
                    validPositions.Add(west);
                    westFound = true;
                }
                if (!eastFound)
                {
                    validPositions.Add(east);
                }
                if (!_playerCollisions.CanMoveToSpace(east) && !eastFound)
                {
                    validPositions.Add(east);
                    eastFound = true;
                }
            }

            if (direction == Direction.West || direction == Direction.East)
            {
                if (!northFound)
                {
                    validPositions.Add(north);
                }
                if (!_playerCollisions.CanMoveToSpace(north) && !northFound)
                {
                    validPositions.Add(north);
                    northFound = true;
                }
                if (!southFound)
                {
                    validPositions.Add(south);
                }
                if (!_playerCollisions.CanMoveToSpace(south) && !southFound)
                {
                    validPositions.Add(south);
                    southFound = true;
                }
            }
        }
        return(validPositions);
    }