Beispiel #1
0
            public static float GetComboDamage(AIHeroClient t)
            {
                if (!t.IsValidTarget(W.Range * 20))
                {
                    return(0);
                }

                var fComboDamage = 0d;

                if (Q.IsReady())
                {
                    var baseAttackSpeed   = 0.656 + (0.656 / 100 * (Player.Level - 1) * 1.5);
                    var qExtraAttackSpeed = new double[] { 30, 50, 70, 90, 110 }[Q.Level - 1];
                    var attackDelay       = (float)(baseAttackSpeed + (baseAttackSpeed / 100 * qExtraAttackSpeed));
                    attackDelay = (float)Math.Round(attackDelay, 2);

                    attackDelay  *= 5;
                    attackDelay  *= (float)Math.Floor(Player.TotalAttackDamage);
                    fComboDamage += attackDelay;
                }

                if (E.IsReady())
                {
                    fComboDamage += TristanaData.GetEDamage(t); //E.GetDamage(t);
                }

                if (R.IsReady())
                {
                    fComboDamage += R.GetDamage(t);
                }

                return((float)fComboDamage);
            }
Beispiel #2
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            var getEMarkedEnemy = TristanaData.GetEMarkedEnemy;
            if (getEMarkedEnemy != null)
            {
                if (TargetSelector.GetSelectedTarget() == null)
                    Orbwalker.ForceTarget(getEMarkedEnemy);
                TargetSelector.SetTarget(getEMarkedEnemy);
            }
            else
            {
                var attackRange = Orbwalking.GetRealAutoAttackRange(Player);
                TargetSelector.SetTarget(TargetSelector.GetTarget(attackRange, TargetSelector.DamageType.Physical));
            }

            Q.Range = Player.AttackRange + (Player.BoundingRadius * 2);
            E.Range = Player.AttackRange + (Player.BoundingRadius * 2);
            R.Range = Player.AttackRange + (Player.BoundingRadius * 2);

            var useW = W.IsReady() && GetValue<bool>("UseWC");
            var useWc = W.IsReady() && GetValue<bool>("UseWCS");
            var useR = R.IsReady() && GetValue<bool>("UseRC");
            var useRB = R.IsReady() && GetValue<bool>("UseRB");

            if (useRB && Player.HealthPercentage() < 40)
            {
                var enemy =
                    HeroManager.Enemies.OrderBy(target => target.TotalAttackDamage)
                        .LastOrDefault(targ => Player.Distance(targ) <= 275 && targ.IsMelee());
                if(enemy != null && enemy.IsValidTarget())
                {
                    R.CastOnUnit(enemy);
                }
            }

            if (ComboActive)
            {
                Obj_AI_Hero t;
                if (TristanaData.GetEMarkedEnemy != null)
                {
                    TargetSelector.SetTarget(TristanaData.GetEMarkedEnemy);
                }

                if (useW)
                {
                    t = TristanaData.GetTarget(W.Range);
                    if (t.IsValidTarget() && t.Health < TristanaData.GetWDamage)
                        W.Cast(t);
                }


                if (useWc)
                {
                    t = TristanaData.GetTarget(W.Range);
                    if (t.IsValidTarget() && TristanaData.GetEMarkedCount == 4)
                        W.Cast(t);
                }

                if (useR)
                {
                    var tar = TristanaData.GetTarget(R.Range);

                    if (!tar.IsValidTarget())
                        return;

                    if (Player.GetSpellDamage(tar, SpellSlot.R) - 30 > tar.Health &&
                        tar.Health > Player.GetAutoAttackDamage(tar, true))
                    {
                        R.CastOnUnit(tar);
                    }
                }
            }
        }
Beispiel #3
0
        public override void Game_OnGameUpdate(EventArgs args)
        {
            if (!Orbwalking.CanMove(100))
            {
                return;
            }

            var getEMarkedEnemy = TristanaData.GetEMarkedEnemy;

            if (getEMarkedEnemy != null)
            {
                TargetSelector.SetTarget(getEMarkedEnemy);
            }
            else
            {
                var attackRange = Orbwalking.GetRealAutoAttackRange(Player);
                TargetSelector.SetTarget(TargetSelector.GetTarget(attackRange, TargetSelector.DamageType.Physical));
            }

            Q.Range = 600 + 5 * (Player.Level - 1);
            E.Range = 630 + 7 * (Player.Level - 1);
            R.Range = 630 + 7 * (Player.Level - 1);

            if (GetValue <KeyBind>("UseETH").Active)
            {
                if (Player.HasBuff("Recall"))
                {
                    return;
                }
                var t = TristanaData.GetTarget(E.Range);
                if (t.IsValidTarget() && E.IsReady() && canUseE(t))
                {
                    E.CastOnUnit(t);
                }
            }

            var useW   = W.IsReady() && GetValue <bool>("UseWC");
            var useWc  = W.IsReady() && GetValue <bool>("UseWCS");
            var useWks = W.IsReady() && GetValue <bool>("UseWKs");
            var useE   = E.IsReady() && GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));
            var useR   = R.IsReady() && GetValue <bool>("UseRM") && R.IsReady();

            if (ComboActive || HarassActive)
            {
                Obj_AI_Hero t;
                if (TristanaData.GetEMarkedEnemy != null)
                {
                    t = TristanaData.GetEMarkedEnemy;
                    TargetSelector.SetTarget(TristanaData.GetEMarkedEnemy);
                }
                else
                {
                    t = TristanaData.GetTarget(W.Range);
                }

                if (useE && canUseE(t))
                {
                    if (E.IsReady() && t.IsValidTarget(E.Range))
                    {
                        E.CastOnUnit(t);
                    }
                }

                if (useW)
                {
                    t = TristanaData.GetTarget(W.Range);
                    if (t.IsValidTarget())
                    {
                        W.Cast(t);
                    }
                }
                else if (useWks)
                {
                    t = TristanaData.GetTarget(W.Range);
                    if (t.IsValidTarget() && t.Health < TristanaData.GetWDamage)
                    {
                        W.Cast(t);
                    }
                }
                else if (useWc)
                {
                    t = TristanaData.GetTarget(W.Range);
                    if (t.IsValidTarget() && TristanaData.GetEMarkedCount == 4)
                    {
                        W.Cast(t);
                    }
                }
            }

            if (ComboActive)
            {
                if (useR)
                {
                    var t = TristanaData.GetTarget(R.Range - 20);

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

                    if (Player.GetSpellDamage(t, SpellSlot.R) - 30 < t.Health ||
                        t.Health < Player.GetAutoAttackDamage(t, true))
                    {
                        return;
                    }

                    R.CastOnUnit(t);
                }
            }
        }