PRC8/nwn/trunk/smp/phs_s_seeinvisib.nss
Jaysyn904 5914ed2ab5 Updated Release Archive
Updated Release Archive.  Fixed Mage-killer prereqs.  Removed old LETO & ConvoCC related files.  Added organized spell scroll store.  Fixed Gloura spellbook. Various TLK fixes.  Reorganized Repo.  Removed invalid user folders. Added DocGen back in.
2023-08-22 10:00:21 -04: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);
}