forked from Jaysyn/PRC8
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.
46 lines
1.5 KiB
Plaintext
46 lines
1.5 KiB
Plaintext
//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));
|
|
}
|
|
} |