Hmm. Judging by that screenshot it looks like your rules for culture expansion may not work as intended. The desert tiles 1E and 1NE of the city (no river, no resources) are filled in before the flood plains tile 1S of the city which should presumably have a lower tile cost than the desert tiles. Also does the entire first ring fill in before the second ring starts?
Yeah, there are still some oddities which I will investigate soon.
The first ring doesn't necessarily fill before the second ring starts, it depends on the tile costs (I lied a bit when I said tiles are covered in order of cost, because there are additional factors that influence their ordering, among that distance from capital). In practice the rings will fill in order unless a tile is particularly costly (and useless), such as peaks and empty deserts.
Wait, so with how many tiles does a city start? Not the whole small ring? Is it a small cross then?
All the tiles that cost 0 culture. Tiles in the first ring have reduced costs so that applies to most of them, but if they are very costly (see above), it might take some culture to cover them. The usual situation is that you start with the first ring, though.
These new culture mechanics reduce the efficacy of attempting to culture flip cities? The third ring limitation meaning it's harder to impose the culture of one city upon another (at any great distance of course)?
Good question. The only thing I modified is which tiles can be covered by your culture. The range at which your culture can be applied still depends on your culture level. That means a level 4 (influential I think) can still apply its culture four tiles away, which makes flips at that distance possible.
On the subject of Canada, however, I wonder whether anyone has had issues with America when it comes to settling the great white north, on the turn I flipped Toronto I noticed an American settler already in Canadian territory before I could possibly have had any time to move my settlers to block them off. At this point I opened the WB, and saw that two more settlers were already on their way into Canadian territory even further west, I'm not sure how I could have avoided this a mere 2 turns after spawn.
I agree. In general I think America should provide some competition in settling Canada, but they shouldn't be able to start before you even spawn. I can delay them though, something similar is already done to prevent Germany from settling Poland's core.
Also it seems as though the Railroad UHV is actually checking just for roads, I already have the Atlantic portion checked, even though my workers cannot build railroads yet.
Your cities always count as having the best route type you can build, even if you lack the resource.
I can understand not flipping Saint John, I do feel as though relying on useful congress decisions to obtain it could become prohibitively frustrating though, especially when contending with increasingly annoying turn times (though I realise this isn't a problem for everyone, only those of us who insist on playing on toasters or laptops as the case may be). I've only experienced 1 congress in the time I have been playing to which I wasn't even invited, though it was only 5 or so turns after spawning so that's understandable.
If you have already invested some culture, you can also use the UN, or outright diplomacy.
can you tell me in what files the culture changes are located?
thanks
Okay, multiple places.
There are new methods CvCity::calculateCultureCost(CvPlot*) and CvPlot::calculateCultureCost(). Their costs depend on a new variable "iCultureCost" in TerrainInfo.xml and FeatureInfo.xml (+ schema of course) and some constants in GlobalDefines.xml (so you also need to update the corresponding info classes).
Every city stores an array of 37 plots now (all plots in its first three rings). They are indexed 0 ... 36, I call these "local indices" (as you may know, the base game already does the same with the 21 plots in the BFC). The array is sorted according to the culture costs of its plots. The related methods in CvCity are:
getCulturePlot(int i): returns the global plot ID (for CvMap::getPlotByIndex()) for local index i
getCultureCost(int i): returns pre-calculated cost for the plot with local index i
getNextCoveredPlot(): returns the local ID of the next plot that will be covered (so that "for (int i = 0; i < getNextCoveredPlot(), i++) getCulturePlot(i)" will give you all currently covered plots)
updateCultureCosts(): recalculates the costs for all local indices and sorts the array
updateCoveredPlots(): recalculates next covered plot
setNextCoveredPlot(): sets the new value for the next covered plot, if it changed, the corresponded tiles are covered/uncovered
I also had to uncomment some code in setCultureLevel() that previously did the job of setNextCoveredPlot(). kill() had to be updated to set the next covered plot to 0 before the city is removed. CvPlayer::acquireCity() had to be rewritten so that the same thing as in setNextCoveredPlot() is performed there. updateCoveredPlots() had to be inserted all over the code where updateCultureLevel() is called as well.
There is also some stuff in CvGlobals and CvGameCoreUtils that makes the conversion from local to global indices easier, but that's it I think.
How many tiles does a city start with?
As stated above, it does depend on the surrounding terrain, but the usual situation is still the first ring.
What about tiles covered by other civs?
How do you mean? The new rules only affect what can possibly be covered by your culture. Of course you still need the majority of its culture to actually control it.