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

68 lines
2.4 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name See Invisibility
//:: Spell FileName PHS_S_SeeInvisib
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Divination
Level: Brd 3, Sor/Wiz 2
Components: V, S, M
Casting Time: 1 standard action
Range: Personal
Target: You
Duration: 10 min./level (D)
You can see any objects or beings that are invisible within your range of
vision, as if they were normally visible. The spell does not reveal the
method used to obtain invisibility. It does not reveal illusions or enable
you to see through opaque objects. It does not reveal creatures who are
simply hiding, concealed, or otherwise hard to see.
Material Component: A pinch of talc and a small sprinkling of powdered silver.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Uses EffectSeeInvisible(), which is simple and only counters EffectInvisibility()
which is a real shame, but still useful.
Note: Originally, the spell also countered Etherealness.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell Hook Check.
if(!PHS_SpellHookCheck(PHS_SPELL_SEE_INVISIBILITY)) return;
// Declare Major Variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
int nMetaMagic = PHS_GetMetaMagicFeat();
int nCasterLevel = PHS_GetCasterLevel();
// 10 minutes/level
float fDuration = PHS_GetDuration(PHS_MINUTES, nCasterLevel * 10, nMetaMagic);
// Delcare effects
effect eVis = EffectVisualEffect(VFX_IMP_MAGICAL_VISION);
effect eSee = EffectSeeInvisible();
effect eDur = EffectVisualEffect(VFX_DUR_MAGICAL_SIGHT);
effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
// Link effects
effect eLink = EffectLinkEffects(eSee, eCessate);
eLink = EffectLinkEffects(eLink, eDur);
// Remove previous castings
PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_SEE_INVISIBILITY, oTarget);
// Signal spell cast at
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_SEE_INVISIBILITY, FALSE);
// Apply effects
PHS_ApplyDurationAndVFX(oTarget, eVis, eLink, fDuration);
}