Beispiel #1
0
 private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (Player.IsDead)
     {
         return;
     }
     if (sender.IsEnemy && ItemBool("Ultimate", "RSurvive") && SkillR.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"))))
         {
             SkillR.Cast(PacketCast());
         }
         else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange[0] && 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, false) && a.Stage == i) != null)
                 {
                     if ((Player.Health - (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name, false), i)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder"))
                     {
                         SkillR.Cast(PacketCast());
                     }
                 }
             }
         }
     }
 }
Beispiel #2
0
 private void NormalCombo(string Mode)
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool(Mode, "R") && ItemBool("Ultimate", targetObj.ChampionName) && Mode == "Combo" && SkillR.IsReady() && SkillR.InRange(targetObj.Position))
     {
         if (CanKill(targetObj, SkillR))
         {
             SkillR.Cast(PacketCast());
         }
         else if (SkillR.GetHealthPrediction(targetObj) - SkillR.GetDamage(targetObj) + 5 <= SkillE.GetDamage(targetObj) + Player.GetAutoAttackDamage(targetObj, true) + ((ItemBool(Mode, "Q") && SkillQ.IsReady()) ? SkillQ.GetDamage(targetObj) * 3 : 0) && ItemBool(Mode, "E") && SkillE.IsReady() && Player.Mana >= SkillR.Instance.ManaCost + SkillE.Instance.ManaCost + ((ItemBool(Mode, "Q") && SkillQ.IsReady()) ? SkillQ.Instance.ManaCost : 0))
         {
             SkillR.Cast(PacketCast());
         }
     }
     if (ItemBool(Mode, "E") && SkillE.IsReady() && SkillE.InRange(targetObj.Position) && (CanKill(targetObj, SkillE) || Player.Distance3D(targetObj) > Orbwalk.GetAutoAttackRange() + 50 || (Mode == "Combo" && Player.HealthPercentage() < targetObj.HealthPercentage())))
     {
         SkillE.CastOnUnit(targetObj, PacketCast());
     }
     if (ItemBool(Mode, "W") && SkillW.IsReady() && Orbwalk.InAutoAttackRange(targetObj))
     {
         SkillW.Cast(PacketCast());
     }
     if (ItemBool(Mode, "Item") && Mode == "Combo")
     {
         UseItem(targetObj);
     }
     if (ItemBool(Mode, "Ignite") && Mode == "Combo")
     {
         CastIgnite(targetObj);
     }
 }
Beispiel #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) && SkillW.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, SkillW, Player.Mana >= 50 ? 1 : 0) || Obj.MaxHealth >= 1200))
             {
                 SkillW.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)
             {
                 SkillW.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") && SkillR.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"))))
         {
             SkillR.Cast(PacketCast());
         }
         else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange[0] && 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, false) && a.Stage == i) != null)
                 {
                     if ((Player.Health - (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name, false), i)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder"))
                     {
                         SkillR.Cast(PacketCast());
                     }
                 }
             }
         }
     }
 }
Beispiel #4
0
 private void OnCreate(GameObject sender, EventArgs args)
 {
     if (sender is Obj_SpellMissile && sender.IsValid && Config.Item(Name + "surviveR").GetValue <bool>() && SkillR.IsReady())
     {
         var missle = (Obj_SpellMissile)sender;
         var caster = missle.SpellCaster;
         if (caster.IsEnemy)
         {
             if (missle.SData.Name.Contains("BasicAttack"))
             {
                 if (missle.Target.IsMe && (Player.Health - caster.GetAutoAttackDamage(Player, true)) * 100 / Player.MaxHealth <= Config.Item(Name + "autouseR").GetValue <Slider>().Value)
                 {
                     SkillR.Cast();
                 }
             }
             else if (missle.Target.IsMe || missle.EndPosition.Distance(Player.Position) <= 130)
             {
                 if (missle.SData.Name == "summonerdot")
                 {
                     if ((Player.Health - (caster as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite)) * 100 / Player.MaxHealth <= Config.Item(Name + "autouseR").GetValue <Slider>().Value)
                     {
                         SkillR.Cast();
                     }
                 }
                 else if ((Player.Health - (caster as Obj_AI_Hero).GetSpellDamage(Player, (caster as Obj_AI_Hero).GetSpellSlot(missle.SData.Name, false), 1)) * 100 / Player.MaxHealth <= Config.Item(Name + "autouseR").GetValue <Slider>().Value)
                 {
                     SkillR.Cast();
                 }
             }
         }
     }
 }
Beispiel #5
0
        private void Flee()
        {
            var manaQ = SkillQ.Instance.ManaCost;
            var manaW = SkillW.Instance.ManaCost;
            var manaR = SkillR.Instance.ManaCost;
            var PData = Player.Buffs.FirstOrDefault(i => i.Name == "udyrmonkeyagilitybuff");

            if (SkillE.IsReady())
            {
                SkillE.Cast(PacketCast);
            }
            if (PData != null && PData.Count < 3)
            {
                if ((manaQ < manaW || manaQ < manaR || (manaQ == manaW && manaQ < manaR) || (manaQ == manaR && manaQ < manaW)) && SkillQ.IsReady())
                {
                    SkillQ.Cast(PacketCast);
                }
                else if ((manaW < manaQ || manaW < manaR || (manaW == manaQ && manaW < manaR) || (manaW == manaR && manaW < manaQ)) && SkillW.IsReady())
                {
                    SkillW.Cast(PacketCast);
                }
                else if ((manaR < manaQ || manaR < manaW || (manaR == manaQ && manaR < manaW) || (manaR == manaW && manaR < manaQ)) && SkillR.IsReady())
                {
                    SkillR.Cast(PacketCast);
                }
            }
        }
Beispiel #6
0
 private void NormalCombo()
 {
     if (targetObj == null)
     {
         return;
     }
     if (Config.Item(Name + "rusage").GetValue <bool>() && Config.Item(Name + "ult" + targetObj.ChampionName).GetValue <bool>() && SkillR.IsReady() && SkillR.InRange(targetObj.Position))
     {
         if (CanKill(targetObj, SkillR))
         {
             SkillR.Cast(PacketCast);
         }
         else if (targetObj.Health - SkillR.GetDamage(targetObj) <= SkillE.GetDamage(targetObj) + Player.GetAutoAttackDamage(targetObj) + SkillQ.GetDamage(targetObj) * 3 && Config.Item(Name + "eusage").GetValue <bool>() && SkillE.IsReady() && Config.Item(Name + "qusage").GetValue <bool>() && SkillQ.IsReady())
         {
             SkillR.Cast(PacketCast);
         }
     }
     if (Config.Item(Name + "eusage").GetValue <bool>() && SkillE.IsReady() && SkillE.InRange(targetObj.Position) && (!LXOrbwalker.InAutoAttackRange(targetObj) || CanKill(targetObj, SkillE)))
     {
         SkillE.CastOnUnit(targetObj, PacketCast);
     }
     if (Config.Item(Name + "wusage").GetValue <bool>() && SkillW.IsReady() && LXOrbwalker.InAutoAttackRange(targetObj))
     {
         SkillW.Cast(PacketCast);
     }
     if (Config.Item(Name + "iusage").GetValue <bool>())
     {
         UseItem(targetObj);
     }
     if (Config.Item(Name + "ignite").GetValue <bool>())
     {
         CastIgnite(targetObj);
     }
 }
Beispiel #7
0
        private void NormalCombo()
        {
            if (targetObj == null)
            {
                return;
            }
            if (Config.Item(Name + "eusage").GetValue <bool>() && SkillE.IsReady())
            {
                if (!Player.HasBuff("JaxCounterStrike", true))
                {
                    if ((Config.Item(Name + "qusage").GetValue <bool>() && SkillQ.InRange(targetObj.Position) && SkillQ.IsReady()) || SkillE.InRange(targetObj.Position))
                    {
                        SkillE.Cast(PacketCast);
                    }
                }
                else if (SkillE.InRange(targetObj.Position) && !targetObj.IsValidTarget(SkillE.Range - 3.5f))
                {
                    SkillE.Cast(PacketCast);
                }
            }
            if (Config.Item(Name + "qusage").GetValue <bool>() && SkillQ.IsReady() && SkillQ.InRange(targetObj.Position))
            {
                if ((Config.Item(Name + "eusage").GetValue <bool>() && SkillE.IsReady() && Player.HasBuff("JaxCounterStrike", true) && !SkillE.InRange(targetObj.Position)) || (!LXOrbwalker.InAutoAttackRange(targetObj) && Player.Distance(targetObj) > 425))
                {
                    SkillQ.CastOnUnit(targetObj, PacketCast);
                }
            }
            if (Config.Item(Name + "rusage").GetValue <bool>() && SkillR.IsReady())
            {
                switch (Config.Item(Name + "ruseMode").GetValue <StringList>().SelectedIndex)
                {
                case 0:
                    if (Player.Health * 100 / Player.MaxHealth < Config.Item(Name + "ruseHp").GetValue <Slider>().Value)
                    {
                        SkillR.Cast(PacketCast);
                    }
                    break;

                case 1:
                    if (Player.CountEnemysInRange(600) >= Config.Item(Name + "ruseEnemy").GetValue <Slider>().Value)
                    {
                        SkillR.Cast(PacketCast);
                    }
                    break;
                }
            }
            if (Config.Item(Name + "iusage").GetValue <bool>())
            {
                UseItem(targetObj);
            }
            if (Config.Item(Name + "ignite").GetValue <bool>())
            {
                CastIgnite(targetObj);
            }
        }
Beispiel #8
0
        private void NormalCombo()
        {
            if (targetObj == null)
            {
                return;
            }
            if (ItemBool("Combo", "E") && SkillE.IsReady())
            {
                if (!Player.HasBuff("JaxCounterStrike", true))
                {
                    if ((ItemBool("Combo", "Q") && SkillQ.IsReady() && SkillQ.InRange(targetObj.Position)) || SkillE.InRange(targetObj.Position))
                    {
                        SkillE.Cast(PacketCast());
                    }
                }
                else if (SkillE.InRange(targetObj.Position) && !IsValid(targetObj, SkillE.Range - 3.5f))
                {
                    SkillE.Cast(PacketCast());
                }
            }
            if (ItemBool("Combo", "Q") && SkillQ.IsReady() && SkillQ.InRange(targetObj.Position))
            {
                if ((ItemBool("Combo", "E") && SkillE.IsReady() && Player.HasBuff("JaxCounterStrike", true) && !SkillE.InRange(targetObj.Position)) || (!Orbwalk.InAutoAttackRange(targetObj) && Player.Distance3D(targetObj) > 450))
                {
                    SkillQ.CastOnUnit(targetObj, PacketCast());
                }
            }
            if (ItemBool("Combo", "R") && SkillR.IsReady())
            {
                switch (ItemList("Combo", "RMode"))
                {
                case 0:
                    if (Player.Health * 100 / Player.MaxHealth <= ItemSlider("Combo", "RUnder"))
                    {
                        SkillR.Cast(PacketCast());
                    }
                    break;

                case 1:
                    if (Player.CountEnemysInRange((int)SkillQ.Range) >= ItemSlider("Combo", "RCount"))
                    {
                        SkillR.Cast(PacketCast());
                    }
                    break;
                }
            }
            if (ItemBool("Combo", "Item"))
            {
                UseItem(targetObj);
            }
            if (ItemBool("Combo", "Ignite"))
            {
                CastIgnite(targetObj);
            }
        }
Beispiel #9
0
 private void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (!Config.Item(Name + "useInterR").GetValue <bool>())
     {
         return;
     }
     if (unit.IsValidTarget(SkillR.Range) && SkillR.IsReady() && !unit.HasBuff("xenzhaointimidate"))
     {
         SkillR.Cast(PacketCast);
     }
 }
Beispiel #10
0
 private void NormalCombo()
 {
     if (targetObj == null)
     {
         return;
     }
     if (Config.Item(Name + "eusage").GetValue <bool>() && SkillE.IsReady() && !targetObj.HasBuff("udyrbearstuncheck", true))
     {
         SkillE.Cast(PacketCast);
     }
     if (targetObj.IsValidTarget(400) && (!Config.Item(Name + "eusage").GetValue <bool>() || (Config.Item(Name + "eusage").GetValue <bool>() && (SkillE.Level == 0 || (SkillE.Level >= 1 && targetObj.HasBuff("udyrbearstuncheck", true))))))
     {
         if (Config.Item(Name + "qusage").GetValue <bool>() && SkillQ.IsReady())
         {
             SkillQ.Cast(PacketCast);
         }
         if (Config.Item(Name + "rusage").GetValue <bool>() && SkillR.IsReady() && SkillQ.Level >= 1 && CurStance == Stance.Tiger && (AACount >= 2 || TigerActive))
         {
             SkillR.Cast(PacketCast);
         }
         else if (SkillQ.Level == 0 && SkillR.IsReady())
         {
             SkillR.Cast(PacketCast);
         }
         if (Config.Item(Name + "wusage").GetValue <bool>() && SkillW.IsReady())
         {
             if (CurStance == Stance.Phoenix && (AACount >= 3 || PhoenixActive))
             {
                 SkillW.Cast(PacketCast);
             }
             else if (CurStance == Stance.Tiger && (AACount >= 2 || TigerActive))
             {
                 SkillW.Cast(PacketCast);
             }
             else if (SkillQ.Level == 0 && SkillR.Level == 0)
             {
                 SkillW.Cast(PacketCast);
             }
         }
     }
     if (Config.Item(Name + "iusage").GetValue <bool>())
     {
         UseItem(targetObj);
     }
     if (Config.Item(Name + "ignite").GetValue <bool>())
     {
         CastIgnite(targetObj);
     }
 }
Beispiel #11
0
 private void LaneJungClear()
 {
     foreach (var Obj in ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, 800)).OrderBy(i => i.Health))
     {
         var SpecialMob = new[] { "SRU_Baron", "SRU_Dragon" }.Any(i => Obj.Name.StartsWith(i));
         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") && SkillE.IsReady() && !Obj.HasBuff("UdyrBearStunCheck") && (!SpecialMob || Player.Distance3D(Obj) > Orbwalk.GetAutoAttackRange() + 150))
         {
             SkillE.Cast(PacketCast());
         }
         if (Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange() + 50 && (!ItemBool("Clear", "E") || (ItemBool("Clear", "E") && (SkillE.Level == 0 || Obj.HasBuff("UdyrBearStunCheck") || SpecialMob))))
         {
             if (ItemBool("Clear", "Q") && SkillQ.IsReady())
             {
                 SkillQ.Cast(PacketCast());
             }
             if (ItemBool("Clear", "R") && SkillR.IsReady() && (!ItemBool("Clear", "Q") || (ItemBool("Clear", "Q") && (SkillQ.Level == 0 || (CurStance == Stance.Tiger && (AACount >= 2 || TigerActive))))))
             {
                 SkillR.Cast(PacketCast());
             }
             if (ItemBool("Clear", "W") && SkillW.IsReady())
             {
                 if ((CurStance == Stance.Tiger && (AACount >= 2 || TigerActive)) || (CurStance == Stance.Phoenix && (AACount >= 3 || PhoenixActive)))
                 {
                     SkillW.Cast(PacketCast());
                 }
                 else if (SkillQ.Level == 0 && SkillR.Level == 0)
                 {
                     SkillW.Cast(PacketCast());
                 }
             }
         }
         if (ItemBool("Clear", "Item"))
         {
             UseItem(Obj, true);
         }
     }
 }
Beispiel #12
0
 private void OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell)
 {
     if (!ItemBool("Misc", "RInterrupt") || Player.IsDead)
     {
         return;
     }
     if (!IsValid(unit, SkillR.Range) && SkillR.IsReady() && SkillE.IsReady() && Player.Mana >= SkillE.Instance.ManaCost + SkillR.Instance.ManaCost)
     {
         foreach (var Obj in ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillE.Range) && !(i is Obj_AI_Turret) && i != unit && i.Distance3D(unit) <= SkillR.Range - 30))
         {
             SkillE.CastOnUnit(Obj, PacketCast());
         }
     }
     if (IsValid(unit, SkillR.Range) && SkillR.IsReady() && !unit.HasBuff("XinZhaoIntimidate"))
     {
         SkillR.Cast(PacketCast());
     }
 }
Beispiel #13
0
 private void LaneJungClear()
 {
     minionObj = MinionManager.GetMinions(Player.Position, SkillE.Range, MinionTypes.All, MinionTeam.NotAlly).FirstOrDefault();
     LXOrbwalker.ForcedTarget = minionObj;
     if (minionObj == null)
     {
         return;
     }
     if (Config.Item(Name + "useClearE").GetValue <bool>() && SkillE.IsReady() && !minionObj.HasBuff("udyrbearstuncheck", true))
     {
         SkillE.Cast(PacketCast);
     }
     if (minionObj.IsValidTarget(400) && (!Config.Item(Name + "useClearE").GetValue <bool>() || (Config.Item(Name + "useClearE").GetValue <bool>() && (SkillE.Level == 0 || (SkillE.Level >= 1 && minionObj.HasBuff("udyrbearstuncheck", true))))))
     {
         if (Config.Item(Name + "useClearQ").GetValue <bool>() && SkillQ.IsReady())
         {
             SkillQ.Cast(PacketCast);
         }
         if (Config.Item(Name + "useClearR").GetValue <bool>() && SkillR.IsReady() && SkillQ.Level >= 1 && CurStance == Stance.Tiger && (AACount >= 2 || TigerActive))
         {
             SkillR.Cast(PacketCast);
         }
         else if (SkillQ.Level == 0 && SkillR.IsReady())
         {
             SkillR.Cast(PacketCast);
         }
         if (Config.Item(Name + "useClearW").GetValue <bool>() && SkillW.IsReady())
         {
             if (CurStance == Stance.Phoenix && (AACount >= 3 || PhoenixActive))
             {
                 SkillW.Cast(PacketCast);
             }
             else if (CurStance == Stance.Tiger && (AACount >= 2 || TigerActive))
             {
                 SkillW.Cast(PacketCast);
             }
             else if (SkillQ.Level == 0 && SkillR.Level == 0)
             {
                 SkillW.Cast(PacketCast);
             }
         }
     }
 }
Beispiel #14
0
 private void NormalCombo(string Mode)
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool(Mode, "E") && SkillE.IsReady() && !targetObj.HasBuff("UdyrBearStunCheck") && Player.Distance3D(targetObj) <= ((Mode == "Combo") ? 800 : Orbwalk.GetAutoAttackRange() + 100))
     {
         SkillE.Cast(PacketCast());
     }
     if (Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 50 && (!ItemBool(Mode, "E") || (ItemBool(Mode, "E") && (SkillE.Level == 0 || targetObj.HasBuff("UdyrBearStunCheck")))))
     {
         if (ItemBool(Mode, "Q") && SkillQ.IsReady())
         {
             SkillQ.Cast(PacketCast());
         }
         if (ItemBool(Mode, "R") && SkillR.IsReady() && (!ItemBool(Mode, "Q") || (ItemBool(Mode, "Q") && (SkillQ.Level == 0 || (CurStance == Stance.Tiger && (AACount >= 2 || TigerActive))))))
         {
             SkillR.Cast(PacketCast());
         }
         if (ItemBool(Mode, "W") && SkillW.IsReady())
         {
             if ((CurStance == Stance.Tiger && (AACount >= 2 || TigerActive)) || (CurStance == Stance.Phoenix && (AACount >= 3 || PhoenixActive)))
             {
                 SkillW.Cast(PacketCast());
             }
             else if (SkillQ.Level == 0 && SkillR.Level == 0)
             {
                 SkillW.Cast(PacketCast());
             }
         }
     }
     if (ItemBool(Mode, "Item") && Mode == "Combo")
     {
         UseItem(targetObj);
     }
     if (ItemBool(Mode, "Ignite") && Mode == "Combo")
     {
         CastIgnite(targetObj);
     }
 }
Beispiel #15
0
 private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (Player.IsDead)
     {
         return;
     }
     if (sender.IsMe && Orbwalk.IsAutoAttack(args.SData.Name) && IsValid((Obj_AI_Base)args.Target) && SkillQ.IsReady())
     {
         var Obj   = (Obj_AI_Base)args.Target;
         var DmgAA = Player.GetAutoAttackDamage(Obj) * Math.Floor(SkillQ.Instance.Cooldown / (1 / (Player.PercentMultiplicativeAttackSpeedMod * 0.638)));
         if (Orbwalk.CurrentMode == Orbwalk.Mode.LastHit && ItemBool("Misc", "QLastHit") && SkillQ.GetHealthPrediction(Obj) + 5 <= GetBonusDmg(Obj) && (args.Target is Obj_AI_Minion || args.Target is Obj_AI_Turret))
         {
             SkillQ.Cast(PacketCast());
         }
         else if ((((Orbwalk.CurrentMode == Orbwalk.Mode.LaneClear || Orbwalk.CurrentMode == Orbwalk.Mode.LaneFreeze) && ItemBool("Clear", "Q") && (args.Target is Obj_AI_Minion || args.Target is Obj_AI_Turret)) || ((Orbwalk.CurrentMode == Orbwalk.Mode.Combo || Orbwalk.CurrentMode == Orbwalk.Mode.Harass) && ItemBool(Orbwalk.CurrentMode.ToString(), "Q") && args.Target is Obj_AI_Hero)) && (SkillQ.GetHealthPrediction(Obj) + 5 <= GetBonusDmg(Obj) || (!(args.Target is Obj_AI_Turret) && SkillQ.GetHealthPrediction(Obj) + 5 > DmgAA + GetBonusDmg(Obj))))
         {
             SkillQ.Cast(PacketCast());
         }
     }
     else if (sender.IsEnemy && ItemBool("Ultimate", "RSurvive") && SkillR.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"))))
         {
             SkillR.Cast(PacketCast());
         }
         else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange[0] && 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, false) && a.Stage == i) != null)
                 {
                     if ((Player.Health - (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name, false), i)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder"))
                     {
                         SkillR.Cast(PacketCast());
                     }
                 }
             }
         }
     }
 }
Beispiel #16
0
        private void Flee()
        {
            var Passive = Player.Buffs.FirstOrDefault(i => i.DisplayName == "UdyrMonkeyAgilityBuff");

            if (SkillE.IsReady())
            {
                SkillE.Cast(PacketCast());
            }
            if (Passive != null && Passive.Count < 3)
            {
                if (SkillQ.IsReady() && (SkillQ.Level > SkillW.Level || SkillQ.Level > SkillR.Level || (SkillQ.Level == SkillW.Level && SkillQ.Level > SkillR.Level) || (SkillQ.Level == SkillR.Level && SkillQ.Level > SkillW.Level) || (SkillQ.Level == SkillW.Level && SkillQ.Level == SkillR.Level)))
                {
                    SkillQ.Cast(PacketCast());
                }
                else if (SkillW.IsReady() && (SkillW.Level > SkillQ.Level || SkillW.Level > SkillR.Level || (SkillW.Level == SkillQ.Level && SkillW.Level > SkillR.Level) || (SkillW.Level == SkillR.Level && SkillW.Level > SkillQ.Level) || (SkillW.Level == SkillQ.Level && SkillW.Level == SkillR.Level)))
                {
                    SkillW.Cast(PacketCast());
                }
                else if (SkillR.IsReady() && (SkillR.Level > SkillQ.Level || SkillR.Level > SkillW.Level || (SkillR.Level == SkillQ.Level && SkillR.Level > SkillW.Level) || (SkillR.Level == SkillW.Level && SkillR.Level > SkillQ.Level) || (SkillR.Level == SkillQ.Level && SkillR.Level == SkillW.Level)))
                {
                    SkillR.Cast(PacketCast());
                }
            }
        }
Beispiel #17
0
        private void NormalCombo(bool IsHarass = false)
        {
            if (targetObj == null)
            {
                return;
            }
            if (Config.Item("qusage").GetValue <bool>() && SkillQ.IsReady() && targetObj.IsValidTarget(IsHarass ? Orbwalk.GetAutoAttackRange(Player, targetObj) : SkillQ.Range) && !Player.HasBuff("PowerBall", true))
            {
                if (!SkillE.InRange(targetObj.Position))
                {
                    SkillQ.Cast(PacketCast());
                }
                else if (!Player.HasBuff("DefensiveBallCurl", true))
                {
                    SkillQ.Cast(PacketCast());
                }
            }
            if (Config.Item("wusage").GetValue <bool>() && SkillW.IsReady() && SkillW.InRange(targetObj.Position) && !Player.HasBuff("PowerBall", true))
            {
                SkillW.Cast(PacketCast());
            }
            if (Config.Item("eusage").GetValue <bool>() && SkillE.IsReady() && SkillE.InRange(targetObj.Position) && Player.Health * 100 / Player.MaxHealth >= Config.Item("autoeusage").GetValue <Slider>().Value)
            {
                switch (Config.Item("euseMode").GetValue <StringList>().SelectedIndex)
                {
                case 0:
                    SkillE.CastOnUnit(targetObj, PacketCast());
                    break;

                case 1:
                    if (Player.HasBuff("DefensiveBallCurl", true))
                    {
                        SkillE.CastOnUnit(targetObj, PacketCast());
                    }
                    break;
                }
            }
            if (Config.Item("rusage").GetValue <bool>() && SkillR.IsReady())
            {
                switch (Config.Item("ruseMode").GetValue <StringList>().SelectedIndex)
                {
                case 0:
                    if (SkillR.InRange(targetObj.Position))
                    {
                        SkillR.Cast(PacketCast());
                    }
                    break;

                case 1:
                    if (Player.CountEnemysInRange((int)SkillR.Range) >= Config.Item("rmulti").GetValue <Slider>().Value)
                    {
                        SkillR.Cast(PacketCast());
                    }
                    break;
                }
            }
            if (Config.Item("iusage").GetValue <bool>() && Items.CanUseItem(Rand) && Player.CountEnemysInRange(450) >= 1)
            {
                Items.UseItem(Rand);
            }
            if (Config.Item("ignite").GetValue <bool>())
            {
                CastIgnite(targetObj);
            }
        }
Beispiel #18
0
        private void OnCreate(GameObject sender, EventArgs args)
        {
            if (!(sender is Obj_SpellMissile))
            {
                return;
            }
            var missle = (Obj_SpellMissile)sender;
            var caster = missle.SpellCaster;

            if (caster.IsEnemy)
            {
                if (Config.Item(Name + "surviveQ").GetValue <bool>() && SkillQ.IsReady())
                {
                    var HealthBuff = (Player.Mana == 100) ? new Int32[] { 80, 135, 190, 245, 300 }[SkillQ.Level - 1] +1.5 * Player.FlatMagicDamageMod : (new Int32[] { 30, 40, 50, 60, 70 }[SkillQ.Level - 1] +0.3 * Player.FlatMagicDamageMod + new double[] { 0.5, 0.95, 1.4, 1.85, 2.3 }[SkillQ.Level - 1] +0.012 * Player.FlatMagicDamageMod) * Player.Mana;
                    if (missle.SData.Name.Contains("BasicAttack"))
                    {
                        if (missle.Target.IsMe && Player.Health <= caster.GetAutoAttackDamage(Player, true) && Player.Health + HealthBuff > caster.GetAutoAttackDamage(Player, true))
                        {
                            SkillQ.Cast();
                        }
                    }
                    else if (missle.Target.IsMe || missle.EndPosition.Distance(Player.Position) <= 130)
                    {
                        if (missle.SData.Name == "summonerdot")
                        {
                            if (Player.Health <= (caster as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite) && Player.Health + HealthBuff > (caster as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite))
                            {
                                SkillQ.Cast();
                            }
                        }
                        else if (Player.Health <= (caster as Obj_AI_Hero).GetSpellDamage(Player, (caster as Obj_AI_Hero).GetSpellSlot(missle.SData.Name, false), 1) && Player.Health + HealthBuff > (caster as Obj_AI_Hero).GetSpellDamage(Player, (caster as Obj_AI_Hero).GetSpellSlot(missle.SData.Name, false), 1))
                        {
                            SkillQ.Cast();
                        }
                    }
                }
                if (Config.Item(Name + "surviveR").GetValue <bool>() && SkillR.IsReady())
                {
                    if (missle.SData.Name.Contains("BasicAttack"))
                    {
                        if (missle.Target.IsMe && Player.Health <= caster.GetAutoAttackDamage(Player, true))
                        {
                            SkillR.Cast();
                        }
                    }
                    else if (missle.Target.IsMe || missle.EndPosition.Distance(Player.Position) <= 130)
                    {
                        if (missle.SData.Name == "summonerdot")
                        {
                            if (Player.Health <= (caster as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite))
                            {
                                SkillR.Cast();
                            }
                        }
                        else if (Player.Health <= (caster as Obj_AI_Hero).GetSpellDamage(Player, (caster as Obj_AI_Hero).GetSpellSlot(missle.SData.Name, false), 1))
                        {
                            SkillR.Cast();
                        }
                    }
                }
            }
        }
Beispiel #19
0
        private void NormalCombo()
        {
            if (ItemBool("Combo", "W") && SkillW.IsReady() && Player.HasBuff("AuraofDespair", true) && Player.CountEnemysInRange(500) == 0)
            {
                SkillW.Cast(PacketCast());
            }
            if (targetObj == null)
            {
                return;
            }
            if (ItemBool("Combo", "Q") && SkillQ.IsReady())
            {
                var nearObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillQ.Range) && !(i is Obj_AI_Turret) && i.CountEnemysInRange((int)SkillR.Range - 40) >= ItemSlider("Combo", "RAbove") && !CanKill(i, SkillQ)).OrderBy(i => i.CountEnemysInRange((int)SkillR.Range));
                if (ItemBool("Combo", "R") && SkillR.IsReady() && ItemList("Combo", "RMode") == 1 && nearObj.Count() > 0)
                {
                    foreach (var Obj in nearObj)
                    {
                        SkillQ.CastIfHitchanceEquals(Obj, HitChance.VeryHigh, PacketCast());
                    }
                }
                else if (SkillQ.InRange(targetObj.Position) && (CanKill(targetObj, SkillQ) || !Orbwalk.InAutoAttackRange(targetObj)))
                {
                    if (ItemBool("Misc", "SmiteCol"))
                    {
                        if (!SmiteCollision(targetObj, SkillQ))
                        {
                            SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                        }
                    }
                    else
                    {
                        SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                    }
                }
            }
            if (ItemBool("Combo", "W") && SkillW.IsReady())
            {
                if (Player.Mana * 100 / Player.MaxMana >= ItemSlider("Combo", "WAbove"))
                {
                    if (Player.Distance3D(targetObj) <= SkillW.Range + 35)
                    {
                        if (!Player.HasBuff("AuraofDespair", true))
                        {
                            SkillW.Cast(PacketCast());
                        }
                    }
                    else if (Player.HasBuff("AuraofDespair", true))
                    {
                        SkillW.Cast(PacketCast());
                    }
                }
                else if (Player.HasBuff("AuraofDespair", true))
                {
                    SkillW.Cast(PacketCast());
                }
            }
            if (ItemBool("Combo", "E") && SkillE.IsReady() && SkillE.InRange(targetObj.Position))
            {
                SkillE.Cast(PacketCast());
            }
            if (ItemBool("Combo", "R") && SkillR.IsReady())
            {
                switch (ItemList("Combo", "RMode"))
                {
                case 0:
                    if (SkillR.InRange(targetObj.Position) && CanKill(targetObj, SkillR))
                    {
                        SkillR.Cast(PacketCast());
                    }
                    break;

                case 1:
                    var Obj = ObjectManager.Get <Obj_AI_Hero>().Where(i => IsValid(i, SkillR.Range));
                    if (Obj.Count() > 0 && (Obj.Count() >= ItemSlider("Combo", "RAbove") || (Obj.Count() >= 2 && Obj.Count(i => CanKill(i, SkillR)) >= 1)))
                    {
                        SkillR.Cast(PacketCast());
                    }
                    break;
                }
            }
            if (ItemBool("Combo", "Item") && Items.CanUseItem(Rand) && Player.CountEnemysInRange(450) >= 1)
            {
                Items.UseItem(Rand);
            }
            if (ItemBool("Combo", "Ignite"))
            {
                CastIgnite(targetObj);
            }
        }
Beispiel #20
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) && (args.Target as Obj_AI_Base).Health + 5 <= GetBonusDmg((Obj_AI_Base)args.Target) && Orbwalk.CurrentMode == Orbwalk.Mode.LastHit && SkillW.IsReady() && args.Target is Obj_AI_Minion)
                {
                    SkillW.Cast(PacketCast());
                }
                if (args.SData.Name == "JaxCounterStrike")
                {
                    ECasted = true;
                    Utility.DelayAction.Add(1800, () => ECasted = false);
                }
                if (args.SData.Name == "jaxrelentlessattack")
                {
                    RCount = 0;
                    if (SkillW.IsReady() && IsValid((Obj_AI_Base)args.Target, Orbwalk.GetAutoAttackRange() + 50))
                    {
                        switch (Orbwalk.CurrentMode)
                        {
                        case Orbwalk.Mode.Combo:
                            if (ItemBool("Combo", "W") && ItemList("Combo", "WMode") == 1)
                            {
                                SkillW.Cast(PacketCast());
                            }
                            break;

                        case Orbwalk.Mode.LaneClear:
                            if (ItemBool("Clear", "W") && ItemList("Clear", "WMode") == 1)
                            {
                                SkillW.Cast(PacketCast());
                            }
                            break;

                        case Orbwalk.Mode.LaneFreeze:
                            if (ItemBool("Clear", "W") && ItemList("Clear", "WMode") == 1)
                            {
                                SkillW.Cast(PacketCast());
                            }
                            break;
                        }
                    }
                }
            }
            else if (sender.IsEnemy && ItemBool("Misc", "RSurvive") && SkillR.IsReady())
            {
                if (args.Target.IsMe && (Orbwalk.IsAutoAttack(args.SData.Name) && Player.Health <= sender.GetAutoAttackDamage(Player, true)))
                {
                    SkillR.Cast(PacketCast());
                }
                else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange[0] && 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, false) && a.Stage == i) != null)
                        {
                            if (Player.Health <= (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name, false), i))
                            {
                                SkillR.Cast(PacketCast());
                            }
                        }
                    }
                }
            }
        }
Beispiel #21
0
        private void NormalCombo(string Mode)
        {
            if (targetObj == null)
            {
                return;
            }
            if (ItemBool(Mode, "Q") && SkillQ.IsReady() && Player.Distance3D(targetObj) <= ((Mode == "Combo") ? 800 : Orbwalk.GetAutoAttackRange() + 50) && !Player.HasBuff("PowerBall"))
            {
                if ((ItemBool(Mode, "E") && SkillE.IsReady() && !SkillE.InRange(targetObj.Position)) || !Player.HasBuff("DefensiveBallCurl"))
                {
                    SkillQ.Cast(PacketCast());
                }
            }
            if (ItemBool(Mode, "W") && SkillW.IsReady() && Orbwalk.InAutoAttackRange(targetObj) && !Player.HasBuff("PowerBall"))
            {
                SkillW.Cast(PacketCast());
            }
            if (ItemBool(Mode, "E") && SkillE.IsReady() && SkillE.InRange(targetObj.Position) && !Player.HasBuff("PowerBall"))
            {
                switch (ItemList(Mode, "EMode"))
                {
                case 0:
                    SkillE.CastOnUnit(targetObj, PacketCast());
                    break;

                case 1:
                    if (Player.HasBuff("DefensiveBallCurl"))
                    {
                        SkillE.CastOnUnit(targetObj, PacketCast());
                    }
                    break;
                }
            }
            if (ItemBool(Mode, "R") && Mode == "Combo" && SkillR.IsReady())
            {
                switch (ItemList(Mode, "RMode"))
                {
                case 0:
                    if (SkillR.InRange(targetObj.Position))
                    {
                        SkillR.Cast(PacketCast());
                    }
                    break;

                case 1:
                    if (Player.CountEnemysInRange((int)SkillR.Range) >= ItemSlider(Mode, "RCount"))
                    {
                        SkillR.Cast(PacketCast());
                    }
                    break;
                }
            }
            if (ItemBool(Mode, "Item") && Mode == "Combo" && Items.CanUseItem(Randuin) && Player.CountEnemysInRange(450) >= 1)
            {
                Items.UseItem(Randuin);
            }
            if (ItemBool(Mode, "Ignite") && Mode == "Combo")
            {
                CastIgnite(targetObj);
            }
        }
Beispiel #22
0
        private void NormalCombo()
        {
            if (Config.Item(Name + "wusage").GetValue <bool>() && SkillW.IsReady() && Player.HasBuff("AuraofDespair") && Player.CountEnemysInRange(500) == 0)
            {
                SkillW.Cast(PacketCast);
            }
            if (targetObj == null)
            {
                return;
            }
            if (Config.Item(Name + "qusage").GetValue <bool>() && SkillQ.IsReady() && (CanKill(targetObj, SkillQ) || !LXOrbwalker.InAutoAttackRange(targetObj)))
            {
                if (Config.Item(Name + "smite").GetValue <bool>() && SkillQ.GetPrediction(targetObj).Hitchance == HitChance.Collision)
                {
                    if (!SmiteCollision(targetObj, SkillQ))
                    {
                        SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast);
                    }
                }
                else
                {
                    SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast);
                }
            }
            if (Config.Item(Name + "wusage").GetValue <bool>() && SkillW.IsReady())
            {
                if (Player.Mana * 100 / Player.MaxMana >= Config.Item(Name + "autowusage").GetValue <Slider>().Value)
                {
                    if (SkillW.InRange(targetObj.Position))
                    {
                        if (!Player.HasBuff("AuraofDespair"))
                        {
                            SkillW.Cast(PacketCast);
                        }
                    }
                    else if (Player.HasBuff("AuraofDespair"))
                    {
                        SkillW.Cast(PacketCast);
                    }
                }
                else if (Player.HasBuff("AuraofDespair"))
                {
                    SkillW.Cast(PacketCast);
                }
            }
            if (Config.Item(Name + "eusage").GetValue <bool>() && SkillE.IsReady() && SkillE.InRange(targetObj.Position))
            {
                SkillE.Cast(PacketCast);
            }
            if (Config.Item(Name + "rusage").GetValue <bool>() && SkillR.IsReady())
            {
                switch (Config.Item(Name + "ruseMode").GetValue <StringList>().SelectedIndex)
                {
                case 0:
                    if (SkillR.InRange(targetObj.Position) && CanKill(targetObj, SkillR))
                    {
                        SkillR.Cast(PacketCast);
                    }
                    break;

                case 1:
                    if (Player.CountEnemysInRange((int)SkillR.Range) >= Config.Item(Name + "rmulti").GetValue <Slider>().Value)
                    {
                        SkillR.Cast(PacketCast);
                    }
                    break;
                }
            }
            if (Config.Item(Name + "iusage").GetValue <bool>() && Items.CanUseItem(Rand) && Player.CountEnemysInRange(450) >= 1)
            {
                Items.UseItem(Rand);
            }
            if (Config.Item(Name + "ignite").GetValue <bool>())
            {
                CastIgnite(targetObj);
            }
        }