PRC8/nwn/nwnprc/trunk/scripts/dslyr_songfeara.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

83 lines
3.4 KiB
Plaintext

//::///////////////////////////////////////////////
//:: 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 oTarget = GetEnteringObject();
effect eVis = EffectVisualEffect(VFX_IMP_FEAR_S);
effect eDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
effect eDur2 = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
effect eDur3 = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE);
effect eFear = EffectFrightened();
effect eAttackD = EffectAttackDecrease(2);
effect eDmgD = EffectDamageDecrease(2,DAMAGE_TYPE_BLUDGEONING|DAMAGE_TYPE_PIERCING|DAMAGE_TYPE_SLASHING);
effect SaveD = EffectSavingThrowDecrease(SAVING_THROW_ALL,2);
effect Skill = EffectSkillDecrease(SKILL_ALL_SKILLS,2);
effect eLink = EffectLinkEffects(eDmgD, eDur2);
eLink = EffectLinkEffects(eLink, eAttackD);
eLink = EffectLinkEffects(eLink, SaveD);
eLink = EffectLinkEffects(eLink, eFear);
eLink = EffectLinkEffects(eLink, Skill);
effect eLink2 = EffectLinkEffects(eDur3, SaveD);
eLink2 = EffectLinkEffects(eLink2, Skill);
int nHD = GetHitDice(GetAreaOfEffectCreator());
int nEpic = GetHasFeat(FEAT_EPIC_DRAGONSONG_FEAR,GetAreaOfEffectCreator()) ? 4:0;
if (GetHasFeat(FEAT_EPIC_FOCUS_DRAGONSONG,GetAreaOfEffectCreator())) nEpic += 6;
else if (GetHasFeat(FEAT_GREATER_FOCUS_DRAGONSONG,GetAreaOfEffectCreator())) nEpic += 4;
else if (GetHasFeat(FEAT_FOCUS_DRAGONSONG,GetAreaOfEffectCreator())) nEpic += 2;
int nDC = 12 + nEpic + GetLevelByClass(CLASS_TYPE_DRAGONSONG_LYRIST,GetAreaOfEffectCreator())+ GetAbilityModifier(ABILITY_CHARISMA,GetAreaOfEffectCreator());
int nDuration = d6(2);
if(GetIsEnemy(oTarget, GetAreaOfEffectCreator()))
{
if (!PRCGetHasEffect(EFFECT_TYPE_DEAF,oTarget)) // deaf targets can't hear the song.
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_FEAR));
//Make a saving throw check
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
{
if (nHD>GetHitDice(oTarget)/2)
//Apply the VFX impact and effects
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oTarget, RoundsToSeconds(nDuration),FALSE);
else
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink2), oTarget, RoundsToSeconds(nDuration),FALSE);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, SupernaturalEffect(eVis), oTarget);
}
}
}
effect eVis2 = EffectVisualEffect(VFX_DUR_BARD_SONG);
if (oTarget == GetAreaOfEffectCreator())
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eVis2, OBJECT_SELF,0.0,FALSE);
}