void KillSteal() { //Avoid interrupting our assasination attempt if (jumpManager.MidAssasination) { return; } Obj_AI_Hero target = HeroList .Where(x => x.IsValidTarget() && x.Distance(Khazix.Position) < 1375f && !x.IsZombie) .MinOrDefault(x => x.Health); if (target != null) { if (Config.GetBool("UseIgnite") && Ignite.IsReady() && target.IsInRange(Ignite.Range)) { double igniteDmg = Khazix.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite); if (igniteDmg > target.Health) { Ignite.Cast(target); return; } } if (Config.GetBool("UseQKs") && Q.IsReady() && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= Q.Range) { double QDmg = GetQDamage(target); if (!Jumping && target.Health <= QDmg) { Q.Cast(target); return; } } if (Config.GetBool("UseEKs") && E.IsReady() && !Jumping && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= E.Range && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) > Q.Range) { double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if (!Jumping && target.Health < EDmg) { Utility.DelayAction.Add( Game.Ping + Config.GetSlider("EDelay"), delegate { var jump = GetJumpPosition(target); if (jump.shouldJump) { if (target.IsValid && !target.IsDead) { E.Cast(jump.position); } } }); } } if (W.IsReady() && !EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && Config.GetBool("UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { var pred = W.GetPrediction(target); if (pred.Hitchance >= HitChance.Medium) { W.Cast(pred.CastPosition); return; } } } if (W.IsReady() && EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && Config.GetBool("UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); PredictionOutput pred = WE.GetPrediction(target); if (target.Health <= WDmg && pred.Hitchance >= HitChance.Medium) { CastWE(target, pred.UnitPosition.To2D(), 0, Config.GetHitChance("WHitchance")); return; } if (pred.Hitchance >= HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects; var x = PCollision .FirstOrDefault(PredCollisionChar => Vector3.Distance(PredCollisionChar.ServerPosition, target.ServerPosition) <= 30); if (x != null) { W.Cast(x.Position); return; } } } // Mixed's EQ KS if (Q.IsReady() && E.IsReady() && target.IsValidEnemy(0.90f * (E.Range + Q.Range)) && Config.GetBool("UseEQKs")) { double QDmg = GetQDamage(target); double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if ((target.Health <= QDmg + EDmg)) { Utility.DelayAction.Add(Config.GetSlider("EDelay"), delegate { var jump = GetJumpPosition(target); if (jump.shouldJump) { E.Cast(jump.position); } }); } } // MIXED EW KS if (W.IsReady() && E.IsReady() && !EvolvedW && target.IsValidEnemy(W.Range + E.Range) && Config.GetBool("UseEWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { Utility.DelayAction.Add(Config.GetSlider("EDelay"), delegate { var jump = GetJumpPosition(target); if (jump.shouldJump) { E.Cast(jump.position); } }); } } if (Tiamat.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Tiamat.Range && Config.GetBool("UseTiamatKs")) { double Tiamatdmg = Khazix.GetItemDamage(target, Damage.DamageItems.Tiamat); if (target.Health <= Tiamatdmg) { Tiamat.Cast(); return; } } if (Config.GetBool("UseSmiteKs")) { if (SmiteManager.CanCast(target)) { var dmg = SmiteManager.GetSmiteDamage(target); if (dmg >= target.Health) { SmiteManager.Cast(target); } } } if (Hydra.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Hydra.Range && Config.GetBool("UseTiamatKs")) { double hydradmg = Khazix.GetItemDamage(target, Damage.DamageItems.Hydra); if (target.Health <= hydradmg) { Hydra.Cast(); } } } }
void KillSteal() { Obj_AI_Hero target = HeroList .Where(x => x.IsValidTarget() && x.Distance(Khazix.Position) < 1375f && !x.IsZombie) .MinOrDefault(x => x.Health); if (target != null && target.IsInRange(Ignite.Range)) { if (Config.GetBool("UseIgnite") && IgniteSlot != SpellSlot.Unknown && Khazix.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready) { double igniteDmg = Khazix.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite); if (igniteDmg > target.Health) { Khazix.Spellbook.CastSpell(IgniteSlot, target); return; } } if (Config.GetBool("Safety.autoescape") && !IsHealthy) { var ally = HeroList.FirstOrDefault(h => h.HealthPercent > 40 && h.CountEnemiesInRange(400) == 0 && !h.ServerPosition.PointUnderEnemyTurret()); if (ally != null && ally.IsValid) { E.Cast(ally.ServerPosition); return; } var underTurret = EnemyTurrets.Any(x => x.Distance(Khazix.ServerPosition) <= 900f && !x.IsDead && x.IsValid); if (underTurret || Khazix.CountEnemiesInRange(500) >= 1) { var bestposition = Khazix.ServerPosition.Extend(NexusPosition, E.Range); E.Cast(bestposition); return; } } if (Config.GetBool("UseQKs") && Q.IsReady() && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= Q.Range) { double QDmg = GetQDamage(target); if (!Jumping && target.Health <= QDmg) { Q.Cast(target); return; } } if (Config.GetBool("UseEKs") && E.IsReady() && !Jumping && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= E.Range && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) > Q.Range) { double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if (!Jumping && target.Health < EDmg) { Utility.DelayAction.Add( Game.Ping + Config.GetSlider("EDelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead) { if (Config.GetBool("Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } if (W.IsReady() && !EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && Config.GetBool("UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { var pred = W.GetPrediction(target); if (pred.Hitchance >= HitChance.Medium) { W.Cast(pred.CastPosition); return; } } } if (W.IsReady() && EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && Config.GetBool("UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); PredictionOutput pred = WE.GetPrediction(target); if (target.Health <= WDmg && pred.Hitchance >= HitChance.Medium) { CastWE(target, pred.UnitPosition.To2D(), 0, Config.GetHitChance("WHitchance")); return; } if (pred.Hitchance >= HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects; var x = PCollision .FirstOrDefault(PredCollisionChar => Vector3.Distance(PredCollisionChar.ServerPosition, target.ServerPosition) <= 30); if (x != null) { W.Cast(x.Position); return; } } } // Mixed's EQ KS if (Q.IsReady() && E.IsReady() && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= E.Range + Q.Range && Config.GetBool("UseEQKs")) { double QDmg = GetQDamage(target); double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if ((target.Health <= QDmg + EDmg)) { Utility.DelayAction.Add(Config.GetSlider("EDelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValidTarget() && !target.IsZombie && ShouldJump(pred.CastPosition)) { if (Config.GetBool("Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } // MIXED EW KS if (W.IsReady() && E.IsReady() && !EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range + E.Range && Config.GetBool("UseEWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { Utility.DelayAction.Add(Config.GetSlider("EDelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead && ShouldJump(pred.CastPosition)) { if (Config.GetBool("Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } if (Tiamat.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Tiamat.Range && Config.GetBool("UseTiamatKs")) { double Tiamatdmg = Khazix.GetItemDamage(target, Damage.DamageItems.Tiamat); if (target.Health <= Tiamatdmg) { Tiamat.Cast(); return; } } if (Hydra.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Hydra.Range && Config.GetBool("UseTiamatKs")) { double hydradmg = Khazix.GetItemDamage(target, Damage.DamageItems.Hydra); if (target.Health <= hydradmg) { Hydra.Cast(); } } } }