Armordefs.lua
This file sorts units into different armor classes. Weapons can deal different amount of damage to different armor classes.
Location
armordefs.lua
is a file in the Gamedata/
directory of a Spring Game.
Source
The engine source code which parses the data from this file is viewable here:
Details
By default a damage class named "default" exists and every unit is in it. So if all your weapons only deal "default" damage then this file is not needed.
Example
local armorDefs = {
tanks = {
"supertank",
"megatank",
},
infantry = {
"dude",
},
}
--NOTE: only needed for <95.0 (before engine was expecting a cryptic format)
if not(Game) or not(Game.version) then
for categoryName, categoryTable in pairs(armorDefs) do
local t = {}
for _, unitName in pairs(categoryTable) do
t[unitName] = 1
end
armorDefs[categoryName] = t
end
end
return armorDefs
Weapon Example
Goes with above example, a weapon that deals 60 damage to infantry but only 5 damage to tanks:
...
damage = {
infantry = 60,
tanks = 5,
},
...
Shields
In engine versions =< 96.0 the damage dealt to shields is the weapon's default value. This changed in v98.0
Putting a shield into an armor class is analogical to units, ie. the armorDefs entry is its weaponDef name:
armorDefs = {
units = { "shieldbot" },
shields = { "shieldbot_shield" }
}
Then in some damage table:
damage = {
default = 123,
units = 456,
shields = 789
}
Links to more Examples
zero-K
Contains scripting to take into account various things like EMP damage.
Tutorial Game
Uses default damage class, except for one unit that is "armored."
MechCommander: Legacy
Automatically assigns units to an armor class based on UnitDef tags and custom params.