Further file organization
Further file organization
This commit is contained in:
46
nwn/nwnprc/trunk/scripts/prc_reservinvndl.nss
Normal file
46
nwn/nwnprc/trunk/scripts/prc_reservinvndl.nss
Normal file
@@ -0,0 +1,46 @@
|
||||
//Spell script for reserve feat Invisible Needle
|
||||
//prc_reservinvndl
|
||||
//by ebonfowl
|
||||
//Dedicated to Edgar, the real Ebonfowl
|
||||
|
||||
#include "prc_sp_func"
|
||||
#include "prc_inc_sp_tch"
|
||||
#include "prc_add_spell_dc"
|
||||
|
||||
void main()
|
||||
{
|
||||
//Declare major variables ( fDist / (3.0f * log( fDist ) + 2.0f) )
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nBonus = GetLocalInt(oPC, "InvisibleNeedleBonus");
|
||||
int nDamage = d4(nBonus);
|
||||
int nAttack = GetAttackRoll(oTarget, oPC, OBJECT_INVALID);
|
||||
effect eMissile = EffectVisualEffect(VFX_IMP_MIRV);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_MAGBLUE);
|
||||
float fDist = GetDistanceBetween(oPC, oTarget);
|
||||
float fDelay = fDist/(3.0 * log(fDist) + 2.0);
|
||||
float fDelay2, fTime;
|
||||
|
||||
fTime = fDelay;
|
||||
fDelay2 += 0.1;
|
||||
fTime += fDelay2;
|
||||
|
||||
if (!GetLocalInt(oPC, "InvisibleNeedleBonus"))
|
||||
{
|
||||
FloatingTextStringOnCreature("You do not have a spell available of adequate level or type", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
//Do ranged attack
|
||||
if (nAttack)
|
||||
{
|
||||
//Doube damage on a crit
|
||||
if (nAttack == 2) nDamage = nDamage*2;
|
||||
|
||||
//Apply the MIRV and damage effect
|
||||
effect eDam = PRCEffectDamage(oTarget, nDamage, DAMAGE_TYPE_MAGICAL);
|
||||
DelayCommand(fTime, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
|
||||
DelayCommand(fTime, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis, oTarget,0.0f,FALSE));
|
||||
DelayCommand(fDelay2, SPApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user