From 978cb301f171060f94e6c21f7cb152c5c6280e42 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Thu, 24 Aug 2023 10:34:42 +0300 Subject: [PATCH] 4.7.17 --- .../jsons/translations/French.properties | 8 -------- .../jsons/translations/Polish.properties | 19 ------------------- .../jsons/translations/Spanish.properties | 8 -------- .../completionPercentages.properties | 10 +++++----- changelog.md | 14 +++++++------- .../com/unciv/logic/BackwardCompatibility.kt | 11 ----------- core/src/com/unciv/logic/GameInfo.kt | 3 --- .../diplomacy/DiplomacyFunctions.kt | 3 +-- .../managers/GreatPersonManager.kt | 2 -- .../com/unciv/logic/map/mapunit/MapUnit.kt | 9 +-------- .../unciv/models/ruleset/unique/UniqueType.kt | 4 ++-- .../metadata/android/en-US/changelogs/904.txt | 16 +++++++--------- 12 files changed, 23 insertions(+), 84 deletions(-) diff --git a/android/assets/jsons/translations/French.properties b/android/assets/jsons/translations/French.properties index ec1309a4c9..2a753eb8bc 100644 --- a/android/assets/jsons/translations/French.properties +++ b/android/assets/jsons/translations/French.properties @@ -546,9 +546,7 @@ Spread Resources = Répandre les ressources Create ancient ruins = Créer des ruines antiques Floodfill = Remplir [nation] starting location = [nation] position de départ - # Requires translation! Any Civ starting locations = Toute nation pos. de départ - # Requires translation! Any Civ = Toute nation Remove features = Supprimer les caractéristiques Remove improvement = Supprimer les aménagements @@ -771,7 +769,6 @@ Auto-assign city production = Production automatique des villes Auto-build roads = Construction automatique des routes Automated workers replace improvements = Les ouvriers automatisés remplacent les aménagements Automated units move on turn start = Les unités automatisées se déplacent au début du tour - # Requires translation! Automated units can upgrade = Les unités automatisées peuvent s'améliorer elles-mêmes Order trade offers by amount = Classer les offres d'échange par valeur Ask for confirmation when pressing next turn = Demander confirmation pour passer au tour suivant @@ -1175,16 +1172,12 @@ No space available to place [unit] near [city] = Aucun espace disponible pour pl Maintenance cost = Coût d'entretien Pick construction = Choisir une construction Pick improvement = Choisir un aménagement - # Requires translation! Tile owned by [civName] - [cityName] = Case appartenant à [civName] - [cityName] - # Requires translation! Tile owned by [civName] (You) = Case appartenant à [civName] (Vous) - # Requires translation! Unowned tile = Case sans propriétaire Provides [resource] = Fournit [resource] Provides [amount] [resource] = Fournit [amount] [resource] Replaces [improvement] = Remplace [improvement] - # Requires translation! Not in city work range = Pas à portée d'exploitation Pick now! = Choisir ! Remove [feature] first = Supprimer [feature] au préalable @@ -1423,7 +1416,6 @@ Destroy [civName] = Détruire [civName] Capture [cityName] = Conquérir [cityName] Destroy ? * [civName] = Détruire ? * [civName] Capture ? * [cityName] = Conquérir ? * [cityName] - # Requires translation! Majority religion of ? * [civName] = Religion majoritaire de ? * [civName] Our status = Notre situation Global status = Situation globale diff --git a/android/assets/jsons/translations/Polish.properties b/android/assets/jsons/translations/Polish.properties index d0604920e1..96b0a7b0ad 100644 --- a/android/assets/jsons/translations/Polish.properties +++ b/android/assets/jsons/translations/Polish.properties @@ -513,7 +513,6 @@ Starting location(s): [param] = Pozycja początkowa: [param] Continent: [param] ([amount] tiles) = Kontynent: [param] ([amount] pól) Resource abundance = Obfitość surowców Change map to fit selected ruleset? = Zmienić mapę aby pasowała do wybranego zestawu reguł? - # Requires translation! Area: [amount] tiles, [amount2]% water, [amount3]% impassable, [amount4] continents/islands = Obszar: [amount] pól, [amount2]% wody, [amount3]% nie do przekroczenia, [amount4] kontynenty/wyspy Do you want to leave without saving the recent changes? = Chcesz wyjść bez zapisania ostatnich zmian? Leave = Wyjdź @@ -547,9 +546,7 @@ Spread Resources = Surowce Create ancient ruins = Starożytne Ruiny Floodfill = Wypełnienie [nation] starting location = Lokacja startowa ([nation]) - # Requires translation! Any Civ starting locations = Lokacja startowa każdej cywilizacji - # Requires translation! Any Civ = Każda Cywilizacja Remove features = Usuń cechy terenu Remove improvement = Usuń ulepszenia @@ -772,7 +769,6 @@ Auto-assign city production = Automatycznie zarządzaj produkcją w miastach Auto-build roads = Automatycznie buduj drogi Automated workers replace improvements = Zautomatyzowani robotnicy zastępują ulepszenia Automated units move on turn start = Zautomatyzowane jednostki poruszają się na początku tury - # Requires translation! Automated units can upgrade = Zautomatyzowane jednostki mogą awansować Order trade offers by amount = Sortuj oferty handlowe według kwoty Ask for confirmation when pressing next turn = Potwierdzaj rozpoczęcie następnej tury @@ -1176,16 +1172,12 @@ No space available to place [unit] near [city] = Brak miejsca dla umieszczenie j Maintenance cost = Koszt utrzymania Pick construction = Wybierz produkcję Pick improvement = Wybierz ulepszenie - # Requires translation! Tile owned by [civName] - [cityName] = Pole cywilizacji [civName] - [cityName] - # Requires translation! Tile owned by [civName] (You) = Pole cywilizacji [civName] (Twojej) - # Requires translation! Unowned tile = Pole niczyje Provides [resource] = Zapewnia [resource] Provides [amount] [resource] = Zapewnia +[amount] [resource] Replaces [improvement] = Zastępuje → [improvement] - # Requires translation! Not in city work range = Nie w zasięgu miasta Pick now! = ← możesz wybrać! Remove [feature] first = Najpierw musisz usunąć [feature] @@ -1424,7 +1416,6 @@ Destroy [civName] = Zniszcz: [civName] Capture [cityName] = Zajmij: [cityName] Destroy ? * [civName] = Zniszcz ? * [civName] Capture ? * [cityName] = Zajmij ? * [cityName] - # Requires translation! Majority religion of ? * [civName] = Religia większościowa ? * [civName] Our status = Twój status Global status = Status globalny @@ -1965,7 +1956,6 @@ Double quantity of [resource] produced = Podwójna ilość surowca → [resource Enables Open Borders agreements = Pozwala zawierać umowy o otwartych granicach Enables Research agreements = Pozwala zawierać umowy naukowe Science gained from research agreements [relativeAmount]% = [relativeAmount]% więcej ⍾Nauki generowanej z Umów Naukowych - # Requires translation! Enables Defensive Pacts = Umożliwia Pakty Defensywne When declaring friendship, both parties gain a [relativeAmount]% boost to great person generation = Deklaracja Przyjaźni z dowolną cywilizacją zapewni obu stronom umowy [relativeAmount]% premii do generowania Wielkich Ludzi. Influence of all other civilizations with all city-states degrades [relativeAmount]% faster = Wpływy innych cywilizacji w Wolnych Miastach będą zmniejszały się co turę o [relativeAmount]% szybciej niż normalnie @@ -2274,7 +2264,6 @@ upon entering the [era] = po wejściu w erę [era] upon adopting [policy/belief] = po przyjęciu ustroju [policy/belief] upon declaring war with a major Civilization = po wypowiedzeniu wojny innej cywilizacji upon declaring friendship = po deklaracji przyjaźni - # Requires translation! upon declaring a defensive pact = po deklaracji paktu defensywnego upon entering a Golden Age = po wejściu w Złotą Erę upon conquering a city = po zdobyciu miasta @@ -2437,9 +2426,7 @@ Your warmongering ways are unacceptable to us. = Wasze prowokacje są dla nas ni You have captured our cities! = Zajęliście nasze miasta! You have declared friendship with our enemies! = Podpisaliście Deklarację Przyjaźni z naszymi wrogami! Your so-called 'friendship' is worth nothing. = Wasza, tak zwana „przyjaźń” jest nic nie warta. - # Requires translation! You have declared a defensive pact with our enemies! = Podpisaliście pakt defensywny z naszymi wrogami! - # Requires translation! Your so-called 'defensive pact' is worth nothing. = Wasz tak zwany „pakt defensywny" jest nic nie wart. You have publicly denounced us! = Publicznie nas potępiliście! You have denounced our allies = Potępiliście naszych sojuszników! @@ -2457,9 +2444,7 @@ Our mutual military struggle brings us closer together. = Walka przeciw wspólne We applaud your liberation of conquered cities! = Doceniamy, że wyzwalacie podbite miasta We have signed a public declaration of friendship = Podpisaliśmy publiczną Deklarację Przyjaźni You have declared friendship with our allies = Podpisaliście Deklarację Przyjaźni z naszymi sojusznikami - # Requires translation! We have signed a promise to protect each other. = Przyrzekliśmy nawzajem się bronić. - # Requires translation! You have declared a defensive pact with our allies = Podpisaliście Pakt Defensywny z naszymi sojusznikami You have denounced our enemies = Potępiliście naszych wrogów Our open borders have brought us closer together. = Otwarte granice zbliżyły nas do siebie @@ -6377,13 +6362,9 @@ Research Agreements = Umowy naukowe In research agreements, you and another civilization decide to jointly research technology.\nAt the end of the agreement, you will both receive a 'lump sum' of Science, which will go towards one of your unresearched technologies. = Umowy Naukowe pozwalają na badanie jakiejś technologii wspólnie z inną cywilizacją.\nPod koniec trwania Umowy Naukowej obie strony otrzymują jednorazową premię w postaci dużej ilości ⍾Punktów Nauki, które zostaną przeznaczone na jedną z nieodkrytych przez Ciebie technologii. The amount of ⍾Science you receive at the end is dependent on the ⍾Science generated by your cities and the other civilization's cities during the agreement - the more, the better! = Ilość ⍾Nauki jaką otrzymacie zależy od ⍾Nauki generowanej przez miasta obu stron Umowy podczas jej trwania – im więcej, tym lepiej! - # Requires translation! Defensive Pacts = Pakty Defensywne - # Requires translation! Defensive pacts allow you and another civ to protect one another from aggressors.\nOnce the defensive pact is signed, you will be drawn into their future defensive wars, just as they will be drawn into your future defensive wars. Declaring war on any Civ will remove all of your defensive pacts. You will have to re-sign them to use their effect. = Pakty defensywne pozwalają Tobie i innej Cywilizacji na wspólną obronę przed agresorami.\nGdy pakt defensywny jest podpisany twoja cywilizacja zostanie automatycznie włączona do potencjalnej wojny obronnej drugiej cywilizacji tak samo jak ona do twojej. Wypowiedzenie wojny dowolnej cywilizacji usunie wszystkie twoje pakty defensywne. Żeby móc ponownie korzystać z przywilejów wynikających z Paktu Defensywnego będziesz musiał go ponownie podpisać. - # Requires translation! Be cautious when signing defensive pacts because they can bring you into wars that you might not want to be in. = Bądź ostrożny przy podpisywaniu paktów defensywnych bo mogą one wpętać twoją cywilizację w wojny których możesz nie chcieć. - # Requires translation! The AI is very careful and will not accept defensive pacts with less than 80 attitude. = Sztuczna Inteligencja jest bardzo ostrożna i nie akceputje paktów defensywnych z mniej niż 80 punktami przyjaźni. Not all nations are contending with you for victory.\nCity-States are nations that can't win, can't be traded with, and instead confer certain bonuses to friendly civilizations. = Nie wszystkie cywilizacje walczą o zwycięstwo.\nW grze pojawiają się Wolne Miasta, które nie mogą wygrać, nie podbijają innych miast i nie można z nimi handlować ale zapewniają pewne premie zaprzyjaźnionym cywilizacjom. diff --git a/android/assets/jsons/translations/Spanish.properties b/android/assets/jsons/translations/Spanish.properties index da98716f24..d118ec6f3e 100644 --- a/android/assets/jsons/translations/Spanish.properties +++ b/android/assets/jsons/translations/Spanish.properties @@ -546,9 +546,7 @@ Spread Resources = Esparcir recursos Create ancient ruins = Crear Ruinas Antiguas Floodfill = Cubeta [nation] starting location = Posición inicial de [nation] - # Requires translation! Any Civ starting locations = Posición inicial de cualquier civ - # Requires translation! Any Civ = Cualquier Civ Remove features = Quitar caracteristicas Remove improvement = Quitar mejora @@ -771,7 +769,6 @@ Auto-assign city production = Construcción Automática en las Ciudades Auto-build roads = Construir carreteras autom. Automated workers replace improvements = Los Trabajadores aut. Reemplazan Mejoras Automated units move on turn start = Unidades Automatizadas se mueven al pricipio del Turno - # Requires translation! Automated units can upgrade = Unidades automatizadas se mejoran solas Order trade offers by amount = Ordenar ofertas comerciales por cantidad Ask for confirmation when pressing next turn = Confirmación al presionar "⏳Siguiente Turno" @@ -1175,16 +1172,12 @@ No space available to place [unit] near [city] = No hay espacio para colocar [un Maintenance cost = Coste de mantenimiento Pick construction = Elige construcción Pick improvement = Elige mejora - # Requires translation! Tile owned by [civName] - [cityName] = Casilla perteneciente a [civName] - [cityName] - # Requires translation! Tile owned by [civName] (You) = Casilla perteneciente a [civName] (Tú) - # Requires translation! Unowned tile = Casilla sin dueño Provides [resource] = Proporciona [resource] Provides [amount] [resource] = Proporciona [amount] [resource] Replaces [improvement] = Sustituye [improvement] - # Requires translation! Not in city work range = Fuera del área de trabajo Pick now! = ¡Elige! Remove [feature] first = Quita [feature] primero @@ -1423,7 +1416,6 @@ Destroy [civName] = Destruye [civName] Capture [cityName] = Captura [cityName] Destroy ? * [civName] = Destruya ? * [civName] Capture ? * [cityName] = Captura ? * [cityName] - # Requires translation! Majority religion of ? * [civName] = Religión mayoritaria de ? * [civName] Our status = Nuestro estado Global status = Estado global diff --git a/android/assets/jsons/translations/completionPercentages.properties b/android/assets/jsons/translations/completionPercentages.properties index ca72f84da6..52bc3ac3b5 100644 --- a/android/assets/jsons/translations/completionPercentages.properties +++ b/android/assets/jsons/translations/completionPercentages.properties @@ -1,5 +1,5 @@ Persian_(Pinglish-UN) = 28 -Italian = 99 +Italian = 100 Russian = 99 Belarusian = 2 Afrikaans = 7 @@ -8,16 +8,16 @@ Swedish = 85 Turkish = 68 Ukrainian = 98 Filipino = 93 -French = 99 +French = 100 Portuguese = 62 Indonesian = 99 Catalan = 99 Finnish = 36 -Spanish = 99 +Spanish = 100 Malay = 22 Brazilian_Portuguese = 99 Traditional_Chinese = 98 -Polish = 99 +Polish = 100 Lithuanian = 92 Romanian = 71 Simplified_Chinese = 99 @@ -29,5 +29,5 @@ English = 0 Vietnamese = 92 Czech = 82 Hungarian = 79 -Dutch = 99 +Dutch = 100 Greek = 15 diff --git a/changelog.md b/changelog.md index 8ed071e98c..4d50acabd6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,15 +1,15 @@ ## 4.7.17 -Free water units are always added to coastal cities +Free naval units are always added to coastal cities -Research agreements with gold offer - By tuvus +Can offer Research agreements with gold, if other civ can't cover the cost - By tuvus By SomeTroglodyte: -- A few more useful notification actions -- Centralize hasUnitMovedThisTurn and fix by moving TransferMovement implementation to getMaxMovement -- Bombard to the north -- Fix next-turn not offering Policy Picker for free Policies -- Fix intended Longpress-to-move on Android not working +- Can select tile north of city for bombarding +- Fixed 'Transfer Movement' stopping healing +- Fix next-turn not offering Policy Picker for free Policies +- Fix intended Longpress-to-move on Android not working +- A few more useful notification actions ## 4.7.16 diff --git a/core/src/com/unciv/logic/BackwardCompatibility.kt b/core/src/com/unciv/logic/BackwardCompatibility.kt index c27bf18f6a..9d66599456 100644 --- a/core/src/com/unciv/logic/BackwardCompatibility.kt +++ b/core/src/com/unciv/logic/BackwardCompatibility.kt @@ -192,15 +192,4 @@ object BackwardCompatibility { } historyStartTurn = turns } - - fun GameInfo.migrateGreatPersonPools() { - for (civ in civilizations) civ.greatPeople.run { - if (pointsForNextGreatPerson >= pointsForNextGreatPersonCounter[""]) { - pointsForNextGreatPersonCounter[""] = pointsForNextGreatPerson - } - else { - pointsForNextGreatPerson = pointsForNextGreatPersonCounter[""] - } - } - } } diff --git a/core/src/com/unciv/logic/GameInfo.kt b/core/src/com/unciv/logic/GameInfo.kt index 3e1ea99a1d..5fc0c12229 100644 --- a/core/src/com/unciv/logic/GameInfo.kt +++ b/core/src/com/unciv/logic/GameInfo.kt @@ -7,7 +7,6 @@ import com.unciv.UncivGame.Version import com.unciv.json.json import com.unciv.logic.BackwardCompatibility.convertFortify import com.unciv.logic.BackwardCompatibility.guaranteeUnitPromotions -import com.unciv.logic.BackwardCompatibility.migrateGreatPersonPools import com.unciv.logic.BackwardCompatibility.migrateToTileHistory import com.unciv.logic.BackwardCompatibility.removeMissingModReferences import com.unciv.logic.GameInfo.Companion.CURRENT_COMPATIBILITY_NUMBER @@ -648,8 +647,6 @@ class GameInfo : IsPartOfGameInfoSerialization, HasGameInfoSerializationVersion guaranteeUnitPromotions() migrateToTileHistory() - - migrateGreatPersonPools() } private fun updateCivilizationState() { diff --git a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyFunctions.kt b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyFunctions.kt index b079290cbf..52945e518a 100644 --- a/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyFunctions.kt +++ b/core/src/com/unciv/logic/civilization/diplomacy/DiplomacyFunctions.kt @@ -94,7 +94,7 @@ class DiplomacyFunctions(val civInfo: Civilization){ .none { civInfo.tech.canBeResearched(it.name) && !civInfo.tech.isResearched(it.name) }) return false return true } - + fun canSignResearchAgreementNoCostWith (otherCiv: Civilization): Boolean { val diplomacyManager = civInfo.getDiplomacyManager(otherCiv) return canSignResearchAgreement() && otherCiv.diplomacyFunctions.canSignResearchAgreement() @@ -117,7 +117,6 @@ class DiplomacyFunctions(val civInfo: Civilization){ } fun canSignDefensivePact(): Boolean { - return false // TEMPORARY - remove at 4.7.17! if (!civInfo.isMajorCiv()) return false if (!civInfo.hasUnique(UniqueType.EnablesDefensivePacts)) return false return true diff --git a/core/src/com/unciv/logic/civilization/managers/GreatPersonManager.kt b/core/src/com/unciv/logic/civilization/managers/GreatPersonManager.kt index f1791161f6..85d20be5d5 100644 --- a/core/src/com/unciv/logic/civilization/managers/GreatPersonManager.kt +++ b/core/src/com/unciv/logic/civilization/managers/GreatPersonManager.kt @@ -17,8 +17,6 @@ class GreatPersonManager : IsPartOfGameInfoSerialization { lateinit var civInfo: Civilization /** Base points, without speed modifier */ - @Deprecated("Values are now maintaned in pointsForNextGreatPersonCounter", ReplaceWith("pointsForNextGreatPersonCounter[\"\"]")) - var pointsForNextGreatPerson = 100 var pointsForNextGreatPersonCounter = Counter() // Initial values assigned in getPointsRequiredForGreatPerson as needed var pointsForNextGreatGeneral = 200 diff --git a/core/src/com/unciv/logic/map/mapunit/MapUnit.kt b/core/src/com/unciv/logic/map/mapunit/MapUnit.kt index 6a827a1d07..d0faa6157f 100644 --- a/core/src/com/unciv/logic/map/mapunit/MapUnit.kt +++ b/core/src/com/unciv/logic/map/mapunit/MapUnit.kt @@ -296,14 +296,7 @@ class MapUnit : IsPartOfGameInfoSerialization { val relevantUniques = getMatchingUniques(UniqueType.Sight, conditionalState, checkCivInfoUniques = true) + getTile().getMatchingUniques(UniqueType.Sight, conditionalState) - if (isEmbarked() && !hasUnique(UniqueType.NormalVisionWhenEmbarked, conditionalState, checkCivInfoUniques = true)) { - visibilityRange += relevantUniques - .filter { it.conditionals.any { - (it.type == UniqueType.ConditionalOurUnit || it.type == UniqueType.ConditionalOurUnitOnUnit) - && it.params[0] == Constants.embarked } } - .sumOf { it.params[0].toInt() } - } - else visibilityRange += relevantUniques.sumOf { it.params[0].toInt() } + visibilityRange += relevantUniques.sumOf { it.params[0].toInt() } if (visibilityRange < 1) visibilityRange = 1 diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index daf07d189b..2507e2e02e 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -398,8 +398,6 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: // Vision - @Deprecated("as of 4.6.4", ReplaceWith("[+1] Sight \" OR \"[+1] Sight ")) - NormalVisionWhenEmbarked("Normal vision when embarked", UniqueTarget.Unit, UniqueTarget.Global), DefenceBonusWhenEmbarked("Defense bonus when embarked", UniqueTarget.Unit, UniqueTarget.Global), NoSight("No Sight", UniqueTarget.Unit), CanSeeOverObstacles("Can see over obstacles", UniqueTarget.Unit), @@ -772,6 +770,8 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: ///////////////////////////////////////////// region 99 DEPRECATED AND REMOVED ///////////////////////////////////////////// + @Deprecated("as of 4.6.4", ReplaceWith("[+1] Sight \" OR \"[+1] Sight "), DeprecationLevel.ERROR) + NormalVisionWhenEmbarked("Normal vision when embarked", UniqueTarget.Unit, UniqueTarget.Global), @Deprecated("as of 4.5.3", ReplaceWith("Empire enters a [amount]-turn Golden Age "), DeprecationLevel.ERROR) StartGoldenAge("Can start an [amount]-turn golden age", UniqueTarget.Unit), @Deprecated("as of 4.5.2", ReplaceWith("Can instantly construct a [improvementName] improvement "), DeprecationLevel.ERROR) diff --git a/fastlane/metadata/android/en-US/changelogs/904.txt b/fastlane/metadata/android/en-US/changelogs/904.txt index 81b28cad09..9f1fefe2ba 100644 --- a/fastlane/metadata/android/en-US/changelogs/904.txt +++ b/fastlane/metadata/android/en-US/changelogs/904.txt @@ -1,12 +1,10 @@ +Free naval units are always added to coastal cities - -Free water units are always added to coastal cities - -Research agreements with gold offer - By tuvus +Can offer Research agreements with gold, if other civ can't cover the cost - By tuvus By SomeTroglodyte: -- A few more useful notification actions -- Centralize hasUnitMovedThisTurn and fix by moving TransferMovement implementation to getMaxMovement -- Bombard to the north -- Fix next-turn not offering Policy Picker for free Policies -- Fix intended Longpress-to-move on Android not working \ No newline at end of file +- Can select tile north of city for bombard! +- Fixed 'Transfer Movement' stopping healing +- Fix next-turn not offering Policy Picker for free Policies +- Fix intended Longpress-to-move on Android not working +- A few more useful notification actions \ No newline at end of file