Example #1
0
    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);
    }
Example #2
0
    float TileProbabilityAtDepth(TileProbability tp, int depth)
    {
        int linesFromStart = depth - tp.rangeStart;

        return(tp.baseProbability + (tp.increasePerLine * linesFromStart));
    }