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.
96 lines
3.4 KiB
Plaintext
96 lines
3.4 KiB
Plaintext
/*:://////////////////////////////////////////////
|
||
//:: Spell Name Wave Of Exaltation
|
||
//:: Spell FileName XXX_S_WaveOfExal
|
||
//:://////////////////////////////////////////////
|
||
//:: In Game Spell desctiption
|
||
//:://////////////////////////////////////////////
|
||
Transmutation
|
||
Also known as: Elhiria’s Wave Of Exaltation
|
||
Level: Brd 2, Sor/Wiz 2
|
||
Components: V, S
|
||
Casting Time: 1 standard action
|
||
Range: 6.67M (20ft.)
|
||
Area: Caster and 1 creature/level, in a 6.67M. burst (20ft.) centered on
|
||
the caster
|
||
Duration: 1 minute/level (D)
|
||
Saving Throw: Fortitude Negates (Harmless)
|
||
Spell Resistance: Yes (Harmless)
|
||
Source: Various (VolkorTheRed)
|
||
|
||
A wave starts at the point of origin of the spell and spreads out te envelop
|
||
all affected allied creatures in a mantle of positive feelings and resolvement.
|
||
|
||
The transmuted creatures’ skin becomes harder to penetrate by enemy weapons.
|
||
The creatures receive DR 1/Epic and get an +1 morale bonus on all saving
|
||
throws.
|
||
//:://////////////////////////////////////////////
|
||
//:: Spell Effects Applied / Notes
|
||
//:://////////////////////////////////////////////
|
||
As the spell says - DR 1/Epic, and +1 bonus on saving throws.
|
||
|
||
Changed to +1 on saves, Saving Grace still has some potency then.
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Jasperre
|
||
//::////////////////////////////////////////////*/
|
||
|
||
#include "SMP_INC_SPELLS"
|
||
|
||
void main()
|
||
{
|
||
// Spell hook check.
|
||
if(!SMP_SpellHookCheck(SMP_SPELL_WAVE_OF_EXALTATION)) return;
|
||
|
||
//Declare major variables
|
||
object oCaster = OBJECT_SELF;
|
||
object oTarget;
|
||
object oTargetDiamond;
|
||
// 1 creature/level.
|
||
int nCasterLevel = SMP_GetCasterLevel();
|
||
int nMetaMagic = SMP_GetMetaMagicFeat();
|
||
int nCnt;
|
||
|
||
// Note: This does increase by 1 if caster is affected
|
||
int nDoneCreatures = 0;
|
||
|
||
// 1 round/level duration
|
||
float fDuration = SMP_GetDuration(SMP_ROUNDS, nCasterLevel, nMetaMagic);
|
||
|
||
// Delcare effects
|
||
effect eDR = EffectDamageReduction(1, DAMAGE_POWER_PLUS_TWENTY);
|
||
effect eSave = EffectSavingThrowIncrease(SAVING_THROW_ALL, 1, SAVING_THROW_TYPE_ALL);
|
||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||
effect eVis = EffectVisualEffect(VFX_IMP_HEAD_MIND);
|
||
|
||
// Link effects
|
||
effect eLink = EffectLinkEffects(eDR, eDur);
|
||
eLink = EffectLinkEffects(eLink, eSave);
|
||
|
||
// Loop all targets without effect nearby. Start with the caster!
|
||
oTarget = oCaster;
|
||
// Loop for 6.67M or 20ft
|
||
while(GetIsObjectValid(oTarget) && nDoneCreatures < nCasterLevel &&
|
||
GetDistanceToObject(oTarget) <= RADIUS_SIZE_FEET_20)
|
||
{
|
||
// Make sure they are in our LOS, are a friend too.
|
||
if((LineOfSightObject(oCaster, oTarget) &&
|
||
(GetIsFriend(oTarget) || GetFactionEqual(oTarget))) ||
|
||
(oTarget == oCaster))
|
||
{
|
||
// Add one to nDoneCreatures
|
||
nDoneCreatures++;
|
||
|
||
// Signal spell cast at event
|
||
SMP_SignalSpellCastAt(oTarget, SMP_SPELL_WAVE_OF_EXALTATION, FALSE);
|
||
|
||
// Remove previous castings
|
||
SMP_RemoveSpellEffectsFromTarget(SMP_SPELL_WAVE_OF_EXALTATION, oTarget);
|
||
|
||
// Apply effects
|
||
SMP_ApplyDurationAndVFX(oTarget, eVis, eDur, fDuration);
|
||
}
|
||
// Get next nearest target
|
||
nCnt++;
|
||
oTarget = GetNearestObject(OBJECT_TYPE_CREATURE, oCaster, nCnt);
|
||
}
|
||
}
|