Ejemplo n.º 1
0
        public static void SmiteQCombo(Spell spell)
        {
            if (Program.QStage != Program.QCastStage.IsReady)
            {
                return;
            }

            var t = AssassinManager.GetTarget(spell.Range);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (t.HasBlindMonkBuff())
            {
                return;
            }
            int smiteDamage = (int)CalculateDamage();


            //if (Program.Q.GetPrediction(t).CollisionObjects.Count == 1)
            //{
            //    Obj_AI_Base colObj = Program.Q.GetPrediction(t).CollisionObjects.FirstOrDefault();
            //    if (colObj != null && colObj.Health < smiteDamage && colObj.IsValidTarget(550f))
            //    {
            //        if (Program.SmiteDamageSlot != SpellSlot.Unknown && ObjectManager.Player.Spellbook.CanUseSpell(Program.SmiteDamageSlot) == SpellState.Ready)
            //        {
            //            spell.Cast(t.Position);
            //            ObjectManager.Player.Spellbook.CastSpell(Program.SmiteDamageSlot, colObj);
            //        }
            //    }
            //}

            //return;

            IEnumerable <Obj_AI_Base> xM = QGetCollisionMinions(ObjectManager.Player.Position, t.ServerPosition, spell.Width, spell.Range, new CollisionableObjects[(int)CollisionableObjects.Minions]);

            IEnumerable <Obj_AI_Base> objAiBases = xM as Obj_AI_Base[] ?? xM.ToArray();

            if (xM != null && objAiBases.Count() == 1)
            {
                Obj_AI_Base xxx = objAiBases.FirstOrDefault();

                if (xxx != null)
                {
                    if (Program.SmiteDamageSlot != SpellSlot.Unknown &&
                        ObjectManager.Player.Spellbook.CanUseSpell(Program.SmiteDamageSlot) == SpellState.Ready)
                    {
                        if (xxx.Health < smiteDamage && spell.IsReady() && xxx.Distance(ObjectManager.Player.Position) < 650)
                        {
                            spell.Cast(t.Position);
                            ObjectManager.Player.Spellbook.CastSpell(Program.SmiteDamageSlot, xxx);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public static void ComboQwJumpRq()
        {
            var t = AssassinManager.GetTarget(Program.W.Range / 2);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (Program.Q.CastIfWillHit(t))
            {
                Game.PrintChat("Can Cast");
            }
        }
Ejemplo n.º 3
0
        public static void HitAndRun()
        {
            var t = AssassinManager.GetTarget(Q.Range);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (WState != Program.WCastStage.IsReady)
            {
                return;
            }

            if (QState == Program.QCastStage.IsReady)
            {
                Q.Cast(t);
            }

            Obj_AI_Base obj =
                ObjectManager.Get <Obj_AI_Base>()
                .Where(
                    o =>
                    o.IsAlly && !o.IsDead && !o.IsMe &&
                    !(o.Name.IndexOf("turret", StringComparison.InvariantCultureIgnoreCase) >= 0) &&
                    o.Distance(t.Position) < W.Range - 10
                    )
                .OrderByDescending(o => o.Distance(t.Position)).FirstOrDefault();

            if (obj == null)
            {
                return;
            }

            if (t.HasBlindMonkBuff() && QState == Program.QCastStage.IsCasted)
            {
                Q.Cast();
            }

            if (ObjectManager.Player.Distance(t.Position) < 50 && QState == Program.QCastStage.NotReady)
            {
                W.CastOnUnit(obj);
            }
        }