protected override Composite CreateBehavior() { return(_root ?? (_root = new PrioritySelector( new Action(c => { if (Me.HealthPercent < 2) { return RunStatus.Failure; } if (Me.HealthPercent < 60 && !Me.IsActuallyInCombat) { WoWItem food = Consumable.GetBestFood(true); CharacterSettings.Instance.FoodName = food != null ? food.Name : string.Empty; Rest.Feed(); return RunStatus.Running; } if (IsInVehicle) { _isBehaviorDone = true; return RunStatus.Success; } WoWUnit Horse = ObjectManager.GetObjectsOfType <WoWUnit>().Where(u => u.Entry == 28782).OrderBy(u => u.Distance).FirstOrDefault(); if (Horse != null) { if (!Me.IsActuallyInCombat) { if (Horse.Distance > 4) { Navigator.MoveTo(Horse.Location); } else { Horse.Interact(); } } if (Me.IsActuallyInCombat) { if (Me.CurrentTarget != null) { if (Me.CurrentTarget.Dead) { Me.ClearTarget(); } else if (Me.CurrentTarget.Entry == 28768) { if (!Me.IsSafelyFacing(Horse)) { Horse.Face(); } } else if (!Me.IsSafelyFacing(Me.CurrentTarget)) { Me.CurrentTarget.Face(); } if (Me.IsMoving) { WoWMovement.MoveStop(); } if (!Me.IsSafelyFacing(Me.CurrentTarget)) { Me.CurrentTarget.Face(); } if (SpellManager.CanCast("Icy Touch")) { SpellManager.Cast("Icy Touch"); } if (SpellManager.CanCast("Plague Strike")) { SpellManager.Cast("Plague Strike"); } if (SpellManager.CanCast("Blood Strike")) { SpellManager.Cast("Blood Strike"); } if (SpellManager.CanCast("Death Coil")) { SpellManager.Cast("Death Coil"); } } } } else { Navigator.MoveTo(Location); } return RunStatus.Running; } )))); }