Index: binaries/data/mods/public/gamesettings/attributes/PlayerName.js =================================================================== --- binaries/data/mods/public/gamesettings/attributes/PlayerName.js +++ binaries/data/mods/public/gamesettings/attributes/PlayerName.js @@ -84,20 +84,27 @@ picked = true; // Pick one of the available botnames for the chosen civ // Determine botnames - let chosenName = pickRandom(this.settings.civData[civ].AINames); + + const names = this.settings.civData[civ].AINames; + const remainingNames = names.filter(name => this.values.indexOf(name) === -1); + let chosenName = pickRandom(remainingNames); + + if (!chosenName) + { + warn (`Insufficient AINames available in ${civ} to avoid duplication.`); + chosenName = pickRandom(names); + } + if (!this.settings.isNetworked) chosenName = translate(chosenName); + + // Count how many AI-controlled players use the chosenName + const count = this.values.filter(name => name.startsWith(chosenName)).length; + if (count) + chosenName += ` (${count + 1})`; - // Count how many players use the chosenName - let usedName = this.values.filter(oName => oName && oName.indexOf(chosenName) !== -1).length; + this.values[i] = chosenName; - this.values[i] = - usedName ? - sprintf(this.RomanLabel, { - "playerName": chosenName, - "romanNumber": this.RomanNumbers[usedName + 1] - }) : - chosenName; } if (picked) this.trigger("values"); @@ -127,10 +134,3 @@ this.values[playerIndex] = this._getMapData(playerIndex) || g_Settings && g_Settings.PlayerDefaults[playerIndex + 1].Name || ""; } }; - - -GameSettings.prototype.Attributes.PlayerName.prototype.RomanLabel = - translate("%(playerName)s %(romanNumber)s"); - -GameSettings.prototype.Attributes.PlayerName.prototype.RomanNumbers = - [undefined, "I", "II", "III", "IV", "V", "VI", "VII", "VIII"]; Index: binaries/data/mods/public/gui/credits/texts/programming.json =================================================================== --- binaries/data/mods/public/gui/credits/texts/programming.json +++ binaries/data/mods/public/gui/credits/texts/programming.json @@ -290,6 +290,7 @@ { "nick": "tpearson", "name": "Timothy Pearson" }, { "nick": "user1", "name": "A. C." }, { "nick": "usey11" }, + { "nick": "Vantha"}, { "nick": "vincent_c", "name": "Vincent Cheng" }, { "nick": "vinhig", "name": "Vincent Higginson" }, { "nick": "vladislavbelov", "name": "Vladislav Belov" }, Index: binaries/data/mods/public/simulation/data/civs/gaul.json =================================================================== --- binaries/data/mods/public/simulation/data/civs/gaul.json +++ binaries/data/mods/public/simulation/data/civs/gaul.json @@ -64,6 +64,7 @@ "Divico", "Ambiorix", "Liscus", + "Orgetorix", "Valetiacus", "Viridovix" ], Index: binaries/data/mods/public/simulation/data/civs/iber.json =================================================================== --- binaries/data/mods/public/simulation/data/civs/iber.json +++ binaries/data/mods/public/simulation/data/civs/iber.json @@ -61,8 +61,12 @@ ], "AINames": [ "Audax", + "Calcus", "Ditalcus", "Minurus", + "Olyndicus", + "Orison", + "Tanginus", "Tautalus" ], "SkirmishReplacements": { Index: binaries/data/mods/public/simulation/data/civs/maur.json =================================================================== --- binaries/data/mods/public/simulation/data/civs/maur.json +++ binaries/data/mods/public/simulation/data/civs/maur.json @@ -55,12 +55,14 @@ ], "AINames": [ "Bindusara Maurya", + "Brihadratha Maurya", "Dasharatha Maurya", + "Devavarman Maurya", + "Kunala Maurya", "Samprati Maurya", "Shalishuka Maurya", - "Devavarman Maurya", "Shatadhanvan Maurya", - "Brihadratha Maurya" + "Tivala Maurya" ], "SkirmishReplacements": { "skirmish/units/default_infantry_ranged_b": "units/maur/infantry_archer_b",