Core/Spells: Fixed unapplying rockbiter weapon
Port From (https://github.com/TrinityCore/TrinityCore/commit/ba2586c92f87230c6380d7a2fe2d52c52471b9cb)
This commit is contained in:
@@ -578,7 +578,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
WeaponAttackType attackType = Player.GetAttackBySlot(item.GetSlot(), item.GetTemplate().GetInventoryType());
|
WeaponAttackType attackType = Player.GetAttackBySlot(item.GetSlot(), item.GetTemplate().GetInventoryType());
|
||||||
if (attackType != WeaponAttackType.Max)
|
if (attackType != WeaponAttackType.Max)
|
||||||
UpdateDamageDoneMods(attackType);
|
UpdateDamageDoneMods(attackType, apply ? -1 : (int)slot);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ItemEnchantmentType.EquipSpell:
|
case ItemEnchantmentType.EquipSpell:
|
||||||
@@ -795,7 +795,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
WeaponAttackType attackType = Player.GetAttackBySlot(item.GetSlot(), item.GetTemplate().GetInventoryType());
|
WeaponAttackType attackType = Player.GetAttackBySlot(item.GetSlot(), item.GetTemplate().GetInventoryType());
|
||||||
if (attackType != WeaponAttackType.Max)
|
if (attackType != WeaponAttackType.Max)
|
||||||
UpdateDamageDoneMods(attackType);
|
UpdateDamageDoneMods(attackType, apply ? -1 : (int)slot);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ItemEnchantmentType.UseSpell:
|
case ItemEnchantmentType.UseSpell:
|
||||||
|
|||||||
@@ -6581,9 +6581,9 @@ namespace Game.Entities
|
|||||||
UpdateBaseModGroup(modGroup);
|
UpdateBaseModGroup(modGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateDamageDoneMods(WeaponAttackType attackType)
|
public override void UpdateDamageDoneMods(WeaponAttackType attackType, int skipEnchantSlot = -1)
|
||||||
{
|
{
|
||||||
base.UpdateDamageDoneMods(attackType);
|
base.UpdateDamageDoneMods(attackType, skipEnchantSlot);
|
||||||
|
|
||||||
UnitMods unitMod = attackType switch
|
UnitMods unitMod = attackType switch
|
||||||
{
|
{
|
||||||
@@ -6600,6 +6600,9 @@ namespace Game.Entities
|
|||||||
|
|
||||||
for (var slot = EnchantmentSlot.Perm; slot < EnchantmentSlot.Max; ++slot)
|
for (var slot = EnchantmentSlot.Perm; slot < EnchantmentSlot.Max; ++slot)
|
||||||
{
|
{
|
||||||
|
if (skipEnchantSlot == (int)slot)
|
||||||
|
continue;
|
||||||
|
|
||||||
SpellItemEnchantmentRecord enchantmentEntry = CliDB.SpellItemEnchantmentStorage.LookupByKey(item.GetEnchantmentId(slot));
|
SpellItemEnchantmentRecord enchantmentEntry = CliDB.SpellItemEnchantmentStorage.LookupByKey(item.GetEnchantmentId(slot));
|
||||||
if (enchantmentEntry == null)
|
if (enchantmentEntry == null)
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -3811,7 +3811,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
public virtual SpellSchoolMask GetMeleeDamageSchoolMask(WeaponAttackType attackType = WeaponAttackType.BaseAttack) { return SpellSchoolMask.None; }
|
public virtual SpellSchoolMask GetMeleeDamageSchoolMask(WeaponAttackType attackType = WeaponAttackType.BaseAttack) { return SpellSchoolMask.None; }
|
||||||
|
|
||||||
public virtual void UpdateDamageDoneMods(WeaponAttackType attackType)
|
public virtual void UpdateDamageDoneMods(WeaponAttackType attackType, int skipEnchantSlot = -1)
|
||||||
{
|
{
|
||||||
UnitMods unitMod = attackType switch
|
UnitMods unitMod = attackType switch
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user