mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 14:24:43 -04:00
Workers can now remove Roads and Railroads
This commit is contained in:
parent
d527ccf90e
commit
d8fd48b4ce
@ -111,6 +111,16 @@
|
|||||||
techRequired:"Bronze Working"
|
techRequired:"Bronze Working"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// These are unique and have unique in-game checks related to them
|
||||||
|
{
|
||||||
|
name:"Remove Road",
|
||||||
|
turnsToBuild:2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name:"Remove Railroad",
|
||||||
|
turnsToBuild:2
|
||||||
|
},
|
||||||
|
|
||||||
// Great Person improvements
|
// Great Person improvements
|
||||||
{
|
{
|
||||||
name:"Academy",
|
name:"Academy",
|
||||||
|
@ -3,6 +3,7 @@ package com.unciv.logic
|
|||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.unciv.GameParameters
|
import com.unciv.GameParameters
|
||||||
import com.unciv.logic.automation.NextTurnAutomation
|
import com.unciv.logic.automation.NextTurnAutomation
|
||||||
|
import com.unciv.logic.city.CityConstructions
|
||||||
import com.unciv.logic.civilization.CivilizationInfo
|
import com.unciv.logic.civilization.CivilizationInfo
|
||||||
import com.unciv.logic.civilization.PlayerType
|
import com.unciv.logic.civilization.PlayerType
|
||||||
import com.unciv.logic.map.TileInfo
|
import com.unciv.logic.map.TileInfo
|
||||||
@ -142,18 +143,9 @@ class GameInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// As of 2.14.1, changed Machu Pichu to Machu Picchu
|
// As of 2.14.1, changed Machu Pichu to Machu Picchu
|
||||||
val oldMachuName = "Machu Pichu"
|
changeBuildingName(cityConstructions, "Machu Pichu", "Machu Picchu")
|
||||||
val newMachuName = "Machu Picchu"
|
// As of 2.16.1, changed Colloseum to Colosseum
|
||||||
if(cityConstructions.builtBuildings.contains(oldMachuName)){
|
changeBuildingName(cityConstructions, "Colloseum", "Colosseum")
|
||||||
cityConstructions.builtBuildings.remove(oldMachuName)
|
|
||||||
cityConstructions.builtBuildings.add(newMachuName)
|
|
||||||
}
|
|
||||||
if (cityConstructions.currentConstruction == oldMachuName)
|
|
||||||
cityConstructions.currentConstruction = newMachuName
|
|
||||||
if (cityConstructions.inProgressConstructions.containsKey(oldMachuName)) {
|
|
||||||
cityConstructions.inProgressConstructions[newMachuName] = cityConstructions.inProgressConstructions[oldMachuName]!!
|
|
||||||
cityConstructions.inProgressConstructions.remove(oldMachuName)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,4 +155,17 @@ class GameInfo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun changeBuildingName(cityConstructions: CityConstructions, oldBuildingName: String, newBuildingName: String) {
|
||||||
|
if (cityConstructions.builtBuildings.contains(oldBuildingName)) {
|
||||||
|
cityConstructions.builtBuildings.remove(oldBuildingName)
|
||||||
|
cityConstructions.builtBuildings.add(newBuildingName)
|
||||||
|
}
|
||||||
|
if (cityConstructions.currentConstruction == oldBuildingName)
|
||||||
|
cityConstructions.currentConstruction = newBuildingName
|
||||||
|
if (cityConstructions.inProgressConstructions.containsKey(oldBuildingName)) {
|
||||||
|
cityConstructions.inProgressConstructions[newBuildingName] = cityConstructions.inProgressConstructions[oldBuildingName]!!
|
||||||
|
cityConstructions.inProgressConstructions.remove(oldBuildingName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -322,8 +322,9 @@ class MapUnit {
|
|||||||
&& !tileImprovement.terrainsCanBeBuiltOn.contains(tile.baseTerrain)) {
|
&& !tileImprovement.terrainsCanBeBuiltOn.contains(tile.baseTerrain)) {
|
||||||
tile.improvement = null // We removed a terrain (e.g. Forest) and the improvement (e.g. Lumber mill) requires it!
|
tile.improvement = null // We removed a terrain (e.g. Forest) and the improvement (e.g. Lumber mill) requires it!
|
||||||
}
|
}
|
||||||
|
if(tile.improvementInProgress=="Remove Road" || tile.improvementInProgress=="Remove Railroad")
|
||||||
tile.terrainFeature = null
|
tile.roadStatus = RoadStatus.None
|
||||||
|
else tile.terrainFeature = null
|
||||||
}
|
}
|
||||||
tile.improvementInProgress == "Road" -> tile.roadStatus = RoadStatus.Road
|
tile.improvementInProgress == "Road" -> tile.roadStatus = RoadStatus.Road
|
||||||
tile.improvementInProgress == "Railroad" -> tile.roadStatus = RoadStatus.Railroad
|
tile.improvementInProgress == "Railroad" -> tile.roadStatus = RoadStatus.Railroad
|
||||||
|
@ -202,6 +202,8 @@ open class TileInfo {
|
|||||||
if (improvement.terrainsCanBeBuiltOn.contains(topTerrain!!.name)) return true
|
if (improvement.terrainsCanBeBuiltOn.contains(topTerrain!!.name)) return true
|
||||||
if (improvement.name == "Road" && this.roadStatus === RoadStatus.None) return true
|
if (improvement.name == "Road" && this.roadStatus === RoadStatus.None) return true
|
||||||
if (improvement.name == "Railroad" && this.roadStatus !== RoadStatus.Railroad) return true
|
if (improvement.name == "Railroad" && this.roadStatus !== RoadStatus.Railroad) return true
|
||||||
|
if(improvement.name == "Remove Road" && this.roadStatus===RoadStatus.Road) return true
|
||||||
|
if(improvement.name == "Remove Railroad" && this.roadStatus===RoadStatus.Railroad) return true
|
||||||
if (topTerrain.unbuildable && !(topTerrain.name=="Forest" && improvement.name=="Camp")) return false
|
if (topTerrain.unbuildable && !(topTerrain.name=="Forest" && improvement.name=="Camp")) return false
|
||||||
return hasViewableResource(civInfo) && getTileResource().improvement == improvement.name
|
return hasViewableResource(civInfo) && getTileResource().improvement == improvement.name
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ class ImprovementPickerScreen(tileInfo: TileInfo) : PickerScreen() {
|
|||||||
|
|
||||||
val regularImprovements = VerticalGroup()
|
val regularImprovements = VerticalGroup()
|
||||||
regularImprovements.space(10f)
|
regularImprovements.space(10f)
|
||||||
|
|
||||||
for (improvement in GameBasics.TileImprovements.values) {
|
for (improvement in GameBasics.TileImprovements.values) {
|
||||||
if (!tileInfo.canBuildImprovement(improvement, currentPlayerCiv)) continue
|
if (!tileInfo.canBuildImprovement(improvement, currentPlayerCiv)) continue
|
||||||
if(improvement.name == tileInfo.improvement) continue
|
if(improvement.name == tileInfo.improvement) continue
|
||||||
|
Loading…
x
Reference in New Issue
Block a user