Further file organization
Further file organization
This commit is contained in:
54
nwn/nwnprc/trunk/spells/nw_s2_divstr.nss
Normal file
54
nwn/nwnprc/trunk/spells/nw_s2_divstr.nss
Normal file
@@ -0,0 +1,54 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: 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);
|
||||
}
|
Reference in New Issue
Block a user