PRC8/nwn/nwnprc/trunk/newspellbook/moi_mld_necshdft.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

52 lines
2.2 KiB
Plaintext

/*
17/10/20 by Stratovarius
Necrocarnum Shroud
Descriptors: Evil, necrocarnum
Classes: Incarnate, soulborn
Chakra: Soul or waist
Saving Throw: See text
Chakra Bind (Soul)
While you have necrocarnum shroud bound to your soul chakra, you can take a standard action to strike a living foe with the raw evil of necrocarnum. When you use this ability, you must make a
successful melee touch attack against the intended victim. If successful, your touch bestows 1d4 negative levels on the target (Fortitude half). For each negative level bestowed, you gain 1 temporary point of essentia
and 5 temporary hit points. The temporary essentia lasts until the end of your next turn. The temporary hit points fade after 1 hour.
*/
#include "moi_inc_moifunc"
#include "prc_inc_sp_tch"
void main()
{
object oMeldshaper = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_NECROCARNUM_SHROUD);
int nClass = GetMeldShapedClass(oMeldshaper, MELD_NECROCARNUM_SHROUD);
int nDC = GetMeldshaperDC(oMeldshaper, nClass, MELD_NECROCARNUM_SHROUD);
int nDamage = d4();
int nMeldshaperLvl = GetMeldshaperLevel(oMeldshaper, nClass, MELD_NECROCARNUM_SHROUD);
int nAttack = PRCDoMeleeTouchAttack(oTarget);
if (nAttack > 0)
{
// Only creatures, and PvP check.
if(!GetIsReactionTypeFriendly(oTarget) && PRCGetIsAliveCreature(oTarget))
{
// Check Spell Resistance
if(!PRCDoResistSpell(oMeldshaper, oTarget, nMeldshaperLvl))
{
if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NEGATIVE))
nDamage = nDamage/2;
ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(EffectNegativeLevel(nDamage)), oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE), oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectTemporaryHitpoints(nDamage*5), oMeldshaper, HoursToSeconds(1));
SetTemporaryEssentia(oMeldshaper, nDamage);
DelayCommand(6.0, SetTemporaryEssentia(oMeldshaper, nDamage * -1));
}
}
}
}