예제 #1
0
            public static MapData build(MapBuildType mapType, int maxDist, Dictionary <TerrainType, Dictionary <string, ITerrainDef> > terrainDefs)
            {
                var terrainDict = new Dictionary <TerrainType, ITerrainDef>();

                var map = new MapData(maxDist);

                BuildPlain(ref map, terrainDefs[TerrainType.PLAIN].Values);

                BuildRiver(ref map);

                var Type2Percent = calcPercent(mapType);

                BuildMount(ref map, Type2Percent[TerrainType.MOUNT], terrainDefs[TerrainType.MOUNT].Values);

                BuildHill(ref map, Type2Percent[TerrainType.HILL], terrainDefs[TerrainType.HILL].Values);

                BuildLake(ref map, Type2Percent[TerrainType.LAKE], terrainDefs[TerrainType.LAKE].Values);

                BuildMarsh(ref map, terrainDefs[TerrainType.MARSH].Values);

                ////BuildForest(ref map, 0.1);

                //BuildRiver(ref map);



                LOG.INFO("build" + map.ToString());
                return(map);
            }
예제 #2
0
            public static Dictionary <TerrainType, double> calcPercent(MapBuildType mapType)
            {
                switch (mapType)
                {
                case MapBuildType.MAP_PLAIN:
                    return(new Dictionary <TerrainType, double>()
                    {
                        { TerrainType.PLAIN, 0.87 },
                        { TerrainType.HILL, 0.099 },
                        { TerrainType.MOUNT, 0.001 },
                        { TerrainType.LAKE, 0.03 },
                    });

                case MapBuildType.MAP_SMALL_HILL:
                    return(new Dictionary <TerrainType, double>()
                    {
                        { TerrainType.PLAIN, 0.47 },
                        { TerrainType.HILL, 0.35 },
                        { TerrainType.MOUNT, 0.15 },
                        { TerrainType.LAKE, 0.03 },
                    });

                case MapBuildType.MAP_BIG_HILL:
                    return(new Dictionary <TerrainType, double>()
                    {
                        { TerrainType.PLAIN, 0.27 },
                        { TerrainType.HILL, 0.5 },
                        { TerrainType.MOUNT, 0.2 },
                        { TerrainType.LAKE, 0.03 },
                    });

                case MapBuildType.MAP_MOUNT:
                    return(new Dictionary <TerrainType, double>()
                    {
                        { TerrainType.PLAIN, 0.17 },
                        { TerrainType.HILL, 0.4 },
                        { TerrainType.MOUNT, 0.4 },
                        { TerrainType.LAKE, 0.03 },
                    });

                default:
                    throw new Exception();
                }
            }