	{
        oTarget = GetSpellTargetObject();
        ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(1044),GetSpellTargetLocation());
        nVFX = 3005;


        if(GetIsEnemy(oTarget,OBJECT_SELF) && !GetIsNeutral(oTarget) ) {
            SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), SWFP_HARMFUL));
            if(!ReflexSave(oTarget, nTopDC, SAVING_THROW_TYPE_NONE))
            {
                ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nTopDMG, DAMAGE_TYPE_PIERCING), oTarget);
            }
        }

        oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fTop, GetSpellTargetLocation(), FALSE);
        while(GetIsObjectValid(oTarget))
        {
            if(GetIsEnemy(oTarget,OBJECT_SELF) && !GetIsNeutral(oTarget) )
            {
                SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), SWFP_HARMFUL));
                if(!ReflexSave(oTarget, nTopDC, SAVING_THROW_TYPE_NONE))
                {
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nTopDMG, DAMAGE_TYPE_PIERCING), oTarget);
                }
                else
                {
                    int nApply;
                    if( GetHasFeat( FEAT_EVASION, oTarget ) ) {
                        nApply = 0;
                    }
                    else {
                        nApply = nTopDMG / 2;
                    }
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nApply, DAMAGE_TYPE_PIERCING), oTarget);
                }
            }
            oTarget = GetNextObjectInShape(SHAPE_SPHERE, fTop, GetSpellTargetLocation(), FALSE);
        }
    }