67 lines
3.3 KiB
Plaintext
67 lines
3.3 KiB
Plaintext
|
//#include "X0_I0_SPELLS"
|
||
|
#include "x2_inc_spellhook"
|
||
|
#include "prc_inc_spells"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oPC = GetItemActivator();
|
||
|
object oTarget2 = GetItemActivatedTarget();
|
||
|
object oCaster = OBJECT_SELF;
|
||
|
location lTarget = GetLocation(oTarget2);
|
||
|
|
||
|
float fDelay;
|
||
|
effect eLectric1 = EffectVisualEffect(VFX_DUR_SMOKE);
|
||
|
effect eLectric2 = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
|
||
|
effect eLectric3 = EffectVisualEffect(VFX_FNF_SMOKE_PUFF);
|
||
|
effect eLectric4 = EffectVisualEffect(VFX_FNF_STORM);
|
||
|
effect eLectric5 = EffectVisualEffect(VFX_IMP_LIGHTNING_M);
|
||
|
|
||
|
effect eDam;
|
||
|
int bdam = d20(8) + 50;
|
||
|
int pdam = d10(8);
|
||
|
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric1, oTarget2);
|
||
|
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric2, oTarget2));
|
||
|
DelayCommand(0.7, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric3, oTarget2));
|
||
|
DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric4, oTarget2));
|
||
|
DelayCommand(1.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric3, oTarget2));
|
||
|
|
||
|
DelayCommand(1.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric5, oTarget2));
|
||
|
DelayCommand(1.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(pdam, DAMAGE_TYPE_ELECTRICAL), oTarget2, 0.0f));
|
||
|
|
||
|
DelayCommand(1.8, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric2, oTarget2));
|
||
|
DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric5, oTarget2));
|
||
|
DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(pdam, DAMAGE_TYPE_ELECTRICAL), oTarget2, 0.0f));
|
||
|
|
||
|
DelayCommand(2.2, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric5, oTarget2));
|
||
|
DelayCommand(2.2, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(pdam, DAMAGE_TYPE_ELECTRICAL), oTarget2, 0.0f));
|
||
|
|
||
|
DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric1, oTarget2));
|
||
|
DelayCommand(2.8, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric5, oTarget2));
|
||
|
DelayCommand(2.8, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(pdam, DAMAGE_TYPE_ELECTRICAL), oTarget2, 0.0f));
|
||
|
|
||
|
DelayCommand(3.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric1, oTarget2));
|
||
|
DelayCommand(3.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric5, oTarget2));
|
||
|
DelayCommand(3.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(pdam, DAMAGE_TYPE_ELECTRICAL), oTarget2, 0.0f));
|
||
|
|
||
|
DelayCommand(3.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric2, oTarget2));
|
||
|
|
||
|
|
||
|
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
||
|
while (GetIsObjectValid(oTarget))
|
||
|
{
|
||
|
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(pdam, DAMAGE_TYPE_ELECTRICAL), oTarget, 0.0f);
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(bdam, DAMAGE_TYPE_PIERCING), oTarget, 0.0f);
|
||
|
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLectric5, oTarget));
|
||
|
}
|
||
|
|
||
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
||
|
|
||
|
}
|
||
|
|
||
|
ActionCastSpellAtObject(SPELL_GREAT_THUNDERCLAP, oTarget2 ,METAMAGIC_ANY, TRUE, 40, PROJECTILE_PATH_TYPE_DEFAULT, TRUE);
|
||
|
|
||
|
}
|