aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellAuras.cpp19
-rw-r--r--src/game/SpellEffects.cpp21
-rw-r--r--src/game/Unit.cpp25
3 files changed, 58 insertions, 7 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 94ecf0b198d..c922927a1fe 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2072,6 +2072,14 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
}
case SPELLFAMILY_MAGE:
{
+ // Living Bomb
+ if (m_spellProto->SpellFamilyFlags[1] & 0x20000)
+ {
+ if(!m_target || !caster || m_removeMode == AURA_REMOVE_BY_DISPEL || m_removeMode == AURA_REMOVE_BY_DEFAULT)
+ return;
+ caster->CastSpell(m_target, GetModifier()->m_amount, true, NULL, NULL, GetCasterGUID());
+ return;
+ }
break;
}
case SPELLFAMILY_PRIEST:
@@ -3689,6 +3697,17 @@ void Aura::HandleModMechanicImmunity(bool apply, bool Real)
m_target->RemoveAurasDueToSpell(26592);
}
}
+
+ // Heroic Fury (remove Intercept cooldown)
+ if( apply && GetId() == 60970 && m_target->GetTypeId() == TYPEID_PLAYER )
+ {
+ ((Player*)m_target)->RemoveSpellCooldown(20252);
+
+ WorldPacket data(SMSG_CLEAR_COOLDOWN, (4+8));
+ data << uint32(20252);
+ data << uint64(m_target->GetGUID());
+ ((Player*)m_target)->GetSession()->SendPacket(&data);
+ }
}
void Aura::HandleAuraModEffectImmunity(bool apply, bool Real)
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index d9eefb362c1..ba063c20da4 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -584,7 +584,7 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
else if(m_spellInfo->SpellFamilyFlags[1] & 0x1)
{
int32 base = irand((int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MINDAMAGE),(int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MAXDAMAGE));
- damage += int32(float(base)/m_caster->GetAttackTime(RANGED_ATTACK)*2800 + m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.2f);
+ damage += int32(float(base)/m_caster->GetAttackTime(RANGED_ATTACK)*2800 + m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f);
bool found = false;
@@ -1830,6 +1830,16 @@ void Spell::EffectDummy(uint32 i)
return;
}
break;
+ case SPELLFAMILY_DEATHKNIGHT:
+ // Death strike dummy aura apply
+ // Used to proc healing later
+ if (m_spellInfo->SpellFamilyFlags[0] & 0x00000010)
+ {
+ spell_id=45469;
+ m_caster->CastSpell(m_caster,spell_id,true);
+ return;
+ }
+
}
//spells triggered by dummy effect should not miss
@@ -2839,6 +2849,15 @@ void Spell::EffectEnergize(uint32 i)
if (level_diff > 0)
damage -= multiplier * level_diff;
+ //Judgement of wisdom energize effect
+ if(m_spellInfo->Id == 20268)
+ {
+ if(unitTarget->GetTypeId() == TYPEID_PLAYER)
+ {
+ damage = unitTarget->GetCreateMana() * damage / 100;
+ }
+ }
+
if(damage < 0)
return;
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index cc7d9841d41..6771dfdaa80 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -5796,12 +5796,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
// Judgement of Wisdom
case 20186:
{
- if (pVictim->getPowerType() == POWER_MANA)
- {
- int32 gainMana = pVictim->GetCreateMana() * triggeredByAura->GetBasePoints() / 100;
- pVictim->CastCustomSpell(pVictim, 20268, &gainMana, 0, 0, true, 0, triggeredByAura);
- }
- return true;
+ pVictim->CastSpell(pVictim, 20268, true, NULL, triggeredByAura);
}
// Holy Power (Redemption Armor set)
case 28789:
@@ -6338,6 +6333,24 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
triggered_spell_id = 50526;
break;
}
+ // Death Strike healing effect
+ if (dummySpell->Id == 45469)
+ {
+ uint8 n=0;
+ Unit::AuraList const& decSpeedList = pVictim->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
+ for(Unit::AuraList::const_iterator iter = decSpeedList.begin(); iter != decSpeedList.end(); ++iter)
+ {
+ if((*iter)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_DEATHKNIGHT
+ && (*iter)->GetCasterGUID() == GetGUID()
+ && (*iter)->GetSpellProto()->Dispel == DISPEL_DISEASE)
+ {
+ n++;
+ }
+ }
+ int32 heal=0.5f*n*damage+damage;
+ CastCustomSpell(this,45470,&heal,NULL,NULL,true);
+ return true;
+ }
break;
}
case SPELLFAMILY_POTION: