void OnPeriodic(AuraEffect const* aurEff) { if (Unit* caster = GetCaster()) { CustomSpellValues values; values.AddSpellMod(SPELLVALUE_BASE_POINT0, aurEff->GetAmount()); caster->CastCustomSpell(GetSpellInfo()->Effects[EFFECT_0].TriggerSpell, values, GetTarget()); } }
void HandleShareBuff (AuraEffect const* aurEff, AuraEffectHandleModes mode) { if (!GetTargetApplication()) return; if (!GetTargetApplication()->GetBase()) return; if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL) { if (Unit* target = GetTarget()) { CustomSpellValues values; values.AddSpellMod(SPELLVALUE_MAX_TARGETS, 2); values.AddSpellMod(SPELLVALUE_BASE_POINT1, GetTargetApplication()->GetBase()->GetDuration()); GetTarget()->CastCustomSpell(SPELL_WRACK_JUMP, values, NULL, TRIGGERED_FULL_MASK, NULL, NULL, GetCasterGUID()); } } }