PRC8_fork/trunk/racescripts/hound_aurafeara.nss

51 lines
1.8 KiB
Plaintext
Raw Normal View History

//::///////////////////////////////////////////////
//:: Aura of Fear On Enter
//:: NW_S1_AuraFearA.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Upon entering the aura of the creature the player
must make a will save or be struck with fear because
of the creatures presence.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: May 25, 2001
//:://////////////////////////////////////////////
// shaken -2 attack,weapon dmg,save.
// panicked -2 save + flee away ,50 % drop object holding
#include "prc_inc_spells"
void main()
{
//Declare major variables
object oPC = GetAreaOfEffectCreator();
object oTarget = GetEnteringObject();
// <20>2 penalty on attacks, AC, and saves
effect eShaken = EffectLinkEffects(EffectShaken(), EffectACDecrease(2));
eShaken = EffectLinkEffects(eShaken, EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE));
effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
int nHD = GetHitDice(oPC);
// DC is charisma based
int nDC = 10 + (nHD / 2) + GetAbilityModifier(ABILITY_CHARISMA, oPC);
int nDuration = d6(2);
if(GetIsEnemy(oTarget, oPC) && GetHitDice(oTarget) <= nHD)
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oPC, SPELLABILITY_AURA_FEAR));
if(!GetIsImmune(oTarget, IMMUNITY_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_MIND_SPELLS))
{
//Make a saving throw check
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eShaken, oTarget, RoundsToSeconds(nDuration));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}
}
}
}