PRC8/trunk/users/Tenjac/spells/sp_lvisdeity.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04: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();
}