mirror of
https://github.com/yairm210/Unciv.git
synced 2025-10-03 08:56:17 -04:00
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:
parent
849b150440
commit
47dbd69c96
@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
name:"Città",
|
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",
|
name:"Caselle",
|
||||||
@ -22,11 +22,11 @@
|
|||||||
{
|
{
|
||||||
name:"Produzione",
|
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."
|
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",
|
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."
|
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",
|
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!"
|
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!"
|
||||||
@ -43,4 +43,4 @@
|
|||||||
name:"Conquistare città",
|
name:"Conquistare città",
|
||||||
description: "È possibile conquistare le città riducendo a 1 la loro salute, ed entrandovi con un'unità da mischia.\nVisto che le città guariscono ad ogni turno, conviene attaccare con unità da tiro (ancora meglio se d'assedio) e usare quelle da mischia per difenderle finché la città non viene sconfitta."
|
description: "È possibile conquistare le città riducendo a 1 la loro salute, ed entrandovi con un'unità da mischia.\nVisto che le città guariscono ad ogni turno, conviene attaccare con unità da tiro (ancora meglio se d'assedio) e usare quelle da mischia per difenderle finché la città non viene sconfitta."
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -6258,7 +6258,7 @@
|
|||||||
|
|
||||||
// Social policies
|
// Social policies
|
||||||
"Requires":{
|
"Requires":{
|
||||||
Italian:"Politiche sociali"//is some kind of mistake, seems to translate "social policies"
|
Italian:"Richiede"
|
||||||
Russian:"Требует"
|
Russian:"Требует"
|
||||||
French:"Requiert"
|
French:"Requiert"
|
||||||
Romanian:"necesită"
|
Romanian:"necesită"
|
||||||
@ -6267,6 +6267,7 @@
|
|||||||
Portuguese:"Requer"
|
Portuguese:"Requer"
|
||||||
German:"Benötigt"
|
German:"Benötigt"
|
||||||
}
|
}
|
||||||
|
|
||||||
"Adopt policy":{
|
"Adopt policy":{
|
||||||
Italian:"Adotta politica"
|
Italian:"Adotta politica"
|
||||||
Russian:"Принять общественный институт"
|
Russian:"Принять общественный институт"
|
||||||
@ -7457,6 +7458,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Unit Promotions
|
// Unit Promotions
|
||||||
|
"Pick promotion":{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
" OR ":{ // as in "Requires Accuracy I OR Barrage I
|
||||||
|
}
|
||||||
|
|
||||||
"Accuracy I":{
|
"Accuracy I":{
|
||||||
Italian:"Precisione I"
|
Italian:"Precisione I"
|
||||||
}
|
}
|
||||||
|
@ -221,7 +221,7 @@
|
|||||||
"Hai ottenuto la tua prima risorsa strategica!",
|
"Hai ottenuto la tua prima risorsa strategica!",
|
||||||
"Le risorse strategiche ti permettono di addestrare unità e costruire edifici",
|
"Le risorse strategiche ti permettono di addestrare unità e costruire edifici",
|
||||||
" che richiedono tali risorse specifiche (ad esempio, lo Spadaccino richiede Ferro)."
|
" 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.",
|
" 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."
|
"La barra superiore tiene conto di quante risorse strategiche non usate possiedi."
|
||||||
]
|
]
|
@ -122,8 +122,11 @@ class CityConstructions {
|
|||||||
|
|
||||||
fun constructIfEnough(){
|
fun constructIfEnough(){
|
||||||
val construction = getConstruction(currentConstruction)
|
val construction = getConstruction(currentConstruction)
|
||||||
|
if(construction is SpecialConstruction) return
|
||||||
|
|
||||||
val productionCost = construction.getProductionCost(cityInfo.civInfo.policies.adoptedPolicies)
|
val productionCost = construction.getProductionCost(cityInfo.civInfo.policies.adoptedPolicies)
|
||||||
if (inProgressConstructions[currentConstruction]!! >= productionCost) {
|
if (inProgressConstructions.containsKey(currentConstruction)
|
||||||
|
&& inProgressConstructions[currentConstruction]!! >= productionCost) {
|
||||||
constructionComplete(construction)
|
constructionComplete(construction)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ object GameBasics {
|
|||||||
val TileResources = LinkedHashMap<String, TileResource>()
|
val TileResources = LinkedHashMap<String, TileResource>()
|
||||||
val TileImprovements = LinkedHashMap<String, TileImprovement>()
|
val TileImprovements = LinkedHashMap<String, TileImprovement>()
|
||||||
val Technologies = LinkedHashMap<String, Technology>()
|
val Technologies = LinkedHashMap<String, Technology>()
|
||||||
val Helps = LinkedHashMap<String, BasicHelp>()
|
|
||||||
val Units = LinkedHashMap<String, BaseUnit>()
|
val Units = LinkedHashMap<String, BaseUnit>()
|
||||||
val UnitPromotions = LinkedHashMap<String, Promotion>()
|
val UnitPromotions = LinkedHashMap<String, Promotion>()
|
||||||
val Nations = LinkedHashMap<String, Nation>()
|
val Nations = LinkedHashMap<String, Nation>()
|
||||||
@ -31,7 +30,7 @@ object GameBasics {
|
|||||||
return Json().apply { ignoreUnknownFields=true }.fromJson(tClass, jsonText)
|
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>()
|
val hashMap = LinkedHashMap<String, T>()
|
||||||
for (item in items)
|
for (item in items)
|
||||||
hashMap[item.name] = item
|
hashMap[item.name] = item
|
||||||
@ -43,7 +42,6 @@ object GameBasics {
|
|||||||
Terrains += createHashmap(getFromJson(Array<Terrain>::class.java, "Terrains"))
|
Terrains += createHashmap(getFromJson(Array<Terrain>::class.java, "Terrains"))
|
||||||
TileResources += createHashmap(getFromJson(Array<TileResource>::class.java, "TileResources"))
|
TileResources += createHashmap(getFromJson(Array<TileResource>::class.java, "TileResources"))
|
||||||
TileImprovements += createHashmap(getFromJson(Array<TileImprovement>::class.java, "TileImprovements"))
|
TileImprovements += createHashmap(getFromJson(Array<TileImprovement>::class.java, "TileImprovements"))
|
||||||
Helps += createHashmap(getFromJson(Array<BasicHelp>::class.java, "BasicHelp"))
|
|
||||||
Units += createHashmap(getFromJson(Array<BaseUnit>::class.java, "Units"))
|
Units += createHashmap(getFromJson(Array<BaseUnit>::class.java, "Units"))
|
||||||
UnitPromotions += createHashmap(getFromJson(Array<Promotion>::class.java, "UnitPromotions"))
|
UnitPromotions += createHashmap(getFromJson(Array<Promotion>::class.java, "UnitPromotions"))
|
||||||
PolicyBranches += createHashmap(getFromJson(Array<PolicyBranch>::class.java, "Policies"))
|
PolicyBranches += createHashmap(getFromJson(Array<PolicyBranch>::class.java, "Policies"))
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
package com.unciv.ui
|
package com.unciv.ui
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.*
|
import com.badlogic.gdx.scenes.scene2d.ui.*
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.List
|
import com.badlogic.gdx.scenes.scene2d.ui.List
|
||||||
import com.badlogic.gdx.utils.Array
|
import com.badlogic.gdx.utils.Array
|
||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
|
import com.unciv.models.gamebasics.BasicHelp
|
||||||
import com.unciv.models.gamebasics.GameBasics
|
import com.unciv.models.gamebasics.GameBasics
|
||||||
import com.unciv.models.gamebasics.ICivilopedia
|
import com.unciv.models.gamebasics.ICivilopedia
|
||||||
import com.unciv.ui.utils.CameraStageBaseScreen
|
import com.unciv.ui.utils.CameraStageBaseScreen
|
||||||
@ -36,7 +38,11 @@ class CivilopediaScreen : CameraStageBaseScreen() {
|
|||||||
|
|
||||||
val map = LinkedHashMap<String, Collection<ICivilopedia>>()
|
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["Buildings"] = GameBasics.Buildings.values
|
||||||
map["Resources"] = GameBasics.TileResources.values
|
map["Resources"] = GameBasics.TileResources.values
|
||||||
map["Terrains"] = GameBasics.Terrains.values
|
map["Terrains"] = GameBasics.Terrains.values
|
||||||
|
@ -87,7 +87,7 @@ class PolicyPickerScreen(internal val civInfo: CivilizationInfo) : PickerScreen(
|
|||||||
if(policy.requires!!.isNotEmpty())
|
if(policy.requires!!.isNotEmpty())
|
||||||
policyText += "{Requires} ".tr() + policy.requires!!.joinToString { it.tr() }
|
policyText += "{Requires} ".tr() + policy.requires!!.joinToString { it.tr() }
|
||||||
else
|
else
|
||||||
policyText += "{Unlocked at} ".tr()+(policy.getBranch().era.toString()+" era").tr()
|
policyText += ("{Unlocked at} {"+policy.getBranch().era.toString()+" era}").tr()
|
||||||
}
|
}
|
||||||
descriptionLabel.setText(policyText)
|
descriptionLabel.setText(policyText)
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup
|
|||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
import com.unciv.logic.map.MapUnit
|
import com.unciv.logic.map.MapUnit
|
||||||
import com.unciv.models.gamebasics.GameBasics
|
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.models.gamebasics.unit.Promotion
|
||||||
import com.unciv.ui.utils.*
|
import com.unciv.ui.utils.*
|
||||||
|
|
||||||
@ -16,7 +18,7 @@ class PromotionPickerScreen(mapUnit: MapUnit) : PickerScreen() {
|
|||||||
init {
|
init {
|
||||||
onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() }
|
onBackButtonClicked { UnCivGame.Current.setWorldScreen(); dispose() }
|
||||||
setDefaultCloseAction()
|
setDefaultCloseAction()
|
||||||
rightSideButton.setText("Pick promotion")
|
rightSideButton.setText("Pick promotion".tr())
|
||||||
rightSideButton.onClick("promote") {
|
rightSideButton.onClick("promote") {
|
||||||
mapUnit.promotions.addPromotion(selectedPromotion!!.name)
|
mapUnit.promotions.addPromotion(selectedPromotion!!.name)
|
||||||
if(mapUnit.promotions.canBePromoted()) game.screen = PromotionPickerScreen(mapUnit)
|
if(mapUnit.promotions.canBePromoted()) game.screen = PromotionPickerScreen(mapUnit)
|
||||||
@ -42,13 +44,16 @@ class PromotionPickerScreen(mapUnit: MapUnit) : PickerScreen() {
|
|||||||
|
|
||||||
promotionButton.onClick {
|
promotionButton.onClick {
|
||||||
selectedPromotion = promotion
|
selectedPromotion = promotion
|
||||||
rightSideButton.setText(promotion.name)
|
rightSideButton.setText(promotion.name.tr())
|
||||||
if(isPromotionAvailable && !unitHasPromotion) rightSideButton.enable()
|
if(isPromotionAvailable && !unitHasPromotion) rightSideButton.enable()
|
||||||
else rightSideButton.disable()
|
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 } }
|
promotion.prerequisites.filter { promotionsForUnitType.any { promotion -> promotion.name==it } }
|
||||||
.joinToString(" OR ")
|
.joinToString(" OR ".tr())
|
||||||
descriptionLabel.setText(descriptionText)
|
descriptionLabel.setText(descriptionText)
|
||||||
}
|
}
|
||||||
availablePromotionsGroup.addActor(promotionButton)
|
availablePromotionsGroup.addActor(promotionButton)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user