aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--THANKS4
-rw-r--r--sql/base/world_database.sql11
-rw-r--r--sql/updates/9570_world_spell_group.sql8
-rw-r--r--sql/updates/9570_world_spell_group_stack_rules.sql5
-rw-r--r--src/server/game/Spells/SpellMgr.cpp29
5 files changed, 26 insertions, 31 deletions
diff --git a/THANKS b/THANKS
index fdc9a2d7074..2820050deae 100644
--- a/THANKS
+++ b/THANKS
@@ -64,5 +64,5 @@ footman, elron103, make_the_king, destros, MetaphysicalDrama, disassebler,
Malcrom, Vladmimír Lipták, retriman, hyriuu, Smakapotatis, PainKiller,
bkhorizon, n0n4m3, Chesterfield, Frankir, Wowka321, Morpheux, p0wer,
Ouden, toshik, laise, yavi, Splinter, Syntec, Arthas, denyde, unholy,
-Vaughner, blackmanos, edrinn, Supabad, click, silverice, SupaBad, Xanadu,
-Socolin, Toni.Shocker, Silinoron, 0xFuture, xK1
+Vaughner, blackmanos, edrinn, Liberate, Shauren, dr.tenma, click, silverice,
+SupaBad, Xanadu, Socolin, Shocker, Silinoron, 0xFuture, xK1
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index 4e1bbe4e3c2..bd35af3ea96 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -6008,7 +6008,16 @@ INSERT INTO `spell_group` (`id`, `spell_id`) VALUES
-- mage freezing spells
(1107, 122), -- Frost Nova
(1107, 33395), -- Freeze
-(1107, 55080); -- Shattered Barrier
+(1107, 55080), -- Shattered Barrier
+-- Mark/Gift of the Wild
+(1108, 1126),
+(1108, 21849),
+-- Power Word/Prayer of Fortitude
+(1109, 1243),
+(1109, 21562),
+-- Prayer of/Shadow Protection
+(1110, 976),
+(1110, 27683);
/*!40000 ALTER TABLE `spell_group` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/sql/updates/9570_world_spell_group.sql b/sql/updates/9570_world_spell_group.sql
new file mode 100644
index 00000000000..e5dc9084f6b
--- /dev/null
+++ b/sql/updates/9570_world_spell_group.sql
@@ -0,0 +1,8 @@
+DELETE FROM `spell_group` WHERE `id` IN (1108, 1109, 1110);
+INSERT INTO `spell_group` (`id`, `spell_id`) VALUES
+(1108, 1126), -- Mark of the Wild
+(1108, 21849), -- Gift of the Wild
+(1109, 1243), -- Power Word: Fortitude
+(1109, 21562), -- Prayer of Fortitude
+(1110, 976), -- Shadow Protection
+(1110, 27683); -- Prayer of Shadow Protection \ No newline at end of file
diff --git a/sql/updates/9570_world_spell_group_stack_rules.sql b/sql/updates/9570_world_spell_group_stack_rules.sql
new file mode 100644
index 00000000000..51fc1dc1b79
--- /dev/null
+++ b/sql/updates/9570_world_spell_group_stack_rules.sql
@@ -0,0 +1,5 @@
+DELETE FROM `spell_group_stack_rules` WHERE `group_id` IN (1108, 1109, 1110);
+INSERT INTO `spell_group_stack_rules` (`group_id`, `stack_rule`) VALUES
+(1108, 1), -- Mark/Gift of the Wild
+(1109, 1), -- Power Word/Prayer of Fortitude
+(1110, 1); -- Prayer of/Shadow protection \ No newline at end of file
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 804d939eeb1..c45af051af5 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3168,34 +3168,7 @@ bool SpellMgr::CanAurasStack(SpellEntry const *spellInfo_1, SpellEntry const *sp
return false;
}
- // use icon to check generic spells
- if (!spellInfo_1->SpellFamilyName)
- {
- if (!spellInfo_1->SpellIconID || spellInfo_1->SpellIconID == 1
- || spellInfo_1->SpellIconID != spellInfo_2->SpellIconID)
- return true;
- }
- // use familyflag to check class spells
- else
- {
- if (!spellInfo_1->SpellFamilyFlags
- || spellInfo_1->SpellFamilyFlags != spellInfo_2->SpellFamilyFlags)
- return true;
- }
-
- //use data of highest rank spell(needed for spells which ranks have different effects)
- spellInfo_1 = sSpellStore.LookupEntry(spellId_1);
- spellInfo_2 = sSpellStore.LookupEntry(spellId_2);
-
- //if spells do not have the same effect or aura or miscvalue, they will stack
- for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i)
- if (spellInfo_1->Effect[i] != spellInfo_2->Effect[i]
- || spellInfo_1->EffectApplyAuraName[i] != spellInfo_2->EffectApplyAuraName[i]
- || spellInfo_1->EffectMiscValue[i] != spellInfo_2->EffectMiscValue[i]) // paladin resist aura
- return true; // need itemtype check? need an example to add that check
-
- // different spells with same effect
- return false;
+ return true;
}
bool CanSpellDispelAura(SpellEntry const * dispelSpell, SpellEntry const * aura)