Wrap damage types in a Damage element in XML templates to prepare for genericizing them.
Patch By: Freagarach Reviewed By: Wraitii Differential Revision: https://code.wildfiregames.com/D1950 This was SVN commit r22379.
This commit is contained in:
parent
61db02790c
commit
f4babd9b34
@ -187,10 +187,11 @@ function GetTemplateDataHelper(template, player, auraTemplates, resources, damag
|
||||
ret.attack[type] = {
|
||||
"minRange": getAttackStat("MinRange"),
|
||||
"maxRange": getAttackStat("MaxRange"),
|
||||
"elevationBonus": getAttackStat("ElevationBonus")
|
||||
"elevationBonus": getAttackStat("ElevationBonus"),
|
||||
"damage": {}
|
||||
};
|
||||
for (let damageType of damageTypes.GetTypes())
|
||||
ret.attack[type][damageType] = getAttackStat(damageType);
|
||||
ret.attack[type].damage[damageType] = getAttackStat("Damage/" + damageType);
|
||||
|
||||
ret.attack[type].elevationAdaptedRange = Math.sqrt(ret.attack[type].maxRange *
|
||||
(2 * ret.attack[type].elevationBonus + ret.attack[type].maxRange));
|
||||
@ -202,10 +203,11 @@ function GetTemplateDataHelper(template, player, auraTemplates, resources, damag
|
||||
ret.attack[type].splash = {
|
||||
// true if undefined
|
||||
"friendlyFire": template.Attack[type].Splash.FriendlyFire != "false",
|
||||
"shape": template.Attack[type].Splash.Shape
|
||||
"shape": template.Attack[type].Splash.Shape,
|
||||
"damage": {}
|
||||
};
|
||||
for (let damageType of damageTypes.GetTypes())
|
||||
ret.attack[type].splash[damageType] = getAttackStat("Splash/" + damageType);
|
||||
ret.attack[type].splash.damage[damageType] = getAttackStat("Splash/Damage/" + damageType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -213,10 +215,11 @@ function GetTemplateDataHelper(template, player, auraTemplates, resources, damag
|
||||
if (template.DeathDamage)
|
||||
{
|
||||
ret.deathDamage = {
|
||||
"friendlyFire": template.DeathDamage.FriendlyFire != "false"
|
||||
"friendlyFire": template.DeathDamage.FriendlyFire != "false",
|
||||
"damage": {}
|
||||
};
|
||||
for (let damageType of damageTypes.GetTypes())
|
||||
ret.deathDamage[damageType] = getEntityValue("DeathDamage/" + damageType);
|
||||
ret.deathDamage.damage[damageType] = getEntityValue("DeathDamage/Damage/" + damageType);
|
||||
}
|
||||
|
||||
if (template.Auras && auraTemplates)
|
||||
@ -226,10 +229,10 @@ function GetTemplateDataHelper(template, player, auraTemplates, resources, damag
|
||||
{
|
||||
let aura = auraTemplates[auraID];
|
||||
ret.auras[auraID] = {
|
||||
"name": aura.auraName,
|
||||
"description": aura.auraDescription || null,
|
||||
"radius": aura.radius || null
|
||||
};
|
||||
"name": aura.auraName,
|
||||
"description": aura.auraDescription || null,
|
||||
"radius": aura.radius || null
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -274,7 +274,7 @@ function getAttackTooltip(template)
|
||||
"details":
|
||||
type == "Capture" ?
|
||||
template.attack.Capture.value :
|
||||
damageTypesToText(template.attack[type]),
|
||||
damageTypesToText(template.attack[type].damage),
|
||||
"rate": rate
|
||||
}));
|
||||
continue;
|
||||
@ -284,10 +284,9 @@ function getAttackTooltip(template)
|
||||
let maxRange = Math.round(template.attack[type].maxRange);
|
||||
let realRange = template.attack[type].elevationAdaptedRange;
|
||||
let relativeRange = realRange ? Math.round(realRange - maxRange) : 0;
|
||||
|
||||
tooltips.push(sprintf(g_RangeTooltipString[relativeRange ? "relative" : "non-relative"][minRange ? "minRange" : "no-minRange"], {
|
||||
"attackLabel": attackLabel,
|
||||
"damageTypes": damageTypesToText(template.attack[type]),
|
||||
"damageTypes": damageTypesToText(template.attack[type].damage),
|
||||
"rangeLabel": headerFont(translate("Range:")),
|
||||
"minRange": minRange,
|
||||
"maxRange": maxRange,
|
||||
@ -317,7 +316,7 @@ function getSplashDamageTooltip(template)
|
||||
|
||||
let splashDamageTooltip = sprintf(translate("%(label)s: %(value)s"), {
|
||||
"label": headerFont(g_SplashDamageTypes[splash.shape]),
|
||||
"value": damageTypesToText(splash)
|
||||
"value": damageTypesToText(splash.damage)
|
||||
});
|
||||
|
||||
if (g_AlwaysDisplayFriendlyFire || splash.friendlyFire)
|
||||
|
@ -87,6 +87,7 @@
|
||||
{"nick": "Fire Giant", "name": "Malte Schwarzkopf"},
|
||||
{"name": "Fork AD"},
|
||||
{"nick": "fpre", "name": "Frederick Stallmeyer"},
|
||||
{"nick": "Freagarach"},
|
||||
{"nick": "freenity", "name": "Anton Galitch"},
|
||||
{"nick": "Gallaecio", "name": "Adrián Chaves"},
|
||||
{"nick": "gbish (aka Iny)", "name": "Grant Bishop"},
|
||||
|
@ -233,9 +233,9 @@ m.Template = m.Class({
|
||||
return undefined;
|
||||
|
||||
return {
|
||||
"Hack": +(this.get("Attack/" + type + "/Hack") || 0),
|
||||
"Pierce": +(this.get("Attack/" + type + "/Pierce") || 0),
|
||||
"Crush": +(this.get("Attack/" + type + "/Crush") || 0)
|
||||
"Hack": +(this.get("Attack/" + type + "/Damage/Hack") || 0),
|
||||
"Pierce": +(this.get("Attack/" + type + "/Damage/Pierce") || 0),
|
||||
"Crush": +(this.get("Attack/" + type + "/Damage/Crush") || 0)
|
||||
};
|
||||
},
|
||||
|
||||
|
@ -122,7 +122,9 @@ Attack.prototype.Schema =
|
||||
"<optional>" +
|
||||
"<element name='Melee'>" +
|
||||
"<interleave>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"<element name='Damage'>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"</element>" +
|
||||
"<element name='MaxRange' a:help='Maximum attack range (in metres)'><ref name='nonNegativeDecimal'/></element>" +
|
||||
"<element name='PrepareTime' a:help='Time from the start of the attack command until the attack actually occurs (in milliseconds). This value relative to RepeatTime should closely match the \"event\" point in the actor's attack animation'>" +
|
||||
"<data type='nonNegativeInteger'/>" +
|
||||
@ -139,7 +141,9 @@ Attack.prototype.Schema =
|
||||
"<optional>" +
|
||||
"<element name='Ranged'>" +
|
||||
"<interleave>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"<element name='Damage'>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"</element>" +
|
||||
"<element name='MaxRange' a:help='Maximum attack range (in metres)'><ref name='nonNegativeDecimal'/></element>" +
|
||||
"<element name='MinRange' a:help='Minimum attack range (in metres)'><ref name='nonNegativeDecimal'/></element>" +
|
||||
"<optional>"+
|
||||
@ -167,7 +171,9 @@ Attack.prototype.Schema =
|
||||
"<element name='Shape' a:help='Shape of the splash damage, can be circular or linear'><text/></element>" +
|
||||
"<element name='Range' a:help='Size of the area affected by the splash'><ref name='nonNegativeDecimal'/></element>" +
|
||||
"<element name='FriendlyFire' a:help='Whether the splash damage can hurt non enemy units'><data type='boolean'/></element>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"<element name='Damage'>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"</element>" +
|
||||
Attack.prototype.bonusesSchema +
|
||||
"</interleave>" +
|
||||
"</element>" +
|
||||
@ -227,7 +233,9 @@ Attack.prototype.Schema =
|
||||
"<optional>" +
|
||||
"<element name='Slaughter' a:help='A special attack to kill domestic animals'>" +
|
||||
"<interleave>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"<element name='Damage'>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"</element>" +
|
||||
"<element name='MaxRange'><ref name='nonNegativeDecimal'/></element>" + // TODO: how do these work?
|
||||
Attack.prototype.bonusesSchema +
|
||||
Attack.prototype.preferredClassesSchema +
|
||||
@ -448,10 +456,10 @@ Attack.prototype.GetAttackStrengths = function(type)
|
||||
}
|
||||
|
||||
let applyMods = damageType =>
|
||||
ApplyValueModificationsToEntity("Attack/" + type + splash + "/" + damageType, +(template[damageType] || 0), this.entity);
|
||||
ApplyValueModificationsToEntity("Attack/" + type + splash + "/Damage/" + damageType, +(template.Damage[damageType] || 0), this.entity);
|
||||
|
||||
if (type == "Capture")
|
||||
return { "value": applyMods("Value") };
|
||||
return { "value": ApplyValueModificationsToEntity("Attack/Capture/Value", +(template.Value || 0), this.entity) };
|
||||
|
||||
let ret = {};
|
||||
for (let damageType of DamageTypes.GetTypes())
|
||||
@ -465,7 +473,8 @@ Attack.prototype.GetSplashDamage = function(type)
|
||||
if (!this.template[type].Splash)
|
||||
return false;
|
||||
|
||||
let splash = this.GetAttackStrengths(type + ".Splash");
|
||||
let splash = {};
|
||||
splash.damage = this.GetAttackStrengths(type + ".Splash");
|
||||
splash.friendlyFire = this.template[type].Splash.FriendlyFire != "false";
|
||||
splash.shape = this.template[type].Splash.Shape;
|
||||
return splash;
|
||||
|
@ -31,7 +31,9 @@ DeathDamage.prototype.Schema =
|
||||
"<element name='Shape' a:help='Shape of the splash damage, can be circular'><text/></element>" +
|
||||
"<element name='Range' a:help='Size of the area affected by the splash'><ref name='nonNegativeDecimal'/></element>" +
|
||||
"<element name='FriendlyFire' a:help='Whether the splash damage can hurt non enemy units'><data type='boolean'/></element>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"<element name='Damage'>" +
|
||||
DamageTypes.BuildSchema("damage strength") +
|
||||
"</element>" +
|
||||
DeathDamage.prototype.bonusesSchema;
|
||||
|
||||
DeathDamage.prototype.Init = function()
|
||||
@ -44,7 +46,7 @@ DeathDamage.prototype.GetDeathDamageStrengths = function()
|
||||
{
|
||||
// Work out the damage values with technology effects
|
||||
let applyMods = damageType =>
|
||||
ApplyValueModificationsToEntity("DeathDamage/" + damageType, +(this.template[damageType] || 0), this.entity);
|
||||
ApplyValueModificationsToEntity("DeathDamage/Damage/" + damageType, +(this.template.Damage[damageType] || 0), this.entity);
|
||||
|
||||
let ret = {};
|
||||
for (let damageType of DamageTypes.GetTypes())
|
||||
|
@ -388,7 +388,12 @@ GuiInterface.prototype.GetEntityState = function(player, ent)
|
||||
|
||||
for (let type of types)
|
||||
{
|
||||
ret.attack[type] = cmpAttack.GetAttackStrengths(type);
|
||||
ret.attack[type] = {};
|
||||
if (type == "Capture")
|
||||
ret.attack[type] = cmpAttack.GetAttackStrengths(type);
|
||||
else
|
||||
ret.attack[type].damage = cmpAttack.GetAttackStrengths(type);
|
||||
|
||||
ret.attack[type].splash = cmpAttack.GetSplashDamage(type);
|
||||
|
||||
let range = cmpAttack.GetRange(type);
|
||||
|
@ -36,7 +36,7 @@ TechnologyManager.prototype.Init = function()
|
||||
// ]}
|
||||
this.modifications = {};
|
||||
this.modificationCache = {}; // Caches the values after technologies have been applied
|
||||
// e.g. { "Attack/Melee/Hack" : {5: {"origValue": 8, "newValue": 10}, 7: {"origValue": 9, "newValue": 12}, ...}, ...}
|
||||
// e.g. { "Attack/Melee/Damage/Hack" : {5: {"origValue": 8, "newValue": 10}, 7: {"origValue": 9, "newValue": 12}, ...}, ...}
|
||||
// where 5 and 7 are entity id's
|
||||
|
||||
this.classCounts = {}; // stores the number of entities of each Class
|
||||
|
@ -43,10 +43,12 @@ function attackComponentTest(defenderClass, isEnemy, test_function)
|
||||
});
|
||||
|
||||
let cmpAttack = ConstructComponent(attacker, "Attack", {
|
||||
"Melee" : {
|
||||
"Hack": 11,
|
||||
"Pierce": 5,
|
||||
"Crush": 0,
|
||||
"Melee": {
|
||||
"Damage": {
|
||||
"Hack": 11,
|
||||
"Pierce": 5,
|
||||
"Crush": 0
|
||||
},
|
||||
"MinRange": 3,
|
||||
"MaxRange": 5,
|
||||
"PreferredClasses": {
|
||||
@ -63,10 +65,12 @@ function attackComponentTest(defenderClass, isEnemy, test_function)
|
||||
}
|
||||
}
|
||||
},
|
||||
"Ranged" : {
|
||||
"Hack": 0,
|
||||
"Pierce": 10,
|
||||
"Crush": 0,
|
||||
"Ranged": {
|
||||
"Damage": {
|
||||
"Hack": 0,
|
||||
"Pierce": 10,
|
||||
"Crush": 0
|
||||
},
|
||||
"MinRange": 10,
|
||||
"MaxRange": 80,
|
||||
"PrepareTime": 300,
|
||||
@ -82,13 +86,15 @@ function attackComponentTest(defenderClass, isEnemy, test_function)
|
||||
"RestrictedClasses": {
|
||||
"_string": "Elephant"
|
||||
},
|
||||
"Splash" : {
|
||||
"Splash": {
|
||||
"Shape": "Circular",
|
||||
"Range": 10,
|
||||
"FriendlyFire": "false",
|
||||
"Hack": 0.0,
|
||||
"Pierce": 15.0,
|
||||
"Crush": 35.0,
|
||||
"Damage": {
|
||||
"Hack": 0.0,
|
||||
"Pierce": 15.0,
|
||||
"Crush": 35.0
|
||||
},
|
||||
"Bonuses": {
|
||||
"BonusCav": {
|
||||
"Classes": "Cavalry",
|
||||
@ -97,7 +103,7 @@ function attackComponentTest(defenderClass, isEnemy, test_function)
|
||||
}
|
||||
}
|
||||
},
|
||||
"Capture" : {
|
||||
"Capture": {
|
||||
"Value": 8,
|
||||
"MaxRange": 10,
|
||||
},
|
||||
@ -128,7 +134,7 @@ function attackComponentTest(defenderClass, isEnemy, test_function)
|
||||
}
|
||||
|
||||
// Validate template getter functions
|
||||
attackComponentTest(undefined, true ,(attacker, cmpAttack, defender) => {
|
||||
attackComponentTest(undefined, true, (attacker, cmpAttack, defender) => {
|
||||
|
||||
TS_ASSERT_UNEVAL_EQUALS(cmpAttack.GetAttackTypes(), ["Melee", "Ranged", "Capture"]);
|
||||
TS_ASSERT_UNEVAL_EQUALS(cmpAttack.GetAttackTypes([]), ["Melee", "Ranged", "Capture"]);
|
||||
@ -151,7 +157,7 @@ attackComponentTest(undefined, true ,(attacker, cmpAttack, defender) => {
|
||||
"Pierce": 10,
|
||||
"Crush": 0
|
||||
});
|
||||
|
||||
|
||||
TS_ASSERT_UNEVAL_EQUALS(cmpAttack.GetAttackStrengths("Ranged.Splash"), {
|
||||
"Hack": 0.0,
|
||||
"Pierce": 15.0,
|
||||
@ -169,9 +175,11 @@ attackComponentTest(undefined, true ,(attacker, cmpAttack, defender) => {
|
||||
});
|
||||
|
||||
TS_ASSERT_UNEVAL_EQUALS(cmpAttack.GetSplashDamage("Ranged"), {
|
||||
"Hack": 0,
|
||||
"Pierce": 15,
|
||||
"Crush": 35,
|
||||
"damage": {
|
||||
"Hack": 0,
|
||||
"Pierce": 15,
|
||||
"Crush": 35,
|
||||
},
|
||||
"friendlyFire": false,
|
||||
"shape": "Circular"
|
||||
});
|
||||
|
@ -12,7 +12,7 @@ let player = 1;
|
||||
|
||||
ApplyValueModificationsToEntity = function(value, stat, ent)
|
||||
{
|
||||
if (value == "DeathDamage/Pierce" && ent == deadEnt)
|
||||
if (value == "DeathDamage/Damage/Pierce" && ent == deadEnt)
|
||||
return stat + 200;
|
||||
return stat;
|
||||
};
|
||||
@ -21,9 +21,11 @@ let template = {
|
||||
"Shape": "Circular",
|
||||
"Range": 10.7,
|
||||
"FriendlyFire": "false",
|
||||
"Hack": 0.0,
|
||||
"Pierce": 15.0,
|
||||
"Crush": 35.0
|
||||
"Damage": {
|
||||
"Hack": 0.0,
|
||||
"Pierce": 15.0,
|
||||
"Crush": 35.0
|
||||
}
|
||||
};
|
||||
|
||||
let modifiedDamage = {
|
||||
|
@ -3,12 +3,12 @@
|
||||
"radius": 50,
|
||||
"affects": ["Soldier"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.20 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.20 }
|
||||
],
|
||||
"auraName": "Religious Fervor",
|
||||
"auraDescription": "+20% attack damage for soldiers.",
|
||||
|
@ -3,12 +3,12 @@
|
||||
"radius": 60,
|
||||
"affects": ["Soldier"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.1 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.1 }
|
||||
],
|
||||
"auraName": "Exhortative Presence",
|
||||
"auraDescription": "Soldiers near Large Pyramids +10% attack.",
|
||||
|
@ -3,12 +3,12 @@
|
||||
"affects": ["Soldier"],
|
||||
"modifications": [
|
||||
{ "value": "Promotion/RequiredXp", "multiply": 0.75 },
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.05 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.05 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.05 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.05 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.05 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.05 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.05 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.05 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.05 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.05 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.05 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.05 }
|
||||
|
||||
],
|
||||
"auraName": "Ambush Slaughter",
|
||||
|
@ -4,12 +4,12 @@
|
||||
"affects": ["Champion"],
|
||||
"modifications": [
|
||||
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Capture/Value", "add": 2 }
|
||||
],
|
||||
"auraName": "Champion Army",
|
||||
|
@ -4,12 +4,12 @@
|
||||
"affects": ["Mercenary"],
|
||||
"affectedPlayers": ["Enemy"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 0.8 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 0.8 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 0.8 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 0.8 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 0.8 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 0.8 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 0.8 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 0.8 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 0.8 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 0.8 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 0.8 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 0.8 }
|
||||
],
|
||||
"auraName": "Subduer of Mercenaries",
|
||||
"auraDescription": "-20% attack for enemy mercenaries."
|
||||
|
@ -4,12 +4,12 @@
|
||||
"affects": ["Soldier", "Siege"],
|
||||
"affectedPlayers": ["Ally"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Capture/Value", "add": 1 }
|
||||
],
|
||||
"auraName": "Tactician",
|
||||
|
@ -3,9 +3,9 @@
|
||||
"radius": 60,
|
||||
"affects": ["Melee Cavalry"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.3 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.3 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.3 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.3 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.3 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.3 }
|
||||
],
|
||||
"auraName": "Cavalry Commander",
|
||||
"auraDescription": "+30% attack for cavalry melee soldiers.",
|
||||
|
@ -3,12 +3,12 @@
|
||||
"radius": 60,
|
||||
"affects": ["Soldier", "Siege"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.20 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.20 },
|
||||
{ "value": "Attack/Capture/Value", "add": 1 }
|
||||
],
|
||||
"auraName": "Celtic Warlord",
|
||||
|
@ -3,12 +3,12 @@
|
||||
"radius": 60,
|
||||
"affects": ["Champion"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Capture/Value", "add": 2 }
|
||||
],
|
||||
"auraName": "Warrior Queen",
|
||||
|
@ -7,12 +7,12 @@
|
||||
{ "value": "Looter/Resource/wood", "multiply": 1.5 },
|
||||
{ "value": "Looter/Resource/stone", "multiply": 1.5 },
|
||||
{ "value": "Looter/Resource/metal", "multiply": 1.5 },
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.1 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.1 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.1 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.1 }
|
||||
],
|
||||
"auraName": "Savior of Kush",
|
||||
"auraDescription": "Own units +10% attack.\nNastasen acquired lots of bounty from the defeated invaders. Gain +50% loot from killing enemy units."
|
||||
|
@ -3,9 +3,9 @@
|
||||
"radius": 60,
|
||||
"affects": ["Infantry Pike"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Capture/Value", "multiply": 1.2 }
|
||||
],
|
||||
"auraName": "Taxiarchès",
|
||||
|
@ -6,12 +6,12 @@
|
||||
{ "value": "Armour/Pierce", "add": 1 },
|
||||
{ "value": "Armour/Hack", "add": 1 },
|
||||
{ "value": "Armour/Crush", "add": 1 },
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/MaxRange", "multiply": 1.1 },
|
||||
{ "value": "Vision/Range", "multiply": 1.1 }
|
||||
],
|
||||
|
@ -3,12 +3,12 @@
|
||||
"radius": 60,
|
||||
"affects": ["Champion"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Capture/Value", "add": 2 }
|
||||
],
|
||||
"auraName": "Rise of Macedon",
|
||||
|
@ -2,12 +2,12 @@
|
||||
"type": "global",
|
||||
"affects": ["Soldier"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Health/Max", "multiply": 0.85 }
|
||||
],
|
||||
"auraName": "Pyrrhic Victory",
|
||||
|
@ -3,12 +3,12 @@
|
||||
"radius": 45,
|
||||
"affects": ["Cavalry"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Capture/Value", "add": 1 }
|
||||
],
|
||||
"auraName": "Forefront Leader",
|
||||
|
@ -3,12 +3,12 @@
|
||||
"radius": 60,
|
||||
"affects": ["Cavalry"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.15 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.15 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.15 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.15 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.15 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.15 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.15 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.15 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.15 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.15 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.15 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.15 }
|
||||
],
|
||||
"auraName": "Sword of Rome",
|
||||
"auraDescription": "+15% attack for cavalry.",
|
||||
|
@ -4,12 +4,12 @@
|
||||
"affects": ["Infantry"],
|
||||
"affectedPlayers": ["Enemy"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 0.9 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 0.9 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 0.9 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 0.9 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 0.9 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 0.9 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 0.9 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 0.9 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 0.9 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 0.9 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 0.9 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 0.9 }
|
||||
],
|
||||
"auraName": "Sword of Rome",
|
||||
"auraDescription": "-10% attack for enemy infantry."
|
||||
|
@ -3,12 +3,12 @@
|
||||
"radius": 30,
|
||||
"affects": ["Soldier", "Siege"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2 },
|
||||
{ "value": "Attack/Ranged/Damage/Crush", "multiply": 1.2 },
|
||||
{ "value": "Attack/Capture/Value", "add": 2 }
|
||||
],
|
||||
"auraName": "Triumph",
|
||||
|
@ -4,8 +4,8 @@
|
||||
"affects": ["Elephant Champion"],
|
||||
"modifications": [
|
||||
{ "value": "UnitMotion/WalkSpeed", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 }
|
||||
],
|
||||
"auraName": "Zooiarchos",
|
||||
"auraDescription": "+20% attack and movement speed for war elephants.",
|
||||
|
@ -3,7 +3,7 @@
|
||||
"radius": 60,
|
||||
"affects": ["Javelin Infantry Citizen"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Ranged/Pierce", "multiply": 1.25 },
|
||||
{ "value": "Attack/Ranged/Damage/Pierce", "multiply": 1.25 },
|
||||
{ "value": "Armour/Pierce", "add": 1 },
|
||||
{ "value": "Armour/Hack", "add": 1 },
|
||||
{ "value": "Armour/Crush", "add": 1 }
|
||||
|
@ -3,9 +3,9 @@
|
||||
"radius": 30,
|
||||
"affects": ["Spear"],
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.25 },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.25 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.25 },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.25 },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.25 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.25 },
|
||||
{ "value": "Attack/Capture/Value", "add": 1 }
|
||||
],
|
||||
"auraName": "Last Stand",
|
||||
|
@ -14,8 +14,8 @@
|
||||
{ "value": "Attack/Ranged/MaxRange", "add": 4, "affects": "Ranged" },
|
||||
{ "value": "Vision/Range", "add": 4, "affects": "Ranged" },
|
||||
{ "value": "Attack/Ranged/Spread", "multiply": 0.9, "affects": "Ranged" },
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2, "affects": "Melee" },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2, "affects": "Melee" },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2, "affects": "Melee" },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2, "affects": "Melee" },
|
||||
{ "value": "Vision/Range", "add": 3, "affects": "Healer" },
|
||||
{ "value": "Heal/Range", "add": 3, "affects": "Healer" },
|
||||
{ "value": "Heal/HP", "add": 5, "affects": "Healer" },
|
||||
|
@ -16,7 +16,7 @@
|
||||
"icon": "spear_cavalry.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "Equip your melee cavalry with better weapons. Melee Cavalry +2 Hack Attack.",
|
||||
"modifications": [{"value": "Attack/Melee/Hack", "add": 2.0}],
|
||||
"modifications": [{"value": "Attack/Melee/Damage/Hack", "add": 2.0}],
|
||||
"affects": ["Cavalry Melee"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -15,9 +15,9 @@
|
||||
"icon": "horse_trainer.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "+20% melee cavalry attack.",
|
||||
"modifications": [{"value": "Attack/Melee/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Melee/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Cavalry Melee"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -16,9 +16,9 @@
|
||||
"icon": "spear_cavalry.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "Equip your melee cavalry with better weapons. +20% melee cavalry attack.",
|
||||
"modifications": [{"value": "Attack/Melee/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Melee/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Cavalry Melee"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -15,9 +15,9 @@
|
||||
"icon": "horse_rider.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "+20% ranged cavalry attack.",
|
||||
"modifications": [{"value": "Attack/Ranged/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Ranged/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Cavalry Ranged"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -16,9 +16,9 @@
|
||||
"icon": "horse_rider.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "Equip your ranged cavalry with better weapons. +20% ranged cavalry attack.",
|
||||
"modifications": [{"value": "Attack/Ranged/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Ranged/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Cavalry Ranged"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -16,8 +16,8 @@
|
||||
"researchTime": 40,
|
||||
"tooltip": "Guard units have uncommon courage and valor in battle. Champions +2 attack.",
|
||||
"modifications": [
|
||||
{"value": "Attack/Melee/Hack", "add": 2.0, "affects": "Champion Melee"},
|
||||
{"value": "Attack/Ranged/Pierce", "add": 2.0, "affects": "Champion Ranged"}
|
||||
{"value": "Attack/Melee/Damage/Hack", "add": 2.0, "affects": "Champion Melee"},
|
||||
{"value": "Attack/Ranged/Damage/Pierce", "add": 2.0, "affects": "Champion Ranged"}
|
||||
],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -15,9 +15,9 @@
|
||||
"icon": "sword.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "+20% melee infantry attack.",
|
||||
"modifications": [{"value": "Attack/Melee/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Melee/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Infantry Melee"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -8,9 +8,9 @@
|
||||
"icon": "sword_cross.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "+20% melee infantry attack.",
|
||||
"modifications": [{"value": "Attack/Melee/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Melee/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Melee/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Infantry Melee"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -14,9 +14,9 @@
|
||||
"icon": "arrow.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "+20% ranged infantry attack.",
|
||||
"modifications": [{"value": "Attack/Ranged/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Ranged/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Infantry Ranged"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -15,9 +15,9 @@
|
||||
"icon": "javelin_thong.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "+20% ranged infantry attack.",
|
||||
"modifications": [{"value": "Attack/Ranged/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Ranged/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Infantry Ranged"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -15,12 +15,12 @@
|
||||
"researchTime": 40,
|
||||
"tooltip": "Inspire your troops with higher pay. All land and naval army +25% attack.",
|
||||
"modifications": [
|
||||
{"value": "Attack/Melee/Hack", "multiply": 1.25},
|
||||
{"value": "Attack/Melee/Pierce", "multiply": 1.25},
|
||||
{"value": "Attack/Melee/Crush", "multiply": 1.25},
|
||||
{"value": "Attack/Ranged/Hack", "multiply": 1.25},
|
||||
{"value": "Attack/Ranged/Pierce", "multiply": 1.25},
|
||||
{"value": "Attack/Ranged/Crush", "multiply": 1.25}
|
||||
{"value": "Attack/Melee/Damage/Hack", "multiply": 1.25},
|
||||
{"value": "Attack/Melee/Damage/Pierce", "multiply": 1.25},
|
||||
{"value": "Attack/Melee/Damage/Crush", "multiply": 1.25},
|
||||
{"value": "Attack/Ranged/Damage/Hack", "multiply": 1.25},
|
||||
{"value": "Attack/Ranged/Damage/Pierce", "multiply": 1.25},
|
||||
{"value": "Attack/Ranged/Damage/Crush", "multiply": 1.25}
|
||||
],
|
||||
"affects": ["Melee", "Ranged"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
|
@ -12,8 +12,8 @@
|
||||
"researchTime": 60,
|
||||
"tooltip": "+20% Hack attack for all swordsmen and macemen.",
|
||||
"modifications": [
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Crush", "multiply": 1.2 }
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2 },
|
||||
{ "value": "Attack/Melee/Damage/Crush", "multiply": 1.2 }
|
||||
],
|
||||
"affects": ["Sword", "Maceman"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
|
@ -14,8 +14,8 @@
|
||||
{ "value": "Attack/Ranged/MaxRange", "add": 4, "affects": "Ranged" },
|
||||
{ "value": "Vision/Range", "add": 4, "affects": "Ranged" },
|
||||
{ "value": "Attack/Ranged/Spread", "multiply": 0.9, "affects": "Ranged" },
|
||||
{ "value": "Attack/Melee/Hack", "multiply": 1.2, "affects": "Melee" },
|
||||
{ "value": "Attack/Melee/Pierce", "multiply": 1.2, "affects": "Melee" },
|
||||
{ "value": "Attack/Melee/Damage/Hack", "multiply": 1.2, "affects": "Melee" },
|
||||
{ "value": "Attack/Melee/Damage/Pierce", "multiply": 1.2, "affects": "Melee" },
|
||||
{ "value": "Vision/Range", "add": 3, "affects": "Healer" },
|
||||
{ "value": "Heal/Range", "add": 3, "affects": "Healer" },
|
||||
{ "value": "Heal/HP", "add": 5, "affects": "Healer" },
|
||||
|
@ -12,7 +12,7 @@
|
||||
"icon": "spear.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "Spearmen +2 hack attack.",
|
||||
"modifications": [{"value": "Attack/Melee/Hack", "add": 2.0}],
|
||||
"modifications": [{"value": "Attack/Melee/Damage/Hack", "add": 2.0}],
|
||||
"affects": ["Infantry Spear"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
"icon": "sword.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "Melee infantry +1 hack attack.",
|
||||
"modifications": [{"value": "Attack/Melee/Hack", "add": 1.0}],
|
||||
"modifications": [{"value": "Attack/Melee/Damage/Hack", "add": 1.0}],
|
||||
"affects": ["Infantry Melee"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
"icon": "spear.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "All Spear units +2 hack attack.",
|
||||
"modifications": [{"value": "Attack/Melee/Hack", "add": 2.0}],
|
||||
"modifications": [{"value": "Attack/Melee/Damage/Hack", "add": 2.0}],
|
||||
"affects": ["Spear"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -14,9 +14,9 @@
|
||||
"icon": "arrow.png",
|
||||
"researchTime": 40,
|
||||
"tooltip": "+20% ranged infantry attack.",
|
||||
"modifications": [{"value": "Attack/Ranged/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Crush", "multiply": 1.2}],
|
||||
"modifications": [{"value": "Attack/Ranged/Damage/Hack", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Pierce", "multiply": 1.2},
|
||||
{"value": "Attack/Ranged/Damage/Crush", "multiply": 1.2}],
|
||||
"affects": ["Infantry Ranged"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
"researchTime": 30,
|
||||
"tooltip": "All Javelin units +2 pierce attack and +4 range.",
|
||||
"modifications": [
|
||||
{"value": "Attack/Ranged/Pierce", "add": 2.0},
|
||||
{"value": "Attack/Ranged/Damage/Pierce", "add": 2.0},
|
||||
{"value": "Attack/Ranged/MaxRange", "add": 4.0},
|
||||
{"value": "Vision/Range", "add": 4.0}],
|
||||
"affects": ["Javelin"],
|
||||
|
@ -8,8 +8,8 @@
|
||||
"researchTime": 40,
|
||||
"tooltip": "All siege weapons +25% Crush damage.",
|
||||
"modifications": [
|
||||
{"value": "Attack/Melee/Crush", "multiply": 1.25},
|
||||
{"value": "Attack/Ranged/Crush", "multiply": 1.25}],
|
||||
{"value": "Attack/Melee/Damage/Crush", "multiply": 1.25},
|
||||
{"value": "Attack/Ranged/Damage/Crush", "multiply": 1.25}],
|
||||
"affects": ["Siege"],
|
||||
"soundComplete": "interface/alarm/alarm_upgradearmory.xml"
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
DamageTypes.prototype.BuildSchema = function(helptext = "")
|
||||
{
|
||||
return this.GetTypes().reduce((schema, type) =>
|
||||
return "<interleave>" + this.GetTypes().reduce((schema, type) =>
|
||||
schema + "<element name='"+type+"' a:help='"+type+" "+helptext+"'><ref name='nonNegativeDecimal'/></element>",
|
||||
"");
|
||||
"") + "</interleave>";
|
||||
};
|
||||
|
||||
DamageTypes = new DamageTypes();
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_structure_civic_civil_centre">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>25.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>25.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>50.0</MaxRange>
|
||||
<MinRange>1.0</MinRange>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_structure_civic_civil_centre">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>25.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>25.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>50.0</MaxRange>
|
||||
<MinRange>1.0</MinRange>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>20.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>20.0</Crush>
|
||||
<Damage>
|
||||
<Hack>20.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>20.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>6.0</MaxRange>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Melee>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>12.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>12.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>1.0</MaxRange>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
</Melee>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_wild_aggressive">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>30.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>30.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>8.0</MaxRange>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Melee>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_wild_violent">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>20.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>20.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4.0</MaxRange>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Melee>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>20.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>20.0</Crush>
|
||||
<Damage>
|
||||
<Hack>20.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>20.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>6.0</MaxRange>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Melee>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_wild_violent">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>30.0</Hack>
|
||||
<Pierce>20.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>30.0</Hack>
|
||||
<Pierce>20.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4.0</MaxRange>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
</Melee>
|
||||
|
@ -7,9 +7,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>15.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>15.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4.0</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -12,9 +12,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>25.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>25.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>60.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
|
@ -17,9 +17,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>12.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>12.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>72.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_structure_defensive">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
<Delay>0</Delay>
|
||||
|
@ -12,7 +12,9 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Pierce>16</Pierce>
|
||||
<Damage>
|
||||
<Pierce>16</Pierce>
|
||||
</Damage>
|
||||
<MaxRange>55</MaxRange>
|
||||
<MinRange>13</MinRange>
|
||||
<ElevationBonus>0</ElevationBonus>
|
||||
|
@ -7,7 +7,9 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Pierce>9</Pierce>
|
||||
<Damage>
|
||||
<Pierce>9</Pierce>
|
||||
</Damage>
|
||||
<MaxRange>70</MaxRange>
|
||||
<MinRange>10</MinRange>
|
||||
<ElevationBonus>9</ElevationBonus>
|
||||
|
@ -2,7 +2,9 @@
|
||||
<Entity parent="template_structure_defensive_tower">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Pierce>12</Pierce>
|
||||
<Damage>
|
||||
<Pierce>12</Pierce>
|
||||
</Damage>
|
||||
<MaxRange>76</MaxRange>
|
||||
<MinRange>10</MinRange>
|
||||
<ElevationBonus>15</ElevationBonus>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_structure_defensive_wall">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>8.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>8.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>72.0</MaxRange>
|
||||
<MinRange>12.0</MinRange>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
|
@ -7,9 +7,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>16.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>16.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>72.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
|
@ -13,9 +13,11 @@
|
||||
<RestrictedClasses datatype="tokens">Field Palisade SiegeWall StoneWall</RestrictedClasses>
|
||||
</Capture>
|
||||
<Slaughter>
|
||||
<Hack>100.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>100.0</Hack>
|
||||
<Pierce>0.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>2</MaxRange>
|
||||
</Slaughter>
|
||||
</Attack>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>13</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>13</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>3.5</MaxRange>
|
||||
<PrepareTime>375</PrepareTime>
|
||||
<RepeatTime>750</RepeatTime>
|
||||
|
@ -2,8 +2,10 @@
|
||||
<Entity parent="template_unit_cavalry_melee">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>6.0</Hack>
|
||||
<Pierce>5.0</Pierce>
|
||||
<Damage>
|
||||
<Hack>6.0</Hack>
|
||||
<Pierce>5.0</Pierce>
|
||||
</Damage>
|
||||
<MaxRange>4.5</MaxRange>
|
||||
<Bonuses>
|
||||
<BonusCavMelee>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>6.5</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>6.5</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<PreferredClasses datatype="tokens">Siege</PreferredClasses>
|
||||
</Melee>
|
||||
</Attack>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_cavalry">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>9.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>9.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>16.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>1000</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_cavalry_ranged">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>7.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>7.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>72.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_cavalry_ranged">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>18.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>18.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>28.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>750</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_champion_cavalry">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>14.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>14.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>76.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_champion_cavalry">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>36.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>36.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>32.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>750</PrepareTime>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>12.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>12.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4.5</MaxRange>
|
||||
<Bonuses>
|
||||
<BonusCavMelee>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>13.0</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>13.0</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>3.5</MaxRange>
|
||||
<PrepareTime>375</PrepareTime>
|
||||
<RepeatTime>750</RepeatTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_champion_elephant">
|
||||
<Attack replace="">
|
||||
<Melee>
|
||||
<Hack>20</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>150.0</Crush>
|
||||
<Damage>
|
||||
<Hack>20</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>150.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>8.0</MaxRange>
|
||||
<PrepareTime>750</PrepareTime>
|
||||
<RepeatTime>1500</RepeatTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_champion_infantry">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>6.5</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>6.5</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>76</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>300</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_champion_infantry">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>26.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>26.0</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>28.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>10.5</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>10.5</Crush>
|
||||
</Damage>
|
||||
<MaxRange>3.5</MaxRange>
|
||||
<PrepareTime>375</PrepareTime>
|
||||
<RepeatTime>750</RepeatTime>
|
||||
|
@ -7,9 +7,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>2.0</Hack>
|
||||
<Pierce>6.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>2.0</Hack>
|
||||
<Pierce>6.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>7</MaxRange>
|
||||
<PrepareTime>1000</PrepareTime>
|
||||
<RepeatTime>2000</RepeatTime>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>6.0</Hack>
|
||||
<Pierce>5.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>6.0</Hack>
|
||||
<Pierce>5.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4.5</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>900</RepeatTime>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>11.0</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>11.0</Hack>
|
||||
<Pierce>0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>3.5</MaxRange>
|
||||
<PrepareTime>375</PrepareTime>
|
||||
<RepeatTime>750</RepeatTime>
|
||||
|
@ -7,9 +7,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>7</Hack>
|
||||
<Pierce>2</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>7</Hack>
|
||||
<Pierce>2</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>3</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_hunt">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>1</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>1</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Footprint>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>5</Pierce>
|
||||
<Crush>2</Crush>
|
||||
<Damage>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>5</Pierce>
|
||||
<Crush>2</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -7,9 +7,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>25.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>20.0</Crush>
|
||||
<Damage>
|
||||
<Hack>25.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>20.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>6.0</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_hunt">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>1</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>1</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_wild">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>1</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>1</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -2,8 +2,10 @@
|
||||
<Entity parent="template_unit_fauna_wild_aggressive_wolf">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>7</Hack>
|
||||
<Pierce>2</Pierce>
|
||||
<Damage>
|
||||
<Hack>7</Hack>
|
||||
<Pierce>2</Pierce>
|
||||
</Damage>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
</Melee>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_wild_aggressive">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>10.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>10.0</Hack>
|
||||
<Pierce>10.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4.0</MaxRange>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
</Melee>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_wild_defensive">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>2.5</Hack>
|
||||
<Pierce>5.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>2.5</Hack>
|
||||
<Pierce>5.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>3.0</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_fauna_wild">
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>1</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>1</Hack>
|
||||
<Pierce>1</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4</MaxRange>
|
||||
<PrepareTime>500</PrepareTime>
|
||||
<RepeatTime>1000</RepeatTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_hero_cavalry">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>35</Pierce>
|
||||
<Crush>0</Crush>
|
||||
<Damage>
|
||||
<Hack>0</Hack>
|
||||
<Pierce>35</Pierce>
|
||||
<Crush>0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>80.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>1200</PrepareTime>
|
||||
|
@ -2,9 +2,11 @@
|
||||
<Entity parent="template_unit_hero_cavalry">
|
||||
<Attack>
|
||||
<Ranged>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>60.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>0.0</Hack>
|
||||
<Pierce>60.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>36.0</MaxRange>
|
||||
<MinRange>0.0</MinRange>
|
||||
<PrepareTime>750</PrepareTime>
|
||||
|
@ -6,9 +6,11 @@
|
||||
</Armour>
|
||||
<Attack>
|
||||
<Melee>
|
||||
<Hack>24.0</Hack>
|
||||
<Pierce>20.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
<Damage>
|
||||
<Hack>24.0</Hack>
|
||||
<Pierce>20.0</Pierce>
|
||||
<Crush>0.0</Crush>
|
||||
</Damage>
|
||||
<MaxRange>4.5</MaxRange>
|
||||
<Bonuses>
|
||||
<BonusCavMelee>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user