示例#1
0
        private void LaneJungClear()
        {
            foreach (var Obj in MinionManager.GetMinions(700, MinionTypes.All, MinionTeam.NotAlly))
            {
                if (ItemBool("Clear", "Q") && Q.IsReady())
                {
                    switch (ItemList("Clear", "QMode"))
                    {
                    case 0:
                        Q.Cast(PacketCast());
                        break;

                    case 1:
                        if (CanKill(Obj, Q) && Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange(Player, Obj) + 20)
                        {
                            Orbwalk.SetAttack(false);
                            Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
                            Orbwalk.SetAttack(true);
                            break;
                        }
                        break;
                    }
                }
                if (ItemBool("Clear", "E") && E.CanCast(Obj) && !Player.HasBuff("GarenE") && !Player.HasBuff("GarenQBuff"))
                {
                    E.Cast(PacketCast());
                }
            }
        }
示例#2
0
        private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe || Orbwalk.CurrentMode != Orbwalk.Mode.Combo)
            {
                return;
            }
            var Slot = Player.GetSpellSlot(args.SData.Name);

            if (Slot == SpellSlot.Q || Slot == SpellSlot.W)
            {
                AACount = 0;
                if (Slot == SpellSlot.Q)
                {
                    Orbwalk.ResetAutoAttack();
                }
                if (Tiamat.IsReady() && Player.CountEnemysInRange((int)Tiamat.Range) >= 1)
                {
                    Tiamat.Cast();
                }
                if (Hydra.IsReady() && (Player.CountEnemysInRange((int)Hydra.Range) >= 2 || (Player.GetAutoAttackDamage(targetObj, true) < targetObj.Health && Player.CountEnemysInRange((int)Hydra.Range) == 1)))
                {
                    Hydra.Cast();
                }
            }
        }
示例#3
0
 private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (Player.IsDead)
     {
         return;
     }
     if (sender.IsMe)
     {
         if (Orbwalk.IsAutoAttack(args.SData.Name) && IsValid((Obj_AI_Base)args.Target) && W.IsReady())
         {
             var Obj = (Obj_AI_Base)args.Target;
             if ((Orbwalk.CurrentMode == Orbwalk.Mode.LaneClear || Orbwalk.CurrentMode == Orbwalk.Mode.LaneFreeze) && ItemBool("Clear", "W") && args.Target is Obj_AI_Minion && (CanKill(Obj, W, Player.Mana >= 50 ? 1 : 0) || Obj.MaxHealth >= 1200))
             {
                 W.Cast(PacketCast());
             }
             else if ((Orbwalk.CurrentMode == Orbwalk.Mode.Combo || Orbwalk.CurrentMode == Orbwalk.Mode.Harass) && ItemBool(Orbwalk.CurrentMode.ToString(), "W") && args.Target is Obj_AI_Hero)
             {
                 W.Cast(PacketCast());
             }
         }
         if (args.SData.Name == "RenektonCleave")
         {
             AACount = 0;
         }
         if (args.SData.Name == "RenektonPreExecute")
         {
             AACount = 0;
         }
         if (args.SData.Name == "RenektonSliceAndDice")
         {
             ECasted = true;
             Utility.DelayAction.Add((Orbwalk.CurrentMode == Orbwalk.Mode.LaneClear || Orbwalk.CurrentMode == Orbwalk.Mode.LaneFreeze) ? 3000 : 1800, () => ECasted = false);
             AACount = 0;
         }
         if (args.SData.Name == "renektondice")
         {
             AACount = 0;
         }
     }
     else if (sender.IsEnemy && ItemBool("Ultimate", "RSurvive") && R.IsReady())
     {
         if (args.Target.IsMe && ((Orbwalk.IsAutoAttack(args.SData.Name) && (Player.Health - sender.GetAutoAttackDamage(Player, true)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder")) || (args.SData.Name == "summonerdot" && (Player.Health - (sender as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder"))))
         {
             R.Cast(PacketCast());
         }
         else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange && Player.Position.Distance(args.End) <= Orbwalk.GetAutoAttackRange())) && Damage.Spells.ContainsKey((sender as Obj_AI_Hero).ChampionName))
         {
             for (var i = 3; i > -1; i--)
             {
                 if (Damage.Spells[(sender as Obj_AI_Hero).ChampionName].FirstOrDefault(a => a.Slot == (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name) && a.Stage == i) != null)
                 {
                     if ((Player.Health - (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name), i)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder"))
                     {
                         R.Cast(PacketCast());
                     }
                 }
             }
         }
     }
 }
示例#4
0
        private void LaneJungClear()
        {
            var minionObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, E.Range) && (i is Obj_AI_Turret || i is Obj_AI_Minion)).OrderBy(i => i.MaxHealth).Reverse();

            foreach (var Obj in minionObj)
            {
                if (SmiteReady() && Obj.Team == GameObjectTeam.Neutral)
                {
                    if ((ItemBool("SmiteMob", "Baron") && Obj.Name.StartsWith("SRU_Baron")) || (ItemBool("SmiteMob", "Dragon") && Obj.Name.StartsWith("SRU_Dragon")) || (!Obj.Name.Contains("Mini") && (
                                                                                                                                                                             (ItemBool("SmiteMob", "Red") && Obj.Name.StartsWith("SRU_Red")) || (ItemBool("SmiteMob", "Blue") && Obj.Name.StartsWith("SRU_Blue")) ||
                                                                                                                                                                             (ItemBool("SmiteMob", "Krug") && Obj.Name.StartsWith("SRU_Krug")) || (ItemBool("SmiteMob", "Gromp") && Obj.Name.StartsWith("SRU_Gromp")) ||
                                                                                                                                                                             (ItemBool("SmiteMob", "Raptor") && Obj.Name.StartsWith("SRU_Razorbeak")) || (ItemBool("SmiteMob", "Wolf") && Obj.Name.StartsWith("SRU_Murkwolf")))))
                    {
                        CastSmite(Obj);
                    }
                }
                if (ItemBool("Clear", "E") && E.IsReady() && minionObj.Count(i => i is Obj_AI_Minion) > 0)
                {
                    var posEFarm = E.GetCircularFarmLocation(minionObj.Where(i => i is Obj_AI_Minion).ToList());
                    E.Cast(posEFarm.MinionsHit >= 2 ? posEFarm.Position : minionObj.First(i => i is Obj_AI_Minion).Position.To2D(), PacketCast());
                }
                if (ItemBool("Clear", "Q") && Q.IsReady() && Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange() + 50)
                {
                    var DmgAA = Player.GetAutoAttackDamage(Obj) * Math.Floor(Q.Instance.Cooldown / 1 / Player.AttackDelay);
                    if (Q.GetHealthPrediction(Obj) + 5 <= GetBonusDmg(targetObj) || Q.GetHealthPrediction(Obj) + 5 > DmgAA + GetBonusDmg(Obj))
                    {
                        Orbwalk.SetAttack(false);
                        Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
                        Orbwalk.SetAttack(true);
                        break;
                    }
                }
            }
        }
示例#5
0
        private void LaneJungClear()
        {
            var minionObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, E.Range) && i is Obj_AI_Minion).OrderBy(i => i.Health);

            foreach (var Obj in minionObj)
            {
                if (ItemBool("Clear", "Q") && Q.IsReady() && !Player.IsDashing() && (AACount >= 2 || (E.IsReady() && E.Instance.Name != "RenektonSliceAndDice")) && (minionObj.Count(i => IsValid(i, Q.Range)) >= 2 || (Obj.MaxHealth >= 1200 && Q.IsInRange(Obj.Position))))
                {
                    Q.Cast(PacketCast());
                }
                if (ItemBool("Clear", "W") && (W.IsReady() || Player.HasBuff("RenektonExecuteReady")) && !Player.IsDashing() && AACount >= 1 && Orbwalk.InAutoAttackRange(Obj) && (CanKill(Obj, W, Player.Mana >= 50 ? 1 : 0) || Obj.MaxHealth >= 1200))
                {
                    Orbwalk.SetAttack(false);
                    Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
                    Orbwalk.SetAttack(true);
                    break;
                }
                if (ItemBool("Clear", "E") && E.IsReady() && !Player.IsDashing())
                {
                    var posEFarm = E.GetLineFarmLocation(minionObj.ToList());
                    if (E.Instance.Name == "RenektonSliceAndDice")
                    {
                        E.Cast(posEFarm.MinionsHit >= 2 ? posEFarm.Position : Player.Position.To2D().Extend(Obj.Position.To2D(), Obj.Distance3D(Player) + 200), PacketCast());
                    }
                    else if (!ECasted || AACount >= 2)
                    {
                        E.Cast(posEFarm.MinionsHit >= 2 ? posEFarm.Position : Player.Position.To2D().Extend(Obj.Position.To2D(), Obj.Distance3D(Player) + 200), PacketCast());
                    }
                }
                if (ItemBool("Clear", "Item") && AACount >= 1)
                {
                    UseItem(Obj, true);
                }
            }
        }
示例#6
0
 private void NormalCombo(string Mode)
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool(Mode, "W") && W.IsReady() && W.IsInRange(targetObj.Position) && (Mode == "Combo" || (Mode == "Harass" && Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 100)))
     {
         W.CastOnUnit(targetObj, PacketCast());
     }
     if (ItemBool(Mode, "E") && E.IsReady() && E.IsInRange(targetObj.Position) && (Mode == "Combo" || (Mode == "Harass" && Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 100)))
     {
         E.Cast(targetObj.Position, PacketCast());
     }
     if (ItemBool(Mode, "Q") && Q.IsReady() && Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 50)
     {
         var DmgAA = Player.GetAutoAttackDamage(targetObj) * Math.Floor(Q.Instance.Cooldown / 1 / Player.AttackDelay);
         if (Q.GetHealthPrediction(targetObj) + 5 <= GetBonusDmg(targetObj) || Q.GetHealthPrediction(targetObj) + 5 > DmgAA + GetBonusDmg(targetObj))
         {
             Orbwalk.SetAttack(false);
             Player.IssueOrder(GameObjectOrder.AttackUnit, targetObj);
             Orbwalk.SetAttack(true);
         }
     }
     if (Mode == "Combo" && ItemBool(Mode, "Item") && Items.CanUseItem(Randuin) && Player.CountEnemysInRange(450) >= 1)
     {
         Items.UseItem(Randuin);
     }
     if (Mode == "Combo" && ItemBool(Mode, "Ignite") && IgniteReady())
     {
         CastIgnite(targetObj);
     }
 }
示例#7
0
 private void NormalCombo(string Mode)
 {
     if (!targetObj.IsValidTarget())
     {
         return;
     }
     if (ItemBool(Mode, "Q") && Q.CanCast(targetObj))
     {
         Q.CastOnUnit(targetObj, PacketCast());
     }
     if (ItemBool(Mode, "W") && W.IsReady() && ((Mode == "Harass" && Orbwalk.InAutoAttackRange(targetObj)) || (Mode == "Combo" && ((ItemList(Mode, "WMode") == 0 && Orbwalk.InAutoAttackRange(targetObj)) || (ItemList(Mode, "WMode") == 1 && ObjectManager.Get <Obj_AI_Hero>().Count(i => i.IsValidTarget(W.Range, false) && i.IsAlly && !i.IsMe) >= ItemSlider(Mode, "WAbove"))))))
     {
         W.Cast(PacketCast());
     }
     if (Mode == "Combo" && ItemBool(Mode, "Item"))
     {
         UseItem(targetObj);
     }
     if (Mode == "Combo" && ItemBool(Mode, "Smite") && SmiteReady() && Player.GetSpellSlot("s5_summonersmiteduel") != SpellSlot.Unknown)
     {
         CastSmite(targetObj, false);
     }
     if (Mode == "Combo" && ItemBool(Mode, "R") && ItemBool("Ultimate", targetObj.ChampionName) && R.CanCast(targetObj))
     {
         R.CastOnUnit(targetObj, PacketCast());
     }
     if (Mode == "Combo" && ItemBool(Mode, "Ignite") && IgniteReady())
     {
         CastIgnite(targetObj);
     }
 }
示例#8
0
        private void LaneJungClear()
        {
            foreach (var Obj in ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, 800)).OrderBy(i => i.Health))
            {
                if (ItemBool("Clear", "Q") && Q.IsReady())
                {
                    switch (ItemList("Clear", "QMode"))
                    {
                    case 0:
                        Q.Cast(PacketCast());
                        break;

                    case 1:
                        if (CanKill(Obj, Q) && Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange() + 50)
                        {
                            Orbwalk.SetAttack(false);
                            Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
                            Orbwalk.SetAttack(true);
                            break;
                        }
                        else if (Player.Distance(Obj) > 500)
                        {
                            Q.Cast(PacketCast());
                        }
                        break;
                    }
                }
                if (ItemBool("Clear", "E") && E.IsReady() && !Player.HasBuff("GarenE") && !Player.HasBuff("GarenQBuff") && E.IsInRange(Obj.Position))
                {
                    E.Cast(PacketCast());
                }
            }
        }
示例#9
0
 private void UseItem(Obj_AI_Base Target, bool IsFarm = false)
 {
     if (Bilgewater.IsReady() && !IsFarm)
     {
         Bilgewater.Cast(Target);
     }
     if (BladeRuined.IsReady() && !IsFarm)
     {
         BladeRuined.Cast(Target);
     }
     if (Tiamat.IsReady() && IsFarm ? Player.Distance3D(Target) <= Tiamat.Range : Player.CountEnemysInRange((int)Tiamat.Range) >= 1)
     {
         Tiamat.Cast();
     }
     if (Hydra.IsReady() && IsFarm ? Player.Distance3D(Target) <= Hydra.Range : (Player.CountEnemysInRange((int)Hydra.Range) >= 2 || (Player.GetAutoAttackDamage(Target, true) < Target.Health && Player.CountEnemysInRange((int)Hydra.Range) == 1)))
     {
         Hydra.Cast();
     }
     if (RanduinOmen.IsReady() && Player.CountEnemysInRange((int)RanduinOmen.Range) >= 1 && !IsFarm)
     {
         RanduinOmen.Cast();
     }
     if (Youmuu.IsReady() && Player.CountEnemysInRange((int)Orbwalk.GetAutoAttackRange()) >= 1 && !IsFarm)
     {
         Youmuu.Cast();
     }
 }
示例#10
0
        private void LaneJungClear()
        {
            var towerObj = ObjectManager.Get <Obj_AI_Turret>().FirstOrDefault(i => i.IsValidTarget(Orbwalk.GetAutoAttackRange(Player, i) + 20) && CanKill(i, Q, GetBonusDmg(i)));

            if (towerObj != null && Q.IsReady())
            {
                Orbwalk.SetAttack(false);
                Player.IssueOrder(GameObjectOrder.AttackUnit, towerObj);
                Orbwalk.SetAttack(true);
            }
            var minionObj = MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth);

            foreach (var Obj in minionObj)
            {
                if (Obj.Team == GameObjectTeam.Neutral && CanSmiteMob(Obj.Name))
                {
                    CastSmite(Obj);
                }
                if (ItemBool("Clear", "Q") && Q.IsReady() && Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange(Player, Obj) + 20)
                {
                    var DmgAA = Player.GetAutoAttackDamage(Obj) * Math.Floor(Q.Instance.Cooldown / 1 / Player.AttackDelay);
                    if (CanKill(targetObj, Q, GetBonusDmg(targetObj)) || !CanKill(Obj, Q, GetBonusDmg(Obj) + DmgAA))
                    {
                        Orbwalk.SetAttack(false);
                        Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
                        Orbwalk.SetAttack(true);
                        break;
                    }
                }
                if (ItemBool("Clear", "E") && E.IsReady() && (minionObj.Count >= 2 || Obj.MaxHealth >= 1200))
                {
                    E.Cast(GetClearPos(minionObj, E), PacketCast());
                }
            }
        }
示例#11
0
 private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (Player.IsDead)
     {
         return;
     }
     if (sender.IsMe)
     {
         if (args.SData.Name == "JarvanIVCataclysm")
         {
             RCasted = true;
             Utility.DelayAction.Add(3500, () => RCasted = false);
         }
     }
     else if (sender.IsEnemy && ItemBool("Misc", "WSurvive") && W.IsReady())
     {
         if (args.Target.IsMe && ((Orbwalk.IsAutoAttack(args.SData.Name) && Player.Health <= sender.GetAutoAttackDamage(Player, true)) || (args.SData.Name == "summonerdot" && Player.Health <= (sender as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite))))
         {
             W.Cast(PacketCast());
         }
         else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange && Player.Position.Distance(args.End) <= Orbwalk.GetAutoAttackRange())) && Damage.Spells.ContainsKey((sender as Obj_AI_Hero).ChampionName))
         {
             for (var i = 3; i > -1; i--)
             {
                 if (Damage.Spells[(sender as Obj_AI_Hero).ChampionName].FirstOrDefault(a => a.Slot == (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name) && a.Stage == i) != null)
                 {
                     if (Player.Health <= (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name), i))
                     {
                         W.Cast(PacketCast());
                     }
                 }
             }
         }
     }
 }
示例#12
0
 private void LaneJungClear()
 {
     foreach (var Obj in MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth))
     {
         if (Obj.Team == GameObjectTeam.Neutral && CanSmiteMob(Obj.Name))
         {
             CastSmite(Obj);
         }
         if (ItemBool("Clear", "E") && E.IsReady() && (Player.Distance3D(Obj) > Orbwalk.GetAutoAttackRange(Player, Obj) + 30 || CanKill(Obj, E) || Obj.MaxHealth >= 1200))
         {
             E.CastOnUnit(Obj, PacketCast());
         }
         if (ItemBool("Clear", "W") && W.IsReady() && Orbwalk.InAutoAttackRange(Obj))
         {
             W.Cast(PacketCast());
         }
         if (ItemBool("Clear", "Q"))
         {
             if (Q.IsReady() && Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange(Player, Obj) + 20)
             {
                 Q.Cast(PacketCast());
             }
             else if ((Player.HasBuff("XenZhaoComboTarget") || Player.HasBuff("XenZhaoAutoCombo") || Player.HasBuff("XenZhaoAutoComboFinish")) && Orbwalk.InAutoAttackRange(Obj))
             {
                 Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
             }
         }
         if (ItemBool("Clear", "Item"))
         {
             UseItem(Obj, true);
         }
     }
 }
示例#13
0
 private void NormalCombo(string Mode)
 {
     if (targetObj == null)
     {
         return;
     }
     if (Mode == "Combo" && ItemBool(Mode, "R") && ItemBool("Killable", targetObj.ChampionName) && R.IsReady() && R.IsInRange(targetObj.Position))
     {
         if (CanKill(targetObj, R))
         {
             R.Cast(PacketCast());
         }
         else if (R.GetHealthPrediction(targetObj) - R.GetDamage(targetObj) + 5 <= E.GetDamage(targetObj) + Player.GetAutoAttackDamage(targetObj, true) + ((ItemBool(Mode, "Q") && Q.IsReady()) ? Q.GetDamage(targetObj) * 3 : 0) && ItemBool(Mode, "E") && E.IsReady() && Player.Mana >= R.Instance.ManaCost + E.Instance.ManaCost + ((ItemBool(Mode, "Q") && Q.IsReady()) ? Q.Instance.ManaCost : 0))
         {
             R.Cast(PacketCast());
         }
     }
     if (ItemBool(Mode, "E") && E.IsReady() && E.IsInRange(targetObj.Position) && (CanKill(targetObj, E) || Player.Distance3D(targetObj) > Orbwalk.GetAutoAttackRange() + 50 || (Mode == "Combo" && Player.HealthPercentage() < targetObj.HealthPercentage())))
     {
         E.CastOnUnit(targetObj, PacketCast());
     }
     if (ItemBool(Mode, "W") && W.IsReady() && Orbwalk.InAutoAttackRange(targetObj))
     {
         W.Cast(PacketCast());
     }
     if (Mode == "Combo" && ItemBool(Mode, "Item"))
     {
         UseItem(targetObj);
     }
     if (Mode == "Combo" && ItemBool(Mode, "Ignite") && IgniteReady())
     {
         CastIgnite(targetObj);
     }
 }
示例#14
0
 private void NormalCombo(string Mode)
 {
     if (!targetObj.IsValidTarget())
     {
         return;
     }
     if (Mode == "Combo" && ItemBool(Mode, "Q") && Q.IsReady() && Player.HealthPercentage() <= ItemSlider(Mode, "QUnder") && Player.CountEnemysInRange(800) >= 1)
     {
         Q.Cast(PacketCast());
     }
     if (ItemBool(Mode, "W") && W.CanCast(targetObj))
     {
         if (targetObj.IsFacing(Player) && Orbwalk.InAutoAttackRange(targetObj) && (Player.GetAutoAttackDamage(targetObj, true) < targetObj.GetAutoAttackDamage(Player, true) || Player.Health < targetObj.Health))
         {
             W.Cast(PacketCast());
         }
         else if (!targetObj.IsFacing(Player) && !Orbwalk.InAutoAttackRange(targetObj))
         {
             W.Cast(PacketCast());
         }
     }
     if (ItemBool(Mode, "E") && E.CanCast(targetObj) && (CanKill(targetObj, E) || (Player.Distance3D(targetObj) > Orbwalk.GetAutoAttackRange(Player, targetObj) + 20 && (Mode == "Combo" || (Mode == "Harass" && Player.HealthPercentage() >= ItemSlider(Mode, "EAbove"))))))
     {
         E.Cast(targetObj.Position.Extend(Player.Position, Player.Distance3D(targetObj) <= E.Range - 100 ? -100 : 0), PacketCast());
     }
     if (Mode == "Combo" && ItemBool(Mode, "Item"))
     {
         UseItem(targetObj);
     }
     if (Mode == "Combo" && ItemBool(Mode, "Ignite") && IgniteReady())
     {
         CastIgnite(targetObj);
     }
 }
示例#15
0
 private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (Player.IsDead)
     {
         return;
     }
     if (sender.IsEnemy && ItemBool("Ultimate", "RSurvive") && R.IsReady())
     {
         if (args.Target.IsMe && ((Orbwalk.IsAutoAttack(args.SData.Name) && (Player.Health - sender.GetAutoAttackDamage(Player, true)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder")) || (args.SData.Name == "summonerdot" && (Player.Health - (sender as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder"))))
         {
             R.Cast(PacketCast());
         }
         else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange && Player.Position.Distance(args.End) <= Orbwalk.GetAutoAttackRange())) && Damage.Spells.ContainsKey((sender as Obj_AI_Hero).ChampionName))
         {
             for (var i = 3; i > -1; i--)
             {
                 if (Damage.Spells[(sender as Obj_AI_Hero).ChampionName].FirstOrDefault(a => a.Slot == (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name) && a.Stage == i) != null)
                 {
                     if ((Player.Health - (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name), i)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder"))
                     {
                         R.Cast(PacketCast());
                     }
                 }
             }
         }
     }
 }
示例#16
0
 private void LaneJungClear()
 {
     foreach (var Obj in ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, E.Range)).OrderBy(i => i.Health))
     {
         if (SmiteReady() && Obj.Team == GameObjectTeam.Neutral)
         {
             if ((ItemBool("SmiteMob", "Baron") && Obj.Name.StartsWith("SRU_Baron")) || (ItemBool("SmiteMob", "Dragon") && Obj.Name.StartsWith("SRU_Dragon")) || (!Obj.Name.Contains("Mini") && (
                                                                                                                                                                      (ItemBool("SmiteMob", "Red") && Obj.Name.StartsWith("SRU_Red")) || (ItemBool("SmiteMob", "Blue") && Obj.Name.StartsWith("SRU_Blue")) ||
                                                                                                                                                                      (ItemBool("SmiteMob", "Krug") && Obj.Name.StartsWith("SRU_Krug")) || (ItemBool("SmiteMob", "Gromp") && Obj.Name.StartsWith("SRU_Gromp")) ||
                                                                                                                                                                      (ItemBool("SmiteMob", "Raptor") && Obj.Name.StartsWith("SRU_Razorbeak")) || (ItemBool("SmiteMob", "Wolf") && Obj.Name.StartsWith("SRU_Murkwolf")))))
             {
                 CastSmite(Obj);
             }
         }
         if (ItemBool("Clear", "E") && E.IsReady() && (Player.Distance3D(Obj) > Orbwalk.GetAutoAttackRange() + 50 || CanKill(Obj, E) || Obj.MaxHealth >= 1200))
         {
             E.CastOnUnit(Obj, PacketCast());
         }
         if (ItemBool("Clear", "W") && W.IsReady() && Orbwalk.InAutoAttackRange(Obj))
         {
             W.Cast(PacketCast());
         }
         if (ItemBool("Clear", "Q") && Q.IsReady() && Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange() + 50)
         {
             Q.Cast(PacketCast());
         }
         if (ItemBool("Clear", "Item"))
         {
             UseItem(Obj, true);
         }
     }
 }
示例#17
0
 private void NormalCombo(string Mode)
 {
     if (!targetObj.IsValidTarget())
     {
         return;
     }
     if (ItemBool(Mode, "Q") && Q.IsReady() && Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange(Player, targetObj) + 20)
     {
         var DmgAA = Player.GetAutoAttackDamage(targetObj) * Math.Floor(Q.Instance.Cooldown / 1 / Player.AttackDelay);
         if (Mode == "Harass" || (Mode == "Combo" && (ItemList(Mode, "QMode") == 0 || (ItemList(Mode, "QMode") == 1 && (CanKill(targetObj, Q, GetBonusDmg(targetObj)) || !CanKill(targetObj, Q, GetBonusDmg(targetObj) + DmgAA))))))
         {
             Orbwalk.SetAttack(false);
             Player.IssueOrder(GameObjectOrder.AttackUnit, targetObj);
             Orbwalk.SetAttack(true);
         }
     }
     if (ItemBool(Mode, "W") && W.CanCast(targetObj) && (Mode == "Combo" || (Mode == "Harass" && Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange(Player, targetObj) + 100)))
     {
         W.CastOnUnit(targetObj, PacketCast());
     }
     if (ItemBool(Mode, "E") && E.CanCast(targetObj) && (Mode == "Combo" || (Mode == "Harass" && Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange(Player, targetObj) + 100)))
     {
         E.Cast(targetObj.Position.Randomize(0, (int)E.Width / 2), PacketCast());
     }
     if (Mode == "Combo" && ItemBool(Mode, "Item") && RanduinOmen.IsReady() && Player.CountEnemysInRange((int)RanduinOmen.Range) >= 1)
     {
         RanduinOmen.Cast();
     }
     if (Mode == "Combo" && ItemBool(Mode, "Ignite") && IgniteReady())
     {
         CastIgnite(targetObj);
     }
 }
示例#18
0
 private void NormalCombo()
 {
     if (!targetObj.IsValidTarget())
     {
         return;
     }
     if (ItemBool("Combo", "Passive") && Player.HasBuff("BlindMonkFlurry") && Orbwalk.InAutoAttackRange(targetObj) && Orbwalk.CanAttack())
     {
         return;
     }
     if (ItemBool("Combo", "Q") && Q.IsReady())
     {
         if (Q.Instance.Name == "BlindMonkQOne" && Q.InRange(targetObj))
         {
             CastSkillShotSmite(Q, targetObj);
         }
         else if (targetObj.HasBuff("BlindMonkSonicWave") && Q2.InRange(targetObj) && (Player.Distance3D(targetObj) > Orbwalk.GetAutoAttackRange(Player, targetObj) + 50 || CanKill(targetObj, Q2, 1) || (targetObj.HasBuff("BlindMonkTempest") && E.InRange(targetObj) && !Orbwalk.InAutoAttackRange(targetObj)) || !QCasted))
         {
             Q.Cast(PacketCast());
         }
     }
     if (ItemBool("Combo", "E") && E.IsReady())
     {
         if (E.Instance.Name == "BlindMonkEOne" && E.InRange(targetObj))
         {
             E.Cast(PacketCast());
         }
         else if (targetObj.HasBuff("BlindMonkTempest") && E2.InRange(targetObj) && (Player.Distance3D(targetObj) > Orbwalk.GetAutoAttackRange(Player, targetObj) + 30 || !ECasted))
         {
             E.Cast(PacketCast());
         }
     }
     if (ItemBool("Combo", "R") && ItemBool("Killable", targetObj.ChampionName) && R.CanCast(targetObj) && (CanKill(targetObj, R) || (CanKill(targetObj, R, R.GetDamage(targetObj), GetQ2Dmg(targetObj, R.GetDamage(targetObj))) && ItemBool("Combo", "Q") && Q.IsReady() && targetObj.HasBuff("BlindMonkSonicWave"))))
     {
         R.CastOnUnit(targetObj, PacketCast());
     }
     if (ItemBool("Combo", "W") && W.IsReady())
     {
         if (W.Instance.Name == "BlindMonkWOne")
         {
             if (Orbwalk.InAutoAttackRange(targetObj) && Player.HealthPercentage() <= ItemList("Combo", "WUnder"))
             {
                 W.Cast(PacketCast());
             }
         }
         else if (E.InRange(targetObj) && !Player.HasBuff("BlindMonkSafeguard") && !WCasted)
         {
             W.Cast(PacketCast());
         }
     }
     if (ItemBool("Combo", "Item"))
     {
         UseItem(targetObj);
     }
     if (ItemBool("Combo", "Ignite") && IgniteReady())
     {
         CastIgnite(targetObj);
     }
 }
示例#19
0
 private void BeforeAttack(Orbwalk.BeforeAttackEventArgs Args)
 {
     if (Args.Target.IsValidTarget(Orbwalk.GetAutoAttackRange(Player, Args.Target) + 20) && ItemBool("Misc", "WLastHit") && W.IsReady() && Orbwalk.CurrentMode == Orbwalk.Mode.LastHit && CanKill((Obj_AI_Minion)Args.Target, W, GetBonusDmg((Obj_AI_Minion)Args.Target)) && Args.Target is Obj_AI_Minion)
     {
         Args.Process = false;
         W.Cast(PacketCast());
     }
 }
示例#20
0
 private void NormalCombo(string Mode)
 {
     if (ItemBool(Mode, "W") && W.IsReady() && Player.HasBuff("BurningAgony") && Player.CountEnemysInRange(500) == 0)
     {
         W.Cast(PacketCast());
     }
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool(Mode, "W") && W.IsReady())
     {
         if (Player.HealthPercentage() >= ItemSlider(Mode, "WAbove"))
         {
             if (Player.Distance3D(targetObj) <= W.Range + 60)
             {
                 if (!Player.HasBuff("BurningAgony"))
                 {
                     W.Cast(PacketCast());
                 }
             }
             else if (Player.HasBuff("BurningAgony"))
             {
                 W.Cast(PacketCast());
             }
         }
         else if (Player.HasBuff("BurningAgony"))
         {
             W.Cast(PacketCast());
         }
     }
     if (ItemBool(Mode, "Q") && Q.IsReady() && Q.IsInRange(targetObj.Position))
     {
         if (ItemBool("Misc", "SmiteCol"))
         {
             if (!SmiteCollision(targetObj, Q))
             {
                 Q.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
             }
         }
         else
         {
             Q.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
         }
     }
     if (ItemBool(Mode, "E") && E.IsReady() && Orbwalk.InAutoAttackRange(targetObj))
     {
         E.Cast(PacketCast());
     }
     if (Mode == "Combo" && ItemBool(Mode, "Item") && Items.CanUseItem(Randuin) && Player.CountEnemysInRange(450) >= 1)
     {
         Items.UseItem(Randuin);
     }
     if (Mode == "Combo" && ItemBool(Mode, "Ignite") && IgniteReady())
     {
         CastIgnite(targetObj);
     }
 }
示例#21
0
        private void LaneJungClear()
        {
            var minionObj = MinionManager.GetMinions(Q2.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth);

            foreach (var Obj in minionObj)
            {
                if (Obj.Team == GameObjectTeam.Neutral && CanSmiteMob(Obj.Name))
                {
                    CastSmite(Obj);
                }
                var Passive = Player.HasBuff("BlindMonkFlurry");
                if (ItemBool("Clear", "Q") && Q.IsReady())
                {
                    if (Q.Instance.Name == "BlindMonkQOne" && Q.InRange(Obj))
                    {
                        Q.CastIfHitchanceEquals(Obj, HitChance.Medium, PacketCast());
                    }
                    else if (Obj.HasBuff("BlindMonkSonicWave") && (CanKill(Obj, Q2, GetQ2Dmg(Obj)) || Player.Distance3D(Obj) > Orbwalk.GetAutoAttackRange(Player, Obj) + 100 || !QCasted || !Passive))
                    {
                        Q.Cast(PacketCast());
                    }
                }
                if (ItemBool("Clear", "E") && E.IsReady())
                {
                    if (E.Instance.Name == "BlindMonkEOne" && !Passive && (minionObj.Count(i => E.InRange(i)) >= 2 || (Obj.MaxHealth >= 1200 && E.InRange(Obj))) && !FarmCasted)
                    {
                        E.Cast(PacketCast());
                        FarmCasted = true;
                        Utility.DelayAction.Add(300, () => FarmCasted = false);
                    }
                    else if (Obj.HasBuff("BlindMonkTempest") && E2.InRange(Obj) && (!ECasted || !Passive))
                    {
                        E.Cast(PacketCast());
                    }
                }
                if (ItemBool("Clear", "W") && W.IsReady())
                {
                    if (W.Instance.Name == "BlindMonkWOne")
                    {
                        if (!Passive && Orbwalk.InAutoAttackRange(Obj) && !FarmCasted)
                        {
                            W.Cast(PacketCast());
                            FarmCasted = true;
                            Utility.DelayAction.Add(300, () => FarmCasted = false);
                        }
                    }
                    else if (E.InRange(Obj) && (!WCasted || !Passive))
                    {
                        W.Cast(PacketCast());
                    }
                }
                if (ItemBool("Clear", "Item"))
                {
                    UseItem(Obj, true);
                }
            }
        }
示例#22
0
 private void StarCombo()
 {
     CustomOrbwalk(targetObj);
     if (!targetObj.IsValidTarget())
     {
         return;
     }
     UseItem(targetObj);
     if (Q.IsReady())
     {
         if (Q.Instance.Name == "BlindMonkQOne" && Q.InRange(targetObj))
         {
             CastSkillShotSmite(Q, targetObj);
         }
         else if (targetObj.HasBuff("BlindMonkSonicWave") && Q2.InRange(targetObj) && (CanKill(targetObj, Q2, 1) || (!R.IsReady() && !RCasted && KickCasted) || (!R.IsReady() && !RCasted && !KickCasted && (Player.Distance3D(targetObj) > Orbwalk.GetAutoAttackRange(Player, targetObj) + 100 || !QCasted))))
         {
             Q.Cast(PacketCast());
         }
     }
     if (W.IsReady())
     {
         if (W.Instance.Name == "BlindMonkWOne")
         {
             if (R.IsReady())
             {
                 if (Q.IsReady() && targetObj.HasBuff("BlindMonkSonicWave") && !R.InRange(targetObj) && Player.Distance3D(targetObj) < W.Range + R.Range - 200)
                 {
                     WardJump(targetObj.Position.Randomize(0, (int)R.Range / 2));
                 }
             }
             else if (Orbwalk.InAutoAttackRange(targetObj))
             {
                 W.Cast(PacketCast());
             }
         }
         else if (E.InRange(targetObj) && !Player.HasBuff("BlindMonkSafeguard") && !WCasted)
         {
             W.Cast(PacketCast());
         }
     }
     if (R.CanCast(targetObj) && Q.IsReady() && targetObj.HasBuff("BlindMonkSonicWave"))
     {
         R.CastOnUnit(targetObj, PacketCast());
     }
     if (E.IsReady())
     {
         if (E.Instance.Name == "BlindMonkEOne" && E.InRange(targetObj))
         {
             E.Cast(PacketCast());
         }
         else if (targetObj.HasBuff("BlindMonkTempest") && E2.InRange(targetObj) && (Player.Distance3D(targetObj) > Orbwalk.GetAutoAttackRange(Player, targetObj) + 30 || !ECasted))
         {
             E.Cast(PacketCast());
         }
     }
 }
示例#23
0
 private void OnEnemyGapcloser(ActiveGapcloser gapcloser)
 {
     if (!ItemBool("Misc", "EAntiGap") || Player.IsDead || !E.IsReady())
     {
         return;
     }
     if (IsValid(gapcloser.Sender, Orbwalk.GetAutoAttackRange() + 100))
     {
         E.Cast(Player.Position.To2D().Extend(gapcloser.Sender.Position.To2D(), gapcloser.Sender.Distance3D(Player) + 200), PacketCast());
     }
 }
示例#24
0
 private void OnEnemyGapcloser(ActiveGapcloser gapcloser)
 {
     if (!ItemBool("Misc", "EAntiGap") || Player.IsDead || !E.CanCast(gapcloser.Sender))
     {
         return;
     }
     if (Player.Distance3D(gapcloser.Sender) <= Orbwalk.GetAutoAttackRange(Player, gapcloser.Sender) + 50)
     {
         E.Cast(gapcloser.Sender.Position.Extend(Player.Position, -100), PacketCast());
     }
 }
示例#25
0
 private void OnEnemyGapcloser(ActiveGapcloser gapcloser)
 {
     if (!ItemBool("Misc", "QAntiGap") || Player.IsDead || !Q.IsReady())
     {
         return;
     }
     if (Player.Distance3D(gapcloser.Sender) <= Orbwalk.GetAutoAttackRange(Player, gapcloser.Sender) + 30 && !Player.HasBuff("PowerBall"))
     {
         Q.Cast(PacketCast());
     }
 }
示例#26
0
        private void LaneJungClear()
        {
            var minionObj = ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, Q.Range)).OrderBy(i => i.Health);

            if (minionObj.Count() == 0 && ItemBool("Clear", "W") && W.IsReady() && Player.HasBuff("BurningAgony"))
            {
                W.Cast(PacketCast());
            }
            foreach (var Obj in minionObj)
            {
                if (SmiteReady() && Obj.Team == GameObjectTeam.Neutral)
                {
                    if ((ItemBool("SmiteMob", "Baron") && Obj.Name.StartsWith("SRU_Baron")) || (ItemBool("SmiteMob", "Dragon") && Obj.Name.StartsWith("SRU_Dragon")) || (!Obj.Name.Contains("Mini") && (
                                                                                                                                                                             (ItemBool("SmiteMob", "Red") && Obj.Name.StartsWith("SRU_Red")) || (ItemBool("SmiteMob", "Blue") && Obj.Name.StartsWith("SRU_Blue")) ||
                                                                                                                                                                             (ItemBool("SmiteMob", "Krug") && Obj.Name.StartsWith("SRU_Krug")) || (ItemBool("SmiteMob", "Gromp") && Obj.Name.StartsWith("SRU_Gromp")) ||
                                                                                                                                                                             (ItemBool("SmiteMob", "Raptor") && Obj.Name.StartsWith("SRU_Razorbeak")) || (ItemBool("SmiteMob", "Wolf") && Obj.Name.StartsWith("SRU_Murkwolf")))))
                    {
                        CastSmite(Obj);
                    }
                }
                if (ItemBool("Clear", "E") && E.IsReady() && Orbwalk.InAutoAttackRange(Obj))
                {
                    E.Cast(PacketCast());
                }
                if (ItemBool("Clear", "W") && W.IsReady())
                {
                    if (Player.HealthPercentage() >= ItemSlider("Clear", "WAbove"))
                    {
                        if (minionObj.Count(i => Player.Distance3D(i) <= W.Range + 60) >= 2 || (Obj.MaxHealth >= 1200 && Player.Distance3D(Obj) <= W.Range + 60))
                        {
                            if (!Player.HasBuff("BurningAgony"))
                            {
                                W.Cast(PacketCast());
                            }
                        }
                        else if (Player.HasBuff("BurningAgony"))
                        {
                            W.Cast(PacketCast());
                        }
                    }
                    else if (Player.HasBuff("BurningAgony"))
                    {
                        W.Cast(PacketCast());
                    }
                }
                if (ItemBool("Clear", "Q") && Q.IsReady() && (Obj.MaxHealth >= 1200 || CanKill(Obj, Q)))
                {
                    Q.CastIfHitchanceEquals(Obj, HitChance.Medium, PacketCast());
                }
            }
        }
示例#27
0
 private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (Player.IsDead)
     {
         return;
     }
     if (sender.IsMe)
     {
         if (args.SData.Name == "UdyrTigerStance")
         {
             CurStance = Stance.Tiger;
             AACount   = 0;
         }
         if (args.SData.Name == "UdyrTurtleStance")
         {
             CurStance = Stance.Turtle;
             AACount   = 0;
         }
         if (args.SData.Name == "UdyrBearStance")
         {
             CurStance = Stance.Bear;
             AACount   = 0;
         }
         if (args.SData.Name == "UdyrPhoenixStance")
         {
             CurStance = Stance.Phoenix;
             AACount   = 0;
         }
     }
     else if (sender.IsEnemy && ItemBool("Misc", "WSurvive") && W.IsReady())
     {
         if (args.Target.IsMe && ((Orbwalk.IsAutoAttack(args.SData.Name) && Player.Health <= sender.GetAutoAttackDamage(Player, true)) || (args.SData.Name == "summonerdot" && Player.Health <= (sender as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite))))
         {
             W.Cast(PacketCast());
         }
         else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange && Player.Position.Distance(args.End) <= Orbwalk.GetAutoAttackRange())) && Damage.Spells.ContainsKey((sender as Obj_AI_Hero).ChampionName))
         {
             for (var i = 3; i > -1; i--)
             {
                 if (Damage.Spells[(sender as Obj_AI_Hero).ChampionName].FirstOrDefault(a => a.Slot == (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name) && a.Stage == i) != null)
                 {
                     if (Player.Health <= (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name), i))
                     {
                         W.Cast(PacketCast());
                     }
                 }
             }
         }
     }
 }
示例#28
0
 private void LastHit()
 {
     if (!ItemBool("Misc", "QLastHit") || !Q.IsReady())
     {
         return;
     }
     foreach (var Obj in MinionManager.GetMinions(Orbwalk.GetAutoAttackRange() + 100, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth).Where(i => CanKill(i, Q, GetBonusDmg(i))).OrderByDescending(i => i.Distance3D(Player)))
     {
         Orbwalk.SetAttack(false);
         Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
         Orbwalk.SetAttack(true);
         break;
     }
 }
示例#29
0
 private void OnAttack(AttackableUnit Target)
 {
     if (Target.IsValidTarget(Orbwalk.GetAutoAttackRange(Player, Target) + 20) && Q.IsReady())
     {
         if (Orbwalk.CurrentMode == Orbwalk.Mode.Harass && ItemBool("Harass", "Q") && Target is Obj_AI_Hero)
         {
             Q.Cast(PacketCast());
         }
         else if (Target is Obj_AI_Minion && CanKill((Obj_AI_Minion)Target, Q) && ((Orbwalk.CurrentMode == Orbwalk.Mode.LastHit && ItemBool("Misc", "QLastHit")) || (Orbwalk.CurrentMode == Orbwalk.Mode.LaneClear && ItemBool("Clear", "Q") && ItemList("Clear", "QMode") == 1)))
         {
             Q.Cast(PacketCast());
         }
     }
 }
示例#30
0
 private void LastHit()
 {
     if (!ItemBool("Misc", "QLastHit") || !Q.IsReady())
     {
         return;
     }
     foreach (var Obj in ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, Orbwalk.GetAutoAttackRange() + 50) && CanKill(i, Q)).OrderBy(i => i.Health).OrderBy(i => i.Distance3D(Player)))
     {
         Orbwalk.SetAttack(false);
         Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
         Orbwalk.SetAttack(true);
         break;
     }
 }