PRC8/nwn/nwnprc/trunk/newspellbook/inv_nightmarea.nss
Jaysyn904 3a362d25be Finished Invocations for Ability focus
Finished the rest of the Invocations for Ability focus.
2025-05-13 23:36:44 -04:00

37 lines
1.4 KiB
Plaintext

#include "inv_inc_invfunc"
void main()
{
object oTarget = GetEnteringObject();
int nCasterLevel = GetInvokerLevel(GetAreaOfEffectCreator(), CLASS_TYPE_WARLOCK);
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectConcealment(50), oTarget);
if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE , GetAreaOfEffectCreator())
&& oTarget != GetAreaOfEffectCreator()
&& GetCreatureFlag(oTarget, CREATURE_VAR_IS_INCORPOREAL) != TRUE)
{
//Fire cast spell at event for the target
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, nDC, SAVING_THROW_TYPE_SPELL))
{
effect eEntangle = EffectLinkEffects(EffectEntangle(), EffectVisualEffect(VFX_DUR_ENTANGLE));
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEntangle, oTarget, RoundsToSeconds(nCasterLevel));
}
}
if(oTarget != GetAreaOfEffectCreator())
{
itemproperty iHide = ItemPropertyBonusFeat(31); //HIPS
object oSkin = GetPCSkin(GetAreaOfEffectCreator());
IPSafeAddItemProperty(oSkin, iHide, RoundsToSeconds(nCasterLevel), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
}
}