Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
71 lines
2.3 KiB
Plaintext
71 lines
2.3 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Web: On Enter
|
|
//:: Spell FileName PHS_S_WebA
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
On Enter:
|
|
|
|
Reflex save, or stuck, if pass, still get -4 AC, -2 attack.
|
|
|
|
Always get 80% speed decrease (and consealment).
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "PHS_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Check AOE status
|
|
if(!PHS_CheckAOECreator()) return;
|
|
|
|
// Declare major variables
|
|
object oTarget = GetEnteringObject();
|
|
object oCaster = GetAreaOfEffectCreator();
|
|
int nSpellSaveDC = PHS_GetAOESpellSaveDC();
|
|
|
|
// Declare major effects
|
|
effect eDur = EffectVisualEffect(VFX_DUR_WEB);
|
|
effect eSlow = EffectMovementSpeedDecrease(80);
|
|
effect eConceal = EffectConcealment(20, MISS_CHANCE_TYPE_VS_RANGED);
|
|
effect eAlwaysLink = EffectLinkEffects(eSlow, eConceal);
|
|
eAlwaysLink = SupernaturalEffect(eAlwaysLink);
|
|
|
|
// Fake entangle
|
|
effect eFakeEntangle1 = EffectACDecrease(4);
|
|
effect eFakeEntangle2 = EffectAttackDecrease(2);
|
|
effect eFakeEntangleLink = EffectLinkEffects(eFakeEntangle1, eFakeEntangle2);
|
|
eFakeEntangleLink = EffectLinkEffects(eFakeEntangleLink, eDur);
|
|
eFakeEntangleLink = SupernaturalEffect(eFakeEntangleLink);
|
|
|
|
// Proper entangle
|
|
effect eEntangle = EffectEntangle();
|
|
effect eLink = EffectLinkEffects(eEntangle, eDur);
|
|
eLink = SupernaturalEffect(eLink);
|
|
|
|
// PvP Check
|
|
if(!GetIsReactionTypeFriendly(oTarget, oCaster) &&
|
|
// Make sure they are not immune to spells
|
|
!PHS_TotalSpellImmunity(oTarget))
|
|
{
|
|
// Fire cast spell at event for the target
|
|
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_WEB);
|
|
|
|
// Always apply the slowing
|
|
PHS_ApplyPermanent(oTarget, eAlwaysLink);
|
|
|
|
// Check reflex save
|
|
if(!PHS_SavingThrow(SAVING_THROW_REFLEX, oTarget, nSpellSaveDC, SAVING_THROW_TYPE_NONE, oCaster))
|
|
{
|
|
// Fail - full stop
|
|
PHS_ApplyPermanent(oTarget, eLink);
|
|
}
|
|
else
|
|
{
|
|
// Pass - Partial entanglement
|
|
PHS_ApplyPermanent(oTarget, eFakeEntangleLink);
|
|
}
|
|
}
|
|
}
|