forked from Jaysyn/PRC8
54 lines
1.8 KiB
Plaintext
54 lines
1.8 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Divine Shield
|
||
|
//:: x0_s2_divshield.nss
|
||
|
//:: Copyright (c) 2002 Bioware Corp.
|
||
|
//:://////////////////////////////////////////////
|
||
|
/*
|
||
|
Up to [turn undead] times per day the character may add his Charisma bonus to his armor
|
||
|
class for a number of rounds equal to the Charisma bonus.
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Brent
|
||
|
//:: Created On: Sep 13, 2002
|
||
|
//:://////////////////////////////////////////////
|
||
|
|
||
|
#include "prc_inc_spells"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
|
||
|
if (!GetHasFeat(FEAT_TURN_UNDEAD, OBJECT_SELF))
|
||
|
{
|
||
|
SpeakStringByStrRef(40550);
|
||
|
}
|
||
|
else
|
||
|
if(GetHasFeatEffect(414) == FALSE)
|
||
|
{
|
||
|
//Declare major variables
|
||
|
object oTarget = PRCGetSpellTargetObject();
|
||
|
int nLevel = GetCasterLevel(OBJECT_SELF);
|
||
|
|
||
|
effect eVis = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
|
||
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||
|
|
||
|
int nCharismaBonus = GetAbilityModifier(ABILITY_CHARISMA);
|
||
|
|
||
|
if (GetHasFeat(FEAT_EPIC_DIVINE_SHIELD, OBJECT_SELF)) nCharismaBonus += nCharismaBonus;
|
||
|
|
||
|
effect eAC = EffectACIncrease(nCharismaBonus, AC_SHIELD_ENCHANTMENT_BONUS);
|
||
|
effect eLink = EffectLinkEffects(eAC, eDur);
|
||
|
eLink = SupernaturalEffect(eLink);
|
||
|
|
||
|
// * Do not allow this to stack
|
||
|
PRCRemoveEffectsFromSpell(oTarget, GetSpellId());
|
||
|
|
||
|
//Fire cast spell at event for the specified target
|
||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, 474, FALSE));
|
||
|
|
||
|
//Apply Link and VFX effects to the target
|
||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCharismaBonus));
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||
|
|
||
|
DecrementRemainingFeatUses(OBJECT_SELF, FEAT_TURN_UNDEAD);
|
||
|
}
|
||
|
}
|