From a8ac5ccedeffadd99f8142bc019b00519da46e73 Mon Sep 17 00:00:00 2001 From: elexis Date: Sat, 29 Apr 2017 17:57:10 +0000 Subject: [PATCH] Add support for resource descriptions and display them in the tooltip of the resource counts shown in the top panel. Differential Revision: https://code.wildfiregames.com/D199 Proposed and tested by: wowgetoffyourcellphone This was SVN commit r19472. --- .../data/mods/public/gui/session/session.js | 26 ++++++++++++++++--- binaries/data/mods/public/l10n/messages.json | 11 ++++++++ .../simulation/data/resources/food.json | 1 + .../simulation/data/resources/metal.json | 1 + .../simulation/data/resources/stone.json | 1 + .../simulation/data/resources/wood.json | 1 + 6 files changed, 37 insertions(+), 4 deletions(-) diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index 9b7ad0012c..5089ee3384 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -12,8 +12,13 @@ const g_VictoryDurations = prepareForDropdown(g_Settings && g_Settings.VictoryDu /** * 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 @@ function updatePlayerDisplay() 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]); } diff --git a/binaries/data/mods/public/l10n/messages.json b/binaries/data/mods/public/l10n/messages.json index a9ba0384eb..85505b9fdc 100644 --- a/binaries/data/mods/public/l10n/messages.json +++ b/binaries/data/mods/public/l10n/messages.json @@ -314,6 +314,17 @@ ] } }, + { + "extractor": "json", + "filemasks": [ + "simulation/data/resources/**.json" + ], + "options": { + "keywords": [ + "description" + ] + } + }, { "extractor": "json", "filemasks": [ diff --git a/binaries/data/mods/public/simulation/data/resources/food.json b/binaries/data/mods/public/simulation/data/resources/food.json index 4199c32942..b682d1c862 100644 --- a/binaries/data/mods/public/simulation/data/resources/food.json +++ b/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", diff --git a/binaries/data/mods/public/simulation/data/resources/metal.json b/binaries/data/mods/public/simulation/data/resources/metal.json index 978a711f92..2476892a6e 100644 --- a/binaries/data/mods/public/simulation/data/resources/metal.json +++ b/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" diff --git a/binaries/data/mods/public/simulation/data/resources/stone.json b/binaries/data/mods/public/simulation/data/resources/stone.json index 425e3105e0..dfac9c3802 100644 --- a/binaries/data/mods/public/simulation/data/resources/stone.json +++ b/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", diff --git a/binaries/data/mods/public/simulation/data/resources/wood.json b/binaries/data/mods/public/simulation/data/resources/wood.json index 53b3799de1..6d26e9835d 100644 --- a/binaries/data/mods/public/simulation/data/resources/wood.json +++ b/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",