LoneGazebo / Community-Patch-DLL

Community Patch for Civilization V - Brave New World
Other
293 stars 160 forks source link

City border growth choices #7354

Closed CokolwiekUnni closed 3 years ago

CokolwiekUnni commented 3 years ago

Civ5Screen0003 (1)

The problem is rather evident. Both natural wonder and lakes ignored in favor of weak tiles. Furthermore, just after clearing a barb camp to the east, I revealed a 3 food, 1 production tile, cause the jungle had iron underneath it. Curious if border will grow there, I bought a tile next to it. 6 iron, along with higher yields isn't just enough to the governor. I removed the jungle to reveal plains iron, bison was too interesting still.

If coding different types of tiles separately will prove too cumbersome, maybe just go with the highest yields tile first? It would yield a similar results most of the time, as natural wonders, lakes, tiles with resources have the highest yields before any buildings will be constructed. Player would be allowed to even up chance of wheat against lake by building a granary and so on.

azum4roll commented 3 years ago

Wait, you still get jungle iron? I thought I removed all of those.

CokolwiekUnni commented 3 years ago

I use Milae's map. It has some things imported from the previous versions of Communitu, I believe. Either this or I don't know how to use override Assign starting plots, which I leave default as yes. So cattle or horses can be under marshes, on which in real life they obviously can't graze, not to mention time to get pasture online. I am fine with jungle iron though. IRL the largest iron ore mine currently, Carajás Mine, is in the heart of the Amazon, Brazil is the second largest producer of iron ore worldwide, and Brazilian company Vale is the world's leading extractor of iron ore. It doesn't screw balance either.

ilteroi commented 3 years ago

i can remove the focus on bonus resources, but there is a lot of code there to take into account roads, rivers, terrain etc, so it won't be "highest yields first".

CokolwiekUnni commented 3 years ago

I suggested highest yield first because I thought it may be simple to code, if crude in philosophy. If its indeed not, then I am kinda clueless what to propose. Now it is a mess, but any change/suggestion can be dangerous. For example, removing focus on bonus resources would be beneficial in this city but would screw 90% percent of other situation. Right now I am having a lot of situation when the city complete ignores mining luxuries or bonus resources on hills, or stone which are many times 4 yields in favor of bare grassland. Can something like focus on natural wonder first whatever the yields/other tiles are be added? I think we can agree that's the way to go. Another thing would be mining luxuries/luxuries in general. Today I had a city preferring to grow on 3f marsh without resources to forested furs 3f 1p. When I have a hill copper/silver/gold monopoly, I always need to buy them manually or settle right next to them. Is that a desired state, considering plantation/fishing boats luxuries are nearly always a priority?

ilteroi commented 3 years ago

in fact there is a database value PLOT_INFLUENCE_YIELD_POINT_COST which can be adjusted - the more negative the more focus on yields. you can play around with it ...

and no, possible monopolies are not considered but that is an easy addition

azum4roll commented 3 years ago

If performance allows, each potential tile (neutral tiles) in radius 5 should be considered and given a score based on the following criteria:

After that, each tile on the path from the city to tile X should get bonus points based on the score of tile X. Doesn't have to be much, just a slight nudge to grow towards great tiles not adjacent to the borders.

Lastly, zero out non-adjacent tile scores and sort all the tiles based on score.

ilteroi commented 3 years ago

sounds like a good project to get your feet wet