diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 39e9a4cb8..f4b65756f 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2035,6 +2035,9 @@ void Aura::HandleAuraDummy(bool apply, bool Real) // Pet will be following owner, this makes him stop target->addUnitState(UNIT_STAT_STUNNED); return; + case 58914: // Kill Command + target->CastSpell(target, 34027, true, NULL, this); + return; case 62061: // Festive Holiday Mount if (target->HasAuraType(SPELL_AURA_MOUNTED)) // Reindeer Transformation @@ -2053,6 +2056,9 @@ void Aura::HandleAuraDummy(bool apply, bool Real) case 71342: // Big Love Rocket Spell::SelectMountByAreaAndSkill(target, 71344, 71345, 71346, 71347, 0); return; + case 71563: // Deadly Precision + target->CastSpell(target, 71564, true, NULL, this); + return; case 72286: // Invincible Spell::SelectMountByAreaAndSkill(target, 72281, 72282, 72283, 72284, 0); return; @@ -2117,17 +2123,8 @@ void Aura::HandleAuraDummy(bool apply, bool Real) switch(GetId()) { case 55198: // Tidal Force - { - // apply max stack bufs - SpellEntry const* buffEntry = sSpellStore.LookupEntry(55166); - if (!buffEntry) - return; - - for(uint32 k = 0; k < buffEntry->StackAmount; ++k) - target->CastSpell(target, buffEntry, true, NULL, this); - + target->CastSpell(target, 55166, true, NULL, this); return; - } } // Earth Shield @@ -2361,38 +2358,30 @@ void Aura::HandleAuraDummy(bool apply, bool Real) return; case 24658: // Unstable Power { - uint32 spellId = 24659; if (apply) { - SpellEntry const *spell = sSpellStore.LookupEntry(spellId); Unit* caster = GetCaster(); - if (!spell || !caster) + if (!caster) return; - for (uint32 i = 0; i < spell->StackAmount; ++i) - caster->CastSpell(target, spellId, true, NULL, NULL, GetCasterGuid()); - - return; + caster->CastSpell(target, 24659, true, NULL, NULL, GetCasterGuid()); } - target->RemoveAurasDueToSpell(spellId); + else + target->RemoveAurasDueToSpell(24659); return; } case 24661: // Restless Strength { - uint32 spellId = 24662; if (apply) { - SpellEntry const* spell = sSpellStore.LookupEntry(spellId); Unit* caster = GetCaster(); - if (!spell || !caster) + if (!caster) return; - for (uint32 i=0; i < spell->StackAmount; ++i) - caster->CastSpell(target, spell->Id, true, NULL, NULL, GetCasterGuid()); - - return; + caster->CastSpell(target, 24662, true, NULL, NULL, GetCasterGuid()); } - target->RemoveAurasDueToSpell(spellId); + else + target->RemoveAurasDueToSpell(24662); return; } case 29266: // Permanent Feign Death @@ -8035,11 +8024,25 @@ m_permanent(false), m_isRemovedOnShapeLost(true), m_deleted(false), m_in_use(0) if(modOwner) modOwner->ApplySpellMod(GetId(), SPELLMOD_CHARGES, m_procCharges); - if (caster && caster->GetObjectGuid().IsUnit() && m_spellProto->Id == 22959) // Improved Scorch + // some custom stack values at aura holder create + switch (m_spellProto->Id) { - // Glyph of Improved Scorch - if (Aura* glyph = ((Unit*)caster)->GetDummyAura(56371)) - m_stackAmount = glyph->GetModifier()->m_amount; + case 22959: // Improved Scorch + if (caster && caster->GetObjectGuid().IsUnit()) + // Glyph of Improved Scorch + if (Aura* glyph = ((Unit*)caster)->GetDummyAura(56371)) + m_stackAmount = glyph->GetModifier()->m_amount; + break; + // some auras applied with max stack + case 24575: // Brittle Armor + case 24662: // Restless Strength + case 24659: // Unstable Power + case 26464: // Mercurial Shield + case 34027: // Kill Command + case 55166: // Tidal Force + case 71564: // Deadly Precision + m_stackAmount = m_spellProto->StackAmount; + break; } for (int32 i = 0; i < MAX_EFFECT_INDEX; ++i) diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 742d9a951..30befc24f 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -2887,28 +2887,12 @@ void Spell::EffectTriggerSpell(SpellEffectIndex effIndex) return; // Brittle Armor - (need add max stack of 24575 Brittle Armor) case 29284: - { - // Brittle Armor - SpellEntry const* spell = sSpellStore.LookupEntry(24575); - if (!spell) - return; - - for (uint32 j=0; j < spell->StackAmount; ++j) - m_caster->CastSpell(unitTarget, spell->Id, true, m_CastItem, NULL, m_originalCasterGUID); + m_caster->CastSpell(unitTarget, 24575, true, m_CastItem, NULL, m_originalCasterGUID); return; - } // Mercurial Shield - (need add max stack of 26464 Mercurial Shield) case 29286: - { - // Mercurial Shield - SpellEntry const* spell = sSpellStore.LookupEntry(26464); - if (!spell) - return; - - for (uint32 j=0; j < spell->StackAmount; ++j) - m_caster->CastSpell(unitTarget, spell->Id, true, m_CastItem, NULL, m_originalCasterGUID); + m_caster->CastSpell(unitTarget, 26464, true, m_CastItem, NULL, m_originalCasterGUID); return; - } // Righteous Defense case 31980: { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 89b67a850..3644d339f 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10995" + #define REVISION_NR "10996" #endif // __REVISION_NR_H__