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.
51 lines
1.8 KiB
Plaintext
51 lines
1.8 KiB
Plaintext
/*
|
|
07/03/21 by Barmlot
|
|
|
|
bnd_kss_prot.nss
|
|
Knight of the Sacred Vestige's Protection & Aura
|
|
|
|
Vestige's Protection (CHA to AC for 1 round, 5 round cooldown)
|
|
Vestige's Protection Aura (as above, but affects all adjacent friends)
|
|
*/
|
|
|
|
#include "bnd_inc_bndfunc"
|
|
#include "prc_inc_combat"
|
|
|
|
void main()
|
|
{
|
|
object oBinder = OBJECT_SELF;
|
|
int nKSSLvl = GetLevelByClass(CLASS_TYPE_KNIGHT_SACRED_SEAL, oBinder);
|
|
int nCHAmod = max(1, GetAbilityModifier(ABILITY_CHARISMA, oBinder));
|
|
int nSpellID = PRCGetSpellId();
|
|
|
|
if(GetIsPatronVestigeBound(oBinder))
|
|
{
|
|
if(!BindAbilCooldown(oBinder, GetSpellId(), -1)) return;
|
|
if(!TakeSwiftAction(oBinder)) return;
|
|
|
|
if (nKSSLvl >= 3)//Vestige Protection Aura
|
|
{
|
|
location lTarget = GetLocation(oBinder);
|
|
|
|
object oAreaTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
|
while(GetIsObjectValid(oAreaTarget))
|
|
{
|
|
if(oAreaTarget != oBinder && // Not you
|
|
GetIsInMeleeRange(oBinder, oAreaTarget) && // They must be in melee range
|
|
GetIsFriend(oAreaTarget, oBinder)) // Only allies
|
|
{
|
|
//Apply bonuses to oAreaTarget
|
|
effect eLink = EffectACIncrease(nCHAmod, AC_DODGE_BONUS);
|
|
eLink = EffectLinkEffects(EffectSavingThrowIncrease(SAVING_THROW_REFLEX, nCHAmod), eLink);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oAreaTarget, RoundsToSeconds(1));
|
|
}
|
|
//Select the next target within the spell shape.
|
|
oAreaTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
|
}
|
|
}
|
|
|
|
effect eLink = EffectACIncrease(nCHAmod, AC_DODGE_BONUS);
|
|
eLink = EffectLinkEffects(EffectSavingThrowIncrease(SAVING_THROW_REFLEX, nCHAmod), eLink);
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oBinder, RoundsToSeconds(1));
|
|
}
|
|
} |