public override BoardCoord[] GetCoordinations(Piece self) { BoardCoord[] coords = new BoardCoord[] { }; foreach (var layer in layers) { coords = layer.GetCoordinations(self) .Where(coordination => condition.Check(self, coordination)) .ToArray(); if (coords.Count() != 0) { break; } } return(coords); }