aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/FULL/world_spell_full.sql6
-rw-r--r--sql/updates/4307_world_TDB.sql4
-rw-r--r--src/game/Spell.cpp12
-rw-r--r--src/game/SpellAuras.cpp4
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: