PRC8/nwn/trunk/newspellbook/bnd_bind_pact.nss
Jaysyn904 5914ed2ab5 Updated Release Archive
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.
2023-08-22 10:00:21 -04:00

53 lines
3.4 KiB
Plaintext

/*
03/02/21 by Stratovarius
Pact Augmentation (Su): Beginning at 2nd level, you can draw additional power from the vestiges you bind. As long as you are bound to at least one vestige, you can choose
one ability from the following list. Each time you rebind a vestige, you also reselect your pact augmentation ability.
As you attain higher levels, you can make additional selections from the list. You gain one additional ability at 5th, 10th, 16th, and 20th level (to a maximum of five selections
at 20th level). You can choose a single ability multiple times, and their effects stack. For instance, at 16th level you could choose bonus hit points twice and damage reduction twice,
gaining +10 hit points and damage reduction 2/—.
Pact Augmentation Abilities
+5 hit points
Energy resistance 5 (acid, cold, electricity, fire, or sonic)
+1 insight bonus on saving throws
Damage reduction 1/—
+1 insight bonus to Armor Class
+1 insight bonus on attack rolls
+1 insight bonus on damage rolls
*/
#include "prc_inc_natweap"
void main()
{
object oBinder = PRCGetSpellTargetObject();
effect eLink = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
// Temp HP
if (GetLocalInt(oBinder, "PactAugment1")) eLink = EffectLinkEffects(eLink, EffectTemporaryHitpoints(GetLocalInt(oBinder, "PactAugment1")*5));
if (GetLocalInt(oBinder, "PactAugment2")) eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_ACID, GetLocalInt(oBinder, "PactAugment2")*5));
if (GetLocalInt(oBinder, "PactAugment3")) eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_COLD, GetLocalInt(oBinder, "PactAugment3")*5));
if (GetLocalInt(oBinder, "PactAugment4")) eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, GetLocalInt(oBinder, "PactAugment4")*5));
if (GetLocalInt(oBinder, "PactAugment5")) eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_FIRE, GetLocalInt(oBinder, "PactAugment5")*5));
if (GetLocalInt(oBinder, "PactAugment6")) eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_SONIC, GetLocalInt(oBinder, "PactAugment6")*5));
if (GetLocalInt(oBinder, "PactAugment7")) eLink = EffectLinkEffects(eLink, EffectSavingThrowIncrease(SAVING_THROW_ALL, GetLocalInt(oBinder, "PactAugment7")));
if (GetLocalInt(oBinder, "PactAugment8"))
{
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_BLUDGEONING, GetLocalInt(oBinder, "PactAugment8")));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_PIERCING, GetLocalInt(oBinder, "PactAugment8")));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_SLASHING, GetLocalInt(oBinder, "PactAugment8")));
}
if (GetLocalInt(oBinder, "PactAugment9")) eLink = EffectLinkEffects(eLink, EffectACIncrease(GetLocalInt(oBinder, "PactAugment9")));
if (GetLocalInt(oBinder, "PactAugment10")) eLink = EffectLinkEffects(eLink, EffectAttackIncrease(GetLocalInt(oBinder, "PactAugment10")));
if (GetLocalInt(oBinder, "PactAugment11")) eLink = EffectLinkEffects(eLink, EffectDamageIncrease(IPGetDamageBonusConstantFromNumber(GetLocalInt(oBinder, "PactAugment11"))));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oBinder, HoursToSeconds(24));
// Clean up time
int i;
for(i = 0; i <= 11; i++)
DeleteLocalInt(oBinder, "PactAugment"+IntToString(i));
}