#include "prc_class_const" void main() { object oPC = GetItemActivator(); string sPearl = GetLocalString(oPC, "sPearlBomb"); object oTarget = GetObjectByTag(sPearl); int iRogue = GetLevelByClass(CLASS_TYPE_ROGUE, oPC) + GetLevelByClass(CLASS_TYPE_SCOUT, oPC) + GetLevelByClass(CLASS_TYPE_NINJA, oPC) + GetLevelByClass(CLASS_TYPE_FACTOTUM, oPC) + GetLevelByClass(CLASS_TYPE_PSYCHIC_ROGUE, oPC); int iMult = iRogue / 5; int bdam = d100(1)* iMult + 100; if(oTarget == OBJECT_INVALID) { SendMessageToPC(oPC, "No bomb laid."); } else { object oCaster = OBJECT_SELF; float fDelay; effect eExplode = EffectVisualEffect(VFX_FNF_ELECTRIC_EXPLOSION); effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); effect eShk = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE); effect eDam; location lTarget = GetLocation(oTarget); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eShk, lTarget); object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget, TRUE, OBJECT_TYPE_CREATURE); while (GetIsObjectValid(oTarget)) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(bdam, DAMAGE_TYPE_ELECTRICAL), oTarget, 0.0f); DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); AssignCommand(oTarget, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_BACK, 1.0, 5.0)); AssignCommand(oTarget, PlayVoiceChat(VOICE_CHAT_CUSS)); oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lTarget, TRUE, OBJECT_TYPE_CREATURE); } ActionDoCommand(PlaySound("zep_explosion")); DestroyObject(GetObjectByTag(sPearl)); } }