PRC8/nwn/nwnprc/trunk/users/Tenjac/spells/sp_lvisdeity.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

65 lines
2.4 KiB
Plaintext

//:://////////////////////////////////////////////
//:: Name Lesser Visage of the Deity
//:: FileName sp_lvisdiety.nss
//:://////////////////////////////////////////////
/** @file
Transmutation [Good or Evil]
Level: Cleric 3, Blackguard 4, Paladin 4, Mysticism 3,
Components: V, S, DF,
Casting Time: 1 standard action
Range: Personal
Target: You
Duration: 1 round/level
As you end your prayer, you can feel the hand of your
deity upon you. Your appearance reflects her divine power,
and her touch grants you resistance from some of the damage
of this world.
You gain a +4 enhancement bonus to Charisma. You also gain
resistance to acid 10, cold 10, and electricity 10 if you
are good, or resistance to cold 10 and fire 10 if you are evil.
*/
//:://////////////////////////////////////////////
//:: Created By: Tenjac
//:: Created On: 1/26/21
//:://////////////////////////////////////////////
#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);
int nMetaMagic = PRCGetMetaMagicFeat();
int nAlign = GetAlignmentGoodEvil(oPC);
int nBonus = 4;
float fDur = RoundsToSeconds(nCasterLvl);
if(nMetaMagic & METAMAGIC_EXTEND) fDur += fDur;
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityIncrease(ABILITY_CHARISMA, nBonus), oPC, fDur);
if (nAlign == ALIGNMENT_GOOD)
{
effect eResAcid = EffectDamageResistance(DAMAGE_TYPE_ACID, 10);
effect eResCold = EffectDamageResistance(DAMAGE_TYPE_COLD, 10);
effect eResElec = EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, 10);
effect eLink = EffectLinkEffects(eResAcid, eResCold);
eLink = EffectLinkEffects(eLink, eResElec);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, fDur);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_GOOD_HELP), oPC);
}
else if (nAlign == ALIGNMENT_EVIL)
{
effect eLink = EffectLinkEffects(EffectDamageResistance(DAMAGE_TYPE_COLD, 10), EffectDamageResistance(DAMAGE_TYPE_FIRE, 10));
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, fDur);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_EVIL_HELP), oPC);
}
PRCSetSchool();
}