aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorazazel <none@none>2010-08-06 23:03:43 +0600
committerazazel <none@none>2010-08-06 23:03:43 +0600
commit2562a4651f94e2dc40ccce108a2497c2c26bfff6 (patch)
tree65baee9a439e324c2761731817cac93fd1c4e698
parentb63a31f513db5274e85afc323d143292d8f3e88f (diff)
Moved Pain and Suffering (47948) script effect to spell script.
--HG-- branch : trunk
-rw-r--r--sql/base/world_database.sql1
-rw-r--r--sql/updates/9199_world_spell_script_names.sql2
-rw-r--r--src/server/game/Spells/SpellEffects.cpp19
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp28
4 files changed, 31 insertions, 19 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql
index 8e769eb010e..656f1ead05c 100644
--- a/sql/base/world_database.sql
+++ b/sql/base/world_database.sql
@@ -14731,6 +14731,7 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
( 31231, 'spell_rog_cheat_death'),
( 51662, 'spell_rog_hunger_for_blood'),
-- priest
+( 47948, 'spell_pri_pain_and_suffering_proc'),
(-47540, 'spell_pri_penance'),
-- death knight
-- shaman
diff --git a/sql/updates/9199_world_spell_script_names.sql b/sql/updates/9199_world_spell_script_names.sql
new file mode 100644
index 00000000000..0ba1b525fbc
--- /dev/null
+++ b/sql/updates/9199_world_spell_script_names.sql
@@ -0,0 +1,2 @@
+DELETE FROM `spell_script_names` WHERE `spell_id`=47948 AND `ScriptName`='spell_pri_pain_and_suffering_proc';
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (47948, 'spell_pri_pain_and_suffering_proc'); \ No newline at end of file
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 9fd56495db3..a42501a8ac5 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -5928,25 +5928,6 @@ void Spell::EffectScriptEffect(uint32 effIndex)
}
break;
}
- case SPELLFAMILY_PRIEST:
- {
- switch(m_spellInfo->Id)
- {
- // Pain and Suffering
- case 47948:
- {
- if (!unitTarget)
- return;
- // Refresh Shadow Word: Pain on target
- if (AuraEffect * aur = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_PRIEST, 0x8000, 0, 0, m_caster->GetGUID()))
- aur->GetBase()->RefreshDuration();
- return;
- }
- default:
- break;
- }
- break;
- }
case SPELLFAMILY_HUNTER:
{
switch(m_spellInfo->Id)
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index c78efc15a22..8c2fffa9c5b 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -22,6 +22,7 @@
*/
#include "ScriptPCH.h"
+#include "SpellAuraEffects.h"
enum PriestSpells
{
@@ -30,6 +31,28 @@ enum PriestSpells
PRIEST_SPELL_PENANCE_R1_HEAL = 47757,
};
+// 47948 Pain and Suffering (proc)
+class spell_pri_pain_and_suffering_proc_SpellScript : public SpellScript
+{
+ void HandleEffectScriptEffect(SpellEffIndex effIndex)
+ {
+ // Refresh Shadow Word: Pain on target
+ if (Unit *unitTarget = GetHitUnit())
+ if (AuraEffect* aur = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_PRIEST, 0x8000, 0, 0, GetCaster()->GetGUID()))
+ aur->GetBase()->RefreshDuration();
+ }
+
+ void Register()
+ {
+ EffectHandlers += EffectHandlerFn(spell_pri_pain_and_suffering_proc_SpellScript::HandleEffectScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
+SpellScript *GetSpellScript_spell_pri_pain_and_suffering_proc()
+{
+ return new spell_pri_pain_and_suffering_proc_SpellScript();
+}
+
class spell_pri_penance_SpellScript : public SpellScript
{
bool Validate(SpellEntry const * spellEntry)
@@ -82,6 +105,11 @@ void AddSC_priest_spell_scripts()
Script *newscript;
newscript = new Script;
+ newscript->Name = "spell_pri_pain_and_suffering_proc";
+ newscript->GetSpellScript = &GetSpellScript_spell_pri_pain_and_suffering_proc;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
newscript->Name = "spell_pri_penance";
newscript->GetSpellScript = &GetSpellScript_spell_pri_penance;
newscript->RegisterSelf();