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.
75 lines
2.8 KiB
Plaintext
75 lines
2.8 KiB
Plaintext
/*:://////////////////////////////////////////////
|
||
//:: 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 vengeance’s 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);
|
||
}
|