Dev: Removed baseDescription from units, all old baseDescriptions moved to Uniques

This commit is contained in:
Yair Morgenstern
2018-11-17 21:02:42 +02:00
parent 2db768f9ed
commit 22e6f39caf
8 changed files with 20 additions and 23 deletions

View File

@ -6,17 +6,17 @@
{
name:"Worker",
unitType:"Civilian",
baseDescription: "Can build improvements on tiles",
movement:2,
hurryCostModifier:20,
uniques:["Can build improvements on tiles"]
cost:70
},
{
name:"Settler",
unitType:"Civilian",
baseDescription: "Founds a new city",
movement:2,
cost:106,
uniques:["Founds a new city"]
hurryCostModifier:20
},
{
@ -66,11 +66,10 @@
{
name:"Work Boats",
unitType:"WaterCivilian",
baseDescription: "May create improvements on water resources",
movement:4,
cost: 30,
requiredTech:"Sailing",
uniques:["Cannot enter ocean tiles until Astronomy"]
uniques:["Cannot enter ocean tiles until Astronomy","May create improvements on water resources"]
hurryCostModifier:20
},
{
@ -379,30 +378,30 @@
{
name:"Great Artist",
baseDescription: "Can start an 8-turn golden age or construct a Landmark (+6 culture)",
unbuildable:true,
unitType:"Civilian",
uniques:["Can start an 8-turn golden age","Can build improvement: Landmark"]
movement:2
},
{
name:"Great Scientist",
baseDescription: "Can discover a technology, or construct an Academy (+4 science)",
unbuildable:true,
unitType:"Civilian",
uniques:["Can discover a technology","Can build improvement: Academy"]
movement:2
},
{
name:"Great Merchant",
baseDescription: "Can undertake a trade mission, giving a large sum of gold, or construct a Customs House (+4 gold)",
unbuildable:true,
unitType:"Civilian",
uniques:["Can undertake a trade mission, giving a large sum of gold","Can build improvement: Customs House"]
movement:2
},
{
name:"Great Engineer",
baseDescription: "Can speed up construction of a wonder, or construct a Manufactory (+4 production)",
unbuildable:true,
unitType:"Civilian",
uniques:["Can speed up construction of a wonder","Can build improvement: Manufactory"]
movement:2
},

View File

@ -5,7 +5,6 @@ import com.unciv.logic.GameInfo
import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.logic.map.TileMap
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.tile.TerrainType
import com.unciv.ui.NewGameScreen
import com.unciv.ui.utils.getRandom
@ -29,7 +28,7 @@ class GameStarter(){
.filter { it.isLand() && vectorIsWithinNTilesOfEdge(it.position,3)}
.toMutableList()
val playerPosition = freeTiles.getRandom().position
val playerCiv = CivilizationInfo(newGameParameters.nation, gameInfo)
val playerCiv = CivilizationInfo(newGameParameters.nation)
playerCiv.difficulty=newGameParameters.difficulty
gameInfo.civilizations.add(playerCiv) // first one is player civ
@ -40,7 +39,7 @@ class GameStarter(){
for (nationName in GameBasics.Nations.keys.filterNot { it=="Barbarians" || it==newGameParameters.nation }.shuffled()
.take(newGameParameters.numberOfEnemies)) {
val civ = CivilizationInfo(nationName, gameInfo)
val civ = CivilizationInfo(nationName)
civ.tech.techsResearched.addAll(playerCiv.getDifficulty().aiFreeTechs)
gameInfo.civilizations.add(civ)
}

View File

@ -46,7 +46,7 @@ class CivilizationInfo {
constructor()
constructor(civName: String, gameInfo: GameInfo) {
constructor(civName: String) {
this.civName = civName
tech.techsResearched.add("Agriculture")
}

View File

@ -72,7 +72,7 @@ class TileMap {
}
fun placeUnitNearTile(position: Vector2, unitName: String, civInfo: CivilizationInfo): MapUnit {
val unit = GameBasics.Units[unitName]!!.getMapUnit(civInfo)
val unit = GameBasics.Units[unitName]!!.getMapUnit()
val tilesInDistance = getTilesInDistance(position, 2)
unit.assignOwner(civInfo) // both the civ name and actual civ need to be in here in order to calculate the canMoveTo...Darn

View File

@ -13,7 +13,6 @@ import com.unciv.ui.utils.tr
class BaseUnit : INamed, IConstruction, ICivilopedia {
override lateinit var name: String
var baseDescription: String? = null
var cost: Int = 0
var hurryCostModifier: Int = 0
var movement: Int = 0
@ -38,7 +37,7 @@ class BaseUnit : INamed, IConstruction, ICivilopedia {
fun getShortDescription(): String {
val infoList= mutableListOf<String>()
if(baseDescription!=null) infoList+=baseDescription!!
infoList += uniques.map { it.tr() }
if(strength!=0) infoList += "{Strength}: $strength".tr()
if(rangedStrength!=0) infoList += "{Ranged strength}: $rangedStrength".tr()
if(movement!=2) infoList+="{Movement}: $movement".tr()
@ -47,7 +46,6 @@ class BaseUnit : INamed, IConstruction, ICivilopedia {
fun getDescription(forPickerScreen:Boolean): String {
val sb = StringBuilder()
if(baseDescription!=null) sb.appendln(baseDescription!!.tr())
if(requiredResource!=null) sb.appendln("Requires {$requiredResource}".tr())
if(!forPickerScreen) {
if(uniqueTo!=null) sb.appendln("Unique to $uniqueTo, replaces $replaces")
@ -71,7 +69,7 @@ class BaseUnit : INamed, IConstruction, ICivilopedia {
return sb.toString()
}
fun getMapUnit(civInfo: CivilizationInfo): MapUnit {
fun getMapUnit(): MapUnit {
val unit = MapUnit()
unit.name = name
unit.setTransients() // must be after setting name because it sets the baseUnit according to the name

View File

@ -25,7 +25,7 @@ class GreatPersonPickerScreen : PickerScreen() {
button.onClick {
theChosenOne = unit
pick("Get " +unit.name)
descriptionLabel.setText(unit.baseDescription)
descriptionLabel.setText(unit.uniques.joinToString())
}
topTable.add(button).pad(10f)
}

View File

@ -52,8 +52,9 @@ class TechButton(techName:String, val techManager: TechManager) : Table(CameraSt
techEnabledIcons.add(ImageGetter.getResourceImage(resource.name, 30f))
val tech = GameBasics.Technologies[techName]!!
if(tech.baseDescription!=null)
techEnabledIcons.add(ImageGetter.getImage("OtherIcons/Star").apply { color= Color.BLACK }.surroundWithCircle(30f))
for(unique in tech.uniques)
techEnabledIcons.add(ImageGetter.getImage("OtherIcons/Star")
.apply { color= Color.BLACK }.surroundWithCircle(30f))
rightSide.add(techEnabledIcons)

View File

@ -95,7 +95,7 @@ class UnitActions {
{unit.action="Set Up"; unit.currentMovement = max(0f, unit.currentMovement-1)},
unit.currentMovement != 0f)
if (unit.name == "Settler" && !unit.isEmbarked()) {
if (unit.hasUnique("Founds a new city") && !unit.isEmbarked()) {
actionList += UnitAction("Found city",
{
worldScreen.displayTutorials("CityFounded")
@ -109,7 +109,7 @@ class UnitActions {
!tile.getTilesInDistance(3).any { it.isCityCenter() })
}
if (unit.name == "Worker" && !unit.isEmbarked()) {
if (unit.hasUnique("Can build improvements on tiles") && !unit.isEmbarked()) {
actionList += UnitAction("Construct improvement",
{ worldScreen.game.screen = ImprovementPickerScreen(tile) },
unit.currentMovement != 0f
@ -131,7 +131,7 @@ class UnitActions {
}
for(improvement in listOf("Fishing Boats","Oil well")) {
if (unit.name == "Work Boats" && tile.resource != null
if (unit.hasUnique("May create improvements on water resources") && tile.resource != null
&& tile.getTileResource().improvement == improvement
&& unit.civInfo.tech.isResearched(GameBasics.TileImprovements[improvement]!!.techRequired!!)
)