Finished Invocations for Ability focus
Finished the rest of the Invocations for Ability focus.
This commit is contained in:
parent
2caeb8941c
commit
3a362d25be
@ -27,6 +27,10 @@ void main()
|
||||
int CasterLvl = GetInvokerLevel(oCaster, GetInvokingClass());
|
||||
int nPenetr = CasterLvl + SPGetPenetr();
|
||||
int iAttackRoll = PRCDoMeleeTouchAttack(oTarget);
|
||||
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
if (GetHasFeat(FEAT_ABFOC_CURSE_OF_DESPAIR, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
int dec = 2 * iAttackRoll;//4 on Critical Hit
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
|
||||
effect eCurse = EffectCurse(dec, dec, dec, dec, dec, dec);
|
||||
@ -42,8 +46,8 @@ void main()
|
||||
//Make SR Check
|
||||
if (!PRCDoResistSpell(oCaster, oTarget, nPenetr))
|
||||
{
|
||||
//Make Will Save
|
||||
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetInvocationSaveDC(oTarget, oCaster)))
|
||||
//Make Will Save
|
||||
if (!/*Will Save*/ PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
|
||||
{
|
||||
//Apply Effect and VFX
|
||||
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eCurse, oTarget, 0.0f, TRUE, -1, CasterLvl);
|
||||
|
@ -25,10 +25,7 @@ void main()
|
||||
object oCaster = OBJECT_SELF;
|
||||
location lTarget = PRCGetSpellTargetLocation();
|
||||
int CasterLvl = GetInvokerLevel(oCaster, GetInvokingClass());
|
||||
int nPenetr = CasterLvl + SPGetPenetr();
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_DEAFENING_ROAR, oCaster)) nDC += 2;
|
||||
int nPenetr = CasterLvl + SPGetPenetr();
|
||||
|
||||
float fDelay;
|
||||
effect eDeaf = EffectDeaf();
|
||||
@ -42,6 +39,10 @@ void main()
|
||||
object oTarget = MyFirstObjectInShape(SHAPE_SPELLCONE, FeetToMeters(30.0), lTarget, TRUE, OBJECT_TYPE_CREATURE, GetPosition(oCaster));
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
|
||||
if (GetHasFeat(FEAT_ABFOC_DEAFENING_ROAR, oCaster)) nDC += 2;
|
||||
|
||||
if(oTarget != oCaster && !GetIsReactionTypeFriendly(oTarget))
|
||||
{
|
||||
fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20;
|
||||
|
@ -40,8 +40,12 @@ void main()
|
||||
|
||||
//Get first target in the spell cone
|
||||
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, fRange, lTarget, TRUE, OBJECT_TYPE_CREATURE, GetPosition(oCaster));
|
||||
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
if (GetHasFeat(FEAT_ABFOC_FRIGHTFUL_PRESENCE, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
if(spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)
|
||||
&& MyPRCGetRacialType(oTarget)!= RACIAL_TYPE_DRAGON)
|
||||
{
|
||||
@ -52,7 +56,7 @@ void main()
|
||||
if(!PRCDoResistSpell(oCaster, oTarget, nPenetr, fDelay))
|
||||
{
|
||||
//Make a will save - if failed, shaken for 10 minutes
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetInvocationSaveDC(oTarget, oCaster), SAVING_THROW_TYPE_FEAR, oCaster, fDelay))
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR, oCaster, fDelay))
|
||||
{
|
||||
//Apply the linked effects and the VFX impact
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(10), TRUE, -1, CasterLvl));
|
||||
|
@ -36,8 +36,14 @@ void main()
|
||||
//Get first target in the spell cylinder
|
||||
object oTarget = MyFirstObjectInShape(SHAPE_SPELLCYLINDER, fRange, lTarget,
|
||||
TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, GetPosition(OBJECT_SELF));
|
||||
|
||||
|
||||
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
if (GetHasFeat(FEAT_ABFOC_SCALDING_GUST, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oCaster))
|
||||
{
|
||||
fDelay = GetDistanceBetween(oCaster, oTarget)/20;
|
||||
@ -47,7 +53,7 @@ void main()
|
||||
if(!PRCDoResistSpell(oCaster, oTarget, nPenetr, fDelay))
|
||||
{
|
||||
if(PRCGetCreatureSize(oTarget) < CREATURE_SIZE_MEDIUM)
|
||||
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, GetInvocationSaveDC(oTarget, oCaster), SAVING_THROW_TYPE_NONE))
|
||||
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_NONE))
|
||||
{
|
||||
effect eWindblown = EffectKnockdown();
|
||||
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eWindblown, oTarget, 6.0));
|
||||
|
@ -50,8 +50,12 @@ void main()
|
||||
|
||||
//Get first target in the spell cone
|
||||
object oTarget = MyFirstObjectInShape(SHAPE_SPELLCONE, fRange, lTarget, TRUE, OBJECT_TYPE_CREATURE, GetPosition(OBJECT_SELF));
|
||||
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster);
|
||||
if (GetHasFeat(FEAT_ABFOC_TERRIFYING_ROAR, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oCaster)
|
||||
&& !(GetHitDice(oTarget) > CasterLvl))
|
||||
{
|
||||
@ -62,7 +66,7 @@ void main()
|
||||
if(!PRCDoResistSpell(oCaster, oTarget, nPenetr, fDelay))
|
||||
{
|
||||
//Make a will save - if failed, panicked
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetInvocationSaveDC(oTarget, oCaster), SAVING_THROW_TYPE_FEAR, oCaster, fDelay))
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR, oCaster, fDelay))
|
||||
{
|
||||
//Apply the linked effects and the VFX impact
|
||||
DelayCommand(fDelay, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, 6.0, TRUE, -1, CasterLvl));
|
||||
|
@ -11,6 +11,8 @@ void main()
|
||||
object oTarget = GetEnteringObject();
|
||||
int CasterLvl = GetInvokerLevel(GetAreaOfEffectCreator(), CLASS_TYPE_WARLOCK);
|
||||
int nDC = GetInvocationSaveDC(oTarget, GetAreaOfEffectCreator(),INVOKE_ENERVATING_SHADOW);
|
||||
if (GetHasFeat(FEAT_ABFOC_ENERVATING_SHADOW, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
effect eConceal = EffectConcealment(20);
|
||||
effect eStrength = EffectAbilityDecrease(ABILITY_STRENGTH, 4);
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
|
||||
|
@ -15,8 +15,11 @@ void main()
|
||||
SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(),
|
||||
INVOKE_NIGHTMARES_MADE_REAL));
|
||||
|
||||
int nDC = GetInvocationSaveDC(oTarget, GetAreaOfEffectCreator(), INVOKE_NIGHTMARES_MADE_REAL);
|
||||
if (GetHasFeat(FEAT_ABFOC_NIGHTMARES_MADE_REAL, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
//save
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, GetInvocationSaveDC(oTarget, GetAreaOfEffectCreator(), INVOKE_NIGHTMARES_MADE_REAL), SAVING_THROW_TYPE_SPELL))
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_SPELL))
|
||||
{
|
||||
effect eEntangle = EffectLinkEffects(EffectEntangle(), EffectVisualEffect(VFX_DUR_ENTANGLE));
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEntangle, oTarget, RoundsToSeconds(nCasterLevel));
|
||||
|
@ -13,6 +13,8 @@ void main()
|
||||
object oCaster = GetAreaOfEffectCreator();
|
||||
int nCasterLvl = GetInvokerLevel(oCaster, CLASS_TYPE_WARLOCK);
|
||||
int nDC = GetInvocationSaveDC(oTarget, oCaster, INVOKE_WALL_OF_GLOOM);
|
||||
if (GetHasFeat(FEAT_ABFOC_WALL_OF_GLOOM, OBJECT_SELF)) nDC += 2;
|
||||
|
||||
effect eConceal = EffectConcealment(50);
|
||||
effect eHalt = EffectMovementSpeedDecrease(99);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user