Files
Anphillia_PRC8/_removed/x0_s0_ether.nss
Jaysyn904 28cdb617b3 Initial commit
Adding all of the current content for Anphillia Unlimited.
2024-01-04 07:49:38 -05:00

66 lines
1.7 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Etherealness
//:: x0_s0_ether.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Like sanctuary except almost always guaranteed
to work.
Lasts one turn per level.
*/
/* Anphillia Changes
This spell now lasts 1 Round / Level instead
of 1 Turn / Level
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 7, 2002
//:://////////////////////////////////////////////
#include "x2_inc_spellhook"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
If you want to make changes to all spells,
check x2_inc_spellhook.nss to find out more
*/
if (!X2PreSpellCastCode())
{
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
return;
}
// End of Spell Cast Hook
//Declare major variables
object oTarget = GetSpellTargetObject();
effect eVis = EffectVisualEffect(VFX_DUR_SANCTUARY);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eSanc = EffectEthereal();
effect eLink = EffectLinkEffects(eVis, eSanc);
eLink = EffectLinkEffects(eLink, eDur);
int nDuration = GetCasterLevel(OBJECT_SELF);
//Enter Metamagic conditions
int nMetaMagic = GetMetaMagicFeat();
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_ETHEREALNESS, FALSE));
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
}