Renamed Unit to BaseUnit so it wouldn't conflict with Kotlin's Unit cllass

This commit is contained in:
Yair Morgenstern 2018-07-20 12:13:37 +03:00
parent 0d261e88bf
commit ea20201c1b
6 changed files with 20 additions and 12 deletions

View File

@ -7,7 +7,7 @@ import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.logic.map.MapUnit
import com.unciv.logic.map.TileInfo
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.unit.Unit
import com.unciv.models.gamebasics.unit.BaseUnit
import com.unciv.models.gamebasics.unit.UnitType
import com.unciv.ui.utils.getRandom
@ -99,7 +99,7 @@ class Automation {
private fun trainCombatUnit(city: CityInfo) {
val combatUnits = city.cityConstructions.getConstructableUnits().filter { it.unitType != UnitType.Civilian }
val chosenUnit: Unit
val chosenUnit: BaseUnit
if(city.civInfo.cities.any { it.getCenterTile().militaryUnit==null}
&& combatUnits.any { it.unitType== UnitType.Ranged }) // this is for city defence so get an archery unit if we can
chosenUnit = combatUnits.filter { it.unitType== UnitType.Ranged }.maxBy { it.cost }!!

View File

@ -4,7 +4,7 @@ package com.unciv.logic.civilization
import com.badlogic.gdx.graphics.Color
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.tech.Technology
import com.unciv.models.gamebasics.unit.Unit
import com.unciv.models.gamebasics.unit.BaseUnit
import com.unciv.ui.utils.tr
import java.util.*
@ -89,7 +89,7 @@ class TechManager {
val obsoleteUnits = GameBasics.Units.values.filter { it.obsoleteTech==currentTechnology }
for(city in civInfo.cities)
if(city.cityConstructions.getCurrentConstruction() in obsoleteUnits){
val currentConstructionUnit = city.cityConstructions.getCurrentConstruction() as Unit
val currentConstructionUnit = city.cityConstructions.getCurrentConstruction() as BaseUnit
city.cityConstructions.currentConstruction = currentConstructionUnit.upgradesTo!!
}
}

View File

@ -4,7 +4,7 @@ import com.badlogic.gdx.math.Vector2
import com.unciv.logic.automation.WorkerAutomation
import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.unit.Unit
import com.unciv.models.gamebasics.unit.BaseUnit
import com.unciv.models.gamebasics.unit.UnitType
import java.text.DecimalFormat
@ -25,7 +25,7 @@ class MapUnit {
promotions.unit=this
}
fun getBaseUnit(): Unit = GameBasics.Units[name]!!
fun getBaseUnit(): BaseUnit = GameBasics.Units[name]!!
fun getMovementString(): String = DecimalFormat("0.#").format(currentMovement.toDouble()) + "/" + maxMovement
fun getTile(): TileInfo {
return civInfo.gameInfo.tileMap.values.first{it.militaryUnit==this || it.civilianUnit==this}

View File

@ -7,7 +7,7 @@ import com.unciv.models.gamebasics.tech.Technology
import com.unciv.models.gamebasics.tile.Terrain
import com.unciv.models.gamebasics.tile.TileImprovement
import com.unciv.models.gamebasics.tile.TileResource
import com.unciv.models.gamebasics.unit.Unit
import com.unciv.models.gamebasics.unit.BaseUnit
import com.unciv.models.gamebasics.unit.Promotion
import com.unciv.models.stats.INamed
import kotlin.collections.set
@ -19,7 +19,7 @@ object GameBasics {
val TileImprovements = LinkedHashMap<String, TileImprovement>()
val Technologies = LinkedHashMap<String, Technology>()
val Helps = LinkedHashMap<String, BasicHelp>()
val Units = LinkedHashMap<String, Unit>()
val Units = LinkedHashMap<String, BaseUnit>()
val UnitPromotions = LinkedHashMap<String, Promotion>()
val Civilizations = LinkedHashMap<String, Civilization>()
val PolicyBranches = LinkedHashMap<String, PolicyBranch>()
@ -44,7 +44,7 @@ object GameBasics {
TileResources += createHashmap(getFromJson(Array<TileResource>::class.java, "TileResources"))
TileImprovements += createHashmap(getFromJson(Array<TileImprovement>::class.java, "TileImprovements"))
Helps += createHashmap(getFromJson(Array<BasicHelp>::class.java, "BasicHelp"))
Units += createHashmap(getFromJson(Array<Unit>::class.java, "Units"))
Units += createHashmap(getFromJson(Array<BaseUnit>::class.java, "Units"))
UnitPromotions += createHashmap(getFromJson(Array<Promotion>::class.java, "UnitPromotions"))
PolicyBranches += createHashmap(getFromJson(Array<PolicyBranch>::class.java, "Policies"))
Civilizations += createHashmap(getFromJson(Array<Civilization>::class.java, "Civilizations"))

View File

@ -9,7 +9,8 @@ import com.unciv.models.gamebasics.ICivilopedia
import com.unciv.models.stats.INamed
import com.unciv.ui.utils.tr
class Unit : INamed, IConstruction, ICivilopedia {
// This is BaseUnit because Unit is already a base Kotlin class and to avoid mixing the two up
class BaseUnit : INamed, IConstruction, ICivilopedia {
override lateinit var name: String
var baseDescription: String? = null
@ -105,5 +106,12 @@ class Unit : INamed, IConstruction, ICivilopedia {
unit.promotions.XP += construction.getBuiltBuildings().sumBy { it.xpForNewUnits }
}
fun getUpgradeUnit(civInfo: CivilizationInfo):BaseUnit{
val uniqueUnitReplacesUpgrade: BaseUnit? = GameBasics.Units.values
.firstOrNull{it.uniqueTo==civInfo.civName && it.replaces == upgradesTo}
if(uniqueUnitReplacesUpgrade!=null) return uniqueUnitReplacesUpgrade
return GameBasics.Units[upgradesTo!!]!!
}
override fun toString(): String = name
}

View File

@ -5,13 +5,13 @@ import com.badlogic.gdx.scenes.scene2d.ui.Button
import com.badlogic.gdx.scenes.scene2d.ui.Label
import com.unciv.UnCivGame
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.unit.Unit
import com.unciv.models.gamebasics.unit.BaseUnit
import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.addClickListener
import com.unciv.ui.utils.setFontColor
class GreatPersonPickerScreen : PickerScreen() {
private var theChosenOne: Unit? = null
private var theChosenOne: BaseUnit? = null
init {
closeButton.isVisible=false