PRC8/trunk/spells/nw_s2_divstr.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

55 lines
2.1 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Divine Strength
//:: NW_S2_DivStr
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Cleric gains +2 to strength +1 for every 3 levels
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 4, 2001
//:://////////////////////////////////////////////
#include "prc_alterations"
void main()
{
//Declare major variables
object oTarget = PRCGetSpellTargetObject();
effect eStr;
effect eVis = EffectVisualEffect(VFX_IMP_HOLY_AID);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
int nCasterLvl = GetLevelByClass(CLASS_TYPE_CLERIC);
int nContend = GetLevelByClass(CLASS_TYPE_CLERIC) + GetLevelByClass(CLASS_TYPE_MIGHTY_CONTENDER_KORD);
int nContendSurge;
int nFeat;
int nSurge;
nFeat = (GetLevelByClass(CLASS_TYPE_MIGHTY_CONTENDER_KORD) >= 1) ? nContend:0;
nFeat = (GetLevelByClass(CLASS_TYPE_MIGHTY_CONTENDER_KORD) >= 7) ? FloatToInt(nContend*1.5):nContend;
if(nFeat > 0)
nSurge = (nFeat/3) + 2;
int nModify = (nCasterLvl/3) + 2;
int nDuration = 5 + GetAbilityModifier(ABILITY_CHARISMA);
nContendSurge = (GetLevelByClass(CLASS_TYPE_MIGHTY_CONTENDER_KORD) >= 1) ? 1:0;
nContendSurge = (GetLevelByClass(CLASS_TYPE_MIGHTY_CONTENDER_KORD) >= 3) ? (d4(1) + 1):1;
nContendSurge = (GetLevelByClass(CLASS_TYPE_MIGHTY_CONTENDER_KORD) == 10) ? nDuration:(d4(1) + 1);
//Fire cast spell at event for the specified target
SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_DIVINE_STRENGTH, FALSE));
//Apply effects and VFX to target
eStr = EffectAbilityIncrease(ABILITY_STRENGTH,nModify);
effect eSurge = EffectAbilityIncrease(ABILITY_STRENGTH,nSurge);
effect eLink = EffectLinkEffects(eStr, eDur);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSurge, oTarget, RoundsToSeconds(nContendSurge));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}