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.
76 lines
2.1 KiB
Plaintext
76 lines
2.1 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Wave of Grief
|
|
//:: FileName sp_wave_grief.nss
|
|
//:://////////////////////////////////////////////
|
|
/**@file Wave of Grief
|
|
Enchantment [Evil, Mind-Affecting]
|
|
Level: Brd 2, Clr 2
|
|
Components: S, M
|
|
Casting Time: 1 action
|
|
Range: Close (25 ft. + 5 ft./2 levels)
|
|
Area: Cone
|
|
Duration: 1 round/level
|
|
Saving Throw: Will negates
|
|
Spell Resistance: Yes
|
|
|
|
All within the cone when the spell is cast are
|
|
overcome with sorrow and grief. They take a -3 morale
|
|
penalty on all attack rolls, saving throws, ability
|
|
checks, and skill checks.
|
|
|
|
Material Component: Three tears.
|
|
|
|
Author: Tenjac
|
|
Created: 5/9/2006
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#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);
|
|
int nCasterLvl = PRCGetCasterLevel(oPC);
|
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
|
int nPenalty = 3;
|
|
int nDC = PRCGetSaveDC(oTarget, oPC);
|
|
float fDur = RoundsToSeconds(nCasterLvl);
|
|
|
|
if(nMetaMagic & METAMAGIC_EMPOWER)
|
|
{
|
|
nPenalty += (nPenalty/2);
|
|
}
|
|
|
|
if (nMetaMagic & METAMAGIC_EXTEND)
|
|
{
|
|
fDur = (fDur * 2);
|
|
}
|
|
|
|
effect eVis = EffectVisualEffect(VFX_DUR_GLOW_BLUE);
|
|
effect eLink = EffectAttackDecrease(nPenalty, ATTACK_BONUS_MISC);
|
|
eLink = EffectLinkEffects(eLink, EffectSavingThrowDecrease(SAVING_THROW_ALL, nPenalty, SAVING_THROW_TYPE_ALL));
|
|
eLink = EffectLinkEffects(eLink, EffectSkillDecrease(SKILL_ALL_SKILLS, nPenalty));
|
|
eLink = EffectLinkEffects(eLink, eVis);
|
|
|
|
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
|
{
|
|
//Save
|
|
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_EVIL))
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDur);
|
|
}
|
|
}
|
|
oTarget = MyNextObjectInShape(SHAPE_SPELLCONE, 7.62f, lLoc, TRUE, OBJECT_TYPE_CREATURE);
|
|
}
|
|
|
|
//SPEvilShift(oPC);
|
|
PRCSetSchool();
|
|
}
|
|
|
|
|