diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Item.cpp | 7 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 10 | ||||
-rw-r--r-- | src/game/Unit.cpp | 9 |
3 files changed, 20 insertions, 6 deletions
diff --git a/src/game/Item.cpp b/src/game/Item.cpp index 85df92f998b..ea8d77076eb 100644 --- a/src/game/Item.cpp +++ b/src/game/Item.cpp @@ -756,7 +756,12 @@ bool Item::IsFitToSpellRequirements(SpellEntry const* spellInfo) const if(spellInfo->EquippedItemInventoryTypeMask != 0) // 0 == any inventory type { - if((spellInfo->EquippedItemInventoryTypeMask & (1 << proto->InventoryType)) == 0) + // Special case - accept weapon type for main and offhand requirements + if(proto->InventoryType == INVTYPE_WEAPON && + (spellInfo->EquippedItemInventoryTypeMask & (1 << INVTYPE_WEAPONMAINHAND) || + spellInfo->EquippedItemInventoryTypeMask & (1 << INVTYPE_WEAPONOFFHAND))) + return true; + else if ((spellInfo->EquippedItemInventoryTypeMask & (1 << proto->InventoryType)) == 0) return false; // inventory type not present in mask } diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index fbee149152a..469f3f45357 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -620,23 +620,23 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) } case SPELLFAMILY_PALADIN: { - // Judgement of Vengeance ${1+0.22*$SPH+0.14*$AP} + 10% for each application of Holy Vengeance on the target - if((m_spellInfo->SpellFamilyFlags[1] & 0x8) && m_spellInfo->SpellIconID==2292) + // Judgement of Vengeance/Corruption ${1+0.22*$SPH+0.14*$AP} + 10% for each application of Holy Vengeance/Blood Corruption on the target + if((m_spellInfo->SpellFamilyFlags[1] & 0x800) && m_spellInfo->SpellIconID==2292) { float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK); int32 holy = m_caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellInfo)) + m_caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellInfo), unitTarget); damage+=int32(ap * 0.14f) + int32(holy * 22 / 100); - // Get stack of Holy Vengeance on the target added by caster + // Get stack of Holy Vengeance/Blood Corruption on the target added by caster uint32 stacks = 0; Unit::AuraList const& auras = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE); for(Unit::AuraList::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr) - if((*itr)->GetId() == 31803 && (*itr)->GetCasterGUID()==m_caster->GetGUID()) + if(((*itr)->GetId() == 31803 || (*itr)->GetId() == 53742) && (*itr)->GetCasterGUID()==m_caster->GetGUID()) { stacks = (*itr)->GetStackAmount(); break; } - // + 10% for each application of Holy Vengeance on the target + // + 10% for each application of Holy Vengeance/Blood Corruption on the target if(stacks) damage += damage * stacks * 10 /100; } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 33192206232..ae54615e4fc 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5795,6 +5795,15 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu triggered_spell_id = 31803; break; } + // Seal of Corruption + case 53736: + { + if(effIndex != 0) // effect 1,2 used by seal unleashing code + return false; + + triggered_spell_id = 53742; + break; + } // Spiritual Attunement case 31785: case 33776: |