Armordefs.lua: Difference between revisions
→links to more examples: link to MCL example |
m minor style |
||
| Line 1: | Line 1: | ||
This file sorts units into different armor classes. Weapons can deal different amount of damage to different armor classes. | |||
=Location= | |||
<code>armordefs.lua</code> is a file in the <code>Gamedata/</code> directory of a Spring Game. | <code>armordefs.lua</code> is a file in the <code>Gamedata/</code> directory of a Spring Game. | ||
=Source= | |||
The engine source code which parses the data from this file is viewable here: | The engine source code which parses the data from this file is viewable here: | ||
* {{sourcelink|file=rts/Sim/Misc/DamageArrayHandler.cpp}} | * {{sourcelink|file=rts/Sim/Misc/DamageArrayHandler.cpp}} | ||
=Details= | |||
By default a damage class named "default" exists and every unit is in it. | 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. | So if all your weapons only deal "default" damage then this file is not needed. | ||
=Example= | |||
<code><pre> | <code><pre> | ||
local armorDefs = { | local armorDefs = { | ||
| Line 41: | Line 40: | ||
<span class="warning">NOTE: Since 95.0 You MUST NOT include these converter loop OR ARMOR CLASSES WILL NOT WORK</span> | <span class="warning">NOTE: Since 95.0 You MUST NOT include these converter loop OR ARMOR CLASSES WILL NOT WORK</span> | ||
= | =Weapon Example= | ||
Goes with above example, a weapon that deals 60 damage to infantry but only 5 damage to tanks: | Goes with above example, a weapon that deals 60 damage to infantry but only 5 damage to tanks: | ||
<code><pre> | <code><pre> | ||
... | ... | ||
damage = { | damage = { | ||
infantry = 60, | infantry = 60, | ||
tanks = 5, | tanks = 5, | ||
}, | }, | ||
... | ... | ||
</pre></code> | </pre></code> | ||
= | =Links to more Examples= | ||
[http://code.google.com/p/zero-k/source/browse/trunk/mods/zk/gamedata/armordefs.lua zero-K]<br> | [http://code.google.com/p/zero-k/source/browse/trunk/mods/zk/gamedata/armordefs.lua zero-K]<br> | ||
Contains scripting to take into account various things like EMP damage. | Contains scripting to take into account various things like EMP damage. | ||
Revision as of 14:09, 1 December 2013
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",
},
}
for categoryName, categoryTable in pairs(armorDefs) do
local t = {}
for _, unitName in pairs(categoryTable) do
t[unitName] = 1
end
armorDefs[categoryName] = t
end
return armorDefs
Note:
The cryptic looking loop at the end is required to convert the table to a different format. Just copy & paste it.
NOTE: Since 95.0 You MUST NOT include these converter loop OR ARMOR CLASSES WILL NOT WORK
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,
},
...
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.