mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-13 09:18:43 +07:00
Merge branch 'master' of https://github.com/yairm210/Unciv
This commit is contained in:
@ -1348,7 +1348,8 @@
|
|||||||
"cost": 425,
|
"cost": 425,
|
||||||
"requiredTech": "Nuclear Fusion",
|
"requiredTech": "Nuclear Fusion",
|
||||||
"requiredResource": "Uranium",
|
"requiredResource": "Uranium",
|
||||||
"uniques": ["Can move after attacking", "No defensive terrain bonus"]
|
"uniques": ["Can move after attacking", "No defensive terrain bonus"],
|
||||||
|
"attackSound": "gdrAttack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Stealth Bomber",
|
"name": "Stealth Bomber",
|
||||||
|
BIN
android/assets/sounds/gdrAttack.mp3
Normal file
BIN
android/assets/sounds/gdrAttack.mp3
Normal file
Binary file not shown.
@ -215,7 +215,7 @@ fun String.tr(): String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// There might still be optimization potential here!
|
// There might still be optimization potential here!
|
||||||
if (contains("[")) { // Placeholders!
|
if (contains('[')) { // Placeholders!
|
||||||
/**
|
/**
|
||||||
* I'm SURE there's an easier way to do this but I can't think of it =\
|
* I'm SURE there's an easier way to do this but I can't think of it =\
|
||||||
* So what's all this then?
|
* So what's all this then?
|
||||||
@ -231,31 +231,36 @@ fun String.tr(): String {
|
|||||||
|
|
||||||
// Convert "work on [building] has completed in [city]" to "work on [] has completed in []"
|
// Convert "work on [building] has completed in [city]" to "work on [] has completed in []"
|
||||||
val translationStringWithSquareBracketsOnly = this.getPlaceholderText()
|
val translationStringWithSquareBracketsOnly = this.getPlaceholderText()
|
||||||
|
val language = UncivGame.Current.settings.language
|
||||||
// That is now the key into the translation HashMap!
|
// That is now the key into the translation HashMap!
|
||||||
val translationEntry = UncivGame.Current.translations
|
val translationEntry = UncivGame.Current.translations
|
||||||
.get(translationStringWithSquareBracketsOnly, UncivGame.Current.settings.language, activeMods)
|
.get(translationStringWithSquareBracketsOnly, language, activeMods)
|
||||||
|
|
||||||
if (translationEntry == null ||
|
var languageSpecificPlaceholder: String
|
||||||
!translationEntry.containsKey(UncivGame.Current.settings.language)) {
|
val originalEntry: String
|
||||||
|
if (translationEntry == null || !translationEntry.containsKey(language)) {
|
||||||
// Translation placeholder doesn't exist for this language, default to English
|
// Translation placeholder doesn't exist for this language, default to English
|
||||||
return this.replace(eitherSquareBraceRegex, "")
|
languageSpecificPlaceholder = this
|
||||||
|
originalEntry = this
|
||||||
|
} else {
|
||||||
|
languageSpecificPlaceholder = translationEntry[language]!!
|
||||||
|
originalEntry = translationEntry.entry
|
||||||
}
|
}
|
||||||
|
|
||||||
// Take the terms in the message, WITHOUT square brackets
|
// Take the terms in the message, WITHOUT square brackets
|
||||||
val termsInMessage = this.getPlaceholderParameters()
|
val termsInMessage = this.getPlaceholderParameters()
|
||||||
// Take the term from the placeholder, INCLUDING the square brackets
|
// Take the term from the placeholder, INCLUDING the square brackets
|
||||||
val termsInTranslationPlaceholder = squareBraceRegex.findAll(translationEntry.entry).map { it.value }.toList()
|
val termsInTranslationPlaceholder = squareBraceRegex.findAll(originalEntry).map { it.value }.toList()
|
||||||
if (termsInMessage.size != termsInTranslationPlaceholder.size)
|
if (termsInMessage.size != termsInTranslationPlaceholder.size)
|
||||||
throw Exception("Message $this has a different number of terms than the placeholder $translationEntry!")
|
throw Exception("Message $this has a different number of terms than the placeholder $translationEntry!")
|
||||||
|
|
||||||
var languageSpecificPlaceholder = translationEntry[UncivGame.Current.settings.language]!!
|
|
||||||
for (i in termsInMessage.indices) {
|
for (i in termsInMessage.indices) {
|
||||||
languageSpecificPlaceholder = languageSpecificPlaceholder.replace(termsInTranslationPlaceholder[i], termsInMessage[i].tr())
|
languageSpecificPlaceholder = languageSpecificPlaceholder.replace(termsInTranslationPlaceholder[i], termsInMessage[i].tr())
|
||||||
}
|
}
|
||||||
return languageSpecificPlaceholder // every component is already translated
|
return languageSpecificPlaceholder // every component is already translated
|
||||||
}
|
}
|
||||||
|
|
||||||
if (contains("{")) { // sentence
|
if (contains('{')) { // sentence
|
||||||
return curlyBraceRegex.replace(this) { it.groups[1]!!.value.tr() }
|
return curlyBraceRegex.replace(this) { it.groups[1]!!.value.tr() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -606,7 +606,7 @@ Sounds are from FreeSound.org and are either Creative Commons or Public Domain
|
|||||||
* [Tornado-Siren-II](https://soundbible.com/1937-Tornado-Siren-II.html) by Delilah as part of 'nuke' sound (CC Attribution 3.0 license)
|
* [Tornado-Siren-II](https://soundbible.com/1937-Tornado-Siren-II.html) by Delilah as part of 'nuke' sound (CC Attribution 3.0 license)
|
||||||
* [Explosion-Ultra-Bass](https://soundbible.com/1807-Explosion-Ultra-Bass.html) by Mark DiAngelo as part of 'nuke' sound (CC Attribution 3.0 license)
|
* [Explosion-Ultra-Bass](https://soundbible.com/1807-Explosion-Ultra-Bass.html) by Mark DiAngelo as part of 'nuke' sound (CC Attribution 3.0 license)
|
||||||
* [Short Choir](https://freesound.org/people/Breviceps/sounds/444491/) by Breviceps as 'choir' for free great person pick
|
* [Short Choir](https://freesound.org/people/Breviceps/sounds/444491/) by Breviceps as 'choir' for free great person pick
|
||||||
|
* [Death Robot! Robotic scream](https://freesound.org/people/vultraz168/sounds/334660/) by vultraz168 for Giant Death Robot Attack (CC0 1.0 Universal license)
|
||||||
|
|
||||||
# Music
|
# Music
|
||||||
The following music is from https://filmmusic.io
|
The following music is from https://filmmusic.io
|
||||||
|
Reference in New Issue
Block a user