Example #1
0
        private void LastHit()
        {
            if (q.UseOnLastHit)
            {
                Obj_AI_Base target =
                    MinionManager.GetMinions(q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth)
                    .FirstOrDefault(
                        minion =>
                        minion.Distance(player) > Orbwalking.GetRealAutoAttackRange(minion) + 10F &&
                        !minion.IsDead &&
                        q.GetDamage(minion) / 2 > minion.Health);

                if (target != null && q.IsKillable(target))
                {
                    PredictionOutput predictionOutput = q.GetPrediction(target);

                    q.Cast(predictionOutput.CastPosition);
                }
            }

            if (e.UseOnLastHit)
            {
                if (MinionManager.GetMinions(e.Range).Count(minion => e.IsKillable(minion))
                    >= zedMenu.GetParamSlider("koreanzed.lasthitmenu.useeif"))
                {
                    e.Cast();
                }
            }
        }
Example #2
0
        private void LastHit()
        {
            if (actionQueue.ExecuteNextAction(lastHitQueue))
            {
                return;
            }

            if (q.UseOnLastHit && q.IsReady() && energy.ReadyToLastHit)
            {
                Obj_AI_Base target =
                    MinionManager.GetMinions(q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth)
                    .FirstOrDefault(
                        minion =>
                        minion.Distance(player) > Orbwalking.GetRealAutoAttackRange(minion) + 10F && !minion.IsDead &&
                        q.GetDamage(minion) / 2
                        >= HealthPrediction.GetHealthPrediction(
                            minion,
                            (int)(player.Distance(minion) / q.Speed) * 1000,
                            (int)q.Delay * 1000));

                if (target != null)
                {
                    PredictionOutput predictionOutput = q.GetPrediction(target);
                    actionQueue.EnqueueAction(lastHitQueue, () => q.IsReady(), () => q.Cast(predictionOutput.CastPosition), () => !q.IsReady());
                    //Console.WriteLine("lasthit q 1");
                    return;
                }
            }

            if (e.UseOnLastHit && e.IsReady() && energy.ReadyToLastHit)
            {
                if (MinionManager.GetMinions(e.Range).Count(minion => e.IsKillable(minion))
                    >= zedMenu.GetParamSlider("koreanzed.lasthitmenu.useeif"))
                {
                    actionQueue.EnqueueAction(lastHitQueue, () => e.IsReady(), () => e.Cast(), () => !e.IsReady());
                    //Console.WriteLine("lasthit q 2");
                    return;
                }
            }
        }
Example #3
0
        private void Game_OnUpdate(EventArgs args)
        {
            if (q.IsReady() && player.Mana > q.ManaCost)
            {
                foreach (Obj_AI_Hero objAiHero in player.GetEnemiesInRange(q.Range).Where(hero => !hero.IsDead && !hero.IsZombie && q.IsKillable(hero)))
                {
                    PredictionOutput predictionOutput = q.GetPrediction(objAiHero);

                    if ((predictionOutput.Hitchance >= HitChance.High) &&
                        ((!q.GetCollision(player.Position.To2D(), new List <Vector2> {
                        predictionOutput.CastPosition.To2D()
                    }).Any()) ||
                         q.GetDamage(objAiHero) / 2 > objAiHero.Health))
                    {
                        q.Cast(predictionOutput.CastPosition);
                        //Console.WriteLine("ks q");
                    }
                }
            }

            if (e.IsReady() && player.Mana > e.ManaCost)
            {
                if (player.GetEnemiesInRange(e.Range).Any(hero => !hero.IsDead && !hero.IsZombie && e.IsKillable(hero)))
                {
                    e.Cast();
                    //Console.WriteLine("ks e");
                }
            }

            if (zedOrbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo || !zedShadows.CanCast)
            {
                return;
            }

            List <Obj_AI_Hero> heroList = ObjectManager.Player.GetEnemiesInRange(2000F);

            if (heroList.Count() == 1)
            {
                Obj_AI_Hero target = heroList.FirstOrDefault();

                if (target != null && zedShadows.CanCast && player.Distance(target) > Orbwalking.GetRealAutoAttackRange(target) &&
                    player.Distance(target) < w.Range + Orbwalking.GetRealAutoAttackRange(target) &&
                    player.GetAutoAttackDamage(target) > target.Health && player.Mana > w.ManaCost)
                {
                    zedShadows.Cast(target.Position);
                    //Console.WriteLine("ks w 1");
                    zedShadows.Switch();
                    //Console.WriteLine("ks w 2");
                }
            }
        }
Example #4
0
        public float ComboDamage(AIHeroClient target)
        {
            float result = q.UseOnCombo && q.IsReady()
                               ? (q.GetCollision(player.Position.To2D(), new List <Vector2>()
            {
                target.Position.To2D()
            })
                                  .Any()
                                      ? q.GetDamage(target) / 2
                                      : q.GetDamage(target))
                               : 0F;

            result += e.UseOnCombo && e.IsReady() ? e.GetDamage(target) : 0F;

            result += w.UseOnCombo && w.IsReady() && player.Distance(target) < w.Range + Orbwalking.GetRealAutoAttackRange(target)
                          ? (float)player.GetAutoAttackDamage(target, true)
                          : 0F;

            float multiplier = 0.3F;

            if (r.Instance.Level == 2)
            {
                multiplier = 0.4F;
            }
            else if (r.Instance.Level == 3)
            {
                multiplier = 0.5F;
            }

            result += r.UseOnCombo && r.IsReady()
                          ? (float)
                      (r.GetDamage(target) + player.GetAutoAttackDamage(target, true)
                       + (q.IsReady() ? q.GetDamage(target) * multiplier : 0F)
                       + (e.IsReady() ? e.GetDamage(target) * multiplier : 0F))
                          : 0F;

            return(result);
        }
        private void Game_OnUpdate(System.EventArgs args)
        {
            if (targetUnderTurret != null && targetUnderTurret.IsDead)
            {
                targetUnderTurret = null;
                turrent           = null;
            }

            if (zedOrbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo &&
                zedOrbwalker.ActiveMode != Orbwalking.OrbwalkingMode.None && turrent != null &&
                targetUnderTurret != null && !targetUnderTurret.IsDead && targetUnderTurret.IsValid)
            {
                if (targetUnderTurret.IsValid)
                {
                    if (ObjectManager.Player.Distance(targetUnderTurret)
                        < Orbwalking.GetRealAutoAttackRange(targetUnderTurret) + 20F &&
                        (targetUnderTurret.Health
                         < (ObjectManager.Player.GetAutoAttackDamage(targetUnderTurret) * 2)
                         + turrent.GetAutoAttackDamage(targetUnderTurret) &&
                         targetUnderTurret.Health
                         > turrent.GetAutoAttackDamage(targetUnderTurret)
                         + ObjectManager.Player.GetAutoAttackDamage(targetUnderTurret)))
                    {
                        ObjectManager.Player.IssueOrder(GameObjectOrder.AttackUnit, targetUnderTurret);
                    }

                    if (q.IsReady() && q.CanCast(targetUnderTurret) &&
                        ObjectManager.Player.Distance(targetUnderTurret)
                        < Orbwalking.GetRealAutoAttackRange(targetUnderTurret) + 20F &&
                        targetUnderTurret.Health
                        < q.GetDamage(targetUnderTurret)
                        + ObjectManager.Player.GetAutoAttackDamage(targetUnderTurret, true))
                    {
                        q.Cast(targetUnderTurret);
                        return;
                    }

                    if (e.IsReady() && e.CanCast(targetUnderTurret) && !q.IsReady() &&
                        ObjectManager.Player.Distance(targetUnderTurret)
                        < Orbwalking.GetRealAutoAttackRange(targetUnderTurret) + 20F &&
                        targetUnderTurret.Health
                        < e.GetDamage(targetUnderTurret)
                        + ObjectManager.Player.GetAutoAttackDamage(targetUnderTurret, true))
                    {
                        e.Cast(targetUnderTurret);
                    }
                }
            }
        }
Example #6
0
        public float ComboDamage(Obj_AI_Hero target)
        {
            float result = q.UseOnCombo && q.IsReady()
                               ? (q.GetCollision(player.Position.To2D(), new List <Vector2>()
            {
                target.Position.To2D()
            })
                                  .Any()
                                      ? q.GetDamage(target) / 2
                                      : q.GetDamage(target))
                               : 0F;

            result += e.UseOnCombo && e.IsReady() ? e.GetDamage(target) : 0F;

            result += w.UseOnCombo && w.IsReady() && player.Distance(target) < w.Range + Orbwalking.GetRealAutoAttackRange(target)
                          ? (float)player.GetAutoAttackDamage(target, true)
                          : 0F;

            result += r.UseOnCombo && r.IsReady()
                          ? (float)(r.GetDamage(target) + player.GetAutoAttackDamage(target, true))
                          : 0F;

            return(result);
        }