PRC8/nwn/trunk/newspellbook/shd_myst_aurashd.nss
Jaysyn904 5914ed2ab5 Updated Release Archive
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.
2023-08-22 10:00:21 -04:00

39 lines
1.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
13/02/19 by Stratovarius
Aura of Shade
Initiate, Elemental Shadows
Level/School: 4th/Abjuration [Cold]
Range: Touch
Target: Creature touched
Duration: 1 round/level
The environment grows immediately more comfortable as you surround yourself with an aura of protective shadow.
You protect the subject from low temperatures and cold energy with a thin layer of that energys shadowy reflection. This absorbs cold damage from attacks and effects. When an aura of shade absorbs a total of 12 points of cold damage per caster level (maximum 120), it expires. For as long as the aura is active, the subjects weapon or natural weapon melee attacks deal an extra 1d6 points of cold damage.
*/
#include "shd_inc_shdfunc"
#include "shd_mysthook"
void main()
{
if(!ShadPreMystCastCode()) return;
object oShadow = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
struct mystery myst = EvaluateMystery(oShadow, oTarget, METASHADOW_EXTEND);
if(myst.bCanMyst)
{
int nAmount = min(120, myst.nShadowcasterLevel * 10);
myst.eLink = EffectLinkEffects(EffectDamageResistance(DAMAGE_TYPE_COLD, nAmount, nAmount), EffectVisualEffect(VFX_DUR_PROTECTION_ENERGY_COLD));
myst.eLink = EffectLinkEffects(myst.eLink, EffectDamageIncrease(DAMAGE_BONUS_1d6, DAMAGE_TYPE_COLD));
myst.fDur = 6.0 * myst.nShadowcasterLevel;
if(myst.bExtend) myst.fDur *= 2;
// Duration Effects
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, myst.eLink, oTarget, myst.fDur, TRUE, myst.nMystId, myst.nShadowcasterLevel);
}
}