Further file organization
Further file organization
This commit is contained in:
59
nwn/nwnprc/trunk/newspellbook/shd_myst_dskdwn.nss
Normal file
59
nwn/nwnprc/trunk/newspellbook/shd_myst_dskdwn.nss
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
12/02/19 by Stratovarius
|
||||
|
||||
Dusk and Dawn
|
||||
|
||||
Apprentice, Shutters and Clouds
|
||||
Level/School: 1st/Evocation
|
||||
Range: Close (25 ft. + 5 ft./2 levels)
|
||||
Area: 20-ft.-radius emanation centered on a point in space
|
||||
Duration: 10 minutes/level (D)
|
||||
Saving Throw: None
|
||||
Spell Resistance: No
|
||||
|
||||
By drawing shade from the Plane of Shadow, or banishing the shadows back to it, you control the level of illumination in the area.
|
||||
|
||||
You make a dark area lighter or a light area darker, blanketing the affected area in shadowy illumination. Creatures with darkvision can see through this area normally.
|
||||
*/
|
||||
|
||||
#include "shd_inc_shdfunc"
|
||||
#include "shd_mysthook"
|
||||
|
||||
void main()
|
||||
{
|
||||
if(!ShadPreMystCastCode()) return;
|
||||
|
||||
object oShadow = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
struct mystery myst = EvaluateMystery(oShadow, oTarget, METASHADOW_EXTEND);
|
||||
|
||||
if(myst.bCanMyst)
|
||||
{
|
||||
location lTarget = PRCGetSpellTargetLocation();
|
||||
myst.fDur = 600.0 * myst.nShadowcasterLevel;
|
||||
if(myst.bExtend) myst.fDur *= 2;
|
||||
|
||||
if (myst.nMystId == MYST_DUSK_AND_DAWN_DAWN)
|
||||
{
|
||||
// Create AoE
|
||||
myst.eLink = EffectAreaOfEffect(VFX_MOB_DAYLIGHT);
|
||||
if (myst.bIgnoreSR) myst.eLink = SupernaturalEffect(myst.eLink);
|
||||
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, myst.eLink, lTarget, myst.fDur);
|
||||
}
|
||||
else
|
||||
{
|
||||
effect eImpact = EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_GREASE);
|
||||
|
||||
// Do impact VFX
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, lTarget);
|
||||
|
||||
// Create AoE
|
||||
myst.eLink = EffectAreaOfEffect(AOE_PER_DUSK_AND_DAWN);
|
||||
if (myst.bIgnoreSR) myst.eLink = SupernaturalEffect(myst.eLink);
|
||||
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, myst.eLink, lTarget, myst.fDur);
|
||||
myst.nPen = ShadowSRPen(oShadow, myst.nShadowcasterLevel);
|
||||
myst.nSaveDC = GetShadowcasterDC(oShadow);
|
||||
SetLocalMystery(oShadow, MYST_HOLD_MYST+"6", myst);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user