PRC8/nwn/nwnprc/trunk/users/Tenjac/spells/sp_soullight.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

87 lines
2.9 KiB
Plaintext

//:://////////////////////////////////////////////
//:: Name Soul of Light
//:: FileName sp_soulight.nss
//:://////////////////////////////////////////////
/** @file Transmutation [Good]
Level: Paladin 2, Cleric 3,
Components: V, S,
Casting Time: 1 standard action
Range: Personal
Target: You
Duration: 1 hour
Bright, clear light sprouts from your body, quickly
flaring before fading to a faint white pulse. This spell
infuses your body with energy drawn from the Positive
Energy Plane, making it easier to repair injuries.
Whenever you cast or are the target of a conjuration
(healing) spell, you can choose for the spell to heal
a number of extra points of damage equal to twice the spell's level.
If such a spell heals at least 10 points of damage,
it also removes the fatigued condition from the
target (or reduces exhaustion to fatigue).
If soul of light and soul of order are active on you at the
same time, you gain damage reduction 3/+3
*/
//:://////////////////////////////////////////////
//:: Created By: Tenjac
//:: Created On: 8/8/22
//:://////////////////////////////////////////////
#include "prc_sp_func"
#include "prc_add_spell_dc"
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
object oPC = OBJECT_SELF;
int nCasterLvl = PRCGetCasterLevel(oPC);
float fDur = HoursToSeconds(1);
int nMetaMagic = PRCGetMetaMagicFeat();
if(nMetaMagic & METAMAGIC_EXTEND) fDur += fDur;
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_AURA_WHITE), oPC, fDur);
if(GetHasSpellEffect(SPELL_SOUL_OF_ORDER, oPC))
{
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDamageReduction(3, DAMAGE_POWER_PLUS_THREE, 0), oPC, fDur);
}
/**To add into PRCEffectHeal
if(GetHasSpellEffect(SPELL_SOUL_OF_LIGHT, oTarget))
{
//2x the spell level bonus
nHP += (StringToInt(Get2DACache("spells", "Innate", PRCGetSpellId()) *2);
if(nHP >= 10)
{
effect eEffect = GetFirstEffect(oPC);
while(GetIsEffectValid(eEffect))
{
//remove fatigue
if(GetEffectTag(eEffect) == "PRCFatigue")
{
RemoveEffect(oPC, eEffect);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffecVisualEffect(VFX_DUR_CESSATE_POSITIVE) oTarget, 6.0f);
}
//downgrade exhaustion
if(GetEffectTag(eEffect) == "PRCExhausted")
{
float fNew = IntToFloat(GetEffectDurationRemaining(eEffect));
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectFatigue(), oTarget, fNew);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffecVisualEffect(VFX_DUR_CESSATE_POSITIVE) oTarget, 6.0f);
}
eEffect = GetNextEffect(oPC);
}
}
*/
PRCSetSchool();
}