59 lines
2.0 KiB
Plaintext
59 lines
2.0 KiB
Plaintext
|
/*
|
|||
|
13/02/19 by Stratovarius
|
|||
|
|
|||
|
Shadow Skin
|
|||
|
|
|||
|
Apprentice, Shutters and Clouds
|
|||
|
Level/School: 2nd/Abjuration
|
|||
|
Range: Personal
|
|||
|
Target: You
|
|||
|
Duration: 1 round
|
|||
|
|
|||
|
Semisolid shadows rise up and serve as protectors, flickering around you and absorbing some of the damage you might otherwise have taken.
|
|||
|
|
|||
|
You can cast this mystery as an immediate action. You gain damage reduction according to your caster level.
|
|||
|
|
|||
|
Caster Level DR
|
|||
|
Up to 4th 5/+1
|
|||
|
5th<EFBFBD>9th 10/+1
|
|||
|
10th<EFBFBD>14th 10/+2
|
|||
|
15th<EFBFBD>19th 15/+2
|
|||
|
20th 15/<2F>
|
|||
|
*/
|
|||
|
|
|||
|
#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)
|
|||
|
{
|
|||
|
if (myst.nShadowcasterLevel >= 20)
|
|||
|
{
|
|||
|
myst.eLink = EffectLinkEffects(EffectDamageResistance(DAMAGE_TYPE_SLASHING, 15), EffectDamageResistance(DAMAGE_TYPE_PIERCING, 15));
|
|||
|
myst.eLink = EffectLinkEffects(myst.eLink, EffectDamageResistance(DAMAGE_TYPE_BLUDGEONING, 15));
|
|||
|
}
|
|||
|
else if (myst.nShadowcasterLevel >= 15)
|
|||
|
myst.eLink = EffectDamageReduction(15, DAMAGE_POWER_PLUS_TWO);
|
|||
|
else if (myst.nShadowcasterLevel >= 10)
|
|||
|
myst.eLink = EffectDamageReduction(10, DAMAGE_POWER_PLUS_TWO);
|
|||
|
else if (myst.nShadowcasterLevel >= 5)
|
|||
|
myst.eLink = EffectDamageReduction(10, DAMAGE_POWER_PLUS_ONE);
|
|||
|
else
|
|||
|
myst.eLink = EffectDamageReduction(5, DAMAGE_POWER_PLUS_ONE);
|
|||
|
|
|||
|
myst.eLink = EffectLinkEffects(myst.eLink, EffectVisualEffect(PSI_DUR_SHADOW_BODY));
|
|||
|
if (myst.bIgnoreSR) myst.eLink = SupernaturalEffect(myst.eLink);
|
|||
|
|
|||
|
myst.fDur = 6.0;
|
|||
|
if(myst.bExtend) myst.fDur *= 2;
|
|||
|
// Duration Effects
|
|||
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, myst.eLink, oTarget, myst.fDur, TRUE, myst.nMystId, myst.nShadowcasterLevel);
|
|||
|
}
|
|||
|
}
|