private void SetAccessibleTiles()
    {
        List <Vector2Int> currentLayer;
        var previousLayer = new List <Vector2Int>();
        var steps         = maxSteps;

        previousLayer.Add(coords);

        while (steps >= 0)
        {
            currentLayer = new List <Vector2Int>();

            // still gotta deduplicate
            previousLayer.ForEach(tile => {
                if (!grid.TileHasObstacle(tile))
                {
                    accessibleTiles.Add(tile);
                    grid.GetNeighbours(tile).ForEach(tile => {
                        if (!previousLayer.Contains(tile) && !currentLayer.Contains(tile))
                        {
                            currentLayer.Add(tile);
                        }
                    });
                }
            });
            previousLayer = currentLayer;

            steps--;
        }
    }