//:://///////////////////////////////////////////// //:: Elemental Shield //:: NW_S0_FireShld.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Caster gains 50% cold and fire immunity. Also anyone who strikes the caster with melee attacks takes 1d6 + 1 per caster level in damage. */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Jan 7, 2002 //::////////////////////////////////////////////// //:: Created On: Aug 28, 2003, GZ: Fixed stacking issue // edited by Blackhowling's to create Iron Maiden #include "prc_inc_spells" void main() { //Declare major variables effect eVis = EffectVisualEffect(VFX_DUR_DEATH_ARMOR); int nDuration = PRCGetCasterLevel(OBJECT_SELF); int nMetaMagic = PRCGetMetaMagicFeat(); object oTarget = OBJECT_SELF; effect eShield = EffectDamageShield(nDuration, DAMAGE_BONUS_1d6, DAMAGE_TYPE_NEGATIVE); effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); effect eCold = EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 50); effect eFire = EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, 50); effect eIce = EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, 50); //Link effects effect eLink = EffectLinkEffects(eShield, eCold); eLink = EffectLinkEffects(eLink, eFire); eLink = EffectLinkEffects(eLink, eIce); eLink = EffectLinkEffects(eLink, eDur); eLink = EffectLinkEffects(eLink, eVis); //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_ELEMENTAL_SHIELD, FALSE)); // *GZ: No longer stack this spell if (GetHasSpellEffect(PRCGetSpellId(),oTarget)) { } { } //Apply the VFX impact and effects ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, 180.0f); }