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.
106 lines
4.1 KiB
Plaintext
106 lines
4.1 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Horrid Wilting
|
|
//:: Spell FileName PHS_S_HorridWilt
|
|
//:://////////////////////////////////////////////
|
|
//:: In Game Spell desctiption
|
|
//:://////////////////////////////////////////////
|
|
Range: Long (40M)
|
|
Targets: Living enemy creatures, within a 10-M-radius sphere
|
|
Duration: Instantaneous
|
|
Saving Throw: Fortitude half
|
|
Spell Resistance: Yes
|
|
|
|
This spell evaporates moisture from the body of each subject living creature,
|
|
dealing 1d6 points of damage per caster level (maximum 20d6). This spell is
|
|
especially devastating to water elementals and plant creatures, which instead
|
|
take 1d8 points of damage per caster level (maximum 20d8).
|
|
|
|
Arcane Material Component: A bit of sponge.
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
Plant and water elementals are easily added extra damage - more power
|
|
to the necromancers, eh?
|
|
|
|
Damage is magical, as Bioware's spell. Massive radius, however!
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "PHS_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Spell Hook Check.
|
|
if(!PHS_SpellHookCheck(PHS_SPELL_HORRID_WILTING)) return;
|
|
|
|
// Declare major variables
|
|
object oCaster = OBJECT_SELF;
|
|
object oTarget;
|
|
location lTarget = GetSpellTargetLocation();
|
|
int nCasterLevel = PHS_GetCasterLevel();
|
|
int nSpellSaveDC = PHS_GetSpellSaveDC();
|
|
int nMetaMagic = PHS_GetMetaMagicFeat();
|
|
int nDam;
|
|
float fDelay;
|
|
|
|
// Limit dice to 20d6/8
|
|
int nDice = PHS_LimitInteger(nCasterLevel, 20);
|
|
|
|
// Declare Effects
|
|
effect eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY);
|
|
|
|
// Apply AOE visual
|
|
effect eImpact = EffectVisualEffect(VFX_FNF_HORRID_WILTING);
|
|
PHS_ApplyLocationVFX(lTarget, eImpact);
|
|
|
|
// Get all targets in a sphere, 10.0M radius, objects - Creatures
|
|
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 10.0, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
|
// Loop targets
|
|
while(GetIsObjectValid(oTarget))
|
|
{
|
|
// Enemy only PvP Check and spell immunity check
|
|
if(GetIsReactionTypeHostile(oTarget, oCaster) &&
|
|
!PHS_GeneralEverythingImmunity(oTarget))
|
|
{
|
|
//Fire cast spell at event for the specified target
|
|
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_HORRID_WILTING);
|
|
|
|
// Make sure they are living
|
|
if(PHS_GetIsAliveCreature(oTarget))
|
|
{
|
|
// Get the distance between the explosion and the target to calculate delay
|
|
fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20;
|
|
|
|
// Spell resistance And immunity checking.
|
|
if(!PHS_SpellResistanceCheck(oCaster, oTarget, fDelay))
|
|
{
|
|
// If they are a plant, or water elemental, do d8 not d6 damage.
|
|
if(PHS_GetIsPlant(oTarget) || PHS_GetIsWaterElemental(oTarget))
|
|
{
|
|
// Roll damage - d8
|
|
nDam = PHS_MaximizeOrEmpower(8, nDice, nMetaMagic);
|
|
}
|
|
else
|
|
{
|
|
// Roll damage - d6
|
|
nDam = PHS_MaximizeOrEmpower(6, nDice, nMetaMagic);
|
|
}
|
|
|
|
// Adjust the damage based on the Fortitude Save.
|
|
nDam = PHS_GetAdjustedDamage(SAVING_THROW_FORT, nDam, oTarget, nSpellSaveDC, SAVING_THROW_TYPE_FIRE, oCaster, fDelay);
|
|
|
|
// Need to do damage to apply visuals
|
|
if(nDam > 0)
|
|
{
|
|
// Apply effects to the currently selected target.
|
|
DelayCommand(fDelay, PHS_ApplyDamageVFXToObject(oTarget, eVis, nDam, DAMAGE_TYPE_MAGICAL));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Get Next Target
|
|
oTarget = GetNextObjectInShape(SHAPE_SPHERE, 10.0, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
|
}
|
|
}
|