mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-13 12:27:40 +07:00
Tutorials are now defined per language!
This commit is contained in:
parent
7983901435
commit
c3cdae12d4
@ -1,12 +1,12 @@
|
|||||||
|
{ // Each entry s a tutorial, but the tutorial may be spread over separate paragraphs.
|
||||||
{
|
// so for example:
|
||||||
PolicyPickerScreen: [
|
PolicyPickerScreen: [ // Activated when entering policy picker screen
|
||||||
[
|
[ // This is simply a more comfortable format than "all in one line with \n".
|
||||||
"Each turn, the culture you gain from all your ",
|
"Each turn, the culture you gain from all your ",
|
||||||
" cities is added to your Civilization's culture.",
|
" cities is added to your Civilization's culture.",
|
||||||
"When you have enough culture, you may pick a ",
|
"When you have enough culture, you may pick a ",
|
||||||
" Social Policy, each one giving you a certain bonus."
|
" Social Policy, each one giving you a certain bonus."
|
||||||
],
|
], // this will be displayed as 4 lines of text in-game as well
|
||||||
[
|
[
|
||||||
"The policies are organized into branches, with each",
|
"The policies are organized into branches, with each",
|
||||||
" branch providing a bonus ability when all policies ",
|
" branch providing a bonus ability when all policies ",
|
@ -24,7 +24,6 @@ object GameBasics {
|
|||||||
val Civilizations = LinkedHashMap<String, Civilization>()
|
val Civilizations = LinkedHashMap<String, Civilization>()
|
||||||
val PolicyBranches = LinkedHashMap<String, PolicyBranch>()
|
val PolicyBranches = LinkedHashMap<String, PolicyBranch>()
|
||||||
val Difficulties = LinkedHashMap<String, Difficulty>()
|
val Difficulties = LinkedHashMap<String, Difficulty>()
|
||||||
val Tutorials = LinkedHashMap<String, List<String>>()
|
|
||||||
val Translations = Translations(Gdx.files.internal("jsons/Translations.json").readString())
|
val Translations = Translations(Gdx.files.internal("jsons/Translations.json").readString())
|
||||||
|
|
||||||
fun <T> getFromJson(tClass: Class<T>, name: String): T {
|
fun <T> getFromJson(tClass: Class<T>, name: String): T {
|
||||||
@ -51,12 +50,6 @@ object GameBasics {
|
|||||||
Civilizations += createHashmap(getFromJson(Array<Civilization>::class.java, "Civilizations"))
|
Civilizations += createHashmap(getFromJson(Array<Civilization>::class.java, "Civilizations"))
|
||||||
Difficulties += createHashmap(getFromJson(Array<Difficulty>::class.java, "Difficulties"))
|
Difficulties += createHashmap(getFromJson(Array<Difficulty>::class.java, "Difficulties"))
|
||||||
|
|
||||||
// ...Yes. Total Voodoo. I wish I didn't have to do this.
|
|
||||||
val x = LinkedHashMap<String,com.badlogic.gdx.utils.Array<com.badlogic.gdx.utils.Array<String>>>()
|
|
||||||
val tutorials = getFromJson(x.javaClass, "Tutorials")
|
|
||||||
for (tut in tutorials)
|
|
||||||
Tutorials[tut.key] = tut.value.map{it.joinToString("\r\n")}
|
|
||||||
|
|
||||||
val techColumns = getFromJson(Array<TechColumn>::class.java, "Techs")
|
val techColumns = getFromJson(Array<TechColumn>::class.java, "Techs")
|
||||||
for (techColumn in techColumns) {
|
for (techColumn in techColumns) {
|
||||||
for (tech in techColumn.techs) {
|
for (tech in techColumn.techs) {
|
||||||
|
@ -20,6 +20,7 @@ import com.badlogic.gdx.utils.viewport.ExtendViewport
|
|||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
import com.unciv.models.gamebasics.GameBasics
|
import com.unciv.models.gamebasics.GameBasics
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import kotlin.collections.HashMap
|
||||||
|
|
||||||
open class CameraStageBaseScreen : Screen {
|
open class CameraStageBaseScreen : Screen {
|
||||||
|
|
||||||
@ -59,11 +60,34 @@ open class CameraStageBaseScreen : Screen {
|
|||||||
|
|
||||||
override fun dispose() {}
|
override fun dispose() {}
|
||||||
|
|
||||||
|
fun getTutorialsOfLanguage(language: String): HashMap<String, List<String>> {
|
||||||
|
if(!Gdx.files.internal("jsons/Tutorials_$language.json").exists()) return hashMapOf()
|
||||||
|
|
||||||
|
// ...Yes. Disgusting. I wish I didn't have to do this.
|
||||||
|
val x = LinkedHashMap<String,com.badlogic.gdx.utils.Array<com.badlogic.gdx.utils.Array<String>>>()
|
||||||
|
val tutorials: LinkedHashMap<String, com.badlogic.gdx.utils.Array<com.badlogic.gdx.utils.Array<String>>> =
|
||||||
|
GameBasics.getFromJson(x.javaClass, "Tutorials_$language")
|
||||||
|
val tutorialMap = HashMap<String,List<String>>()
|
||||||
|
for (tut in tutorials){
|
||||||
|
val list = mutableListOf<String>()
|
||||||
|
for(paragraph in tut.value)
|
||||||
|
list += paragraph.joinToString("\n")
|
||||||
|
tutorialMap[tut.key] = list
|
||||||
|
}
|
||||||
|
return tutorialMap
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getTutorials(name:String, language:String):List<String>{
|
||||||
|
val tutorialsOfLanguage = getTutorialsOfLanguage(language)
|
||||||
|
if(tutorialsOfLanguage.containsKey(name)) return tutorialsOfLanguage[name]!!
|
||||||
|
return getTutorialsOfLanguage("English")[name]!!
|
||||||
|
}
|
||||||
|
|
||||||
fun displayTutorials(name: String) {
|
fun displayTutorials(name: String) {
|
||||||
if (UnCivGame.Current.settings.tutorialsShown.contains(name)) return
|
if (UnCivGame.Current.settings.tutorialsShown.contains(name)) return
|
||||||
UnCivGame.Current.settings.tutorialsShown.add(name)
|
UnCivGame.Current.settings.tutorialsShown.add(name)
|
||||||
UnCivGame.Current.settings.save()
|
UnCivGame.Current.settings.save()
|
||||||
val texts = GameBasics.Tutorials[name]!!
|
val texts = getTutorials(name,UnCivGame.Current.settings.language)
|
||||||
tutorialTexts.addAll(texts)
|
tutorialTexts.addAll(texts)
|
||||||
if (!isTutorialShowing) displayTutorial()
|
if (!isTutorialShowing) displayTutorial()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user