aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <none@none>2010-09-05 13:39:10 +0200
committerShauren <none@none>2010-09-05 13:39:10 +0200
commit14c8fa492563ca1aa3aebd8951c044be9f8041a5 (patch)
tree4f9a570295f3ffd406e884576431f595513d1021 /src
parentd42cfb6aa64aa8ce948a58fe911ecd12e868081a (diff)
Core/Spells: Fixed Nevermelting Ice Crystal trinket
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp10
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp3
-rw-r--r--src/server/game/Spells/Spell.cpp4
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);