Index: binaries/data/mods/public/globalscripts/Templates.js =================================================================== --- binaries/data/mods/public/globalscripts/Templates.js +++ binaries/data/mods/public/globalscripts/Templates.js @@ -182,6 +182,18 @@ effects.Damage[damageType] = getEntityValue(path + "/Damage/" + damageType); } + if (temp.Bonuses) + { + effects.Bonuses = {}; + for (let bonus in temp.Bonuses) + { + effects.Bonuses[bonus] = { + "classes": temp.Bonuses[bonus].Classes, + "multiplier": getEntityValue(path + "/Bonuses/" + bonus + "/Multiplier").toFixed(8) + }; + } + } + // TODO: status effects return effects; }; 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 @@ -855,6 +855,44 @@ }); } +function getCountersTooltip(template) +{ + warn(uneval(template)); + if (!template.attack) + return ""; + + let result = []; + for (let attackType in template.attack) + { + if (!template.attack[attackType].Bonuses) + continue; + + let bonusesBody = []; + for (let key in template.attack[attackType].Bonuses) + { + let bonus = template.attack[attackType].Bonuses[key]; + + if(bonus.multiplier == 1) + continue; + + bonusesBody.push(sprintf(translate("%(multiplier)s× vs %(classes)s"), { + "multiplier": bonus.multiplier, + "classes": translate(bonus.classes) + })); + } + + if(!bonusesBody.length) + continue; + + let string = headerFont(sprintf(translate("Counters %(attackType)s : "), { + "attackType": translate(attackType) + })); + + result.push(string + bodyFont(bonusesBody.join(", "))); + } + 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"}, {"name": "Fork AD"}, 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 @@ -13,6 +13,7 @@ getHealthTooltip, getHealerTooltip, getAttackTooltip, + getCountersTooltip, getSplashDamageTooltip, getArmorTooltip, getGarrisonTooltip, 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 @@ -306,6 +306,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/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 @@ -24,7 +24,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 @@ -34,7 +34,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 @@ -35,7 +35,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 @@ -34,7 +34,6 @@ Champion Spearman Melee Spear - Counters: 3x vs. Cavalry. special/formations/testudo Index: binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_spearman.xml =================================================================== --- binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_spearman.xml +++ binaries/data/mods/public/simulation/templates/template_unit_hero_cavalry_spearman.xml @@ -26,7 +26,6 @@ Melee Spear Hero Cavalry Spearman - Counters: 1.5x vs. Cavalry. 1.0 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 @@ -26,7 +26,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 @@ -26,7 +26,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 @@ -28,7 +28,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 @@ -27,7 +27,6 @@ Spear Spearman - Counters: 3x vs. Cavalry. 5 Index: binaries/data/mods/public/simulation/templates/units/kush_champion_infantry_apedemak.xml =================================================================== --- binaries/data/mods/public/simulation/templates/units/kush_champion_infantry_apedemak.xml +++ binaries/data/mods/public/simulation/templates/units/kush_champion_infantry_apedemak.xml @@ -22,7 +22,6 @@ kush Meroitic Temple Guard rs ‘Iprmk - Armor-piercing Axes: Counters 1.3x vs. Champions and Heroes. Axe ApedemakGuard units/kush_champion_apedemak.png