public TileUnitData RandomFromList(List <ActionUnitData> source, int levelLimit = 0) { List <ActionUnitData> avaiable = source.Where(x => levelLimit == -1 || ((ActionUnitData)x).Level == levelLimit).ToList(); if (avaiable.Count == 0) { avaiable = TileUnitDatas.Where(x => levelLimit == 0 || ((ActionUnitData)x).Level == levelLimit).Cast <ActionUnitData>().ToList(); } return(avaiable.PickRandom()); }
private TileUnitData GetUnitByKeyCode() { Debug.Log(SelectedSpawnUnit.ToString() + "/" + TileUnitDatas.Count); if (SelectedSpawnUnit > -1 && SelectedSpawnUnit < TileUnitDatas.Count) { return(TileUnitDatas[SelectedSpawnUnit]); } else { return(TileUnitDatas.PickRandom()); } }