Beispiel #1
0
        public override void Update(EkkoCore core)
        {
            var useQ   = core._menu.HarassMenu["QH"].Cast <CheckBox>().CurrentValue;
            var useE   = core._menu.HarassMenu["EH"].Cast <CheckBox>().CurrentValue;
            var useW   = core._menu.HarassMenu["WH"].Cast <CheckBox>().CurrentValue;
            var target = core.targetSelected.getTarget(core.spells.Q.Range);

            if (target == null)
            {
                return;
            }
            base.Update(core);
            switch (modeActive)
            {
            case mode.TeamFive:
            case mode.Normal:
                NormalMode(core, target, useQ, useE, useW);
                break;

            case mode.Chase:
                ChaseMode(core, target, useQ, useE, useW);
                break;

            case mode.Flee:
                FleeMode(core, target, useQ, useE, useW);
                break;


            default:
                break;
            }
        }
Beispiel #2
0
        private void Teamfive(EkkoCore core, AIHeroClient target, bool useQ, bool useE, bool useR, bool useW)
        {
            var damageOverKill = core._menu.ComboMenu["RPC"].Cast <CheckBox>().CurrentValue;
            var rnu            = core._menu.ComboMenu["RnC"].Cast <Slider>().CurrentValue;
            var rtc            = core._menu.ComboMenu["RTC"].Cast <Slider>().CurrentValue;

            if (useQ && (core.Player.Distance(target) > core.spells.E.Range || core.Player.Distance(target) <= 100 && (core.spells.E.IsReady()) && useE))
            {
                var predQ = core.spells.Q.GetPrediction(target);
                if (predQ.HitChance >= HitChance.High)
                {
                    core.spells.Q.Cast(predQ.CastPosition);
                }
            }
            if (useE && core.Player.Distance(target) > core.spells.E.Range * 2)
            {
                this.CastE(target, core, useQ);
            }
            if (useW && core.spells.W.IsInRange(target) && (target.HasBuffOfType(BuffType.Slow) || target.HasBuffOfType(BuffType.Stun)))
            {
                core.spells.W.Cast(target.Position);
            }
            if (useR && damageOverKill)
            {
                if (this.getNumTargetsRange(375, rnu) && (rtc >= core.Player.Health || this.TheyaReDead(375, 1, core)))
                {
                    core.spells.R.Cast();
                }
            }
        }
Beispiel #3
0
        public override void Update(EkkoCore core)
        {
            var useQ=core._menu.HarassMenu["QH"].Cast<CheckBox>().CurrentValue;
            var useE = core._menu.HarassMenu["EH"].Cast<CheckBox>().CurrentValue;
            var useW = core._menu.HarassMenu["WH"].Cast<CheckBox>().CurrentValue;
            var target = core.targetSelected.getTarget(core.spells.Q.Range);
            if (target == null) return;
            base.Update(core);
            switch (modeActive)
            {
                case mode.TeamFive:
                case mode.Normal:
                    NormalMode(core, target, useQ, useE, useW);
                    break;
                case mode.Chase:
                    ChaseMode(core, target, useQ, useE, useW);
                    break;
                case mode.Flee:
                    FleeMode(core, target, useQ, useE, useW);
                    break;

                default:
                    break;
            }
        }
        public override void Update(EkkoCore core)
        {
            base.Update(core);
            var useQ = core._menu.JungleclearMenu["QJ"].Cast<CheckBox>().CurrentValue;
            var useW = core._menu.JungleclearMenu["WJ"].Cast<CheckBox>().CurrentValue;
            var useE = core._menu.JungleclearMenu["EJ"].Cast<CheckBox>().CurrentValue;
             Obj_AI_Base minion =
            EntityManager.MinionsAndMonsters.GetJungleMonsters(

            ObjectManager.Player.Position,
            core.spells.Q.Range,
            true).FirstOrDefault();
            if (minion == null) return;
            if (useQ && core.spells.Q.IsInRange(minion))
            {
                var predQ = core.spells.Q.GetPrediction(minion);
                if (predQ.HitChance >= HitChance.High)
                {
                    core.spells.Q.Cast(predQ.CastPosition);
                }
            }
            if (useW && core.spells.W.IsInRange(minion))
            {
                var predQ = core.spells.W.GetPrediction(minion);
                if (predQ.HitChance >= HitChance.High)
                {
                    core.spells.Q.Cast(predQ.CastPosition);
                }
            }
            if (useE && core.spells.E.IsInRange(minion))
            {
              CastE(minion,core,useQ);
            }
        }
Beispiel #5
0
 public override void Update(EkkoCore core)
 {
     base.Update(core);
     var useQ = core._menu.LaneclearMenu["QL"].Cast<CheckBox>().CurrentValue;
     var useE = core._menu.LaneclearMenu["EL"].Cast<CheckBox>().CurrentValue;
     Obj_AI_Base minion =
       EntityManager.MinionsAndMonsters.GetLaneMinions(
       EntityManager.UnitTeam.Enemy,
       ObjectManager.Player.Position,
       core.spells.Q.Range,
       true).FirstOrDefault();
     if (minion == null) return;
     if (useQ && core.spells.Q.IsInRange(minion))
     {
         var predQ = core.spells.Q.GetPrediction(minion);
        // predQ.CollisionObjects.
         if (predQ.HitChance >= HitChance.High)
         {
             core.spells.Q.Cast(predQ.CastPosition);
         }
     }
     if (useE && core.spells.E.IsInRange(minion))
     {
         CastE(minion, core, useQ);
     }
 }
Beispiel #6
0
        public override void Update(EkkoCore core)
        {
            base.Update(core);
            var         useQ   = core._menu.LaneclearMenu["QL"].Cast <CheckBox>().CurrentValue;
            var         useE   = core._menu.LaneclearMenu["EL"].Cast <CheckBox>().CurrentValue;
            Obj_AI_Base minion =
                EntityManager.MinionsAndMonsters.GetLaneMinions(
                    EntityManager.UnitTeam.Enemy,
                    ObjectManager.Player.Position,
                    core.spells.Q.Range,
                    true).FirstOrDefault();

            if (minion == null)
            {
                return;
            }
            if (useQ && core.spells.Q.IsInRange(minion))
            {
                var predQ = core.spells.Q.GetPrediction(minion);
                // predQ.CollisionObjects.
                if (predQ.HitChance >= HitChance.High)
                {
                    core.spells.Q.Cast(predQ.CastPosition);
                }
            }
            if (useE && core.spells.E.IsInRange(minion))
            {
                CastE(minion, core, useQ);
            }
        }
Beispiel #7
0
 static bool TargetHitWithR(EkkoCore core, AIHeroClient hero)
 {
     if (core.spells.Ghost.Distance(Prediction.Position.PredictCircularMissile(hero, core.spells.R.Range, core.spells.R1.Radius, core.spells.R.CastDelay, core.spells.R1.Speed).UnitPosition) < 400)
     {
         return(true);
     }
     return(false);
 }
Beispiel #8
0
 public void CastEOut(AIHeroClient target, EkkoCore core)
 {
     if (!core.spells.E.IsReady())
     {
         return;
     }
     var vec = core.Player.ServerPosition.Extend(target.ServerPosition, -core.spells.E.Range + 10);
     core.spells.E.Cast(vec.To3D());
 }
Beispiel #9
0
        public void CastEOut(AIHeroClient target, EkkoCore core)
        {
            if (!core.spells.E.IsReady())
            {
                return;
            }
            var vec = core.Player.ServerPosition.Extend(target.ServerPosition, -core.spells.E.Range + 10);

            core.spells.E.Cast(vec.To3D());
        }
Beispiel #10
0
 public override void Update(EkkoCore core)
 {
     var useQ = core._menu.FleeMenu["QF"].Cast<CheckBox>().CurrentValue;
     var useW = core._menu.FleeMenu["WF"].Cast<CheckBox>().CurrentValue;
     var useE = core._menu.FleeMenu["EF"].Cast<CheckBox>().CurrentValue;
     base.Update(core);
     var target = core.targetSelected.getTarget(core.spells.Q.Range);
     if(target!=null)
     this.FleeMode(core,target,useQ,useE,useW);
 }
Beispiel #11
0
 public void CastE(Obj_AI_Base target, EkkoCore core, bool useQ)
 {
     if (!core.spells.E.IsReady())
     {
         return;
     }
     var vec = core.Player.ServerPosition.Extend(target.ServerPosition, core.spells.E.Range - 10);
     core.spells.E.Cast(vec.To3D());
     Core.DelayAction(() => EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, target), core.spells.E.CastDelay * 1000 + Game.Ping);
     if (useQ)
         Core.DelayAction(() => core.spells.Q.Cast(target.Position), (core.spells.E.CastDelay + (int)core.Player.AttackDelay) * 1000 + Game.Ping);
 }
Beispiel #12
0
 public bool getNumTargetsRange(int range, int num,EkkoCore core)
 {
     var i = 0;
     foreach (var target in EntityManager.Heroes.Enemies)
     {
         if (target != null && !target.IsDead)
             if (TargetHitWithR(core, target))
             {
                 i++;
             }
     }
     if (i >= num) return true;
     return false;
 }
Beispiel #13
0
        public override void Update(EkkoCore core)
        {
            var useQ = core._menu.FleeMenu["QF"].Cast <CheckBox>().CurrentValue;
            var useW = core._menu.FleeMenu["WF"].Cast <CheckBox>().CurrentValue;
            var useE = core._menu.FleeMenu["EF"].Cast <CheckBox>().CurrentValue;

            base.Update(core);
            var target = core.targetSelected.getTarget(core.spells.Q.Range);

            if (target != null)
            {
                this.FleeMode(core, target, useQ, useE, useW);
            }
        }
Beispiel #14
0
        public void CastE(Obj_AI_Base target, EkkoCore core, bool useQ)
        {
            if (!core.spells.E.IsReady())
            {
                return;
            }
            var vec = core.Player.ServerPosition.Extend(target.ServerPosition, core.spells.E.Range - 10);

            core.spells.E.Cast(vec.To3D());
            Core.DelayAction(() => EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, target), core.spells.E.CastDelay * 1000 + Game.Ping);
            if (useQ)
            {
                Core.DelayAction(() => core.spells.Q.Cast(target.Position), (core.spells.E.CastDelay + (int)core.Player.AttackDelay) * 1000 + Game.Ping);
            }
        }
Beispiel #15
0
 private void FleeMode(EkkoCore core, EloBuddy.AIHeroClient target, bool useQ, bool useE, bool useW)
 {
     this.CastEOut(target, core);
     if (useQ && core.spells.Q.IsInRange(target))
     {
         var predQ = core.spells.Q.GetPrediction(target);
         if (predQ.HitChance >= HitChance.High)
         {
             core.spells.Q.Cast(predQ.CastPosition);
         }
     }
     if (useW && core.spells.W.IsInRange(Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping).To3D()))
     {
         var pos = Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping);
         core.spells.Q.Cast(pos.To3D());
     }
 }
Beispiel #16
0
 public bool TheyaReDead(int range, int num, EkkoCore core)
 {
     var i = 0;
     foreach (var target in EntityManager.Heroes.Enemies)
     {
         if (target != null && !target.IsDead)
             if (TargetHitWithR(core, target))
             {
                 if (core.spells.RDam(target) <= target.Health)
                 {
                     i++;
                 }
             }
     }
     if (i >= num) return true;
     return false;
 }
Beispiel #17
0
 private void FleeMode(EkkoCore core, AIHeroClient target, bool useQ, bool useE, bool useW)
 {
     CastEOut(target, core);
     if (useQ && core.spells.Q.IsInRange(target))
     {
         var predQ = core.spells.Q.GetPrediction(target);
         if (predQ.HitChance >= HitChance.High)
         {
             core.spells.Q.Cast(predQ.CastPosition);
         }
     }
     if (useW && core.spells.W.IsInRange(Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping).To3D()))
     {
         var pos = Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping);
         core.spells.Q.Cast(pos.To3D());
     }
 }
Beispiel #18
0
 internal void OnGapCloser(EloBuddy.AIHeroClient sender, EloBuddy.SDK.Events.Gapcloser.GapcloserEventArgs args ,EkkoCore core)
 {
     if (sender == null || sender.IsAlly ) return;
     var Gapcloser = core._menu.MiscMenu["MG"].Cast<CheckBox>().CurrentValue;
     if (Gapcloser != false)
     {
         if (sender.IsAttackingPlayer)
         {
             core.spells.W.Cast(core.Player.Position);
             this.CastEOut(sender, core);
             var predQ = core.spells.Q.GetPrediction(sender);
             if (predQ.HitChance >= HitChance.High)
             {
                 core.spells.Q.Cast(predQ.CastPosition);
             }
         }
     }
 }
Beispiel #19
0
 public void NormalMode(EkkoCore core, AIHeroClient target, bool useQ, bool useE, bool useW)
 {
     if (useQ && (core.Player.Distance(target) > core.spells.E.Range || core.Player.Distance(target) <= 100 && (core.spells.E.IsReady()) && useE))
     {
         var predQ = core.spells.Q.GetPrediction(target);
         if (predQ.HitChance >= HitChance.High)
         {
             core.spells.Q.Cast(predQ.CastPosition);
         }
     }
     if (useE && core.Player.Distance(target) > core.spells.E.Range * 2)
     {
         this.CastE(target, core, useQ);
     }
     if (useW && core.spells.W.IsInRange(target) && (target.HasBuffOfType(BuffType.Slow) || target.HasBuffOfType(BuffType.Stun)))
     {
         core.spells.W.Cast(target.Position);
     }
 }
Beispiel #20
0
 public void NormalMode(EkkoCore core, AIHeroClient target, bool useQ, bool useE, bool useW)
 {
     if (useQ && (core.Player.Distance(target) > core.spells.E.Range || core.Player.Distance(target) <= 100 && (core.spells.E.IsReady()) && useE))
     {
         var predQ = core.spells.Q.GetPrediction(target);
         if (predQ.HitChance >= HitChance.High)
         {
             core.spells.Q.Cast(predQ.CastPosition);
         }
     }
     if (useE && core.Player.Distance(target) > core.spells.E.Range * 2)
     {
         this.CastE(target, core,useQ);
     }
        if (useW  && core.spells.W.IsInRange(target) && (target.HasBuffOfType(BuffType.Slow) ||target.HasBuffOfType(BuffType.Stun) ))
     {
         core.spells.W.Cast(target.Position);
     }
 }
Beispiel #21
0
        public bool getNumTargetsRange(int range, int num, EkkoCore core)
        {
            var i = 0;

            foreach (var target in EntityManager.Heroes.Enemies)
            {
                if (target != null && !target.IsDead)
                {
                    if (TargetHitWithR(core, target))
                    {
                        i++;
                    }
                }
            }
            if (i >= num)
            {
                return(true);
            }
            return(false);
        }
Beispiel #22
0
        public override void Update(EkkoCore core)
        {
            base.Update(core);
            var         useQ   = core._menu.JungleclearMenu["QJ"].Cast <CheckBox>().CurrentValue;
            var         useW   = core._menu.JungleclearMenu["WJ"].Cast <CheckBox>().CurrentValue;
            var         useE   = core._menu.JungleclearMenu["EJ"].Cast <CheckBox>().CurrentValue;
            Obj_AI_Base minion =
                EntityManager.MinionsAndMonsters.GetJungleMonsters(

                    ObjectManager.Player.Position,
                    core.spells.Q.Range,
                    true).FirstOrDefault();

            if (minion == null)
            {
                return;
            }
            if (useQ && core.spells.Q.IsInRange(minion))
            {
                var predQ = core.spells.Q.GetPrediction(minion);
                if (predQ.HitChance >= HitChance.High)
                {
                    core.spells.Q.Cast(predQ.CastPosition);
                }
            }
            if (useW && core.spells.W.IsInRange(minion))
            {
                var predQ = core.spells.W.GetPrediction(minion);
                if (predQ.HitChance >= HitChance.High)
                {
                    core.spells.Q.Cast(predQ.CastPosition);
                }
            }
            if (useE && core.spells.E.IsInRange(minion))
            {
                CastE(minion, core, useQ);
            }
        }
Beispiel #23
0
 private void ChaseMode(EkkoCore core, AIHeroClient target, bool useQ, bool useE, bool useW)
 {
     if (core.spells.Q.IsInRange(target))
     {
         if (useE && core.Player.Distance(target) > core.spells.E.Range * 2)
         {
             this.CastE(target, core, useQ);
         }
     }
     if (useQ && core.spells.Q.IsInRange(target))
     {
         var predQ = core.spells.Q.GetPrediction(target);
         if (predQ.HitChance >= HitChance.High)
         {
             core.spells.Q.Cast(predQ.CastPosition);
         }
     }
     if (useW && core.spells.W.IsInRange(Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping).To3D()))
     {
         var pos = Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping);
         core.spells.Q.Cast(pos.To3D());
     }
 }
Beispiel #24
0
        public bool TheyaReDead(int range, int num, EkkoCore core)
        {
            var i = 0;

            foreach (var target in EntityManager.Heroes.Enemies)
            {
                if (target != null && !target.IsDead)
                {
                    if (TargetHitWithR(core, target))
                    {
                        if (core.spells.RDam(target) <= target.Health)
                        {
                            i++;
                        }
                    }
                }
            }
            if (i >= num)
            {
                return(true);
            }
            return(false);
        }
Beispiel #25
0
 public virtual void Update(EkkoCore core)
 {
     var check = core._menu.ComboMenu["TeamfiveCheckC"].Cast<Slider>().CurrentValue;
     var target = core.targetSelected.getTarget(check);
     if (target == null)
     {
         this.modeActive = mode.Normal;
         return;
     }
     if (core.Player.Distance(target)
         < core.Player.Distance(Prediction.Position.PredictUnitPosition(target, 1000)))
     {
         this.modeActive=mode.Chase;
     }
     else
     {
         this.modeActive = mode.Normal;
     }
     if (this.getNumTargetsRange((int)core.spells.R.Range, 3))
     {
         this.modeActive = mode.TeamFive;
     }
 }
Beispiel #26
0
        public virtual void Update(EkkoCore core)
        {
            var check  = core._menu.ComboMenu["TeamfiveCheckC"].Cast <Slider>().CurrentValue;
            var target = core.targetSelected.getTarget(check);

            if (target == null)
            {
                this.modeActive = mode.Normal;
                return;
            }
            if (core.Player.Distance(target)
                < core.Player.Distance(Prediction.Position.PredictUnitPosition(target, 1000)))
            {
                this.modeActive = mode.Chase;
            }
            else
            {
                this.modeActive = mode.Normal;
            }
            if (this.getNumTargetsRange((int)core.spells.R.Range, 3))
            {
                this.modeActive = mode.TeamFive;
            }
        }
Beispiel #27
0
 private void Teamfive(EkkoCore core, AIHeroClient target, bool useQ, bool useE, bool useR,bool useW)
 {
     var damageOverKill =core._menu.ComboMenu["RPC"].Cast<CheckBox>().CurrentValue;
     var rnu =core._menu.ComboMenu["RnC"].Cast<Slider>().CurrentValue;
     var rtc = core._menu.ComboMenu["RTC"].Cast<Slider>().CurrentValue;
     if (useQ && (core.Player.Distance(target) > core.spells.E.Range || core.Player.Distance(target) <= 100 && (core.spells.E.IsReady()) && useE))
     {
         var predQ = core.spells.Q.GetPrediction(target);
         if (predQ.HitChance >= HitChance.High)
         {
             core.spells.Q.Cast(predQ.CastPosition);
         }
     }
     if (useE && core.Player.Distance(target) > core.spells.E.Range * 2)
     {
         this.CastE(target, core, useQ);
     }
     if (useW && core.spells.W.IsInRange(target) && (target.HasBuffOfType(BuffType.Slow) || target.HasBuffOfType(BuffType.Stun)))
     {
         core.spells.W.Cast(target.Position);
     }
     if (useR && damageOverKill)
     {
         if (this.getNumTargetsRange(375, rnu) && (rtc >= core.Player.Health || this.TheyaReDead(375,1,core)))
         {
             core.spells.R.Cast();
         }
     }
 }
Beispiel #28
0
        internal void OnGapCloser(EloBuddy.AIHeroClient sender, EloBuddy.SDK.Events.Gapcloser.GapcloserEventArgs args, EkkoCore core)
        {
            if (sender == null || sender.IsAlly)
            {
                return;
            }
            var Gapcloser = core._menu.MiscMenu["MG"].Cast <CheckBox>().CurrentValue;

            if (Gapcloser != false)
            {
                if (sender.IsAttackingPlayer)
                {
                    core.spells.W.Cast(core.Player.Position);
                    this.CastEOut(sender, core);
                    var predQ = core.spells.Q.GetPrediction(sender);
                    if (predQ.HitChance >= HitChance.High)
                    {
                        core.spells.Q.Cast(predQ.CastPosition);
                    }
                }
            }
        }
Beispiel #29
0
        public override void Update(EkkoCore core)
        {
            var useQ = core._menu.ComboMenu["QC"].Cast<CheckBox>().CurrentValue;
            var useW = core._menu.ComboMenu["WC"].Cast<CheckBox>().CurrentValue;
            var useE = core._menu.ComboMenu["EC"].Cast<CheckBox>().CurrentValue;
            var useR = core._menu.ComboMenu["RC"].Cast<CheckBox>().CurrentValue;
            var useRO = core._menu.ComboMenu["ROC"].Cast<CheckBox>().CurrentValue;
                   var useRlife = core._menu.ComboMenu["ROUC"].Cast<Slider>().CurrentValue;
                   var target = core.targetSelected.getTarget(core.spells.Q.Range);
            base.Update(core);
            if (target == null) return;
            switch (this.modeActive)
            {
                case mode.Normal:
                    this.NormalMode(core,target,useQ,useE,useW);
                    break;
                    case mode.Chase:
                    this.ChaseMode(core, target, useQ, useE, useW);
                    break;
                case mode.Flee:
                    this.FleeMode(core, target, useQ, useE, useW);
                    break;
                case mode.TeamFive:
                    this.Teamfive(core, target, useQ, useE, useR, useW);
                    break;

                default:
                 break;
            }
            if (useR && core.spells.R.IsReady() && TargetHitWithR(core,target))
            {
                if (core.spells.RDam(target) + core.spells.EDam(target) + (useQ ? core.spells.TotalQDam(target) : 0) + core.spells.PassiveDam(target) >= target.Health)
                {
                    core.spells.R.Cast();
                }
            }
            if (core.Player.Distance(target) <= core.spells.E.Range * 2)
            {
                if (core.spells.EDam(target) + (useQ ? core.spells.TotalQDam(target) : 0) + core.spells.PassiveDam(target) >= target.Health)
                {
                    this.CastE(target, core,useQ);
                }
                if (core.Player.Distance(target) <= 250 && core.spells.TotalQDam(target) + core.spells.PassiveDam(target) >= target.Health)
                {
                    var predQ = core.spells.Q.GetPrediction(target);
                    if (predQ.HitChance >= HitChance.High)
                    {
                        core.spells.Q.Cast(predQ.CastPosition);
                    }
                }
            }
            //killsteal checks

            if (useE && core.spells.E.IsReady() && core.Player.Distance(target) <= core.spells.E.Range * 2 && core.spells.EDam(target) >= target.Health)
            {
                CastE(target, core,useQ);
            }
            else if (useQ && core.spells.Q.IsReady() && core.spells.Q.IsInRange(target) && core.spells.TotalQDam(target) >= target.Health)
            {
                var predQ = core.spells.Q.GetPrediction(target);
                if (predQ.HitChance >= HitChance.High)
                {
                    core.spells.Q.Cast(predQ.CastPosition);
                }
            }

            else if (useRO&&core.spells.R.IsReady() && !(base.modeActive == mode.TeamFive && core._menu.ComboMenu["RPC"].Cast<CheckBox>().CurrentValue) &&  TargetHitWithR(core)>=1)
            {
                core.spells.R.Cast();
            }
            if (core.Player.HealthPercent <= useRlife)
            {
                core.spells.R.Cast();
            }
        }
Beispiel #30
0
 private void ChaseMode(EkkoCore core, AIHeroClient target, bool useQ, bool useE, bool useW)
 {
     if (core.spells.Q.IsInRange(target))
         if (useE && core.Player.Distance(target) > core.spells.E.Range * 2)
         {
             this.CastE(target, core, useQ);
         }
     if (useQ && core.spells.Q.IsInRange(target))
     {
         var predQ = core.spells.Q.GetPrediction(target);
         if (predQ.HitChance >= HitChance.High)
         {
             core.spells.Q.Cast(predQ.CastPosition);
         }
     }
     if (useW && core.spells.W.IsInRange(Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping).To3D()))
     {
         var pos = Prediction.Position.PredictUnitPosition(target, core.spells.W.CastDelay * 1000 + Game.Ping);
         core.spells.Q.Cast(pos.To3D());
     }
 }
Beispiel #31
0
 static int TargetHitWithR(EkkoCore core)
 {
     return(HeroManager.Enemies.Where(x => x.IsValidTarget() && core.spells.RDam(x) >= x.Health).Count(x => core.spells.Ghost.Distance(Prediction.Position.PredictCircularMissile(x, core.spells.R.Range, core.spells.R1.Radius, core.spells.R.CastDelay, core.spells.R1.Speed).UnitPosition) < 400));
 }
Beispiel #32
0
 static bool TargetHitWithR(EkkoCore core,AIHeroClient hero)
 {
     if( core.spells.Ghost.Distance(Prediction.Position.PredictCircularMissile(hero, core.spells.R.Range, core.spells.R1.Radius, core.spells.R.CastDelay, core.spells.R1.Speed).UnitPosition) < 400)
     {
             return true;
     }
     return false;
 }
Beispiel #33
0
        public override void Update(EkkoCore core)
        {
            var useQ     = core._menu.ComboMenu["QC"].Cast <CheckBox>().CurrentValue;
            var useW     = core._menu.ComboMenu["WC"].Cast <CheckBox>().CurrentValue;
            var useE     = core._menu.ComboMenu["EC"].Cast <CheckBox>().CurrentValue;
            var useR     = core._menu.ComboMenu["RC"].Cast <CheckBox>().CurrentValue;
            var useRO    = core._menu.ComboMenu["ROC"].Cast <CheckBox>().CurrentValue;
            var useRlife = core._menu.ComboMenu["ROUC"].Cast <Slider>().CurrentValue;
            var target   = core.targetSelected.getTarget(core.spells.Q.Range);

            base.Update(core);
            if (target == null)
            {
                return;
            }
            switch (this.modeActive)
            {
            case mode.Normal:
                this.NormalMode(core, target, useQ, useE, useW);
                break;

            case mode.Chase:
                this.ChaseMode(core, target, useQ, useE, useW);
                break;

            case mode.Flee:
                this.FleeMode(core, target, useQ, useE, useW);
                break;

            case mode.TeamFive:
                this.Teamfive(core, target, useQ, useE, useR, useW);
                break;

            default:
                break;
            }
            if (useR && core.spells.R.IsReady() && TargetHitWithR(core, target))
            {
                if (core.spells.RDam(target) + core.spells.EDam(target) + (useQ ? core.spells.TotalQDam(target) : 0) + core.spells.PassiveDam(target) >= target.Health)
                {
                    core.spells.R.Cast();
                }
            }
            if (core.Player.Distance(target) <= core.spells.E.Range * 2)
            {
                if (core.spells.EDam(target) + (useQ ? core.spells.TotalQDam(target) : 0) + core.spells.PassiveDam(target) >= target.Health)
                {
                    this.CastE(target, core, useQ);
                }
                if (core.Player.Distance(target) <= 250 && core.spells.TotalQDam(target) + core.spells.PassiveDam(target) >= target.Health)
                {
                    var predQ = core.spells.Q.GetPrediction(target);
                    if (predQ.HitChance >= HitChance.High)
                    {
                        core.spells.Q.Cast(predQ.CastPosition);
                    }
                }
            }
            //killsteal checks

            if (useE && core.spells.E.IsReady() && core.Player.Distance(target) <= core.spells.E.Range * 2 && core.spells.EDam(target) >= target.Health)
            {
                CastE(target, core, useQ);
            }
            else if (useQ && core.spells.Q.IsReady() && core.spells.Q.IsInRange(target) && core.spells.TotalQDam(target) >= target.Health)
            {
                var predQ = core.spells.Q.GetPrediction(target);
                if (predQ.HitChance >= HitChance.High)
                {
                    core.spells.Q.Cast(predQ.CastPosition);
                }
            }

            else if (useRO && core.spells.R.IsReady() && !(base.modeActive == mode.TeamFive && core._menu.ComboMenu["RPC"].Cast <CheckBox>().CurrentValue) && TargetHitWithR(core) >= 1)
            {
                core.spells.R.Cast();
            }
            if (core.Player.HealthPercent <= useRlife)
            {
                core.spells.R.Cast();
            }
        }
Beispiel #34
0
 static int TargetHitWithR(EkkoCore core)
 {
     return HeroManager.Enemies.Where(x => x.IsValidTarget() && core.spells.RDam(x) >= x.Health).Count(x => core.spells.Ghost.Distance(Prediction.Position.PredictCircularMissile(x, core.spells.R.Range, core.spells.R1.Radius, core.spells.R.CastDelay, core.spells.R1.Speed).UnitPosition) < 400);
 }