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.
62 lines
2.0 KiB
Plaintext
62 lines
2.0 KiB
Plaintext
/*
|
|
13/02/19 by Stratovarius
|
|
|
|
Flesh Fails
|
|
|
|
Apprentice, Touch of Twilight
|
|
Level/School: 2nd/Necromancy
|
|
Range: Touch
|
|
Target: Living creature touched
|
|
Duration: Instantaneous
|
|
Saving Throw: None
|
|
Spell Resistance: Yes
|
|
|
|
You open your enemy to the darkness, trading his physical attributes for weaker abilities belonging to creatures of shadow.
|
|
|
|
You deal either 4 points of Strength damage, 4 points of Dexterity damage, or 2 points of Constitution damage to the subject; you choose which kind of ability damage when you cast the mystery.
|
|
*/
|
|
|
|
#include "shd_inc_shdfunc"
|
|
#include "shd_mysthook"
|
|
#include "prc_inc_sp_tch"
|
|
|
|
void main()
|
|
{
|
|
if(!ShadPreMystCastCode()) return;
|
|
|
|
object oShadow = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
struct mystery myst = EvaluateMystery(oShadow, oTarget, METASHADOW_NONE);
|
|
|
|
if(myst.bCanMyst)
|
|
{
|
|
myst.nPen = ShadowSRPen(oShadow, myst.nShadowcasterLevel);
|
|
|
|
SignalEvent(oTarget, EventSpellCastAt(oShadow, myst.nMystId));
|
|
|
|
int nAttack = PRCDoMeleeTouchAttack(oTarget);
|
|
if (nAttack > 0)
|
|
{
|
|
// Only creatures, and PvP check.
|
|
if(!GetIsReactionTypeFriendly(oTarget))
|
|
{
|
|
// Check Spell Resistance
|
|
if(!PRCDoResistSpell(oShadow, oTarget, myst.nPen) || myst.bIgnoreSR)
|
|
{
|
|
int nAbil = ABILITY_STRENGTH;
|
|
int nDam = 4;
|
|
if (myst.nMystId == MYST_FLESH_FAILS_DEX)
|
|
nAbil = ABILITY_DEXTERITY;
|
|
else if (myst.nMystId == MYST_FLESH_FAILS_CON)
|
|
{
|
|
nAbil = ABILITY_CONSTITUTION;
|
|
nDam = 2;
|
|
}
|
|
|
|
ApplyAbilityDamage(oTarget, nAbil, nDam, DURATION_TYPE_PERMANENT, TRUE);
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DISENTIGRATION_SMP), oTarget);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |