Age of Empires Series Wiki
Age of Empires Series Wiki
Info icon.png
This article is about the armor classes in Age of Empires II which define bonus damage. For the two armor types which define base damage, see armor and pierce armor.
Armor class prev.png

Armor classes are semi-hidden unit attributes in Age of Empires II. They are necessary to make attack bonuses work correctly.


In-game references[]

The infobox shows no information about bonus damage dealt or taken.

The bonus attack and armor class system is not directly displayed in-game. The only visual element of armor classes is noticing the attack value bonuses that units and buildings inflict on each other, but even then, heavy amounts of cross-referencing of the unit and building types taking and receiving damage would have to be tediously studied; and combined with the fact that the type of armor classes assigned to each unit and building are never specified in-game. The only way to directly see armor class bonuses and their values is with the use of the Genie Editor, which is the official program to edit dataset included in game files, from where the information of this wiki is obtained.

While the tech tree states for each unit against which other unit it deals bonus damage, it does not tell the player how this bonus damage is dealt, or which unit is in which armor class. While most armor classes are intuitive (for example, it is clear that the Eagle Warrior is in the infantry class), there are also many which are not. In another example, the aforementioned Eagle Warrior is also in its own Eagle Warrior class, and Champions deal significant bonus damage against this class. Neither is referenced anywhere in the game. Another example are Camel Riders: They are not in the cavalry class like one might assume, but instead in their own camel class, which takes less bonus damage than the cavalry class, so they are less vulnerable to their counter units than the game suggests.


Basically, the bonus damage is calculated the same way as the base damage is calculated (simply by subtraction of attack and armor), but in order to calculate bonus damage in the first place, the attacking unit logically has to have an attack bonus against its target. This is where the armor classes come into play.

Simply speaking, bonus damage is a flat additive value to the base damage and if a unit has more than one armor class, the bonus damages of the attacking unit stack. For example, the War Elephant is in the war elephant and in the cavalry armor classes, and the Halberdier has an attack bonus against both classes. So both bonus damages are added when a Halberdier attacks a War Elephant.

Each unit has an armor value for every armor class it is assigned to. For most units this armor value is 0 and simply determines that they are in this class and take bonus damage, but for some units, it is non-zero. A positive value indicates that this unit (partially) resists bonus attacks against this armor class, while a negative value means it takes even more damage. For example, the Cataphract has +12 cavalry armor, making it less vulnerable to anti-cavalry attacks than other cavalry units. On the other hand, for example, the Ballista Elephant has –2 cavalry armor, making it take even more damage from anti-cavalry attacks.

Damage calculation[]

The attack calculation in Age of Empires II basically works in three steps. Melee/Leitis damage, pierce damage, and bonus damage are calculated separately. The damage is calculated as following:

where denotes a separate damage class, corresponds to the elevation / terrain bonus (×1.25 if the attacker is uphill / attacking from the cliff, ×0.75 if downhill), represents Tatars elevation bonus of +0.25 (if attacking from uphill / cliffs) in the Definitive Edition. Separate multiplier of ×1.2 is applied if the target building is built on a desert cracked terrain (does not apply to units).

This formula means that damage is calculated for all the attack/armor classes separately, which are then summed up and multiplied by the elevation bonus (if present), and then, if , the damage is applied directly, or, if , is rounded up to 1. This means that the elevation bonuses have no effect if the resulting damage is lower than 1.

The Leitis (the Lithuanian unique unit, from the Definitive Edition) has neither melee nor pierce damage assigned to it, which are instead replaced with Leitis damage (vs. armor class 31), with all the units (but not buildings) having 0 armor against this attack class. Unlike other bonus armor classes, it is not affected by the Sicilian bonus damage reduction and is thus included separately in formula (1).

Melee, pierce, and Leitis damage parts are calculated as following (example for melee damage):

where is base unit melee attack, is a civilization bonus increasing the melee attack (×1.25 damage increase for the gunpowder units for the Burgundians in the Definitive Edition), is melee damage increase from the upgrades, is base unit melee armor (can be negative for rams), and is melee armor gained through the upgrades or civilization bonuses.

Note that here and in formula (3), if the unit has no respective armor class, its Base Armor is used instead (which is usually set to 1000, safe for several units from scenarios). This almost always means that if the unit lacks a respective armor class, it does not receive any damage from the attacks assigned that armor class.

Bonus damage part is calculated as following:

where is an armor class, is an attack bonus against a respective armor class, is a civilization bonus that increases the bonus damage (×1.25 damage increase for the gunpowder units of the Burgundians and the Spearman-line of the Bohemians in the Definitive Edition) or the ×1.2 anti-Building damage increase from Siege Engineers (except Petards and Flaming Camels which have an additive bonus equal to ×1.4 instead), is the reduction of bonus damage for the respective armor class, and is bonus damage reduction civilization bonus for Infantry, Cavalry and Archer units of the Sicilians in the Definitive Edition set to ×0.5.

Note that multiplication and subsequent rounding after occurs before the is applied, which results in a more significant bonus damage increase (compared with stated) in case the target has non-zero armor set for the respective bonus armor class (e.g., a regular Cataphract has 12 cavalry armor). Rounding also means that low bonus damage values will not get increased by civilization bonuses or Siege Engineers (e.g., regular Scorpion receives no increased anti-building damage from Siege Engineers: ROUND(2 × 1.2) = 2).

If the unit has 0 attack assigned against a given armor class, it will use the set armor class and not the Base Armor and will get affected by some civilization bonuses (e.g., the Knight-line has 0 attack vs archers assigned to it, which is increased by 2 with the Persian team bonus). Units with negative armor will receive damage from attacks with 0 damage assigned for the respective armor class (e.g., Ballista Elephant will receive 2 anti-siege damage from Steppe Lancers, rams (without Ironclad) will receive 3 damage from secondary Chu Ko Nu or Kipchak projectiles).

While the formulas may look complicated at first glance, it basically says that a specific armor class armor is subtracted from its respective bonus attack, but the individual result cannot be negative. This resulting value (positive in most cases) is added to the total damage dealt. Bonus attack cannot be reduced by melee or pierce value.

Unlike with melee and pierce damage, information about the bonus damage cannot be found in the unit infobox or in tech tree in-game.


Example 1:

An Archer has no melee attack, a pierce attack of 4, and an attack of 3 against the Spearman armor class.
A Spearman has a melee armor of 0, a pierce armor of 0, and a Spearman armor of 0.
If the Archer now hits the Spearman, it deals: (4-0 {pierce}) + (3-0 {Spearman}) = 7 damage.
A Man-at-Arms has a melee armor of 0, a pierce armor of 1, and no Spearman armor.
If the Archer now hits the Man-at-Arms, it deals: 4-1 {pierce} = 3 damage.
The bonus damage against Spearmen is not triggered, because the Man-at-Arms does not have the corresponding armor class.
Values Archer aoe2DE.png Archer
Spearman aoe2DE.png Spearman
Manatarms aoe2DE.png Man-at-Arms
Melee (4) - 0 0
Pierce (3) 4 0 1
Spearman (27) 3 0 -
Infantry (1) - 0 0
Rams (17) 0 - -
Leitis (31) - 0 0

Example 2:

A Karambit Warrior has a base melee attack of 7, no pierce attack, and an attack of 2 against the Eagle Warrior armor class.
An Eagle Warrior has a melee armor of 0, a pierce armor of 3, and an Eagle armor of 0.
If the Karambit Warrior now hits the Eagle Warrior, it deals: (7-0 {melee}) + (2-0 {Eagle}) = 9 damage.
The pierce armor does not come into play as the Karambit Warrior does not have a pierce attack.
Values Karambitwarrioricon-DE.png Karambit Warrior
Eaglewarrior aoe2DE.png Eagle Warrior
Melee (4) 7 0
Pierce (3) - 3
Eagle (29) 2 0
Infantry (1) - 0
Leitis (31) - 0

All three parts in that calculation can be negative if the target has higher armor than the attacking unit has attack. As the formula shows, in that case every part is rounded up to zero, so one weak spot cannot be compensated, and the minimum amount of overall damage dealt is always 1. The example below shows this as well as an attack involving negative armor, both melee and pierce attack, and a multi-shot attack. The calculation follows the patterns mentioned above.

Example 3:

A Chu Ko Nu fires three arrows with an attack. It has a melee attack of 0 (for all its arrows), a pierce attack of 8 for the first arrow, and pierce attack of 3 for all the other arrows.
A Battering Ram has a melee armor of -3, and a pierce armor of 180.
If the Chu Ko Nu now hits a Battering Ram, it deals: (0-(-3) {melee}) + (8-180 {pierce}, rounded up to 0) + (0-0 {Ram}) = 3 damage with the first arrow, and (0-(-3) {melee}) + (3-180 {pierce}, rounded up to 0) = 3 damage for the other two arrows, resulting in a total damage of 9.
If the Archer from the first example now hits the Battering Ram, it deals: (4-180 {pierce}, rounded up to 0) = 0 (rounded up to 1) damage. The melee armor does not come into play as the Archer does not have a melee attack.
Values ChukoNuIcon-DE.png Chu Ko Nu
Extra Arrow (x2)
Battering ram aoe2DE.png Battering Ram
Melee (4) 0 0 -3
Pierce (3) 8 3 180
Rams (17) 0 - 0
Siege (20) - - 0
Spearman (27) 0 - -
Cavalry (8) 0 - -
Leitis (31) - - 0

These examples also show the difference between having no attack or armor (meaning there is no value assigned) and having 0 attack or armor. No attack or armor means the respective part is not calculated, and 0 attack or armor means that the part is calculated. The difference resulting from this can be quite substantial, as the last example shows.

Example 4:

A fully upgraded Elite Cataphract has a base melee attack of 12+2, no pierce attack, and an attack of 12+6 against Infantry.
A fully upgraded Halberdier has a melee armor of 0+3, a pierce armor of 0+4, and an Infantry armor of 0.
If the Cataphract now hits the Halberdier, where the Halberdier is fighting uphill, it deals: (((12+2)-(0+3) {melee}) + ((12+6)-0 {Infantry})) * 0.75 = 21.75 damage instead of the regular 29 damage.
The Halberdier was fighting uphill, so the Cataphract is downhill, which means that his hill bonus multiplier is set to 0.75.
The trample damage of the Cataphract have no effect in this example because there are no adjacent units to hit.
Moving on, now it is time for the Halberdier to attack.
A fully upgraded Halberdier has a base melee attack of 6+4, no pierce attack, and an attack of 32 against Cavalry.
The fully upgraded Cataphract has a melee armor of 2+3, a pierce armor of 1+4, and an Cavalry armor of 16.
If the Halberdier now hits the Cataphract, where the Halberdier is fighting uphill, it deals: (((6+4)-(2+3) {melee}) + (32-16 {Cavalry})) * 1.25 = 26.25 damage instead of regular 21 damage.
The Halberdier was fighting uphill, so the Cataphract is downhill, which means that his hill bonus multiplier is set to 1.25.
A fully upgraded Tatar Halberdier fighting uphill deals +25% damage due to the civilization bonus, it'd deal: (((6+4)-(2+3) {melee}) + (32-16 {Cavalry})) * (1.25 + 0.25) = 31.5 damage to the downhill Cataphract.
This example shows the importance of the hill bonus damage and shows the additional armor the Cataphract has against the natural counter of cavalry.

Example 5:

A fully upgraded Burgundian Hand Cannoneer has a base pierce attack of 17, no melee attack, and an attack of 10 against Infantry.
It has also a civilization bonus that modifies all existing attack classes of the unit (Hand Cannoneer receives ×1.25 damage multiplier towards its pierce damage, anti-infantry damage, and anti-spearman damage).
A fully upgraded Malian Condottiero has a melee armor of 1+3, a pierce armor of 0+7, and an Infantry armor of 10.
If the Hand Cannoneer hits the Condottiero it deals: (ROUND(17 * 1.25)-(0+7) {pierce}) + (ROUND(10 * 1.25)-10 {Infantry}) = 17 damage instead of the regular 10 damage.

Example 6:

A Bohemian Spearman with no upgrades has a base melee attack of 3, no pierce attack, and an attack of 15 against Cavalry.
It has also a civilization bonus that modifies all the bonus attack classes of the unit (Spearman-line receives ×1.25 damage multiplier towards its anti-cavalry, anti-elephant, anti-camel, anti-ship, anti-Mameleuke, anti-Eagle warrior and anti-Standard Building damage).
A Sicilian Scout with no upgrades has a melee armor of 0, a pierce armor of 2, and an Cavalry armor of 0.
If the Spearman hits the Scout it deals: (3-0 {melee}) + ((ROUND(15 * 1.25)-0) * 0.5) {Cavalry}) = 12.5 damage inflicted in 13–12–13–12… increments.
The Scout receive 50% less bonus damage as consequence of the civilization bonus.

These examples show the application of the civilization bonus damage of the Burgundians and Bohemians on the Gunpowder units and Spearman-line, respectively. As unit armor classes are applied after the multiplication takes place, in cases with existing armor the bonus ends up being higher than +25%. Unlike the elevation bonus where the decimal part is stored for each attack, the resulted bonus damage from the civilization bonus is rounded for every armor class (rounded up if the decimal part is 0.5) to the nearest integer and remembered as such for every attack. Both the elevation bonus and the Sicilian bonus damage resistance are applied after the rounded bonus damage and both preserve decimal figures.

Base armor[]

Base armor is the default value of an armor class which a unit does not have. This is an important attribute to make armor classes function.

For example:

A Knight is defined to have armor classes of Base Melee (2), Base Pierce (2), Anti-Leitis (0) and Cavalry (0) and Base Armor 1,000. This means that it has armor classes of Infantry (1,000), Turtle Ship (1,000), War Elephant (1,000), and so on. Normally all these attack values are less than 1,000; in practice, they are actually less than 100.
Substituting these values in the formula for damage calculation by a Post-Imperial Viking Champion we get:
Damage = (17 - 2 {melee}) + (5 - 0 {cavalry}) + (8 - 1,000 {Eagles}) + (6 - 1,000 {Standard Buildings}) + (4 - 1,000 {Camels}) = 20.

The single highest attacks in the game are those by Furious the Monkey Boy against standard buildings (999) and Secondary Projectiles of Organ Guns and Hussite Wagons (1002)* .

List of armor classes[]

Unit classes[]

Building classes[]

Common values[]

  • Attack class 31 is defined by the game to be a variation of melee attack (attack class 4).
    • For units, always, because it was never meant to be cancelled.
    • For buildings, always, because it was always meant to be cancelled in the exact same amount.
  • Attack class 21 is defined by the game to be a variation of anti-building attack (attack class 11).
    • For buildings (except Fish Traps, Wonders and Mosques), always, because it was never meant to be cancelled.
    • For reasons unknown, Fish Traps do not have building armor classes (neither 11 nor 21), unlike their counterpart - Farms.
    • For scenario design purposes, Mosques have no armor classes, so they receive 1 damage from every unit other than secondary projectiles of Hussite Wagons and Organ Guns (check Trivia).
    • For reasons unknown, Wonders do not have armor class 21, despite having armor class 11.
  • All units with attack class 1 (other than Hand Cannoneers and Cannon Galleons) have attack class 32, defined as . This is because Condottieri were made to resist attack bonus of Hand Cannoneers, which is 10, but receive attack bonus from other anti-infantry sources. If the value was less than 10, it was negated entirely, otherwise it was reduced by 10.
  • All units except Fire Galleys (and Flemish Militia) have exactly same attack vs Fishing Ships (armor class 34), as they have against regular Ships (armor class 16). This was done to promote use of Galleys in Feudal Age to snipe Fishing Ships, rather than the Fire Galley countering everything.
  • For the Mangonel and Bombard Cannon lines, , so that they counter Hussite Wagons more effectively.
  • for most units and buildings (please check Trivia).


  •  % attack upgrades like Burgundian Gunpowder bonus, Bohemian Spear bonus, Siege Engineers and Heated Shot are calculated and stored in unit stats and are always an integer. Depending on the unit, it may be greater than or less than the % increase. Hill bonuses are always calcualted in every situation and the damage dealt maybe a non-integer, in which case the shown HP is rounded down.
    • Bohemian Pikemen should get +27.5 vs Cavalry, they actually get +28, not +28 in odd hit and +27 in even hit.
    • A regular Pikeman on a hill also gets +25% attack bonus. Ignoring the insignificant melee attack vs Cavalry, it should deal +27.5 vs Cavalry. It appears in game that it deals +28 in odd hit and +27 in even hit. Behind the scenes, it actually is dealing +27.5 but the new HP of the receiving unit is always rounded down. Extending this rule, on a hypothetical unit having 5 attack vs itself, it will deal 7, 6, 6 and 6 damage to itself in a cycle, because the 6.25 damage works this way.
    • Burgundian Hand Cannoneers actually deal +3 vs Condottieri, so unlike the description they do receive attack bonus, albeit small.
  • Not every unit with an attack bonus against another unit can be called a counter. Spear line has +1 vs eagles, but get wrecked by eagles. Elite Samurai have +12 vs Elite Longboats and Elite Longbowmen, but can do not counter them with reasonable assumptions.
  • Despite not having bonuses, a unit can be called a counter to the other unit. The obvious example of this is a monk. Scout line, Knight line and Steppe Lancers can be called reasonable counter to Siege units. Mangonels can be called a reasonable counter to Crossbowmen. Arbalesters are a fairly strong counter to Hand Cannoneers.
  • Despite having a meagre difference of 1 pierce armor, Spear units are nowhere near to Sword units in resisting archer fire. This is because reliably every archer unit has an attack bonus vs Spearmen. Regular Archers and Skirmishers do +3. Regular Cavalry Archers, Genitours and Unique foot archers do +2. Kipchaks, Mangudais, Slingers, and Hand Cannoneers do +1. Most notably, Genoese Crossbowmen and Camel Archers do not receive any attack bonus. Elephant Archers also do not receive any attack bonus until Parthian Tactics, but this maybe by design to make them weak to Spear units.
  • Despite both Halberdiers and Cavalry Archers having attack bonus vs the other, neither unit is called a counter to the other. The same idea goes for Jaguar Warrior vs Samurai and Genoese Crossbowmen vs Genitours.
  • Elite Cataphracts negate all counters to cavalry except Bohemian (+12) and Chieftain (+11) Pikemen, Halberdiers (+16), and Flaming Camels (+34).
    • While Heavy and Imperial Camel get +2, and regular Pikemen get +6, the bonus is too small to make them counter. That is, it is not recommended to use Camels against Cataphracts. While the +6 of Pikeman sounds good on paper, Elite Cataphracts attack 87.5% faster and have a guaranteed +12 vs non-Sicilian Pikemen.
    • Despite having all attack bonuses negated, Elite Kamayuks can do good because of their stacking and extra range, but their stacking also means the blast attack of Elite Cataphracts can decimate them.
    • Despite having all attack bonuses negated, Genoese Crossbowmen can do great because of Cataphracts' low pierce armor.
    • Despite having all attack bonuses negated, Mamelukes can do great because of hit and run.
    • The Samurai can also do great because it has anti-unique-unit attack, not anti-cavalry attack.
    • Non-Elite Cataphracts struggle vs Heavy Camel Riders (+6), Imperial Camel Riders (+6), regular Pikemen too (+10), but they still negate regular Spearmen (only +3) and Camel Riders.
  • Blast Furnace for Champions is useless when countering Elite Eagle Warriors from Mayans and Aztecs. Champion upgrade beecomes optional with Blast Furnace when countering Eagles as it adds a meagre +10 HP. In conclusion, getting to 15 attack against Mayans and Aztec eagles and getting to 16 attack against Incan eagles is ideal since anything above that does not kill the eagle faster.
    • This is one of the rare situations in which the extra melee armor on the Incan eagles matters. The pierce armor aspect of the technology has always been great.
  • Despite being great in general, Lithuanian and Goth Halberdiers get 2 shotted by Post Imperial Cataphracts, which shows the importance of 1 armor upgrade.
  • Despite being the absolute worst, Post-Imperial Persian Longswords beat Post-Imperial Aztec and Incan eagles in a duel and tie with Mayan eagles. The +6 attack bonus of Long Swords should not be underestimated. This is an example to show that despite being stuck in Castle Age, player has the tools to counter Imperial Age Eagles. This is a completely viable matchup in a 1vs1 since a 60F 20G is easier to sustain in late game than a 20F 50G unit.
  • In a Japanese war, it is recommended to make Swordsmen units over Samurais because the Swordsmen are 15F 10G cheaper and more likely to make the battle longer. Moreover Castles can produce Trebuchets too.


  • All units which cannot be interacted with like flags, dead units and rubble do not have this property.
  • All other units are supposed to have the armor classes 3, 4, and 31.
  • The Elephant Archer (War elephant, Cavalry, Archer, Unique unit, and Cavalry archer) and the Conquistador (Cavalry, Archer, Unique unit, Gunpowder unit, and Cavalry archer) have the most armor classes of all units, at five.
  • Special Wolves like the Dire Wolf, Hunting Wolf, and Ornlu the Wolf have base armor zero and no armor class, which makes them take all sorts of bonus damage, all of which stack. Herdables (Cows, Sheep, etc.) and Showpiece units (like Butterflies, Hawks, and Stormy Dogs) also have base armor zero. All other units have 1000 base armor.
  • No unit actually has Armor Class 33, but the secondary projectiles of Organ Guns and Hussite Wagons have a whopping 1002 attack of class 33.
    • This means that all units which they target suffer 2 damage.
    • A side effect is that Organ Guns and Hussite Wagons are actually the best units to kill hero wolves and herdables in a single shot. Petards can also do this, but they need to get in contact with them and are also destroyed upon use, whereas Organ Guns and Hussite Wagons can do this from a safe distance.
  • The Mosque has no armor classes (not even classes 3, 4, or 11), meaning all projectiles, even from Trebuchets, will do only 1 damage.
  • Since the Definitive Edition, armor class values other than Base melee and Base pierce (these two were modifiable before too) can be modified in the Scenario Editor. An important point to remember is that the unit should have an attack or armor of that class existing already. Example: Samurai cannot be given an attack bonus against infantry units, because they do not have even 0 attack assigned. However, using Scenario editor, their attack bonus against unique units can be modified.
  • The upgrade lines of Skirmishers, Camel Riders, Mangonels, Rams, Galleys, Fire Galleys, and Bombard Cannons all deal bonus damage against an armor class they are themselves part of. The civilization-unique Samurai, Jaguar Warrior, Camel Archer, Genitour (only Elite), Mameluke (only Elite), Longboat, and Caravel do as well.
  • Condottieri are responsible for the creation of two armor classes (the most by any unit) - the armor class which gives them an attack bonus against gunpowder units and the armor class which helps them receive attack bonus from anti-infantry units other than gunpowder. Since Dawn of the Dukes, Winged Hussars also do bonus damage against the gunpowder unit armor class.
  • Mamelukes are not Archer units. They share no upgrades with foot archers. They share the Armor class just for the sake of having a proper trash counter (Skirmishers) for balance reasons.
  • With the release of Dawn of the Dukes, attack penalty of missed shots can be modified to do the default 50% damage or 100% damage. Presently, Arambai and secondary projectiles of Organ Guns and Hussite Wagons (they have the same projectile) do 100% damage to mishits.
  • The game considers all attacks except those of class 3, 4, 31, and 33 as attack bonuses. The attribute attack bonus resists (multiplier) can be used to reduce all incoming attack bonuses (not hill bonuses) by a constant factor for a unit. This factor maybe different for different units, but is same for all armor classes on the same unit.
  • Except Flemish Militia, no unique upgrade of a regular unit is classified as a unique unit. The reason is simple - an upgrade should not make the unit worse.
  • Unit classes and armor classes are completely different. Unit classes are unique, such as Eagle Warriors and Champions being Infantry; Ballista Elephants, Camel Riders, and Hussars being Cavalry; and Missionaries being Monks. Unit classes dictate unit properties like garrison, conversion (buildings and siege need redemption), adding arrows when garrisoned, and most importantly upgrades, while armor classes just dictate which units receive attack bonus from which units.
  • The Burgundian civilization bonus modifies all existing attack classes of the unit while the Bohemian civilization bonus only modifies the bonus attack of the Spearman-line. Both of them, however are applied before the bonus damage armor is taken into account, making units significantly stronger against units with bonus armor.


  • The Folwark is the only building that, unlike the other buildings in the game, has 0 armor against Leitis attacks and such armor does not increase by age. Only Masonry and Architecture (the latter being unavailable to the Poles) can increase its anti-Leitis armor by 1 each.
  • The Burgundian +25% attack boost for Gunpowder units does not affect attack vs Hussite Wagons (armor class 37).
  • Flemish Militia do not deal bonus damage vs Fishing Ships (armor class 34).