Skip to main content
added 188 characters in body
Source Link
Philipp
  • 123.2k
  • 28
  • 264
  • 345

Don't have the damage reduction be additive, have it cumulativemultiplicative.

Damage = Damage * (1.0 - helmetReduction) * (1.0 - gloveReduction) * (1.0 - trousersReduction) * (1.0 - upperArmorReduction) 

Each layer of armor reduces not the complete damage, but the damage remaining from the previous layer. As long as no single layer reaches 1.0, you will always have a bit of rest damage. You can also scale this system upwards and add additional armor slots later without breaking anything.

Don't have the damage reduction be additive, have it cumulative.

Damage = Damage * (1.0 - helmetReduction) * (1.0 - gloveReduction) * (1.0 - trousersReduction) * (1.0 - upperArmorReduction) 

Each layer of armor reduces not the complete damage, but the damage remaining from the previous layer.

Don't have the damage reduction be additive, have it multiplicative.

Damage = Damage * (1.0 - helmetReduction) * (1.0 - gloveReduction) * (1.0 - trousersReduction) * (1.0 - upperArmorReduction) 

Each layer of armor reduces not the complete damage, but the damage remaining from the previous layer. As long as no single layer reaches 1.0, you will always have a bit of rest damage. You can also scale this system upwards and add additional armor slots later without breaking anything.

Source Link
Philipp
  • 123.2k
  • 28
  • 264
  • 345

Don't have the damage reduction be additive, have it cumulative.

Damage = Damage * (1.0 - helmetReduction) * (1.0 - gloveReduction) * (1.0 - trousersReduction) * (1.0 - upperArmorReduction) 

Each layer of armor reduces not the complete damage, but the damage remaining from the previous layer.