spell mage arcane orb
This commit is contained in:
@@ -48,6 +48,8 @@ enum MageSpells
|
||||
SPELL_MAGE_ARCANE_BARRAGE_R3 = 321526,
|
||||
SPELL_MAGE_ARCANE_CHARGE = 36032,
|
||||
SPELL_MAGE_ARCANE_MAGE = 137021,
|
||||
SPELL_MAGE_ARCANE_ORB = 153626,
|
||||
SPELL_MAGE_ARCANE_ORB_DAMAGE = 153640,
|
||||
SPELL_MAGE_BLAZING_BARRIER_TRIGGER = 235314,
|
||||
SPELL_MAGE_BLINK = 1953,
|
||||
SPELL_MAGE_BLIZZARD_DAMAGE = 190357,
|
||||
@@ -296,6 +298,61 @@ class spell_mage_arcane_barrage : public SpellScript
|
||||
ObjectGuid _primaryTarget;
|
||||
};
|
||||
|
||||
// 153626 - Arcane Orb: grants 1 Arcane Charge when cast and every time it deals damage
|
||||
class spell_mage_arcane_orb : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_MAGE_ARCANE_ORB_DAMAGE });
|
||||
}
|
||||
|
||||
void HandleHitTarget(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
Unit* target = GetHitUnit();
|
||||
|
||||
if (!caster || !target)
|
||||
return;
|
||||
|
||||
caster->CastSpell(target, SPELL_MAGE_ARCANE_ORB_DAMAGE, true);
|
||||
}
|
||||
|
||||
void GrantChargeOnCast()
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
|
||||
if (!caster || caster->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
caster->ModifyPower(POWER_ARCANE_CHARGES, 1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_mage_arcane_orb::HandleHitTarget, EFFECT_0, SPELL_EFFECT_CREATE_AREATRIGGER);
|
||||
AfterCast += SpellCastFn(spell_mage_arcane_orb::GrantChargeOnCast);
|
||||
}
|
||||
};
|
||||
|
||||
// 153640 - Arcane Orb (Damage): 1 Arcane Charge each time the orb deals damage
|
||||
class spell_mage_arcane_orb_damage : public SpellScript
|
||||
{
|
||||
void HandleOnHit()
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
|
||||
if (!caster || caster->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
caster->ModifyPower(POWER_ARCANE_CHARGES, 1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnHit += SpellHitFn(spell_mage_arcane_orb_damage::HandleOnHit);
|
||||
}
|
||||
};
|
||||
|
||||
// 195302 - Arcane Charge
|
||||
class spell_mage_arcane_charge_clear : public SpellScript
|
||||
{
|
||||
@@ -3039,6 +3096,8 @@ void AddSC_mage_spell_scripts()
|
||||
RegisterSpellScript(spell_mage_alter_time_active);
|
||||
RegisterSpellScript(spell_mage_arcane_barrage);
|
||||
RegisterSpellScript(spell_mage_arcane_charge_clear);
|
||||
RegisterSpellScript(spell_mage_arcane_orb);
|
||||
RegisterSpellScript(spell_mage_arcane_orb_damage);
|
||||
RegisterSpellScript(spell_mage_arcane_explosion);
|
||||
RegisterSpellScript(spell_mage_blazing_barrier);
|
||||
RegisterAreaTriggerAI(areatrigger_mage_blizzard);
|
||||
|
||||
Reference in New Issue
Block a user