示例#1
0
 private static void checkHar()
 {
     if (!Config.Item("AutoRHar").GetValue <bool>() || Config.Item("AutoRMana").GetValue <Slider>().Value > Player.ManaPercentage() || Player.ServerPosition.UnderTurret(true))
     {
         return;
     }
     if (R1.IsReady())
     {
         var bigMiss = isBigMissle();
         List <AIHeroClient> targets = ObjectManager.Get <AIHeroClient>().Where(x => x.IsEnemy && x.IsValidTarget(bigMiss ? R2.Range : R1.Range) && !x.IsZombie && !x.HasBuffOfType(BuffType.Invulnerability) && R1.CanCast(x)).ToList();
         foreach (var target in targets)
         {
             if (Config.Item("Har." + target.BaseSkinName).GetValue <bool>())
             {
                 if (!ccd(target) && Config.Item("ccdOnly").GetValue <bool>() || Config.Item("AutoRMisCount").GetValue <Slider>().Value > Player.Spellbook.GetSpell(SpellSlot.R).Ammo)
                 {
                     return;
                 }
                 else
                 {
                     if (bigMiss)
                     {
                         R2.CastIfHitchanceEquals(target, HitChance.VeryHigh);
                     }
                     else
                     {
                         R1.CastIfHitchanceEquals(target, HitChance.VeryHigh);
                     }
                 }
             }
         }
     }
 }
示例#2
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (myHero.IsDead)
            {
                return;
            }
            var heropos = Drawing.WorldToScreen(ObjectManager.Player.Position);
            var green   = Color.LimeGreen;
            var red     = Color.IndianRed;

            if (DrawMenu["ER"].Cast <CheckBox>().CurrentValue)
            {
                Circle.Draw(E.IsReady() ? green : red, 250 + myHero.AttackRange + 70, ObjectManager.Player.Position);
            }
            if (DrawMenu["BER"].Cast <CheckBox>().CurrentValue&& Flash != null && Flash.Slot != SpellSlot.Unknown)
            {
                Circle.Draw(R1.IsReady() ? green : red, 800, ObjectManager.Player.Position);
            }

            if (DrawMenu["DrawAlwaysR"].Cast <CheckBox>().CurrentValue)
            {
                Drawing.DrawText(heropos.X - 40, heropos.Y + 20, System.Drawing.Color.FloralWhite, "ForceR");
                Drawing.DrawText(heropos.X + 10, heropos.Y + 20,
                                 ComboMenu["RForce"].Cast <KeyBind>().CurrentValue ? System.Drawing.Color.LimeGreen : System.Drawing.Color.Red,
                                 ComboMenu["RForce"].Cast <KeyBind>().CurrentValue ? "On" : "Off");
            }
        }
示例#3
0
        private static void AutoSpells(EventArgs args)
        {
            //E
            Edetonation();
            //R
            Actives();
            if (Config.Item("semi-ult").GetValue <KeyBind>().Active)
            {
                var target = TargetSelector.GetTarget(R1.Range, TargetSelector.DamageType.Magical);
                if (target == null || !target.IsValid)
                {
                    return;
                }
                if (R1.IsReady())
                {
                    SpellCast(target, R1.Range, R1, false, 1, false, PredR("prediction.R"));
                }
            }
            if (Config.Item("semi-w").GetValue <KeyBind>().Active)
            {
                var ally = HeroManager.Allies.Where(a => a.IsValid && !a.IsMinion && !a.IsMe).OrderBy(a => a.Distance(Game.CursorPosRaw)).FirstOrDefault();
                if (W1.IsReady())
                {
                    W1.Cast(ally);
                }
            }

            if (Q1.IsReady() && Config.Item("autospells.Q.cc").GetValue <bool>())
            {
                var target = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Magical);
                if (target == null || !target.IsValid)
                {
                    return;
                }
                var cc = target.HasBuffOfType(BuffType.Snare) ||
                         target.HasBuffOfType(BuffType.Suppression) ||
                         target.HasBuffOfType(BuffType.Taunt) ||
                         target.HasBuffOfType(BuffType.Stun) ||
                         target.HasBuffOfType(BuffType.Charm) ||
                         target.HasBuffOfType(BuffType.Fear);
            }

            if (Q1.IsReady() && Config.Item("autospells.Q.collision").GetValue <bool>())
            {
                var enemies = HeroManager.Enemies.Where(e => e.IsValidTarget(Q1.Range));
                foreach (var enemy in enemies)
                {
                    if (enemy == null)
                    {
                        return;
                    }
                    var collisionobjects = Q1.GetPrediction(enemy).CollisionObjects.Where(c => c.IsEnemy && !c.IsMinion);
                    if (collisionobjects.Count() == 1)
                    {
                        Q1.Cast(enemy);
                    }
                }
            }
        }
示例#4
0
文件: Program.cs 项目: joyhck/OKTW-EB
        private static void KillStealLogic()
        {
            foreach (var e in EntityManager.Heroes.Enemies.Where(e => !e.IsZombie && !e.HasBuff("KindredrNoDeathBuff") && !e.HasBuff("Undying Rage") && !e.HasBuff("JudicatorIntervention") && e.IsValidTarget()))
            {
                if (Q.IsReady() && KillStealQ)
                {
                    if (myHero.HasBuff("RivenFengShuiEngine"))
                    {
                        if (e.Distance(myHero.ServerPosition) < myHero.AttackRange + myHero.BoundingRadius + 50 && myHero.GetSpellDamage(e, SpellSlot.Q) > e.Health + e.HPRegenRate)
                        {
                            Q.Cast(e.Position);
                        }
                    }
                    else if (!myHero.HasBuff("RivenFengShuiEngine"))
                    {
                        if (e.Distance(myHero.ServerPosition) < myHero.AttackRange + myHero.BoundingRadius && myHero.GetSpellDamage(e, SpellSlot.Q) > e.Health + e.HPRegenRate)
                        {
                            Q.Cast(e.Position);
                        }
                    }
                }

                if (W.IsReady() && KillStealW)
                {
                    if (e.IsValidTarget(W.Range) && myHero.GetSpellDamage(e, SpellSlot.W) > e.Health + e.HPRegenRate)
                    {
                        W.Cast();
                    }
                }

                if (R1.IsReady() && KillStealR)
                {
                    if (myHero.HasBuff("RivenWindScarReady"))
                    {
                        if (E.IsReady() && KillStealE)
                        {
                            if (myHero.ServerPosition.CountEnemiesInRange(R2.Range + E.Range) < 3 && myHero.HealthPercent > 50)
                            {
                                if (Rdame(e, e.Health) > e.Health + e.HPRegenRate && e.IsValidTarget(R2.Range + E.Range - 100))
                                {
                                    R1.Cast();
                                    E.Cast(e.Position);
                                    Core.DelayAction(() => { R2.Cast(e); }, 350);
                                }
                            }
                        }
                        else
                        {
                            if (Rdame(e, e.Health) > e.Health + e.HPRegenRate && e.IsValidTarget(R2.Range - 50))
                            {
                                R1.Cast();
                                R2.Cast(e);
                            }
                        }
                    }
                }
            }
        }
示例#5
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.IsChannelingImportantSpell() && (int)(Game.Time * 10) % 2 == 0)
            {
                Console.WriteLine("chaneling");
                EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            }

            if (R1.IsReady() && Game.Time - castR > 5 && Config.Item("useR", true).GetValue <KeyBind>().Active)
            {
                var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTargetLS(R1.Range))
                {
                    R1.Cast(t);
                    return;
                }
            }

            var tq = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (Program.LaneClear && Config.Item("harras" + tq.ChampionName).GetValue <bool>() && Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value)
            {
                CastExtendedQ();
            }

            if (Program.LagFree(0))
            {
                SetMana();
            }
            if (Program.LagFree(1) && Q.IsReady() && !passRdy && !SpellLock)
            {
                LogicQ();
                var tq1 = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Physical);
                if (tq1.IsValidTargetLS(Q1.Range))
                {
                    CastExtendedQ();
                }
            }
            if (Program.LagFree(2) && W.IsReady() && !passRdy && !SpellLock && Config.Item("autoW", true).GetValue <bool>())
            {
                LogicW();
            }
            if (Program.LagFree(3) && E.IsReady())
            {
                LogicE();
            }
            if (Program.LagFree(4))
            {
                if (R.IsReady() && Game.Time - castR > 5 && Config.Item("autoR", true).GetValue <bool>())
                {
                    LogicR();
                }
                if (!passRdy && !SpellLock)
                {
                    farm();
                }
            }
        }
示例#6
0
        private void Game_OnUpdate(EventArgs args)
        {
            if (Player.HasBuff("LucianR") && (int)(Game.Time * 10) % 2 == 0)
            {
                Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            }

            if (R1.IsReady() && Game.Time - castR > 5 && useR.Active)
            {
                var t = TargetSelector.GetTarget(R.Range, DamageType.Physical);

                if (t.IsValidTarget())
                {
                    R1.Cast(t);
                    return;
                }
            }

            if (LagFree(0))
            {
                SetMana();
                SetDelay();
            }

            if (LagFree(1) && Q.IsReady() && !passRdy && !SpellLock && autoQ.Enabled)
            {
                LogicQ();
            }

            if (LagFree(2) && W.IsReady() && !passRdy && !SpellLock && autoW.Enabled)
            {
                LogicW();
            }

            if (LagFree(3) && E.IsReady() && autoE.Enabled)
            {
                LogicE();
            }

            if (LagFree(4))
            {
                if (R.IsReady() && Game.Time - castR > 5 && autoR.Enabled)
                {
                    LogicR();
                }

                if (!passRdy && !SpellLock)
                {
                    LogicFarm();
                }
            }
        }
示例#7
0
 private void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (E.IsReady() && Sheen() && args.Target.IsValid <Obj_AI_Hero>() && Config.Item("autoE").GetValue <bool>())
     {
         if (Program.Combo && Player.Mana > EMANA + RMANA)
         {
             E.Cast(args.Target.Position);
             Program.debug("ss");
         }
         if (!Q.IsReady() && !R1.IsReady() && args.Target.Health < Player.FlatPhysicalDamageMod * 2)
         {
             E.Cast();
         }
     }
 }
示例#8
0
        private static void Burst()
        {
            var target = TargetSelector.SelectedTarget;

            Orbwalker.ForcedTarget = target;
            Orbwalker.OrbwalkTo(target.ServerPosition);
            if (target == null || target.IsZombie || target.IsInvulnerable)
            {
                return;
            }
            if (target.IsValidTarget(800))

            {
                if (E.IsReady())
                {
                    UseItems2(target);
                    Player.CastSpell(SpellSlot.E, target.ServerPosition);
                }
                UseItems2(target);

                if (R1.IsReady() && BurstMenu["burstcombo"].Cast <KeyBind>().CurrentValue&& forceR == false)
                {
                    R1.Cast();
                }

                if (Flash.IsReady() && (myHero.Distance(target.Position) <= 680))
                {
                    Flash.Cast(target.ServerPosition);
                }

                UseItems(target);

                if (target.IsValidTarget(W.Range))
                {
                    if (W.IsReady())

                    {
                        W.Cast();
                    }

                    if (R2.IsReady())

                    {
                        R2.Cast(target.ServerPosition);
                    }
                }
            }
        }
示例#9
0
 internal static void InitTick()
 {
     if (MenuInit.KillStealR && isRActive && R1.IsReady())
     {
         foreach (
             var target in
             EntityManager.Heroes.Enemies.Where(
                 x => x.IsValidRange(R.Range) && DamageCalculate.GetRDamage(x) > x.Health && !x.IsUnKillable()))
         {
             if (target.IsValidRange(R.Range - 100) && !target.IsValidRange(500))
             {
                 R1.Cast(target.Position);
             }
         }
     }
 }
示例#10
0
        private static void Harrass()
        {
            var useQHar     = Config.Item("QHar").GetValue <bool>();
            var useEHar     = Config.Item("EHar").GetValue <bool>();
            var useRHar     = Config.Item("RHar").GetValue <bool>();
            var missiles    = Config.Item("AutoRMisCount").GetValue <Slider>().Value;
            var useQHarMana = Config.Item("QHarMana").GetValue <Slider>().Value;
            var useEHarMana = Config.Item("EHarMana").GetValue <Slider>().Value;
            var useRHarMana = Config.Item("RHarMana").GetValue <Slider>().Value;

            if (Q.IsReady() && useQHar && Player.ManaPercentage() >= useQHarMana)
            {
                var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                if (t == null)
                {
                    return;
                }
                Q.Cast(t);
            }
            if (E.IsReady() && useEHar && Player.ManaPercentage() >= useEHarMana)
            {
                var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
                if (t == null)
                {
                    return;
                }
                E.Cast(t);
            }
            var bigMiss = isBigMissle();

            if (bigMiss ? R2.IsReady() : R1.IsReady() && useRHar && Player.Spellbook.GetSpell(SpellSlot.R).Ammo >= missiles && Player.ManaPercentage() >= useRHarMana)
            {
                var t = TargetSelector.GetTarget(bigMiss ? R2.Range : R1.Range, TargetSelector.DamageType.Magical);
                if (t == null)
                {
                    return;
                }
                if (!bigMiss)
                {
                    R1.Cast(t);
                }
                else
                {
                    R2.Cast(t);
                }
            }
        }
示例#11
0
        private static void Rdamage(EventArgs args)
        {
            var enemy = HeroManager.Enemies.Where(e => e.IsValidTarget(R1.Range));

            if (Config.Item("optimize").GetValue <bool>())
            {
                return;
            }

            foreach (var e in enemy)
            {
                if (e == null)
                {
                    return;
                }
                else
                {
                    var   debuff = e.HasBuff("luxilluminatingfraulein");
                    float dmgr   = R1.GetDamage(e);
                    if (debuff)
                    {
                        dmgr += Lux.PassiveDMG(e);
                    }
                    var pos1 = Drawing.WorldToScreen(e.Position);

                    if (Config.Item("draw.R.dmg").GetValue <bool>() && R1.IsReady())
                    {
                        Drawing.DrawText(pos1.X - 50, pos1.Y + 30, System.Drawing.Color.Tomato, "[R] Damage = " + dmgr.ToString("#,#"));
                    }
                }
            }
            var pos = Drawing.WorldToScreen(ObjectManager.Player.Position);

            if (Config.Item("draw.harass.indicator").GetValue <bool>())
            {
                Drawing.DrawText(pos.X - 50, pos.Y + 35, System.Drawing.Color.AliceBlue, "AutoHarass:");
            }
            if (Config.Item("autoharass").GetValue <KeyBind>().Active&& Config.Item("draw.harass.indicator").GetValue <bool>())
            {
                Drawing.DrawText(pos.X + 43, pos.Y + 35, System.Drawing.Color.LawnGreen, "On");
            }

            else if (Config.Item("draw.harass.indicator").GetValue <bool>())
            {
                Drawing.DrawText(pos.X + 43, pos.Y + 35, System.Drawing.Color.Tomato, "Off");
            }
        }
示例#12
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            passRdy = false;
            if (Player.IsChannelingImportantSpell() && (int)(Game.Time * 10) % 2 == 0)
            {
                Console.WriteLine("chaneling");
                EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            }

            if (R1.IsReady() && Game.Time - castR > 5 && getKeyBindItem(rMenu, "useR"))
            {
                var t = TargetSelector.GetTarget(R.Range, DamageType.Physical);
                if (t.IsValidTarget(R1.Range))
                {
                    R1.Cast(t);
                    return;
                }
            }
            if (Program.LagFree(0))
            {
                SetMana();
            }
            if (Program.LagFree(1) && Q.IsReady() && !passRdy && !SpellLock)
            {
                LogicQ();
            }
            if (Program.LagFree(2) && W.IsReady() && !passRdy && !SpellLock && getCheckBoxItem(wMenu, "autoW"))
            {
                LogicW();
            }
            if (Program.LagFree(3) && E.IsReady())
            {
                LogicE();
            }
            if (Program.LagFree(4))
            {
                if (R.IsReady() && Game.Time - castR > 5 && getCheckBoxItem(rMenu, "autoR"))
                {
                    LogicR();
                }

                if (!passRdy && !SpellLock)
                {
                    farm();
                }
            }
        }
示例#13
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.IsChannelingImportantSpell() && (int)(Game.Time * 10) % 2 == 0)
            {
                Console.WriteLine("chaneling");
                Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            }

            if (R1.IsReady() && Game.Time - castR > 5 && MainMenu.Item("useR", true).GetValue <KeyBind>().Active)
            {
                var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget(R1.Range))
                {
                    R1.Cast(t);
                    return;
                }
            }
            if (Program.LagFree(0))
            {
                SetMana();
            }
            if (Program.LagFree(1) && Q.IsReady() && !passRdy && !SpellLock)
            {
                LogicQ();
            }
            if (Program.LagFree(2) && W.IsReady() && !passRdy && !SpellLock && MainMenu.Item("autoW", true).GetValue <bool>())
            {
                LogicW();
            }
            if (Program.LagFree(3) && E.IsReady())
            {
                LogicE();
            }
            if (Program.LagFree(4))
            {
                if (R.IsReady() && Game.Time - castR > 5 && MainMenu.Item("autoR", true).GetValue <bool>())
                {
                    LogicR();
                }

                if (!passRdy && !SpellLock)
                {
                    farm();
                }
            }
        }
示例#14
0
        private void OnUpdate(EventArgs args)
        {
            if ((int)(Game.Time * 10) % 2 == 0)
            {
                //Console.WriteLine("chaneling");
                //Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPosRaw);
            }

            if (R1.IsReady() && Game.Time - castR > 5 && Config[Player.CharacterName]["RConfig"].GetValue <MenuKeyBind>("useR").Active)
            {
                var t = TargetSelector.GetTarget(R.Range);
                if (t.IsValidTarget(R1.Range))
                {
                    R1.Cast(t);
                    return;
                }
            }
            if (LagFree(0))
            {
                SetMana();
            }
            if (LagFree(1) && Q.IsReady() && !passRdy && !SpellLock)
            {
                LogicQ();
            }
            if (LagFree(2) && W.IsReady() && !passRdy && !SpellLock && Config[Player.CharacterName]["WConfig"].GetValue <MenuBool>("autoW").Enabled)
            {
                LogicW();
            }
            if (LagFree(3) && E.IsReady())
            {
                LogicE();
            }
            if (LagFree(4))
            {
                if (R.IsReady() && Game.Time - castR > 5 && Config[Player.CharacterName]["RConfig"].GetValue <MenuBool>("autoR").Enabled)
                {
                    LogicR();
                }

                if (!passRdy && !SpellLock)
                {
                    farm();
                }
            }
        }
示例#15
0
        private static void Combo()
        {
            var useQCombo = Config.Item("QuseCombo").GetValue <bool>();
            var useECombo = Config.Item("EuseCombo").GetValue <bool>();
            var useRCombo = Config.Item("RuseCombo").GetValue <bool>();

            if (Q.IsReady() && useQCombo)
            {
                var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                if (t == null)
                {
                    return;
                }
                Q.CastIfHitchanceEquals(t, qHitChance);
            }

            if (E.IsReady() && useECombo)
            {
                var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
                if (t == null)
                {
                    return;
                }
                E.Cast(t);
            }
            var bigMiss = isBigMissle();

            if (bigMiss ? R2.IsReady() : R1.IsReady() && useRCombo)
            {
                var t = TargetSelector.GetTarget(bigMiss ? R2.Range : R1.Range, TargetSelector.DamageType.Magical);
                if (t == null)
                {
                    return;
                }
                if (!bigMiss)
                {
                    R1.CastIfHitchanceEquals(t, rHitChance);
                }
                else
                {
                    R2.CastIfHitchanceEquals(t, rHitChance);
                }
            }
        }
示例#16
0
        public void farm()
        {
            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                var mobs = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);
                if (mobs.Count > 0 && Player.Mana > RMANA + WMANA + EMANA + QMANA)
                {
                    var mob = mobs[0];
                    if (Q.IsReady() && Config.Item("farmQ").GetValue <bool>())
                    {
                        Q.Cast(mob);
                        return;
                    }

                    if (R1.IsReady() && Config.Item("farmR").GetValue <bool>())
                    {
                        R1.Cast(mob);
                        return;
                    }
                }

                if (!Player.IsWindingUp && Player.ManaPercentage() > Config.Item("Mana").GetValue <Slider>().Value)
                {
                    var minions = MinionManager.GetMinions(Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth);
                    var Wfarm   = Q.GetCircularFarmLocation(minions, 200);
                    var rfarm   = R1.GetCircularFarmLocation(minions, 100);
                    if (R1.IsReady() && Config.Item("farmR").GetValue <bool>() && Player.Spellbook.GetSpell(SpellSlot.R).Ammo > 1)
                    {
                        if (rfarm.MinionsHit > 1)
                        {
                            R1.Cast(rfarm.Position);
                        }
                    }
                    if (Q.IsReady() && Config.Item("farmQ").GetValue <bool>())
                    {
                        var Rfarm = Q.GetCircularFarmLocation(minions, 100);
                        if (Wfarm.MinionsHit > 2)
                        {
                            Q.Cast(Rfarm.Position);
                        }
                    }
                }
            }
        }
示例#17
0
 private void Game_OnGameUpdate(EventArgs args)
 {
     if (Program.LagFree(0))
     {
         SetMana();
         farm();
     }
     if (Program.LagFree(1) && Q.IsReady() && Sheen() && !Player.IsWindingUp)
     {
         LogicQ();
     }
     if (Program.LagFree(2) && W.IsReady() && Program.Combo)
     {
         LogicW();
     }
     if (Program.LagFree(4) && R1.IsReady() && Sheen() && !Player.IsWindingUp)
     {
         LogicR();
     }
 }
示例#18
0
        public static float CalcDamage(Obj_AI_Base target)
        {
            //Calculate Combo Damage
            var aa     = player.GetAutoAttackDamage(target);
            var damage = aa;

            Ignite = player.GetSpellSlot("summonerdot");

            if (Ignite.IsReady())
            {
                damage += player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
            }

            if (Config.Item("combo.E").GetValue <bool>()) // edamage
            {
                if (E1.IsReady())
                {
                    damage += E1.GetDamage(target);
                }
            }
            if (target.HasBuff("luxilluminatingfraulein"))
            {
                damage += aa + player.CalcDamage(target, Damage.DamageType.Magical,
                                                 10 + (8 * player.Level) + 0.2 * player.FlatMagicDamageMod);
            }
            if (player.HasBuff("lichbane"))
            {
                damage += player.CalcDamage(target, Damage.DamageType.Magical,
                                            (player.BaseAttackDamage * 0.75) + ((player.BaseAbilityDamage + player.FlatMagicDamageMod) * 0.5));
            }
            if (R1.IsReady()) // rdamage
            {
                damage += R1.GetDamage(target);
            }

            if (Q1.IsReady())
            {
                damage += Q1.GetDamage(target);
            }
            return((float)damage);
        }
示例#19
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            if (R1.IsReady() && Game.Time - castR > 5 && Config.Item("useR", true).GetValue <KeyBind>().Active)
            {
                var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget(R1.Range))
                {
                    R1.Cast(t);
                    return;
                }
            }
            if (Program.LagFree(0))
            {
                SetMana();
            }
            if (Program.LagFree(1) && Q.IsReady() && !passRdy && !SpellLock)
            {
                LogicQ();
            }
            if (Program.LagFree(2) && W.IsReady() && !passRdy && !SpellLock && Config.Item("autoW", true).GetValue <bool>())
            {
                LogicW();
            }
            if (Program.LagFree(3) && E.IsReady())
            {
                LogicE();
            }
            if (Program.LagFree(4))
            {
                if (R.IsReady() && Game.Time - castR > 5 && Config.Item("autoR", true).GetValue <bool>())
                {
                    LogicR();
                }

                if (!passRdy && !SpellLock)
                {
                    farm();
                }
            }
        }
示例#20
0
        private void SetMana()
        {
            QMANA = Q.Instance.ManaCost;
            WMANA = W.Instance.ManaCost;
            EMANA = E.Instance.ManaCost;

            if (!R1.IsReady())
            {
                RMANA = QMANA - Player.PARRegenRate * Q.Instance.Cooldown;
            }
            else
            {
                RMANA = R1.Instance.ManaCost;
            }

            if (ObjectManager.Player.Health < ObjectManager.Player.MaxHealth * 0.2)
            {
                QMANA = 0;
                WMANA = 0;
                EMANA = 0;
                RMANA = 0;
            }
        }
示例#21
0
 private static void checkKS()
 {
     if (!Config.Item("useKS").GetValue <bool>())
     {
         return;
     }
     if (R1.IsReady())
     {
         var bigMiss = isBigMissle();
         List <AIHeroClient> targets = ObjectManager.Get <AIHeroClient>().Where(x => x.IsEnemy && x.IsValidTarget(bigMiss ? R2.Range : R1.Range) && !x.IsZombie && !x.HasBuffOfType(BuffType.Invulnerability) && R1.CanCast(x) && R1.GetDamage(x) * (bigMiss ? 1.5f : 1f) >= x.Health).ToList();
         foreach (var target in targets)
         {
             if (bigMiss)
             {
                 R2.Cast(target, false, true);
             }
             else
             {
                 R1.Cast(target, false, true);
             }
         }
     }
 }
示例#22
0
        private void SetMana()
        {
            if ((Config.Item("manaDisable", true).GetValue <bool>() && Program.Combo) || Player.HealthPercent < 20)
            {
                QMANA = 0;
                WMANA = 0;
                EMANA = 0;
                RMANA = 0;
                return;
            }

            QMANA = Q.Instance.ManaCost;
            WMANA = W.Instance.ManaCost;
            EMANA = E.Instance.ManaCost;

            if (!R1.IsReady())
            {
                RMANA = QMANA - Player.PARRegenRate * Q.Instance.Cooldown;
            }
            else
            {
                RMANA = R1.Instance.ManaCost;
            }
        }
示例#23
0
        private void Game_OnUpdate(EventArgs args)
        {
            if (useR.Active && R1.IsReady())
            {
                var t = TargetSelector.GetTarget(R1.Range, DamageType.Physical);

                if (t.IsValidTarget())
                {
                    R1.Cast(t);
                }
            }

            if (LagFree(0))
            {
                SetMana();
                LogicJungle();
            }

            if (!logicQW.Enabled || !Player.HasBuff("gravesbasicattackammo1"))
            {
                if (LagFree(2) && autoQ.Enabled && !Player.IsWindingUp && Q.IsReady())
                {
                    LogicQ();
                }

                if (LagFree(3) && autoW.Enabled && !Player.IsWindingUp && W.IsReady())
                {
                    LogicW();
                }
            }

            if (LagFree(4) && autoR.Enabled && R.IsReady())
            {
                LogicR();
            }
        }
示例#24
0
        private static void afterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (_Ob.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var useQCombo = Config.Item("QuseCombo").GetValue <bool>();
                var useRCombo = Config.Item("RuseCombo").GetValue <bool>();

                if (Q.IsReady() && useQCombo)
                {
                    var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                    if (t == null)
                    {
                        return;
                    }
                    Q.Cast(t);
                }

                var bigMiss = isBigMissle();
                if (bigMiss ? R2.IsReady() : R1.IsReady() && useRCombo)
                {
                    var t = TargetSelector.GetTarget(bigMiss ? R2.Range : R1.Range, TargetSelector.DamageType.Magical);
                    if (t == null)
                    {
                        return;
                    }
                    if (!bigMiss)
                    {
                        R1.Cast(t, false, true);
                    }
                    else
                    {
                        R2.Cast(t, false, true);
                    }
                }
            }
        }
示例#25
0
        public static void Routine()
        {
            var targetR = TargetSelector.GetTarget(R1.Range, TargetSelector.DamageType.Magical);
            var target  = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Magical);

            if (target == null || !target.IsValid || targetR == null || !targetR.IsValid)
            {
                return;
            }

            Ignite = player.GetSpellSlot("summonerdot");

            //[R] Aoe Cast
            byte hitcount;

            hitcount = (byte)Config.Item("advanced.R.aoe.count").GetValue <Slider>().Value;

            if (Config.Item("advanced.R.aoe").GetValue <bool>() && R1.IsReady() && !E1.IsReady() && target.IsValidTarget(E1.Range + E1.Width))
            {
                R1.CastIfWillHit(target, hitcount);
            }

            #region -- Variables/Floats etc.
            float qdmg    = Q1.GetDamage(target);
            float edmg    = E1.GetDamage(target);
            float rdmg    = R1.GetDamage(target);
            float aa      = (float)Player.GetAutoAttackDamage(target);
            var   insideE = Lux_E != null && target.Distance(Lux_E.Position) <= E1.Width;
            var   thp     = target.Health;
            var   AArange = Orbwalking.GetRealAutoAttackRange(player);
            var   debuff  = target.HasBuff("luxilluminatingfraulein");
            if (debuff)
            {
                rdmg += PassiveDMG(target);
            }
            if (debuff)
            {
                aa += PassiveDMG(target);
            }
            if (insideE)
            {
                rdmg += edmg;
            }
            var rooted = target.HasBuff("LuxLightBindingMis");
            #endregion


            if (insideE && thp < edmg && target.IsValidTarget(R1.Range))
            {
                return;
            }

            if (rooted && insideE && rdmg + edmg > thp && target.IsValidTarget(R1.Range))
            {
                SpellCastR(targetR);
            }

            #region -- Q spellcast

            var prediction = Q1.GetPrediction(target, true);
            var collision  = Q1.GetCollision(Player.Position.To2D(), new List <Vector2> {
                prediction.UnitPosition.To2D()
            });
            if (Config.Item("combo.Q").GetValue <bool>() &&
                Environment.TickCount - E1.LastCastAttemptT > 400 && Environment.TickCount - R1.LastCastAttemptT > 800 && prediction.Hitchance >= PredQ("prediction.Q"))
            {
                if (collision.Count == 2)
                {
                    if (collision[0].IsChampion() || collision[1].IsChampion())
                    {
                        Q1.Cast(prediction.CastPosition);
                    }
                }
                else if (collision.Count == 1 && collision[0].IsChampion())
                {
                    Q1.Cast(prediction.CastPosition);
                }
                else if (collision.Count <= 1)
                {
                    Q1.Cast(prediction.CastPosition);
                }
                #endregion -- Q spellcast end


                if (rooted && thp < aa && target.IsValidTarget(AArange))
                {
                    return;
                }

                if (Config.Item("combo.E").GetValue <bool>() && Environment.TickCount - Q1.LastCastAttemptT > 875 && Environment.TickCount - R1.LastCastAttemptT > 800)
                {
                    SpellCast(target, E1.Range, E1, false, 1, true, PredE("prediction.E"));
                }

                if (IgniteKillCheck() < thp && target.HasBuff("summonerdot"))
                {
                    return;
                }

                if (Config.Item("combo.R").GetValue <bool>() && R1.IsReady())
                {
                    SpellCastR(targetR);
                }

                if (!target.IsValidTarget(600))
                {
                    return;
                }

                var ignitemenu = Config.Item("autospells.ignite").GetValue <bool>();

                if (thp > IgniteDamage(target) && thp < IgniteDamage(target) + edmg + aa && rooted && E1.IsReady() && target.IsValidTarget(600) && Ignite.IsReady() && ignitemenu)
                {
                    player.Spellbook.CastSpell(Ignite, target);
                    Printchat("Ignite casted");
                }

                if (thp < IgniteDamage(target) + rdmg + aa && rooted && Ignite.IsReady() && R1.IsReady() && ignitemenu)
                {
                    player.Spellbook.CastSpell(Ignite, target);
                    Printchat("Ignite casted");
                }

                if (thp < IgniteDamage(target) + rdmg + aa && Ignite.IsReady() && R1.IsReady() && ignitemenu)
                {
                    player.Spellbook.CastSpell(Ignite, target);
                    Printchat("Ignite casted");
                }

                if (thp < IgniteDamage(target) && target.IsValidTarget(600) && AllyCheck(target, 600) < 1 && Ignite.IsReady() && ignitemenu)
                {
                    player.Spellbook.CastSpell(Ignite, target);
                    Printchat("Ignite casted");
                }
            }
        }
示例#26
0
        private static void Drawings(EventArgs args)
        {
            if (Config.Item("disable.draws").GetValue <bool>())
            {
                return;
            }

            if (Config.Item("optimize").GetValue <bool>())
            {
                return;
            }

            if (Lux_E != null && Config.Item("draw.LuxE.position").GetValue <bool>())
            {
                var pos1 = Drawing.WorldToScreen(player.Position);
                var pos2 = Drawing.WorldToScreen(Lux_E.Position);


                Drawing.DrawLine(pos1, pos2, 1, System.Drawing.Color.LightBlue);
                Drawing.DrawCircle(Lux_E.Position, 100, System.Drawing.Color.Gray);

                foreach (var enemy in HeroManager.Enemies.Where(e => !e.IsDead))
                {
                    var pos3 = Drawing.WorldToScreen(enemy.Position);
                    if (enemy.Position.Distance(Lux_E.Position) < 200)
                    {
                        Drawing.DrawLine(pos2, pos3, 1, System.Drawing.Color.DarkRed);
                    }
                }
            }

            if (Config.Item("draw.Q").GetValue <Circle>().Active)
            {
                if (Q1.Level > 0)
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, Q1.Range,
                                             Q1.IsReady() ? Config.Item("draw.Q").GetValue <Circle>().Color : System.Drawing.Color.Red);
                }
            }

            if (Config.Item("draw.W").GetValue <Circle>().Active)
            {
                if (W1.Level > 0)
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, W1.Range,
                                             W1.IsReady() ? Config.Item("draw.W").GetValue <Circle>().Color : System.Drawing.Color.Red);
                }
            }

            if (Config.Item("draw.E").GetValue <Circle>().Active)
            {
                if (E1.Level > 0)
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, E1.Range - 1,
                                             E1.IsReady() ? Config.Item("draw.E").GetValue <Circle>().Color : System.Drawing.Color.Red);
                }
            }

            if (Config.Item("draw.R").GetValue <Circle>().Active)
            {
                if (R1.Level > 0)
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, R1.Range - 2,
                                             R1.IsReady() ? Config.Item("draw.R").GetValue <Circle>().Color : System.Drawing.Color.Red);
                }
            }
        }
示例#27
0
        private static void laneClear()
        {
            var Qmana = Config.Item("ManaFarmQ").GetValue <Slider>().Value;
            var Emana = Config.Item("ManaFarmE").GetValue <Slider>().Value;
            var Rmana = Config.Item("ManaFarmR").GetValue <Slider>().Value;
            var useQ  = Config.Item("QLC").GetValue <bool>();
            var useE  = Config.Item("ELC").GetValue <bool>();
            var useR  = Config.Item("RLC").GetValue <bool>();
            var useR2 = Config.Item("BigRClear").GetValue <bool>();
            //var miniR = Config.Item("miniClear").GetValue<bool>();
            var Qcount         = Config.Item("QFarmCount").GetValue <Slider>().Value;
            var Ecount         = Config.Item("EFarmCount").GetValue <Slider>().Value;
            var Rcount         = Config.Item("RFarmCount").GetValue <Slider>().Value;
            var MisCount       = Config.Item("RMisCount").GetValue <Slider>().Value;
            var Ammo           = Player.Spellbook.GetSpell(SpellSlot.R).Ammo;
            var BigMissile     = isBigMissle();
            var harrassinclear = Config.Item("HarInClear").GetValue <bool>();
            var missiles       = Config.Item("AutoRMisCount").GetValue <Slider>().Value;
            var useQHar        = Config.Item("QHar").GetValue <bool>();
            var useEHar        = Config.Item("EHar").GetValue <bool>();
            var useRHar        = Config.Item("RHar").GetValue <bool>();
            var useQHarMana    = Config.Item("QHarMana").GetValue <Slider>().Value;
            var useRHarMana    = Config.Item("RHarMana").GetValue <Slider>().Value;

            if (_Ob.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && !Orbwalking.CanAttack() && R1.IsReady() && useR && Player.ManaPercentage() > Rmana)
            {
                if (BigMissile)
                {
                    return;
                }

                if (Ammo > MisCount)
                {
                    List <Obj_AI_Base> killableMinions = MinionManager.GetMinions(R1.Range, MinionTypes.All).Where(x => x.Health <= Player.GetAutoAttackDamage(x)).ToList();
                    if (killableMinions.Count >= 2)
                    {
                        var farthestMinion = killableMinions.OrderBy(x => x.Distance(Player.Position)).First();
                        if (R1.GetDamage(farthestMinion) >= farthestMinion.Health)
                        {
                            R1.Cast(farthestMinion);
                        }
                    }
                }
            }

            if (Q.IsReady() && useQ && Player.ManaPercentage() > Qmana)
            {
                List <Obj_AI_Base> QMinionsRange = MinionManager.GetMinions(Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.NotAlly);
                List <int>         qRangeCount   = new List <int>();
                foreach (var minion in QMinionsRange)
                {
                    List <Obj_AI_Base> qMinions = MinionManager.GetMinions(minion.Position, Q.Width, MinionTypes.All, MinionTeam.NotAlly);
                    qRangeCount.Add(qMinions.Count());
                }
                if (qRangeCount.Max() >= Qcount)
                {
                    Q.Cast(QMinionsRange[qRangeCount.IndexOf(qRangeCount.Max())]);
                }
            }

            if (E.IsReady() && useE && Player.ManaPercentage() > Emana)
            {
                List <Obj_AI_Base> EMinions = MinionManager.GetMinions(Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly);
                if (EMinions.Count >= Ecount)
                {
                    E.Cast(EMinions[0]);
                }
            }

            if (BigMissile ? R2.IsReady() : R1.IsReady() && useR && (Ammo > MisCount) && Player.ManaPercentage() > Rmana)
            {
                if (BigMissile && !useR2)
                {
                    return;
                }

                List <Obj_AI_Base> RMinionsRange = MinionManager.GetMinions(Player.ServerPosition, (BigMissile ? R2.Range : R1.Range), MinionTypes.All, MinionTeam.NotAlly);
                List <int>         rRangeCount   = new List <int>();
                foreach (var minion in RMinionsRange)
                {
                    List <Obj_AI_Base> rMinions = MinionManager.GetMinions(minion.Position, BigMissile ? 300f : 200f, MinionTypes.All, MinionTeam.NotAlly);
                    rRangeCount.Add(rMinions.Count());
                }
                if (rRangeCount.Max() >= Rcount)
                {
                    if (BigMissile)
                    {
                        R2.Cast(RMinionsRange[rRangeCount.IndexOf(rRangeCount.Max())], false, true);
                    }
                    else
                    {
                        R1.Cast(RMinionsRange[rRangeCount.IndexOf(rRangeCount.Max())], false, true);
                    }
                }
            }

            if (Q.IsReady() && harrassinclear && useQHar && Player.ManaPercentage() >= useQHarMana)
            {
                if (Player.ServerPosition.UnderTurret(true))
                {
                    return;
                }

                var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                if (t == null)
                {
                    return;
                }
                Q.CastIfHitchanceEquals(t, HitChance.VeryHigh);
            }

            if (BigMissile ? R2.IsReady() : R1.IsReady() && harrassinclear && useRHar && Player.Spellbook.GetSpell(SpellSlot.R).Ammo >= missiles && Player.ManaPercentage() >= useRHarMana)
            {
                if (Player.ServerPosition.UnderTurret(true))
                {
                    return;
                }

                var t = TargetSelector.GetTarget(BigMissile ? R2.Range : R1.Range, TargetSelector.DamageType.Magical);
                if (t == null)
                {
                    return;
                }
                if (!BigMissile)
                {
                    R1.CastIfHitchanceEquals(t, HitChance.VeryHigh);
                }
                else
                {
                    R2.CastIfHitchanceEquals(t, HitChance.VeryHigh);
                }
            }
        }
示例#28
0
        //WIP
        private static void Junglesteal()
        {
            if (!R1.IsReady())
            {
                return;
            }

            if (Config.Item("Blue").GetValue <bool>()) //Blue
            {
                var blueBuff =
                    ObjectManager.Get <AIMinionClient>()
                    .Where(x => x.CharacterData.Name == "SRU_Blue")
                    .Where(x => player.GetSpellDamage(x, SpellSlot.R) > x.Health)
                    .FirstOrDefault(x => x.Team != player.Team);     /// ---------- Check Playerteam stuff ~

                if (blueBuff != null)
                {
                    R1.Cast(blueBuff);
                }
            }

            if (Config.Item("Red").GetValue <bool>()) //Red
            {
                var redBuff =
                    ObjectManager.Get <AIMinionClient>()
                    .Where(x => x.CharacterData.Name == "SRU_Red")
                    .Where(x => player.GetSpellDamage(x, SpellSlot.R) > x.Health)
                    .FirstOrDefault(x => x.Team != player.Team);

                if (redBuff != null)
                {
                    R1.Cast(redBuff);
                }
            }

            if (Config.Item("Baron").GetValue <bool>()) //Baron
            {
                var Baron =
                    ObjectManager.Get <AIMinionClient>()
                    .Where(x => x.CharacterData.Name == "SRU_Baron")
                    .Where(x => player.GetSpellDamage(x, SpellSlot.R) > x.Health)
                    .FirstOrDefault(x => x.Team != player.Team);

                if (Baron != null)
                {
                    R1.Cast(Baron);
                }
            }

            if (Config.Item("Dragon").GetValue <bool>()) //Dragon
            {
                var Dragon =
                    ObjectManager.Get <AIMinionClient>()
                    .Where(x => x.CharacterData.Name == "SRU_Dragon")
                    .Where(x => player.GetSpellDamage(x, SpellSlot.R) > x.Health)
                    .FirstOrDefault(x => x.Team != player.Team);

                if (Dragon != null)
                {
                    R1.Cast(Dragon);
                }
            }
        }
示例#29
0
文件: Program.cs 项目: joyhck/OKTW-EB
        private static void ComboLogic()
        {
            if (ComboW)
            {
                var t = EntityManager.Heroes.Enemies.Find(x => x.IsValidTarget(W.Range) && !x.HasBuffOfType(BuffType.SpellShield));

                if (t != null)
                {
                    if (W.IsReady() && !Orbwalker.CanAutoAttack)
                    {
                        W.Cast();
                    }
                }
            }

            if (E.IsReady())
            {
                var t = EntityManager.Heroes.Enemies.Where(e => e.IsValidTarget(E.Range + myHero.GetAutoAttackRange()));

                if (t == null)
                {
                    return;
                }

                var t12 = t.OrderByDescending(e => TargetSelector.GetPriority(e)).FirstOrDefault();

                if (t12 != null)
                {
                    if (myHero.Distance(t12) > myHero.GetAutoAttackRange() + 20)
                    {
                        E.Cast(t12.ServerPosition);
                    }
                }
                if (ComboE == 0)
                {
                    var t1 = t.OrderByDescending(e => TargetSelector.GetPriority(e)).FirstOrDefault();

                    if (t1 != null)
                    {
                        E.Cast(t1.ServerPosition);
                    }
                }
                else if (ComboE == 1)
                {
                    if (t != null)
                    {
                        E.Cast(Game.CursorPos);
                    }
                }
            }

            if (ComboR)
            {
                if (R1.IsReady())
                {
                    if (useR1 && !myHero.HasBuff("RivenFengShuiEngine"))
                    {
                        var t = TargetSelector.GetTarget(900, DamageType.Physical);
                        if (t == null)
                        {
                            return;
                        }
                        if (t.Distance(myHero.ServerPosition) < E.Range + myHero.AttackRange && myHero.CountEnemiesInRange(500) >= 1)
                        {
                            R1.Cast();
                        }
                    }

                    if (myHero.HasBuff("RivenFengShuiEngine"))
                    {
                        var t = TargetSelector.GetTarget(900, DamageType.Physical);
                        if (t == null)
                        {
                            return;
                        }
                        if (t.ServerPosition.Distance(myHero.ServerPosition) < 850)
                        {
                            switch (R2Mode)
                            {
                            case 0:
                                if (Rdame(t, t.Health) > t.Health && t.IsValidTarget(R2.Range) && t.Distance(myHero.ServerPosition) < 600)
                                {
                                    CastR2 = true;
                                }
                                else
                                {
                                    CastR2 = false;
                                }
                                break;

                            case 1:
                                if (t.HealthPercent < 25 && t.Health > Rdame(t, t.Health) + Damage.GetAutoAttackDamage(myHero, t) * 2)
                                {
                                    CastR2 = true;
                                }
                                else
                                {
                                    CastR2 = false;
                                }
                                break;

                            case 2:
                                if (t.IsValidTarget(R2.Range) && t.Distance(myHero.ServerPosition) < 600)
                                {
                                    CastR2 = true;
                                }
                                else
                                {
                                    CastR2 = false;
                                }
                                break;

                            case 3:
                                CastR2 = false;
                                break;
                            }
                        }

                        if (CastR2)
                        {
                            R2.Cast(t);
                        }
                    }
                }
            }
        }
示例#30
0
文件: Program.cs 项目: joyhck/OKTW-EB
        private static void BurstLogic()
        {
            Orbwalker.OrbwalkTo(Game.CursorPos);
            var e = TargetSelector.GetTarget(E.Range + flashSlot.Range, DamageType.Physical);

            if (e != null && !e.IsDead && e.IsValidTarget() && !e.IsZombie)
            {
                if (R1.IsReady())
                {
                    if (myHero.HasBuff("RivenFengShuiEngine"))
                    {
                        if (Q.IsReady())
                        {
                            if (E.IsReady() && W.IsReady())
                            {
                                if (e.Distance(myHero.ServerPosition) < E.Range + myHero.AttackRange + 100)
                                {
                                    E.Cast(e.Position);
                                }
                            }
                        }
                    }

                    if (E.IsReady())
                    {
                        if (e.Distance(myHero.ServerPosition) < myHero.AttackRange + E.Range + 100)
                        {
                            R1.Cast();
                            E.Cast(e.Position);
                        }
                    }
                }

                if (W.IsReady())
                {
                    if (EntityManager.Heroes.Enemies.Any(x => x.IsValidTarget(W.Range)))
                    {
                        W.Cast();
                    }
                }

                if (BurstItem)
                {
                    if (e.Distance(myHero.ServerPosition) <= E.Range + 500)
                    {
                        if (Item.CanUseItem(ItemId.Youmuus_Ghostblade) && Item.HasItem(ItemId.Youmuus_Ghostblade))
                        {
                            Item.UseItem(ItemId.Youmuus_Ghostblade);
                        }
                    }

                    if (myHero.IsInAutoAttackRange(e))
                    {
                        if (Item.CanUseItem(ItemId.Tiamat_Melee_Only) && Item.HasItem(ItemId.Tiamat_Melee_Only))
                        {
                            Item.UseItem(ItemId.Tiamat_Melee_Only);
                        }

                        if (Item.CanUseItem(ItemId.Titanic_Hydra) && Item.HasItem(ItemId.Titanic_Hydra))
                        {
                            Item.UseItem(ItemId.Titanic_Hydra);
                        }

                        if (Item.CanUseItem(ItemId.Ravenous_Hydra_Melee_Only) && Item.HasItem(ItemId.Ravenous_Hydra_Melee_Only))
                        {
                            Item.UseItem(ItemId.Ravenous_Hydra_Melee_Only);
                        }
                    }
                }

                if (BurstIgnite)
                {
                    if (e.HealthPercent < 50)
                    {
                        if (ignite.IsReady())
                        {
                            ignite.Cast(e);
                        }
                    }
                }

                if (BurstFlash)
                {
                    if (flashSlot.IsReady() && R1.IsReady() && R1.Name == "RivenFengShuiEngine" && E.IsReady() && W.IsReady())
                    {
                        if (e.Distance(myHero.ServerPosition) <= 780 && e.Distance(myHero.ServerPosition) >= E.Range + myHero.AttackRange + 85)
                        {
                            Core.DelayAction(delegate { flashSlot.Cast(e.ServerPosition); }, 500);
                            E.Cast(e.ServerPosition);
                            R1.Cast();
                        }
                    }
                }
            }
        }