Added CenterX and CenterY functions for actors

This commit is contained in:
Yair Morgenstern 2018-05-16 21:38:09 +03:00
parent 2c2a4e5da3
commit 9c576d6bdc
14 changed files with 67 additions and 63 deletions

View file

@ -1,6 +1,6 @@
buildscript { buildscript {
ext.kotlinVersion = '1.2.31' ext.kotlinVersion = '1.2.41'
dependencies { dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"

View file

@ -69,7 +69,7 @@ class Battle(val gameInfo:GameInfo) {
private fun getHealthDependantDamageRatio(combatant: ICombatant): Float { private fun getHealthDependantDamageRatio(combatant: ICombatant): Float {
if (combatant.getUnitType() == UnitType.City) return 1f if (combatant.getUnitType() == UnitType.City) return 1f
return 1 / 2f + combatant.getHealth() / 200f // Each point of health reduces damage dealt by 0.5% return 1/2f + combatant.getHealth()/200f // Each point of health reduces damage dealt by 0.5%
} }

View file

@ -39,7 +39,7 @@ class CityCombatant(val city: CityInfo) : ICombatant {
// 10% bonus foreach pop // 10% bonus foreach pop
val strengthWithPop = (baseStrength + strengthFromTechs) * (1 + 0.1*city.population.population) val strengthWithPop = (baseStrength + strengthFromTechs) * (1 + 0.1*city.population.population)
return strengthWithPop.toInt() * 100 // *100 because a city is always at 100% strength return strengthWithPop.toInt()
} }
override fun toString(): String {return city.name} // for debug override fun toString(): String {return city.name} // for debug

View file

@ -18,15 +18,12 @@ class MapUnitCombatant(val unit: MapUnit) : ICombatant {
} }
override fun getAttackingStrength(defender: ICombatant): Int { override fun getAttackingStrength(defender: ICombatant): Int {
val attackerStrength: Int if (isRanged()) return unit.getBaseUnit().rangedStrength
if (isRanged()) attackerStrength = unit.getBaseUnit().rangedStrength else return unit.getBaseUnit().strength
else attackerStrength = unit.getBaseUnit().strength
return attackerStrength*unit.health
} }
override fun getDefendingStrength(attacker: ICombatant): Int { override fun getDefendingStrength(attacker: ICombatant): Int {
// too: if ranged units get ranged attacked, they use their ranged str to defend! return unit.getBaseUnit().strength
return unit.getBaseUnit().strength*unit.health
} }
override fun getUnitType(): UnitType { override fun getUnitType(): UnitType {

View file

@ -2,13 +2,13 @@ package com.unciv.models.gamebasics
import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Color
import com.unciv.models.stats.INamed import com.unciv.models.stats.INamed
import com.unciv.ui.utils.fromRGB import com.unciv.ui.utils.colorFromRGB
class Civilization : INamed { class Civilization : INamed {
override lateinit var name: String override lateinit var name: String
lateinit var RGB: List<Int> lateinit var RGB: List<Int>
fun getColor(): Color { fun getColor(): Color {
return Color().fromRGB(RGB[0],RGB[1],RGB[2]) return colorFromRGB(RGB[0], RGB[1], RGB[2])
} }
lateinit var cities: List<String> lateinit var cities: List<String>
} }

View file

@ -11,6 +11,7 @@ import com.unciv.logic.map.TileInfo
import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.HexMath import com.unciv.ui.utils.HexMath
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.centerX
import java.util.* import java.util.*
class CityScreen(internal val city: CityInfo) : CameraStageBaseScreen() { class CityScreen(internal val city: CityInfo) : CameraStageBaseScreen() {
@ -137,7 +138,7 @@ class CityScreen(internal val city: CityInfo) : CameraStageBaseScreen() {
cityPickerTable.add(nextCityButton) cityPickerTable.add(nextCityButton)
} }
cityPickerTable.pack() cityPickerTable.pack()
cityPickerTable.setPosition(stage.width / 2 - cityPickerTable.width / 2, 0f) cityPickerTable.centerX(stage)
stage.addActor(cityPickerTable) stage.addActor(cityPickerTable)
} }

View file

@ -6,6 +6,8 @@ import com.unciv.logic.city.CityInfo
import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileInfo
import com.unciv.ui.tilegroups.TileGroup import com.unciv.ui.tilegroups.TileGroup
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.center
import com.unciv.ui.utils.centerX
class CityTileGroup(private val city: CityInfo, tileInfo: TileInfo) : TileGroup(tileInfo) { class CityTileGroup(private val city: CityInfo, tileInfo: TileInfo) : TileGroup(tileInfo) {
@ -25,8 +27,8 @@ class CityTileGroup(private val city: CityInfo, tileInfo: TileInfo) : TileGroup(
updateUnitImage(true) updateUnitImage(true)
if(unitImage!=null) { if(unitImage!=null) {
unitImage!!.setPosition(width / 2 - unitImage!!.width / 2 + 20, unitImage!!.center(this)
height / 2 - unitImage!!.height / 2 + 20) // top unitImage!!.y += 20 // top
} }
updatePopulationImage() updatePopulationImage()
@ -40,7 +42,8 @@ class CityTileGroup(private val city: CityInfo, tileInfo: TileInfo) : TileGroup(
yieldGroup.setOrigin(Align.center) yieldGroup.setOrigin(Align.center)
yieldGroup.setScale(0.7f) yieldGroup.setScale(0.7f)
yieldGroup.toFront() yieldGroup.toFront()
yieldGroup.setPosition(width / 2 - yieldGroup.width / 2, height * 0.25f - yieldGroup.height / 2) yieldGroup.centerX(this)
yieldGroup.y= height * 0.25f - yieldGroup.height / 2
} }
private fun updatePopulationImage() { private fun updatePopulationImage() {
@ -57,4 +60,4 @@ class CityTileGroup(private val city: CityInfo, tileInfo: TileInfo) : TileGroup(
} }
} }

View file

@ -8,7 +8,8 @@ import com.unciv.logic.map.RoadStatus
import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileInfo
import com.unciv.ui.utils.HexMath import com.unciv.ui.utils.HexMath
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.fromRGB import com.unciv.ui.utils.center
import com.unciv.ui.utils.colorFromRGB
open class TileGroup(var tileInfo: TileInfo) : Group() { open class TileGroup(var tileInfo: TileInfo) : Group() {
@ -34,8 +35,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
private fun addCircleImage() { private fun addCircleImage() {
circleImage.width = 50f circleImage.width = 50f
circleImage.height = 50f circleImage.height = 50f
circleImage.setPosition(width / 2 - circleImage.width / 2, circleImage.center(this)
height / 2 - circleImage.height / 2)
addActor(circleImage) addActor(circleImage)
circleImage.isVisible = false circleImage.isVisible = false
} }
@ -44,8 +44,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
val imageScale = groupSize * 1.5f / hexagon.width val imageScale = groupSize * 1.5f / hexagon.width
hexagon.setScale(imageScale) hexagon.setScale(imageScale)
hexagon.setOrigin(Align.center) hexagon.setOrigin(Align.center)
hexagon.setPosition((width - hexagon.width) / 2, hexagon.center(this)
(height - hexagon.height) / 2)
hexagon.zIndex = 0 hexagon.zIndex = 0
addActor(hexagon) addActor(hexagon)
} }
@ -54,8 +53,8 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
populationImage = ImageGetter.getImage("StatIcons/populationGreen.png") populationImage = ImageGetter.getImage("StatIcons/populationGreen.png")
populationImage!!.run { populationImage!!.run {
setSize(20f, 20f) setSize(20f, 20f)
setPosition(this@TileGroup.width/2 - width/2, center(this@TileGroup)
this@TileGroup.height/2 - height/2 - 20) y -= 20
} // top left } // top left
addActor(populationImage) addActor(populationImage)
} }
@ -98,8 +97,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
for(i in -2..2) { for(i in -2..2) {
val image = ImageGetter.getImage("UnitIcons/Circle.png") val image = ImageGetter.getImage("UnitIcons/Circle.png")
image.setSize(5f, 5f) image.setSize(5f, 5f)
image.moveBy(width / 2 - image.width / 2, // center image.center(this)
height / 2 - image.height / 2)
// in addTiles, we set the position of groups by relative world position *0.8*groupSize, filter groupSize = 50 // in addTiles, we set the position of groups by relative world position *0.8*groupSize, filter groupSize = 50
// Here, we want to have the borders start HALFWAY THERE and extend towards the tiles, so we give them a position of 0.8*25. // Here, we want to have the borders start HALFWAY THERE and extend towards the tiles, so we give them a position of 0.8*25.
// BUT, we don't actually want it all the way out there, because we want to display the borders of 2 different civs! // BUT, we don't actually want it all the way out there, because we want to display the borders of 2 different civs!
@ -113,8 +111,6 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
image.moveBy(relativeWorldPosition.y*i * 4, -relativeWorldPosition.x*i * 4) image.moveBy(relativeWorldPosition.y*i * 4, -relativeWorldPosition.x*i * 4)
image.color = tileInfo.getOwner()!!.getCivilization().getColor() image.color = tileInfo.getOwner()!!.getCivilization().getColor()
//image.setOrigin(image.width / 2, image.height / 2) // This is so that the rotation is calculated from the middle of the road and not the edge
//image.rotation = (90 + 180 / Math.PI * Math.atan2(relativeWorldPosition.y.toDouble(), relativeWorldPosition.x.toDouble())).toFloat()
addActor(image) addActor(image)
borderImages.add(image) borderImages.add(image)
} }
@ -157,7 +153,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
private fun updateTileColor(isViewable: Boolean) { private fun updateTileColor(isViewable: Boolean) {
val RGB = tileInfo.getBaseTerrain().RGB!! val RGB = tileInfo.getBaseTerrain().RGB!!
hexagon.color = Color().fromRGB(RGB[0], RGB[1],RGB[2]) hexagon.color = colorFromRGB(RGB[0], RGB[1], RGB[2])
if (!isViewable) hexagon.color = hexagon.color.lerp(Color.BLACK, 0.6f) if (!isViewable) hexagon.color = hexagon.color.lerp(Color.BLACK, 0.6f)
} }
@ -168,8 +164,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
terrainFeatureImage!!.run { terrainFeatureImage!!.run {
setSize(30f, 30f) setSize(30f, 30f)
setColor(1f, 1f, 1f, 0.5f) setColor(1f, 1f, 1f, 0.5f)
setPosition(this@TileGroup.width / 2 - width / 2, center(this@TileGroup)
this@TileGroup.height / 2 - height / 2)
} }
} }
@ -185,9 +180,8 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
addActor(improvementImage) addActor(improvementImage)
improvementImage!!.run { improvementImage!!.run {
setSize(20f, 20f) setSize(20f, 20f)
center(this@TileGroup)
setPosition(this@TileGroup.width / 2 - width / 2 + 20f, this.x+=20 // right
this@TileGroup.height / 2 - height / 2) // right
} }
improvementType = tileInfo.improvement improvementType = tileInfo.improvement
} }
@ -198,8 +192,8 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
val fileName = "ResourceIcons/" + tileInfo.resource + "_(Civ5).png" val fileName = "ResourceIcons/" + tileInfo.resource + "_(Civ5).png"
resourceImage = ImageGetter.getImage(fileName) resourceImage = ImageGetter.getImage(fileName)
resourceImage!!.setSize(20f, 20f) resourceImage!!.setSize(20f, 20f)
resourceImage!!.setPosition(width / 2 - resourceImage!!.width / 2 - 20f, resourceImage!!.center(this)
height / 2 - resourceImage!!.height / 2) // left resourceImage!!.x -= 20 // left
addActor(resourceImage!!) addActor(resourceImage!!)
} }
} }
@ -239,8 +233,7 @@ open class TileGroup(var tileInfo: TileInfo) : Group() {
setSize(background.width,background.height) setSize(background.width,background.height)
addActor(background) addActor(background)
} }
unitBaseImage.setPosition(group.width/2-unitBaseImage.width/2, unitBaseImage.center(group)
group.height/2-unitBaseImage.height/2)
group.addActor(unitBaseImage) group.addActor(unitBaseImage)
return group return group
} }

View file

@ -10,6 +10,7 @@ import com.unciv.ui.cityscreen.CityScreen
import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.cityscreen.addClickListener
import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.center
class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) { class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
@ -18,8 +19,7 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
fun addWhiteCircleAroundUnit(){ fun addWhiteCircleAroundUnit(){
val whiteCircle = ImageGetter.getImage("UnitIcons/Circle.png") val whiteCircle = ImageGetter.getImage("UnitIcons/Circle.png")
whiteCircle.setSize(25f,25f) whiteCircle.setSize(25f,25f)
whiteCircle.setPosition(unitImage!!.width/2 - whiteCircle.width/2, whiteCircle.center(unitImage!!)
unitImage!!.height/2 - whiteCircle.height/2)
unitImage!!.addActor(whiteCircle) unitImage!!.addActor(whiteCircle)
whiteCircle.toBack() whiteCircle.toBack()
} }
@ -38,8 +38,8 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
updateCityButton(city) updateCityButton(city)
updateUnitImage(isViewable) updateUnitImage(isViewable)
if(unitImage!=null) { if(unitImage!=null) {
unitImage!!.setPosition(width / 2 - unitImage!!.width / 2, unitImage!!.center(this)
height / 2 - unitImage!!.height / 2 + 20) // top unitImage!!.y += 20 // top
} }
} }
@ -72,8 +72,7 @@ class WorldTileGroup(tileInfo: TileInfo) : TileGroup(tileInfo) {
toFront() toFront()
} }
cityButton!!.setPosition(width / 2 - cityButton!!.width / 2, cityButton!!.center(this)
height / 2 - cityButton!!.height / 2)
} }
} }

View file

@ -6,6 +6,7 @@ import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.GL20 import com.badlogic.gdx.graphics.GL20
import com.badlogic.gdx.graphics.g2d.Batch import com.badlogic.gdx.graphics.g2d.Batch
import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.scenes.scene2d.Actor
import com.badlogic.gdx.scenes.scene2d.Stage import com.badlogic.gdx.scenes.scene2d.Stage
import com.badlogic.gdx.scenes.scene2d.Touchable import com.badlogic.gdx.scenes.scene2d.Touchable
import com.badlogic.gdx.scenes.scene2d.ui.* import com.badlogic.gdx.scenes.scene2d.ui.*
@ -81,8 +82,7 @@ open class CameraStageBaseScreen : Screen {
} }
tutorialTable.add(button).pad(10f) tutorialTable.add(button).pad(10f)
tutorialTable.pack() tutorialTable.pack()
tutorialTable.setPosition(stage.width / 2 - tutorialTable.width / 2, tutorialTable.center(stage)
stage.height / 2 - tutorialTable.height / 2)
stage.addActor(tutorialTable) stage.addActor(tutorialTable)
} }
@ -105,6 +105,14 @@ fun Button.enable() {
fun <E> List<E>.getRandom(): E = if (size == 0) throw Exception() else get((Math.random() * size).toInt()) fun <E> List<E>.getRandom(): E = if (size == 0) throw Exception() else get((Math.random() * size).toInt())
fun Color.fromRGB(r:Int,g:Int,b:Int): Color { fun colorFromRGB(r: Int, g: Int, b: Int): Color {
return Color(r/255f, g/255f, b/255f, 1f) return Color(r/255f, g/255f, b/255f, 1f)
} }
fun Actor.centerX(parent:Actor){ x = parent.width/2 - width/2 }
fun Actor.centerY(parent:Actor){ y = parent.height/2- height/2}
fun Actor.center(parent:Actor){ centerX(parent); centerY(parent)}
fun Actor.centerX(parent:Stage){ x = parent.width/2 - width/2 }
fun Actor.centerY(parent:Stage){ y = parent.height/2- height/2}
fun Actor.center(parent:Stage){ centerX(parent); centerY(parent)}

View file

@ -13,6 +13,7 @@ import com.unciv.logic.map.UnitType
import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.cityscreen.addClickListener
import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.centerX
import com.unciv.ui.utils.disable import com.unciv.ui.utils.disable
import kotlin.math.max import kotlin.math.max
@ -70,8 +71,8 @@ class BattleTable(val worldScreen: WorldScreen): Table() {
row().pad(5f) row().pad(5f)
add("Strength: "+attacker.getAttackingStrength(defender)/100f) add("Strength: "+attacker.getAttackingStrength(defender))
add("Strength: "+defender.getDefendingStrength(attacker)/100f) add("Strength: "+defender.getDefendingStrength(attacker))
row().pad(5f) row().pad(5f)
val attackerModifiers = battle.getAttackModifiers(attacker,defender) .map { it.key+": "+(if(it.value>0)"+" else "")+(it.value*100).toInt()+"%" } val attackerModifiers = battle.getAttackModifiers(attacker,defender) .map { it.key+": "+(if(it.value>0)"+" else "")+(it.value*100).toInt()+"%" }
@ -82,8 +83,8 @@ class BattleTable(val worldScreen: WorldScreen): Table() {
if (defenderModifiers.size > i) add(defenderModifiers[i]) else add() if (defenderModifiers.size > i) add(defenderModifiers[i]) else add()
row().pad(5f) row().pad(5f)
} }
add((battle.getAttackingStrength(attacker,defender)/100f).toString()) add(battle.getAttackingStrength(attacker,defender).toString())
add((battle.getDefendingStrength(attacker,defender)/100f).toString()) add(battle.getDefendingStrength(attacker,defender).toString())
row().pad(5f) row().pad(5f)
var damageToDefender = battle.calculateDamageToDefender(attacker,defender) var damageToDefender = battle.calculateDamageToDefender(attacker,defender)

View file

@ -9,7 +9,8 @@ import com.unciv.models.gamebasics.ResourceType
import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.cityscreen.addClickListener
import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.fromRGB import com.unciv.ui.utils.centerY
import com.unciv.ui.utils.colorFromRGB
import kotlin.math.ceil import kotlin.math.ceil
class CivStatsTable(val screen: WorldScreen) : Table() { class CivStatsTable(val screen: WorldScreen) : Table() {
@ -18,10 +19,10 @@ class CivStatsTable(val screen: WorldScreen) : Table() {
.apply { fontColor = Color.valueOf("f5f5f5ff") } .apply { fontColor = Color.valueOf("f5f5f5ff") }
private val turnsLabel = Label("Turns: 0/400", labelStyle) private val turnsLabel = Label("Turns: 0/400", labelStyle)
private val goldLabel = Label("Gold:",labelStyle).apply { color = Color().fromRGB(225,217,71) } private val goldLabel = Label("Gold:",labelStyle).apply { color = colorFromRGB(225, 217, 71) }
private val scienceLabel = Label("Science:",labelStyle).apply { color = Color().fromRGB(78,140,151) } private val scienceLabel = Label("Science:",labelStyle).apply { color = colorFromRGB(78, 140, 151) }
private val happinessLabel = Label("Happiness:",labelStyle) private val happinessLabel = Label("Happiness:",labelStyle)
private val cultureLabel = Label("Culture:",labelStyle).apply { color = Color().fromRGB(210,94,210) } private val cultureLabel = Label("Culture:",labelStyle).apply { color = colorFromRGB(210, 94, 210) }
private val resourceLabels = HashMap<String, Label>() private val resourceLabels = HashMap<String, Label>()
private val resourceImages = HashMap<String, Image>() private val resourceImages = HashMap<String, Image>()
private val happinessImage = ImageGetter.getStatIcon("Happiness") private val happinessImage = ImageGetter.getStatIcon("Happiness")
@ -84,7 +85,7 @@ class CivStatsTable(val screen: WorldScreen) : Table() {
menuButton.addClickListener { menuButton.addClickListener {
screen.optionsTable.isVisible = !screen.optionsTable.isVisible screen.optionsTable.isVisible = !screen.optionsTable.isVisible
} }
menuButton.y = this.height/2-menuButton.height/2 menuButton.centerY(this)
menuButton.x = menuButton.y menuButton.x = menuButton.y
return menuButton return menuButton
} }
@ -126,7 +127,7 @@ class CivStatsTable(val screen: WorldScreen) : Table() {
happinessImage.drawable = ImageGetter.getStatIcon("Malcontent").drawable happinessImage.drawable = ImageGetter.getStatIcon("Malcontent").drawable
} }
else{ else{
happinessLabel.color = Color().fromRGB(92,194,77) happinessLabel.color = colorFromRGB(92, 194, 77)
happinessImage.drawable = ImageGetter.getStatIcon("Happiness").drawable happinessImage.drawable = ImageGetter.getStatIcon("Happiness").drawable
} }

View file

@ -6,6 +6,7 @@ import com.badlogic.gdx.scenes.scene2d.Group
import com.badlogic.gdx.scenes.scene2d.InputEvent import com.badlogic.gdx.scenes.scene2d.InputEvent
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener
import com.badlogic.gdx.utils.Align
import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.civilization.CivilizationInfo
import com.unciv.logic.map.TileInfo import com.unciv.logic.map.TileInfo
import com.unciv.logic.map.TileMap import com.unciv.logic.map.TileMap
@ -13,7 +14,7 @@ import com.unciv.logic.map.UnitType
import com.unciv.ui.cityscreen.addClickListener import com.unciv.ui.cityscreen.addClickListener
import com.unciv.ui.tilegroups.WorldTileGroup import com.unciv.ui.tilegroups.WorldTileGroup
import com.unciv.ui.utils.HexMath import com.unciv.ui.utils.HexMath
import com.unciv.ui.utils.fromRGB import com.unciv.ui.utils.colorFromRGB
class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: TileMap, internal val civInfo: CivilizationInfo) : ScrollPane(null) { class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap: TileMap, internal val civInfo: CivilizationInfo) : ScrollPane(null) {
internal var selectedTile: TileInfo? = null internal var selectedTile: TileInfo? = null
@ -63,7 +64,7 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap:
widget = allTiles widget = allTiles
setFillParent(true) setFillParent(true)
setOrigin(worldScreen.stage.width / 2, worldScreen.stage.height / 2) setOrigin(Align.center)
setSize(worldScreen.stage.width, worldScreen.stage.height) setSize(worldScreen.stage.width, worldScreen.stage.height)
addListener(object : ActorGestureListener() { addListener(object : ActorGestureListener() {
var lastScale = 1f var lastScale = 1f
@ -110,10 +111,10 @@ class TileMapHolder(internal val worldScreen: WorldScreen, internal val tileMap:
} }
for(tile: TileInfo in unit.getDistanceToTiles().keys) for(tile: TileInfo in unit.getDistanceToTiles().keys)
tileGroups[tile]!!.showCircle(Color().fromRGB(0,120,215)) tileGroups[tile]!!.showCircle(colorFromRGB(0, 120, 215))
for (tile in attackableTiles.filter { it.unit!=null && it.unit!!.owner != unit.owner && civViewableTiles.contains(it)}) for (tile in attackableTiles.filter { it.unit!=null && it.unit!!.owner != unit.owner && civViewableTiles.contains(it)})
tileGroups[tile]!!.showCircle(Color().fromRGB(237,41,57)) tileGroups[tile]!!.showCircle(colorFromRGB(237, 41, 57))
} }
if(selectedTile!=null) if(selectedTile!=null)

View file

@ -12,6 +12,7 @@ import com.unciv.ui.cityscreen.addClickListener
import com.unciv.ui.pickerscreens.PolicyPickerScreen import com.unciv.ui.pickerscreens.PolicyPickerScreen
import com.unciv.ui.utils.CameraStageBaseScreen import com.unciv.ui.utils.CameraStageBaseScreen
import com.unciv.ui.utils.ImageGetter import com.unciv.ui.utils.ImageGetter
import com.unciv.ui.utils.center
class WorldScreenOptionsTable internal constructor(worldScreen: WorldScreen, private val civInfo: CivilizationInfo) : Table() { class WorldScreenOptionsTable internal constructor(worldScreen: WorldScreen, private val civInfo: CivilizationInfo) : Table() {
@ -67,7 +68,6 @@ class WorldScreenOptionsTable internal constructor(worldScreen: WorldScreen, pri
add(closeButton) add(closeButton)
pack() // Needed to show the background. pack() // Needed to show the background.
setPosition(worldScreen.stage.width / 2 - width / 2, center(worldScreen.stage)
worldScreen.stage.height / 2 - height / 2)
} }
} }