New uniques for border expansion - "-[]% Gold cost of acquiring tiles []" and "-[]% Culture cost of acquiring tiles []" (#3565)

* no message

* Revert "no message"

This reverts commit 9ece60bd58.

* Renamed Haka War Dance effect to Intimidation, to make it more applicable to non-Maori Warrior units.

* no message

* Parameterized civUnique for extra experience from combat

* Update build.gradle.kts

* Update BattleDamage.kt

* Update Policies.json

* Update Battle.kt

* Fully parameterized nationwide XP gain

* New parameterized uniques for border expansion - "-[]% Gold cost of acquiring tiles []" and "-[]% Culture cost of acquiring tiles []"

* Parameterized uniques for acquiring new tiles via either culture or gold

* Parameterizing expansion unique - improved calculation method

* Improved parameterization for border expansion uniques
This commit is contained in:
SpacedOutChicken
2021-02-03 04:06:53 -07:00
committed by GitHub
parent aa1bd3cd7e
commit 55b4298cec
4 changed files with 16 additions and 6 deletions

View File

@ -160,7 +160,7 @@
"xpForNewUnits": 15,
"hurryCostModifier": 25,
"maintenance": 1,
"uniques": ["Culture and Gold costs of acquiring new tiles reduced by 25% in this city"],
"uniques": ["-[25]% Culture cost of acquiring tiles [in this city]","-[25]% Gold cost of acquiring tiles [in this city]"],
"requiredTech": "Bronze Working"
},
{
@ -532,7 +532,7 @@
"culture": 1,
"greatPersonPoints": {"production": 1},
"isWonder": true,
"uniques": ["Cost of acquiring new tiles reduced by 25%"],
"uniques": ["-[25]% Culture cost of acquiring tiles [in all cities]","-[25]% Gold cost of acquiring tiles [in all cities]"],
"requiredTech": "Chivalry",
"quote": "'The temple is like no other building in the world. It has towers and decoration and all the refinements which the human genius can conceive of.' - Antonio da Magdalena"
},

View File

@ -262,7 +262,7 @@
"outerColor": [ 28,51,119],
"innerColor": [255,255,255],
"uniqueName": "Manifest Destiny",
"uniques": ["+1 Sight for all land military units", "-50% cost when purchasing tiles"],
"uniques": ["+1 Sight for all land military units", "-[50]% Gold cost of acquiring tiles [in all cities]"],
"cities": ["Washington","New York","Boston","Philadelphia","Atlanta","Chicago","Seattle","San Francisco","Los Angeles","Houston",
"Portland","St. Louis","Miami","Buffalo","Detroit","New Orleans","Baltimore","Denver","Cincinnati","Dallas","Memphis",
"Cleveland","Kansas City","San Diego","Richmond","Las Vegas","Phoenix","Albuquerque","Minneapolis","Pittsburgh",

View File

@ -2,7 +2,7 @@
{
"name": "Tradition",
"era": "Ancient era",
"uniques": ["[+3 Culture] in capital", "Increased rate of border expansion"],
"uniques": ["[+3 Culture] in capital", "-[25]% Culture cost of acquiring tiles [in all cities]"],
"policies": [
{
"name": "Aristocracy",

View File

@ -33,11 +33,17 @@ class CityExpansionManager {
// The second seems to be more based, so I'll go with that
fun getCultureToNextTile(): Int {
var cultureToNextTile = 6 * (max(0, tilesClaimed()) + 1.4813).pow(1.3)
for (unique in cityInfo.civInfo.getMatchingUniques("-[]% Culture cost of acquiring tiles []")) {
if (cityInfo.matchesFilter(unique.params[1]))
cultureToNextTile *= (100 - unique.params[0].toFloat()) / 100
}
// Deprecated as of 3.12.10 - replaced with "-[]% Culture cost of acquiring tiles []", either [in capital] or [in this city] or [in all cities]
if (cityInfo.civInfo.hasUnique("Cost of acquiring new tiles reduced by 25%"))
cultureToNextTile *= 0.75 //Speciality of Angkor Wat
if (cityInfo.containsBuildingUnique("Culture and Gold costs of acquiring new tiles reduced by 25% in this city"))
cultureToNextTile *= 0.75 // Specialty of Krepost
if (cityInfo.civInfo.hasUnique("Increased rate of border expansion")) cultureToNextTile *= 0.75
return cultureToNextTile.roundToInt()
}
@ -56,14 +62,18 @@ class CityExpansionManager {
val distanceFromCenter = tileInfo.aerialDistanceTo(cityInfo.getCenterTile())
var cost = baseCost * (distanceFromCenter - 1) + tilesClaimed() * 5.0
for (unique in cityInfo.civInfo.getMatchingUniques("-[]% Gold cost of acquiring tiles []")) {
if (cityInfo.matchesFilter(unique.params[1]))
cost *= (100 - unique.params[0].toFloat()) / 100
}
// Deprecated as of 3.12.10 - replaced with "-[]% Gold cost of acquiring tiles []", either [in capital] or [in this city] or [in all cities]
if (cityInfo.civInfo.hasUnique("Cost of acquiring new tiles reduced by 25%"))
cost *= 0.75 //Speciality of Angkor Wat
if (cityInfo.containsBuildingUnique("Culture and Gold costs of acquiring new tiles reduced by 25% in this city"))
cost *= 0.75 // Specialty of Krepost
if (cityInfo.civInfo.hasUnique("-50% cost when purchasing tiles"))
cost /= 2
return cost.toInt()
return cost.roundToInt()
}