Scripts/Spells: move implementation of some spells into scripts.

* 41337 Aura of Anger
* 46394 Burn (Brutallus)
* 53302 Sniper Training
* 45472 Parachute
* 66118 Leeching Swarm
* 51685 Prey on the Weak
* 20911 Blessing of Sanctuary
* 25899 Greater Blessing of Sanctuary
Scripts/Spells: remove several spells implementations from core to table (requires DB data)
* 31231 Cheat Death
* 51662 Hunger for Blood

--HG--
branch : trunk
This commit is contained in:
azazel
2010-09-21 23:59:45 +06:00
parent 38be7aab55
commit 5eb0fd80ac
7 changed files with 346 additions and 183 deletions
+8 -2
View File
@@ -26752,8 +26752,12 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
( 24750, 'spell_gen_trick'),
( 24751, 'spell_gen_trick_or_treat'),
( 29266, 'spell_creature_permanent_feign_death'),
( 41337, 'spell_gen_aura_of_anger'),
( 45472, 'spell_gen_parachute'),
( 46394, 'spell_gen_burn_brutallus'),
( 57685, 'spell_creature_permanent_feign_death'),
( 58601, 'spell_gen_remove_flight_auras'),
( 66118, 'spell_gen_leeching_swarm'),
( 58951, 'spell_creature_permanent_feign_death'),
( 70592, 'spell_creature_permanent_feign_death'),
( 70628, 'spell_creature_permanent_feign_death'),
@@ -26829,6 +26833,8 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
( 20425, 'spell_pal_judgement_of_command'),
( 63521, 'spell_pal_guarded_by_the_light'),
(-20473, 'spell_pal_holy_shock'),
( 20911, 'spell_pal_blessing_of_sanctuary'),
( 25899, 'spell_pal_blessing_of_sanctuary')
( 37877, 'spell_pal_blessing_of_faith'),
-- hunter
( 53209, 'spell_hun_chimera_shot'),
@@ -26837,13 +26843,13 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
( 53478, 'spell_hun_last_stand_pet'),
( 23989, 'spell_hun_readiness'),
( 37506, 'spell_hun_scatter_shot'),
(-53302, 'spell_hun_sniper_training'),
( 55709, 'spell_hun_pet_heart_of_the_phoenix'),
( 54044, 'spell_hun_pet_carrion_feeder'),
-- rogue
( 5938, 'spell_rog_shiv'),
( 14185, 'spell_rog_preparation'),
( 31231, 'spell_rog_cheat_death'),
( 51662, 'spell_rog_hunger_for_blood'),
(-51685, 'spell_rog_prey_on_the_weak'),
-- priest
( 47948, 'spell_pri_pain_and_suffering_proc'),
(-47540, 'spell_pri_penance'),
@@ -0,0 +1,20 @@
DELETE FROM `spell_script_names` WHERE `spell_id`=41337 AND `ScriptName`='spell_gen_aura_of_anger';
DELETE FROM `spell_script_names` WHERE `spell_id`=46394 AND `ScriptName`='spell_gen_burn_brutallus';
DELETE FROM `spell_script_names` WHERE `spell_id`=-53302 AND `ScriptName`='spell_hun_sniper_training';
DELETE FROM `spell_script_names` WHERE `spell_id`=45472 AND `ScriptName`='spell_gen_parachute';
DELETE FROM `spell_script_names` WHERE `spell_id`=-51685 AND `ScriptName`='spell_rog_prey_on_the_weak';
DELETE FROM `spell_script_names` WHERE `spell_id`=66118 AND `ScriptName`='spell_gen_leeching_swarm';
DELETE FROM `spell_script_names` WHERE `spell_id` IN (20911,25899) AND `ScriptName`='spell_pal_blessing_of_sanctuary';
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(41337,'spell_gen_aura_of_anger'),
(46394,'spell_gen_burn_brutallus'),
(-53302,'spell_hun_sniper_training'),
(45472,'spell_gen_parachute'),
(-51685,'spell_rog_prey_on_the_weak'),
(66118,'spell_gen_leeching_swarm'),
(20911,'spell_pal_blessing_of_sanctuary'),
(25899,'spell_pal_blessing_of_sanctuary');
DELETE FROM `spell_script_names` WHERE `spell_id`=51662 AND `ScriptName`='spell_rog_hunger_for_blood';
DELETE FROM `spell_script_names` WHERE `spell_id`=31231 AND `ScriptName`='spell_rog_cheat_death';
@@ -1057,22 +1057,6 @@ void AuraEffect::UpdatePeriodic(Unit * caster)
{
switch(GetAuraType())
{
case SPELL_AURA_PERIODIC_DAMAGE:
switch (GetId())
{
case 41337: // Aura of Anger
if (AuraEffect * aurEff = GetBase()->GetEffect(1))
aurEff->ChangeAmount(aurEff->GetAmount()+5);
SetAmount(100 * m_tickNumber);
break;
case 46394: // Brutallus Burn
if (m_tickNumber % 11 == 0)
SetAmount(GetAmount() * 2);
break;
default:
break;
}
break;
case SPELL_AURA_DUMMY:
// Haunting Spirits
if (GetId() == 7057)
@@ -1081,24 +1065,6 @@ void AuraEffect::UpdatePeriodic(Unit * caster)
m_amplitude *= IN_MILLISECONDS;
}
break;
case SPELL_AURA_PERIODIC_TRIGGER_SPELL:
switch (GetId())
{
// Sniper training
case 53302:
case 53303:
case 53304:
Unit * target = GetBase()->GetUnitOwner();
if (target->GetTypeId() != TYPEID_PLAYER)
break;
if (target->ToPlayer()->isMoving())
m_amount = target->CalculateSpellDamage(target, m_spellProto,m_effIndex, &m_baseAmount);
else
--m_amount;
break;
}
break;
case SPELL_AURA_PERIODIC_DUMMY:
switch(GetSpellProto()->SpellFamilyName)
{
@@ -1913,32 +1879,6 @@ void AuraEffect::PeriodicDummyTick(Unit * target, Unit * caster) const
// 7053 Forsaken Skill: Shadow
return;
}
case 45472: // Parachute
if (target->GetTypeId() == TYPEID_PLAYER)
{
Player *plr = (Player*)target;
if (plr->IsFalling())
{
plr->RemoveAurasDueToSpell(45472);
plr->CastSpell(plr, 44795, true);
}
}
break;
case 51685: // Prey on the Weak
case 51686:
case 51687:
case 51688:
case 51689:
if (target->getVictim() && (target->GetHealthPct() > target->getVictim()->GetHealthPct())) {
if (!target->HasAura(58670)) {
int32 basepoints = SpellMgr::CalculateSpellEffectAmount(GetSpellProto(), 0);
target->CastCustomSpell(target, 58670, &basepoints, 0, 0, true);
}
}
else
target->RemoveAurasDueToSpell(58670);
break;
case 62292: // Blaze (Pool of Tar)
// should we use custom damage?
target->CastSpell((Unit*)NULL, m_spellProto->EffectTriggerSpell[m_effIndex], true);
@@ -1958,14 +1898,6 @@ void AuraEffect::PeriodicDummyTick(Unit * target, Unit * caster) const
target->RemoveAura(64821);
}
break;
case 66118: // Leeching Swarm (Anub'arak)
int32 lifeLeeched = target->GetHealth() * GetAmount() / 100;
if (lifeLeeched < 250) lifeLeeched = 250;
// Damage
caster->CastCustomSpell(target, 66240, &lifeLeeched, 0, 0, false);
// Heal
caster->CastCustomSpell(caster, 66125, &lifeLeeched, 0, 0, false);
break;
}
break;
case SPELLFAMILY_MAGE:
@@ -2329,27 +2261,6 @@ void AuraEffect::TriggerSpell(Unit * target, Unit * caster) const
}
break;
}
case SPELLFAMILY_HUNTER:
{
switch (auraId)
{
// Sniper training
case 53302:
case 53303:
case 53304:
// We are standing at the moment
if (GetAmount() > 0)
return;
triggerSpellId = 64418 + auraId - 53302;
// If aura is active - no need to continue
if (target->HasAura(triggerSpellId))
return;
break;
}
break;
}
case SPELLFAMILY_SHAMAN:
{
switch(auraId)
@@ -6158,26 +6069,8 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo
break;
}
case SPELLFAMILY_PALADIN:
if (!(mode & AURA_EFFECT_HANDLE_REAL))
break;
switch (GetSpellProto()->SpellIconID)
{
// Blessing of Sanctuary
// Greater Blessing of Sanctuary
case 19:
case 1804:
{
if (!caster)
break;
if (apply)
caster->CastSpell(target, 67480, true);
else
target->RemoveAura(67480, GetCasterGUID());
break;
}
}
// if (!(mode & AURA_EFFECT_HANDLE_REAL))
// break;
break;
}
+154
View File
@@ -23,6 +23,106 @@
*/
#include "ScriptPCH.h"
#include "SpellAuraEffects.h"
// 41337 Aura of Anger
class spell_gen_aura_of_anger : public SpellScriptLoader
{
public:
spell_gen_aura_of_anger() : SpellScriptLoader("spell_gen_aura_of_anger") { }
class spell_gen_aura_of_anger_AuraScript : public AuraScript
{
void HandleEffectPeriodicUpdate(AuraEffect * aurEff)
{
if (AuraEffect * aurEff1 = aurEff->GetBase()->GetEffect(EFFECT_1))
aurEff1->ChangeAmount(aurEff1->GetAmount() + 5);
aurEff->SetAmount(100 * aurEff->GetTickNumber());
}
void Register()
{
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_aura_of_anger_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
AuraScript *GetAuraScript() const
{
return new spell_gen_aura_of_anger_AuraScript();
}
};
// 46394 Brutallus Burn
class spell_gen_burn_brutallus : public SpellScriptLoader
{
public:
spell_gen_burn_brutallus() : SpellScriptLoader("spell_gen_burn_brutallus") { }
class spell_gen_burn_brutallus_AuraScript : public AuraScript
{
void HandleEffectPeriodicUpdate(AuraEffect * aurEff)
{
if (aurEff->GetTickNumber() % 11 == 0)
aurEff->SetAmount(aurEff->GetAmount() * 2);
}
void Register()
{
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_burn_brutallus_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
AuraScript *GetAuraScript() const
{
return new spell_gen_burn_brutallus_AuraScript();
}
};
// 45472 Parachute
enum eParachuteSpells
{
SPELL_PARACHUTE = 45472,
SPELL_PARACHUTE_BUFF = 44795,
};
class spell_gen_parachute : public SpellScriptLoader
{
public:
spell_gen_parachute() : SpellScriptLoader("spell_gen_parachute") { }
class spell_gen_parachute_AuraScript : public AuraScript
{
bool Validate(SpellEntry const * /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(SPELL_PARACHUTE))
return false;
if (!sSpellStore.LookupEntry(SPELL_PARACHUTE_BUFF))
return false;
return true;
}
void HandleEffectPeriodic(AuraEffect const * /*aurEff*/, AuraApplication const * aurApp)
{
if (Unit* pTarget = aurApp->GetTarget())
if (Player* pPlayerTarget = pTarget->ToPlayer())
if (pPlayerTarget->IsFalling())
{
pPlayerTarget->RemoveAurasDueToSpell(SPELL_PARACHUTE);
pPlayerTarget->CastSpell(pPlayerTarget, SPELL_PARACHUTE_BUFF, true);
}
}
void Register()
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript *GetAuraScript() const
{
return new spell_gen_parachute_AuraScript();
}
};
enum NPCEntries
{
@@ -115,6 +215,56 @@ public:
}
};
// 66118 Leeching Swarm
enum eLeechingSwarmSpells
{
SPELL_LEECHING_SWARM_DMG = 66240,
SPELL_LEECHING_SWARM_HEAL = 66125,
};
class spell_gen_leeching_swarm : public SpellScriptLoader
{
public:
spell_gen_leeching_swarm() : SpellScriptLoader("spell_gen_leeching_swarm") { }
class spell_gen_leeching_swarm_AuraScript : public AuraScript
{
bool Validate(SpellEntry const * /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(SPELL_LEECHING_SWARM_DMG))
return false;
if (!sSpellStore.LookupEntry(SPELL_LEECHING_SWARM_HEAL))
return false;
return true;
}
void HandleEffectPeriodic(AuraEffect const * aurEff, AuraApplication const * aurApp)
{
if (Unit* pTarget = aurApp->GetTarget())
if (Unit* pCaster = GetCaster())
{
int32 lifeLeeched = pTarget->CountPctFromMaxHealth(aurEff->GetAmount());
if (lifeLeeched < 250)
lifeLeeched = 250;
// Damage
pCaster->CastCustomSpell(pTarget, SPELL_LEECHING_SWARM_DMG, &lifeLeeched, 0, 0, false);
// Heal
pCaster->CastCustomSpell(pCaster, SPELL_LEECHING_SWARM_HEAL, &lifeLeeched, 0, 0, false);
}
}
void Register()
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_leeching_swarm_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript *GetAuraScript() const
{
return new spell_gen_leeching_swarm_AuraScript();
}
};
// 24750 Trick
enum eTrickSpells
{
@@ -320,6 +470,10 @@ public:
void AddSC_generic_spell_scripts()
{
new spell_gen_aura_of_anger();
new spell_gen_burn_brutallus();
new spell_gen_leeching_swarm();
new spell_gen_parachute();
new spell_gen_pet_summoned();
new spell_gen_remove_flight_auras();
new spell_gen_trick();
@@ -329,6 +329,72 @@ public:
}
};
// 53302, 53303, 53304 Sniper Training
enum eSniperTrainingSpells
{
SPELL_SNIPER_TRAINING_R1 = 53302,
SPELL_SNIPER_TRAINING_BUFF_R1 = 64418,
};
class spell_hun_sniper_training : public SpellScriptLoader
{
public:
spell_hun_sniper_training() : SpellScriptLoader("spell_hun_sniper_training") { }
class spell_hun_sniper_training_AuraScript : public AuraScript
{
bool Validate(SpellEntry const * entry)
{
if (!sSpellStore.LookupEntry(SPELL_SNIPER_TRAINING_R1))
return false;
if (!sSpellStore.LookupEntry(SPELL_SNIPER_TRAINING_BUFF_R1))
return false;
return true;
}
void HandlePeriodic(AuraEffect const * aurEff, AuraApplication const * aurApp)
{
if (aurEff->GetAmount() > 0)
return;
if (Unit* pTarget = aurApp->GetTarget())
{
uint32 spellId = SPELL_SNIPER_TRAINING_BUFF_R1 + GetId() - SPELL_SNIPER_TRAINING_R1;
if (!pTarget->HasAura(spellId))
{
const SpellEntry* triggeredSpellInfo = sSpellStore.LookupEntry(spellId);
Unit* triggerCaster = GetTriggeredSpellCaster(triggeredSpellInfo, GetCaster(), pTarget);
triggerCaster->CastSpell(pTarget, triggeredSpellInfo, true, 0, aurEff);
}
}
}
void HandleUpdatePeriodic(AuraEffect * aurEff)
{
if (Unit* pTarget = GetUnitOwner())
if (Player* pPlayerTarget = pTarget->ToPlayer())
{
int32 baseAmount = aurEff->GetBaseAmount();
int32 amount = pPlayerTarget->isMoving() ?
pTarget->CalculateSpellDamage(pTarget, GetSpellProto(), aurEff->GetEffIndex(), &baseAmount) :
aurEff->GetAmount() - 1;
aurEff->SetAmount(amount);
}
}
void Register()
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_hun_sniper_training_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_hun_sniper_training_AuraScript::HandleUpdatePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript *GetAuraScript() const
{
return new spell_hun_sniper_training_AuraScript();
}
};
class spell_hun_pet_heart_of_the_phoenix : public SpellScriptLoader
{
public:
@@ -424,6 +490,7 @@ void AddSC_hunter_spell_scripts()
new spell_hun_masters_call();
new spell_hun_readiness();
new spell_hun_scatter_shot();
new spell_hun_sniper_training();
new spell_hun_pet_heart_of_the_phoenix();
new spell_hun_pet_carrion_feeder();
}
@@ -27,6 +27,7 @@
enum PaladinSpells
{
PALADIN_SPELL_DIVINE_PLEA = 54428,
PALADIN_SPELL_BLESSING_OF_SANCTUARY_BUFF = 67480,
PALADIN_SPELL_HOLY_SHOCK_R1 = 20473,
PALADIN_SPELL_HOLY_SHOCK_R1_DAMAGE = 25912,
@@ -89,6 +90,49 @@ public:
}
};
// 20911 Blessing of Sanctuary
// 25899 Greater Blessing of Sanctuary
class spell_pal_blessing_of_sanctuary : public SpellScriptLoader
{
public:
spell_pal_blessing_of_sanctuary() : SpellScriptLoader("spell_pal_blessing_of_sanctuary") { }
class spell_pal_blessing_of_sanctuary_AuraScript : public AuraScript
{
bool Validate(SpellEntry const * entry)
{
if (!sSpellStore.LookupEntry(PALADIN_SPELL_BLESSING_OF_SANCTUARY_BUFF))
return false;
return true;
}
void HandleEffectApply(AuraEffect const * /*aurEff*/, AuraApplication const * aurApp, AuraEffectHandleModes /*mode*/)
{
if (Unit* pCaster = GetCaster())
if (Unit* pTarget = aurApp->GetTarget())
pCaster->CastSpell(pTarget, PALADIN_SPELL_BLESSING_OF_SANCTUARY_BUFF, true);
}
void HandleEffectRemove(AuraEffect const * /*aurEff*/, AuraApplication const * aurApp, AuraEffectHandleModes /*mode*/)
{
if (GetCaster())
if (Unit* pTarget = aurApp->GetTarget())
pTarget->RemoveAura(PALADIN_SPELL_BLESSING_OF_SANCTUARY_BUFF, GetCasterGUID());
}
void Register()
{
OnEffectApply += AuraEffectApplyFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_pal_blessing_of_sanctuary_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript *GetAuraScript() const
{
return new spell_pal_blessing_of_sanctuary_AuraScript();
}
};
// 63521 Guarded by The Light
class spell_pal_guarded_by_the_light : public SpellScriptLoader
{
@@ -206,6 +250,7 @@ public:
void AddSC_paladin_spell_scripts()
{
new spell_pal_blessing_of_faith();
new spell_pal_blessing_of_sanctuary();
new spell_pal_guarded_by_the_light();
new spell_pal_holy_shock();
new spell_pal_judgement_of_command();
+50 -72
View File
@@ -25,76 +25,9 @@
enum RogueSpells
{
ROGUE_SPELL_HUNGER_FOR_BLOOD_BUFF = 63848,
ROGUE_SPELL_SHIV_TRIGGERED = 5940,
ROGUE_SPELL_CHEATING_DEATH = 45182,
ROGUE_SPELL_GLYPH_OF_PREPARATION = 56819,
};
class spell_rog_cheat_death : public SpellScriptLoader
{
public:
spell_rog_cheat_death() : SpellScriptLoader("spell_rog_cheat_death") { }
class spell_rog_cheat_death_SpellScript : public SpellScript
{
bool Validate(SpellEntry const * /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(ROGUE_SPELL_CHEATING_DEATH))
return false;
return true;
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit *caster = GetCaster();
caster->CastSpell(caster, ROGUE_SPELL_CHEATING_DEATH, true);
}
void Register()
{
// add dummy effect spell handler to Cheat Death
OnEffect += SpellEffectFn(spell_rog_cheat_death_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript *GetSpellScript() const
{
return new spell_rog_cheat_death_SpellScript;
}
};
class spell_rog_hunger_for_blood : public SpellScriptLoader
{
public:
spell_rog_hunger_for_blood() : SpellScriptLoader("spell_rog_hunger_for_blood") { }
class spell_rog_hunger_for_blood_SpellScript : public SpellScript
{
bool Validate(SpellEntry const * /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(ROGUE_SPELL_HUNGER_FOR_BLOOD_BUFF))
return false;
return true;
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit *caster = GetCaster();
caster->CastSpell(caster, ROGUE_SPELL_HUNGER_FOR_BLOOD_BUFF, true);
}
void Register()
{
// add dummy effect spell handler to Hunger for Blood
OnEffect += SpellEffectFn(spell_rog_hunger_for_blood_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript *GetSpellScript() const
{
return new spell_rog_hunger_for_blood_SpellScript();
}
ROGUE_SPELL_PREY_ON_THE_WEAK = 58670,
};
class spell_rog_preparation : public SpellScriptLoader
@@ -159,6 +92,52 @@ class spell_rog_preparation : public SpellScriptLoader
}
};
// 51685-51689 Prey on the Weak
class spell_rog_prey_on_the_weak : public SpellScriptLoader
{
public:
spell_rog_prey_on_the_weak() : SpellScriptLoader("spell_rog_prey_on_the_weak") { }
class spell_rog_prey_on_the_weak_AuraScript : public AuraScript
{
bool Validate(SpellEntry const * /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(ROGUE_SPELL_PREY_ON_THE_WEAK))
return false;
return true;
}
void HandleEffectPeriodic(AuraEffect const * /*aurEff*/, AuraApplication const * aurApp)
{
if (Unit* pTarget = aurApp->GetTarget())
{
Unit* pVictim = pTarget->getVictim();
if (pVictim && (pTarget->GetHealthPct() > pVictim->GetHealthPct()))
{
if (!pTarget->HasAura(ROGUE_SPELL_PREY_ON_THE_WEAK))
{
int32 bp = SpellMgr::CalculateSpellEffectAmount(GetSpellProto(), 0);
pTarget->CastCustomSpell(pTarget, ROGUE_SPELL_PREY_ON_THE_WEAK, &bp, 0, 0, true);
}
}
else
pTarget->RemoveAurasDueToSpell(ROGUE_SPELL_PREY_ON_THE_WEAK);
}
}
void Register()
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_rog_prey_on_the_weak_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript *GetAuraScript() const
{
return new spell_rog_prey_on_the_weak_AuraScript();
}
};
class spell_rog_shiv : public SpellScriptLoader
{
public:
@@ -198,8 +177,7 @@ class spell_rog_shiv : public SpellScriptLoader
void AddSC_rogue_spell_scripts()
{
new spell_rog_cheat_death;
new spell_rog_hunger_for_blood;
new spell_rog_preparation;
new spell_rog_shiv;
new spell_rog_preparation();
new spell_rog_prey_on_the_weak();
new spell_rog_shiv();
}