public List <ISquarePiece> SelectPieces(PieceSelectionValidator validator, int total) { var selectedPieces = new List <ISquarePiece>(); int iterationCount = 0; while (selectedPieces.Count < total && iterationCount < 100) { iterationCount++; var piece = PieceManager.Instance.Pieces[UnityEngine.Random.Range(0, PieceManager.Instance.Pieces.Count)]; if (!validator.ValidForSelection(piece)) { continue; } if (selectedPieces.Contains(piece)) { continue; } selectedPieces.Add(piece); } return(selectedPieces); }
public List <ISquarePiece> SelectPieces(PieceSelectionValidator validator, int total) { var pieces = PieceManager.Instance.Pieces; if (_includeQueued) { pieces.AddRange(PieceDropper.Instance.Pieces.Where(x => validator.ValidForSelection(x))); } var filteredList = pieces.Where(x => validator.ValidForSelection(x)); if (total > 0) { return(filteredList.OrderBy(x => UnityEngine.Random.Range(1, 100)) .Take(total).ToList()); } return(filteredList.ToList()); }
public bool CanBeUsed(PieceSelectionValidator validator, int total) { return(PieceManager.Instance.Pieces.Any(x => validator.ValidForSelection(x))); }
public bool CanBeUsed(PieceSelectionValidator validator, int total) { return(SelectPieces(validator, total).Count > 0); }
public List <ISquarePiece> SelectPieces(PieceSelectionValidator validator, int total) { return(PieceManager.Instance.Pieces.Where(x => Positions.Contains(x.Position)).ToList()); }
public bool CanBeUsed(PieceSelectionValidator validator, int total) { return(PieceManager.Instance.Pieces.Any(x => Positions.Contains(x.Position))); }