Core/Spells: Fixed Nevermelting Ice Crystal trinket

--HG--
branch : trunk
This commit is contained in:
Shauren
2010-09-05 13:39:10 +02:00
parent d42cfb6aa6
commit 14c8fa4925
5 changed files with 21 additions and 2 deletions
+2 -1
View File
@@ -19183,7 +19183,8 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
( 72417, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 60), -- Item - Icecrown Reputation Ring Caster Trigger
( 72413, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 60), -- Item - Icecrown Reputation Ring Melee
( 72419, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 60), -- Item - Icecrown Reputation Ring Healer Trigger
( 71404, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 45); -- Item - Icecrown Dungeon Melee Trinket
( 71404, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 45), -- Item - Icecrown Dungeon Melee Trinket
( 71564, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0); -- Nevermelting Ice Crystal
/*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */;
UNLOCK TABLES;
@@ -0,0 +1,3 @@
DELETE FROM `spell_proc_event` WHERE `entry`=71564;
INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`procFlags`,`procEx`,`ppmRate`,`CustomChance`,`Cooldown`) VALUES
(71564,0x00,0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002,0,0,0); -- Nevermelting Ice Crystal
+10
View File
@@ -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
@@ -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
+3 -1
View File
@@ -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);