diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 776082866..b33ad00b9 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4485,6 +4485,13 @@ SpellCastResult Spell::CheckCast(bool strict) if(m_targets.getUnitTarget() && !m_caster->IsFriendlyTo(m_targets.getUnitTarget()) && !m_caster->HasInArc( M_PI_F, m_targets.getUnitTarget() )) return SPELL_FAILED_UNIT_NOT_INFRONT; } + // Fire Nova + if (m_spellInfo->SpellFamilyName == SPELLFAMILY_SHAMAN && m_spellInfo->SpellIconID == 33) + { + // fire totems slot + if (!m_caster->m_TotemSlot[0]) + return SPELL_FAILED_TOTEMS; + } break; } case SPELL_EFFECT_SCHOOL_DAMAGE: diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 3bde3ceef..e036beb3d 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1982,6 +1982,38 @@ void Spell::EffectDummy(uint32 i) } return; } + // Fire Nova + if (m_spellInfo->SpellIconID == 33) + { + // fire totems slot + if (!m_caster->m_TotemSlot[0]) + return; + + Creature* totem = m_caster->GetMap()->GetCreature(m_caster->m_TotemSlot[0]); + if (!totem) + return; + + uint32 triggered_spell_id; + switch(m_spellInfo->Id) + { + case 1535: triggered_spell_id = 8349; break; + case 8498: triggered_spell_id = 8502; break; + case 8499: triggered_spell_id = 8503; break; + case 11314: triggered_spell_id = 11306; break; + case 11315: triggered_spell_id = 11307; break; + case 25546: triggered_spell_id = 25535; break; + case 25547: triggered_spell_id = 25537; break; + case 61649: triggered_spell_id = 61650; break; + case 61657: triggered_spell_id = 61654; break; + default: return; + } + + totem->CastSpell(totem, triggered_spell_id, true, NULL, NULL, m_caster->GetGUID()); + + // Fire Nova Visual + totem->CastSpell(totem, 19823, true, NULL, NULL, m_caster->GetGUID()); + return; + } break; case SPELLFAMILY_DEATHKNIGHT: // Death Coil diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 7099b75ca..2526b99ec 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 "9362" + #define REVISION_NR "9363" #endif // __REVISION_NR_H__