forked from Jaysyn/PRC8
47 lines
1.5 KiB
Plaintext
47 lines
1.5 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Invisibility Sphere
|
||
|
//:: NW_S0_InvSph.nss
|
||
|
//:: Copyright (c) 2001 Bioware Corp.
|
||
|
//:://////////////////////////////////////////////
|
||
|
/*
|
||
|
All allies within 15ft are rendered invisible.
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: Preston Watamaniuk
|
||
|
//:: Created On: Jan 7, 2002
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: modified by mr_bumpkin Dec 4, 2003 for PRC stuff
|
||
|
#include "prc_inc_spells"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
if(!X2PreSpellCastCode()) return;
|
||
|
|
||
|
PRCSetSchool(SPELL_SCHOOL_ILLUSION);
|
||
|
|
||
|
//Declare major variables including Area of Effect Object
|
||
|
object oCaster = OBJECT_SELF;
|
||
|
object oTarget = PRCGetSpellTargetObject();
|
||
|
int nCasterLvl = PRCGetCasterLevel(oCaster);
|
||
|
int nMetaMagic = PRCGetMetaMagicFeat();
|
||
|
int nAoE = AOE_PER_INVIS_SPHERE;
|
||
|
|
||
|
//Make sure duration does no equal 0
|
||
|
if(nCasterLvl < 1)
|
||
|
nCasterLvl = 1;
|
||
|
|
||
|
float fDuration = TurnsToSeconds(nCasterLvl);
|
||
|
if(GetHasFeat(FEAT_INSIDIOUSMAGIC, oCaster))
|
||
|
fDuration *= 2;
|
||
|
if(nMetaMagic & METAMAGIC_EXTEND)
|
||
|
fDuration *= 2;
|
||
|
|
||
|
//Create an instance of the AOE Object using the Apply Effect function
|
||
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAreaOfEffect(nAoE), oTarget, fDuration, TRUE, SPELL_INVISIBILITY_SPHERE, nCasterLvl);
|
||
|
|
||
|
//Setup Area Of Effect object
|
||
|
object oAoE = GetAreaOfEffectObject(GetLocation(oTarget), "VFX_PER_INVIS_SPHERE");
|
||
|
SetAllAoEInts(SPELL_INVISIBILITY_SPHERE, oAoE, 10, 0, nCasterLvl);
|
||
|
|
||
|
PRCSetSchool();
|
||
|
}
|