[BTS] 3.19 Liberating cities to the wrong Vassals...

Pep

King
Joined
May 28, 2002
Messages
688
Location
Spain
In my latest game, I found a colony (America) very early. Years later, in a different island, I found Aztec. The strange issue is that, after the war in which I conquered a former American city (Birka) and an enemy Native American city (Mesa Verde), both in the same continent of American Civ, I can't choose to liberate both cities back to America. My only choices are:
  • Grant independence to Birka, Mesa Verde.
  • Liberate Birka (gift to Montezuma)
  • Liberate Mesa Verde (gift to Sitting Bull)

You can see it in the attached picture and savegame.

Edit: Removed the savegame due to quota issues
 

Attachments

  • Civ4ScreenShot0002.jpg
    Civ4ScreenShot0002.jpg
    115.4 KB · Views: 65
I have discovered the reason why I can't return the conquered cities to America. After Native America conquered its capital, Americans move their capital to a distant island tile. The code in CvCity::getLiberationPlayer establish a penalty to capital distance when liberating cities. So I can only gift my cities to my vassal with the closest capital (Aztec) or the Civ with its capital in the same continent.

The solution could be changing CvCity::getLiberationPlayer to consider the number of cities of your vassal in the same continent as a positive factor.

Also, I think the code that sets the new capital after the old has been conquered should be revised. It should consider moving the capital to a city in the same continent where the major number of your cities are, instead of moving it to the city with the greatest population on a distant island.
 
Top Bottom