Cleanup the mage spell scripts, and move SPELLFAMILY_PRIEST and SPELLFAMILY_ROGUE dummy effect handlers to spell scripts.

--HG--
branch : trunk
This commit is contained in:
silinoron committed 2010-07-27 21:12:40 -07:00
1 parent 86576de982
commit e7e49c56cf
6 files changed
+314 -134

No files matched your search

+107 -6
View File
@@ -23,14 +23,115 @@
#include "ScriptPCH.h"
enum PriestSpells
{
PRIEST_SPELL_PENANCE_R1 = 47540,
PRIEST_SPELL_PENANCE_R1_DAMAGE = 47758,
PRIEST_SPELL_PENANCE_R1_HEAL = 47757,
PRIEST_SPELL_PENANCE_R2 = 53005,
PRIEST_SPELL_PENANCE_R2_DAMAGE = 53001,
PRIEST_SPELL_PENANCE_R2_HEAL = 52986,
PRIEST_SPELL_PENANCE_R3 = 53006,
PRIEST_SPELL_PENANCE_R3_DAMAGE = 53002,
PRIEST_SPELL_PENANCE_R3_HEAL = 52987,
PRIEST_SPELL_PENANCE_R4 = 53007,
PRIEST_SPELL_PENANCE_R4_DAMAGE = 53003,
PRIEST_SPELL_PENANCE_R4_HEAL = 52988,
};
class spell_pri_penance_SpellScript : public SpellScript
{
bool Validate(SpellEntry const * spellEntry)
{
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R1))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R1_DAMAGE))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R1_HEAL))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R2))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R2_DAMAGE))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R2_HEAL))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R3))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R3_DAMAGE))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R3_HEAL))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R4))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R4_DAMAGE))
return false;
if (!sSpellStore.LookupEntry(PRIEST_SPELL_PENANCE_R4_HEAL))
return false;
return true;
}
void HandleDummy(SpellEffIndex effIndex)
{
Unit *unitTarget = GetHitUnit();
if (!unitTarget || !unitTarget->isAlive())
return;
Unit *caster = GetCaster();
SpellEntry const *spellInfo = GetSpellInfo();
int hurt = 0;
int heal = 0;
switch(spellInfo->Id)
{
case PRIEST_SPELL_PENANCE_R1:
hurt = PRIEST_SPELL_PENANCE_R1_DAMAGE;
heal = PRIEST_SPELL_PENANCE_R1_HEAL;
break;
case PRIEST_SPELL_PENANCE_R2:
hurt = PRIEST_SPELL_PENANCE_R2_DAMAGE;
heal = PRIEST_SPELL_PENANCE_R2_HEAL;
break;
case PRIEST_SPELL_PENANCE_R3:
hurt = PRIEST_SPELL_PENANCE_R3_DAMAGE;
heal = PRIEST_SPELL_PENANCE_R3_HEAL;
break;
case PRIEST_SPELL_PENANCE_R4:
hurt = PRIEST_SPELL_PENANCE_R4_DAMAGE;
heal = PRIEST_SPELL_PENANCE_R4_HEAL;
break;
default:
sLog.outError("spell_pri_penance_SpellScript::HandleDummy: Spell %u Penance need set correct heal/damage spell", spellInfo->Id);
return;
}
if (caster->IsFriendlyTo(unitTarget))
caster->CastSpell(unitTarget, heal, false, 0);
else
caster->CastSpell(unitTarget, hurt, false, 0);
}
void Register()
{
// add dummy effect spell handler to Penance
EffectHandlers += EffectHandlerFn(spell_pri_penance_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript *GetSpellScript_spell_pri_penance()
{
return new spell_pri_penance_SpellScript();
}
void AddSC_priest_spell_scripts()
{
//Script *newscript;
Script *newscript;
/*
newscript = new Script;
newscript->Name = "spell_pri_";
newscript->GetSpellScript = &GetSpellScript_spell_pri_;
newscript->Name = "spell_pri_penance";
newscript->GetSpellScript = &GetSpellScript_spell_pri_penance;
newscript->RegisterSelf();
*/
}
}