Parametrized "Maintenance on roads & railroads reduced by []%"

This commit is contained in:
Yair Morgenstern 2021-01-29 10:35:01 +02:00
parent 8e8215b5c4
commit 9c725d74ae
4 changed files with 33 additions and 26 deletions

View File

@ -635,7 +635,8 @@
"outerColor": [255,184,33],
"innerColor": [3,115,86],
"uniqueName": "Great Andean Road",
"uniques": ["Units ignore terrain costs when moving into any tile with Hills", "50% Maintenance costs reduction",
"uniques": ["Units ignore terrain costs when moving into any tile with Hills",
"Maintenance on roads & railroads reduced by [50]%",
"No Maintenance costs for improvements in Hills"],
"cities": ["Cuzco","Tiwanaku","Machu","Ollantaytambo","Corihuayrachina","Huamanga","Rumicucho","Vilcabamba","Vitcos",
"Andahuaylas","Ica","Arequipa","Nasca","Atico","Juli","Chuito","Chuquiapo","Huanuco Pampa","Tamboccocha",

View File

@ -218,7 +218,7 @@
"policies": [
{
"name": "Trade Unions",
"uniques": ["Maintenance on roads & railroads reduced by 33%", "[+2 Gold] from each Trade Route"],
"uniques": ["Maintenance on roads & railroads reduced by [33]%", "[+2 Gold] from each Trade Route"],
"row": 1,
"column": 2
},

View File

@ -74,12 +74,19 @@ class CivInfoStats(val civInfo: CivilizationInfo){
}
}
// Inca unique according to https://civilization.fandom.com/wiki/Incan_%28Civ5%29
// Deprecated as of 3.12. in favor of "Maintenance on roads & railroads reduced by [50]%"
if (civInfo.hasUnique("50% Maintenance costs reduction"))
transportationUpkeep /= 2
// Deprecated as of 3.12. in favor of "Maintenance on roads & railroads reduced by [33]%"
if (civInfo.hasUnique("Maintenance on roads & railroads reduced by 33%")
//presume we want to deprecate the old one at some point?
|| civInfo.hasUnique("Maintenance on roads & railroads reduced by 33%, +2 gold from all trade routes"))
transportationUpkeep = (transportationUpkeep * 2 / 3f).toInt()
for (unique in civInfo.getMatchingUniques("Maintenance on roads & railroads reduced by []%"))
transportationUpkeep = (transportationUpkeep * (100f - unique.params[0].toInt()) / 100).toInt()
return transportationUpkeep
}

View File

@ -113,8 +113,7 @@ class WorldMapHolder(internal val worldScreen: WorldScreen, internal val tileMap
if (previousSelectedUnits.isNotEmpty() && previousSelectedUnits.any { it.getTile() != tileInfo }
&& worldScreen.isPlayersTurn
&& previousSelectedUnits.any { it.movement.canMoveTo(tileInfo) ||
it.movement.isUnknownTileWeShouldAssumeToBePassable(tileInfo)
}) {
it.movement.isUnknownTileWeShouldAssumeToBePassable(tileInfo)}) {
// this can take a long time, because of the unit-to-tile calculation needed, so we put it in a different thread
addTileOverlaysWithUnitMovement(previousSelectedUnits, tileInfo)
} else addTileOverlays(tileInfo) // no unit movement but display the units in the tile etc.