예제 #1
0
 protected override void OnBeforeAction(ActionBase action)
 {
     if (WoWParty.NumPartyMembers > 0 && HelpfulTarget.IsValid && HelpfulTarget.HealthPercentage > 60)
     {
         var tank = HelpfulTargets.OrderByDescending(m => m.MaxHealth).First() ?? WoWPlayer.Invalid;
         if (tank.IsValid && !tank.IsDead && tank.Distance < Globals.MaxDistance)
         {
             var beacon = WoWSpell.GetSpell("Beacon of Light");
             if (beacon.IsValid &&
                 beacon.IsReady &&
                 !tank.Auras["Beacon of Light"].IsValid)
             {
                 Log.WriteLine("Casting {0} on {1}", beacon.Name, tank.Name);
                 beacon.Cast(tank);
                 Sleep(Globals.SpellWait);
             }
         }
     }
     if (action != null)
     {
         var aw = WoWSpell.GetSpell("Avenging Wrath");
         if (aw.IsValid && aw.IsReady)
         {
             Log.WriteLine("Popping {0}", aw.Name);
             aw.Cast();
             Sleep(Globals.SpellWait);
         }
     }
 }
예제 #2
0
        public void SelectTargets()
        {
            HarmfulTargets = HarmfulTargetsSelector();
            HarmfulTarget  = HarmfulTargets.FirstOrDefault();

            HelpfulTargets           = HelpfulTargetsSelector();
            HelpfulTarget            = HelpfulTargets.FirstOrDefault();
            AlternativeHelpfulTarget = HelpfulTargets.ElementAtOrDefault(1);
        }
예제 #3
0
        public void SelectTargets()
        {
            HarmfulTargets = from u in Manager.Objects.Where(o => o.IsValid && (o.IsUnit || o.IsPlayer)).Select(o => o as WoWUnit)
                             where u.IsValid &&
                             u.Distance < Globals.MaxDistance &&
                             !u.IsFriendly &&
                             !u.IsDead &&
                             u.IsInCombat
                             orderby u.Distance ascending
                             select u;

            HarmfulTarget = HarmfulTargets.FirstOrDefault() ?? WoWUnit.Invalid;

            HelpfulTargets = from u in WoWParty.Members
                             where u.IsValid &&
                             u.Distance < Globals.MaxDistance &&
                             !u.IsDead &&
                             u.IsFriendly
                             orderby u.HealthPercentage ascending
                             select u;

            HelpfulTarget            = HelpfulTargets.FirstOrDefault() ?? WoWPlayer.Invalid;
            AlternativeHelpfulTarget = HelpfulTargets.ElementAtOrDefault(1) ?? WoWPlayer.Invalid;
        }