mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-29 06:51:30 -04:00
Civilopedia phase7 (#4628)
* Civilopedia phase 7 - Terrain * Civilopedia phase 7 - Terrain - tuning * Civilopedia phase 7 - Terrain - patch1 "for" * Civilopedia phase 7 - Terrain - patch2 for #4641
This commit is contained in:
parent
8c9e7fa7da
commit
34717008b8
@ -96,8 +96,9 @@
|
||||
"unbuildable": true,
|
||||
"defenceBonus": 0.25,
|
||||
"occursOn": ["Tundra","Plains","Grassland","Hill"],
|
||||
"uniques": ["Provides a one-time Production bonus to the closest city when cut down", "Rough terrain",
|
||||
"Blocks line-of-sight from tiles at same elevation", "Resistant to nukes", "Can be destroyed by nukes"]
|
||||
"uniques": ["Rough terrain", "Provides a one-time Production bonus to the closest city when cut down",
|
||||
"Blocks line-of-sight from tiles at same elevation", "Resistant to nukes", "Can be destroyed by nukes"],
|
||||
"civilopediaText": [{"text":"A Camp can be built here without cutting it down", "link":"Improvement/Camp"}]
|
||||
},
|
||||
{
|
||||
"name": "Jungle",
|
||||
@ -118,7 +119,8 @@
|
||||
"unbuildable": true,
|
||||
"defenceBonus": -0.15,
|
||||
"occursOn": ["Grassland"],
|
||||
"uniques": ["Rare feature"]
|
||||
"uniques": ["Rare feature"],
|
||||
"civilopediaText": [{"text":"Only Polders can be built here", "link":"Improvement/Polder"}]
|
||||
},
|
||||
{
|
||||
"name": "Fallout",
|
||||
|
@ -90,7 +90,7 @@
|
||||
"terrainsCanBeBuiltOn": ["Plains","Grassland","Desert","Hill","Tundra","Snow","Forest","Jungle"],
|
||||
"turnsToBuild": 6,
|
||||
"techRequired": "Engineering",
|
||||
"uniques": ["Gives a defensive bonus of [50]%", "Can be built outside your borders"],
|
||||
"uniques": ["Can be built outside your borders", "Gives a defensive bonus of [50]%"],
|
||||
"shortcutKey": "O"
|
||||
},
|
||||
|
||||
@ -102,9 +102,9 @@
|
||||
"uniques": ["Can be built outside your borders", "Costs [1] gold per turn when in your territory"],
|
||||
"shortcutKey": "R",
|
||||
"civilopediaText": [
|
||||
{text:"Reduces movement cost to ½ if the other tile also has a Road or Railroad"},
|
||||
{text:"Reduces movement cost to ⅓ with Machinery",link:"Technology/Machinery"},
|
||||
{text:"Requires Engineering to bridge rivers",link:"Technology/Engineering"}
|
||||
{"text":"Reduces movement cost to ½ if the other tile also has a Road or Railroad"},
|
||||
{"text":"Reduces movement cost to ⅓ with Machinery", "link":"Technology/Machinery"},
|
||||
{"text":"Requires Engineering to bridge rivers", "link":"Technology/Engineering"}
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -113,7 +113,7 @@
|
||||
"techRequired": "Railroads",
|
||||
"uniques": ["Can be built outside your borders", "Costs [2] gold per turn when in your territory"],
|
||||
"shortcutKey": "R",
|
||||
"civilopediaText": [{text:"Reduces movement cost to ⅒ if the other tile also has a Railroad"}]
|
||||
"civilopediaText": [{"text":"Reduces movement cost to ⅒ if the other tile also has a Railroad"}]
|
||||
},
|
||||
|
||||
// Removals
|
||||
@ -124,7 +124,7 @@
|
||||
"techRequired": "Mining",
|
||||
"uniques": ["Can be built outside your borders"],
|
||||
"shortcutKey": "X",
|
||||
"civilopediaText": [{text:"Provides a one-time Production bonus depending on distance to the closest city once finished"}]
|
||||
"civilopediaText": [{"text":"Provides a one-time Production bonus depending on distance to the closest city once finished"}]
|
||||
},
|
||||
{
|
||||
"name": "Remove Jungle",
|
||||
@ -196,8 +196,8 @@
|
||||
},
|
||||
{
|
||||
"name": "Citadel",
|
||||
"uniques": ["Gives a defensive bonus of [100]%", "Deal 30 damage to adjacent enemy units", "Great Improvement", "Can be built just outside your borders"],
|
||||
"civilopediaText": [{text:"Constructing it will take over the tiles around it and assign them to your closest city"}]
|
||||
"uniques": ["Great Improvement", "Gives a defensive bonus of [100]%", "Deal 30 damage to adjacent enemy units", "Can be built just outside your borders"],
|
||||
"civilopediaText": [{"text":"Constructing it will take over the tiles around it and assign them to your closest city"}]
|
||||
},
|
||||
|
||||
//Civilization unique improvements
|
||||
@ -206,7 +206,7 @@
|
||||
"uniqueTo": "Polynesia",
|
||||
"culture": 1,
|
||||
"turnsToBuild": 4,
|
||||
"uniques": ["[+1 Culture] for each adjacent [Moai]", "Can only be built on [Coastal] tiles", "[+1 Gold] once [Flight] is discovered"],
|
||||
"uniques": ["Can only be built on [Coastal] tiles", "[+1 Culture] for each adjacent [Moai]", "[+1 Gold] once [Flight] is discovered"],
|
||||
"techRequired": "Construction",
|
||||
"shortcutKey": "M"
|
||||
},
|
||||
@ -216,7 +216,8 @@
|
||||
"terrainsCanBeBuiltOn": ["Hill"],
|
||||
"food": 1,
|
||||
"turnsToBuild": 7,
|
||||
"uniques": ["[+1 Food] for each adjacent [Mountain]", "Cannot be built on [Bonus resource] tiles",
|
||||
"uniques": ["Cannot be built on [Bonus resource] tiles",
|
||||
"[+1 Food] for each adjacent [Mountain]",
|
||||
"[+1 Food] on [Fresh water] tiles once [Civil Service] is discovered",
|
||||
"[+1 Food] on [non-fresh water] tiles once [Fertilizer] is discovered"],
|
||||
"techRequired": "Construction",
|
||||
@ -232,13 +233,29 @@
|
||||
"techRequired": "Guilds",
|
||||
"shortcutKey": "F"
|
||||
},
|
||||
|
||||
|
||||
{ "name": "Ancient ruins", "uniques": ["Unpillagable"],
|
||||
"civilopediaText": [{text:"Ancient ruins provide a one-time random bonus when explored"}] },
|
||||
"civilopediaText": [
|
||||
{"text":"Ancient ruins provide a one-time random bonus when explored"},
|
||||
{},
|
||||
{"text":"The possible rewards are:"},
|
||||
{"text":"a stash of gold", "indent":1, "starred":true, "color":"#ffeb7f"},
|
||||
{"text":"survivors (adds population to a city)", "indent":1, "starred":true, "color":"#81c784"},
|
||||
{"text":"discover a lost technology", "indent":1, "starred":true, "color":"#7f7fff"},
|
||||
{"text":"a unit joins you", "indent":1, "starred":true},
|
||||
{"text":"your exploring unit receives training", "indent":1, "starred":true}, // "link":"Tutorial/Experience"
|
||||
{"text":"discover cultural artifacts", "indent":1, "starred":true, "color":"#cf8ff7"},
|
||||
{"text":"find a crudely-drawn map", "indent":1, "starred":true}
|
||||
]
|
||||
},
|
||||
{ "name": "City ruins", "uniques": ["Unpillagable"],
|
||||
"civilopediaText": [{text:"A bleak reminder of the destruction wreaked by War"}] },
|
||||
"civilopediaText": [{"text":"A bleak reminder of the destruction wreaked by War"}] },
|
||||
{ "name": "City center", "uniques": ["Unpillagable", "Indestructible"],
|
||||
"civilopediaText": [{text:"Marks the center of a city"},{text:"Appearance changes with the technological era of the owning civilization"}] },
|
||||
"civilopediaText": [
|
||||
{"text":"Marks the center of a city"},
|
||||
{"text":"Appearance changes with the technological era of the owning civilization"}
|
||||
]
|
||||
},
|
||||
{ "name": "Barbarian encampment", "uniques": ["Unpillagable"],
|
||||
"civilopediaText": [{text:"Home to uncivilized barbarians, will spawn a hostile unit from time to time"}] }
|
||||
"civilopediaText": [{"text":"Home to uncivilized barbarians, will spawn a hostile unit from time to time"}] }
|
||||
]
|
||||
|
@ -951,16 +951,16 @@ Upgrades to [upgradedUnit] = Melhorar para [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Obsoleto com [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Ocorre em [listOfTerrains]
|
||||
Placed on [terrainType] = Colocado em [terrainType]
|
||||
Can be found on = Pode ser encontrado em
|
||||
Can be found on = Pode ser encontrado em
|
||||
Improved by [improvement] = Melhorado por [improvement]
|
||||
Bonus stats for improvement = Bônus de estatísticas por melhoria
|
||||
Buildings that consume this resource = Construções que consomem esse recurso
|
||||
Units that consume this resource = Unidades que consomem esse recurso
|
||||
Can be built on = Pode ser construído em
|
||||
Can be built on = Pode ser construído em
|
||||
Defence bonus = Bônus de defesa
|
||||
Movement cost = Custo de movimento
|
||||
Rough Terrain = Terreno Bruto
|
||||
for = Por
|
||||
for = Por
|
||||
Missing translations: = Traduções faltando:
|
||||
Version = Versão
|
||||
Resolution = Resolução
|
||||
|
@ -941,16 +941,16 @@ Upgrades to [upgradedUnit] = Подобрява се до [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Остарял/а/о от [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Появява се на [listOfTerrains]
|
||||
Placed on [terrainType] = Поставен на [terrainType]
|
||||
Can be found on = Може да се открие на
|
||||
Can be found on = Може да се открие на
|
||||
Improved by [improvement] = Подобрено от [improvement]
|
||||
Bonus stats for improvement = Бонус за подобрение
|
||||
Buildings that consume this resource = Сгради, изискващи този ресурс
|
||||
Units that consume this resource = Единици, изискващи този ресурс
|
||||
Can be built on = Може да се построи на
|
||||
Can be built on = Може да се построи на
|
||||
Defence bonus = Защитен бонус
|
||||
Movement cost = Струва (движение)
|
||||
Rough Terrain = Пресечен терен
|
||||
for = за
|
||||
for = за
|
||||
Missing translations: = Липса на превод:
|
||||
Version = Версия
|
||||
Resolution = Резолюция
|
||||
|
@ -861,16 +861,16 @@ Upgrades to [upgradedUnit] = Vylepšení na [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Zastará s technologií [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Nalézá se na [listOfTerrains]
|
||||
Placed on [terrainType] = Umístěn na [terrainType]
|
||||
Can be found on = Může se objevit na
|
||||
Can be found on = Může se objevit na
|
||||
Improved by [improvement] = Vylepšeno díky [improvement]
|
||||
Bonus stats for improvement = Bonusové statistiky pro vylepšení
|
||||
Buildings that consume this resource = Budovy spotřebovávající tuto surovinu
|
||||
Units that consume this resource = Jednotky spotřebovávající tuto surovinu
|
||||
Can be built on = Může být vybudováno na
|
||||
Can be built on = Může být vybudováno na
|
||||
Defence bonus = Obranný bonus
|
||||
Movement cost = Náročnost pohybu
|
||||
Rough Terrain = Obtížný terén
|
||||
for = za
|
||||
for = za
|
||||
Missing translations: = Chybějící překlady:
|
||||
Version = Verze
|
||||
Resolution = Rozlišení
|
||||
|
@ -927,16 +927,16 @@ Upgrades to [upgradedUnit] = Wordt opgewaardeerd tot [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Overbodig met [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Doet zich voor op [listOfTerrains]
|
||||
Placed on [terrainType] = Geplaatst op [terrainType]
|
||||
Can be found on = Kan gevonden worden op
|
||||
Can be found on = Kan gevonden worden op
|
||||
Improved by [improvement] = Verbeterd door [improvement]
|
||||
Bonus stats for improvement = Bonus statistieken door verbetering
|
||||
Buildings that consume this resource = Gebouwen die deze grondstof gebruiken
|
||||
Units that consume this resource = Eenheden die deze grondstof gebruiken
|
||||
Can be built on = Kan gebouwd worden op
|
||||
Can be built on = Kan gebouwd worden op
|
||||
Defence bonus = Verdedigingsbonus
|
||||
Movement cost = Bewegingskost
|
||||
Rough Terrain = Ruw terrein
|
||||
for = voor
|
||||
for = voor
|
||||
Missing translations: = Ontbrekende vertalingen:
|
||||
Version = Versie
|
||||
Resolution = Resolutie
|
||||
|
@ -1596,8 +1596,6 @@ Occurs on [listOfTerrains] =
|
||||
# Requires translation!
|
||||
Placed on [terrainType] =
|
||||
# Requires translation!
|
||||
Can be found on =
|
||||
# Requires translation!
|
||||
Improved by [improvement] =
|
||||
# Requires translation!
|
||||
Bonus stats for improvement =
|
||||
@ -1606,16 +1604,12 @@ Buildings that consume this resource =
|
||||
# Requires translation!
|
||||
Units that consume this resource =
|
||||
# Requires translation!
|
||||
Can be built on =
|
||||
# Requires translation!
|
||||
Defence bonus =
|
||||
# Requires translation!
|
||||
Movement cost =
|
||||
# Requires translation!
|
||||
Rough Terrain =
|
||||
# Requires translation!
|
||||
for =
|
||||
# Requires translation!
|
||||
Missing translations: =
|
||||
# Requires translation!
|
||||
Version =
|
||||
|
@ -875,17 +875,17 @@ Upgrades to [upgradedUnit] = Päivittyy yksiköksi [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Vanhentuu tutkittaessa teknologian [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Esiintyy: [listOfTerrains]
|
||||
Placed on [terrainType] = Sijoitettu maastoon [terrainType]
|
||||
Can be found on = Voidaan löytää:
|
||||
Can be found on = Voidaan löytää
|
||||
Improved by [improvement] = Parannettu parannuksella [improvement]
|
||||
Bonus stats for improvement = Bonukset parannukselle
|
||||
Buildings that consume this resource = Rakennukset jotka kuluttavat tätä resurssia
|
||||
Units that consume this resource = Yksiköt jotka kuluttavat tätä resurssia
|
||||
Can be built on = Voidaan rakentaa:
|
||||
Can be built on = Voidaan rakentaa
|
||||
Defence bonus = Puolustusbonus
|
||||
Movement cost = Liikkumisen hinta
|
||||
Rough Terrain = Vaikea Maasto
|
||||
# Requires translation!
|
||||
for =
|
||||
for =
|
||||
Missing translations: = Puuttuvat käännökset
|
||||
Version = Versio
|
||||
Resolution = Resoluutio
|
||||
|
@ -910,16 +910,16 @@ Upgrades to [upgradedUnit] = Améliorer en [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Obsolète avec [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Possible sur [listOfTerrains]
|
||||
Placed on [terrainType] = Placé en [terrainType]
|
||||
Can be found on = Peut être trouvé sur
|
||||
Can be found on = Peut être trouvé sur
|
||||
Improved by [improvement] = Amélioré par [improvement]
|
||||
Bonus stats for improvement = Bonus de case aménagée
|
||||
Buildings that consume this resource = Bâtiments consommant cette ressource
|
||||
Units that consume this resource = Unités consommant cette ressource
|
||||
Can be built on = Peut être construit sur
|
||||
Can be built on = Peut être construit sur
|
||||
Defence bonus = Bonus de défense
|
||||
Movement cost = Coût de mouvement
|
||||
Rough Terrain = Terrain accidenté
|
||||
for = pour
|
||||
for = pour
|
||||
Missing translations: = Traductions manquantes:
|
||||
Version = Version
|
||||
Resolution = Résolution
|
||||
|
@ -229,7 +229,7 @@ Number of City-States = Anzahl Stadtstaaten
|
||||
One City Challenge = Herausforderung nur eine Stadt
|
||||
No Barbarians = Keine Barbaren
|
||||
No Ancient Ruins = Keine altertümlichen Ruinen
|
||||
No Natural Wonders = Keine Natürlichen Wunder
|
||||
No Natural Wonders = Keine Naturwunder
|
||||
Victory Conditions = Siegbedingungen
|
||||
Scientific = Wissenschaftlich
|
||||
Domination = Vorherrschaft
|
||||
@ -772,7 +772,7 @@ Our Civilization: = Unsere Zivilisation:
|
||||
Known and alive ([numberOfCivs]) = Bekannt und am Leben ([numberOfCivs])
|
||||
Known and defeated ([numberOfCivs]) = Bekannt und besiegt ([numberOfCivs])
|
||||
Tiles = Felder
|
||||
Natural Wonders = Natürliche Wunder
|
||||
Natural Wonders = Naturwunder
|
||||
Treasury deficit = Schatzkammerdefizit
|
||||
|
||||
# Victory
|
||||
@ -839,21 +839,25 @@ Unique to [civName], replaces [unitName] = Einzigartig für Zivilisation [civNam
|
||||
Unique to [civName] = Einzigartig für Zivilisation [civName]
|
||||
Tutorials = Tutorials
|
||||
Cost = Kosten
|
||||
May contain [listOfResources] = kann [listOfResources] enthalten
|
||||
May contain [listOfResources] = Kann [listOfResources] enthalten
|
||||
May contain: = Kann folgende Ressourcen enthalten:
|
||||
Upgrades to [upgradedUnit] = Kann zu [upgradedUnit] aufrüsten
|
||||
Obsolete with [obsoleteTech] = Überflüssig mit [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Kommt vor in [listOfTerrains]
|
||||
Occurs on: = Kommt vor in:
|
||||
Placed on [terrainType] = Platziert auf [terrainType]
|
||||
Can be found on = Kann gefunden werden in
|
||||
Can be found on = Kann gefunden werden in
|
||||
Improved by [improvement] = Wird verbessert durch [improvement]
|
||||
Bonus stats for improvement = Boni für Verbesserung
|
||||
Buildings that consume this resource = Gebäude welche diese Ressource brauchen
|
||||
Units that consume this resource = Einheiten welche diese Ressource brauchen
|
||||
Can be built on = Kann gebaut werden auf
|
||||
Buildings that consume this resource = Gebäude welche diese Ressource verbrauchen
|
||||
Buildings that require this resource worked near the city = Gebäude welche diese Ressource bewirtschaftet in der Nähe der Stadt benötigen
|
||||
Units that consume this resource = Einheiten welche diese Ressource verbrauchen
|
||||
Can be built on = Kann gebaut werden auf
|
||||
Can be constructed by = Kann erbaut werden von
|
||||
Defence bonus = Verteidigungsbonus
|
||||
Movement cost = Bewegungskosten
|
||||
Rough Terrain = Unwegsames Gelände
|
||||
for = für
|
||||
for = für
|
||||
Missing translations: = Fehlende Übersetzungen:
|
||||
Version = Version
|
||||
Resolution = Auflösung
|
||||
@ -938,21 +942,16 @@ All policies adopted = Alle Politiken sind bereits verabschiedet
|
||||
Choose an Icon and name for your Religion = Wähle ein Symbol und einen Namen für deine Religion
|
||||
Choose a [$beliefType] belief! = Wähle einen [$beliefType] Glauben!
|
||||
Found [religionName] = [religionName] gründen
|
||||
# Requires translation!
|
||||
Choose a pantheon =
|
||||
# Requires translation!
|
||||
Found Religion =
|
||||
# Requires translation!
|
||||
Found Pantheon =
|
||||
# Requires translation!
|
||||
Follow [belief] =
|
||||
# Requires translation!
|
||||
Religions and Beliefs =
|
||||
Choose a pantheon = Wähle einen Pantheon
|
||||
Found Religion = Religion gründen
|
||||
Found Pantheon = Pantheon gründen
|
||||
Follow [belief] = An [belief] glauben
|
||||
Religions and Beliefs = Religionen und Glaube
|
||||
|
||||
# Terrains
|
||||
|
||||
Impassable = Unpassierbar
|
||||
Rare feature = Seltene Eigenschaft
|
||||
Rare feature = Seltene Geländeform
|
||||
|
||||
# Resources
|
||||
|
||||
@ -1100,6 +1099,8 @@ in all cities with a garrison = in allen Städten mit einer Garnison
|
||||
|
||||
# Requires translation!
|
||||
Ancestor Worship =
|
||||
# Requires translation!
|
||||
Pantheon = Pantheon
|
||||
|
||||
# Requires translation!
|
||||
Dance of the Aurora =
|
||||
@ -1183,6 +1184,8 @@ Stone Circles =
|
||||
|
||||
# Requires translation!
|
||||
Divine inspiration =
|
||||
# Requires translation!
|
||||
Follower = Anhänger
|
||||
[stats] from every Wonder = [stats] von jedem Wunder
|
||||
|
||||
# Requires translation!
|
||||
@ -2603,9 +2606,9 @@ If my defeat is, without any doubt, the will of God, then I will accept it. = We
|
||||
God blesses those who deserve it. I am Isabel of Spain. = Gott segnet diejenigen, die dessen würdig sind. Ich bin Isabella von Spanien.
|
||||
I hope this deal will receive your blessing. = Ich hoffe dieser Handel wird Euren Segen erhalten.
|
||||
Seven Cities of Gold = Die Sieben Goldenen Städte
|
||||
Double Happiness from Natural Wonders = Verdoppelt Zufriedenheit von Natürlichen Wundern
|
||||
Tile yields from Natural Wonders doubled = Verdoppelt Felderträge von Natürlichen Wundern
|
||||
100 Gold for discovering a Natural Wonder (bonus enhanced to 500 Gold if first to discover it) = 100 Gold beim Entdecken eines Natürlichen Wunders (Bonus erhöht sich auf 500 Gold, wenn zuerst entdeckt)
|
||||
Double Happiness from Natural Wonders = Verdoppelt Zufriedenheit von Naturwundern
|
||||
Tile yields from Natural Wonders doubled = Verdoppelt Felderträge von Naturwundern
|
||||
100 Gold for discovering a Natural Wonder (bonus enhanced to 500 Gold if first to discover it) = 100 Gold beim Entdecken eines Naturwunders (Bonus erhöht sich auf 500 Gold, wenn zuerst entdeckt)
|
||||
Blessed Isabella, servant of God, holy queen of Castille and León! Your people greet and welcome you. You are the ruler of Spain, a beautiful and ancient country at the crossroads of the world between Europe and Africa, one shore on the Mediterranean and the other on the mighty Atlantic Ocean. The Spanish are a multicultural people with roots in the Muslim and Christian worlds. A seafaring race, Spanish explorers found and conquered much of the New World, and, for many centuries, its gold and silver brought Spain unrivalled wealth and power, making the Spanish court the envy of the world. = Gesegnete Isabella, Dienerin Gottes, heilige Königin von Kastilien und León! Euer Volk grüßt und heißt euch willkommen. Ihr seid die Herrscherin Spaniens, eines schönen und alten Landes an der Kreuzung der Welt zwischen Europa und Afrika, das eine Ufer am Mittelmeer, das andere am mächtigen Atlantik. Die Spanier sind ein multikulturelles Volk mit Wurzeln in der muslimischen und christlichen Welt. Als Seefahrervolk entdeckten und eroberten spanische Entdecker einen Großteil der Neuen Welt, und über viele Jahrhunderte hinweg bescherten sie Spanien mit ihrem Gold und Silber unvergleichlichen Reichtum und Macht, so dass der spanische Hof von der ganzen Welt beneidet wurde.
|
||||
O fair and virtuous Isabella! Will you rebuild the Spanish empire and show the world again the greatness of your people? Will you take up the mantle of the holy monarchy, and vanquish your foes under heaven's watchful eyes? Your adoring subjects await your command! Will you build a civilization that stands the test of time? = O schöne und tugendhafte Isabella! Werdet Ihr das spanische Reich wieder aufbauen und der Welt erneut die Größe eures Volkes zeigen? Werdet Ihr den Mantel der heiligen Monarchie übernehmen und eure Feinde unter den wachsamen Augen des Himmels bezwingen? Eure anbetenden Untertanen erwarten Euer Kommando! Könnt Ihr eine Zivilisation aufbauen, die dem Test der Zeit standhält?
|
||||
Madrid = Madrid
|
||||
@ -3329,8 +3332,8 @@ Great People can change the course of a Civilization! You will be rewarded for a
|
||||
Find Player = Findet Spieler
|
||||
You have yet to discover where [param] set up their cities. You will be rewarded for finding their territories. = Sie müssen noch herausfinden, wo [param] die Städte eingerichtet hat. Ihr werdet belohnt, wenn Ihr sie findet.
|
||||
|
||||
Find Natural Wonder = Findet Natürliche Wunder
|
||||
Send your best explorers on a quest to discover Natural Wonders. Nobody knows the location of [param] yet. = Sendet Eure besten Entdecker auf die Suche nach Natürlichen Wundern. Noch kennt niemand den Standort von [param].
|
||||
Find Natural Wonder = Findet Naturwunder
|
||||
Send your best explorers on a quest to discover Natural Wonders. Nobody knows the location of [param] yet. = Sendet Eure besten Entdecker auf die Suche nach Naturwundern. Noch kennt niemand den Standort von [param].
|
||||
|
||||
|
||||
#################### Lines from Religions from Civ V - Vanilla ####################
|
||||
@ -3555,7 +3558,7 @@ Ocean = Ozean
|
||||
|
||||
Coast = Küste
|
||||
|
||||
Occurs at temperature between [param] and [param2] and humidity between [param3] and [amount] = Tritt auf bei temperaturen zwischen [param] und [param2] und einer Feuchtigkeit zwischen [param3] und [amount]
|
||||
Occurs at temperature between [param] and [param2] and humidity between [param3] and [amount] = Tritt auf bei Temperaturen zwischen [param] und [param2] und einer Feuchtigkeit zwischen [param3] und [amount]
|
||||
Grassland = Wiese
|
||||
|
||||
Plains = Ebene
|
||||
@ -3567,16 +3570,14 @@ Desert = Wüste
|
||||
Lakes = Seen
|
||||
|
||||
Has an elevation of [amount] for visibility calculations = Hat eine Erhebung von [amount] für die Berechnung der Sichtweite
|
||||
# Requires translation!
|
||||
Occurs in chains at high elevations =
|
||||
Occurs in chains at high elevations = Bildet Ketten bei größeren Erhebungen
|
||||
Mountain = Berge
|
||||
|
||||
Snow = Schnee
|
||||
|
||||
[amount] Strength for cities built on this terrain = [amount] Stärke für Städte, die auf diesem Terrain gebaut werden
|
||||
[amount] Sight for [param] units = [amount] Sichtweite für [param] Einheit
|
||||
# Requires translation!
|
||||
Occurs in groups around high elevations =
|
||||
Occurs in groups around high elevations = Tritt gruppiert auf rund um größere Erhebungen
|
||||
Hill = Hügel
|
||||
|
||||
Provides a one-time Production bonus to the closest city when cut down = Bietet der nächstgelegenen Stadt einen einmaligen Produktionsbonus, wenn niedergeschnitten
|
||||
@ -3679,7 +3680,7 @@ Customs house = Zollamt
|
||||
|
||||
Holy site = Heilige Stätte
|
||||
|
||||
Deal 30 damage to adjacent enemy units = Fügt angrgenzenden gegnerischen Einheiten 30 Schadenspunkte pro Runde zu
|
||||
Deal 30 damage to adjacent enemy units = Fügt angrenzenden gegnerischen Einheiten 30 Schadenspunkte pro Runde zu
|
||||
Can be built just outside your borders = Kann, auch ein Feld weit, außerhalb Deiner eigenen Grenzen gebaut werden
|
||||
Citadel = Zitadelle
|
||||
|
||||
@ -4337,7 +4338,7 @@ Great Improvements also provide any strategic resources that are under them, so
|
||||
Removing Terrain Features = Geländemerkmale entfernen
|
||||
Certain tiles have terrain features - like Flood plains or Forests - on top of them. Some of these layers, like Jungle, Marsh and Forest, can be removed by workers.\nRemoving the terrain feature does not remove any resources in the tile, and is usually required in order to work those resources. = Bestimmte Felder haben zusätzliche Geländemerkmale, sozusagen auf ihnen drauf. - überflutete Ebenen oder Wälder -\nDie Geländemerkmale Dschungel, Sumpf und Wald können von Arbeitern entfernt werden.\nDas Entfernen von Geländemerkmalen entfernt nicht die eventuell vorhandene Ressource des Feldes und ist in der Regel nötig, um die Ressource zu bewirtschaften.
|
||||
|
||||
Natural Wonders, such as the Mt. Fuji, the Rock of Gibraltar and the Great Barrier Reef, are unique, impassable terrain features, masterpieces of mother Nature, which possess exceptional qualities that make them very different from the average terrain.\nThey benefit by giving you large sums of Culture, Science, Gold or Production if worked by your Cities, which is why you might need to bring them under your empire as soon as possible. = Natürliche Wunder wie der Mount Fuji, der Felsen von Gibraltar oder das Great Barrier Reef sind einzigartige Geländeformen, Meisterwerke der Mutter Natur, die außergewöhnliche Qualitäten besitzen, die sich komplett von gewöhnlichem Gelände unterscheiden.\n\nEinheiten können sie nicht betreten, aber Städte können sie bewirtschaften und besondere Erträge erlangen - was vielleicht Grund genug ist, sie bald unter Kontrolle Deines Reichs zu bringen.\n\nAllein ihre Entdeckung erhöht bereits die Zufriedenheit der Bevölkerung.
|
||||
Natural Wonders, such as the Mt. Fuji, the Rock of Gibraltar and the Great Barrier Reef, are unique, impassable terrain features, masterpieces of mother Nature, which possess exceptional qualities that make them very different from the average terrain.\nThey benefit by giving you large sums of Culture, Science, Gold or Production if worked by your Cities, which is why you might need to bring them under your empire as soon as possible. = Naturwunder wie der Mount Fuji, der Felsen von Gibraltar oder das Great Barrier Reef sind einzigartige Geländeformen, Meisterwerke der Mutter Natur, die außergewöhnliche Qualitäten besitzen, die sich komplett von gewöhnlichem Gelände unterscheiden.\n\nEinheiten können sie nicht betreten, aber Städte können sie bewirtschaften und besondere Erträge erlangen - was vielleicht Grund genug ist, sie bald unter Kontrolle Deines Reichs zu bringen.\n\nAllein ihre Entdeckung erhöht bereits die Zufriedenheit der Bevölkerung.
|
||||
|
||||
Keyboard = Tastatur
|
||||
If you have a keyboard, some shortcut keys become available. Unit command or improvement picker keys, for example, are shown directly in their corresponding buttons. = Wenn du eine Tastatur verwendest, werden einige Tastenkombinationen verfügbar. Die Tasten, z.B. für den Einheitenbefehl oder zur Auswahl einer Verbesserung, werden direkt in den entsprechenden Schaltflächen angezeigt.
|
||||
|
@ -934,16 +934,16 @@ Upgrades to [upgradedUnit] = [upgradedUnit] egységgé fejlődik
|
||||
Obsolete with [obsoleteTech] = [obsoleteTech] elavulttá teszi
|
||||
Occurs on [listOfTerrains] = [listOfTerrains] terepeken fordulhat elő
|
||||
Placed on [terrainType] = [terrainType] terepen helyezkedik el
|
||||
Can be found on = Megtalálható
|
||||
Can be found on = Megtalálható
|
||||
Improved by [improvement] = [improvement] által fejlesztve
|
||||
Bonus stats for improvement = Bónusz fejlesztésre
|
||||
Buildings that consume this resource = Épületek amit ezt az alapanyagot használják
|
||||
Units that consume this resource = Egységek amik ezt az alapanyagot használják
|
||||
Can be built on = Építhető
|
||||
Can be built on = Építhető
|
||||
Defence bonus = Védelmi bónusz
|
||||
Movement cost = Mozgási költség
|
||||
Rough Terrain = Nehéz terep
|
||||
for = számára
|
||||
for = számára
|
||||
Missing translations: = Hiányzó fordítások:
|
||||
Version = Verzió
|
||||
Resolution = Felbontás
|
||||
|
@ -845,16 +845,16 @@ Upgrades to [upgradedUnit] = Tingkatkan menjadi [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Ketinggalan zaman dengan [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Terjadi pada [listOfTerrains]
|
||||
Placed on [terrainType] = Ditempatkan pada [terrainType]
|
||||
Can be found on = Dapat ditemukan di
|
||||
Can be found on = Dapat ditemukan di
|
||||
Improved by [improvement] = Ditingkatkan dengan [improvement]
|
||||
Bonus stats for improvement = Bonus stats untuk peningkatan
|
||||
Buildings that consume this resource = Bangunan yang menggunakan sumber daya ini
|
||||
Units that consume this resource = Unit yang menggunakan sumber daya ini
|
||||
Can be built on = Dapat dibangun di
|
||||
Can be built on = Dapat dibangun di
|
||||
Defence bonus = Bonus pertahanan
|
||||
Movement cost = Biaya pergerakan
|
||||
Rough Terrain = Medan Kasar
|
||||
for = untuk
|
||||
for = untuk
|
||||
Missing translations: = Terjemahan belum ada:
|
||||
Version = Versi
|
||||
Resolution = Resolusi
|
||||
|
@ -845,16 +845,16 @@ Upgrades to [upgradedUnit] = Aggiorna a [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Diventa obsoleta con [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Si può trovare su [listOfTerrains]
|
||||
Placed on [terrainType] = Si trova su [terrainType]
|
||||
Can be found on = Può trovarsi su
|
||||
Can be found on = Può trovarsi su
|
||||
Improved by [improvement] = Può essere migliorato/a da [improvement]
|
||||
Bonus stats for improvement = Bonus per miglioramento
|
||||
Buildings that consume this resource = Edifici che consumano questa risorsa
|
||||
Units that consume this resource = Unità che consumano questa risorsa
|
||||
Can be built on = Può essere costruito/a su:
|
||||
Can be built on = Può essere costruito/a su
|
||||
Defence bonus = Bonus di Difesa
|
||||
Movement cost = Costi di movimento
|
||||
Rough Terrain = Terreno accidentato
|
||||
for = per
|
||||
for = per
|
||||
Missing translations: = Traduzioni mancanti:
|
||||
Version = Versione
|
||||
Resolution = Risoluzione
|
||||
|
@ -933,17 +933,17 @@ Upgrades to [upgradedUnit] = [upgradedUnit]へアップグレード
|
||||
Obsolete with [obsoleteTech] = [obsoleteTech]で廃止
|
||||
Occurs on [listOfTerrains] = [listOfTerrains]で発生
|
||||
Placed on [terrainType] = [terrainType]に配置
|
||||
Can be found on = 入手可能条件:
|
||||
Can be found on = 入手可能条件:
|
||||
Improved by [improvement] = [improvement]で改善
|
||||
Bonus stats for improvement = タイル施設によるボーナス統計:
|
||||
Buildings that consume this resource = この資源を消費する建物:
|
||||
Units that consume this resource = この資源を消費するユニット:
|
||||
Can be built on = 建設可能タイル:
|
||||
Can be built on = 建設可能タイル
|
||||
Defence bonus = 防衛ボーナス
|
||||
Movement cost = 移動コスト
|
||||
Rough Terrain = 起伏の多い地形
|
||||
for = が以下のものがある場合に付与:
|
||||
Missing translations: = 欠落している翻訳:
|
||||
for = が以下のものがある場合に付与:
|
||||
Missing translations: = 欠落している翻訳:
|
||||
Version = バージョン
|
||||
Resolution = 解像度
|
||||
Tileset = タイルセット
|
||||
|
@ -845,16 +845,16 @@ Upgrades to [upgradedUnit] = [upgradedUnit](으)로 업그레이드 가능
|
||||
Obsolete with [obsoleteTech] = [obsoleteTech] 연구 후 생산 불가
|
||||
Occurs on [listOfTerrains] = 발생하는 지형: [listOfTerrains]
|
||||
Placed on [terrainType] = [terrainType]으로 간주됨
|
||||
Can be found on = 발견되는 지형:
|
||||
Can be found on = 발견되는 지형:
|
||||
Improved by [improvement] = 개발하는 시설: [improvement]
|
||||
Bonus stats for improvement = 개발시 보너스
|
||||
Buildings that consume this resource = 소모하는 건물
|
||||
Units that consume this resource = 소모하는 유닛
|
||||
Can be built on = 건설가능 지형:
|
||||
Can be built on = 건설가능 지형
|
||||
Defence bonus = 방어 보너스
|
||||
Movement cost = 소모 행동력
|
||||
Rough Terrain = 험지
|
||||
for = 이(가) 다음 자원에 추가됨:
|
||||
for = 이(가) 다음 자원에 추가됨:
|
||||
Missing translations: = 미완성 번역 목록:
|
||||
Version = 버전
|
||||
Resolution = 해상도
|
||||
|
@ -1009,16 +1009,16 @@ Upgrades to [upgradedUnit] = Naujovinimas į [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Pasenęs naudojant [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Įvyksta [listOfTerrains]
|
||||
Placed on [terrainType] = Padėta ant [terrainType]
|
||||
Can be found on = Galima rasti
|
||||
Can be found on = Galima rasti
|
||||
Improved by [improvement] = Patobulinta [improvement]
|
||||
Bonus stats for improvement = Premijų statistika už tobulinimą
|
||||
Buildings that consume this resource = Pastatai, kurie naudoja šį išteklius
|
||||
Units that consume this resource = Vienetai, kurie naudoja šį išteklius
|
||||
Can be built on = Galima pastatyti
|
||||
Can be built on = Galima pastatyti
|
||||
Defence bonus = Gynybos premija
|
||||
Movement cost = Judėjimo kaina
|
||||
Rough Terrain = Grubus reljefas
|
||||
for = dėl
|
||||
for = dėl
|
||||
Missing translations: = Trūksta vertimų:
|
||||
Version = Versija
|
||||
Resolution = Rezoliucija
|
||||
|
@ -1225,19 +1225,17 @@ Occurs on [listOfTerrains] =
|
||||
# Requires translation!
|
||||
Placed on [terrainType] =
|
||||
# Requires translation!
|
||||
Can be found on =
|
||||
# Requires translation!
|
||||
Improved by [improvement] =
|
||||
# Requires translation!
|
||||
Bonus stats for improvement =
|
||||
Buildings that consume this resource = binaan yang makan ini bahan
|
||||
Units that consume this resource = orang yang makan ini bahan
|
||||
Can be built on = bole dibina di
|
||||
Can be built on = bole dibina di
|
||||
Defence bonus = bonus pertahanan
|
||||
Movement cost = kos pergerakan
|
||||
# Requires translation!
|
||||
Rough Terrain =
|
||||
for = untuk
|
||||
for = untuk
|
||||
# Requires translation!
|
||||
Missing translations: =
|
||||
Version = versi
|
||||
|
@ -993,16 +993,16 @@ Upgrades to [upgradedUnit] = Be [upgradedUnit] behine mišavad
|
||||
Obsolete with [obsoleteTech] = Bā [obsoleteTech] mansooḵ mišavad
|
||||
Occurs on [listOfTerrains] = Rooye [listOfTerrains] etefāğ mioftad
|
||||
Placed on [terrainType] = Ğarār gerefte rooye [terrainType]
|
||||
Can be found on = Peydā mišavad rooye
|
||||
Can be found on = Peydā mišavad rooye
|
||||
Improved by [improvement] = Behbood-sāḵte šode bā [improvement]
|
||||
Bonus stats for improvement = Ḵavās ezāfe šode beḵāter e behbood-sāzi
|
||||
Buildings that consume this resource = Sāḵtemān hāyi ke in manba rā masraf mikonand
|
||||
Units that consume this resource = Niroo hāyi ke in manba rā masraf mikonand
|
||||
Can be built on = Mitavānad sāḵte šavad rooye
|
||||
Can be built on = Mitavānad sāḵte šavad rooye
|
||||
Defence bonus = Emtiāz e defāi
|
||||
Movement cost = Hazine ye harekat
|
||||
Rough Terrain = Zamin e nāhamvār
|
||||
for = barāye
|
||||
for = barāye
|
||||
Missing translations: = Tarjome hāye nāmojood:
|
||||
Version = Nosḵe
|
||||
Resolution = Vozooh e tasvir
|
||||
|
@ -990,16 +990,16 @@ Upgrades to [upgradedUnit] = Be [upgradedUnit] behine mishavad
|
||||
Obsolete with [obsoleteTech] = Baa [obsoleteTech] mansookh mishavad
|
||||
Occurs on [listOfTerrains] = Rooye [listOfTerrains] etefaagh mioftad
|
||||
Placed on [terrainType] = Gharaar gerefte rooye [terrainType]
|
||||
Can be found on = Peydaa mishavad rooye
|
||||
Can be found on = Peydaa mishavad rooye
|
||||
Improved by [improvement] = Behbood-saakhte shode baa [improvement]
|
||||
Bonus stats for improvement = Khavaas ezaafe shode bekhaater e behbood-saazi
|
||||
Buildings that consume this resource = Saakhtemaan haayi ke in manba raa masraf mikonand
|
||||
Units that consume this resource = Niroo haayi ke in manba raa masraf mikonand
|
||||
Can be built on = Mitavaanad saakhte shavad rooye
|
||||
Can be built on = Mitavaanad saakhte shavad rooye
|
||||
Defence bonus = Emtiaaz e defaai
|
||||
Movement cost = Hazine ye harekat
|
||||
Rough Terrain = Zamin e naahamvaar
|
||||
for = baraaye
|
||||
for = baraaye
|
||||
Missing translations: = Tarjome haaye naamojood:
|
||||
Version = Noskhe
|
||||
Resolution = Vozooh e tasvir
|
||||
|
@ -936,16 +936,16 @@ Upgrades to [upgradedUnit] = Ulepsza się do [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Przestarzałe po wynalezieniu: [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Występuje na [listOfTerrains]
|
||||
Placed on [terrainType] = Umieszczone na [terrainType]
|
||||
Can be found on = Może zostać znaleziony na
|
||||
Can be found on = Może zostać znaleziony na
|
||||
Improved by [improvement] = Ulepszane przez [improvement]
|
||||
Bonus stats for improvement = Dodatkowe statystyki po ulepszeniu
|
||||
Buildings that consume this resource = Budynki pochłaniające ten surowiec
|
||||
Units that consume this resource = Jednostki wymagające tego surowca
|
||||
Can be built on = Może być zbudowany na
|
||||
Can be built on = Może być zbudowany na
|
||||
Defence bonus = Premia do obrony
|
||||
Movement cost = Koszt ruchu
|
||||
Rough Terrain = Trudny Teren
|
||||
for = dla
|
||||
for = dla
|
||||
Missing translations: = Brakujące tłumaczenia:
|
||||
Version = Wersja
|
||||
Resolution = Rozdzielczość
|
||||
|
@ -877,16 +877,16 @@ Upgrades to [upgradedUnit] = Melhorar para [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Obsoleta(0) com [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Ocorre em [listOfTerrains]
|
||||
Placed on [terrainType] = Colocado em [terrainType]
|
||||
Can be found on = Pode ser encontrado em
|
||||
Can be found on = Pode ser encontrado em
|
||||
Improved by [improvement] = Melhorado por [improvement]
|
||||
Bonus stats for improvement = Bonus de estatisticas por melhoria
|
||||
Buildings that consume this resource = Construções que consomem esse recurso
|
||||
Units that consume this resource = Unidades que consomem esse recurso
|
||||
Can be built on = Pode ser construido em
|
||||
Can be built on = Pode ser construido em
|
||||
Defence bonus = Bonus de defesa
|
||||
Movement cost = Custo de movimento
|
||||
Rough Terrain = Terreno acidentado
|
||||
for = para
|
||||
for = para
|
||||
Missing translations: = Traduções a faltar:
|
||||
Version = Versão
|
||||
Resolution = Resolução
|
||||
|
@ -1032,7 +1032,7 @@ Upgrades to [upgradedUnit] = Îmbunătățiri la [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] =
|
||||
Occurs on [listOfTerrains] = Apare pe [listOfTerrains]
|
||||
Placed on [terrainType] = Plasat pe [terrainType]
|
||||
Can be found on = Se poate găsi pe
|
||||
Can be found on = Se poate găsi pe
|
||||
# Requires translation!
|
||||
Improved by [improvement] =
|
||||
# Requires translation!
|
||||
@ -1041,12 +1041,12 @@ Bonus stats for improvement =
|
||||
Buildings that consume this resource =
|
||||
# Requires translation!
|
||||
Units that consume this resource =
|
||||
Can be built on = Se poate construi pe
|
||||
Can be built on = Se poate construi pe
|
||||
Defence bonus = Bonus de apărare
|
||||
Movement cost = Cost de deplasare
|
||||
# Requires translation!
|
||||
Rough Terrain =
|
||||
for = pentru
|
||||
for = pentru
|
||||
Missing translations: = Traduceri lipsă:
|
||||
Version = Versiune
|
||||
Resolution = Rezoluție
|
||||
|
@ -845,16 +845,16 @@ Upgrades to [upgradedUnit] = Улучшается до: [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Устаревает при открытии технологии [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Появляется на: [listOfTerrains]
|
||||
Placed on [terrainType] = Появляется вместо: [terrainType]
|
||||
Can be found on = Может быть найден на клетках:
|
||||
Can be found on = Может быть найден на клетках
|
||||
Improved by [improvement] = Улучшение: [improvement]
|
||||
Bonus stats for improvement = Бонусы за улучшение
|
||||
Buildings that consume this resource = Здания, которые потребляют этот ресурс
|
||||
Units that consume this resource = Юниты, которые потребляют этот ресурс
|
||||
Can be built on = Можно строить на:
|
||||
Can be built on = Можно строить на
|
||||
Defence bonus = Бонус к защите
|
||||
Movement cost = Стоимость передвижения
|
||||
Rough Terrain = Пересеченная местность
|
||||
for = за
|
||||
for = за
|
||||
Missing translations: = Отсутствующие переводы:
|
||||
Version = Версия
|
||||
Resolution = Разрешение
|
||||
|
@ -845,16 +845,16 @@ Upgrades to [upgradedUnit] = 可升级为[upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = 研发下列科技后过时:[obsoleteTech]
|
||||
Occurs on [listOfTerrains] = 可能出现在以下地形:[listOfTerrains]
|
||||
Placed on [terrainType] = 可出现在[terrainType]之上
|
||||
Can be found on = 可能发现该资源的地形地貌:
|
||||
Can be found on = 可能发现该资源的地形地貌:
|
||||
Improved by [improvement] = 开发该资源所需设施:[improvement]
|
||||
Bonus stats for improvement = 开发该资源后设施所获奖励效果:
|
||||
Buildings that consume this resource = 消耗该资源的建筑:
|
||||
Units that consume this resource = 消耗该资源的单位:
|
||||
Can be built on = 可以建造于:
|
||||
Can be built on = 可以建造于:
|
||||
Defence bonus = 防御力加成
|
||||
Movement cost = 移动力消耗
|
||||
Rough Terrain = 崎岖地形
|
||||
for = ,当建造在拥有下列资源的地块上时:
|
||||
for = ,当建造在拥有下列资源的地块上时:
|
||||
Missing translations: = 未翻译的词条:
|
||||
Version = 版本
|
||||
Resolution = 分辨率
|
||||
|
@ -852,16 +852,16 @@ Upgrades to [upgradedUnit] = Mejora a [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Se hace obsoleto con [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Ocurre en [listOfTerrains]
|
||||
Placed on [terrainType] = Colocado en [terrainType]
|
||||
Can be found on = Se puede encontrar en
|
||||
Can be found on = Se puede encontrar en
|
||||
Improved by [improvement] = Mejorado por [improvement]
|
||||
Bonus stats for improvement = Atributos bonus de la mejora
|
||||
Buildings that consume this resource = Edificios que consumen este recurso
|
||||
Units that consume this resource = Unidades que consumen este recurso
|
||||
Can be built on = Se puede construir en
|
||||
Can be built on = Se puede construir en
|
||||
Defence bonus = Bonus de defensa
|
||||
Movement cost = Coste de movimiento
|
||||
Rough Terrain = Terreno Abrupto
|
||||
for = para
|
||||
for = para
|
||||
Missing translations: = Traducciones restantes:
|
||||
Version = Versión
|
||||
Resolution = Resolución
|
||||
|
@ -845,16 +845,16 @@ Upgrades to [upgradedUnit] = Uppgraderas till [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Föråldras med [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Befinner sig på [listOfTerrains]
|
||||
Placed on [terrainType] = Placeras på [terrainType]
|
||||
Can be found on = Kan finnas på
|
||||
Can be found on = Kan finnas på
|
||||
Improved by [improvement] = Förbättras av [improvement]
|
||||
Bonus stats for improvement = Bonusstatistik för förbättring
|
||||
Buildings that consume this resource = Byggnader som konsumerar denna resurs
|
||||
Units that consume this resource = Enheter som konsumerar denna resurs
|
||||
Can be built on = Kan byggas på
|
||||
Can be built on = Kan byggas på
|
||||
Defence bonus = Försvarsbonus
|
||||
Movement cost = Förflyttningskostnad
|
||||
Rough Terrain = Kuperad Terräng
|
||||
for = för
|
||||
for = för
|
||||
Missing translations: = Saknade översättningar:
|
||||
Version = Version
|
||||
Resolution = Upplösning
|
||||
|
@ -820,14 +820,14 @@ May contain [listOfResources] = อาจจะประกอบไปด้ว
|
||||
Upgrades to [upgradedUnit] = อัพเกรดไปเป็น [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = ล้าสมัยกับ [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = เกิดขึ้นบน [listOfTerrains]
|
||||
Can be found on = สามารถถูกพบได้บน
|
||||
Can be found on = สามารถถูกพบได้บน
|
||||
Improved by [improvement] = ปรับปรุงโดย [improvement]
|
||||
Bonus stats for improvement = แต้มโบนัสสำหรับการปรับปรุง
|
||||
Can be built on = สามารถสร้างได้บน
|
||||
Can be built on = สามารถสร้างได้บน
|
||||
Defence bonus = โบนัสการป้องกัน
|
||||
Movement cost = ค่าการเคลื่อนย้าย
|
||||
Rough Terrain = ภูมิประเทศที่ขรุขระ
|
||||
for = เพื่อ
|
||||
for = เพื่อ
|
||||
Missing translations: = การแปลที่หายไป:
|
||||
Version = เวอร์ชั่น
|
||||
Resolution = ความละเอียด
|
||||
|
@ -932,16 +932,16 @@ Upgrades to [upgradedUnit] = 可升級為[upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = 研發下列科技後過時:[obsoleteTech]
|
||||
Occurs on [listOfTerrains] = 可能出現在以下地形:[listOfTerrains]
|
||||
Placed on [terrainType] = 出現在[terrainType]之上
|
||||
Can be found on = 可能發現該資源的地形地貌:
|
||||
Can be found on = 可能發現該資源的地形地貌:
|
||||
Improved by [improvement] = 開發該資源所需設施:[improvement]
|
||||
Bonus stats for improvement = 開發該資源後設施所獲獎勵效果:
|
||||
Buildings that consume this resource = 消耗該資源的建築:
|
||||
Units that consume this resource = 消耗該資源的單位:
|
||||
Can be built on = 可以建造於:
|
||||
Can be built on = 可以建造於
|
||||
Defence bonus = 防禦力加成
|
||||
Movement cost = 移動力消耗
|
||||
Rough Terrain = 崎嶇地形
|
||||
for = ,當建造在擁有下列資源的地區上時:
|
||||
for = ,當建造在擁有下列資源的地區上時:
|
||||
Missing translations: = 未翻譯的字串:
|
||||
Version = 版本
|
||||
Resolution = 解析度
|
||||
|
@ -895,16 +895,16 @@ Upgrades to [upgradedUnit] = [upgradedUnit] sürümüne yükseltir
|
||||
Obsolete with [obsoleteTech] = [obsoleteTech] araştırıldığından itibaren üretilemez
|
||||
Occurs on [listOfTerrains] = [listOfTerrains] arazilerinde bulunur
|
||||
Placed on [terrainType] = [terrainType] üstüne yerleşiktir
|
||||
Can be found on = Şurada bulunabilir
|
||||
Can be found on = Şurada bulunabilir
|
||||
Improved by [improvement] = [improvement] ile geliştirilir
|
||||
Bonus stats for improvement = Geliştirmelerin sağladığı fazladan verimler
|
||||
Buildings that consume this resource = Bu kaynağı kullanan binalar
|
||||
Units that consume this resource = Bu kaynağı kullanan birlikler
|
||||
Can be built on = Üzerine inşa edilebilir
|
||||
Can be built on = Üzerine inşa edilebilir
|
||||
Defence bonus = Savunma bonusu
|
||||
Movement cost = Hareket maliyeti
|
||||
Rough Terrain = Engebeli Arazi
|
||||
for = için
|
||||
for = için
|
||||
Missing translations: = Eksik çeviriler:
|
||||
Version = Sürüm
|
||||
Resolution = Çözünürlük
|
||||
|
@ -862,16 +862,16 @@ Upgrades to [upgradedUnit] = Удосконалюється до «[upgradedUnit
|
||||
Obsolete with [obsoleteTech] = Застаріває після відкриття технології «[obsoleteTech]»
|
||||
Occurs on [listOfTerrains] = Зустрічається на таких місцевостях: [listOfTerrains]
|
||||
Placed on [terrainType] = Є клітиною типу «[terrainType]»
|
||||
Can be found on = Можна знайти в таких місцевостях:
|
||||
Can be found on = Можна знайти в таких місцевостях
|
||||
Improved by [improvement] = Забезпечується вдосконаленням «[improvement]»
|
||||
Bonus stats for improvement = Бонусні характеристики за удосконалення
|
||||
Buildings that consume this resource = Будівлі, що потребують цей ресурс
|
||||
Units that consume this resource = Підрозділи, що потребують цей ресурс
|
||||
Can be built on = Може бути побудований на клітинах такого типу:
|
||||
Can be built on = Може бути побудований на клітинах такого типу
|
||||
Defence bonus = Бонус до захисту
|
||||
Movement cost = Вартість руху
|
||||
Rough Terrain = Нерівна місцевість
|
||||
for = за
|
||||
for = за
|
||||
Missing translations: = Відсутні переклади:
|
||||
Version = Версія
|
||||
Resolution = Роздільність
|
||||
|
@ -770,16 +770,16 @@ Upgrades to [upgradedUnit] = Nâng cấp lên [upgradedUnit]
|
||||
Obsolete with [obsoleteTech] = Cổ xưa với [obsoleteTech]
|
||||
Occurs on [listOfTerrains] = Xảy ra tại [listOfTerrains]
|
||||
Placed on [terrainType] = Được đặt tại [terrainType]
|
||||
Can be found on = Có thể tìm thấy ở
|
||||
Can be found on = Có thể tìm thấy ở
|
||||
Improved by [improvement] = Cải tiến bằng [improvement]
|
||||
Bonus stats for improvement: = Thưởng chỉ số cho cải tiến:
|
||||
Buildings that consume this resource: = Các công trình sử dụng tài nguyên này:
|
||||
Units that consume this resource: = Các đơn vị sử dụng tài nguyên này:
|
||||
Can be built on = Có thể xây trên
|
||||
Can be built on = Có thể xây trên
|
||||
Defence bonus = Thưởng phòng thủ
|
||||
Movement cost = Chi phí di chuyển
|
||||
Rough Terrain = Địa hình hiểm trở
|
||||
for = cho
|
||||
for = cho
|
||||
Missing translations: = Phiên dịch còn thiếu:
|
||||
Version = Phiên bản
|
||||
Resolution = Đồ họa
|
||||
|
@ -842,21 +842,25 @@ Unique to [civName] =
|
||||
Tutorials =
|
||||
Cost =
|
||||
May contain [listOfResources] =
|
||||
May contain: =
|
||||
Upgrades to [upgradedUnit] =
|
||||
Obsolete with [obsoleteTech] =
|
||||
Occurs on [listOfTerrains] =
|
||||
Occurs on: =
|
||||
Placed on [terrainType] =
|
||||
Can be found on =
|
||||
Can be found on =
|
||||
Improved by [improvement] =
|
||||
Bonus stats for improvement =
|
||||
Buildings that consume this resource =
|
||||
Buildings that require this resource worked near the city =
|
||||
Units that consume this resource =
|
||||
Can be built on =
|
||||
Can be built on =
|
||||
Can be constructed by =
|
||||
Defence bonus =
|
||||
Movement cost =
|
||||
Open terrain =
|
||||
Rough Terrain =
|
||||
for =
|
||||
for =
|
||||
Missing translations: =
|
||||
Version =
|
||||
Resolution =
|
||||
|
@ -517,6 +517,7 @@ object Battle {
|
||||
}
|
||||
}
|
||||
|
||||
// todo: reduce extreme code duplication, parameterize probabilities where an unique already used
|
||||
private fun nukeStrength1Effect(attacker: MapUnitCombatant, tile: TileInfo) {
|
||||
// https://forums.civfanatics.com/resources/unit-guide-modern-future-units-g-k.25628/
|
||||
// https://www.carlsguides.com/strategy/civilization5/units/aircraft-nukes.php
|
||||
|
@ -191,6 +191,8 @@ class MapUnit {
|
||||
|
||||
tempUniques = uniques
|
||||
|
||||
//todo: parameterize [terrainFilter] in 5 to 7 of the following:
|
||||
|
||||
// "All tiles costs 1" obsoleted in 3.11.18
|
||||
allTilesCosts1 = hasUnique("All tiles cost 1 movement") || hasUnique("All tiles costs 1")
|
||||
canPassThroughImpassableTiles = hasUnique("Can pass through impassable tiles")
|
||||
@ -681,6 +683,7 @@ class MapUnit {
|
||||
clearEncampment(tile)
|
||||
|
||||
if (!hasUnique("All healing effects doubled") && type.isLandUnit() && baseUnit.isMilitary()) {
|
||||
//todo: Grants [promotion] to adjacent [unitFilter] units for the rest of the game
|
||||
val gainDoubleHealPromotion = tile.neighbors
|
||||
.any { it.hasUnique("Grants Rejuvenation (all healing effects doubled) to adjacent military land units for the rest of the game") }
|
||||
if (gainDoubleHealPromotion && civInfo.gameInfo.ruleSet.unitPromotions.containsKey("Rejuvenation"))
|
||||
|
@ -1,9 +1,9 @@
|
||||
package com.unciv.models.ruleset
|
||||
|
||||
import com.unciv.UncivGame
|
||||
import com.unciv.models.stats.INamed
|
||||
import com.unciv.ui.civilopedia.CivilopediaText
|
||||
import com.unciv.ui.civilopedia.FormattedLine
|
||||
import java.awt.Color
|
||||
import java.util.ArrayList
|
||||
|
||||
class Belief: INamed, CivilopediaText() {
|
||||
@ -12,9 +12,11 @@ class Belief: INamed, CivilopediaText() {
|
||||
var uniques = ArrayList<String>()
|
||||
val uniqueObjects: List<Unique> by lazy { uniques.map { Unique(it) } }
|
||||
|
||||
override fun getCivilopediaTextHeader() = FormattedLine(name, icon="Belief/$name", header=2)
|
||||
|
||||
override fun makeLink() = "Belief/$name"
|
||||
override fun replacesCivilopediaDescription() = true
|
||||
override fun hasCivilopediaTextLines() = true
|
||||
|
||||
override fun getCivilopediaTextLines(ruleset: Ruleset): List<FormattedLine> {
|
||||
val textList = ArrayList<FormattedLine>()
|
||||
textList += FormattedLine("{Type}: $type", color=type.color )
|
||||
@ -23,6 +25,32 @@ class Belief: INamed, CivilopediaText() {
|
||||
}
|
||||
return textList
|
||||
}
|
||||
|
||||
companion object {
|
||||
// private but potentially reusable, therefore not folded into getCivilopediaTextMatching
|
||||
private fun getBeliefsMatching(name: String, ruleset: Ruleset): Sequence<Belief> {
|
||||
if (!UncivGame.isCurrentInitialized()) return sequenceOf()
|
||||
if (!UncivGame.Current.isGameInfoInitialized()) return sequenceOf()
|
||||
if (!UncivGame.Current.gameInfo.hasReligionEnabled()) return sequenceOf()
|
||||
return ruleset.beliefs.asSequence().map { it.value }
|
||||
.filter { belief -> belief.uniqueObjects.any { unique -> unique.params.any { it == name } }
|
||||
}
|
||||
}
|
||||
|
||||
/** Get CivilopediaText lines for all Beliefs referencing a given name in an unique parameter,
|
||||
* With optional spacing and "See Also:" header.
|
||||
*/
|
||||
fun getCivilopediaTextMatching(
|
||||
name: String,
|
||||
ruleset: Ruleset,
|
||||
withSeeAlso: Boolean = true
|
||||
): Sequence<FormattedLine> = sequence {
|
||||
val matchingBeliefs = getBeliefsMatching(name, ruleset)
|
||||
if (matchingBeliefs.none()) return@sequence
|
||||
if (withSeeAlso) { yield(FormattedLine()); yield(FormattedLine("{See also}:")) }
|
||||
yieldAll(matchingBeliefs.map { FormattedLine(it.name, link=it.makeLink(), indent = 1) })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum class BeliefType(val color: String) {
|
||||
|
@ -55,7 +55,7 @@ class Building : NamedStats(), IConstruction, ICivilopediaText {
|
||||
private var requiredResource: String? = null
|
||||
|
||||
/** City can only be built if one of these resources is nearby - it must be improved! */
|
||||
private var requiredNearbyImprovedResources: List<String>? = null
|
||||
var requiredNearbyImprovedResources: List<String>? = null
|
||||
private var cannotBeBuiltWith: String? = null
|
||||
var cityStrength = 0
|
||||
var cityHealth = 0
|
||||
@ -197,10 +197,10 @@ class Building : NamedStats(), IConstruction, ICivilopediaText {
|
||||
return stats
|
||||
}
|
||||
|
||||
fun makeLink() = if (isAnyWonder()) "Wonder/$name" else "Building/$name"
|
||||
override fun getCivilopediaTextHeader() = FormattedLine(name, header=2, icon=makeLink())
|
||||
override fun makeLink() = if (isAnyWonder()) "Wonder/$name" else "Building/$name"
|
||||
override fun hasCivilopediaTextLines() = true
|
||||
override fun replacesCivilopediaDescription() = true
|
||||
|
||||
override fun getCivilopediaTextLines(ruleset: Ruleset): List<FormattedLine> {
|
||||
fun Float.formatSignedInt() = (if (this > 0f) "+" else "") + this.toInt().toString()
|
||||
|
||||
@ -305,11 +305,12 @@ class Building : NamedStats(), IConstruction, ICivilopediaText {
|
||||
if (maintenance != 0) textList += FormattedLine("{Maintenance cost}: $maintenance {Gold}")
|
||||
|
||||
val seeAlso = ArrayList<FormattedLine>()
|
||||
for ((other, building) in ruleset.buildings) {
|
||||
if (building.replaces == name || building.providesFreeBuilding == name || uniques.contains("[$name]") ) {
|
||||
seeAlso += FormattedLine(other, link=building.makeLink(), indent=1)
|
||||
}
|
||||
for (building in ruleset.buildings.values) {
|
||||
if (building.replaces == name || building.providesFreeBuilding == name
|
||||
|| building.uniqueObjects.any { unique -> unique.params.any { it ==name } })
|
||||
seeAlso += FormattedLine(building.name, link=building.makeLink(), indent=1)
|
||||
}
|
||||
seeAlso += Belief.getCivilopediaTextMatching(name, ruleset, false)
|
||||
if (seeAlso.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("{See also}:")
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.unciv.models.ruleset.tile
|
||||
|
||||
enum class ResourceType {
|
||||
Luxury,
|
||||
Strategic,
|
||||
Bonus
|
||||
enum class ResourceType(val color:String) {
|
||||
Luxury("#ffeb7f"),
|
||||
Strategic("#c5a189"),
|
||||
Bonus("#81c784")
|
||||
}
|
||||
|
@ -2,13 +2,15 @@ package com.unciv.models.ruleset.tile
|
||||
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.unciv.Constants
|
||||
import com.unciv.models.ruleset.Belief
|
||||
import com.unciv.models.ruleset.Ruleset
|
||||
import com.unciv.models.ruleset.Unique
|
||||
import com.unciv.models.stats.NamedStats
|
||||
import com.unciv.models.translations.tr
|
||||
import com.unciv.ui.civilopedia.FormattedLine
|
||||
import com.unciv.ui.civilopedia.ICivilopediaText
|
||||
import com.unciv.ui.utils.colorFromRGB
|
||||
|
||||
class Terrain : NamedStats() {
|
||||
class Terrain : NamedStats(), ICivilopediaText {
|
||||
|
||||
lateinit var type: TerrainType
|
||||
|
||||
@ -31,47 +33,122 @@ class Terrain : NamedStats() {
|
||||
var weight = 10
|
||||
|
||||
/** RGB color of base terrain */
|
||||
@Suppress("PropertyName") // RGB is expected to be in caps
|
||||
var RGB: List<Int>? = null
|
||||
var movementCost = 1
|
||||
var defenceBonus:Float = 0f
|
||||
var impassable = false
|
||||
|
||||
override var civilopediaText = listOf<FormattedLine>()
|
||||
|
||||
fun isRough(): Boolean = uniques.contains("Rough terrain")
|
||||
|
||||
/** Tests base terrains, features and natural wonders whether they should be treated as Land/Water.
|
||||
* Currently only used for civilopedia display, as other code can test the tile itself.
|
||||
*/
|
||||
fun displayAs(asType: TerrainType, ruleset: Ruleset) =
|
||||
type == asType
|
||||
|| occursOn.any {
|
||||
occursName -> occursName in ruleset.terrains.values
|
||||
.filter { it.type == asType }
|
||||
.map { it.name }
|
||||
}
|
||||
|| ruleset.terrains[this.turnsInto]?.type == asType
|
||||
|
||||
fun getColor(): Color { // Can't be a lazy initialize, because we play around with the resulting color with lerp()s and the like
|
||||
if (RGB == null) return Color.GOLD
|
||||
return colorFromRGB(RGB!!)
|
||||
}
|
||||
|
||||
fun getDescription(ruleset: Ruleset): String {
|
||||
val sb = StringBuilder()
|
||||
sb.appendLine(this.clone().toString())
|
||||
if (occursOn.isNotEmpty())
|
||||
sb.appendLine("Occurs on [${occursOn.joinToString(", ") { it.tr() }}]".tr())
|
||||
override fun makeLink() = "Terrain/$name"
|
||||
override fun hasCivilopediaTextLines() = true
|
||||
override fun replacesCivilopediaDescription() = true
|
||||
|
||||
if (turnsInto != null)
|
||||
sb.appendLine("Placed on [$turnsInto]".tr())
|
||||
override fun getCivilopediaTextLines(ruleset: Ruleset): List<FormattedLine> {
|
||||
//todo where should we explain Rivers?
|
||||
|
||||
val textList = ArrayList<FormattedLine>()
|
||||
|
||||
if (turnsInto != null) {
|
||||
textList += FormattedLine("Natural Wonder", header=3, color="#3A0")
|
||||
}
|
||||
|
||||
val stats = this.clone()
|
||||
if (!stats.isEmpty()) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("$stats")
|
||||
}
|
||||
|
||||
if (occursOn.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
if (occursOn.size == 1) {
|
||||
with (occursOn[0]) {
|
||||
textList += FormattedLine("Occurs on [$this]", link="Terrain/$this")
|
||||
}
|
||||
} else {
|
||||
textList += FormattedLine("Occurs on:")
|
||||
occursOn.forEach {
|
||||
textList += FormattedLine(it, link="Terrain/$it", indent=1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (turnsInto != null) {
|
||||
textList += FormattedLine("Placed on [$turnsInto]", link="Terrain/$turnsInto")
|
||||
}
|
||||
|
||||
val resourcesFound = ruleset.tileResources.values.filter { it.terrainsCanBeFoundOn.contains(name) }
|
||||
if (resourcesFound.isNotEmpty())
|
||||
sb.appendLine("May contain [${resourcesFound.joinToString(", ") { it.name.tr() }}]".tr())
|
||||
if (resourcesFound.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
if (resourcesFound.size == 1) {
|
||||
with (resourcesFound[0]) {
|
||||
textList += FormattedLine("May contain [$this]", link="Resource/$this")
|
||||
}
|
||||
} else {
|
||||
textList += FormattedLine("May contain:")
|
||||
resourcesFound.forEach {
|
||||
textList += FormattedLine("$it", link="Resource/$it", indent=1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isRough())
|
||||
sb.appendLine("Rough terrain".tr())
|
||||
else
|
||||
sb.appendLine("Open terrain".tr())
|
||||
textList += FormattedLine()
|
||||
// For now, natural wonders show no "open terrain" - may change later
|
||||
if (turnsInto == null && displayAs(TerrainType.Land, ruleset) && !isRough())
|
||||
textList += FormattedLine("Open terrain") // Rough is in uniques
|
||||
uniqueObjects.forEach {
|
||||
textList += FormattedLine(it)
|
||||
}
|
||||
|
||||
if(uniques.isNotEmpty())
|
||||
sb.appendLine(uniques.filter{ it != "Rough terrain" }.joinToString{ it.tr() })
|
||||
|
||||
if (impassable)
|
||||
sb.appendLine(Constants.impassable.tr())
|
||||
else
|
||||
sb.appendLine("{Movement cost}: $movementCost".tr())
|
||||
textList += FormattedLine()
|
||||
textList += if (impassable) FormattedLine(Constants.impassable, color="#A00")
|
||||
else FormattedLine("{Movement cost}: $movementCost")
|
||||
|
||||
if (defenceBonus != 0f)
|
||||
sb.appendLine("{Defence bonus}: ".tr() + (defenceBonus * 100).toInt() + "%")
|
||||
textList += FormattedLine("{Defence bonus}: ${(defenceBonus * 100).toInt()}%")
|
||||
|
||||
return sb.toString()
|
||||
val seeAlso = (
|
||||
//todo: Could vastly be simplified using upcoming INonPerpetualConstruction
|
||||
ruleset.buildings.values.asSequence()
|
||||
.filter {
|
||||
building -> building.uniqueObjects.any {
|
||||
unique -> unique.params.any { it == name }
|
||||
}
|
||||
} +
|
||||
ruleset.units.values.asSequence()
|
||||
.filter {
|
||||
unit -> unit.uniqueObjects.any {
|
||||
unique -> unique.params.any { it == name }
|
||||
}
|
||||
}
|
||||
).map { FormattedLine(it.name, it.makeLink(), indent=1) } +
|
||||
Belief.getCivilopediaTextMatching(name, ruleset, false)
|
||||
if (seeAlso.any()) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("{See also}:")
|
||||
textList += seeAlso
|
||||
}
|
||||
|
||||
return textList
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.unciv.models.ruleset.tile
|
||||
|
||||
import com.unciv.logic.civilization.CivilizationInfo
|
||||
import com.unciv.models.ruleset.Belief
|
||||
import com.unciv.logic.map.RoadStatus
|
||||
import com.unciv.models.ruleset.Ruleset
|
||||
import com.unciv.models.ruleset.Unique
|
||||
@ -40,17 +41,17 @@ class TileImprovement : NamedStats(), ICivilopediaText {
|
||||
return realTurnsToBuild.roundToInt()
|
||||
}
|
||||
|
||||
fun getDescription(ruleset: Ruleset, forPickerScreen: Boolean = true): String {
|
||||
val stringBuilder = StringBuilder()
|
||||
fun getDescription(ruleset: Ruleset): String {
|
||||
val lines = ArrayList<String>()
|
||||
|
||||
val statsDesc = this.clone().toString()
|
||||
if (statsDesc.isNotEmpty()) stringBuilder.appendLine(statsDesc)
|
||||
if (uniqueTo!=null && !forPickerScreen) stringBuilder.appendLine("Unique to [$uniqueTo]".tr())
|
||||
if (statsDesc.isNotEmpty()) lines += statsDesc
|
||||
if (!terrainsCanBeBuiltOn.isEmpty()) {
|
||||
val terrainsCanBeBuiltOnString: ArrayList<String> = arrayListOf()
|
||||
for (i in terrainsCanBeBuiltOn) {
|
||||
terrainsCanBeBuiltOnString.add(i.tr())
|
||||
}
|
||||
stringBuilder.appendLine("Can be built on ".tr() + terrainsCanBeBuiltOnString.joinToString(", "))//language can be changed when setting changes.
|
||||
lines += "Can be built on".tr() + terrainsCanBeBuiltOnString.joinToString(", ", " ") //language can be changed when setting changes.
|
||||
}
|
||||
val statsToResourceNames = HashMap<String, ArrayList<String>>()
|
||||
for (tr: TileResource in ruleset.tileResources.values.filter { it.improvement == name }) {
|
||||
@ -60,15 +61,15 @@ class TileImprovement : NamedStats(), ICivilopediaText {
|
||||
statsToResourceNames[statsString]!!.add(tr.name.tr())
|
||||
}
|
||||
statsToResourceNames.forEach {
|
||||
stringBuilder.appendLine(it.key + " for ".tr() + it.value.joinToString(", "))
|
||||
lines += "{${it.key}} {for} ".tr() + it.value.joinToString(", ")
|
||||
}
|
||||
|
||||
if (techRequired != null) stringBuilder.appendLine("Required tech: [$techRequired]".tr())
|
||||
if (techRequired != null) lines += "Required tech: [$techRequired]".tr()
|
||||
|
||||
for(unique in uniques)
|
||||
stringBuilder.appendLine(unique.tr())
|
||||
lines += unique.tr()
|
||||
|
||||
return stringBuilder.toString()
|
||||
return lines.joinToString("\n")
|
||||
}
|
||||
|
||||
fun hasUnique(unique: String) = uniques.contains(unique)
|
||||
@ -100,5 +101,82 @@ class TileImprovement : NamedStats(), ICivilopediaText {
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun makeLink() = "Improvement/$name"
|
||||
override fun hasCivilopediaTextLines() = true
|
||||
override fun replacesCivilopediaDescription() = true
|
||||
|
||||
override fun getCivilopediaTextLines(ruleset: Ruleset): List<FormattedLine> {
|
||||
val textList = ArrayList<FormattedLine>()
|
||||
|
||||
val statsDesc = this.clone().toString()
|
||||
if (statsDesc.isNotEmpty()) textList += FormattedLine(statsDesc)
|
||||
|
||||
if (uniqueTo!=null) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("Unique to [$uniqueTo]", link="Nation/$uniqueTo")
|
||||
}
|
||||
|
||||
if (terrainsCanBeBuiltOn.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
if (terrainsCanBeBuiltOn.size == 1) {
|
||||
with (terrainsCanBeBuiltOn.first()) {
|
||||
textList += FormattedLine("{Can be built on} {$this}", link="Terrain/$this")
|
||||
}
|
||||
} else {
|
||||
textList += FormattedLine("{Can be built on}:")
|
||||
terrainsCanBeBuiltOn.forEach {
|
||||
textList += FormattedLine(it, link="Terrain/$it", indent=1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val statsToResourceNames = HashMap<String, ArrayList<String>>()
|
||||
for (resource in ruleset.tileResources.values.filter { it.improvement == name }) {
|
||||
val statsString = resource.improvementStats.toString()
|
||||
if (statsString !in statsToResourceNames)
|
||||
statsToResourceNames[statsString] = ArrayList()
|
||||
statsToResourceNames[statsString]!!.add(resource.name)
|
||||
}
|
||||
if (statsToResourceNames.isNotEmpty()) {
|
||||
statsToResourceNames.forEach {
|
||||
textList += FormattedLine()
|
||||
if (it.value.size == 1) {
|
||||
with(it.value[0]) {
|
||||
textList += FormattedLine("${it.key}{ for }{$this}", link="Resource/$this")
|
||||
}
|
||||
} else {
|
||||
textList += FormattedLine("${it.key}{ for }:")
|
||||
it.value.forEach { resource ->
|
||||
textList += FormattedLine(resource, link="Resource/$resource", indent=1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (techRequired != null) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("Required tech: [$techRequired]", link="Technology/$techRequired")
|
||||
}
|
||||
|
||||
if (uniques.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
for (unique in uniqueObjects)
|
||||
textList += FormattedLine(unique)
|
||||
}
|
||||
|
||||
val unit = ruleset.units.asSequence().firstOrNull {
|
||||
entry -> entry.value.uniques.any {
|
||||
it.startsWith("Can construct [$name]")
|
||||
}
|
||||
}?.key
|
||||
if (unit != null) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("{Can be constructed by} {$unit}", link="Unit/$unit")
|
||||
}
|
||||
|
||||
textList += Belief.getCivilopediaTextMatching(name, ruleset)
|
||||
|
||||
return textList
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,15 @@
|
||||
package com.unciv.models.ruleset.tile
|
||||
|
||||
import com.unciv.models.ruleset.Belief
|
||||
import com.unciv.models.ruleset.Ruleset
|
||||
import com.unciv.models.ruleset.Unique
|
||||
import com.unciv.models.stats.NamedStats
|
||||
import com.unciv.models.stats.Stats
|
||||
import com.unciv.models.translations.tr
|
||||
import com.unciv.ui.civilopedia.FormattedLine
|
||||
import com.unciv.ui.civilopedia.ICivilopediaText
|
||||
import java.util.*
|
||||
|
||||
class TileResource : NamedStats() {
|
||||
class TileResource : NamedStats(), ICivilopediaText {
|
||||
|
||||
var resourceType: ResourceType = ResourceType.Bonus
|
||||
var terrainsCanBeFoundOn: List<String> = listOf()
|
||||
@ -15,33 +18,84 @@ class TileResource : NamedStats() {
|
||||
var revealedBy: String? = null
|
||||
var unique: String? = null
|
||||
|
||||
override var civilopediaText = listOf<FormattedLine>()
|
||||
|
||||
fun getDescription(ruleset: Ruleset): String {
|
||||
val stringBuilder = StringBuilder()
|
||||
stringBuilder.appendLine(resourceType.name.tr())
|
||||
stringBuilder.appendLine(this.clone().toString())
|
||||
val terrainsCanBeBuiltOnString: ArrayList<String> = arrayListOf()
|
||||
terrainsCanBeBuiltOnString.addAll(terrainsCanBeFoundOn.map { it.tr() })
|
||||
stringBuilder.appendLine("Can be found on ".tr() + terrainsCanBeBuiltOnString.joinToString(", "))
|
||||
stringBuilder.appendln()
|
||||
stringBuilder.appendLine("Improved by [$improvement]".tr())
|
||||
stringBuilder.appendLine("{Bonus stats for improvement}: ".tr() + "$improvementStats".tr())
|
||||
|
||||
override fun makeLink() = "Resource/$name"
|
||||
override fun hasCivilopediaTextLines() = true
|
||||
override fun replacesCivilopediaDescription() = true
|
||||
|
||||
override fun getCivilopediaTextLines(ruleset: Ruleset): List<FormattedLine> {
|
||||
val textList = ArrayList<FormattedLine>()
|
||||
|
||||
textList += FormattedLine("${resourceType.name} resource", header = 4, color = resourceType.color)
|
||||
textList += FormattedLine()
|
||||
|
||||
textList += FormattedLine(this.clone().toString())
|
||||
|
||||
if (terrainsCanBeFoundOn.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
if (terrainsCanBeFoundOn.size == 1) {
|
||||
with (terrainsCanBeFoundOn[0]) {
|
||||
textList += FormattedLine("{Can be found on} {$this}", link = "Terrain/$this")
|
||||
}
|
||||
} else {
|
||||
textList += FormattedLine("{Can be found on}:")
|
||||
terrainsCanBeFoundOn.forEach {
|
||||
textList += FormattedLine(it, link = "Terrain/$it", indent = 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (improvement != null) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("Improved by [$improvement]", link = "Improvement/$improvement")
|
||||
if (improvementStats != null && !improvementStats!!.isEmpty())
|
||||
textList += FormattedLine("{Bonus stats for improvement}: " + improvementStats.toString())
|
||||
}
|
||||
|
||||
val buildingsThatConsumeThis = ruleset.buildings.values.filter { it.getResourceRequirements().containsKey(name) }
|
||||
if (buildingsThatConsumeThis.isNotEmpty())
|
||||
stringBuilder.appendLine("{Buildings that consume this resource}: ".tr()
|
||||
+ buildingsThatConsumeThis.joinToString { it.name.tr() })
|
||||
if (buildingsThatConsumeThis.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("{Buildings that consume this resource}:")
|
||||
buildingsThatConsumeThis.forEach {
|
||||
textList += FormattedLine(it.name, link = "Building/${it.name}", indent = 1)
|
||||
}
|
||||
}
|
||||
|
||||
val unitsThatConsumeThis = ruleset.units.values.filter { it.getResourceRequirements().containsKey(name) }
|
||||
if (unitsThatConsumeThis.isNotEmpty())
|
||||
stringBuilder.appendLine("{Units that consume this resource}: ".tr()
|
||||
+ unitsThatConsumeThis.joinToString { it.name.tr() })
|
||||
if (unitsThatConsumeThis.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("{Units that consume this resource}: ")
|
||||
unitsThatConsumeThis.forEach {
|
||||
textList += FormattedLine(it.name, link = "Unit/${it.name}", indent = 1)
|
||||
}
|
||||
}
|
||||
|
||||
if (unique != null) stringBuilder.appendLine(unique!!.tr())
|
||||
return stringBuilder.toString()
|
||||
val buildingsRequiringThis = ruleset.buildings.values.filter {
|
||||
it.requiredNearbyImprovedResources?.contains(name) == true
|
||||
}
|
||||
if (buildingsRequiringThis.isNotEmpty()) {
|
||||
textList += FormattedLine()
|
||||
textList += FormattedLine("{Buildings that require this resource worked near the city}: ")
|
||||
buildingsRequiringThis.forEach {
|
||||
textList += FormattedLine(it.name, link = "Building/${it.name}", indent = 1)
|
||||
}
|
||||
}
|
||||
|
||||
if (unique != null) {
|
||||
textList += FormattedLine()
|
||||
// Marble's unique is not parameterized, so the detour through the object is only useful for mods
|
||||
textList += FormattedLine(Unique(unique!!))
|
||||
}
|
||||
|
||||
textList += Belief.getCivilopediaTextMatching(name, ruleset)
|
||||
|
||||
return textList
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
data class ResourceSupply(val resource:TileResource,var amount:Int, val origin:String)
|
||||
|
||||
class ResourceSupplyList:ArrayList<ResourceSupply>() {
|
||||
@ -57,4 +111,4 @@ class ResourceSupplyList:ArrayList<ResourceSupply>() {
|
||||
for (resourceSupply in resourceSupplyList)
|
||||
add(resourceSupply.resource, resourceSupply.amount, resourceSupply.origin)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -81,9 +81,10 @@ class BaseUnit : INamed, IConstruction, CivilopediaText() {
|
||||
return lines.joinToString("\n")
|
||||
}
|
||||
|
||||
override fun getCivilopediaTextHeader() = FormattedLine(name, icon="Unit/$name", header=2)
|
||||
override fun makeLink() = "Unit/$name"
|
||||
override fun replacesCivilopediaDescription() = true
|
||||
override fun hasCivilopediaTextLines() = true
|
||||
|
||||
override fun getCivilopediaTextLines(ruleset: Ruleset): List<FormattedLine> {
|
||||
val textList = ArrayList<FormattedLine>()
|
||||
|
||||
|
@ -204,7 +204,7 @@ class CivilopediaScreen(
|
||||
.map {
|
||||
CivilopediaEntry(
|
||||
it.name,
|
||||
it.getDescription(ruleset),
|
||||
"",
|
||||
CivilopediaCategories.Resource.getImage?.invoke(it.name, imageSize),
|
||||
(it as? ICivilopediaText).takeUnless { ct -> ct==null || ct.isCivilopediaTextEmpty() }
|
||||
)
|
||||
@ -213,7 +213,7 @@ class CivilopediaScreen(
|
||||
.map {
|
||||
CivilopediaEntry(
|
||||
it.name,
|
||||
it.getDescription(ruleset),
|
||||
"",
|
||||
CivilopediaCategories.Terrain.getImage?.invoke(it.name, imageSize),
|
||||
(it as? ICivilopediaText).takeUnless { ct -> ct==null || ct.isCivilopediaTextEmpty() }
|
||||
)
|
||||
@ -222,7 +222,7 @@ class CivilopediaScreen(
|
||||
.map {
|
||||
CivilopediaEntry(
|
||||
it.name,
|
||||
it.getDescription(ruleset, false),
|
||||
"",
|
||||
CivilopediaCategories.Improvement.getImage?.invoke(it.name, imageSize),
|
||||
(it as? ICivilopediaText).takeUnless { ct -> ct==null || ct.isCivilopediaTextEmpty() }
|
||||
)
|
||||
|
@ -367,7 +367,7 @@ object MarkupRenderer {
|
||||
}
|
||||
|
||||
/** Storage class for interface [ICivilopediaText] for use as base class */
|
||||
open class CivilopediaText : ICivilopediaText {
|
||||
abstract class CivilopediaText : ICivilopediaText {
|
||||
override var civilopediaText = listOf<FormattedLine>()
|
||||
}
|
||||
/** Storage class for instantiation of the simplest form containing only the lines collection */
|
||||
@ -377,6 +377,8 @@ class SimpleCivilopediaText(lines: List<FormattedLine>, val isComplete: Boolean
|
||||
}
|
||||
override fun hasCivilopediaTextLines() = true
|
||||
override fun replacesCivilopediaDescription() = isComplete
|
||||
override fun makeLink() = ""
|
||||
|
||||
constructor(strings: Sequence<String>, isComplete: Boolean = false) : this(
|
||||
strings.map { FormattedLine(it) }.toList(), isComplete)
|
||||
constructor(first: Sequence<FormattedLine>, strings: Sequence<String>, isComplete: Boolean = false) : this(
|
||||
@ -388,24 +390,23 @@ class SimpleCivilopediaText(lines: List<FormattedLine>, val isComplete: Boolean
|
||||
* ### Usage:
|
||||
* 1. Let [Ruleset] object implement this (e.g. by inheriting class [CivilopediaText] or adding var [civilopediaText] itself)
|
||||
* 2. Add `"civilopediaText": ["",…],` in the json for these objects
|
||||
* 3. Optionally override [getCivilopediaTextHeader] to supply a header line
|
||||
* 3. Optionally override [getCivilopediaTextHeader] to supply a different header line
|
||||
* 4. Optionally override [getCivilopediaTextLines] to supply automatic stuff like tech prerequisites, uniques, etc.
|
||||
* 4. Optionally override [assembleCivilopediaText] to handle assembly of the final set of lines yourself.
|
||||
*/
|
||||
interface ICivilopediaText {
|
||||
/** List of strings supporting simple [formatting rules][FormattedLine] that [CivilopediaScreen] can render.
|
||||
* May later be merged with automatic lines generated by the deriving class
|
||||
* May later be merged with automatic lines generated by the deriving class
|
||||
* through overridden [getCivilopediaTextHeader] and/or [getCivilopediaTextLines] methods.
|
||||
*
|
||||
*/
|
||||
var civilopediaText: List<FormattedLine>
|
||||
|
||||
/** Generate header line from object metadata.
|
||||
* Default implementation will pull [INamed.name] and render it in 150% normal font size.
|
||||
* Default implementation will take [INamed.name] and render it in 150% normal font size with an icon from [makeLink].
|
||||
* @return A [FormattedLine] that will be inserted on top
|
||||
*/
|
||||
fun getCivilopediaTextHeader(): FormattedLine? =
|
||||
if (this is INamed) FormattedLine(name, header = 2)
|
||||
if (this is INamed) FormattedLine(name, icon=makeLink(), header = 2)
|
||||
else null
|
||||
|
||||
/** Generate automatic lines from object metadata.
|
||||
@ -467,4 +468,7 @@ interface ICivilopediaText {
|
||||
}
|
||||
return SimpleCivilopediaText(newLines.toList(), isComplete = true)
|
||||
}
|
||||
|
||||
/** Create the correct string for a Civilopedia link */
|
||||
fun makeLink(): String
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user