Exemplo n.º 1
0
 private static void Obj_AI_Base_OnSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (!sender.IsMe)
     {
         return;
     }
     if (args.SData.IsAutoAttack())
     {
         Queuer.Remove("AA");
         if (Queuer.Queue.Any() && Queuer.Queue[0] == "Q")
         {
             var target = args.Target as Obj_AI_Base;
             if (target != null && (SpellManager.Spells[SpellSlot.R].IsReady() &&
                                    Player.Instance.CalculateDamageOnUnit(target, DamageType.Physical,
                                                                          (int)DamageHandler.RDamage(target)) >= target.Health && SpellEvents.HasR2 &&
                                    Program.ComboMenu["combo.useR2"].Cast <CheckBox>().CurrentValue))
             {
                 Queuer.Queue = new List <string>();
                 return;
             }
             Player.CastSpell(SpellSlot.Q, args.Target.Position);
             Queuer.Remove("Q");
             Orbwalker.ResetAutoAttack();
         }
         else if (!Queuer.Queue.Any() && Queuer.tiamat != null && Queuer.tiamat.CanUseItem() && Program.ComboMenu["combo.hydra"].Cast <CheckBox>().CurrentValue&& Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo) && args.Target is AIHeroClient)
         {
             Queuer.tiamat.Cast();
             Orbwalker.ResetAutoAttack();
         }
     }
     if (args.SData.Name.ToLower().Contains("itemtiamatcleave"))
     {
         Queuer.Remove("H");
         Orbwalker.ResetAutoAttack();
     }
     if (Orbwalker.ActiveModesFlags == Orbwalker.ActiveModes.None &&
         !Program.ComboMenu["combo.alwaysCancelQ"].Cast <CheckBox>().CurrentValue)
     {
         return;
     }
     if (args.SData.Name.ToLower().Contains("riventricleave"))
     {
         Orbwalker.ResetAutoAttack();
         if (QCount == 2)
         {
             Core.DelayAction(CancelAnimation, 362 + Game.Ping);
             return;
         }
         Core.DelayAction(CancelAnimation, 250 + Game.Ping);
     }
 }
Exemplo n.º 2
0
        private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe)
            {
                return;
            }
            if (args.SData.Name.ToLower().Contains("attack"))
            {
                if (PassiveStacks > 0)
                {
                    PassiveStacks--;
                }
                LastCast["AA"] = Environment.TickCount;
            }
            switch (args.SData.Name.ToLower())
            {
            case "riventricleave":     //Q
                LastCast["Q"] = Environment.TickCount;
                Queuer.Remove("Q");
                if (PassiveStacks <= 2)
                {
                    PassiveStacks++;
                }

                // Managing Q Stacks
                if (QCount <= 1)
                {
                    QCount++;
                }
                else
                {
                    QCount = 0;
                }
                break;


            case "rivenmartyr":     //W
                LastCast["W"] = Environment.TickCount;
                if (PassiveStacks <= 2)
                {
                    PassiveStacks++;
                }
                Queuer.Remove("W");
                break;


            case "rivenfeint":     //E
                LastCast["E"] = Environment.TickCount;
                if (PassiveStacks <= 2)
                {
                    PassiveStacks++;
                }
                Queuer.Remove("E");
                break;


            case "rivenfengshuiengine":     //R1
                LastCast["R1"] = Environment.TickCount;
                if (PassiveStacks <= 2)
                {
                    PassiveStacks++;
                }
                Queuer.Remove("R1");
                HasR  = true;
                HasR2 = true;
                break;


            case "rivenizunablade":     //R2
                LastCast["R2"] = Environment.TickCount;
                if (PassiveStacks <= 2)
                {
                    PassiveStacks++;
                }
                Queuer.Remove("R2");
                HasR2 = false;
                break;
            }
        }