*Fix Obliterate disease bonus.
--HG-- branch : trunk
This commit is contained in:
@@ -4309,6 +4309,13 @@ void Spell::SpellDamageWeaponDmg(uint32 i)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SPELLFAMILY_DEATHKNIGHT:
|
||||||
|
{
|
||||||
|
// Obliterate (12.5% more damage per disease)
|
||||||
|
if (m_spellInfo->SpellFamilyFlags[1] & 0x20000)
|
||||||
|
totalDamagePercentMod *= (float(CalculateDamage(2, unitTarget) * unitTarget->GetDiseasesByCaster(m_caster->GetGUID(), true) / 2) + 100.0f) / 100.f;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool normalized = false;
|
bool normalized = false;
|
||||||
|
|||||||
+12
-3
@@ -4428,7 +4428,7 @@ AuraEffect* Unit::GetAura(AuraType type, uint32 family, uint32 familyFlag1, uint
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 Unit::GetDiseasesByCaster(uint64 casterGUID) const
|
uint32 Unit::GetDiseasesByCaster(uint64 casterGUID, bool remove)
|
||||||
{
|
{
|
||||||
static const AuraType diseaseAuraTypes[] =
|
static const AuraType diseaseAuraTypes[] =
|
||||||
{
|
{
|
||||||
@@ -4440,13 +4440,22 @@ uint32 Unit::GetDiseasesByCaster(uint64 casterGUID) const
|
|||||||
uint32 diseases=0;
|
uint32 diseases=0;
|
||||||
for(AuraType const* itr = &diseaseAuraTypes[0]; itr && itr[0] != SPELL_AURA_NONE; ++itr)
|
for(AuraType const* itr = &diseaseAuraTypes[0]; itr && itr[0] != SPELL_AURA_NONE; ++itr)
|
||||||
{
|
{
|
||||||
Unit::AuraEffectList const& auras = GetAurasByType(*itr);
|
for(AuraEffectList::iterator i = m_modAuras[*itr].begin();i != m_modAuras[*itr].end(); )
|
||||||
for(AuraEffectList::const_iterator i = auras.begin();i != auras.end(); ++i)
|
|
||||||
{
|
{
|
||||||
// Get auras with disease dispel type by caster
|
// Get auras with disease dispel type by caster
|
||||||
if ((*i)->GetSpellProto()->Dispel == DISPEL_DISEASE
|
if ((*i)->GetSpellProto()->Dispel == DISPEL_DISEASE
|
||||||
&& (*i)->GetCasterGUID()==casterGUID)
|
&& (*i)->GetCasterGUID()==casterGUID)
|
||||||
|
{
|
||||||
++diseases;
|
++diseases;
|
||||||
|
|
||||||
|
if (remove)
|
||||||
|
{
|
||||||
|
RemoveAura((*i)->GetId(), (*i)->GetCasterGUID());
|
||||||
|
i = m_modAuras[*itr].begin();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return diseases;
|
return diseases;
|
||||||
|
|||||||
+1
-1
@@ -1570,7 +1570,7 @@ class TRINITY_DLL_SPEC Unit : public WorldObject
|
|||||||
bool HasAuraTypeWithMiscvalue(AuraType auratype, uint32 miscvalue) const;
|
bool HasAuraTypeWithMiscvalue(AuraType auratype, uint32 miscvalue) const;
|
||||||
AuraEffect* GetDummyAura(uint32 spell_id) const;
|
AuraEffect* GetDummyAura(uint32 spell_id) const;
|
||||||
AuraEffect* GetDummyAura(SpellFamilyNames name, uint32 iconId) const;
|
AuraEffect* GetDummyAura(SpellFamilyNames name, uint32 iconId) const;
|
||||||
uint32 GetDiseasesByCaster(uint64 casterGUID) const;
|
uint32 GetDiseasesByCaster(uint64 casterGUID, bool remove = false);
|
||||||
uint32 GetDoTsByCaster(uint64 casterGUID) const;
|
uint32 GetDoTsByCaster(uint64 casterGUID) const;
|
||||||
|
|
||||||
int32 GetTotalAuraModifier(AuraType auratype) const;
|
int32 GetTotalAuraModifier(AuraType auratype) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user