Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
90 lines
2.5 KiB
Plaintext
90 lines
2.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Boneblast
|
|
//:: FileName sp_boneblast.nss
|
|
//:://////////////////////////////////////////////
|
|
/**@file Boneblast
|
|
Necromancy [Evil]
|
|
Level: Blk 1, Clr 2
|
|
Components: V, S, M, Undead
|
|
Casting Time: 1 action
|
|
Range: Touch
|
|
Target: One creature that has a skeleton
|
|
Duration: Instantaneous
|
|
Saving Throw: Fortitude half or negates
|
|
Spell Resistance: Yes
|
|
|
|
The caster causes some bone within a touched
|
|
creature to break or crack. The caster cannot specify
|
|
which bone. Because the damage is general rather than
|
|
specific, the target takes 1d3 points of Constitution
|
|
damage. A Fortitude save reduces the Constitution damage
|
|
by half, or negates it if the full damage would have been
|
|
1 point of Constitution damage.
|
|
|
|
Material Component: The bone of a small child that still lives.
|
|
|
|
|
|
Author: Tenjac
|
|
Created:
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
#include "prc_add_spell_dc"
|
|
|
|
void main()
|
|
{
|
|
//define vars
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nCasterLvl = PRCGetCasterLevel(oPC);
|
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
|
int nType = MyPRCGetRacialType(oPC);
|
|
int nCreatureType = MyPRCGetRacialType(oTarget);
|
|
int nDam = d3(1);
|
|
int nDC = PRCGetSaveDC(oTarget, oPC);
|
|
|
|
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
|
|
|
|
|
|
//Check for PLAYER undeath
|
|
if(nType == RACIAL_TYPE_UNDEAD)
|
|
{
|
|
//check for target skeleton or innate immunity
|
|
//***RACIAL_TYPE_PLANT should also be included if it ever exists***
|
|
|
|
if(nType != RACIAL_TYPE_UNDEAD &&
|
|
nType != RACIAL_TYPE_OOZE &&
|
|
nType != RACIAL_TYPE_CONSTRUCT &&
|
|
nType != RACIAL_TYPE_PLANT &&
|
|
nType != RACIAL_TYPE_ELEMENTAL)
|
|
|
|
{
|
|
//Check for resistance
|
|
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
|
{
|
|
//Check for save
|
|
if(PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_EVIL))
|
|
{
|
|
nDam--;
|
|
|
|
if(GetHasMettle(oTarget, SAVING_THROW_FORT))
|
|
{
|
|
nDam = 0;
|
|
}
|
|
}
|
|
|
|
//Apply ability *DAMAGE*
|
|
ApplyAbilityDamage(oTarget, ABILITY_CONSTITUTION, nDam, DURATION_TYPE_TEMPORARY, TRUE, -1.0f);
|
|
}
|
|
}
|
|
}
|
|
//SPEvilShift(oPC);
|
|
|
|
PRCSetSchool();
|
|
}
|
|
|
|
|
|
|