44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
#include "prc_inc_spells"
|
|
|
|
void main()
|
|
{
|
|
int nAttack = 1;
|
|
int nDC = 22;
|
|
int nTargetVisual = VFX_IMP_BLIND_DEAF_M;
|
|
int nImpactVisual = VFX_FNF_BLINDDEAF;
|
|
|
|
float fBlindDuration = RoundsToSeconds(1);
|
|
float fAttackDuration = RoundsToSeconds(5);
|
|
|
|
location lTargetLocation = GetItemActivatedTargetLocation();
|
|
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM,
|
|
lTargetLocation, TRUE);
|
|
while(oTarget != OBJECT_INVALID)
|
|
{
|
|
int nRace = MyPRCGetRacialType(oTarget);
|
|
if(nRace != RACIAL_TYPE_UNDEAD && nRace != RACIAL_TYPE_CONSTRUCT)
|
|
{
|
|
nAttack = 2;
|
|
}
|
|
|
|
int nSave = ReflexSave(oTarget, nDC);
|
|
if(nSave == 0)
|
|
{
|
|
effect eBlind = EffectBlindness();
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBlind, oTarget,
|
|
fBlindDuration);
|
|
effect eVisual = EffectVisualEffect(nTargetVisual);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oTarget);
|
|
}
|
|
|
|
effect eAttack = EffectAttackDecrease(nAttack);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAttack, oTarget,
|
|
fAttackDuration);
|
|
|
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM,
|
|
lTargetLocation, TRUE);
|
|
}
|
|
effect eVisual = EffectVisualEffect(nImpactVisual);
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVisual, lTargetLocation);
|
|
}
|