*Fix Improved Moonkin Form and Blood Boil disease bonus.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-07-06 00:51:50 +02:00
parent c86bdd2d40
commit c3b93baf49
3 changed files with 38 additions and 16 deletions
+3
View File
@@ -69,6 +69,9 @@ INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comm
(51209, 55095, 1, 'Hungering cold - frost fever'),
(50334, 58923, 2, 'Berserk - modify target number aura'),
( -5229, -51185, 0, 'King of the Jungle - remove with enrage'),
(48384, 50170, 2, 'Improved Moonkin Form'),
(48395, 50171, 2, 'Improved Moonkin Form'),
(48396, 50172, 2, 'Improved Moonkin Form'),
-- Creature
( 36574, 36650, 0, 'Apply Phase Slip Vulnerability'),
+25 -16
View File
@@ -1398,6 +1398,7 @@ void AuraEffect::HandleShapeshiftBoosts(bool apply)
{
uint32 spellId = 0;
uint32 spellId2 = 0;
uint32 spellId3 = 0;
uint32 HotWSpellId = 0;
switch(GetMiscValue())
@@ -1465,7 +1466,6 @@ void AuraEffect::HandleShapeshiftBoosts(bool apply)
case FORM_STEALTH:
case FORM_CREATURECAT:
case FORM_CREATUREBEAR:
spellId = 0;
break;
}
@@ -1474,13 +1474,19 @@ void AuraEffect::HandleShapeshiftBoosts(bool apply)
if(apply)
{
// Remove cooldown of spells triggered on stance change - they may share cooldown with stance spell
if(m_target->GetTypeId() == TYPEID_PLAYER)
((Player *)m_target)->RemoveSpellCooldown(spellId);
if (spellId) m_target->CastSpell(m_target, spellId, true, NULL, this );
if (spellId)
{
if(m_target->GetTypeId() == TYPEID_PLAYER)
((Player *)m_target)->RemoveSpellCooldown(spellId);
m_target->CastSpell(m_target, spellId, true, NULL, this );
}
if(m_target->GetTypeId() == TYPEID_PLAYER)
((Player *)m_target)->RemoveSpellCooldown(spellId2);
if (spellId2) m_target->CastSpell(m_target, spellId2, true, NULL, this);
if (spellId2)
{
if(m_target->GetTypeId() == TYPEID_PLAYER)
((Player *)m_target)->RemoveSpellCooldown(spellId2);
m_target->CastSpell(m_target, spellId2, true, NULL, this);
}
if(m_target->GetTypeId() == TYPEID_PLAYER)
{
@@ -1549,8 +1555,10 @@ void AuraEffect::HandleShapeshiftBoosts(bool apply)
}
else
{
m_target->RemoveAurasDueToSpell(spellId);
m_target->RemoveAurasDueToSpell(spellId2);
if (spellId)
m_target->RemoveAurasDueToSpell(spellId);
if (spellId2)
m_target->RemoveAurasDueToSpell(spellId2);
Unit::AuraMap& tAuras = m_target->GetAuras();
for (Unit::AuraMap::iterator itr = tAuras.begin(); itr != tAuras.end();)
@@ -2821,6 +2829,14 @@ void AuraEffect::HandleAuraDummy(bool apply, bool Real, bool changeAmount)
return;
}
}
// Predatory Strikes
if(m_target->GetTypeId()==TYPEID_PLAYER && GetSpellProto()->SpellIconID == 1563)
{
((Player*)m_target)->UpdateAttackPowerAndDamage();
return;
}
if (!Real)
break;
// Lifebloom
if ( GetSpellProto()->SpellFamilyFlags[1] & 0x10 )
{
@@ -2850,13 +2866,6 @@ void AuraEffect::HandleAuraDummy(bool apply, bool Real, bool changeAmount)
}
return;
}
// Predatory Strikes
if(m_target->GetTypeId()==TYPEID_PLAYER && GetSpellProto()->SpellIconID == 1563)
{
((Player*)m_target)->UpdateAttackPowerAndDamage();
return;
}
break;
}
case SPELLFAMILY_HUNTER:
+10
View File
@@ -680,6 +680,16 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
}
break;
}
case SPELLFAMILY_DEATHKNIGHT:
{
// Blood Boil - bonus for diseased targets
if (m_spellInfo->SpellFamilyFlags[0] & 0x00040000 && unitTarget->GetAura(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_DEATHKNIGHT, 0, 0, 0x00000002, m_caster->GetGUID()))
{
damage += m_damage / 2;
damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)* 0.035f);
}
break;
}
}
if(m_originalCaster && damage > 0 && apply_direct_bonus)