Old World Reference
Menu

🏰 City Capture Mechanics

2 base turns50% capture HP left

Taking a city is not instant. When your unit occupies an enemy city, a hidden capture-turns counter ticks up each turn you hold it; the city flips to you only when the counter reaches its threshold. Leave or get pushed off before then and the progress unwinds. The threshold depends on the city's culture level and on whether you originally founded it.

How the counter works

The threshold formula

turns = CITY_BASE_CAPTURE_TURNS (2)
+ culture(highest enemy culture).iExtraCaptureTurns
+ 1  if you are NOT the city's original founder
→ minimum 1

The culture term uses the highest culture level of any team other than the capturer that has culture in the city — effectively the defender's cultural entrenchment. Per culture.xml (iExtraCaptureTurns):

City cultureExtra turns
Weak +0
Developing +1
Strong +2
Legendary +3

The +1 original-founder term is getCaptureTeam() != getFirstTeam(): it applies when you take a city your team did not found, so retaking your own former city is exactly one turn faster — and "your own" means the team that originally founded it, even if an enemy captured and grew it since.

Turns to flip

Hold-time required, by the city's culture level and whether you founded it:

City culture Taking a foreign city Retaking your own
Weak (+0) 3 2
Developing (+1) 4 3
Strong (+2) 5 4
Legendary (+3) 6 5

So a freshly-founded enemy outpost flips in 3 turns of unbroken occupation; an old Legendary enemy capital takes 6. Liberating one of your own cities shaves a turn off each.

When a captured city is razed instead

On reaching the threshold, the city is normally transferred. It is razed instead in two cases (setCaptureTurns):

Worked example

  1. You assault a rival's Strong-culture city (you did not found it). Threshold = 2 (base) + 2 (Strong) + 1 (not founder) = 5.
  2. Your unit occupies the city. Each end of turn it holds, the counter goes 1 → 2 → 3 → 4 → 5.
  3. If a relief force evicts your unit on, say, turn 3 (counter at 3), the counter starts falling −1/turn back toward 0 — you'd have to start over.
  4. Hold all 5 turns and the city flips to you at 50% HP. If that same city had originally been yours, it would have flipped in 4.

Source: City.csgetCaptureThreshold() (formula), setCaptureTurns() (flip / raze / 50% damage), and the +1 / −1 accrual in doTribeTurn(). Constants from globalsInt.xml (CITY_BASE_CAPTURE_TURNS, CITY_CAPTURE_DAMAGE_PERCENT) and culture.xml (iExtraCaptureTurns).