PRC8/nwn/nwnprc/trunk/psionics/psi_pow_ethjaunt.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

78 lines
2.2 KiB
Plaintext

/*
----------------
Ethereal Jaunt, Psionic
psi_pow_ethjaunt
----------------
8/4/05 by Stratovarius
*/ /** @file
Ethereal Jaunt, Psionic
Psychoportation
Level: Nomad 7
Display: Visual
Manifesting Time: 1 standard action
Range: Personal
Target: You
Duration: 1 round/level
Power Points: 13
Metapsionics: Extend
You become ethereal, along with your equipment. For the duration of the
power, you are in a place called the Ethereal Plane, which overlaps the
normal, physical, Material Plane. When the power expires, you return to
material existence.
Taking any hostile actions will force the power to expire immediately.
*/
#include "psi_inc_psifunc"
#include "psi_inc_pwresist"
#include "psi_spellhook"
#include "prc_alterations"
#include "prc_inc_teleport"
void main()
{
/*
Spellcast Hook Code
Added 2004-11-02 by Stratovarius
If you want to make changes to all powers,
check psi_spellhook to find out more
*/
if (!PsiPrePowerCastCode())
{
// If code within the PrePowerCastHook (i.e. UMD) reports FALSE, do not run this spell
return;
}
// End of Spell Cast Hook
object oManifester = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
struct manifestation manif =
EvaluateManifestation(oManifester, oTarget,
PowerAugmentationProfile(),
METAPSIONIC_EXTEND
);
if(manif.bCanManifest)
{
effect eLink = EffectEthereal();
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_SANCTUARY));
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE));
float fDuration = 6.0f * manif.nManifesterLevel;
if(manif.bExtend) fDuration *= 2;
// Check ability to move extra-dimensionally
if(GetCanTeleport(oManifester, GetLocation(oManifester), FALSE, TRUE))
{
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDuration, TRUE, manif.nSpellID, manif.nManifesterLevel);
}// end if - Manifester can move extra-dimensionally
}// end if - Successfull manifestation
}