Index: binaries/data/mods/public/gui/session/session.js =================================================================== --- binaries/data/mods/public/gui/session/session.js +++ binaries/data/mods/public/gui/session/session.js @@ -12,8 +12,13 @@ /** * Colors to flash when pop limit reached. */ -const g_DefaultPopulationColor = "white"; -const g_PopulationAlertColor = "orange"; +var g_DefaultPopulationColor = "white"; +var g_PopulationAlertColor = "orange"; + +/** + * Seen in the tooltip of the top panel. + */ +var g_ResourceTitleFont = "sans-bold-16"; /** * A random file will be played. TODO: more variety @@ -1102,10 +1107,22 @@ let resNames = g_ResourceData.GetNames(); for (let r = 0; r < resCodes.length; ++r) { - if (!Engine.GetGUIObjectByName("resource["+r+"]")) + let resourceObj = Engine.GetGUIObjectByName("resource[" + r + "]"); + if (!resourceObj) break; + let res = resCodes[r]; - Engine.GetGUIObjectByName("resource["+r+"]").tooltip = getLocalizedResourceName(resNames[res], "firstWord") + getAllyStatTooltip(res); + + let tooltip = '[font="' + g_ResourceTitleFont + '"]' + + getLocalizedResourceName(resNames[res], "firstWord") + '[/font]'; + + let descr = g_ResourceData.GetResource(res).description; + if (descr) + tooltip += "\n" + translate(descr); + tooltip += getAllyStatTooltip(res); + + resourceObj.tooltip = tooltip; + Engine.GetGUIObjectByName("resource["+r+"]_count").caption = Math.floor(playerState.resourceCounts[res]); } Index: binaries/data/mods/public/l10n/messages.json =================================================================== --- binaries/data/mods/public/l10n/messages.json +++ binaries/data/mods/public/l10n/messages.json @@ -321,6 +321,17 @@ ], "options": { "keywords": [ + "description" + ] + } + }, + { + "extractor": "json", + "filemasks": [ + "simulation/data/resources/**.json" + ], + "options": { + "keywords": [ "name", "subtypes" ], Index: binaries/data/mods/public/simulation/data/resources/food.json =================================================================== --- binaries/data/mods/public/simulation/data/resources/food.json +++ binaries/data/mods/public/simulation/data/resources/food.json @@ -1,6 +1,7 @@ { "code": "food", "name": "Food", + "description": "Harvest from animals, berry bushes, fish, or farms.", "order": 1, "subtypes": { "fish": "Fish", Index: binaries/data/mods/public/simulation/data/resources/metal.json =================================================================== --- binaries/data/mods/public/simulation/data/resources/metal.json +++ binaries/data/mods/public/simulation/data/resources/metal.json @@ -1,6 +1,7 @@ { "code": "metal", "name": "Metal", + "description": "Mine from metal mines and quarries", "order": 4, "subtypes": { "ore": "Ore" Index: binaries/data/mods/public/simulation/data/resources/stone.json =================================================================== --- binaries/data/mods/public/simulation/data/resources/stone.json +++ binaries/data/mods/public/simulation/data/resources/stone.json @@ -1,6 +1,7 @@ { "code": "stone", "name": "Stone", + "description": "Mine from rocks or stone quarries", "order": 3, "subtypes": { "rock": "Rock", Index: binaries/data/mods/public/simulation/data/resources/wood.json =================================================================== --- binaries/data/mods/public/simulation/data/resources/wood.json +++ binaries/data/mods/public/simulation/data/resources/wood.json @@ -1,6 +1,7 @@ { "code": "wood", "name": "Wood", + "description": "Lumber from trees or groves", "order": 2, "subtypes": { "tree": "Tree",