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.
72 lines
2.0 KiB
Plaintext
72 lines
2.0 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Wave of Pain
|
|
//:: FileName sp_wave_pain.nss
|
|
//:://////////////////////////////////////////////
|
|
/**@file Wave of Pain
|
|
Necromancy [Evil]
|
|
Level: Brd 6, Pain 7
|
|
Components: S, M
|
|
Casting Time: 1 action
|
|
Range: Close (25 ft. + 5 ft./2 levels)
|
|
Area: Cone
|
|
Duration: 1 round/2 levels
|
|
Saving Throw: Fortitude negates
|
|
Spell Resistance: Yes
|
|
|
|
All living creatures within the cone are overcome
|
|
with pain and suffering. They are stunned for the
|
|
duration of the spell. A creature with no
|
|
discernible anatomy is unaffected by this spell.
|
|
|
|
Material Component: A needle.
|
|
|
|
Author: Tenjac
|
|
Created: 5/10/06
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
#include "prc_add_spell_dc"
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
location lLoc = PRCGetSpellTargetLocation();
|
|
object oTarget = MyFirstObjectInShape(SHAPE_SPELLCONE, 7.62f, lLoc, TRUE, OBJECT_TYPE_CREATURE);
|
|
effect eStun = EffectStunned();
|
|
effect eVis = EffectVisualEffect(VFX_IMP_STUN);
|
|
int nCasterLvl = PRCGetCasterLevel(oPC);
|
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
|
int nType = MyPRCGetRacialType(oTarget);
|
|
int nDC = PRCGetSaveDC(oTarget, oPC);
|
|
float fDur = (6.0f * (nCasterLvl/2));
|
|
|
|
if (nMetaMagic & METAMAGIC_EXTEND)
|
|
{
|
|
fDur = fDur * 2;
|
|
}
|
|
|
|
//Spellhook
|
|
if(!X2PreSpellCastCode()) return;
|
|
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
|
|
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
//Check for "discernable anatomy"
|
|
if(nType != RACIAL_TYPE_OOZE && PRCGetIsAliveCreature(oTarget))
|
|
{
|
|
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
|
{
|
|
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_EVIL))
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eStun, oTarget, fDur);
|
|
}
|
|
}
|
|
}
|
|
oTarget = MyNextObjectInShape(SHAPE_SPELLCONE, 7.62f, lLoc, TRUE, OBJECT_TYPE_CREATURE);
|
|
}
|
|
|
|
//SPEvilShift(oPC);
|
|
PRCSetSchool();
|
|
} |