SPELL_EFFECT_OVERRIDE_RETURNS AH_17( Aura *aur, bool apply, uint8 i ) { if( apply == false && aur->GetSpellProto()->eff[i].EffectApplyAuraName == SPELL_AURA_SCHOOL_ABSORB ) { Absorb *abs = (Absorb*)aur->temp_custom_structure_holder; if( abs && abs->amt <= 0 ) { Unit * caster = aur->GetUnitCaster(); if( caster ) { Aura *a = caster->HasAuraWithNameHash( SPELL_HASH_RAPTURE, 0, AURA_SEARCH_PASSIVE ); if( a ) { //ever initialized ? if( a->m_modList[0].fixed_amount[0] < (int32)getMSTime() ) { uint32 energize_pct = a->GetSpellProto()->eff[0].EffectBasePoints; Aura *b = caster->HasAuraWithNameHash( SPELL_HASH_ITEM___PRIEST_T13_HEALER_4P_BONUS__HOLY_WORD_AND_POWER_WORD__SHIELD_, 0, AURA_SEARCH_PASSIVE ); if( b ) energize_pct += b->GetSpellProto()->eff[1].EffectBasePoints; caster->Energize( caster, 47755, caster->GetMaxPower( POWER_TYPE_MANA ) * energize_pct / 100, POWER_TYPE_MANA, 0 ); a->m_modList[0].fixed_amount[0] = getMSTime() + a->GetSpellProto()->proc_interval; // 12 seconds } } } } } return SPELL_EFFECT_OVERRIDE_CONTINUE_EXECUTION; }
bool ManaTide(uint32 i, Spell* pSpell) { Unit* unitTarget = pSpell->GetUnitTarget(); if(unitTarget != NULL && unitTarget->isAlive()) { uint32 gain = (uint32) (unitTarget->GetUInt32Value(UNIT_FIELD_MAXPOWER1)*0.06); if(gain) unitTarget->Energize(unitTarget, 16191, gain, POWER_TYPE_MANA); } return true; }
bool ManaTide(uint32 i, Spell* s) { Unit* unitTarget = s->GetUnitTarget(); if(unitTarget == NULL || unitTarget->IsDead() || unitTarget->getClass() == WARRIOR || unitTarget->getClass() == ROGUE) return false; uint32 gain = (uint32)(unitTarget->GetMaxPower(POWER_TYPE_MANA) * 0.06); unitTarget->Energize(unitTarget, 16191, gain, POWER_TYPE_MANA); return true; }