PRC8_fork/nwn/nwnprc/trunk/smp/phs_s_disruptund.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

81 lines
2.4 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Disrupt Undead
//:: Spell FileName phs_s_disruptund
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Disrupt Undead
Necromancy
Level: Sor/Wiz 0
Components: V, S
Casting Time: 1 standard action
Range: Close (8M)
Effect: Ray
Duration: Instantaneous
Saving Throw: None
Spell Resistance: Yes
You direct a ray of positive energy. You must make a ranged touch attack to
hit, and if the ray hits an undead creature, it deals 1d6 points of damage
to it.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Holy ray and 1d6 divine damage. Easy peasy :-)
Requires a touch attack - ray based.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook Check
if(!PHS_SpellHookCheck(PHS_SPELL_DISRUPT_UNDEAD)) return;
// Delcare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nMetaMagic = PHS_GetMetaMagicFeat();
int nDamage;
// Touch attack
int nTouch = PHS_SpellTouchAttack(PHS_TOUCH_RAY, oTarget, TRUE);
// Declare effects
effect eVis = EffectVisualEffect(VFX_COM_HIT_DIVINE); // Smaller hit then VFX_IMP_SUNSTRIKE
// Signal Spell cast at
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_DISRUPT_UNDEAD);
// Beam visual
PHS_ApplyTouchBeam(oTarget, VFX_BEAM_HOLY, nTouch, 1.0);
// Touch ray attack
if(nTouch)
{
// Make sure the target is undead
if(GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD)
{
// PvP check
if(!GetIsReactionTypeFriendly(oTarget) &&
// Make sure they are not immune to spells
!PHS_TotalSpellImmunity(oTarget))
{
// Spell resistance
if(!PHS_SpellResistanceCheck(oCaster, oTarget))
{
// Damage is 1d6 Divine
nDamage = PHS_MaximizeOrEmpower(6, 1, nMetaMagic, 0, nTouch);
// Apply damage and hit effects
PHS_ApplyDamageVFXToObject(oTarget, eVis, nDamage, DAMAGE_TYPE_DIVINE);
}
}
}
}
}