Vampirism - Become a vampire!

Vampirism - Become a vampire!

16M Downloads

[Bug] Armor is nearly twice as powerful as intended

Hydraheads opened this issue ยท 7 comments

commented

Versions

  • Minecraft: 1.12.2
  • Forge: 14.23.5.2847
  • Vampirism: 1.5.5

Issue Description

Every armor set in the mod has nearly twice the armor points they are actually supposed to have. The result is the balance is shifted, a lot. Swiftness armor has more protection points than diamond, even though the numbers its supposed to have are much lower. Obsidian has a whopping 40+ points making it practically invincible.

Reproduce Steps

A clean installation of only vampirism is enough to tell, but if you install overloaded armor bar it's made more obvious. It is also not just a visual bug, as I have tested it against strong modded weapons and other modded weapons/armor sets, and obsidian completely no sells everything.

Additional Information

N/A

commented

That is true. Until now, I thought it was intended. It is way to strong

commented

Doing some math, the idea behind having lots of armor points isnt totally awful, but toughness would work far better. Every 2 damage dealt pierces 1 armor point. Since vampires and hunters deal far more damage than vanilla, they might be cutting through each other like butter in melee with proper values. However, with the current bugged values, everything is totally negligable in pvp but close ranged weapons that deal lots of damage. Speed oriented weapons like heartseeker are totally negated.

With a shift to armor toughness, it would take much more than 2 damage to pierce each point. If the armor had its proper value but 2 toughness per piece, it would effectively mean it now takes 4 damage to pierce an armor point. The tldr on the math is, crossbows, bows, and blood projectiles are worthless against the glitched armor point values. If the armor had their proper values and 2 armor toughness points, the balance would be better.

commented

Sure, sounds good, just be carefull not to make crossbows too op :D

commented

I cannot confirm that the armor has twice the protection as intended.
For me, the normal Armor of Swiftness gives 11 points (5.5 bars) while a diamond armor provides 20 points. Only the Special version, which cannot be crafted, is stronger than diamond.

My findings:

Protection Damage per hit
Diamond 20 1 damage / 1 hit
Swiftness Normal 7 2 damage / 1 hit
Swiftness Special 23 0.5 damage / 1 hit
Obsidian Normal 31 0.5 damage / 2 hit
Obsidian Special 40 0.5 damage / 17 hit

In general I agree, the base protection of the armor is a little bit too strong. Although, the obsidian armor is intended to be stronger than diamond as it slows you down.
But the special versions are way to strong. The special obsidian armor indeed makes you invincible. Even though you have to find all 4 parts first (and they break as well), it is probably OP.

I will reduce the protection, but not to 50%.

Maybe something like

Protection
Diamond 20
Swiftness Normal 7
Swiftness Special 20
Obsidian Normal 23
Obsidian Special 30

What do you think?

commented

Nevermind, I see your point now. It is a little bit weird, some parts are close to what they are supposed to be, others way stronger. I will have to look into this

commented

Alright, you were absolutely right, the values were applied twice.
1.14 is already correct I think, but I will double check
I have fixed that, but I have buffed the correct armor values therefore:

{boots,leggings,chestplate,helmet}
Hunter Coat:

    private final int[] DAMAGE_REDUCTION_ULTIMATE = new int[]{3, 7, 9, 3};
    private final int[] DAMAGE_REDUCTION_ENHANCED = new int[]{3, 6, 8, 3};
    private final int[] DAMAGE_REDUCTION_NORMAL = new int[]{2, 5, 6, 2};

Swiftness:

    private final int[] DAMAGE_REDUCTION_ULTIMATE = new int[]{3, 6, 8, 3};
    private final int[] DAMAGE_REDUCTION_ENHANCED = new int[]{2, 5, 6, 2};
    private final int[] DAMAGE_REDUCTION_NORMAL = new int[]{1, 2, 3, 1};

Obsidian:

    private final int[] DAMAGE_REDUCTION_ULTIMATE = new int[]{5, 10, 11, 5};
    private final int[] DAMAGE_REDUCTION_ENHANCED = new int[]{4, 8, 10, 4};
    private final int[] DAMAGE_REDUCTION_NORMAL = new int[]{3, 7, 9, 3};

Vanilla:

        LEATHER(..., new int[]{1, 2, 3, 1}, ...),
        IRON(..., new int[]{2, 5, 6, 2}, ...),
        GOLD(..., new int[]{1, 3, 5, 2}, ...);
        DIAMOND(..., new int[]{3, 6, 8, 3}, ...);

What do you think?

commented

Alright, just gonna close this. If you think it is still unbalanced in the next version let me know