/* Rally - Warpriest spell */ #include "prc_alterations" #include "prc_feat_const" #include "prc_class_const" #include "prc_spell_const" void main() { object oCaster = OBJECT_SELF; location lCenter = GetLocation(oCaster); object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 20.0, lCenter); effect eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_20); effect eHit = EffectVisualEffect(VFX_COM_HIT_DIVINE); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lCenter); while(oTarget != OBJECT_INVALID) { if(GetIsFriend(oTarget, oCaster)) { effect e = GetFirstEffect(oTarget); while(GetIsEffectValid(e)) { if(GetEffectType(e) == EFFECT_TYPE_FRIGHTENED) { int iDC = 10 + (GetHitDice(GetEffectCreator(e))/2) - GetLevelByClass(CLASS_TYPE_WARPRIEST, oCaster); int iWill = WillSave(oTarget, iDC, SAVING_THROW_TYPE_FEAR,GetEffectCreator(e)); if(iWill > 0) { RemoveEffect(oTarget, e); } ApplyEffectToObject(DURATION_TYPE_INSTANT, eHit, oTarget); SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELLABILITY_WP_RALLY, FALSE)); } e = GetNextEffect(oTarget); } } oTarget = GetNextObjectInShape(SHAPE_SPHERE, 20.0, lCenter); } }