PRC8/trunk/newspellbook/shd_fund_shdhood.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

61 lines
2.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
21/02/19 by Stratovarius
Shadow Hood
Fundamental
Level/School: 0/Evocation
Range: Close (25 ft. + 5 ft./2 levels)
Target: One creature
Duration: 1 round/level
Saving Throw: Will negates
Spell Resistance: No
Swirling shadows manifest around your foes head.
Swirling tendrils and bursts of mystic shadow distract the subject. It takes a 1 penalty on attack rolls and Dexterity-based checks.
*/
#include "shd_inc_shdfunc"
#include "shd_mysthook"
#include "prc_inc_sp_tch"
void main()
{
object oShadow = OBJECT_SELF;
// Get infinite uses at this level
if (GetLevelByClass(CLASS_TYPE_SHADOWCASTER, oShadow) >= 14) IncrementRemainingFeatUses(oShadow, 23670);
if(!ShadPreMystCastCode()) return;
object oTarget = PRCGetSpellTargetObject();
struct mystery myst = EvaluateMystery(oShadow, oTarget, METASHADOW_EXTEND);
if(myst.bCanMyst)
{
SignalEvent(oTarget, EventSpellCastAt(oShadow, myst.nMystId));
// Only creatures, and PvP check.
if(!GetIsReactionTypeFriendly(oTarget))
{
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetShadowcasterDC(oShadow), SAVING_THROW_TYPE_SPELL))
{
myst.fDur = 6.0 * myst.nShadowcasterLevel;
if(myst.bExtend) myst.fDur *= 2;
myst.eLink = EffectLinkEffects(EffectSkillDecrease(SKILL_HIDE, 1), EffectAttackDecrease(1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_MOVE_SILENTLY, 1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_OPEN_LOCK, 1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_PARRY, 1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_PICK_POCKET, 1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_SET_TRAP, 1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_TUMBLE, 1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_RIDE, 1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectSkillDecrease(SKILL_BALANCE, 1));
myst.eLink = EffectLinkEffects(myst.eLink, EffectVisualEffect(VFX_DUR_BRIGHT_LIGHT_INDIGO_PULSE_SLOW));
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(myst.eLink), oTarget, myst.fDur, TRUE, myst.nMystId, myst.nShadowcasterLevel);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_BLINDDEAD_DN_PURPLE), oTarget);
}
}
}
}