Index: binaries/data/mods/public/gui/session/selection_details.js =================================================================== --- binaries/data/mods/public/gui/session/selection_details.js +++ binaries/data/mods/public/gui/session/selection_details.js @@ -80,9 +80,10 @@ // Rank if (entState.identity && entState.identity.rank && entState.identity.classes) { + const rankObj = GetTechnologyData(entState.identity.rankTechName, playerState.civ); Engine.GetGUIObjectByName("rankIcon").tooltip = sprintf(translate("%(rank)s Rank"), { "rank": translateWithContext("Rank", entState.identity.rank) - }); + }) + (rankObj ? "\n" + rankObj.tooltip : ""); Engine.GetGUIObjectByName("rankIcon").sprite = "stretched:session/icons/ranks/" + entState.identity.rank + ".png"; Engine.GetGUIObjectByName("rankIcon").hidden = false; } 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 @@ -234,7 +234,10 @@ if (!(technologyName in g_TechnologyData[civ])) { - let template = GetTechnologyDataHelper(TechnologyTemplates.Get(technologyName), civ, g_ResourceData); + const tech = TechnologyTemplates.Get(technologyName); + if (!tech) + return; + let template = GetTechnologyDataHelper(tech, civ, g_ResourceData); translateObjectKeys(template, ["specific", "generic", "description", "tooltip", "requirementsTooltip"]); g_TechnologyData[civ][technologyName] = deepfreeze(template); } Index: binaries/data/mods/public/simulation/components/GuiInterface.js =================================================================== --- binaries/data/mods/public/simulation/components/GuiInterface.js +++ binaries/data/mods/public/simulation/components/GuiInterface.js @@ -273,6 +273,7 @@ if (cmpIdentity) ret.identity = { "rank": cmpIdentity.GetRank(), + "rankTechName": cmpIdentity.GetRankTechName(), "classes": cmpIdentity.GetClassesList(), "selectionGroupName": cmpIdentity.GetSelectionGroupName(), "canDelete": !cmpIdentity.IsUndeletable(), Index: binaries/data/mods/public/simulation/components/Identity.js =================================================================== --- binaries/data/mods/public/simulation/components/Identity.js +++ binaries/data/mods/public/simulation/components/Identity.js @@ -149,6 +149,11 @@ return this.template.Rank || ""; }; +Identity.prototype.GetRankTechName = function() +{ + return this.template.Rank ? "unit_" + this.template.Rank.toLowerCase() : ""; +}; + Identity.prototype.GetClassesList = function() { return this.classesList;