Armor Recalc

Forge has fixed the armor calculation in Build 1.11.2-13.20.0.2307

Current version

In minecraft Forge 1.9.4 up to Build 1.11.2-13.20.0.2306 Forge reverted the armor damage reduction to the 1.8.x version. As a result NBT set armor values, potion effects/items that effect armor attribute as well as armor toughness in general are ignored thus breaking some vanilla maps.

 

This mod in effect replaces the outdated Forge damage calculation with the new vanilla one

 

This has been fixed 1.11.2 forge Build 1.11.2-13.20.0.2307 but has not been for 1.9.4 or 1.10.

 

If you want to use the vanilla armor changes in 1.9.4 or 1.10 forge a mod like this one is still needed.

 

Alert

The way this is setup ATM any mod added armor that doesn't use the Forge ISpecialArmor system (most don't) will work fine but those that do will behave unpredictably. Example Simple ores and the current tinkers construct armor do not use ISpecialArmor but the Ender IO Dark Steel set does. With default config if used with Dark Steel the RF durability enhancements will not work but other aspects of the armor do.

Issues may still arise with ISpecialArmor that has special damage reduction systems.

 

1.9.0 version

1.9 allows for partial armor points but the vanilla damage calculation strips them before actually performing the damage reduction calculation. This recalc just applies a minor tweak to tale the partial points into account so that 2.5 armor is actually better than 2.0 but worse than 3.0

 

Technical stuff

The vanilla damage code is vanillaDamage = incommingDamage * ( 1 - max( defensePoints / 5, defensePoints - incommingDamage / 2 ) / 25 ) but the call to read defensePoints converts it from a double to an int and then is converted to a float.

 

This mod uses the forge hook to change the incommingDamage so that the result of the vanilla calculation (using the defensePoints reduced to nearest int) becomes what it would have been if it used the base incommingDamage and converted the actual double value of defensePoints directly to a float. 

 note: the reversion of the armor code happened part way through 1.9.0 so the 1.9.0 version won't work as intended with later versions of forge. 


Comments

Posts Quoted:
Reply
Clear All Quotes

About This Project

  • Project ID
    243089
  • Created
    Mar 20, 2016
  • Last Released File
    Mar 13, 2017
  • Total Downloads
    30,228
  • License

Categories

Members