1.6 is uploaded with new starting plot functions based on the test version. It has some limited 'flalor' start code in it that can be expanded, I only included a few (Malakim, Lanun, Doviello, Illian, Khazad and Luchuirp).
Here's a quick run-down of the process for selecting starting locations, hopefully this method will avoid creating crippling starting location for the dwarves
1. I evaluate the areas (continents) to select at least 70% of the available land using areas that are preferably 13 tiles or larger. These become the available starting continents used in the following steps. As a safeguard the absolute minimum is 5 tiles per area or half of the available areas, just in case you somehow manage to get nothing but small islands for the entire map.
2. The available areas are scanned for valid city plots, each plot is then evaluated for it potential yield and natural yield. This creates a list of potential start plots based which is filtered so that they are all useable with a fairly high preferences for potential food output (so deserts, tundra and snow score natually low here). By the end of this function there shouldn't be any possible starting plots that are entirely snow, tundra or desert and the should all have at least half of their 'fat cross' full of usable land tiles. Resources are included in establishing the value of each city location so those that are full of useless tiles will have useful food resources nearby. In the end there should be at least twice as many of these possible starting plots as there are players. In addition to the yield values the distance from the closest starting position is also factored in so starting plots that give a player a lot of room to grow may not be as good initially.
3. Next I cycle through a shuffled list of the players and for each player I establish a flavor value of the starting plots. The only rule that is enforced strictly is for civs listed as requiring a coastal start (Lanun), they will have zero value for any non-coastal starting location. Since by this point all of the starting plots should be decent this value is based entirely on the civ defined values for terrain types, plot types and feature types. Currently I only evalute for hill & peak plot types (used by the dwarves) and forest & jungle features (unused) but all terrain types are used. For each player the available starting position with the highest flavor score is selected.
In the end what you should see in most cases is a starting position that will be very usable. If you have close neighbors your starting position should have several resources, if you don't have a bunch of nearby resources you probably have a lot of open land between you and your nearest neighbor on the same continent. This does scale with map size, essentially, since you have more open land on larger maps you will have fewer additional resource placed around your starting location. The current flavor start code will try to put the Illians near snow, the Doviello near tundra (but preferring grassland over plains so as nto to cripple them) and the Malakim near desert (but not always IN the desert depending on the quality of the location). The Lanun will take a coastal start if one is available, if there are none available they get stuck with whatever happens to be available. The two dwarven races will prefer hills and peaks over starts with fewer of either.
I tried to put this in place in such a way as to NOT interfere with FlavourMod. It should actually work very well with it as it will then only try to ensure there is an appropriate start available for some specific civs.
If you want to add flavor preferences for all of the civs you can find the definitions near the end of the file. The value for each terrain, plot or feature is a simple score, each plot that matches will add that value to the starting locations total value (negative values will work as well). Terrains, features and plot types are calcualted separately so if you give them a value of 1 for grassland, 1 for hills and 1 for forest a grassland hill with a forest will be worth 3. I do not evaluate resources at all beyond determining their yield values so there are currently no prefenses for them.
Enjoy
