Further file organization
Further file organization
This commit is contained in:
89
nwn/nwnprc/trunk/spells/sp_boneblast.nss
Normal file
89
nwn/nwnprc/trunk/spells/sp_boneblast.nss
Normal file
@@ -0,0 +1,89 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: 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();
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user