PRC8/trunk/epicspellscripts/ss_ep_mom_mori.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

60 lines
2.4 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Epic Spell: Momento Mori
//:: Author: Boneshank (Don Armstrong)
#include "prc_alterations"
#include "inc_epicspells"
void main()
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_NECROMANCY);
if (!X2PreSpellCastCode())
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
return;
}
if (GetCanCastSpell(OBJECT_SELF, SPELL_EPIC_MORI))
{
//Declare major variables
object oTarget = PRCGetSpellTargetObject();
int nDamage;
effect eDam;
effect eVis = EffectVisualEffect(VFX_IMP_DEATH_L);
effect eVis2 = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, PRCGetSpellId()));
if (GetObjectType(oTarget) == OBJECT_TYPE_CREATURE &&
GetHitDice(oTarget) < 50 && oTarget != OBJECT_SELF)
{
//Make SR check
if (!PRCDoResistSpell(OBJECT_SELF, oTarget, GetTotalCastingLevel(OBJECT_SELF)+SPGetPenetr(OBJECT_SELF)))
{
//Make Fortitude save
if (!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(OBJECT_SELF, oTarget)+10, SAVING_THROW_TYPE_DEATH))
{
DeathlessFrenzyCheck(oTarget);
//Apply the death effect and VFX impact
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oTarget);
//SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}
else
{
//Roll damage
nDamage = d6(3) + 20;
if (GetHasMettle(oTarget, SAVING_THROW_FORT))
// This script does nothing if it has Mettle, bail
nDamage = 0;
//Set damage effect
eDam = EffectDamage(nDamage, DAMAGE_TYPE_NEGATIVE);
//Apply damage effect and VFX impact
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
}
}
}
else SendMessageToPC(OBJECT_SELF, "Spell failure - the target was not valid.");
}
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
}