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,33 @@
});
}
+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": translate(attackType)
+ }));
+ //result = result ? result + "\n" + string : string;
+ let bonusesBody = [];
+ for (let key in template.attack[attackType].bonuses)
+ {
+ let bonus = template.attack[attackType].bonuses[key];
+ bonusesBody.push(bodyFont(bonus.multiplier) + " " + unitFont(translate(bonus.classes)));
+ }
+ result.push(string + translate(bonusesBody.join(bodyFont(", "))));
+ }
+ return result.join("\n");
+}
+
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
@@ -14,6 +14,7 @@
getHealerTooltip,
getAttackTooltip,
getSplashDamageTooltip,
+ getCountersTooltip,
getArmorTooltip,
getGarrisonTooltip,
getProjectilesTooltip,
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
@@ -286,6 +286,7 @@
Engine.GetGUIObjectByName("attackAndArmorStats").tooltip = [
getAttackTooltip,
getSplashDamageTooltip,
+ getCountersTooltip,
getHealerTooltip,
getArmorTooltip,
getGatherTooltip,
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
@@ -982,6 +982,7 @@
getHealthTooltip,
getAttackTooltip,
getSplashDamageTooltip,
+ getCountersTooltip,
getHealerTooltip,
getArmorTooltip,
getGarrisonTooltip,
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
@@ -398,6 +398,19 @@
let timers = cmpAttack.GetTimers(type);
ret.attack[type].prepareTime = timers.prepare;
ret.attack[type].repeatTime = timers.repeat;
+
+ let bonuses = cmpAttack.GetBonusTemplate(type);
+ if (bonuses)
+ {
+ ret.attack[type].bonuses = {};
+ for (let bonus in bonuses)
+ {
+ ret.attack[type].bonuses[bonus] = {
+ "classes": bonuses[bonus].Classes,
+ "multiplier": bonuses[bonus].Multiplier
+ }
+ }
+ }
if (type != "Ranged")
{
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