WayofTime / BloodMagic

The place where all of my mod stuffs is!
Other
298 stars 273 forks source link

Sacrificial Dagger causes durability damage on Ars Magica 2 Mage Armor #1043

Closed xenxero1 closed 7 years ago

xenxero1 commented 7 years ago

Issue Description:

When self-sacrificing on a blood altar, my armor from AM2 takes heavy damage. I assume it occurs with other armors as well, but I doubt it's intended.

What happens:

Armor takes damage. Low-durability armor can break fairly quickly if not regenerated.

What you expected to happen:

Health is taken, but armor durability is left untouched.

Steps to reproduce:

  1. Craft Ars Magica 2 Mage armor (robes) and equip them.
  2. Make a dagger of sacrifice and blood altar.
  3. Check your armor durability (initial)
  4. Self-sacrifice on the altar
  5. Check your armor durability (comparison) ...

Affected Versions (Do not use "latest"):

VT-14 commented 7 years ago

I was able to reproduce this, but only with AM2 armor. Vanilla, Blood Magic, Ender IO, Botania, and Immersive Engineering all have armors that are unaffected. Probably on AM2's side, so open a report there (if there isn't one already). I think the current one is Growlith1223's fork.

Minecraft: 1.10.2 Forge: 12.18.3.2221 ArsMagica2: 1.5.017} BloodMagic: 1.9.4-2.1.0-69 Botania: r1.9-340 EnderIO: 1.10.2-3.1.161 Immersive Engineering: 0.10-55

Debug Crash (with only BM and AM2): https://gist.github.com/VT-14/fcd9762caca8eec53dd9f8b4efce0295 fml-client-log (same instance): https://gist.github.com/VT-14/bb1d9761b4b0b7318fc69284066c2947

xenxero1 commented 7 years ago

According to the guys over on Growlith's Branch, it has to do with the AM2 handling custom damage types. It seems to need added support within the Blood Magic API.

WayofTime commented 7 years ago

IIRC the BM damage type is set to ignore armour (i.e. is supposed to be unblockable).

xenxero1 commented 7 years ago

From https://github.com/Growlith1223/ArsMagica2/issues/195

Result of this in am2.armor.AMArmor: else /*Will include custom damage types and void, wither etc. */{ stack.damageItem(damage * 10, entity) Since the dagger uses a custom damage type (DamageSourceBloodMagic), this will need to be specifically supported through the use of the Blood Magic API

I don't know for certain, just relaying information at this point.