diff options
author | Shauren <none@none> | 2010-09-05 13:39:10 +0200 |
---|---|---|
committer | Shauren <none@none> | 2010-09-05 13:39:10 +0200 |
commit | 14c8fa492563ca1aa3aebd8951c044be9f8041a5 (patch) | |
tree | 4f9a570295f3ffd406e884576431f595513d1021 /src | |
parent | d42cfb6aa64aa8ce948a58fe911ecd12e868081a (diff) |
Core/Spells: Fixed Nevermelting Ice Crystal trinket
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 4 |
3 files changed, 16 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index d7f75932181..9ed36fe639c 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -8051,6 +8051,16 @@ bool Unit::HandleAuraProc(Unit * pVictim, uint32 damage, Aura * triggeredByAura, switch(dummySpell->SpellFamilyName) { + case SPELLFAMILY_GENERIC: + switch (dummySpell->Id) + { + // Nevermelting Ice Crystal + case 71564: + RemoveAuraFromStack(71564); + *handled = true; + break; + } + break; case SPELLFAMILY_PALADIN: { // Infusion of Light diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 44534e66f64..5eb28396d85 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5798,6 +5798,9 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo caster->CastCustomSpell(28836, SPELLVALUE_BASE_POINT0, damage, target); } break; + case 71563: + if (Aura* newAura = target->AddAura(71564, target)) + newAura->SetStackAmount(newAura->GetSpellProto()->StackAmount); } } // AT REMOVE diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 7459602e2e7..2870fdc20af 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3339,13 +3339,15 @@ void Spell::cast(bool skipCheck) if (m_customAttr & SPELL_ATTR_CU_LINK_CAST) { if (const std::vector<int32> *spell_triggered = sSpellMgr.GetSpellLinked(m_spellInfo->Id)) + { for (std::vector<int32>::const_iterator i = spell_triggered->begin(); i != spell_triggered->end(); ++i) if (*i < 0) m_caster->RemoveAurasDueToSpell(-(*i)); else m_caster->CastSpell(m_targets.getUnitTarget() ? m_targets.getUnitTarget() : m_caster, *i, true); - } + } + if (m_caster->GetTypeId() == TYPEID_PLAYER) m_caster->ToPlayer()->SetSpellModTakingSpell(this, false); |