From 311611bee59d53aa646aade77a560ab390d65f3f Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Sat, 13 Sep 2025 15:30:28 -0400 Subject: [PATCH] Add Global Uniques to the Civilopedia (#13910) * Add Global Uniques to the Civilopedia * Clean up the text * Clean up the code * Move into getCivilopediaTutorials --- .../jsons/translations/Afrikaans.properties | 2 +- .../jsons/translations/Bangla.properties | 2 +- .../jsons/translations/Belarusian.properties | 2 +- .../jsons/translations/Bosnian.properties | 2 +- .../Brazilian_Portuguese.properties | 2 +- .../jsons/translations/Bulgarian.properties | 2 +- .../jsons/translations/Catalan.properties | 2 +- .../jsons/translations/Croatian.properties | 2 +- .../jsons/translations/Czech.properties | 2 +- .../jsons/translations/Dutch.properties | 2 +- .../jsons/translations/English.properties | 2 +- .../jsons/translations/Filipino.properties | 2 +- .../jsons/translations/Finnish.properties | 2 +- .../jsons/translations/French.properties | 2 +- .../jsons/translations/Galician.properties | 2 +- .../jsons/translations/German.properties | 2 +- .../jsons/translations/Greek.properties | 2 +- .../jsons/translations/Hungarian.properties | 2 +- .../jsons/translations/Indonesian.properties | 2 +- .../jsons/translations/Italian.properties | 2 +- .../jsons/translations/Japanese.properties | 2 +- .../jsons/translations/Korean.properties | 2 +- .../jsons/translations/Latin.properties | 2 +- .../jsons/translations/Lithuanian.properties | 2 +- .../jsons/translations/Malay.properties | 2 +- .../jsons/translations/Norwegian.properties | 2 +- .../Persian_(Pinglish-DIN).properties | 2 +- .../Persian_(Pinglish-UN).properties | 2 +- .../jsons/translations/Polish.properties | 2 +- .../jsons/translations/Portuguese.properties | 2 +- .../jsons/translations/Romanian.properties | 2 +- .../jsons/translations/Russian.properties | 2 +- .../jsons/translations/Rusyn.properties | 2 +- .../Simplified_Chinese.properties | 2 +- .../jsons/translations/Spanish.properties | 2 +- .../jsons/translations/Swedish.properties | 2 +- .../assets/jsons/translations/Thai.properties | 2 +- .../Traditional_Chinese.properties | 2 +- .../jsons/translations/Turkish.properties | 2 +- .../jsons/translations/Ukrainian.properties | 2 +- .../jsons/translations/Vietnamese.properties | 2 +- .../assets/jsons/translations/Zulu.properties | 2 +- .../jsons/translations/template.properties | 1 + .../com/unciv/models/ruleset/GlobalUniques.kt | 32 +++++++++++++++++-- .../screens/basescreen/TutorialController.kt | 4 ++- .../CivilopediaCategories.kt | 4 ++- 46 files changed, 79 insertions(+), 46 deletions(-) diff --git a/android/assets/jsons/translations/Afrikaans.properties b/android/assets/jsons/translations/Afrikaans.properties index 45e0c4a81e..d5d25989ea 100644 --- a/android/assets/jsons/translations/Afrikaans.properties +++ b/android/assets/jsons/translations/Afrikaans.properties @@ -4800,7 +4800,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Bangla.properties b/android/assets/jsons/translations/Bangla.properties index cc695c2ab3..334ae8768c 100644 --- a/android/assets/jsons/translations/Bangla.properties +++ b/android/assets/jsons/translations/Bangla.properties @@ -4304,7 +4304,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Belarusian.properties b/android/assets/jsons/translations/Belarusian.properties index d91755a472..18b4228a2e 100644 --- a/android/assets/jsons/translations/Belarusian.properties +++ b/android/assets/jsons/translations/Belarusian.properties @@ -4465,7 +4465,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Bosnian.properties b/android/assets/jsons/translations/Bosnian.properties index 300d349c27..9f8e647fad 100644 --- a/android/assets/jsons/translations/Bosnian.properties +++ b/android/assets/jsons/translations/Bosnian.properties @@ -5034,7 +5034,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Brazilian_Portuguese.properties b/android/assets/jsons/translations/Brazilian_Portuguese.properties index a7f0c9c50e..06e05dd88a 100644 --- a/android/assets/jsons/translations/Brazilian_Portuguese.properties +++ b/android/assets/jsons/translations/Brazilian_Portuguese.properties @@ -2813,7 +2813,7 @@ UnitType = Tipo de Unidade Promotion = Promoção Resource = Recursos Ruins = Ruínas -GlobalUniques = Únicos Globais +Global Uniques = Únicos Globais Speed = Velocidade Tutorial = Tutorial CityState = Cidade-Estado diff --git a/android/assets/jsons/translations/Bulgarian.properties b/android/assets/jsons/translations/Bulgarian.properties index eb0c08de79..db517dcca9 100644 --- a/android/assets/jsons/translations/Bulgarian.properties +++ b/android/assets/jsons/translations/Bulgarian.properties @@ -4079,7 +4079,7 @@ Promotion = Resource = Ресурс Ruins = Руини # Requires translation! -GlobalUniques = +Global Uniques = Speed = Скорост # Requires translation! Tutorial = diff --git a/android/assets/jsons/translations/Catalan.properties b/android/assets/jsons/translations/Catalan.properties index acd48fe90d..08e5e4d9d0 100644 --- a/android/assets/jsons/translations/Catalan.properties +++ b/android/assets/jsons/translations/Catalan.properties @@ -2845,7 +2845,7 @@ UnitType = Tipus d’unitat Promotion = Ascens Resource = Recurs Ruins = Ruïnes -GlobalUniques = Únics globals +Global Uniques = Únics globals Speed = Velocitat Tutorial = Tutorial CityState = Ciutat-estat diff --git a/android/assets/jsons/translations/Croatian.properties b/android/assets/jsons/translations/Croatian.properties index f7717d77cb..ea129962fe 100644 --- a/android/assets/jsons/translations/Croatian.properties +++ b/android/assets/jsons/translations/Croatian.properties @@ -2829,7 +2829,7 @@ UnitType = TipJedinice Promotion = Promaknuće Resource = Resurs Ruins = Ruševine -GlobalUniques = GlobalniUnikati +Global Uniques = Globalni Unikati Speed = Brzina Tutorial = Poduka CityState = GradDržava diff --git a/android/assets/jsons/translations/Czech.properties b/android/assets/jsons/translations/Czech.properties index 8fc41ba641..cd0eb808d5 100644 --- a/android/assets/jsons/translations/Czech.properties +++ b/android/assets/jsons/translations/Czech.properties @@ -3316,7 +3316,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Dutch.properties b/android/assets/jsons/translations/Dutch.properties index 731449c22e..a80ddcf87d 100644 --- a/android/assets/jsons/translations/Dutch.properties +++ b/android/assets/jsons/translations/Dutch.properties @@ -2875,7 +2875,7 @@ Promotion = Promotie Resource = Hulpbron Ruins = Ruïnes # Requires translation! -GlobalUniques = +Global Uniques = Speed = Snelheid Tutorial = Tutorial CityState = StadStaat diff --git a/android/assets/jsons/translations/English.properties b/android/assets/jsons/translations/English.properties index 0cbe0ed042..b0f2765e50 100644 --- a/android/assets/jsons/translations/English.properties +++ b/android/assets/jsons/translations/English.properties @@ -5217,7 +5217,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Filipino.properties b/android/assets/jsons/translations/Filipino.properties index 5160cdf19d..a171b2fab4 100644 --- a/android/assets/jsons/translations/Filipino.properties +++ b/android/assets/jsons/translations/Filipino.properties @@ -3121,7 +3121,7 @@ Promotion = Promosyon Resource = Pagkukunan Ruins = Guho # Requires translation! -GlobalUniques = +Global Uniques = Speed = Bilis Tutorial = Tutoryal CityState = LungsodEstado diff --git a/android/assets/jsons/translations/Finnish.properties b/android/assets/jsons/translations/Finnish.properties index 631ec9a8d9..17a99ac9e6 100644 --- a/android/assets/jsons/translations/Finnish.properties +++ b/android/assets/jsons/translations/Finnish.properties @@ -4241,7 +4241,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/French.properties b/android/assets/jsons/translations/French.properties index d6e7aad26a..91ebfb06b2 100644 --- a/android/assets/jsons/translations/French.properties +++ b/android/assets/jsons/translations/French.properties @@ -2812,7 +2812,7 @@ UnitType = Type Unité Promotion = Promotion Resource = Ressource Ruins = Ruines -GlobalUniques = GlobalUniques +Global Uniques = Uniques Mondiales Speed = Vitesse Tutorial = Tutoriel CityState = Cité-État diff --git a/android/assets/jsons/translations/Galician.properties b/android/assets/jsons/translations/Galician.properties index 8c2aed2f8c..c610dd9497 100644 --- a/android/assets/jsons/translations/Galician.properties +++ b/android/assets/jsons/translations/Galician.properties @@ -2819,7 +2819,7 @@ UnitType = Tipo de unidade Promotion = Promoción Resource = Recurso Ruins = Ruínas -GlobalUniques = Únicos globais +Global Uniques = Únicos Globais Speed = Velocidade Tutorial = Tuturial CityState = cidade-estado diff --git a/android/assets/jsons/translations/German.properties b/android/assets/jsons/translations/German.properties index a1a4c454ad..7355b30a68 100644 --- a/android/assets/jsons/translations/German.properties +++ b/android/assets/jsons/translations/German.properties @@ -2826,7 +2826,7 @@ UnitType = Einheitentyp Promotion = Beförderung Resource = Ressource Ruins = Ruinen -GlobalUniques = Globale Unikate +Global Uniques = Globale Unikate Speed = Geschwindigkeit Tutorial = Tutorial CityState = Stadtstaat diff --git a/android/assets/jsons/translations/Greek.properties b/android/assets/jsons/translations/Greek.properties index f633de4238..2868e593e0 100644 --- a/android/assets/jsons/translations/Greek.properties +++ b/android/assets/jsons/translations/Greek.properties @@ -4771,7 +4771,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Hungarian.properties b/android/assets/jsons/translations/Hungarian.properties index 8bcaa8b8bf..3b5483d27d 100644 --- a/android/assets/jsons/translations/Hungarian.properties +++ b/android/assets/jsons/translations/Hungarian.properties @@ -3030,7 +3030,7 @@ Promotion = Előléptetés Resource = Erőforrás Ruins = Romok # Requires translation! -GlobalUniques = +Global Uniques = Speed = Sebesség Tutorial = Bemutató CityState = Városállam diff --git a/android/assets/jsons/translations/Indonesian.properties b/android/assets/jsons/translations/Indonesian.properties index 83dd5208c5..383bb561ce 100644 --- a/android/assets/jsons/translations/Indonesian.properties +++ b/android/assets/jsons/translations/Indonesian.properties @@ -2812,7 +2812,7 @@ UnitType = JenisUnit Promotion = Promosi Resource = SumberDaya Ruins = Reruntuhan -GlobalUniques = KeunikanGlobal +Global Uniques = Keunikan Global Speed = Kecepatan Tutorial = Tutorial CityState = NegaraKota diff --git a/android/assets/jsons/translations/Italian.properties b/android/assets/jsons/translations/Italian.properties index 1e939649ba..921a43e13c 100644 --- a/android/assets/jsons/translations/Italian.properties +++ b/android/assets/jsons/translations/Italian.properties @@ -2819,7 +2819,7 @@ Promotion = Promozione Resource = Risorsa Ruins = Rovine # Requires translation! -GlobalUniques = +Global Uniques = Speed = Velocità Tutorial = Tutorial CityState = Città-Stato diff --git a/android/assets/jsons/translations/Japanese.properties b/android/assets/jsons/translations/Japanese.properties index 171d1ad914..bbd342540c 100644 --- a/android/assets/jsons/translations/Japanese.properties +++ b/android/assets/jsons/translations/Japanese.properties @@ -2835,7 +2835,7 @@ UnitType = ユニットタイプ Promotion = 昇進 Resource = 資源 Ruins = 遺跡 -GlobalUniques = グローバルユニーク +Global Uniques = グローバルユニーク Speed = スピード Tutorial = チュートリアル CityState = 都市国家 diff --git a/android/assets/jsons/translations/Korean.properties b/android/assets/jsons/translations/Korean.properties index 70d3324afc..1c1c2f32f0 100644 --- a/android/assets/jsons/translations/Korean.properties +++ b/android/assets/jsons/translations/Korean.properties @@ -2857,7 +2857,7 @@ UnitType = 유닛 Promotion = 승급 Resource = 자원 Ruins = 도시 폐허 -GlobalUniques = 전역특성 +Global Uniques = 전역특성 Speed = 속도 Tutorial = 튜토리얼 CityState = 도시국가 diff --git a/android/assets/jsons/translations/Latin.properties b/android/assets/jsons/translations/Latin.properties index 5cfbcaf875..644326fd8e 100644 --- a/android/assets/jsons/translations/Latin.properties +++ b/android/assets/jsons/translations/Latin.properties @@ -3035,7 +3035,7 @@ Promotion = Promotio Resource = Merx Ruins = Parietinae # Requires translation! -GlobalUniques = +Global Uniques = Speed = Celeritas Tutorial = Praeceptum CityState = Civitas Urbis diff --git a/android/assets/jsons/translations/Lithuanian.properties b/android/assets/jsons/translations/Lithuanian.properties index 7777a106f3..2c69cc64fb 100644 --- a/android/assets/jsons/translations/Lithuanian.properties +++ b/android/assets/jsons/translations/Lithuanian.properties @@ -3496,7 +3496,7 @@ Promotion = Paaukštinmas Resource = Resursas Ruins = Griuvėsiai # Requires translation! -GlobalUniques = +Global Uniques = Speed = Greitis Tutorial = Apmokymai CityState = Laisvasis miestas diff --git a/android/assets/jsons/translations/Malay.properties b/android/assets/jsons/translations/Malay.properties index 6ea62f6802..1a96591e4a 100644 --- a/android/assets/jsons/translations/Malay.properties +++ b/android/assets/jsons/translations/Malay.properties @@ -3999,7 +3999,7 @@ Promotion = Kenaikan Pangkat Resource = Sumber Ruins = Runtuhan # Requires translation! -GlobalUniques = +Global Uniques = Speed = Kelajuan # Requires translation! Tutorial = diff --git a/android/assets/jsons/translations/Norwegian.properties b/android/assets/jsons/translations/Norwegian.properties index 71f6178b29..7a8f726fbc 100644 --- a/android/assets/jsons/translations/Norwegian.properties +++ b/android/assets/jsons/translations/Norwegian.properties @@ -3297,7 +3297,7 @@ Promotion = Forfremjing Resource = Ressurs Ruins = Ruinar # Requires translation! -GlobalUniques = +Global Uniques = Speed = Snøggleik Tutorial = Rettleiing CityState = CityState diff --git a/android/assets/jsons/translations/Persian_(Pinglish-DIN).properties b/android/assets/jsons/translations/Persian_(Pinglish-DIN).properties index bf1a8f0191..f8ba05f16e 100644 --- a/android/assets/jsons/translations/Persian_(Pinglish-DIN).properties +++ b/android/assets/jsons/translations/Persian_(Pinglish-DIN).properties @@ -4620,7 +4620,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Persian_(Pinglish-UN).properties b/android/assets/jsons/translations/Persian_(Pinglish-UN).properties index 87493b534b..5f48c506b5 100644 --- a/android/assets/jsons/translations/Persian_(Pinglish-UN).properties +++ b/android/assets/jsons/translations/Persian_(Pinglish-UN).properties @@ -4005,7 +4005,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = Speed = Sor’at Tutorial = Aamoozesh # Requires translation! diff --git a/android/assets/jsons/translations/Polish.properties b/android/assets/jsons/translations/Polish.properties index 4ec2e18eec..b88ac14184 100644 --- a/android/assets/jsons/translations/Polish.properties +++ b/android/assets/jsons/translations/Polish.properties @@ -2872,7 +2872,7 @@ Promotion = Awans Resource = Surowiec Ruins = Ruiny # Requires translation! -GlobalUniques = +Global Uniques = Speed = Prędkość Tutorial = Samouczek CityState = Wolne Miasto diff --git a/android/assets/jsons/translations/Portuguese.properties b/android/assets/jsons/translations/Portuguese.properties index a904f35aee..57aa83e238 100644 --- a/android/assets/jsons/translations/Portuguese.properties +++ b/android/assets/jsons/translations/Portuguese.properties @@ -2812,7 +2812,7 @@ UnitType = Tipo de Unidade Promotion = Promoção Resource = Recurso Ruins = Ruínas -GlobalUniques = UnicosGlobaís +Global Uniques = Unicos Globaís Speed = Velocidade Tutorial = Tutorial CityState = Cidade-Estado diff --git a/android/assets/jsons/translations/Romanian.properties b/android/assets/jsons/translations/Romanian.properties index 14e608d440..e27f64e25c 100644 --- a/android/assets/jsons/translations/Romanian.properties +++ b/android/assets/jsons/translations/Romanian.properties @@ -3446,7 +3446,7 @@ Promotion = Resource = Resursă Ruins = Ruine # Requires translation! -GlobalUniques = +Global Uniques = Speed = Viteză Tutorial = Tutorial CityState = Oraș-stat diff --git a/android/assets/jsons/translations/Russian.properties b/android/assets/jsons/translations/Russian.properties index 593785fe1b..5930d54462 100644 --- a/android/assets/jsons/translations/Russian.properties +++ b/android/assets/jsons/translations/Russian.properties @@ -2833,7 +2833,7 @@ UnitType = Тип юнита Promotion = Повышение Resource = Ресурс Ruins = Руины -GlobalUniques = Глобальные редкости +Global Uniques = Глобальные редкости Speed = Скорость Tutorial = Обучение CityState = Город-государство diff --git a/android/assets/jsons/translations/Rusyn.properties b/android/assets/jsons/translations/Rusyn.properties index 22e8b165c2..5a2e8f529a 100644 --- a/android/assets/jsons/translations/Rusyn.properties +++ b/android/assets/jsons/translations/Rusyn.properties @@ -4446,7 +4446,7 @@ Promotion = Промоція Resource = Ресурс Ruins = Розвалениська # Requires translation! -GlobalUniques = +Global Uniques = Speed = Скорость Tutorial = Ошколованя CityState = Штат-варош diff --git a/android/assets/jsons/translations/Simplified_Chinese.properties b/android/assets/jsons/translations/Simplified_Chinese.properties index da86fa4c5b..1e245d2586 100644 --- a/android/assets/jsons/translations/Simplified_Chinese.properties +++ b/android/assets/jsons/translations/Simplified_Chinese.properties @@ -2827,7 +2827,7 @@ UnitType = 单位类别 Promotion = 晋升项 Resource = 资源 Ruins = 遗迹 -GlobalUniques = 全局特性 +Global Uniques = 全局特性 Speed = 游戏速度 Tutorial = 教程 CityState = 城邦 diff --git a/android/assets/jsons/translations/Spanish.properties b/android/assets/jsons/translations/Spanish.properties index 93a000f33c..5b0e99efbf 100644 --- a/android/assets/jsons/translations/Spanish.properties +++ b/android/assets/jsons/translations/Spanish.properties @@ -2821,7 +2821,7 @@ UnitType = Tipo de unidad Promotion = Promoción Resource = Recurso Ruins = Ruinas -GlobalUniques = Únicos globales +Global Uniques = Únicos globales Speed = Velocidad Tutorial = Tutorial CityState = Ciudad-Estado diff --git a/android/assets/jsons/translations/Swedish.properties b/android/assets/jsons/translations/Swedish.properties index 3015898df8..43a34f0b1d 100644 --- a/android/assets/jsons/translations/Swedish.properties +++ b/android/assets/jsons/translations/Swedish.properties @@ -3506,7 +3506,7 @@ Promotion = Befordran Resource = Resurs Ruins = Ruiner # Requires translation! -GlobalUniques = +Global Uniques = Speed = Hastighet Tutorial = Handledning CityState = CityState diff --git a/android/assets/jsons/translations/Thai.properties b/android/assets/jsons/translations/Thai.properties index c476937a8c..f65ecd7fad 100644 --- a/android/assets/jsons/translations/Thai.properties +++ b/android/assets/jsons/translations/Thai.properties @@ -4700,7 +4700,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/Traditional_Chinese.properties b/android/assets/jsons/translations/Traditional_Chinese.properties index ca1fd7959e..7f204deca8 100644 --- a/android/assets/jsons/translations/Traditional_Chinese.properties +++ b/android/assets/jsons/translations/Traditional_Chinese.properties @@ -2864,7 +2864,7 @@ Promotion = 晉升 Resource = 資源 Ruins = 廢墟 # Requires translation! -GlobalUniques = +Global Uniques = Speed = 速度 Tutorial = 教學 CityState = 城邦 diff --git a/android/assets/jsons/translations/Turkish.properties b/android/assets/jsons/translations/Turkish.properties index a0bb946097..5d4a8cacc9 100644 --- a/android/assets/jsons/translations/Turkish.properties +++ b/android/assets/jsons/translations/Turkish.properties @@ -2852,7 +2852,7 @@ Promotion = Terfi Resource = Kaynak Ruins = Kalıntılar # Requires translation! -GlobalUniques = +Global Uniques = Speed = Hız Tutorial = Öğretici CityState = ŞehirDevleti diff --git a/android/assets/jsons/translations/Ukrainian.properties b/android/assets/jsons/translations/Ukrainian.properties index 74ef4f049f..1c4d5380d8 100644 --- a/android/assets/jsons/translations/Ukrainian.properties +++ b/android/assets/jsons/translations/Ukrainian.properties @@ -2824,7 +2824,7 @@ Promotion = Підвищення Resource = Ресурс Ruins = Руїни # Requires translation! -GlobalUniques = +Global Uniques = Speed = Швидкість Tutorial = Навчання CityState = Місто-Держава diff --git a/android/assets/jsons/translations/Vietnamese.properties b/android/assets/jsons/translations/Vietnamese.properties index 892f80c39f..99a9adde48 100644 --- a/android/assets/jsons/translations/Vietnamese.properties +++ b/android/assets/jsons/translations/Vietnamese.properties @@ -2812,7 +2812,7 @@ UnitType = chủngloạiđơnvị Promotion = Nâng cấp Resource = Nguồn lực Ruins = Tàn tích -GlobalUniques = đặcsắcthếgiới +Global Uniques = đặcsắcthếgiới Speed = Tốc độ Tutorial = Hướng dẫn CityState = thànhbang diff --git a/android/assets/jsons/translations/Zulu.properties b/android/assets/jsons/translations/Zulu.properties index 1ca1d8fc25..9a5444c8d8 100644 --- a/android/assets/jsons/translations/Zulu.properties +++ b/android/assets/jsons/translations/Zulu.properties @@ -4681,7 +4681,7 @@ Resource = # Requires translation! Ruins = # Requires translation! -GlobalUniques = +Global Uniques = # Requires translation! Speed = # Requires translation! diff --git a/android/assets/jsons/translations/template.properties b/android/assets/jsons/translations/template.properties index cd001a7f97..7c100e9173 100644 --- a/android/assets/jsons/translations/template.properties +++ b/android/assets/jsons/translations/template.properties @@ -1765,6 +1765,7 @@ Search! = Results = Revealed by: = Nothing found! = +Global uniques are ruleset-wide modifiers that apply to all civilizations. = # Policies diff --git a/core/src/com/unciv/models/ruleset/GlobalUniques.kt b/core/src/com/unciv/models/ruleset/GlobalUniques.kt index 0006aa6515..26fd9bad2d 100644 --- a/core/src/com/unciv/models/ruleset/GlobalUniques.kt +++ b/core/src/com/unciv/models/ruleset/GlobalUniques.kt @@ -4,15 +4,43 @@ import com.unciv.models.ruleset.unique.IHasUniques import com.unciv.models.ruleset.unique.Unique import com.unciv.models.ruleset.unique.UniqueTarget import com.unciv.models.ruleset.unique.UniqueType +import com.unciv.ui.screens.civilopediascreen.FormattedLine import yairm210.purity.annotations.Readonly class GlobalUniques: RulesetObject() { - override var name = "GlobalUniques" + override var name = "Global Uniques" + @Readonly override fun makeLink() = "Tutorial/Global Uniques" var unitUniques: ArrayList = ArrayList() - override fun makeLink() = "" // No own category on Civilopedia screen override fun getUniqueTarget() = UniqueTarget.GlobalUniques + /** @return Whether or not there are global uniques that should be displayed to the user. */ + @Readonly fun hasUniques(): Boolean = + uniqueObjects.any { !it.isHiddenToUsers() } || unitUniques.isNotEmpty() + + override fun getCivilopediaTextLines(ruleset: Ruleset): List { + val lines = mutableListOf() + lines.add(FormattedLine("Global uniques are ruleset-wide modifiers that apply to all civilizations.")) + val visibleUniques = uniqueObjects.filter { !it.isHiddenToUsers() } + if (visibleUniques.isNotEmpty()) { + lines.add(FormattedLine("")) + lines.add(FormattedLine("Global Effect", header=4)) + for (unique in visibleUniques) { + lines.add(FormattedLine(unique)) + } + } + + val visibleUnitUniques = unitUniques.map { Unique(it) }.filter { !it.isHiddenToUsers() } + if (visibleUnitUniques.isNotEmpty()) { + lines.add(FormattedLine("")) + lines.add(FormattedLine("Units", header=4)) + for (unique in visibleUnitUniques) { + lines.add(FormattedLine(unique)) + } + } + return lines + } + companion object { @Readonly fun getUniqueSourceDescription(unique: Unique): String { diff --git a/core/src/com/unciv/ui/screens/basescreen/TutorialController.kt b/core/src/com/unciv/ui/screens/basescreen/TutorialController.kt index d2d49d8894..24407879b2 100644 --- a/core/src/com/unciv/ui/screens/basescreen/TutorialController.kt +++ b/core/src/com/unciv/ui/screens/basescreen/TutorialController.kt @@ -86,7 +86,9 @@ class TutorialController(screen: BaseScreen) { // Todo This is essentially an 'un-private' kludge and the accessor // in CivilopediaCategories desperately needs independence from TutorialController: // Move storage to RuleSet someday? - return tutorials.values + return tutorials.values + + // Global Uniques + listOfNotNull(UncivGame.Current.gameInfo?.getGlobalUniques()?.takeIf { it.hasUniques() }) } } diff --git a/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaCategories.kt b/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaCategories.kt index 6bac0e9b09..a76c42889e 100644 --- a/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaCategories.kt +++ b/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaCategories.kt @@ -1,11 +1,13 @@ package com.unciv.ui.screens.civilopediascreen +import com.unciv.UncivGame import com.badlogic.gdx.scenes.scene2d.Actor import com.unciv.models.ruleset.Ruleset import com.unciv.ui.components.input.KeyboardBinding import com.unciv.ui.screens.basescreen.TutorialController import com.unciv.models.ruleset.Belief as BaseBelief import com.unciv.models.ruleset.unit.UnitType as BaseUnitType +import yairm210.purity.annotations.Readonly /** Enum used as keys for Civilopedia "pages" (categories). * @@ -126,7 +128,7 @@ enum class CivilopediaCategories ( ); companion object { - fun fromLink(name: String): CivilopediaCategories? = + @Readonly fun fromLink(name: String): CivilopediaCategories? = values().firstOrNull { it.name == name } ?: values().firstOrNull { it.label == name } }