PRC8/trunk/smp/phs_s_entangle.nss
Jaysyn904 1662218bb4 Initial upload.
Adding base PRC 4.19a files to repository.
2022-10-07 13:51:24 -04:00

60 lines
2.2 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Entangle
//:: Spell FileName PHS_S_Entangle
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Transmutation
Level: Drd 1, Plant 1, Rgr 1
Components: V, S, DF
Casting Time: 1 standard action
Range: Long (40M)
Area: Plants in a 13.33-M.-radius spread
Duration: 1 min./level (D)
Saving Throw: Reflex partial, Strength check; see text
Spell Resistance: No
Grasses, weeds, bushes, and even trees wrap, twist, and entwine about
creatures in the area or those that enter the area, holding them fast and
causing them to become entangled. If the area contains no plants, they may
spring up from the ground and entangle creatures anyway. The creature can
break free and move half its normal speed by making a DC 20 Strength check.
A creature that succeeds on a Reflex save is not entangled but can still
move at only half speed through the area. Each round on your turn, the
plants once again attempt to entangle all creatures that have avoided or
escaped entanglement.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
No SR, noting that.
On Heartbeat will do reflex saves to apply EffectEntangle, for a permament
duration.
On Heartbeat will do a STR check if they are already entangled, to remove it.
On Enter applies slow effect. On Exit should remove all effects.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell hook check.
if(!PHS_SpellHookCheck(PHS_SPELL_ENTANGLE)) return;
// Declare major variables
location lTarget = GetSpellTargetLocation();
int nCasterLevel = PHS_GetCasterLevel();
int nMetaMagic = PHS_GetMetaMagicFeat();
// Duration in minutes
float fDuration = PHS_GetDuration(PHS_MINUTES, nCasterLevel, nMetaMagic);
// Declare effects
effect eAOE = EffectAreaOfEffect(PHS_AOE_PER_ENTANGLE);
// Apply effects
PHS_ApplyLocationDuration(lTarget, eAOE, fDuration);
}