diff options
| -rw-r--r-- | src/game/SpellAuras.cpp | 19 | ||||
| -rw-r--r-- | src/game/SpellEffects.cpp | 11 | ||||
| -rw-r--r-- | src/game/Unit.cpp | 7 |
3 files changed, 30 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..b3f997d249f 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; @@ -2839,6 +2839,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 480a2724d0f..3b1763887dd 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: |
