Scripts/Spells: Fixed Rogue's Recuperate, Mage's Conjure Refreshment and Paladin's Sacred Shield.

Also fixed SQL file naming.
This commit is contained in:
Warpten
2012-12-01 14:58:56 +01:00
parent fc6c93d0c4
commit 4d111c10f0
5 changed files with 175 additions and 4 deletions
+70
View File
@@ -39,6 +39,7 @@ enum MageSpells
SPELL_MAGE_SUMMON_WATER_ELEMENTAL_PERMANENT = 70908,
SPELL_MAGE_SUMMON_WATER_ELEMENTAL_TEMPORARY = 70907,
SPELL_MAGE_GLYPH_OF_BLAST_WAVE = 62126,
SPELL_MAGE_CONJURE_REFRESHMENT = 42955,
};
class spell_mage_blast_wave : public SpellScriptLoader
@@ -423,6 +424,75 @@ public:
}
};
struct ConjureRefreshmentData
{
uint32 minLevel;
uint32 maxLevel;
uint32 spellId;
};
uint8 const MAX_CONJURE_REFRESHMENT_SPELLS = 7;
const ConjureRefreshmentData _conjureData[MAX_CONJURE_REFRESHMENT_SPELLS] =
{
{ 33, 43, 92739 },
{ 44, 53, 92799 },
{ 54, 63, 92802 },
{ 64, 73, 92805 },
{ 74, 79, 74625 },
{ 80, 84, 92822 },
{ 85, 85, 92727 }
};
class spell_mage_conjure_refreshment : public SpellScriptLoader
{
public:
spell_mage_conjure_refreshment() : SpellScriptLoader("spell_mage_conjure_refreshment") { }
class spell_mage_conjure_refreshment_SpellScript : public SpellScript
{
PrepareSpellScript(spell_mage_conjure_refreshment_SpellScript);
bool Validate(SpellInfo const* /*spellEntry*/)
{
for (uint8 i = 0; i < MAX_CONJURE_REFRESHMENT_SPELLS; ++i)
if (!sSpellMgr->GetSpellInfo(_conjureData[i].spellId))
return false;
return true;
}
bool Load()
{
if (GetCaster()->GetTypeId() != TYPEID_PLAYER)
return false;
return true;
}
void HandleDummy(SpellEffIndex /*effIndex*/)
{
uint8 level = GetHitUnit()->getLevel();
for (uint8 i = 0; i < MAX_CONJURE_REFRESHMENT_SPELLS; ++i)
{
ConjureRefreshmentData const& spellData = _conjureData[i];
if (level < spellData.minLevel || level > spellData.maxLevel)
continue;
GetHitUnit()->CastSpell(GetHitUnit(), spellData.spellId);
break;
}
}
void Register()
{
OnEffectHitTarget += SpellEffectFn(spell_mage_conjure_refreshment_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const
{
return new spell_mage_conjure_refreshment_SpellScript();
}
};
void AddSC_mage_spell_scripts()
{
new spell_mage_blast_wave();