public static Composite CreateStayAwayFromFrozenTargetsBehavior() { return(Avoidance.CreateAvoidanceBehavior( "Blink", TalentManager.HasGlyph("Blink") ? 28 : 20, Disengage.Direction.Frontwards, crowdControl: CreateSlowMeleeBehavior(), needDisengage: nd => Me.GotTarget() && Me.CurrentTarget.IsCrowdControlled() && Me.CurrentTarget.SpellDistance() < SingularSettings.Instance.KiteAvoidDistance, needKiting: nk => Me.GotTarget() && (Me.CurrentTarget.IsCrowdControlled() || Me.CurrentTarget.IsSlowed(60)) && Me.CurrentTarget.SpellDistance() < SingularSettings.Instance.KiteAvoidDistance )); }
/// <summary> /// creates a Mage specific avoidance behavior based upon settings. will check for safe landing /// zones before using Blink or Rocket Jump. will additionally do a running away or jump turn /// attack while moving away from attacking mob if behaviors provided /// </summary> /// <param name="nonfacingAttack">behavior while running away (back to target - instants only)</param> /// <param name="jumpturnAttack">behavior while facing target during jump turn (instants only)</param> /// <returns></returns> public static Composite CreateMageAvoidanceBehavior() { int distBlink = TalentManager.HasGlyph("Blink") ? 28 : 20; return(Avoidance.CreateAvoidanceBehavior( "Blink", distBlink, Disengage.Direction.Frontwards, crowdControl: CreateSlowMeleeBehavior(), needDisengage: nd => false, needKiting: nk => Me.GotTarget() && Me.CurrentTarget.IsFrozen() && Me.CurrentTarget.SpellDistance() < 8 )); }
/// <summary> /// creates a Priest specific avoidance behavior based upon settings. will check for safe landing /// zones before using WildCharge or rocket jump. will additionally do a running away or jump turn /// attack while moving away from attacking mob if behaviors provided /// </summary> /// <param name="nonfacingAttack">behavior while running away (back to target - instants only)</param> /// <param name="jumpturnAttack">behavior while facing target during jump turn (instants only)</param> /// <returns></returns> public static Composite CreatePriestAvoidanceBehavior() { // use Rocket Jump if available return(Avoidance.CreateAvoidanceBehavior("", 0, Disengage.Direction.Frontwards, new ActionAlwaysSucceed())); }