aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/FULL/world_spell_full.sql6
-rw-r--r--sql/updates/5900_world.sql7
-rw-r--r--src/game/SpellAuras.cpp20
-rw-r--r--src/game/Unit.cpp9
4 files changed, 40 insertions, 2 deletions
diff --git a/sql/FULL/world_spell_full.sql b/sql/FULL/world_spell_full.sql
index de54326d679..48674df9af6 100644
--- a/sql/FULL/world_spell_full.sql
+++ b/sql/FULL/world_spell_full.sql
@@ -654,7 +654,8 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 15362, 0x00, 6, 0x10001E00, 0x00010004, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Inspiration (Rank 2)
( 15363, 0x00, 6, 0x10001E00, 0x00010004, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Inspiration (Rank 3)
( 15600, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 1, 0, 0), -- Hand of Justice
-( 16086, 0x00, 11, 0x00000000, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Improved Fire Nova Totem (Rank 1)
+( 16086, 0x04, 11, 0x00000020, 0x00000000, 0x00000000, 0x00011000, 0x00000000, 0, 0, 0), -- Improved Fire Nova Totem (Rank 1)
+( 16544, 0x04, 11, 0x00000020, 0x00000000, 0x00000000, 0x00011000, 0x00000000, 0, 100, 0), -- Improved Fire Nova Totem (Rank 2)
( 16176, 0x00, 11, 0x000001C0, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Ancestral Healing (Rank 1)
( 16180, 0x00, 11, 0x000000C0, 0x00000000, 0x00000010, 0x00000000, 0x00000002, 0, 0, 0), -- Improved Water Shield (Rank 1)
( 16196, 0x00, 11, 0x000000C0, 0x00000000, 0x00000010, 0x00000000, 0x00000002, 0, 0, 0), -- Improved Water Shield (Rank 2)
@@ -674,7 +675,6 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 16487, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Blood Craze (Rank 1)
( 16489, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Blood Craze (Rank 2)
( 16492, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Blood Craze (Rank 3)
-( 16544, 0x00, 11, 0x00000000, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Improved Fire Nova Totem (Rank 2)
( 16550, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Bonespike (Rank 1)
( 16620, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 30), -- Proc Self Invulnerability
( 16624, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0, 0, 0), -- Thorium Shield Spike
@@ -1201,6 +1201,8 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
( 51486, 0x01, 11, 0x20000000, 0x00000000, 0x00000000, 0x00004000, 0x00000001, 0, 0, 0), -- Storm, Earth and Fire
( 51521, 0x00, 11, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Improved Stormstrike
( 51522, 0x00, 11, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Improved Stormstrike
+( 51523, 0x08, 11, 0x00000000, 0x00000001, 0x00000000, 0x00011000, 0x00000000, 0, 50, 0), -- Earthen Power (Rank 1)
+( 51524, 0x08, 11, 0x00000000, 0x00000001, 0x00000000, 0x00011000, 0x00000000, 0, 100, 0), -- Earthen Power (Rank 2)
( 51528, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 2.5, 0, 0), -- Maelstrom Weapon (Rank 1)
( 51529, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 5, 0, 0), -- Maelstrom Weapon (Rank 2)
( 51530, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 7.5, 0, 0), -- Maelstrom Weapon (Rank 3)
diff --git a/sql/updates/5900_world.sql b/sql/updates/5900_world.sql
new file mode 100644
index 00000000000..e8f2d144870
--- /dev/null
+++ b/sql/updates/5900_world.sql
@@ -0,0 +1,7 @@
+
+DELETE FROM `spell_proc_event` WHERE `entry` IN (16086,16544,51523,51524);
+INSERT INTO `spell_proc_event` VALUES
+( 16086, 0x04, 11, 0x00000020, 0x00000000, 0x00000000, 0x00011000, 0x00000000, 0, 0, 0), -- Improved Fire Nova Totem (Rank 1)
+( 16544, 0x04, 11, 0x00000020, 0x00000000, 0x00000000, 0x00011000, 0x00000000, 0, 100, 0), -- Improved Fire Nova Totem (Rank 2)
+( 51523, 0x08, 11, 0x00000000, 0x00000001, 0x00000000, 0x00011000, 0x00000000, 0, 50, 0), -- Earthen Power (Rank 1)
+( 51524, 0x08, 11, 0x00000000, 0x00000001, 0x00000000, 0x00011000, 0x00000000, 0, 100, 0); -- Earthen Power (Rank 2)
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index c663061ae74..f1f5b4f21f4 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -6271,6 +6271,26 @@ void AuraEffect::PeriodicTick()
}
case SPELL_AURA_PERIODIC_TRIGGER_SPELL:
{
+ Unit *pCaster = GetCaster();
+ if (!pCaster)
+ return;
+
+ if (pCaster->GetTypeId() == TYPEID_UNIT && ((Creature*)pCaster)->isTotem() && ((Totem*)pCaster)->GetTotemType() != TOTEM_STATUE)
+ {
+ uint32 procAttacker = PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT; // | PROC_FLAG_SUCCESSFUL_HARMFUL_SPELL_HIT;
+ uint32 procVictim = PROC_FLAG_SUCCESSFUL_AOE_SPELL_HIT; // | PROC_FLAG_TAKEN_HARMFUL_SPELL_HIT;
+ SpellEntry const *spellProto = GetSpellProto();
+
+ if (spellProto->SpellFamilyName == SPELLFAMILY_GENERIC) // SPELLFAMILY_GENERIC proc by triggered spell
+ {
+ uint32 trigger_spell_id = spellProto->EffectTriggerSpell[m_effIndex];
+ SpellEntry const *triggeredSpellInfo = sSpellStore.LookupEntry(trigger_spell_id);
+ ((Totem*)pCaster)->GetOwner()->ProcDamageAndSpell(pCaster, procAttacker, procVictim, PROC_EX_NORMAL_HIT, 0, BASE_ATTACK, triggeredSpellInfo);
+ }
+ else
+ ((Totem*)pCaster)->GetOwner()->ProcDamageAndSpell(pCaster, procAttacker, procVictim, PROC_EX_NORMAL_HIT, 0, BASE_ATTACK, spellProto);
+ }
+
TriggerSpell();
break;
}
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index af70169ee39..17b9a6dce58 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -5815,6 +5815,15 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
triggered_spell_id = 28810;
break;
}
+ // Improved Fire Nova (Rank 2)
+ case 16544:
+ triggered_spell_id = 51880;
+ break;
+ // Earthen Power (Rank 1, 2)
+ case 51523:
+ case 51524:
+ triggered_spell_id = 63532;
+ break;
}
break;
}