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
3.1 KiB
Plaintext
90 lines
3.1 KiB
Plaintext
//::///////////////////////////////////////////////
|
||
//:: Name Heart Ripper
|
||
//:: FileName sp_heart_ripr
|
||
//:://////////////////////////////////////////////
|
||
/**@file Heart Ripper
|
||
Necromancy [Death]
|
||
Level: Assassin 4
|
||
Components: V, S
|
||
Casting Time: 1 standard action
|
||
Range: Close (25 ft. + 5 ft./2 levels)
|
||
Target: One living creature
|
||
Duration: Instantaneous
|
||
Saving Throw: Fortitude negates
|
||
Spell Resistance: Yes
|
||
|
||
Invisible bolts of force instantly slay
|
||
the target you designate by driving its
|
||
heart from its body unless it succeeds
|
||
on a Fortitude save. If the target has
|
||
HD higher than your caster level, it
|
||
does not die on a failed saving throw,
|
||
but instead is stunned for 1d4 rounds.
|
||
Creatures that don’t depend on their
|
||
hearts for survival, creatures with no
|
||
anatomy, and creatures immune to
|
||
extra damage from critical hits are
|
||
unaffected by the spell.
|
||
|
||
Author: Tenjac
|
||
Created: 6/28/07
|
||
*/
|
||
//:://////////////////////////////////////////////
|
||
//:://////////////////////////////////////////////
|
||
|
||
#include "prc_inc_spells"
|
||
#include "prc_add_spell_dc"
|
||
|
||
void main()
|
||
{
|
||
if(!X2PreSpellCastCode()) return;
|
||
|
||
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
|
||
|
||
object oPC = OBJECT_SELF;
|
||
object oTarget = PRCGetSpellTargetObject();
|
||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||
|
||
int nType = MyPRCGetRacialType(oTarget);
|
||
|
||
if(nType == RACIAL_TYPE_UNDEAD ||
|
||
nType == RACIAL_TYPE_ELEMENTAL ||
|
||
nType == RACIAL_TYPE_CONSTRUCT ||
|
||
GetIsImmune(oTarget, IMMUNITY_TYPE_CRITICAL_HIT))
|
||
|
||
{
|
||
SendMessageToPC(oPC, "Target creature is immune to the effects of this spell.");
|
||
PRCSetSchool();
|
||
return;
|
||
}
|
||
|
||
//SR check
|
||
if(!PRCDoResistSpell(oPC, oTarget, (nCasterLvl + SPGetPenetr())))
|
||
{
|
||
//Save
|
||
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, PRCGetSaveDC(oTarget, oPC), SAVING_THROW_TYPE_DEATH))
|
||
{
|
||
//Check HD
|
||
int nHD = GetHitDice(oTarget);
|
||
|
||
if(nHD > nCasterLvl)
|
||
{
|
||
int nStun = d4(1);
|
||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectStunned(), oTarget, RoundsToSeconds(nStun), TRUE, SPELL_HEART_RIPPER, nCasterLvl);
|
||
}
|
||
|
||
else
|
||
{
|
||
//Kill it. Chunkaliciously.
|
||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_COM_CHUNK_RED_MEDIUM), oTarget);
|
||
|
||
effect eDeath = EffectDeath();
|
||
SupernaturalEffect(eDeath);
|
||
|
||
DeathlessFrenzyCheck(oTarget);
|
||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget);
|
||
}
|
||
}
|
||
}
|
||
PRCSetSchool();
|
||
} |