Custom improvements for water resources now moddable

This commit is contained in:
Yair Morgenstern
2021-03-25 10:46:45 +02:00
parent 5ac2ee19c7
commit eda9ceb140
2 changed files with 13 additions and 13 deletions

View File

@ -50,6 +50,7 @@
}, },
{ {
"name": "Oil well", "name": "Oil well",
"terrainsCanBeBuiltOn": ["Coast"],
"turnsToBuild": 9, "turnsToBuild": 9,
"techRequired": "Biology" "techRequired": "Biology"
}, },

View File

@ -83,19 +83,18 @@ object UnitActions {
fun getWaterImprovementAction(unit: MapUnit): UnitAction? { fun getWaterImprovementAction(unit: MapUnit): UnitAction? {
val tile = unit.currentTile val tile = unit.currentTile
for (improvement in listOf("Fishing Boats", "Oil well")) { if (!tile.isWater || !unit.hasUnique("May create improvements on water resources") || tile.resource == null) return null
if (unit.hasUnique("May create improvements on water resources") && tile.resource != null
&& tile.isWater // because fishing boats can enter cities, and if there's oil in the city... ;) val improvement = tile.getTileResource().improvement
&& tile.improvement == null
&& tile.getTileResource().improvement == improvement if (tile.improvement == null
&& unit.civInfo.tech.isResearched(unit.civInfo.gameInfo.ruleSet.tileImprovements[improvement]!!.techRequired!!) && unit.civInfo.tech.isResearched(tile.ruleset.tileImprovements[improvement]!!.techRequired!!))
) return UnitAction(UnitActionType.Create, "Create [$improvement]",
return UnitAction(UnitActionType.Create, "Create [$improvement]", action = {
action = { tile.improvement = improvement
tile.improvement = improvement unit.destroy()
unit.destroy() }.takeIf { unit.currentMovement > 0 })
}.takeIf { unit.currentMovement > 0 })
}
return null return null
} }