Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
66 lines
2.0 KiB
Plaintext
66 lines
2.0 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: [Aranea Web]
|
|
//:: [race_aranea_web.nss]
|
|
//:: [Jaysyn / PRC 20220420]
|
|
//::///////////////////////////////////////////////
|
|
/**@file Web (Ex): In spider or hybrid form (see below), an aranea
|
|
can throw a web up to six times per day. This is similar to an
|
|
attack with a net but has a maximum range of 50 feet, with a
|
|
range increment of 10 feet, and is effective against targets of
|
|
up to Large size. The web anchors the target in place, allowing
|
|
no movement.
|
|
|
|
/////////////////////////////////////////////////////////////////////////////*/
|
|
|
|
#include "NW_I0_SPELLS"
|
|
#include "x2_inc_switches"
|
|
#include "prc_inc_nwscript"
|
|
#include "prc_inc_combmove"
|
|
|
|
void main()
|
|
{
|
|
|
|
//:: Declare major varibles
|
|
object oCaster = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
|
|
int nHD = GetHitDice(oCaster);
|
|
int nCount = d6(1) + (nHD / 2);
|
|
int TargetSize = PRCGetSizeModifier(oTarget);
|
|
int nHumanoid = GetLocalInt(oCaster, "AraneaHumanoidForm");
|
|
|
|
effect eVis = EffectVisualEffect(VFX_DUR_WEB);
|
|
effect eStick = EffectEntangle();
|
|
effect eLink = ExtraordinaryEffect(EffectLinkEffects(eVis, eStick));
|
|
|
|
|
|
//:: Sanity check
|
|
if (nHumanoid)
|
|
{
|
|
SendMessageToPC(oCaster, "You can't throw webbing in humanoid form");
|
|
IncrementRemainingFeatUses(oCaster, FEAT_ARANEA_WEB);
|
|
return;
|
|
}
|
|
|
|
//:: Only affects large or smaller targets
|
|
if (TargetSize > 4)
|
|
{
|
|
FloatingTextStringOnCreature("This creature is too large to web.", oTarget);
|
|
IncrementRemainingFeatUses(oCaster, FEAT_ARANEA_WEB);
|
|
return;
|
|
}
|
|
|
|
//:: Fire cast spell at event for the specified target
|
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_ARANEA_WEB));
|
|
|
|
//:: Make a ranged touch attack
|
|
if (PRCDoRangedTouchAttack(oTarget))
|
|
{
|
|
if(GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) != TRUE )
|
|
{
|
|
//Apply the VFX impact and effects
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nCount));
|
|
}
|
|
}
|
|
}
|