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.
70 lines
2.3 KiB
Plaintext
70 lines
2.3 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Sleet Storm: On Heartbeat
|
|
//:: Spell FileName PHS_S_SleetStorC
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
I'll use Darkness style Invisibility + Darkness effect.
|
|
|
|
No EffectUltravision() will be used in spells.
|
|
|
|
The save is static, it was a DC10 Balance check, a DC10 reflex save is
|
|
plenty large - still has a 1 in 20 chance of falling.
|
|
|
|
13.33M is large! huge even! and it needs to be a good effect, it must
|
|
really snow hard!
|
|
|
|
Heartbeat does the DC10 reflex save, else knockdown. Taken mainly from
|
|
Grease.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "PHS_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Check AOE
|
|
if(!PHS_CheckAOECreator()) return;
|
|
|
|
// Declare major variables
|
|
object oTarget;
|
|
object oCaster = GetAreaOfEffectCreator();
|
|
int nMetaMagic = PHS_GetAOEMetaMagic();
|
|
// Static DC of 10
|
|
int nSpellSaveDC = 10;
|
|
float fDelay, fDuration;
|
|
int nRoll;
|
|
|
|
// Declare effects
|
|
effect eDur = EffectKnockdown();
|
|
|
|
// Start cycling through the AOE Object for viable targets
|
|
oTarget = GetFirstInPersistentObject(OBJECT_SELF, OBJECT_TYPE_CREATURE);
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
// PvP check
|
|
if(!GetIsReactionTypeFriendly(oTarget, oCaster) &&
|
|
// Make sure they are not immune to spells
|
|
!PHS_TotalSpellImmunity(oTarget))
|
|
{
|
|
// Fire cast spell at event for the affected target
|
|
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_SLEET_STORM);
|
|
|
|
// Random delay to make it not all fire at once
|
|
fDelay = PHS_GetRandomDelay(0.1, 0.3);
|
|
|
|
fDuration = 5.9 - fDelay;
|
|
|
|
// Reflex saving throw
|
|
if(!PHS_SavingThrow(SAVING_THROW_REFLEX, oTarget, nSpellSaveDC, SAVING_THROW_TYPE_NONE, oCaster, fDelay))
|
|
{
|
|
// Apply damage and visuals
|
|
DelayCommand(fDelay, PHS_ApplyDuration(oTarget, eDur, fDuration));
|
|
}
|
|
}
|
|
//Get next target.
|
|
oTarget = GetNextInPersistentObject(OBJECT_SELF, OBJECT_TYPE_CREATURE);
|
|
}
|
|
}
|