private Tile.TileType ChooseNextTileType(int dimX, int dimY) { if (dimY >= NumSkyTiles) { int depth = dimY - NumSkyTiles; List <TileProbability> tileProbabilities = new List <TileProbability>(); List <TileGenerationInfo> tileGenInfoList = levelDefinition.tileGenerationInfoList; for (int i = 0; i < tileGenInfoList.Count; i++) { TileProbability tp = new TileProbability( tileGenInfoList[i].tileType, tileGenInfoList[i].baseProbability, tileGenInfoList[i].increaseProbabilityPerRow, tileGenInfoList[i].depthRangeStart, tileGenInfoList[i].depthRangeEnd); tileProbabilities.Add(tp); } ProbabilitySelector probabilitySelector = new ProbabilitySelector(tileProbabilities); return(probabilitySelector.GetTileType(depth)); } return(Tile.TileType.EMPTY); }
float TileProbabilityAtDepth(TileProbability tp, int depth) { int linesFromStart = depth - tp.rangeStart; return(tp.baseProbability + (tp.increasePerLine * linesFromStart)); }