forked from Jaysyn/PRC8
Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
56 lines
1.8 KiB
Plaintext
56 lines
1.8 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Aura of Fear
|
|
//:: prc_rava_fear
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
A save penalty is given to all creatures
|
|
around the ravager for 3 rounds + character level.
|
|
*/
|
|
|
|
#include "prc_alterations"
|
|
#include "x2_inc_spellhook"
|
|
#include "prc_class_const"
|
|
|
|
void main()
|
|
{
|
|
//Declare major variables
|
|
object oTarget;
|
|
|
|
int iLevel = GetLevelByClass(CLASS_TYPE_RAVAGER,OBJECT_SELF) + 3;
|
|
|
|
effect eSave = EffectSavingThrowDecrease(SAVING_THROW_ALL,2,SAVING_THROW_TYPE_ALL);
|
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
|
effect eExplode = EffectVisualEffect(VFX_FNF_LOS_EVIL_30);
|
|
effect eLink = EffectLinkEffects(eSave, eDur);
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eExplode, OBJECT_SELF);
|
|
|
|
float fSize;
|
|
|
|
if(GetLevelByClass(CLASS_TYPE_RAVAGER,OBJECT_SELF) >= 8)
|
|
{
|
|
fSize = RADIUS_SIZE_GARGANTUAN;
|
|
}
|
|
else if(GetLevelByClass(CLASS_TYPE_RAVAGER,OBJECT_SELF) >= 5)
|
|
{
|
|
fSize = RADIUS_SIZE_HUGE;
|
|
}
|
|
else if(GetLevelByClass(CLASS_TYPE_RAVAGER,OBJECT_SELF) >= 2)
|
|
{
|
|
fSize = RADIUS_SIZE_LARGE;
|
|
}
|
|
|
|
//Determine enemies in the radius around the ravager
|
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, fSize, GetLocation(OBJECT_SELF));
|
|
while (GetIsObjectValid(oTarget))
|
|
{
|
|
if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF) && oTarget != OBJECT_SELF)
|
|
{
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(iLevel));
|
|
}
|
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, fSize, GetLocation(OBJECT_SELF));
|
|
}
|
|
|
|
} |