/*::////////////////////////////////////////////// //:: Spell Name Globe of Invulnerability //:: Spell FileName PHS_S_GlobeInv //::////////////////////////////////////////////// //:: In Game Spell desctiption //::////////////////////////////////////////////// 4th level spells and lower are stopped. 1 round/level. Caster is target. //::////////////////////////////////////////////// //:: Spell Effects Applied / Notes //::////////////////////////////////////////////// As lesser, but 4 or lower levels. Follows the caster around. Mainly as Bioware one. //::////////////////////////////////////////////// //:: Created By: Jasperre //::////////////////////////////////////////////*/ #include "PHS_INC_SPELLS" void main() { // Spell hook check. if(!PHS_SpellHookCheck(PHS_SPELL_GLOBE_OF_INVUNRABILITY)) return; // Declare major variables object oTarget = GetSpellTargetObject(); // Should be object self. int nCasterLevel = PHS_GetCasterLevel(); int nMetaMagic = PHS_GetMetaMagicFeat(); // Duration in rounds float fDuration = PHS_GetDuration(PHS_ROUNDS, nCasterLevel, nMetaMagic); // Declare effects effect eGlobe = EffectSpellLevelAbsorption(4, 0, SPELL_SCHOOL_GENERAL); effect eCessate = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE); effect eDur = EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY); // Link Effects effect eLink = EffectLinkEffects(eGlobe, eCessate); eLink = EffectLinkEffects(eLink, eDur); // Signal event spell cast at PHS_SignalSpellCastAt(oTarget, PHS_SPELL_GLOBE_OF_INVUNRABILITY, FALSE); // Remove previous castings PHS_RemoveSpellEffectsFromTarget(PHS_SPELL_GLOBE_OF_INVUNRABILITY, oTarget); // Apply effects PHS_ApplyDuration(oTarget, eLink, fDuration); }