//:://///////////////////////////////////////////// //:: [Acrobatic Attack] //:: [prc_s_acroatk.nss] //::////////////////////////////////////////////// //:: Leaps at a target. Inflicting d6 / 2 duelist //:: levels + dex bonus damage and knockdown for //:: 1 round. Reflex save verus 10 + duelist //:: level + dex bonus for half damage and no //:: knockdown. //:: //:: Attack/Damage bonus of +2 or +4 for 1 round //:: //::////////////////////////////////////////////// //:: Created By: Aaon Graywolf //:: Created On: Dec 21, 2003 //::////////////////////////////////////////////// #include "nw_i0_spells" void main() { //Declare major variables int nDuration = 2; int nWis = GetAbilityModifier(ABILITY_WISDOM); int nDC = 15 + nWis; if(GetHasFeat(FEAT_FREE_KI_2, OBJECT_SELF)) nDC += nWis; if(GetHasFeat(FEAT_FREE_KI_3, OBJECT_SELF)) nDC += nWis; if(GetHasFeat(FEAT_FREE_KI_4, OBJECT_SELF)) nDC += nWis; location lTargetLocation = GetSpellTargetLocation(); object oTarget; effect eGaze = EffectStunned(); effect eVis = EffectVisualEffect(VFX_IMP_SONIC); effect eVisDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED); //Get first target in spell area oTarget = GetFirstObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE); while(GetIsObjectValid(oTarget)) { if(!GetIsReactionTypeFriendly(oTarget) && oTarget != OBJECT_SELF) { //Determine effect delay float fDelay = GetDistanceBetween(OBJECT_SELF, oTarget)/20; if(!/*WillSave*/MySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS, OBJECT_SELF, fDelay)) { DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eGaze, oTarget, 12.0f)); DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVisDur, oTarget, 12.0f)); DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); } } //Get next target in spell area oTarget = GetNextObjectInShape(SHAPE_SPELLCONE, 10.0, lTargetLocation, TRUE); } }