    {  
        if(nSpell == JD_FRAG_MINOR)
        {
            ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(1044),GetSpellTargetLocation());
            nVFX = 3003;
            oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fMinor, GetSpellTargetLocation(), FALSE);
            while(GetIsObjectValid(oTarget))
            {
                if(GetIsEnemy(oTarget,OBJECT_SELF) && !GetIsNeutral(oTarget) )
                {
		            JD_SignalEnemyEvent( oTarget );
                    JD_SignalPartyEvent( GetFirstPC(), nSpell );
                    if(!ReflexSave(oTarget, nMinorDC, SAVING_THROW_TYPE_NONE))
                    {
		   	            effect eStun;
    		            if (GetRacialType(oTarget) == RACIAL_TYPE_DROID){
		        	        eStun = EffectDroidStun();
    		    	    }
    		    	    else {
		        	        eStun = EffectStunned();
    		            }	     
                        if(nSpell == JD_FRAG_TOP) { 
 			                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStun, oTarget, 3.0);
			            }                        
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nMinorDMG, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                    else
                    {
                        int nApply;
                        if( GetHasFeat( FEAT_EVASION, oTarget ) ) {
                            nApply = 0;
                        }
                        else {
                            nApply = nMinorDMG / 2;
                        }
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nApply, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                }
                oTarget = GetNextObjectInShape(SHAPE_SPHERE, fMinor, GetSpellTargetLocation(), FALSE);
            }
        }
        else if(nSpell == JD_FRAG_AVERAGE)
        {
            ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(1044),GetSpellTargetLocation());
            nVFX = 3003;
            oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fAverage, GetSpellTargetLocation(), FALSE);
            while(GetIsObjectValid(oTarget))
            {
                if(GetIsEnemy(oTarget,OBJECT_SELF) && !GetIsNeutral(oTarget) )
                {
		            JD_SignalEnemyEvent( oTarget );
                    JD_SignalPartyEvent( GetFirstPC(), nSpell );
                    if(!ReflexSave(oTarget, nAverageDC, SAVING_THROW_TYPE_NONE))
                    {
		   	            effect eStun;
    		            if (GetRacialType(oTarget) == RACIAL_TYPE_DROID){
		        	        eStun = EffectDroidStun();
    		    	    }
    		    	    else {
		        	        eStun = EffectStunned();
    		            }	     
                        if(nSpell == JD_FRAG_TOP) { 
 			                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStun, oTarget, 3.0);
			            }                        
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nAverageDMG, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                    else
                    {
                        int nApply;
                        if( GetHasFeat( FEAT_EVASION, oTarget ) ) {
                            nApply = 0;
                        }
                        else {
                            nApply = nAverageDMG / 2;
                        }
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nApply, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                }
                oTarget = GetNextObjectInShape(SHAPE_SPHERE, fAverage, GetSpellTargetLocation(), FALSE);
            }
        }
        else if(nSpell == JD_FRAG_STRONG)
        {
            ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(1044),GetSpellTargetLocation());
            nVFX = 3003;
            oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fStrong, GetSpellTargetLocation(), FALSE);
            while(GetIsObjectValid(oTarget))
            {
                if(GetIsEnemy(oTarget,OBJECT_SELF) && !GetIsNeutral(oTarget) )
                {
		            JD_SignalEnemyEvent( oTarget );
                    JD_SignalPartyEvent( GetFirstPC(), nSpell );
                    if(!ReflexSave(oTarget, nStrongDC, SAVING_THROW_TYPE_NONE))
                    {
		   	            effect eStun;
    		            if (GetRacialType(oTarget) == RACIAL_TYPE_DROID){
		        	        eStun = EffectDroidStun();
    		    	    }
    		    	    else {
		        	        eStun = EffectStunned();
    		            }	     
                        if(nSpell == JD_FRAG_TOP) { 
 			                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStun, oTarget, 3.0);
			            }                        
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nStrongDMG, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                    else
                    {
                        int nApply;
                        if( GetHasFeat( FEAT_EVASION, oTarget ) ) {
                            nApply = 0;
                        }
                        else {
                            nApply = nStrongDMG / 2;
                        }
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nApply, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                }
                oTarget = GetNextObjectInShape(SHAPE_SPHERE, fStrong, GetSpellTargetLocation(), FALSE);
            }
        }
        else if(nSpell == JD_FRAG_DEADLY)
        {
            ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(1044),GetSpellTargetLocation());
            nVFX = 3003;
            oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fDeadly, GetSpellTargetLocation(), FALSE);
            while(GetIsObjectValid(oTarget))
            {
                if(GetIsEnemy(oTarget,OBJECT_SELF) && !GetIsNeutral(oTarget) )
                {
		            JD_SignalEnemyEvent( oTarget );
                    JD_SignalPartyEvent( GetFirstPC(), nSpell );
                    if(!ReflexSave(oTarget, nDeadlyDC, SAVING_THROW_TYPE_NONE))
                    {
		   	            effect eStun;
    		            if (GetRacialType(oTarget) == RACIAL_TYPE_DROID){
		        	        eStun = EffectDroidStun();
    		    	    }
    		    	    else {
		        	        eStun = EffectStunned();
    		            }	     
                        if(nSpell == JD_FRAG_TOP) { 
 			                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStun, oTarget, 3.0);
			            }                        
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDeadlyDMG, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                    else
                    {
                        int nApply;
                        if( GetHasFeat( FEAT_EVASION, oTarget ) ) {
                            nApply = 0;
                        }
                        else {
                            nApply = nDeadlyDMG / 2;
                        }
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nApply, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                }
                oTarget = GetNextObjectInShape(SHAPE_SPHERE, fDeadly, GetSpellTargetLocation(), FALSE);
            }
        }
        else if(nSpell == JD_FRAG_DEVASTATING)
        {
            ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(1044),GetSpellTargetLocation());
            nVFX = 3003;
            oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fDeva, GetSpellTargetLocation(), FALSE);
            while(GetIsObjectValid(oTarget))
            {
                if(GetIsEnemy(oTarget,OBJECT_SELF) && !GetIsNeutral(oTarget) )
                {
		            JD_SignalEnemyEvent( oTarget );
                    JD_SignalPartyEvent( GetFirstPC(), nSpell );
                    if(!ReflexSave(oTarget, nDevaDC, SAVING_THROW_TYPE_NONE))
                    {
		   	            effect eStun;
    		            if (GetRacialType(oTarget) == RACIAL_TYPE_DROID){
		        	        eStun = EffectDroidStun();
    		    	    }
    		    	    else {
		        	        eStun = EffectStunned();
    		            }	     
                        if(nSpell == JD_FRAG_TOP) { 
 			                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStun, oTarget, 3.0);
			            }                        
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDevaDMG, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                    else
                    {
                        int nApply;
                        if( GetHasFeat( FEAT_EVASION, oTarget ) ) {
                            nApply = 0;
                        }
                        else {
                            nApply = nDevaDMG / 2;
                        }
                        ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nApply, DAMAGE_TYPE_PIERCING), oTarget);
                    }
                }
                oTarget = GetNextObjectInShape(SHAPE_SPHERE, fDeva, GetSpellTargetLocation(), FALSE);
            }
        }
        else if(nSpell == JD_FRAG_TOP)
        {
            ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(1044),GetSpellTargetLocation());
            nVFX = 3003;
            oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fTop, GetSpellTargetLocation(), FALSE);
            while(GetIsObjectValid(oTarget))
            {
                if(GetIsEnemy(oTarget,OBJECT_SELF) && !GetIsNeutral(oTarget) )
                {
		            JD_SignalEnemyEvent( oTarget );
                    JD_SignalPartyEvent( GetFirstPC(), nSpell );
                    if(!ReflexSave(oTarget, nTopDC, SAVING_THROW_TYPE_NONE))
                    {
		   	            effect eStun;
    		            if (GetRacialType(oTarget) == RACIAL_TYPE_DROID){
		        	        eStun = EffectDroidStun();
    		    	    }
    		    	    else {
		        	        eStun = EffectStunned();
    		            }	     
                        if(nSpell == JD_FRAG_TOP) { 
 			                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStun, oTarget, 3.0);
			            }                        
                        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);
            }
        }
    }