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.
94 lines
3.1 KiB
Plaintext
94 lines
3.1 KiB
Plaintext
/*:://////////////////////////////////////////////
|
|
//:: Spell Name Chill of the Void
|
|
//:: Spell FileName XXX_S_ChillOfVoi
|
|
//:://////////////////////////////////////////////
|
|
//:: In Game Spell desctiption
|
|
//:://////////////////////////////////////////////
|
|
Necromany [Cold]
|
|
Level: Sor/Wiz 4
|
|
Components: V, S
|
|
Casting Time: 1 standard action
|
|
Range: Medium (20M)
|
|
Effect: Ray
|
|
Duration: Instantaneous
|
|
Saving Throw: Instantaneous
|
|
Spell Resistance: Yes
|
|
Source: Various (Law)
|
|
|
|
A purple ray springs from your hand. You draw power from the void giving you
|
|
the power to chill more then just one part of the flesh but all the flesh of
|
|
the target. You must succeed at a ranged touch attack to strike the target.
|
|
The target takes 1d4 points of cold damage per caster level (maximum 10d4)
|
|
there is no save for this part of the spell. The target creature also takes
|
|
2 points of Constitution damage unless it makes a successful Fortitude
|
|
saving throw.
|
|
//:://////////////////////////////////////////////
|
|
//:: Spell Effects Applied / Notes
|
|
//:://////////////////////////////////////////////
|
|
Simple, and effective.
|
|
|
|
The consitution damage is made supernatural, it has no duration and cannot
|
|
be dispelled because of it, and so may last forever.
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Jasperre
|
|
//::////////////////////////////////////////////*/
|
|
|
|
#include "SMP_INC_SPELLS"
|
|
|
|
void main()
|
|
{
|
|
// Spell Hook Check.
|
|
if(!SMP_SpellHookCheck(SMP_SPELL_CHILL_OF_THE_VOID)) return;
|
|
|
|
// Declare major variables
|
|
object oCaster = OBJECT_SELF;
|
|
object oTarget = GetSpellTargetObject();
|
|
int nMetaMagic = SMP_GetMetaMagicFeat();
|
|
int nCasterLevel = SMP_GetCasterLevel();
|
|
int nSpellSaveDC = SMP_GetSpellSaveDC();
|
|
// Ranged touch attack
|
|
int nTouch = SMP_SpellTouchAttack(SMP_TOUCH_RAY, oTarget, TRUE);
|
|
|
|
// Dice
|
|
int nDice = SMP_LimitInteger(nCasterLevel, 10);
|
|
|
|
// Damage is 1d4/level - cold damage
|
|
int nDam = SMP_MaximizeOrEmpower(4, nDice, nMetaMagic, FALSE, nTouch);
|
|
|
|
// Declare effects
|
|
effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
|
|
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
|
|
effect eCon = EffectAbilityDecrease(ABILITY_CONSTITUTION, 2);
|
|
effect eLink = EffectLinkEffects(eDur, eCon);
|
|
|
|
// Supernatural
|
|
eLink = SupernaturalEffect(eLink);
|
|
|
|
// Signal event
|
|
SMP_SignalSpellCastAt(oTarget, SMP_SPELL_CHILL_OF_THE_VOID);
|
|
|
|
// Do hit/miss ray - Purple Odd beam.
|
|
SMP_ApplyTouchBeam(oTarget, VFX_BEAM_ODD, nTouch);
|
|
|
|
// Touch attack
|
|
if(nTouch)
|
|
{
|
|
// PvP check
|
|
if(!GetIsReactionTypeFriendly(oTarget))
|
|
{
|
|
// Resistance
|
|
if(!SMP_SpellResistanceCheck(oCaster, oTarget))
|
|
{
|
|
// Apply effects
|
|
SMP_ApplyDamageVFXToObject(oTarget, eVis, nDam, DAMAGE_TYPE_COLD);
|
|
|
|
// Fortitude save for no con damage
|
|
if(!SMP_SavingThrow(SAVING_THROW_FORT, oTarget, nSpellSaveDC, SAVING_THROW_TYPE_COLD))
|
|
{
|
|
SMP_ApplyPermanent(oTarget, eLink);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|