//:://///////////////////////////////////////////// //:: Lesser Spell Mantle //:: NW_S0_LsSpTurn.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Absorbs 1d4 + 6 spell levels before collapsing */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Jan 7, 2002 //::////////////////////////////////////////////// //:: VFX Pass By: Preston W, On: June 22, 2001 //:: modified by mr_bumpkin Dec 4, 2003 for PRC stuff #include "prc_inc_spells" void main() { DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ABJURATION); /* Spellcast Hook Code Added 2003-06-23 by GeorgZ If you want to make changes to all spells, check x2_inc_spellhook.nss to find out more */ if (!X2PreSpellCastCode()) { // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell return; } // End of Spell Cast Hook //Declare major variables object oTarget = PRCGetSpellTargetObject(); effect eVis = EffectVisualEffect(VFX_DUR_SPELLTURNING); effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); int CasterLvl = PRCGetCasterLevel(OBJECT_SELF); int nDuration = CasterLvl; int nAbsorb = d4() + 6; int nMetaMagic = PRCGetMetaMagicFeat(); PRCRemoveEffectsFromSpell(oTarget, SPELL_GREATER_SPELL_MANTLE); PRCRemoveEffectsFromSpell(oTarget, SPELL_SPELL_MANTLE); //Enter Metamagic conditions if (CheckMetaMagic(nMetaMagic, METAMAGIC_MAXIMIZE)) { nAbsorb = 10;//Damage is at max } if (CheckMetaMagic(nMetaMagic, METAMAGIC_EMPOWER)) { nAbsorb = nAbsorb + (nAbsorb/2); //Damage/Healing is +50% } if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND)) { nDuration = nDuration *2; //Duration is +100% } //Link Effects effect eAbsob = EffectSpellLevelAbsorption(9, nAbsorb); effect eLink = EffectLinkEffects(eVis, eAbsob); eLink = EffectLinkEffects(eLink, eDur); //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_LESSER_SPELL_MANTLE, FALSE)); PRCRemoveEffectsFromSpell(oTarget, GetSpellId()); //Apply the VFX impact and effects SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration),TRUE,-1,CasterLvl); DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); // Getting rid of the local integer storing the spellschool name }