mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-31 15:19:29 +07:00
Can now permanently disable barbarians in mods
This commit is contained in:
@ -61,6 +61,8 @@ object Constants {
|
||||
const val tutorialPopupNamePrefix = "Tutorial: "
|
||||
|
||||
const val close = "Close"
|
||||
const val disabled="disabled"
|
||||
const val enabled="enabled"
|
||||
|
||||
const val scienceConversionEffect = "Production to science conversion in cities increased by 33%"
|
||||
|
||||
@ -72,4 +74,5 @@ object Constants {
|
||||
const val modernEra = "Modern era"
|
||||
const val informationEra = "Information era"
|
||||
const val futureEra = "Future era"
|
||||
const val barbarians = "Barbarians"
|
||||
}
|
@ -59,7 +59,7 @@ class GameInfo {
|
||||
|
||||
fun getCivilization(civName:String) = civilizations.first { it.civName==civName }
|
||||
fun getCurrentPlayerCivilization() = currentPlayerCiv
|
||||
fun getBarbarianCivilization() = getCivilization("Barbarians")
|
||||
fun getBarbarianCivilization() = getCivilization(Constants.barbarians)
|
||||
fun getDifficulty() = difficultyObject
|
||||
fun getCities() = civilizations.flatMap { it.cities }
|
||||
//endregion
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.unciv.logic
|
||||
|
||||
import com.badlogic.gdx.math.Vector2
|
||||
import com.sun.xml.internal.bind.v2.runtime.reflect.opt.Const
|
||||
import com.unciv.Constants
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
import com.unciv.logic.map.*
|
||||
@ -59,11 +60,12 @@ object GameStarter {
|
||||
val availableCivNames = Stack<String>()
|
||||
availableCivNames.addAll(ruleset.nations.filter { !it.value.isCityState() }.keys.shuffled())
|
||||
availableCivNames.removeAll(newGameParameters.players.map { it.chosenCiv })
|
||||
availableCivNames.remove("Barbarians")
|
||||
availableCivNames.remove(Constants.barbarianEncampment)
|
||||
|
||||
|
||||
val barbarianCivilization = CivilizationInfo("Barbarians")
|
||||
gameInfo.civilizations.add(barbarianCivilization)
|
||||
if(!newGameParameters.noBarbarians && ruleset.modOptions.barbarians!=Constants.disabled) {
|
||||
val barbarianCivilization = CivilizationInfo(Constants.barbarians)
|
||||
gameInfo.civilizations.add(barbarianCivilization)
|
||||
}
|
||||
|
||||
for (player in newGameParameters.players.sortedBy { it.chosenCiv == "Random" }) {
|
||||
val nationName = if (player.chosenCiv != "Random") player.chosenCiv
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.unciv.models.ruleset
|
||||
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UniqueAbility
|
||||
import com.unciv.logic.civilization.CityStateType
|
||||
import com.unciv.models.stats.INamed
|
||||
@ -47,7 +48,7 @@ class Nation : INamed {
|
||||
|
||||
fun isCityState()= cityStateType != null
|
||||
fun isMajorCiv() = !isBarbarian() && !isCityState()
|
||||
fun isBarbarian() = name=="Barbarians"
|
||||
fun isBarbarian() = name== Constants.barbarians
|
||||
|
||||
// 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
|
||||
|
@ -2,6 +2,7 @@ package com.unciv.models.ruleset
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.badlogic.gdx.files.FileHandle
|
||||
import com.unciv.Constants
|
||||
import com.unciv.JsonParser
|
||||
import com.unciv.logic.UncivShowableException
|
||||
import com.unciv.models.ruleset.tech.TechColumn
|
||||
@ -16,6 +17,7 @@ import kotlin.collections.set
|
||||
|
||||
class ModOptions {
|
||||
var isBaseRuleset = false
|
||||
var barbarians = Constants.enabled
|
||||
var techsToRemove = HashSet<String>()
|
||||
var buildingsToRemove = HashSet<String>()
|
||||
var unitsToRemove = HashSet<String>()
|
||||
|
@ -8,6 +8,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField
|
||||
import com.badlogic.gdx.utils.Align
|
||||
import com.unciv.Constants
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.logic.IdChecker
|
||||
import com.unciv.logic.civilization.PlayerType
|
||||
@ -154,7 +155,7 @@ class PlayerPickerTable(val newGameScreen: NewGameScreen, val newGameParameters:
|
||||
|
||||
|
||||
for (nation in newGameScreen.ruleset.nations.values
|
||||
.filter { !it.isCityState() && it.name != "Barbarians" }) {
|
||||
.filter { !it.isCityState() && it.name != Constants.barbarians }) {
|
||||
if (player.chosenCiv != nation.name && newGameParameters.players.any { it.chosenCiv == nation.name })
|
||||
continue
|
||||
|
||||
|
@ -193,8 +193,8 @@ class UnitMovementAlgorithmsTests {
|
||||
tile.setTransients()
|
||||
|
||||
val otherCiv = CivilizationInfo()
|
||||
otherCiv.civName = "Barbarians" // they are always enemies
|
||||
otherCiv.nation = Nation().apply { name = "Barbarians" }
|
||||
otherCiv.civName = Constants.barbarians // they are always enemies
|
||||
otherCiv.nation = Nation().apply { name = Constants.barbarians }
|
||||
val otherUnit = MapUnit()
|
||||
otherUnit.civInfo = otherCiv
|
||||
tile.militaryUnit = otherUnit
|
||||
|
Reference in New Issue
Block a user