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

65 lines
2.6 KiB
Plaintext

//:://////////////////////////////////////////////
//:: FileName: "ss_ep_audi_stone"
/* Purpose: Audience of Stone - all enemies in the spell's radius makes a
FORT save or else turn to stone.
*/
//:://////////////////////////////////////////////
//:: Created By: Boneshank
//:: Last Updated On: March 13, 2004
//:://////////////////////////////////////////////
#include "prc_alterations"
//#include "x2_inc_spellhook"
#include "inc_epicspells"
void main()
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_TRANSMUTATION);
if (!X2PreSpellCastCode())
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
return;
}
if (GetCanCastSpell(OBJECT_SELF, SPELL_EPIC_A_STONE))
{
float fDelay;
effect eExplode = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
effect eVis = EffectVisualEffect(VFX_COM_CHUNK_STONE_MEDIUM);
effect eStone = EffectPetrify();
effect eLink = EffectLinkEffects(eVis, eStone);
location lTarget = PRCGetSpellTargetLocation();
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget);
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE,
RADIUS_SIZE_LARGE, lTarget);
while (GetIsObjectValid(oTarget))
{
if (oTarget != OBJECT_SELF && !GetIsDM(oTarget) &&
!GetFactionEqual(oTarget) && spellsIsTarget(oTarget,
SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
{
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF,
PRCGetSpellId()));
fDelay = PRCGetRandomDelay(1.5, 2.5);
if(!PRCDoResistSpell(OBJECT_SELF, oTarget, GetTotalCastingLevel(OBJECT_SELF)+SPGetPenetr(OBJECT_SELF), fDelay))
{
//Use bioware petrify command
PRCDoPetrification(PRCGetCasterLevel(), OBJECT_SELF, oTarget, PRCGetSpellId(), GetEpicSpellSaveDC(OBJECT_SELF, oTarget));
/*
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, GetEpicSpellSaveDC(OBJECT_SELF, oTarget),
SAVING_THROW_TYPE_SPELL, OBJECT_SELF, fDelay))
{
DelayCommand(fDelay, SPApplyEffectToObject
(DURATION_TYPE_INSTANT, eLink, oTarget));
}
*/
}
}
oTarget = GetNextObjectInShape(SHAPE_SPHERE,
RADIUS_SIZE_LARGE, lTarget);
}
}
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
}