UW2_PRC8/_haks/poa_exp_spells/sp_strm_shard.nss
Jaysyn904 7f1e0b1070 Update for PRC8 functions update
Update for PRC8 functions update.  Updated spells & abilities haks.  Full compile.  Updated release archive.
2025-02-10 14:06:04 -05:00

97 lines
2.6 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name Storm of Shards
//:: FileName sp_strm_shard.nss
//:://////////////////////////////////////////////
/**@file Storm of Shards
Evocation [Good]
Level: Sanctified 6
Components: V, S, Sacrifice
Casting Time: 1 standard action
Range: 0 ft.
Area: 80-ft.-radius spread
Duration: Instantaneous
Saving Throw: Fortitude negates (blinding),
Reflex half (shards)
Spell Resistance: Yes
Shards of heavenly light rain down from above.
Evil creatures within the spell's area that fail
a Fortitude save are blinded permanently. The
light shards also slice the flesh of evil
creatures, dealing 1d6 points of damage per caster
level (maximum 20d6). A successful Reflex save
halves the damage, which is of divine origin.
Sacrifice: 1d3 points of Strength drain.
Author: Tenjac
Created: 6/28/06
*/
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
#include "prc_inc_spells"
#include "prc_add_spell_dc"
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_EVOCATION);
object oPC = OBJECT_SELF;
location lLoc = GetLocation(oPC);
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, 24.38f, lLoc, FALSE, OBJECT_TYPE_CREATURE);
int nCasterLvl = PRCGetCasterLevel(oPC);
int nDC = PRCGetSaveDC(oTarget, oPC);
int nAlign;
int nMetaMagic = PRCGetMetaMagicFeat();
//VFX
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIRESTORM), lLoc);
while(GetIsObjectValid(oTarget))
{
if(!PRCDoResistSpell(OBJECT_SELF, oTarget, nCasterLvl + SPGetPenetr()))
{
nAlign = GetAlignmentGoodEvil(oTarget);
if(nAlign == ALIGNMENT_EVIL)
{
if(!PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_DIVINE))
{
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectBlindness(), oTarget);
}
int nDam = d6(PRCMin(nCasterLvl, 40));
if(nMetaMagic & METAMAGIC_MAXIMIZE)
{
nDam = 6 *(PRCMin(nCasterLvl, 40));
}
if(nMetaMagic & METAMAGIC_EMPOWER)
{
nDam += (nDam/2);
}
if(PRCMySavingThrow(SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_DIVINE))
{
nDam = nDam/2;
}
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nDam, DAMAGE_TYPE_DIVINE), oTarget);
}
}
oTarget = MyNextObjectInShape(SHAPE_SPHERE, 24.38f, lLoc, FALSE, OBJECT_TYPE_CREATURE);
}
//Sanctified spells get mandatory 10 pt good adjustment, regardless of switch
AdjustAlignment(oPC, ALIGNMENT_GOOD, 10, FALSE);
//SPGoodShift(oPC);
DoCorruptionCost(oPC, ABILITY_STRENGTH, d3(1), 1);
PRCSetSchool();
}