Index: binaries/data/mods/public/gui/common/gamedescription.js =================================================================== --- binaries/data/mods/public/gui/common/gamedescription.js +++ binaries/data/mods/public/gui/common/gamedescription.js @@ -16,7 +16,7 @@ /** - * Returns the nickname without the lobby rating. + * @Returns {object} containing the name and rating seperately. */ function splitRatingFromNick(playerName) { @@ -32,7 +32,7 @@ /** * Denotes which players are a lobby buddy of the current user. */ -var g_BuddySymbol = '•'; +var g_BuddySymbol = '★'; /** * Returns a formatted string describing the player assignments. @@ -116,14 +116,14 @@ playerDescriptions[teamIdx] = []; let playerNick = splitRatingFromNick(playerData.Name).nick; + + let playerRating = splitRatingFromNick(playerData.Name).rating; + playerRating ? playerRating = ' (' + coloredText(playerRating, PlayerColor.GetColorByRating(playerRating)) + ')' : playerRating = ""; + playerDescriptions[teamIdx].push(sprintf(playerDescription, { "playerName": - coloredText( - (g_Buddies.indexOf(playerNick) != -1 ? g_BuddySymbol + " " : "") + - escapeText(playerData.Name), - (typeof getPlayerColor == 'function' ? - (isAI ? "white" : getPlayerColor(playerNick)) : - rgbToGuiColor(playerData.Color || g_Settings.PlayerDefaults[playerIdx].Color))), + (g_Buddies.indexOf(playerNick) != -1 ? coloredText(g_BuddySymbol, "0 160 160") + " " : "") + + coloredText(escapeText(playerNick), PlayerColor.ColorPlayerNameByRole(Engine.LobbyGetPlayerRole(playerNick))) + playerRating, "civ": !playerData.Civ ? Index: binaries/data/mods/public/gui/lobby/LobbyPage/Chat/ChatMessages/ChatMessageFormat.js =================================================================== --- binaries/data/mods/public/gui/lobby/LobbyPage/Chat/ChatMessages/ChatMessageFormat.js +++ binaries/data/mods/public/gui/lobby/LobbyPage/Chat/ChatMessages/ChatMessageFormat.js @@ -22,15 +22,14 @@ if (g_Nickname != message.from) { // Highlight nicknames, assume they do not contain escapaped characters - text = text.replace(g_Nickname, PlayerColor.ColorPlayerName(g_Nickname)); + text = text.replace(g_Nickname, coloredText(g_Nickname, "0 160 160")); // Notify local player if (!message.historic && text.toLowerCase().indexOf(g_Nickname.toLowerCase()) != -1) soundNotification("nick"); } + let sender = coloredText((message.from), PlayerColor.ColorPlayerNameByRole(Engine.LobbyGetPlayerRole(message.from))); - let sender = PlayerColor.ColorPlayerName(message.from, undefined, Engine.LobbyGetPlayerRole(message.from)); - // Handle chat format commands let formattedMessage; let index = text.indexOf(" "); Index: binaries/data/mods/public/gui/lobby/LobbyPage/Chat/StatusMessages/StatusMessageFormat.js =================================================================== --- binaries/data/mods/public/gui/lobby/LobbyPage/Chat/StatusMessages/StatusMessageFormat.js +++ binaries/data/mods/public/gui/lobby/LobbyPage/Chat/StatusMessages/StatusMessageFormat.js @@ -22,7 +22,7 @@ StatusMessageFormat.prototype.MessageFormat = // Translation: Chat status message - translate("== %(message)s"); + translate(coloredText("== %(message)s", "gold")); StatusMessageFormat.prototype.MessageTags = { "font": "sans-bold-13" Index: binaries/data/mods/public/gui/lobby/LobbyPage/Game.js =================================================================== --- binaries/data/mods/public/gui/lobby/LobbyPage/Game.js +++ binaries/data/mods/public/gui/lobby/LobbyPage/Game.js @@ -317,7 +317,7 @@ */ Game.prototype.StateTags = { "init": { - "color": "0 219 0" + "color": "255 255 255" }, "waiting": { "color": "255 127 0" Index: binaries/data/mods/public/gui/lobby/LobbyPage/GameDetails.xml =================================================================== --- binaries/data/mods/public/gui/lobby/LobbyPage/GameDetails.xml +++ binaries/data/mods/public/gui/lobby/LobbyPage/GameDetails.xml @@ -18,7 +18,7 @@ - + Index: binaries/data/mods/public/gui/lobby/LobbyPage/GameList.js =================================================================== --- binaries/data/mods/public/gui/lobby/LobbyPage/GameList.js +++ binaries/data/mods/public/gui/lobby/LobbyPage/GameList.js @@ -26,19 +26,13 @@ this.gamesBox = Engine.GetGUIObjectByName("gamesBox"); this.gamesBox.onSelectionChange = this.onSelectionChange.bind(this); this.gamesBox.onSelectionColumnChange = this.onFilterChange.bind(this); - let ratingColumn = Engine.ConfigDB_GetValue("user", "lobby.columns.gamerating") == "true"; - this.gamesBox.hidden_mapType = ratingColumn; - this.gamesBox.hidden_gameRating = !ratingColumn; // Avoid repeated array construction - this.list_buddy = []; this.list_private = []; this.list_gameName = []; this.list_mapName = []; - this.list_mapSize = []; this.list_mapType = []; this.list_maxnbp = []; - this.list_gameRating = []; this.list = []; this.filters = []; @@ -136,29 +130,32 @@ let selectedGameIndex = -1; { + const ratingSetting = Engine.ConfigDB_GetValue("user", "lobby.columns.gamerating") == "true"; + this.gamesBox.heading_maxnbp = ratingSetting ? translate("Players (rating)") : translate("Players"); + Engine.ProfileStart("setupGameList"); let length = this.gameList.length; - this.list_buddy.length = length; this.list_private.length = length; this.list_gameName.length = length; this.list_mapName.length = length; - this.list_mapSize.length = length; this.list_mapType.length = length; this.list_maxnbp.length = length; - this.list_gameRating.length = length; this.list.length = length; this.gameList.forEach((game, i) => { + let displayData = game.displayData; + let mapName = displayData.mapName; - let displayData = game.displayData; - this.list_buddy[i] = displayData.buddy || ""; + // Highlight number in mapName + for (let i = 2; i < 8; i++) { + mapName = mapName.replace(i, coloredText(i, "gold")); + } + this.list_private[i] = displayData.private || ""; this.list_gameName[i] = displayData.gameName || ""; - this.list_mapName[i] = displayData.mapName || ""; - this.list_mapSize[i] = displayData.mapSize || ""; - this.list_mapType[i] = displayData.mapType || ""; - this.list_maxnbp[i] = displayData.playerCount || ""; - this.list_gameRating[i] = game.gameRating || ""; + this.list_mapName[i] = mapName || ""; + this.list_mapType[i] = displayData.mapType + ` (${coloredText(displayData.mapSize, "gold")})` || ""; + this.list_maxnbp[i] = ratingSetting ? `${displayData.playerCount} ${displayData.buddy} (${coloredText(game.gameRating, PlayerColor.GetColorByRating(game.gameRating))})` || "" : `${displayData.playerCount} ${displayData.buddy}`|| ""; this.list[i] = ""; if (selectedGame && game.stanza.hostJID == selectedGame.stanza.hostJID && game.stanza.name == selectedGame.stanza.name) selectedGameIndex = i; @@ -170,13 +167,10 @@ Engine.ProfileStart("copyToGUI"); let gamesBox = this.gamesBox; gamesBox.list_private = this.list_private; - gamesBox.list_buddy = this.list_buddy; gamesBox.list_gameName = this.list_gameName; gamesBox.list_mapName = this.list_mapName; - gamesBox.list_mapSize = this.list_mapSize; gamesBox.list_mapType = this.list_mapType; gamesBox.list_maxnbp = this.list_maxnbp; - gamesBox.list_gameRating = this.list_gameRating; // Change these last, otherwise crash gamesBox.list = this.list; Index: binaries/data/mods/public/gui/lobby/LobbyPage/GameList.xml =================================================================== --- binaries/data/mods/public/gui/lobby/LobbyPage/GameList.xml +++ binaries/data/mods/public/gui/lobby/LobbyPage/GameList.xml @@ -6,25 +6,19 @@ type="olist" sortable="true" font="sans-stroke-13" + size="0 0 100% 100%" > - - - + + Name - + Map Name - - Size + + Type (size) - - Type + + Players (Rating) - - Players - - - Rating - Index: binaries/data/mods/public/gui/lobby/LobbyPage/GameListFilters.xml =================================================================== --- binaries/data/mods/public/gui/lobby/LobbyPage/GameListFilters.xml +++ binaries/data/mods/public/gui/lobby/LobbyPage/GameListFilters.xml @@ -3,11 +3,16 @@