aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormaximius <none@none>2009-09-14 12:09:22 -0700
committermaximius <none@none>2009-09-14 12:09:22 -0700
commit49b6e6b037fdeb79ee4504e699997d22affc081a (patch)
tree4fe0b94e0350d97b6406ab6dbf619d6f377eed86
parent902f6a14e6970fe7aed8aeff758062d2778e5d7c (diff)
*Stoneclaw Totem & Glyph of Stoneclaw Totem by Themris and thenecromancer
--HG-- branch : trunk
-rw-r--r--sql/updates/5654_world_creature_TDB.sql11
-rw-r--r--src/game/Totem.cpp33
2 files changed, 44 insertions, 0 deletions
diff --git a/sql/updates/5654_world_creature_TDB.sql b/sql/updates/5654_world_creature_TDB.sql
new file mode 100644
index 00000000000..e40ea32058b
--- /dev/null
+++ b/sql/updates/5654_world_creature_TDB.sql
@@ -0,0 +1,11 @@
+
+UPDATE `creature_template` SET `spell2`=55328 WHERE `entry`=3579;
+UPDATE `creature_template` SET `spell2`=55329 WHERE `entry`=3911;
+UPDATE `creature_template` SET `spell2`=55330 WHERE `entry`=3912;
+UPDATE `creature_template` SET `spell2`=55332 WHERE `entry`=3913;
+UPDATE `creature_template` SET `spell2`=55333 WHERE `entry`=7398;
+UPDATE `creature_template` SET `spell2`=55335 WHERE `entry`=7399;
+UPDATE `creature_template` SET `spell2`=55278 WHERE `entry`=15478;
+UPDATE `creature_template` SET `spell2`=58589 WHERE `entry`=31120;
+UPDATE `creature_template` SET `spell2`=58590 WHERE `entry`=31121;
+UPDATE `creature_template` SET `spell2`=58591 WHERE `entry`=31122;
diff --git a/src/game/Totem.cpp b/src/game/Totem.cpp
index aba3550ab5a..0b621e56edf 100644
--- a/src/game/Totem.cpp
+++ b/src/game/Totem.cpp
@@ -91,6 +91,39 @@ void Totem::InitSummon()
if(m_type == TOTEM_PASSIVE)
CastSpell(this, GetSpell(), true);
+
+ // Stoneclaw Totem
+ case 55328: // Rank 1
+ case 55329: // Rank 2
+ case 55330: // Rank 3
+ case 55332: // Rank 4
+ case 55333: // Rank 5
+ case 55335: // Rank 6
+ case 55278: // Rank 7
+ case 58589: // Rank 8
+ case 58590: // Rank 9
+ case 58591: // Rank 10
+ {
+ int32 basepoints0 = damage;
+ // Cast Absorb on totems
+ for(uint8 slot = SUMMON_SLOT_TOTEM; slot < MAX_TOTEM_SLOT; ++slot)
+ {
+ if(!unitTarget->m_SummonSlot[slot])
+ continue;
+
+ Creature* totem = unitTarget->GetMap()->GetCreature(unitTarget->m_SummonSlot[slot]);
+ if(totem && totem->isTotem())
+ m_caster->CastCustomSpell(totem, 55277, &basepoints0, NULL, NULL, true);
+ }
+ // Glyph of Stoneclaw Totem
+ if (AuraEffect *aur=unitTarget->GetAuraEffect(63298, 0))
+ {
+ basepoints0 *= aur->GetAmount();
+ m_caster->CastCustomSpell(unitTarget, 55277, &basepoints0, NULL, NULL, true);
+ }
+ break;
+ }
+
// Some totems can have both instant effect and passive spell
if (GetSpell(1))
CastSpell(this, GetSpell(1), true);