private static void Game_OnUpdate(EventArgs args)
{
if (Utils.SleepCheck("Hero.Cd") && Menu.Item("Hero.Enable").GetValue<bool>())
{
if (_fountain2 == null || !_fountain2.IsValid)
{
_fountain2 = ObjectManager.GetEntities<Unit>()
.FirstOrDefault(x => x.Team != MyHero.Team && x.ClassID == ClassID.CDOTA_Unit_Fountain);
}
var angle = (float)Math.Max(
Math.Abs(MyHero.RotationRad -
Utils.DegreeToRadian(MyHero.FindAngleBetween(_fountain2.Position))) - 0.20, 0);
// ReSharper disable once CompareOfFloatsByEqualityOperator
if (angle > 0)
{
if (Menu.Item("Hero.Type").GetValue<StringList>().SelectedIndex == 0)
{
MyHero.Attack(_fountain2.Position);
}
else
{
MyHero.Move(_fountain2.Position);
}
}
Utils.Sleep(Menu.Item("Hero.Cd").GetValue<Slider>().Value, "Hero.Cd");
}
if (Utils.SleepCheck("Courier.Cd") && Menu.Item("Courier.Blocking.Enable").GetValue<bool>())
{
var couriers = ObjectManager.GetEntities<Courier>().Where(x => x.IsAlive && x.Team == MyHero.Team);
if (_fountain == null || !_fountain.IsValid)
{
_fountain = ObjectManager.GetEntities<Unit>()
.FirstOrDefault(x => x.Team == MyHero.Team && x.ClassID == ClassID.CDOTA_Unit_Fountain);
}
if (_fountain2 == null || !_fountain2.IsValid)
{
_fountain2 = ObjectManager.GetEntities<Unit>()
.FirstOrDefault(x => x.Team != MyHero.Team && x.ClassID == ClassID.CDOTA_Unit_Fountain);
}
var index = Menu.Item("Courier.Order").GetValue<StringList>().SelectedIndex;
var needFountain = index == (int) Orders.BlockOnBace
? _fountain
: _fountain2;
if ((index == 0 || index==1) && needFountain!=null)
foreach (var courier in from courier in couriers.Where(
courier =>
courier.Distance2D(needFountain) >
Menu.Item("Courier.MaxRange").GetValue<Slider>().Value) let angle = (float) Math.Max(
Math.Abs(courier.RotationRad -
Utils.DegreeToRadian(courier.FindAngleBetween(needFountain.Position))) - 0.20, 0) where angle != 0 select courier)
{
courier.Move(needFountain.Position);
Utils.Sleep(Menu.Item("Courier.Cd").GetValue<Slider>().Value, "Courier.Cd");
}
else if (index >= 2)
{
foreach (var courier in couriers)
{
if (index == (int) Orders.Stashing)
{
//Game.PrintMessage("Any items: " + courier.Inventory.Items.Any(x => Equals(x.Owner, MyHero)),MessageType.ChatMessage);
//if (courier.Inventory.Items.Any(x => Equals(x.Owner, MyHero)))
courier.Spellbook.SpellE.UseAbility();
}
else
{
/*foreach (var item in courier.Inventory.Items)
{
Game.PrintMessage("Item: " + item.Name+" .Owner: "+item.,MessageType.ChatMessage);
}*/
//Game.PrintMessage("Any items: " + courier.Inventory.Items.Any(x => Equals(x.Owner, MyHero)), MessageType.ChatMessage);
if (courier.Inventory.Items.Any(/*x => Equals(x.Owner, MyHero)*/))
courier.Spellbook.SpellF.UseAbility();
}
Utils.Sleep(Menu.Item("Courier.Cd").GetValue<Slider>().Value, "Courier.Cd");
}
}
}
if (Utils.SleepCheck("laugh.Cd") && Menu.Item("laugh.Enable").GetValue<bool>())
{
Game.ExecuteCommand("say \"/laugh \"");
Utils.Sleep(Menu.Item("laugh.Cd").GetValue<Slider>().Value*1000, "laugh.Cd");
if (Menu.Item("laugh.Message").GetValue<bool>())
{
Game.PrintMessage("Laugh!", MessageType.ChatMessage,MyHero.Player);
}
}
if (!Menu.Item("Drawing.Fully.Enable").GetValue<bool>()) return;
//Print(Menu.Item("Drawing.Enable").GetValue<KeyBind>().Active.ToString());
if (!Utils.SleepCheck("Drawing.Cd") || !Menu.Item("Drawing.Enable").GetValue<KeyBind>().Active) return;
if (_forward)
{
SetCursorPos((int) _stageX, (int) _stageY);
//mouse_event((int) MouseEvent.MouseeventfLeftdown, 0, 0, 0, 0);
_stageY += Menu.Item("Drawing.Speed").GetValue<Slider>().Value;
}
else
{
SetCursorPos((int) _drawingEndPos.X, (int) _stageY);
}
if (_stageY > _drawingEndPos.Y)
_stageY = _drawingStartPos.Y;
_forward = !_forward;
Utils.Sleep(Menu.Item("Drawing.Cd").GetValue<Slider>().Value, "Drawing.Cd");
}