diff --git a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyFunctions.kt b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyFunctions.kt index 97f1dc4781..648c858335 100644 --- a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyFunctions.kt +++ b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyFunctions.kt @@ -149,7 +149,7 @@ class DiplomacyFunctions(val civInfo: Civilization) { fun canPassThroughTiles(otherCiv: Civilization): Boolean { if (otherCiv == civInfo) return true if (otherCiv.isBarbarian) return true - if (civInfo.isBarbarian && civInfo.gameInfo.turns >= civInfo.gameInfo.difficultyObject.turnBarbariansCanEnterPlayerTiles) + if (civInfo.isBarbarian && civInfo.gameInfo.turns >= civInfo.gameInfo.getDifficulty().turnBarbariansCanEnterPlayerTiles) return true val diplomacyManager = civInfo.diplomacy[otherCiv.civName] if (diplomacyManager != null && (diplomacyManager.hasOpenBorders || diplomacyManager.diplomaticStatus == DiplomaticStatus.War)) diff --git a/core/src/com/unciv/ui/screens/devconsole/ConsoleGameCommands.kt b/core/src/com/unciv/ui/screens/devconsole/ConsoleGameCommands.kt new file mode 100644 index 0000000000..b0393e60c0 --- /dev/null +++ b/core/src/com/unciv/ui/screens/devconsole/ConsoleGameCommands.kt @@ -0,0 +1,13 @@ +package com.unciv.ui.screens.devconsole + +internal class ConsoleGameCommands : ConsoleCommandNode { + override val subcommands = hashMapOf( + "setdifficulty" to ConsoleAction("game setdifficulty ") { console, params -> + val difficulty = params[0].findOrNull(console.gameInfo.ruleset.difficulties.values) + ?: throw ConsoleErrorException("Unrecognized difficulty") + console.gameInfo.difficulty = difficulty.name + console.gameInfo.setTransients() + DevConsoleResponse.OK + }, + ) +} diff --git a/core/src/com/unciv/ui/screens/devconsole/ConsoleParameterType.kt b/core/src/com/unciv/ui/screens/devconsole/ConsoleParameterType.kt index c69b361645..adb0754c9b 100644 --- a/core/src/com/unciv/ui/screens/devconsole/ConsoleParameterType.kt +++ b/core/src/com/unciv/ui/screens/devconsole/ConsoleParameterType.kt @@ -35,6 +35,7 @@ internal enum class ConsoleParameterType( techName( { ruleset.technologies.keys } ), cityName( { civilizations.flatMap { civ -> civ.cities.map { it.name } } } ), triggeredUniqueTemplate( { UniqueType.values().filter { it.canAcceptUniqueTarget(UniqueTarget.Triggerable) }.map { it.text } }, preferquoted = true ), + difficulty( { ruleset.difficulties.keys } ) ; private fun getOptions(console: DevConsolePopup) = console.gameInfo.getOptions() diff --git a/core/src/com/unciv/ui/screens/devconsole/DevConsoleCommand.kt b/core/src/com/unciv/ui/screens/devconsole/DevConsoleCommand.kt index 20785cd029..8af9674acd 100644 --- a/core/src/com/unciv/ui/screens/devconsole/DevConsoleCommand.kt +++ b/core/src/com/unciv/ui/screens/devconsole/DevConsoleCommand.kt @@ -91,6 +91,7 @@ internal class ConsoleCommandRoot : ConsoleCommandNode { "history" to ConsoleAction("history") { console, _ -> console.showHistory() DevConsoleResponse.hint("") // Trick console into staying open - } + }, + "game" to ConsoleGameCommands() ) }