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.
59 lines
2.0 KiB
Plaintext
59 lines
2.0 KiB
Plaintext
/*
|
|
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);
|
|
}
|
|
}
|
|
} |