Index: ps/trunk/binaries/data/mods/public/gui/session/session.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/session/session.js +++ ps/trunk/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 @@ -1126,10 +1131,23 @@ 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: ps/trunk/binaries/data/mods/public/l10n/messages.json =================================================================== --- ps/trunk/binaries/data/mods/public/l10n/messages.json +++ ps/trunk/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: ps/trunk/binaries/data/mods/public/simulation/data/resources/food.json =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/data/resources/food.json +++ ps/trunk/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 fields.", "order": 1, "subtypes": { "fish": "Fish", Index: ps/trunk/binaries/data/mods/public/simulation/data/resources/metal.json =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/data/resources/metal.json +++ ps/trunk/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: ps/trunk/binaries/data/mods/public/simulation/data/resources/stone.json =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/data/resources/stone.json +++ ps/trunk/binaries/data/mods/public/simulation/data/resources/stone.json @@ -1,6 +1,7 @@ { "code": "stone", "name": "Stone", + "description": "Mine from rocks, stone quarries or ruins.", "order": 3, "subtypes": { "rock": "Rock", Index: ps/trunk/binaries/data/mods/public/simulation/data/resources/wood.json =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/data/resources/wood.json +++ ps/trunk/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",