示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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;
}