Armor components
For gear derived armor, contributions of the typical armor value should be from the sum of various armor pieces. Which armor pieces do we want? And how much armor does each piece typically contribute to the whole?
Code:
Head (Helmet) -- 15%
Shoulders (Mantle) -- 14%
Upper Body (Vest) -- 23%
Arms (Bracers) -- 12%
Legs (Pants) -- 15%
Feet (Boots) -- 10%
Hands (Gauntlets) -- 11%
what about...
Code:
Waist (Belt)?
Back (Cloak)?
eg, at level 25, we typically have 64 armor, so typical armor pieces available at that level might be:
Code:
Helmet -- 10 armor
Vest -- 15 armor
Bracers -- 8 armor
etc
Some items may carry stat bonuses at the cost of some of the armor value. eg,
Code:
Helmet of Intelligence -- 6 armor + 2 INT.
Bracers of Agility -- 5 armor + 2 AGI.
Armor classesWe were considering an armor type vs damage type table for pair matching weapon and armor types to specific monsters. (Prefer to use Normal damage weapons vs Light armor. Prefer Piercing damage weapons vs Heavy armor)
Suppose the table is a function:
Code:
AWBias( AT as Armor_Type, DT as Damage_Type)
which returns an armor multiplier for this combination of damage type and armor type.
eg, AWBias(Light_Armor, Normal_Damage) = 0.5
... meaning that light armor only has 50% effectiveness vs normal damage, so 18 light armor contributes 9 armor vs normal damage.
If armor gear is of mixed type, then how do we resolve this?
Suppose attacking weapon is of damage type DT
Ah = Heavy Armor value
An = Normal Armor value
Al = Light Armor value
A = Ah+An+Al = Total Armor value
(Pre-Step) Hit chances apply to modify the original attacker damage:
Code:
HitChDamage(Damage)
(Step 1) Calculate effectiveness of the current armor combination.
Code:
AEff= AWBias(Heavy_Armor,DT) * Ah + AWBias(Normal_Armor,DT) * An + AWBias(Light_Armor,DT) * Al
(Effective Armor)
(Step 2) Resolve Damage with armor AEff .
Code:
AMD = HitChDamage / (1 + AEff / AF)
(Armor modified damage)
(Step 3) AMD is then subtracted from the defender's HP.
If damage is also of mixed type (12 damage; 8 piercing, 4 normal) , then how do we resolve this?

Dp = Piercing Damage value
Dn = Normal Damage value
Ds = Slash Damage value
...
D = Dp + Dn + Ds + ... = Total Damage
(alternate step 1)
Code:
AEff
= [ AWBias(Heavy_Armor,Piercing_Damage) * Ah*Dp+ AWBias(Normal_Armor,Piercing_Damage) * An*Dp + AWBias(Light_Armor,Piercing_Damage) * Al*Dp ] / D
+ [ AWBias(Heavy_Armor,Normal_Damage) * Ah*Dn+ AWBias(Normal_Armor, Normal_Damage) * An*Dn + AWBias(Light_Armor, Normal_Damage) * Al*Dn ] / D
+ [ AWBias(Heavy_Armor,Slash_Damage) * Ah*Ds+ AWBias(Normal_Armor, Slash_Damage) * An*Ds + AWBias(Light_Armor, Slash_Damage) * Al*Ds ] / D
+ ...
(Effective Armor)