PRC8/nwn/nwnprc/trunk/smp/xxx_s_rayofforce.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

76 lines
2.3 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Ray of Force
//:: Spell FileName XXX_S_RayOfForce
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Evocation
Level: Sor/Wiz 2
Components: V, S
Casting Time: 1 standard action
Range: Medium (20M)
Effect: Ray
Duration: Instant
Saving Throw: None
Spell Resistance: Yes
Source: Various (Josh_Kablack)
You snap your fingers and point at a target, causing a tangible ray of
gunmetal blue force to project forth from your finger. You must succeed at a
ranged touch attack to hit a target. The ray deals 2d6 points of force
damage to your target plus an additional +1 point per caster level (maximum +10).
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Force damage is magical damage. Left in for now, like magic missile.
Easily done. Cap was +20, but now +10, inline with other level 2 spells.
Visual is a projectile.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "SMP_INC_SPELLS"
void main()
{
// Spell Hook Check.
if(!SMP_SpellHookCheck(SMP_SPELL_RAY_OF_FORCE)) return;
// Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nMetaMagic = SMP_GetMetaMagicFeat();
int nCasterLevel = SMP_GetCasterLevel();
// Ray touch attack
int nTouch = SMP_SpellTouchAttack(SMP_TOUCH_RAY, oTarget, TRUE);
// Bonus to damage
int nBonus = SMP_LimitInteger(nCasterLevel, 10);
// Damage is 2d6 + 1/caster level - magical
int nDam = SMP_MaximizeOrEmpower(6, 2, nMetaMagic, nBonus, nTouch);
// Declare effects
effect eVis = EffectVisualEffect(VFX_IMP_MAGBLUE);
// Signal event
SMP_SignalSpellCastAt(oTarget, SMP_SPELL_RAY_OF_FORCE);
// Touch attack
if(nTouch)
{
// PvP check
if(!GetIsReactionTypeFriendly(oTarget))
{
// Resistance
if(!SMP_SpellResistanceCheck(oCaster, oTarget))
{
// Apply effects
SMP_ApplyDamageVFXToObject(oTarget, eVis, nDam);
}
}
}
}