Further file organization
Further file organization
This commit is contained in:
90
nwn/nwnprc/trunk/spells/sp_real_blind.nss
Normal file
90
nwn/nwnprc/trunk/spells/sp_real_blind.nss
Normal file
@@ -0,0 +1,90 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name Reality Blind
|
||||
//:: FileName sp_real_blind.nss
|
||||
//:://////////////////////////////////////////////
|
||||
/**@file Reality Blind
|
||||
Illusion (Phantasm) [Evil, Mind<6E>Affecting]
|
||||
Level: Sor/Wiz 3
|
||||
Components: V, S, M
|
||||
Casting Time: 1 action
|
||||
Range: Close (25 ft. + 5 ft./2 levels)
|
||||
Target: One creature
|
||||
Duration: Concentration (see below)
|
||||
Saving Throw: Will negates
|
||||
Spell Resistance: Yes
|
||||
|
||||
This spell overwhelms the target with hallucinations,
|
||||
causing him to be blinded and stunned if he fails
|
||||
the save. The subject can attempt a new saving throw
|
||||
each round to end the spell.
|
||||
|
||||
Even after the subject succeeds at the save or the
|
||||
caster stops concentrating, the subject is plagued
|
||||
with nightmares every night. The nightmares prevent
|
||||
the subject from benefiting from natural healing.
|
||||
These nightmares continue until the caster dies or
|
||||
the subject succeeds at a Will saving throw, attempted
|
||||
once per night. This nightmare effect is treated as a
|
||||
curse and thus cannot be dispelled. It is subject to
|
||||
remove curse, however.
|
||||
|
||||
Material Component: A 2-inch diameter multicolored
|
||||
disk of paper or ribbon.
|
||||
|
||||
Author: Tenjac
|
||||
Created: 6/6/06
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
void BlindLoop(object oTarget, object oPC);
|
||||
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_add_spell_dc"
|
||||
void main()
|
||||
|
||||
{
|
||||
if(!X2PreSpellCastCode()) return;
|
||||
|
||||
PRCSetSchool(SPELL_SCHOOL_ILLUSION);
|
||||
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
|
||||
PRCSignalSpellEvent(oTarget,TRUE, SPELL_REALITY_BLIND, oPC);
|
||||
|
||||
if(!PRCDoResistSpell(OBJECT_SELF, oTarget, nCasterLvl + SPGetPenetr()))
|
||||
{
|
||||
//Loop
|
||||
BlindLoop(oTarget, oPC);
|
||||
}
|
||||
PRCSetSchool();
|
||||
//SPEvilShift(oPC);
|
||||
}
|
||||
|
||||
|
||||
void BlindLoop(object oTarget, object oPC)
|
||||
{
|
||||
int nDC = PRCGetSaveDC(oTarget, oPC);
|
||||
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_EVIL)) //&& Conc check successful
|
||||
{
|
||||
effect eBlind = EffectLinkEffects(EffectBlindness(), EffectStunned());
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBlind, oTarget, 6.0f);
|
||||
|
||||
//Schedule next round
|
||||
DelayCommand(6.0f, BlindLoop(oTarget, oPC));
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
//Non healing code
|
||||
SetLocalInt(oPC, "PRC_NoNaturalHeal", 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user