Index: binaries/data/mods/public/globalscripts/Templates.js
===================================================================
--- binaries/data/mods/public/globalscripts/Templates.js
+++ binaries/data/mods/public/globalscripts/Templates.js
@@ -207,6 +207,18 @@
for (let damageType of damageTypes.GetTypes())
ret.attack[type].splash[damageType] = getAttackStat("Splash/" + damageType);
}
+
+ if (template.Attack[type].Bonuses)
+ {
+ ret.attack[type].bonuses = {};
+ for (let bonus in template.Attack[type].Bonuses)
+ {
+ ret.attack[type].bonuses[bonus] = {
+ "classes": template.Attack[type].Bonuses[bonus].Classes,
+ "multiplier": template.Attack[type].Bonuses[bonus].Multiplier
+ }
+ }
+ }
}
}
Index: binaries/data/mods/public/gui/common/tooltips.js
===================================================================
--- binaries/data/mods/public/gui/common/tooltips.js
+++ binaries/data/mods/public/gui/common/tooltips.js
@@ -823,6 +823,45 @@
});
}
+function getCountersTooltip(template)
+{
+
+ if (!template.attack)
+ return "";
+
+ let result;
+ for (let attackType in template.attack)
+ {
+ if (!template.attack[attackType].bonuses)
+ continue;
+
+ let string = headerFont(sprintf(translate("Counters %(attackType)s : "), {
+ "attackType": attackType
+ }));
+ result = result ? result + "\n" + string : string;
+ let firstBonus = true;
+ for (let key in template.attack[attackType].bonuses)
+ {
+ let bonus = template.attack[attackType].bonuses[key];
+ if (bonus && bonus.classes)
+ {
+ let separator = ", ";
+ if (firstBonus)
+ {
+ separator = "";
+ firstBonus = false;
+ }
+ result += bodyFont(sprintf(translate("%(separator)s%(multiplier)sx against %(classes)s"), {
+ "separator": separator,
+ "multiplier": bonus.multiplier,
+ "classes": bonus.classes
+ }));
+ }
+ }
+ }
+ return result;
+}
+
function showTemplateViewerOnRightClickTooltip()
{
// Translation: Appears in a tooltip to indicate that right-clicking the corresponding GUI element will open the Template Details GUI page.
Index: binaries/data/mods/public/gui/credits/texts/programming.json
===================================================================
--- binaries/data/mods/public/gui/credits/texts/programming.json
+++ binaries/data/mods/public/gui/credits/texts/programming.json
@@ -83,6 +83,7 @@
{"nick": "falsevision", "name": "Mahdi Khodadadifard"},
{"nick": "fatherbushido", "name": "Nicolas Tisserand"},
{"nick": "fcxSanya", "name": "Alexander Olkhovskiy"},
+ {"nick": "Feldfeld"},
{"nick": "FeXoR", "name": "Florian Finke"},
{"nick": "Fire Giant", "name": "Malte Schwarzkopf"},
{"nick": "fpre", "name": "Frederick Stallmeyer"},
Index: binaries/data/mods/public/gui/reference/common/draw.js
===================================================================
--- binaries/data/mods/public/gui/reference/common/draw.js
+++ binaries/data/mods/public/gui/reference/common/draw.js
@@ -10,6 +10,7 @@
* The functions listed are defined in gui/common/tooltips.js
*/
var g_StatsFunctions = [
+ getCountersTooltip,
getHealthTooltip,
getHealerTooltip,
getAttackTooltip,
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
@@ -284,6 +284,7 @@
};
Engine.GetGUIObjectByName("attackAndArmorStats").tooltip = [
+ getCountersTooltip,
getAttackTooltip,
getSplashDamageTooltip,
getHealerTooltip,
Index: binaries/data/mods/public/gui/session/selection_panels.js
===================================================================
--- binaries/data/mods/public/gui/session/selection_panels.js
+++ binaries/data/mods/public/gui/session/selection_panels.js
@@ -979,6 +979,7 @@
if (Engine.ConfigDB_GetValue("user", "showdetailedtooltips") === "true")
tooltips = tooltips.concat([
+ getCountersTooltip,
getHealthTooltip,
getAttackTooltip,
getSplashDamageTooltip,
Index: binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_cavalry_melee_spearman.xml
@@ -22,7 +22,6 @@
Spear
Cavalry Spearman
- Counters: 1.5x vs. Cavalry.
1.1
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_cavalry_spearman.xml
@@ -32,7 +32,6 @@
Melee Spear
Champion Cavalry Spearman
- Counters: 1.5x vs. Cavalry.
1.1
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_pikeman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_pikeman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_pikeman.xml
@@ -33,7 +33,6 @@
Melee Spear Pike
Champion Pikeman
- Counters: 3x vs. Cavalry.
special/formations/syntagma
special/formations/testudo
Index: binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_champion_infantry_spearman.xml
@@ -32,7 +32,6 @@
Champion Spearman
Melee Spear
- Counters: 3x vs. Cavalry.
special/formations/testudo
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_pikeman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_pikeman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_pikeman.xml
@@ -24,7 +24,6 @@
Melee Spear Pike
Hero Pikeman
- Counters: 3x vs. Cavalry.
special/formations/testudo
Index: binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_hero_infantry_spearman.xml
@@ -24,7 +24,6 @@
Melee Spear
Hero Spearman
- Counters: 3x vs. Cavalry.
special/formations/testudo
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_pikeman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_pikeman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_pikeman.xml
@@ -26,7 +26,6 @@
Spear Pike
Pikeman
- Counters: 3x vs. Cavalry.
special/formations/syntagma
Index: binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman.xml
+++ binaries/data/mods/public/simulation/templates/template_unit_infantry_melee_spearman.xml
@@ -25,7 +25,6 @@
Spear
Spearman
- Counters: 3x vs. Cavalry.
5