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.
61 lines
2.7 KiB
Plaintext
61 lines
2.7 KiB
Plaintext
/*
|
||
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 foe’s 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);
|
||
}
|
||
}
|
||
}
|
||
}
|