87 lines
2.9 KiB
Plaintext
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();
|
||
|
}
|