Civilopedia now displays Basic Help per-language

Fixed problems with Italian translation files
Fixed a couple of errors moving to the next turn with the current construction method
This commit is contained in:
Yair Morgenstern 2019-02-24 10:27:43 +02:00
parent 849b150440
commit 47dbd69c96
8 changed files with 37 additions and 17 deletions

View File

@ -1,7 +1,7 @@
[
{
name:"Città",
description: "Le città sono le basi di un impero. Ogni città possiede un certo numero di abitanti e caselle, e può sfruttare una casella ad ogni abitante.\nLa casella centrale di una città è sempre sfruttata e non richiede abitanti.\È possibile fondare nuove città con i Coloni.\nOgni città nel tuo impero rimuove 3 punti Felicità dall'impero, e ogni abitante un punto felicità, quindi pianifica con cautela!"
description: "Le città sono le basi di un impero. Ogni città possiede un certo numero di abitanti e caselle, e può sfruttare una casella ad ogni abitante.\nLa casella centrale di una città è sempre sfruttata e non richiede abitanti.\nÈ possibile fondare nuove città con i Coloni.\nOgni città nel tuo impero rimuove 3 punti Felicità dall'impero, e ogni abitante un punto felicità, quindi pianifica con cautela!"
},
{
name:"Caselle",
@ -22,11 +22,11 @@
{
name:"Produzione",
description: "Un altra risorsa base, la Produzione si usa per costruire strutture e reclutare unità nella città.\r\nOgni abitante a riposo (cioè che non sta sfruttando una casella) produce un punto Popolazione."
},
},
{
name:"Scienza",
description: "Un'altra risorsa base. Rappresenta l'avanzamento scientifico del tuo impero.\nOgni tecnologia richiede una certa quantità di Scienza, che incrementa col numero di tecnologie scoperte.\nOgni abitante produce 1 punto Scienza."
},
},
{
name:"Gold",
description: "Un'altra risorsa base. Rappresenta la ricchezza dell'imperp.\nLa maggior parte degli edifici hanno costi di mantenimento, che richiedono oro per turno.\nAd ogni turno in cui ti trovi in deficit di Oro, perdi punti Scienza uguali al tuo debito, il che può arrestare del tutto le tue ricerche!\nLe città connesse alla capitale tramite le strade generano oro dalle rotte commerciali, quindi ti conviene collegare grandi città alla capitale!"

View File

@ -6258,7 +6258,7 @@
// Social policies
"Requires":{
Italian:"Politiche sociali"//is some kind of mistake, seems to translate "social policies"
Italian:"Richiede"
Russian:"Требует"
French:"Requiert"
Romanian:"necesită"
@ -6267,6 +6267,7 @@
Portuguese:"Requer"
German:"Benötigt"
}
"Adopt policy":{
Italian:"Adotta politica"
Russian:"Принять общественный институт"
@ -7457,6 +7458,13 @@
}
// Unit Promotions
"Pick promotion":{
}
" OR ":{ // as in "Requires Accuracy I OR Barrage I
}
"Accuracy I":{
Italian:"Precisione I"
}

View File

@ -221,7 +221,7 @@
"Hai ottenuto la tua prima risorsa strategica!",
"Le risorse strategiche ti permettono di addestrare unità e costruire edifici",
" che richiedono tali risorse specifiche (ad esempio, lo Spadaccino richiede Ferro)."
"Ogni unità "consuma" una copia di quella risorsa, ma se quell'unità muore recuperi quella "copia" della risorsa, ",
"Ogni unità 'consuma' una copia di quella risorsa, ma se quell'unità muore recuperi quella 'copia' della risorsa, ",
" e puoi quindi costruire una nuova unità con quella risorsa ora non utilizzata.",
"La barra superiore tiene conto di quante risorse strategiche non usate possiedi."
]

View File

@ -122,8 +122,11 @@ class CityConstructions {
fun constructIfEnough(){
val construction = getConstruction(currentConstruction)
if(construction is SpecialConstruction) return
val productionCost = construction.getProductionCost(cityInfo.civInfo.policies.adoptedPolicies)
if (inProgressConstructions[currentConstruction]!! >= productionCost) {
if (inProgressConstructions.containsKey(currentConstruction)
&& inProgressConstructions[currentConstruction]!! >= productionCost) {
constructionComplete(construction)
}
}

View File

@ -18,7 +18,6 @@ object GameBasics {
val TileResources = LinkedHashMap<String, TileResource>()
val TileImprovements = LinkedHashMap<String, TileImprovement>()
val Technologies = LinkedHashMap<String, Technology>()
val Helps = LinkedHashMap<String, BasicHelp>()
val Units = LinkedHashMap<String, BaseUnit>()
val UnitPromotions = LinkedHashMap<String, Promotion>()
val Nations = LinkedHashMap<String, Nation>()
@ -31,7 +30,7 @@ object GameBasics {
return Json().apply { ignoreUnknownFields=true }.fromJson(tClass, jsonText)
}
private fun <T : INamed> createHashmap(items: Array<T>): LinkedHashMap<String, T> {
fun <T : INamed> createHashmap(items: Array<T>): LinkedHashMap<String, T> {
val hashMap = LinkedHashMap<String, T>()
for (item in items)
hashMap[item.name] = item
@ -43,7 +42,6 @@ object GameBasics {
Terrains += createHashmap(getFromJson(Array<Terrain>::class.java, "Terrains"))
TileResources += createHashmap(getFromJson(Array<TileResource>::class.java, "TileResources"))
TileImprovements += createHashmap(getFromJson(Array<TileImprovement>::class.java, "TileImprovements"))
Helps += createHashmap(getFromJson(Array<BasicHelp>::class.java, "BasicHelp"))
Units += createHashmap(getFromJson(Array<BaseUnit>::class.java, "Units"))
UnitPromotions += createHashmap(getFromJson(Array<Promotion>::class.java, "UnitPromotions"))
PolicyBranches += createHashmap(getFromJson(Array<PolicyBranch>::class.java, "Policies"))

View File

@ -1,10 +1,12 @@
package com.unciv.ui
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.scenes.scene2d.ui.*
import com.badlogic.gdx.scenes.scene2d.ui.List
import com.badlogic.gdx.utils.Array
import com.unciv.UnCivGame
import com.unciv.models.gamebasics.BasicHelp
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.ICivilopedia
import com.unciv.ui.utils.CameraStageBaseScreen
@ -36,7 +38,11 @@ class CivilopediaScreen : CameraStageBaseScreen() {
val map = LinkedHashMap<String, Collection<ICivilopedia>>()
map["Basics"] = GameBasics.Helps.values
val language = UnCivGame.Current.settings.language
val basicHelpFileName = if(Gdx.files.internal("jsons/BasicHelp_$language.json").exists())"BasicHelp_$language"
else "BasicHelp"
map["Basics"] = GameBasics.getFromJson(kotlin.Array<BasicHelp>::class.java, basicHelpFileName).toList()
map["Buildings"] = GameBasics.Buildings.values
map["Resources"] = GameBasics.TileResources.values
map["Terrains"] = GameBasics.Terrains.values

View File

@ -87,7 +87,7 @@ class PolicyPickerScreen(internal val civInfo: CivilizationInfo) : PickerScreen(
if(policy.requires!!.isNotEmpty())
policyText += "{Requires} ".tr() + policy.requires!!.joinToString { it.tr() }
else
policyText += "{Unlocked at} ".tr()+(policy.getBranch().era.toString()+" era").tr()
policyText += ("{Unlocked at} {"+policy.getBranch().era.toString()+" era}").tr()
}
descriptionLabel.setText(policyText)
}

View File

@ -6,6 +6,8 @@ import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup
import com.unciv.UnCivGame
import com.unciv.logic.map.MapUnit
import com.unciv.models.gamebasics.GameBasics
import com.unciv.models.gamebasics.Translations
import com.unciv.models.gamebasics.tr
import com.unciv.models.gamebasics.unit.Promotion
import com.unciv.ui.utils.*
@ -16,7 +18,7 @@ class PromotionPickerScreen(mapUnit: MapUnit) : PickerScreen() {
init {
onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() }
setDefaultCloseAction()
rightSideButton.setText("Pick promotion")
rightSideButton.setText("Pick promotion".tr())
rightSideButton.onClick("promote") {
mapUnit.promotions.addPromotion(selectedPromotion!!.name)
if(mapUnit.promotions.canBePromoted()) game.screen = PromotionPickerScreen(mapUnit)
@ -42,13 +44,16 @@ class PromotionPickerScreen(mapUnit: MapUnit) : PickerScreen() {
promotionButton.onClick {
selectedPromotion = promotion
rightSideButton.setText(promotion.name)
rightSideButton.setText(promotion.name.tr())
if(isPromotionAvailable && !unitHasPromotion) rightSideButton.enable()
else rightSideButton.disable()
var descriptionText = promotion.effect
if(promotion.prerequisites.isNotEmpty()) descriptionText +="\nRequires: "+
// we translate it before it goes in to get uniques like "vs units in rough terrain" and after to get "vs city
var descriptionText = Translations.translateBonusOrPenalty(promotion.effect.tr())
if(promotion.prerequisites.isNotEmpty()) descriptionText +="\n{Requires}: ".tr()+
promotion.prerequisites.filter { promotionsForUnitType.any { promotion -> promotion.name==it } }
.joinToString(" OR ")
.joinToString(" OR ".tr())
descriptionLabel.setText(descriptionText)
}
availablePromotionsGroup.addActor(promotionButton)