forked from Jaysyn/PRC8
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.
64 lines
2.5 KiB
Plaintext
64 lines
2.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Storm Mantle
|
|
//:: tm_s0_epstrmmant.nss
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Grants all within the casters party within a radius of 10
|
|
to receive a Greater Spell Mantle.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Nron Ksr
|
|
//:: Created On: March 9, 2004
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_alterations"
|
|
#include "inc_epicspells"
|
|
|
|
void main()
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ABJURATION);
|
|
|
|
if( !X2PreSpellCastCode() )
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
return;
|
|
} // End of Spell Cast Hook
|
|
if (GetCanCastSpell(OBJECT_SELF, SPELL_EPIC_STORM_M))
|
|
{
|
|
//Declare major variables
|
|
object oTarget = GetFirstObjectInShape( SHAPE_SPHERE,
|
|
RADIUS_SIZE_HUGE, PRCGetSpellTargetLocation() );
|
|
effect eVis = EffectVisualEffect( VFX_DUR_SPELLTURNING );
|
|
effect eDur = EffectVisualEffect( VFX_DUR_CESSATE_POSITIVE );
|
|
int nDuration = GetTotalCastingLevel( OBJECT_SELF ); // Bone - changed
|
|
|
|
effect eImpact = EffectVisualEffect( VFX_FNF_LOS_NORMAL_20 );
|
|
ApplyEffectAtLocation( DURATION_TYPE_INSTANT, eImpact, PRCGetSpellTargetLocation() );
|
|
|
|
while( GetIsObjectValid(oTarget) )
|
|
{
|
|
if( spellsIsTarget(oTarget, SPELL_TARGET_ALLALLIES, OBJECT_SELF) )
|
|
{
|
|
//Link Effects are inside the IF to cause a d12 roll on each mantle
|
|
int nAbsorb = d12() + 10;
|
|
effect eAbsob = EffectSpellLevelAbsorption( 9, nAbsorb );
|
|
effect eLink = EffectLinkEffects( eVis, eAbsob );
|
|
eLink = EffectLinkEffects( eLink, eDur );
|
|
|
|
//Fire cast spell at event for the specified target
|
|
SignalEvent( oTarget, EventSpellCastAt(OBJECT_SELF,
|
|
SPELL_GREATER_SPELL_MANTLE, FALSE) );
|
|
PRCRemoveEffectsFromSpell( oTarget, GetSpellId() );
|
|
//Apply the VFX impact and effects
|
|
SPApplyEffectToObject( DURATION_TYPE_TEMPORARY, eLink,
|
|
oTarget, RoundsToSeconds(nDuration), TRUE, -1, GetTotalCastingLevel(OBJECT_SELF) );
|
|
}
|
|
oTarget = GetNextObjectInShape( SHAPE_SPHERE,
|
|
RADIUS_SIZE_HUGE, PRCGetSpellTargetLocation() );
|
|
}
|
|
}
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
}
|
|
|