PRC8/nwn/nwnprc/trunk/smp/phs_s_sanctuary.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

63 lines
2.3 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Sanctuary
//:: Spell FileName PHS_S_Sanctuary
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Range: Touch
Target: Creature touched
Duration: 1 round/level
Saving Throw: Will negates
Spell Resistance: No
All creatures who percieve the touched creature must attempt a Will save. If
the save succeeds, the opponent can see the target normally and is unaffected
by that casting of the spell. If the save fails, the opponent cannot see the
creature as if they were under the effect of invisibility. This spell does
not prevent the warded creature from being attacked or affected by area or
effect spells. The subject cannot attack without breaking the spell but may
use nonattack spells or otherwise act.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
As above - uses the default Bioware Sancuary, so its not exactly to D&D at all.
Sancuary, as far as I am aware, is a better invisiblity - as it is used
as a basis for the Bioware Etherealness.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell hook check
if(!PHS_SpellHookCheck(PHS_SPELL_SANCTUARY)) return;
// Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nSpellSaveDC = PHS_GetSpellSaveDC();
int nCasterLevel = PHS_GetCasterLevel();
int nMetaMagic = PHS_GetMetaMagicFeat();
// Get duration in rounds
float fDuration = PHS_GetDuration(PHS_ROUNDS, nCasterLevel, nMetaMagic);
// Declare effects
effect eSanctuary = EffectSanctuary(nSpellSaveDC);
effect eDur = EffectVisualEffect(VFX_DUR_SANCTUARY);
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
// Link effects
effect eLink = EffectLinkEffects(eSanctuary, eDur);
eLink = EffectLinkEffects(eLink, eCessate);
// Signal spell cast at event
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_SANCTUARY, FALSE);
// Apply duration effects
PHS_ApplyDuration(oTarget, eLink, fDuration);
}