PRC8/nwn/nwnprc/trunk/smp/phs_s_stormven.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

75 lines
2.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*:://////////////////////////////////////////////
//:: Spell Name Storm of Vengance
//:: Spell FileName PHS_S_StormVen
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Creates a storm, level 9,40M range, 120M AOE, and up to 10 rounds of concentration
until finnished.
On Enter: saving throw or deafened for 1d4x10 minutes.
2nd round: Acid rain, 1d6 damage to everyone in AOE. No save.
3rd round: 6 bolts of lightning. 6 enemies affected. 10d6 reflex electrcity.
4th round: Hailstones, for 5d6 points of bludgeoning damage. No save.
5th to 10th rounds: Speed reduced by 3/4ths, and 20% miss chance.
No ranged attacks in the cloud. Spells cast within the area are disrupted unless
the caster succeeds on a Concentration check against a DC equal to the storm
of vengeances save DC + the level of the spell the caster is trying to cast.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
As above, really!
Concentration checks are made here in 2 second delay command heartbeats,
which are checked for the integer each time in the heartbeat.
If concentration is broken, the AOE is destroyed.
Also note that only 1 AOE can be cast in an area. No overlapping.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell hook check
if(!PHS_SpellHookCheck(PHS_SPELL_STORM_OF_VENGEANCE)) return;
// Declare major variables
object oCaster = OBJECT_SELF;
location lTarget = GetSpellTargetLocation();
// We cannot actually cast it if it'll be in an exisiting AOE
object oOtherAOE = GetNearestObjectByTag(PHS_AOE_TAG_PER_STORM_OF_VENGEANCE, oCaster, 1);
object oArea = GetArea(oCaster);
// check distance and validility
if(GetIsObjectValid(oOtherAOE) &&
GetDistanceBetweenLocations(GetLocation(oOtherAOE), lTarget) <= 120.0)
{
FloatingTextStringOnCreature("You cannot create another storm which overlaps with an exsisting one", oCaster, FALSE);
return;
}
// Must be above ground, and outside, duh!
if(GetIsAreaAboveGround(oArea) == AREA_UNDERGROUND ||
GetIsAreaInterior(oArea))
{
FloatingTextStringOnCreature("You cannot cast Storm of Vengeance underground or inside!", oCaster, FALSE);
return;
}
// Declare effects
effect eAOE = EffectAreaOfEffect(PHS_AOE_PER_STORM_OF_VENGEANCE);
effect eImpact = EffectVisualEffect(VFX_FNF_STORM);
// Get 10 rounds worth of time
float fDuration = RoundsToSeconds(10);
// Apply AOE effects at location
PHS_ApplyLocationDurationAndVFX(lTarget, eImpact, eAOE, fDuration);
}