NationUnique is now removable whenever we want ;)
This commit is contained in:
parent
0a30e99359
commit
f0b041b20b
14 changed files with 47 additions and 50 deletions
|
@ -3,7 +3,6 @@ package com.unciv.logic.battle
|
|||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.city.CityInfo
|
||||
import com.unciv.logic.civilization.AlertType
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.unciv.logic.battle
|
||||
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.map.MapUnit
|
||||
import com.unciv.logic.map.TileInfo
|
||||
import com.unciv.models.ruleset.unit.UnitType
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.unciv.logic.city
|
||||
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.automation.Automation
|
||||
import com.unciv.logic.map.TileInfo
|
||||
import com.unciv.ui.utils.withItem
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Color
|
|||
import com.badlogic.gdx.math.Vector2
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.battle.Battle
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
import com.unciv.logic.civilization.diplomacy.DiplomacyFlags
|
||||
|
@ -27,7 +26,10 @@ import com.unciv.ui.utils.withoutItem
|
|||
import java.util.*
|
||||
import kotlin.collections.HashMap
|
||||
import kotlin.collections.HashSet
|
||||
import kotlin.math.*
|
||||
import kotlin.math.ceil
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
class CityInfo {
|
||||
@Transient lateinit var civInfo: CivilizationInfo
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.unciv.logic.city
|
|||
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.civilization.CityStateType
|
||||
import com.unciv.logic.civilization.diplomacy.RelationshipLevel
|
||||
import com.unciv.logic.map.RoadStatus
|
||||
|
@ -12,8 +11,6 @@ import com.unciv.models.ruleset.unit.BaseUnit
|
|||
import com.unciv.models.ruleset.unit.UnitType
|
||||
import com.unciv.models.stats.Stat
|
||||
import com.unciv.models.stats.Stats
|
||||
import com.unciv.models.translations.equalsPlaceholderText
|
||||
import com.unciv.models.translations.getPlaceholderParameters
|
||||
|
||||
|
||||
class CityStats {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.unciv.logic.civilization
|
||||
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.civilization.diplomacy.RelationshipLevel
|
||||
import com.unciv.logic.map.RoadStatus
|
||||
import com.unciv.models.metadata.BASE_GAME_DURATION_TURNS
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.unciv.logic.civilization
|
||||
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.map.TileInfo
|
||||
import com.unciv.models.ruleset.tile.ResourceSupplyList
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.unciv.logic.civilization
|
||||
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.UniqueAbility
|
||||
|
||||
class GoldenAgeManager{
|
||||
@Transient
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.unciv.logic.civilization.diplomacy
|
|||
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.civilization.*
|
||||
import com.unciv.logic.trade.Trade
|
||||
import com.unciv.logic.trade.TradeOffer
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Color
|
|||
import com.badlogic.gdx.math.Vector2
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.automation.UnitAutomation
|
||||
import com.unciv.logic.automation.WorkerAutomation
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
import com.badlogic.gdx.math.Vector2
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.HexMath
|
||||
import com.unciv.logic.city.CityInfo
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.unciv.logic.map
|
|||
|
||||
import com.badlogic.gdx.math.Vector2
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
|
||||
class UnitMovementAlgorithms(val unit:MapUnit) {
|
||||
|
|
|
@ -19,45 +19,52 @@ enum class VictoryType{
|
|||
class Nation : INamed {
|
||||
override lateinit var name: String
|
||||
|
||||
var leaderName=""
|
||||
fun getLeaderDisplayName() = if(isCityState()) name
|
||||
else "[$leaderName] of [$name]"
|
||||
var leaderName = ""
|
||||
fun getLeaderDisplayName() = if (isCityState()) name
|
||||
else "[$leaderName] of [$name]"
|
||||
|
||||
var cityStateType: CityStateType? = null
|
||||
var preferredVictoryType:VictoryType = VictoryType.Neutral
|
||||
var declaringWar=""
|
||||
var attacked=""
|
||||
var defeated=""
|
||||
var introduction=""
|
||||
var tradeRequest=""
|
||||
var preferredVictoryType: VictoryType = VictoryType.Neutral
|
||||
var declaringWar = ""
|
||||
var attacked = ""
|
||||
var defeated = ""
|
||||
var introduction = ""
|
||||
var tradeRequest = ""
|
||||
|
||||
var neutralHello=""
|
||||
var hateHello=""
|
||||
var neutralHello = ""
|
||||
var hateHello = ""
|
||||
|
||||
lateinit var outerColor: List<Int>
|
||||
var unique: UniqueAbility? = null
|
||||
val uniques = HashSet<String>()
|
||||
val uniqueObjects:List<Unique> by lazy { uniques.map { Unique(it) } }
|
||||
var uniqueName = ""
|
||||
var uniques = HashSet<String>()
|
||||
val uniqueObjects: List<Unique> by lazy { uniques.map { Unique(it) } }
|
||||
var innerColor: List<Int>? = null
|
||||
var startBias = ArrayList<String>()
|
||||
|
||||
@Transient private lateinit var outerColorObject:Color
|
||||
@Transient
|
||||
private lateinit var outerColorObject: Color
|
||||
fun getOuterColor(): Color = outerColorObject
|
||||
|
||||
@Transient private lateinit var innerColorObject:Color
|
||||
@Transient
|
||||
private lateinit var innerColorObject: Color
|
||||
|
||||
fun getInnerColor(): Color = innerColorObject
|
||||
|
||||
fun isCityState()= cityStateType != null
|
||||
fun isMajorCiv() = !isBarbarian() && !isCityState() &&!isSpectator()
|
||||
fun isBarbarian() = name== Constants.barbarians
|
||||
fun isCityState() = cityStateType != null
|
||||
fun isMajorCiv() = !isBarbarian() && !isCityState() && !isSpectator()
|
||||
fun isBarbarian() = name == Constants.barbarians
|
||||
fun isSpectator() = name == Constants.spectator
|
||||
|
||||
// This is its own transient because we'll need to check this for every tile-to-tile movement which is harsh
|
||||
@Transient var forestsAndJunglesAreRoads = false
|
||||
@Transient
|
||||
var forestsAndJunglesAreRoads = false
|
||||
|
||||
// Same for Inca unique
|
||||
@Transient var ignoreHillMovementCost = false
|
||||
@Transient var embarkDisembarkCosts1 = false
|
||||
@Transient
|
||||
var ignoreHillMovementCost = false
|
||||
@Transient
|
||||
var embarkDisembarkCosts1 = false
|
||||
|
||||
fun setTransients() {
|
||||
outerColorObject = colorFromRGB(outerColor[0], outerColor[1], outerColor[2])
|
||||
|
@ -69,19 +76,17 @@ class Nation : INamed {
|
|||
forestsAndJunglesAreRoads = true
|
||||
if (uniques.contains("Units ignore terrain costs when moving into any tile with Hills"))
|
||||
ignoreHillMovementCost = true
|
||||
if(uniques.contains("Units pay only 1 movement point to embark and disembark"))
|
||||
if (uniques.contains("Units pay only 1 movement point to embark and disembark"))
|
||||
embarkDisembarkCosts1 = true
|
||||
}
|
||||
|
||||
lateinit var cities: ArrayList<String>
|
||||
|
||||
|
||||
|
||||
|
||||
fun getUniqueString(ruleset: Ruleset, forPickerScreen: Boolean = true): String {
|
||||
val textList = ArrayList<String>()
|
||||
|
||||
if (leaderName.isNotEmpty() && !forPickerScreen){
|
||||
if (leaderName.isNotEmpty() && !forPickerScreen) {
|
||||
textList += getLeaderDisplayName().tr()
|
||||
textList += ""
|
||||
}
|
||||
|
@ -91,13 +96,18 @@ class Nation : INamed {
|
|||
|
||||
textList += ""
|
||||
}
|
||||
// if (uniqueName!="") {
|
||||
// textList += uniqueName.tr() + ":"
|
||||
// textList += " " + uniques.joinToString(", ").tr()
|
||||
// textList += ""
|
||||
// }
|
||||
if (startBias.isNotEmpty()) {
|
||||
textList += "Start bias:".tr() + startBias.joinToString(", ", " ") { it.tr() }
|
||||
textList += ""
|
||||
}
|
||||
addUniqueBuildingsText(textList,ruleset)
|
||||
addUniqueUnitsText(textList,ruleset)
|
||||
addUniqueImprovementsText(textList,ruleset)
|
||||
addUniqueBuildingsText(textList, ruleset)
|
||||
addUniqueUnitsText(textList, ruleset)
|
||||
addUniqueImprovementsText(textList, ruleset)
|
||||
|
||||
return textList.joinToString("\n").tr().trim()
|
||||
}
|
||||
|
@ -133,7 +143,7 @@ class Nation : INamed {
|
|||
private fun addUniqueUnitsText(textList: ArrayList<String>, ruleset: Ruleset) {
|
||||
for (unit in ruleset.units.values
|
||||
.filter { it.uniqueTo == name }) {
|
||||
if(unit.replaces != null) {
|
||||
if (unit.replaces != null) {
|
||||
val originalUnit = ruleset.units[unit.replaces!!]!!
|
||||
textList += unit.name.tr() + " - " + "Replaces [${originalUnit.name}]".tr()
|
||||
if (unit.cost != originalUnit.cost)
|
||||
|
@ -154,8 +164,7 @@ class Nation : INamed {
|
|||
textList += " " + "Lost ability".tr() + "(vs " + originalUnit.name.tr() + "): " + Translations.translateBonusOrPenalty(unique)
|
||||
for (promotion in unit.promotions.filter { it !in originalUnit.promotions })
|
||||
textList += " " + promotion.tr() + " (" + Translations.translateBonusOrPenalty(ruleset.unitPromotions[promotion]!!.effect) + ")"
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
textList += unit.name.tr()
|
||||
textList += " " + unit.getDescription(true).split("\n").joinToString("\n ")
|
||||
}
|
||||
|
@ -169,9 +178,9 @@ class Nation : INamed {
|
|||
.filter { it.uniqueTo == name }) {
|
||||
|
||||
textList += improvement.name.tr()
|
||||
textList += " "+improvement.clone().toString()
|
||||
for(unique in improvement.uniques)
|
||||
textList += " "+unique.tr()
|
||||
textList += " " + improvement.clone().toString()
|
||||
for (unique in improvement.uniques)
|
||||
textList += " " + unique.tr()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.unciv.ui.worldscreen.unit
|
|||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.automation.UnitAutomation
|
||||
import com.unciv.logic.automation.WorkerAutomation
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
|
|
Loading…
Reference in a new issue