forked from Jaysyn/PRC8
41 lines
1.7 KiB
Plaintext
41 lines
1.7 KiB
Plaintext
/*
|
||
26/1/21 by Stratovarius
|
||
|
||
Word of Abrogation (Sp): Beginning at 6th level, you
|
||
can use your command of incarnum to counterspell your
|
||
enemies. To do so, you must first ready an action. If any
|
||
creature within 60 feet of you casts a spell or uses a spell-like
|
||
ability, you can attempt to negate the effect as an immediate
|
||
action with a caster level check (DC 11 + the enemy creature’s
|
||
caster level), using your meldshaper level as your caster level.
|
||
You gain a +1 bonus on the check for every point of essentia
|
||
you invest in this ability. You can abrogate only one spell or
|
||
spell-like effect with each use of this ability, so if you are
|
||
facing multiple spellcasters, you must decide which one to
|
||
target with your word of abrogation and wait until your chosen
|
||
target takes its turn.
|
||
|
||
*/
|
||
|
||
#include "moi_inc_moifunc"
|
||
|
||
void main()
|
||
{
|
||
object oMeldshaper = OBJECT_SELF;
|
||
|
||
// If you've already got it, clean up instead
|
||
if (!GetLocalInt(oMeldshaper, "Abrogation"))
|
||
{
|
||
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_WITCH_ABROGATION);
|
||
int nMeldshaperLvl = GetMeldshaperLevel(oMeldshaper, GetPrimaryIncarnumClass(oMeldshaper), MELD_WITCH_ABROGATION);
|
||
// This is because if you've readied an action to counterspell, you can't attack
|
||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectLinkEffects(EffectSlow(), EffectAttackDecrease(-40))), oMeldshaper, 9999.0);
|
||
SetLocalInt(oMeldshaper, "Abrogation", 10+nMeldshaperLvl+nEssentia);
|
||
}
|
||
else
|
||
{
|
||
DeleteLocalInt(oMeldshaper, "Abrogation");
|
||
PRCRemoveSpellEffects(MELD_WITCH_ABROGATION, oMeldshaper, oMeldshaper);
|
||
GZPRCRemoveSpellEffects(MELD_WITCH_ABROGATION, oMeldshaper, FALSE);
|
||
}
|
||
} |