diff options
-rw-r--r-- | sql/FULL/world_spell_full.sql | 6 | ||||
-rw-r--r-- | sql/updates/4307_world_TDB.sql | 4 | ||||
-rw-r--r-- | src/game/Spell.cpp | 12 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 4 |
4 files changed, 19 insertions, 7 deletions
diff --git a/sql/FULL/world_spell_full.sql b/sql/FULL/world_spell_full.sql index 5ec11442944..6f947ee09b4 100644 --- a/sql/FULL/world_spell_full.sql +++ b/sql/FULL/world_spell_full.sql @@ -49,12 +49,6 @@ INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comm ( 17850, 54501, 2, 'Consume Shadows - Rank 2'), ( 17767, 54501, 2, 'Consume Shadows - Rank 1'), ( 53563, 53651, 2, 'Beacon of Light'), -( 16857, 60089, 0, 'Faerie Fire (Feral) Rank 1'), -# ( 17390, 60089, 0, 'Faerie Fire (Feral) Rank 2'), removed in 313 -# ( 17391, 60089, 0, 'Faerie Fire (Feral) Rank 3'), -# ( 17392, 60089, 0, 'Faerie Fire (Feral) Rank 4'), -# ( 27011, 60089, 0, 'Faerie Fire (Feral) Rank 5'), -# ( 48475, 60089, 0, 'Faerie Fire (Feral) Rank 6'), ( 781, 56446, 0, 'Disengage'), ( 57635, 57636, 0, 'Disengage'), ( 60932, 60934, 0, 'Disengage'), diff --git a/sql/updates/4307_world_TDB.sql b/sql/updates/4307_world_TDB.sql new file mode 100644 index 00000000000..eb99a037823 --- /dev/null +++ b/sql/updates/4307_world_TDB.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (16857); +DELETE FROM `spell_linked_spell` WHERE `entry` IN 60089); +INSERT INTO `spell_bonus_data` (entry, direct_bonus, dot_bonus, ap_bonus, comments) VALUES +(60089, 0, 0, 0.05, 'Faerie Fire (feral)'); diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index bb4364f8acf..2dd24dcfc6c 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2723,6 +2723,18 @@ void Spell::cast(bool skipCheck) m_preCastSpell = 23230; // Blood Fury - Healing Reduction break; } + case SPELLFAMILY_DRUID: + { + // Faerie Fire (Feral) + if (m_spellInfo->SpellFamilyFlags[0] & 0x00000400) + { + // Trigger only if has correct shapeshift for triggered spell + SpellEntry const * spellInfo = sSpellStore.LookupEntry(60089); + if (GetErrorAtShapeshiftedCast(spellInfo, m_caster->m_form) == SPELL_CAST_OK) + m_preCastSpell = 60089; + } + break; + } } // traded items have trade slot instead of guid in m_itemTargetGUID // set to real guid to be sent later to the client diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 287376c7618..a43d748849b 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1456,10 +1456,12 @@ void AuraEffect::HandleShapeshiftBoosts(bool apply) spellId = 27792; spellId2 = 27795; // must be second, this important at aura remove to prevent to early iterator invalidation. break; + case FORM_SHADOW: + spellId = 49868; + break; case FORM_GHOUL: case FORM_GHOSTWOLF: case FORM_AMBIENT: - case FORM_SHADOW: case FORM_STEALTH: case FORM_CREATURECAT: case FORM_CREATUREBEAR: |