Border radius effect

What would you like to see in Freeciv? Do you have a good idea what should be improved or how?
Ignatus
Hardened
Posts: 240
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia
Contact:

Border radius effect

Postby Ignatus » Thu Jul 11, 2019 8:53 pm

Currently, there is semi-hardcoded dependency between city border radius and its population: border_sq_r = borders.radius_sq_city + borders.size_effect * pop. While in commercial Civ>=3 the radius depends on city culture (in Civ3 culture is only what we call "city history"): city claims another ring of tiles while scores 10, 100, 1000, 10000 and 20000cp. We can manage city working radius with an effect; let's introduce another one for border radius.

Code: Select all

[effect_border_100c]
 type = "Border_Sq_Radius_Inc"
 value = 5 ;2×2->3×3
 reqs = {"type", "name", "range"
  "MinCulture", 100, "City"}

Then we set borders.size_effect=0 and make certain buildings produce city history. Also, Civ3 has another system of border claiming - city owns once obtained tile normally as long as it stays (we do it by setting borders.radius_sq_city_permanent = 401) but can lose unworked tiles to a more cultured city (our rules do it by setting the parameter to 0, and our border strength is hardcoded to be (pop + 2)^2 / dist^2). To imitate it, we need an option like borders.steal_tiles_by_culture = TRUE/FALSE.

There is another feature in Civ3 - a factory that marks a tile as its builder's (building consumes a worker) but not in his cultural borders, it disappears as soon as some (even owner's) borders include the tile. For it, extra flags "WeakClaimer" and "ConsumesBuilder" can be introduced.