Index: ps/trunk/binaries/data/mods/public/gui/common/tooltips.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/common/tooltips.js
+++ ps/trunk/binaries/data/mods/public/gui/common/tooltips.js
@@ -1011,15 +1011,22 @@
// Translation: Example: "Epibátēs Athēnaîos [font="sans-bold-16"](Athenian Marine)[/font]"
return sprintf(translate("%(specificName)s %(fontStart)s(%(genericName)s)%(fontEnd)s"), {
- "specificName":
- setStringTags(template.name.specific[0], g_TooltipTextFormats.nameSpecificBig) +
- setStringTags(template.name.specific.slice(1).toUpperCase(), g_TooltipTextFormats.nameSpecificSmall),
+ "specificName": getEntitySpecificNameFormatted(template),
"genericName": template.name.generic,
"fontStart": '[font="' + g_TooltipTextFormats.nameGeneric.font + '"]',
"fontEnd": '[/font]'
});
}
+function getEntitySpecificNameFormatted(template)
+{
+ if (!template.name.specific)
+ return setStringTags(template.name.generic, g_TooltipTextFormats.nameSpecificBig);
+
+ return setStringTags(template.name.specific[0], g_TooltipTextFormats.nameSpecificBig) +
+ setStringTags(template.name.specific.slice(1).toUpperCase(), g_TooltipTextFormats.nameSpecificSmall);
+}
+
function getVisibleEntityClassesFormatted(template)
{
if (!template.visibleIdentityClasses || !template.visibleIdentityClasses.length)
Index: ps/trunk/binaries/data/mods/public/gui/page_catafalque.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/page_catafalque.xml
+++ ps/trunk/binaries/data/mods/public/gui/page_catafalque.xml
@@ -0,0 +1,18 @@
+
+
+ common/modern/setup.xml
+ common/modern/styles.xml
+ common/modern/sprites.xml
+
+ common/sprites.xml
+ common/styles.xml
+
+ reference/common/sprites.xml
+ reference/common/styles.xml
+
+ reference/catafalque/sprites.xml
+ reference/catafalque/styles.xml
+ reference/catafalque/catafalque.xml
+
+ reference/common/setup.xml
+
Index: ps/trunk/binaries/data/mods/public/gui/pregame/MainMenuItems.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/pregame/MainMenuItems.js
+++ ps/trunk/binaries/data/mods/public/gui/pregame/MainMenuItems.js
@@ -45,6 +45,13 @@
}
},
{
+ "caption": translate("Catafalque Overview"),
+ "tooltip": translate("Compare the bonuses of catafalques featured in 0 A.D."),
+ "onPress": () => {
+ Engine.PushGuiPage("page_catafalque.xml");
+ }
+ },
+ {
"caption": translate("Map Overview"),
"tooltip": translate("View the different maps featured in 0 A.D."),
"onPress": () => {
Index: ps/trunk/binaries/data/mods/public/gui/reference/catafalque/CatafalquePage.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/catafalque/CatafalquePage.js
+++ ps/trunk/binaries/data/mods/public/gui/reference/catafalque/CatafalquePage.js
@@ -0,0 +1,41 @@
+class CatafalquePage extends ReferencePage
+{
+ constructor(data)
+ {
+ super();
+
+ this.Canvas = Engine.GetGUIObjectByName("canvas");
+ this.Emblems = [];
+ for (let emblem in this.Canvas.children)
+ this.Emblems.push(new Emblem(this, this.Emblems.length));
+
+ let civs = [];
+ for (let civCode in this.civData)
+ if (this.Emblems[civs.length].setCiv(civCode, this.civData[civCode]))
+ civs.push(civCode);
+
+ let canvasSize = this.Canvas.getComputedSize();
+ let canvasCenterX = (canvasSize.right - canvasSize.left) / 2;
+ let canvasCenterY = (canvasSize.bottom - canvasSize.top) / 2;
+ let radius = Math.min(canvasCenterX, canvasCenterY) / 5 * 4;
+ let angle = 2 * Math.PI / civs.length;
+
+ for (let i = 0; i < civs.length; ++i)
+ this.Emblems[i].setPosition(
+ canvasCenterX + radius * Math.sin(angle * i),
+ canvasCenterY + radius * -Math.cos(angle * i)
+ );
+
+ let closeButton = new CloseButton(this);
+ }
+
+ closePage()
+ {
+ Engine.PopGuiPage({ "page": "page_catafalque.xml" });
+ }
+
+}
+
+
+CatafalquePage.prototype.CloseButtonTooltip =
+ translate("%(hotkey)s: Close Catafalque Bonuses.");
Index: ps/trunk/binaries/data/mods/public/gui/reference/catafalque/Emblem.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/catafalque/Emblem.js
+++ ps/trunk/binaries/data/mods/public/gui/reference/catafalque/Emblem.js
@@ -0,0 +1,41 @@
+class Emblem
+{
+ constructor(page, emblemNum)
+ {
+ this.page = page;
+
+ this.Emblem = Engine.GetGUIObjectByName("emblem[" + emblemNum + "]");
+ this.EmblemImage = this.Emblem.children[0];
+ this.EmblemCaption = this.Emblem.children[1];
+
+ let size = this.Emblem.size;
+ this.cx = (size.right - size.left) / 2;
+ this.cy = (size.bottom - size.top) / 2;
+ }
+
+ setCiv(civCode, civData)
+ {
+ let template = this.page.TemplateParser.getEntity(this.CatafalqueTemplateMethod(civCode), civCode);
+ if (!template)
+ return false;
+
+ this.EmblemImage.sprite = "stretched:" + civData.Emblem;
+ this.EmblemImage.tooltip = getAurasTooltip(template);
+ this.EmblemCaption.caption = getEntitySpecificNameFormatted(template);
+ this.Emblem.hidden = false;
+ return true;
+ }
+
+ setPosition(x, y)
+ {
+ let size = this.Emblem.size;
+ size.left = x - this.cx;
+ size.right = x + this.cx;
+ size.top = y - this.cy;
+ size.bottom = y + this.cy;
+ this.Emblem.size = size;
+ }
+}
+
+Emblem.prototype.CatafalqueTemplateMethod =
+ civCode => "units/" + civCode + "/catafalque";
Index: ps/trunk/binaries/data/mods/public/gui/reference/catafalque/catafalque.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/catafalque/catafalque.js
+++ ps/trunk/binaries/data/mods/public/gui/reference/catafalque/catafalque.js
@@ -0,0 +1,4 @@
+function init(data = {})
+{
+ g_Page = new CatafalquePage(data);
+}
Index: ps/trunk/binaries/data/mods/public/gui/reference/catafalque/catafalque.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/catafalque/catafalque.xml
+++ ps/trunk/binaries/data/mods/public/gui/reference/catafalque/catafalque.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ps/trunk/binaries/data/mods/public/gui/reference/catafalque/sprites.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/catafalque/sprites.xml
+++ ps/trunk/binaries/data/mods/public/gui/reference/catafalque/sprites.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
Index: ps/trunk/binaries/data/mods/public/gui/reference/catafalque/styles.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/catafalque/styles.xml
+++ ps/trunk/binaries/data/mods/public/gui/reference/catafalque/styles.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+