void main() { object oPC = GetLastKiller(); location lTarget = GetLocation(OBJECT_SELF); effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE); while (GetIsObjectValid(oTarget)) { int nDamage = GetReflexAdjustedDamage(125, oTarget, 25, SAVING_THROW_TYPE_FIRE); effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL); float fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20; if(nDamage > 0) { DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); } oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE); } }