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