public static void AntiShrooms(Obj_AI_Base sender, GameObjectIssueOrderEventArgs args)
{
if (sender != null && sender.IsMe)
{
if (sender.IsDead)
{
args.Process = false;
return;
}
var turret = Turrets.ClosestEnemyTurret;
if (Map == Utility.Map.MapType.SummonersRift && Heroes.Player.HasBuff("Recall") && Heroes.Player.CountEnemiesInRange(1800) == 0 &&
turret.Distance(Heroes.Player) > 950 && !Minions.EnemyMinions.Any(m => m.Distance(Heroes.Player) < 950))
{
args.Process = false;
return;
}
if (args.Order == GameObjectOrder.MoveTo)
{
if (args.TargetPosition.IsZero)
{
args.Process = false;
return;
}
if (!args.TargetPosition.IsValid())
{
args.Process = false;
return;
}
if (Map == Utility.Map.MapType.SummonersRift && Heroes.Player.InFountain() &&
Heroes.Player.HealthPercent < 100)
{
args.Process = false;
return;
}
if (turret != null && turret.Distance(args.TargetPosition) < 950 &&
turret.CountNearbyAllyMinions(950) < 3)
{
args.Process = false;
return;
}
}
#region BlockAttack
if (args.Target != null && args.Order == GameObjectOrder.AttackUnit || args.Order == GameObjectOrder.AttackTo)
{
if (Config.Item("onlyfarm").GetValue<bool>() && args.Target.IsValid<Obj_AI_Hero>())
{
args.Process = false;
return;
}
if (args.Target.IsValid<Obj_AI_Hero>())
{
if (Minions.AllyMinions.Count(m => m.Distance(Heroes.Player) < 900) <
Minions.EnemyMinions.Count(m => m.Distance(Heroes.Player) < 900))
{
args.Process = false;
return;
}
if (((Obj_AI_Hero) args.Target).UnderTurret(true))
{
args.Process = false;
return;
}
}
if (Heroes.Player.UnderTurret(true) && args.Target.IsValid<Obj_AI_Hero>())
{
args.Process = false;
return;
}
if (turret != null && turret.Distance(ObjectManager.Player) < 950 && turret.CountNearbyAllyMinions(950) < 3)
{
args.Process = false;
return;
}
if (Heroes.Player.HealthPercent < Config.Item("recallhp").GetValue<Slider>().Value)
{
args.Process = false;
return;
}
}
#endregion
}
if (sender != null && args.Target != null && args.Target.IsMe)
{
if (sender is Obj_AI_Turret || sender is Obj_AI_Minion)
{
var minion = Wizard.GetClosestAllyMinion();
if (minion != null)
{
Orbwalker.SetOrbwalkingPoint(
Heroes.Player.Position.Extend(Wizard.GetClosestAllyMinion().Position, Heroes.Player.Distance(minion) + 100));
}
}
}
}