forked from Jaysyn/PRC8
60 lines
2.7 KiB
Plaintext
60 lines
2.7 KiB
Plaintext
|
/*
|
|||
|
08/03/21 by Stratovarius
|
|||
|
|
|||
|
Acererak, the Devourer
|
|||
|
|
|||
|
Acererak, a half-human lich, grasped at godlike power only to lose his grip on reality. As a vestige, he grants abilities that are similar to a lich<63>s powers.
|
|||
|
|
|||
|
Vestige Level: 5th
|
|||
|
Binding DC: 25
|
|||
|
Special Requirement: None
|
|||
|
|
|||
|
Influence: As a vestige, Acererak possesses the immortality he desired but none of the power that should accompany it. If you fall under his influence,
|
|||
|
you evince a strong hunger for influence and primacy. If you are presented with an opportunity to fill a void in power over a group of creatures, Acererak
|
|||
|
requires that you attempt to seize that power. You might impersonate a missing city offi cial, take command of a leaderless unit of soldiers, or even grab the reins of runaway horses to establish your supremacy.
|
|||
|
|
|||
|
Granted Abilities:
|
|||
|
While bound to Acererak, you gain powers that the great lich held in his legendary unlife.
|
|||
|
|
|||
|
Paralyzing Touch: As a standard action, you can make a touch attack to paralyze a living foe. The touched creature must succeed on a Fortitude save or be
|
|||
|
paralyzed for a number of rounds equal to one-half your effective binder level. Each round on its turn, the paralyzed creature can attempt a new saving
|
|||
|
throw as a full-round action, with success ending the effect immediately. Once you have used this ability, you cannot do so again for 5 rounds.
|
|||
|
*/
|
|||
|
|
|||
|
#include "bnd_inc_bndfunc"
|
|||
|
#include "prc_inc_sp_tch"
|
|||
|
|
|||
|
void RecurringSave(object oTarget, int nSpell, int nDC, object oBinder);
|
|||
|
|
|||
|
void RecurringSave(object oTarget, int nSpell, int nDC, object oBinder)
|
|||
|
{
|
|||
|
if (GetHasSpellEffect(nSpell, oTarget))
|
|||
|
{
|
|||
|
if (PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE))
|
|||
|
{
|
|||
|
PRCRemoveSpellEffects(nSpell, oBinder, oTarget);
|
|||
|
GZPRCRemoveSpellEffects(nSpell, oTarget, FALSE);
|
|||
|
}
|
|||
|
DelayCommand(6.0, RecurringSave(oTarget, nSpell, nDC, oBinder));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void main()
|
|||
|
{
|
|||
|
object oBinder = OBJECT_SELF;
|
|||
|
if(!BindAbilCooldown(oBinder, GetSpellId(), VESTIGE_ACERERAK)) return;
|
|||
|
object oTarget = PRCGetSpellTargetObject();
|
|||
|
int nBinderLevel = GetBinderLevel(oBinder, VESTIGE_ACERERAK);
|
|||
|
int nDC = GetBinderDC(oBinder, VESTIGE_ACERERAK);
|
|||
|
|
|||
|
if (PRCGetIsAliveCreature(oTarget))
|
|||
|
{
|
|||
|
if (PRCDoMeleeTouchAttack(oTarget) && !PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE))
|
|||
|
{
|
|||
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId()));
|
|||
|
effect eHold = EffectLinkEffects(EffectParalyze(), EffectVisualEffect(VFX_DUR_STONEHOLD));
|
|||
|
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eHold), oTarget, RoundsToSeconds(nBinderLevel/2));
|
|||
|
DelayCommand(6.0, RecurringSave(oTarget, GetSpellId(), nDC, oBinder));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|