PRC8/nwn/nwnprc/trunk/scripts/prc_s_auravsdem.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

69 lines
2.8 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Holy Aura
//:: NW_S0_HolyAura.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
The cleric casting this spell gains +4 AC and
+4 to saves. Is immune to Mind-Affecting Spells
used by evil creatures and gains an SR of 25
versus the spells of Evil Creatures
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Sept 28, 2001
//:://////////////////////////////////////////////
#include "prc_alterations"
void main()
{
//--------------------------------------------------------------------------
// GZ: Make sure this aura is only active once
//--------------------------------------------------------------------------
PRCRemoveSpellEffects(GetSpellId(),OBJECT_SELF,PRCGetSpellTargetObject());
//Declare major variables
object oTarget = PRCGetSpellTargetObject();
int nDuration = 10;
effect eVis = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR);
effect eAC = EffectACIncrease(4, AC_DEFLECTION_BONUS);
effect eSave = EffectSavingThrowIncrease(SAVING_THROW_ALL, 4);
effect eImmune = EffectImmunity(IMMUNITY_TYPE_MIND_SPELLS);
effect eSR = EffectSpellResistanceIncrease(25);
effect eDur = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR);
effect eDur2 = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eEvil = EffectDamageShield(6, DAMAGE_BONUS_1d8, DAMAGE_TYPE_DIVINE);
// * make them versus the alignment
eImmune = VersusAlignmentEffect(eImmune, ALIGNMENT_ALL, ALIGNMENT_EVIL);
eSR = VersusAlignmentEffect(eSR,ALIGNMENT_ALL, ALIGNMENT_EVIL);
eAC = VersusAlignmentEffect(eAC,ALIGNMENT_ALL, ALIGNMENT_EVIL);
eSave = VersusAlignmentEffect(eSave,ALIGNMENT_ALL, ALIGNMENT_EVIL);
eEvil = VersusAlignmentEffect(eEvil,ALIGNMENT_ALL, ALIGNMENT_EVIL);
// * make them versus the racial type
eImmune = VersusRacialTypeEffect(eImmune, RACIAL_TYPE_OUTSIDER);
eSR = VersusRacialTypeEffect(eSR, RACIAL_TYPE_OUTSIDER);
eAC = VersusRacialTypeEffect(eAC, RACIAL_TYPE_OUTSIDER);
eSave = VersusRacialTypeEffect(eSave, RACIAL_TYPE_OUTSIDER);
eEvil = VersusRacialTypeEffect(eEvil, RACIAL_TYPE_OUTSIDER);
//Link effects
effect eLink = EffectLinkEffects(eImmune, eSave);
eLink = EffectLinkEffects(eLink, eAC);
eLink = EffectLinkEffects(eLink, eSR);
eLink = EffectLinkEffects(eLink, eDur);
eLink = EffectLinkEffects(eLink, eDur2);
eLink = EffectLinkEffects(eLink, eEvil);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE));
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
}