forked from Jaysyn/PRC8
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.6 KiB
Plaintext
71 lines
2.6 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Black Tentacles: On Enter
|
|
//:: Spell FileName PHS_S_BlackTentA
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
Grapple check uses the functions created for this, and other spells-which-grapple
|
|
things.
|
|
|
|
The tentacles will only attack (using a proper attack thing) On Enter.
|
|
|
|
If they have the entanglement of tentacles, the HB will continue to grapple.
|
|
|
|
Always applies 50% movement speed decrease. Removes all effects On Exit. Will
|
|
not grapple someone with the spells effects already.
|
|
//:://////////////////////////////////////////////
|
|
//:: 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 nCasterLevel = PHS_GetAOECasterLevel();
|
|
|
|
// Get opposed grapple roll
|
|
int nOpposedGrappleRoll = d20() + GetBaseAttackBonus(oTarget) +
|
|
GetAbilityModifier(ABILITY_STRENGTH, oTarget) +
|
|
PHS_GrappleSizeBonus(oTarget);
|
|
|
|
// We always apply the slow for the spell, as a supernatural effect, using
|
|
// the standard On Enter things.
|
|
effect eSlow = EffectMovementSpeedDecrease(50);
|
|
|
|
// We may also entangle them (and later do damage) and sucessfully grapple
|
|
// with a tentacle
|
|
effect eEntangle = EffectEntangle();
|
|
effect eDur = EffectVisualEffect(PHS_VFX_DUR_BLACK_TENTACLE);
|
|
effect eLink = EffectLinkEffects(eEntangle, eDur);
|
|
|
|
// 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_EVARDS_BLACK_TENTACLES);
|
|
|
|
// Now we make an attack to hold them, if we can
|
|
if(!GetHasSpellEffect(PHS_SPELL_EVARDS_BLACK_TENTACLES, oTarget))
|
|
{
|
|
// Check grapple roll
|
|
if(PHS_GrappleCheck(oTarget, nCasterLevel, 4, 4, nOpposedGrappleRoll, oCaster))
|
|
{
|
|
// Now we entangle, later rounds do damage.
|
|
// * Can be dispelled as normal, not supernatural.
|
|
PHS_ApplyPermanent(oTarget, eLink);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Apply slow effects always
|
|
PHS_AOE_OnEnterEffects(eLink, oTarget, PHS_SPELL_EVARDS_BLACK_TENTACLES);
|
|
}
|