- class spell_sha_cloudburst_totem : public SpellScriptLoader
- {
- public:
- spell_sha_cloudburst_totem() : SpellScriptLoader("spell_sha_cloudburst_totem") { }
- class spell_sha_cloudburst_totem_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_sha_cloudburst_totem_AuraScript);
- void OnProc(const AuraEffect* aurEff, ProcEventInfo& eventInfo)
- {
- int32 bp0 = CalculatePct(eventInfo.GetHealInfo()->GetHeal(), aurEff->GetAmount());
- if (AuraEffect* aurEff0 = aurEff->GetBase()->GetEffect(EFFECT_0))
- aurEff0->ChangeAmount(aurEff0->GetAmount() + bp0);
- }
- void OnRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
- {
- int32 bp0 = aurEff->GetAmount();
- GetTarget()->CastCustomSpell(GetTarget(), SPELL_SHAMAN_CLOUDBURST, &bp0, NULL, NULL, true);
- }
- void Register() override
- {
- OnEffectProc += AuraEffectProcFn(spell_sha_cloudburst_totem_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY);
- AfterEffectRemove += AuraEffectRemoveFn(spell_sha_cloudburst_totem_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_CHANGE_AMOUNT_SEND_FOR_CLIENT_MASK);
- }
- int32 bp0;
- };
- AuraScript* GetAuraScript() const override
- {
- return new spell_sha_cloudburst_totem_AuraScript();
- }
- };
Cloudburst Totem.