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.
120 lines
3.4 KiB
Plaintext
120 lines
3.4 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name Last Judgment
|
|
//:: FileName sp_lst_jdgmnt.nss
|
|
//:://////////////////////////////////////////////
|
|
/**@file Last Judgment
|
|
Necromancy [Death, Good]
|
|
Level: Clr 8, Sor/Wiz 8, Wrath 8
|
|
Components: V, Celestial
|
|
Casting Time: 1 round
|
|
Range: Close (25 ft. + 5 ft./2 levels)
|
|
Target: One evil humanoid, monstrous humanoid, or
|
|
giant/2 levels
|
|
Duration: Instantaneous
|
|
Saving Throw: Will partial
|
|
Spell Resistance: Yes
|
|
|
|
Reciting a list of the targets' evil deeds, you call
|
|
down the judgment of the heavens upon their heads.
|
|
Creatures that fail their saving throw are struck
|
|
dead and bodily transported to the appropriate Lower
|
|
Planes to suffer their eternal punishment. Creatures
|
|
that succeed nevertheless take 3d6 points of
|
|
temporary Wisdom damage as guilt for their misdeeds
|
|
overwhelms their minds.
|
|
|
|
This spell affects only humanoids, monstrous
|
|
humanoids, and giants of evil alignment.
|
|
|
|
A true resurrection or miracle spell can restore life
|
|
to a creature slain by this spell normally. A
|
|
resurrection spell works only if the creature's body
|
|
can be recovered from the Lower Planes before the
|
|
resurrection is cast.
|
|
|
|
Author: Tenjac
|
|
Created: 7/6/06
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_spells"
|
|
#include "prc_inc_template"
|
|
#include "prc_add_spell_dc"
|
|
|
|
void main()
|
|
{
|
|
if(!X2PreSpellCastCode()) return;
|
|
|
|
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
|
|
|
|
object oPC = OBJECT_SELF;
|
|
int nCasterLvl = PRCGetCasterLevel(oPC);
|
|
int nToBeAffected = nCasterLvl / 2;
|
|
int nDC;
|
|
location lLoc = PRCGetSpellTargetLocation();
|
|
|
|
//Must be Celestial
|
|
if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
|
|
{
|
|
if((MyPRCGetRacialType(oPC) == RACIAL_TYPE_OUTSIDER) || (GetHasTemplate(TEMPLATE_CELESTIAL)) || (GetHasTemplate(TEMPLATE_HALF_CELESTIAL)))
|
|
{
|
|
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, 7.62, lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
|
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
if(nToBeAffected > 0)
|
|
{
|
|
int nType = MyPRCGetRacialType(oTarget);
|
|
|
|
if(nType != RACIAL_TYPE_UNDEAD &&
|
|
nType != RACIAL_TYPE_CONSTRUCT &&
|
|
nType != RACIAL_TYPE_ELEMENTAL &&
|
|
nType != RACIAL_TYPE_VERMIN &&
|
|
nType != RACIAL_TYPE_OOZE &&
|
|
nType != RACIAL_TYPE_ANIMAL &&
|
|
nType != RACIAL_TYPE_ABERRATION &&
|
|
nType != RACIAL_TYPE_BEAST)
|
|
{
|
|
if(GetAlignmentGoodEvil(oTarget) == ALIGNMENT_EVIL)
|
|
{
|
|
//decrement the counter
|
|
nToBeAffected--;
|
|
|
|
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
|
{
|
|
nDC = PRCGetSaveDC(oTarget, oPC);
|
|
|
|
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_DEATH))
|
|
{
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oTarget);
|
|
|
|
|
|
//Any module specific code for moving the body to another plane would go here
|
|
}
|
|
else
|
|
{
|
|
if(!GetHasMettle(oTarget, SAVING_THROW_WILL))
|
|
{
|
|
//made save, apply ability damage
|
|
ApplyAbilityDamage(oTarget, ABILITY_WISDOM, d6(3), DURATION_TYPE_TEMPORARY, TRUE, -1.0f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
oTarget = MyNextObjectInShape(SHAPE_SPHERE, 7.62, lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
|
}
|
|
}
|
|
|
|
else SendMessageToPC(oPC, "You do not meet the casting requirements for this spell.");
|
|
}
|
|
//SPGoodShift(oPC);
|
|
PRCSetSchool();
|
|
}
|
|
|
|
|
|
|
|
|
|
|