PRC8_fork/trunk/spells/sp_solid_fogA.nss

59 lines
2.2 KiB
Plaintext
Raw Normal View History

//::///////////////////////////////////////////////
//:: Name Solid Fog: On Enter
//:: FileName sp_solid_fogA.nss
//:://////////////////////////////////////////////
/**@file Solid Fog
Conjuration (Creation)
Level: Sor/Wiz 4, Hexblade 4
Components: V, S, M
Duration: 1 min./level
Spell Resistance: No
This spell functions like fog cloud, but in addition
to obscuring sight, the solid fog is so thick that
any creature attempting to move through it progresses
at a speed of 5 feet, regardless of its normal speed,
and it takes a -2 penalty on all melee attack and
melee damage rolls. The vapors prevent effective
ranged weapon attacks (except for magic rays and the
like). A creature or object that falls into solid fog
is slowed, so that each 10 feet of vapor that it
passes through reduces falling damage by 1d6. A
creature can<61>t take a 5-foot step while in solid fog.
However, unlike normal fog, only a severe wind
(31+ mph) disperses these vapors, and it does so in
1 round.
Solid fog can be made permanent with a permanency
spell. A permanent solid fog dispersed by wind
reforms in 10 minutes.
Material Component: A pinch of dried, powdered peas
combined with powdered animal hoof.
**/
#include "prc_inc_spells"
void main()
{
PRCSetSchool(SPELL_SCHOOL_CONJURATION);
//Declare major variables
object oCaster = GetAreaOfEffectCreator();
object oTarget = GetEnteringObject();
effect eLink = EffectMovementSpeedDecrease(80);
eLink = EffectLinkEffects(eLink, EffectConcealment(20, MISS_CHANCE_TYPE_VS_MELEE));
eLink = EffectLinkEffects(eLink, EffectConcealment(100, MISS_CHANCE_TYPE_VS_RANGED));
eLink = EffectLinkEffects(eLink, EffectMissChance(100, MISS_CHANCE_TYPE_VS_RANGED));
eLink = EffectLinkEffects(eLink, EffectAttackDecrease(2));
eLink = EffectLinkEffects(eLink, EffectDamageDecrease(2, DAMAGE_TYPE_BLUDGEONING|DAMAGE_TYPE_PIERCING|DAMAGE_TYPE_SLASHING));
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_GLOW_GREY));
//Fire cast spell at event for the target
SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_SOLID_FOG, FALSE));
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget);
PRCSetSchool();
}