public static bool GroupBuffSpell(Spell spell, int playercount = 0) { if (!spell.KnownSpell || !spell.IsSpellUsable || !spell.IsDistanceGood) { return(false); } var members = Partystuff.getPartymembers().Where(o => o.IsValid && o.IsAlive && !o.HaveBuff(spell.Id) && !TraceLine.TraceLineGo(o.Position)).OrderBy(o => o.HealthPercent); if (members.Count() > playercount) { var u = members.First(); WoWPlayer bufftarget = new WoWPlayer(u.GetBaseAddress); if (!TraceLine.TraceLineGo(bufftarget.Position) && bufftarget.IsAlive) { ObjectManager.Me.FocusGuid = bufftarget.Guid; Extension.HealSpell(spell, false, false, true); Logging.Write("Cast" + spell + "on " + bufftarget); return(true); } } return(false); }
public static bool TankHealSpell(Spell spell, int setting, int playercount = 0) { if (!spell.KnownSpell || !spell.IsSpellUsable || !spell.IsDistanceGood) { return(false); } var members = Partystuff.getTanks().Where(o => o.IsValid && o.IsAlive && o.HealthPercent <= setting && !TraceLine.TraceLineGo(o.Position)).OrderBy(o => o.HealthPercent); if (members.Count() > playercount) { var u = members.First(); WoWPlayer tank = new WoWPlayer(u.GetBaseAddress); if (!TraceLine.TraceLineGo(tank.Position) && tank.IsAlive) { ObjectManager.Me.FocusGuid = tank.Guid; Extension.HealSpell(spell, false, false, true); Logging.Write("Cast" + spell + "on " + tank); return(true); } } return(false); }