Index: binaries/data/mods/public/globalscripts/Templates.js
===================================================================
--- binaries/data/mods/public/globalscripts/Templates.js
+++ binaries/data/mods/public/globalscripts/Templates.js
@@ -180,6 +180,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")
+ };
+ }
+ }
+
if (temp.ApplyStatus)
effects.ApplyStatus = temp.ApplyStatus;
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
@@ -321,20 +321,33 @@
if (template.buildingAI)
projectiles = template.buildingAI.arrowCount || template.buildingAI.defaultArrowCount;
- // Show the effects of status effects below
- let statusEffectsDetails = [];
+ // This is what every attack ought to have and show.
+ let properties = "%(attackLabel)s: %(effects)s, %(range)s, %(rate)s";
+ let data = {
+ "attackLabel": attackLabel,
+ "effects": attackEffectsDetails(attackTypeTemplate),
+ "range": rangeDetails(attackTypeTemplate),
+ "rate": attackRateDetails(attackTypeTemplate.repeatTime, projectiles)
+ };
+
+ if (attackTypeTemplate.Bonuses)
+ {
+ properties += " %(counters)s";
+ data.counters = getCountersTooltip(attackTypeTemplate);
+ }
+
+ // Show the effects of status effects below.
if (attackTypeTemplate.ApplyStatus)
+ {
+ let statusEffectsDetails = [];
for (let status in attackTypeTemplate.ApplyStatus)
statusEffectsDetails.push("\n " + getStatusEffectsTooltip(attackTypeTemplate.ApplyStatus[status]));
- statusEffectsDetails = statusEffectsDetails.join("");
+ statusEffectsDetails = statusEffectsDetails.join("");
+ properties += "%(statusEffects)s";
+ data.statusEffects = statusEffectsDetails;
+ }
- tooltips.push(sprintf(translate("%(attackLabel)s: %(effects)s, %(range)s, %(rate)s%(statusEffects)s"), {
- "attackLabel": attackLabel,
- "effects": attackEffectsDetails(attackTypeTemplate),
- "range": rangeDetails(attackTypeTemplate),
- "rate": attackRateDetails(attackTypeTemplate.repeatTime, projectiles),
- "statusEffects": statusEffectsDetails
- }));
+ tooltips.push(sprintf(translate(properties), data));
}
return tooltips.join("\n");
}
@@ -416,6 +429,28 @@
});
}
+function getCountersTooltip(template)
+{
+ if (!template.Bonuses)
+ return "";
+
+ let bonusesBody = [];
+ for (let key in template.Bonuses)
+ {
+ let bonus = template.Bonuses[key];
+
+ if (bonus.Multiplier == 1)
+ continue;
+
+ bonusesBody.push(sprintf(translate("%(multiplier)s× vs %(classes)s"), {
+ "multiplier": bonus.Multiplier,
+ "classes": translate(bonus.Classes)
+ }));
+ }
+
+ return translate("(" + bodyFont(bonusesBody.join(commaFont(translate(", ")))) + ")");
+}
+
function getGarrisonTooltip(template)
{
if (!template.garrisonHolder)
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
@@ -85,6 +85,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/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 @@
Spearman
Cavalry Spearman
- Counters: 1.5x vs. Cavalry.
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 Spearman
Champion Cavalry Spearman
- Counters: 1.5x vs. Cavalry.
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 Pikeman
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 @@
Melee Spearman
Champion Spearman
- 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 Spearman
Hero Cavalry Spearman
- Counters: 1.5x vs. Cavalry.
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 Pikeman
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 Spearman
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 @@
Pikeman
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 @@
Spearman
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
@@ -20,7 +20,6 @@
-Swordsman Axeman
Meroitic Temple Guard
rs ‘Iprmk
- Armor-piercing Axes: Counters 1.3x vs. Champions and Heroes.
units/kush_champion_apedemak.png