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.
82 lines
2.6 KiB
Plaintext
82 lines
2.6 KiB
Plaintext
/*:://////////////////////////////////////////////
|
||
//:: Spell Name Ray of Exhaustion
|
||
//:: Spell FileName PHS_S_RayOfExhau
|
||
//:://////////////////////////////////////////////
|
||
//:: In Game Spell desctiption
|
||
//:://////////////////////////////////////////////
|
||
Necromancy
|
||
Level: Sor/Wiz 3
|
||
Components: V, S, M
|
||
Casting Time: 1 standard action
|
||
Range: Close (8M)
|
||
Effect: Ray
|
||
Duration: 1 min./level
|
||
Saving Throw: Fortitude partial; see text
|
||
Spell Resistance: Yes
|
||
|
||
A black ray projects from your pointing finger. You must succeed on a ranged
|
||
touch attack with the ray to strike a target.
|
||
|
||
The subject is immediately exhausted for the spell’s duration. A successful
|
||
Fortitude save means the creature is only fatigued.
|
||
|
||
This spell has no effect on a creature that is already exhausted. Unlike
|
||
normal exhaustion or fatigue, the effect ends as soon as the spell’s duration
|
||
expires.
|
||
|
||
Material Component: A drop of sweat.
|
||
//:://////////////////////////////////////////////
|
||
//:: Spell Effects Applied / Notes
|
||
//:://////////////////////////////////////////////
|
||
As the description.
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Jasperre
|
||
//::////////////////////////////////////////////*/
|
||
|
||
#include "PHS_INC_SPELLS"
|
||
|
||
void main()
|
||
{
|
||
// Spell Hook Check.
|
||
if(!PHS_SpellHookCheck(PHS_SPELL_RAY_OF_EXHAUSTION)) return;
|
||
|
||
// Declare major variables
|
||
object oCaster = OBJECT_SELF;
|
||
object oTarget = GetSpellTargetObject();
|
||
int nCasterLevel = PHS_GetCasterLevel();
|
||
int nMetaMagic = PHS_GetMetaMagicFeat();
|
||
int nSpellSaveDC = PHS_GetSpellSaveDC();
|
||
|
||
// Duration in minutes
|
||
float fDuration = PHS_GetDuration(PHS_ROUNDS, nCasterLevel, nMetaMagic);
|
||
|
||
// Do ray visuals
|
||
PHS_ApplyTouchBeam(oTarget, VFX_BEAM_ODD, nTouch);
|
||
|
||
// Signal event
|
||
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_RAY_OF_EXHAUSTION);
|
||
|
||
// Ray Touch attack
|
||
if(PHS_SpellTouchAttack(PHS_TOUCH_RAY, oTarget, TRUE))
|
||
{
|
||
// PvP check
|
||
if(!GetIsReactionTypeFriendly(oTarget))
|
||
{
|
||
// Spell Resistance check
|
||
if(!PHS_SpellResistanceCheck(oCaster, oTarget))
|
||
{
|
||
// If fortitude, we apply only fatigue
|
||
if(PHS_SavingThrow(SAVING_THROW_FORT, oTarget, nSpellSaveDC))
|
||
{
|
||
PHS_ApplyFatigue(oTarget, FALSE, DURATION_TYPE_TEMPORARY, fDuration);
|
||
}
|
||
else
|
||
{
|
||
// Else, exhaustion
|
||
PHS_ApplyFatigue(oTarget, TRUE, DURATION_TYPE_TEMPORARY, fDuration);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|