示例#1
0
 private void NormalCombo(string Mode)
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool(Mode, "Q") && SkillQ.IsReady() && Player.Distance3D(targetObj) <= ((Mode == "Harass") ? Orbwalk.GetAutoAttackRange() + 50 : 800) && !Orbwalk.InAutoAttackRange(targetObj))
     {
         if (Mode == "Harass")
         {
             Orbwalk.SetAttack(false);
             Player.IssueOrder(GameObjectOrder.AttackUnit, targetObj);
             Orbwalk.SetAttack(true);
         }
         else
         {
             SkillQ.Cast(PacketCast());
         }
     }
     if (ItemBool(Mode, "E") && SkillE.IsReady() && !Player.HasBuff("GarenE") && !Player.HasBuff("GarenQBuff") && SkillE.InRange(targetObj.Position))
     {
         SkillE.Cast(PacketCast());
     }
     if (ItemBool(Mode, "W") && SkillW.IsReady() && Orbwalk.InAutoAttackRange(targetObj) && Player.HealthPercentage() <= ItemSlider(Mode, "WUnder"))
     {
         SkillW.Cast(PacketCast());
     }
     if (ItemBool(Mode, "R") && ItemBool("Ultimate", targetObj.ChampionName) && Mode == "Combo" && SkillR.IsReady() && SkillR.InRange(targetObj.Position) && CanKill(targetObj, SkillR))
     {
         SkillR.CastOnUnit(targetObj, PacketCast());
     }
     if (ItemBool(Mode, "Item") && Mode == "Combo" && Items.CanUseItem(Randuin) && Player.CountEnemysInRange(450) >= 1)
     {
         Items.UseItem(Randuin);
     }
     if (ItemBool(Mode, "Ignite") && Mode == "Combo")
     {
         CastIgnite(targetObj);
     }
 }
示例#2
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 && Obj.Health + 5 <= GetBonusDmg(Obj) && (args.Target is Obj_AI_Minion || args.Target is Obj_AI_Turret))
         {
             SkillQ.Cast(PacketCast());
         }
         else if (Orbwalk.CurrentMode != Orbwalk.Mode.None && Orbwalk.CurrentMode != Orbwalk.Mode.Flee && Orbwalk.CurrentMode != Orbwalk.Mode.LastHit && (args.Target is Obj_AI_Hero || args.Target is Obj_AI_Minion || args.Target is Obj_AI_Turret) && (Obj.Health + 5 <= GetBonusDmg(Obj) || Obj.Health + 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());
                     }
                 }
             }
         }
     }
 }
示例#3
0
 private void NormalCombo()
 {
     if (targetObj == null)
     {
         return;
     }
     if (Config.Item("wusage").GetValue <bool>() && SkillW.IsReady() && SkillW.InRange(targetObj.Position))
     {
         SkillW.CastOnUnit(targetObj, PacketCast());
     }
     if (Config.Item("eusage").GetValue <bool>() && SkillE.IsReady() && SkillE.InRange(targetObj.Position))
     {
         SkillE.Cast(targetObj.Position + Vector3.Normalize(targetObj.Position - Player.Position) * 100, PacketCast());
     }
     if (Config.Item("qusage").GetValue <bool>() && Orbwalk.InAutoAttackRange(targetObj))
     {
         var DmgAA = Player.GetAutoAttackDamage(targetObj) * Math.Floor(SkillQ.Instance.Cooldown / (1 / (Player.PercentMultiplicativeAttackSpeedMod * 0.638)));
         if ((targetObj.Health <= GetBonusDmg(targetObj) || targetObj.Health > DmgAA + GetBonusDmg(targetObj)) && (SkillQ.IsReady() || Player.HasBuff("NasusQ", true)))
         {
             Orbwalk.SetAttack(false);
             if (!Player.HasBuff("NasusQ", true))
             {
                 SkillQ.Cast(PacketCast());
             }
             if (Player.HasBuff("NasusQ", true))
             {
                 Player.IssueOrder(GameObjectOrder.AttackUnit, targetObj);
             }
             Orbwalk.SetAttack(true);
         }
     }
     if (Config.Item("iusage").GetValue <bool>() && Items.CanUseItem(Rand) && Player.CountEnemysInRange(450) >= 1)
     {
         Items.UseItem(Rand);
     }
     if (Config.Item("ignite").GetValue <bool>())
     {
         CastIgnite(targetObj);
     }
 }
示例#4
0
        private void Harass()
        {
            if (targetObj == null)
            {
                return;
            }
            var jumpObj = ObjectManager.Get <Obj_AI_Base>().Where(i => !i.IsMe && i.IsAlly && !(i is Obj_AI_Turret) && i.Distance(Player) <= SkillW.Range + i.BoundingRadius).OrderByDescending(i => i.Distance(Player)).OrderBy(i => i.Distance(ObjectManager.Get <Obj_AI_Turret>().Where(a => a.IsAlly && !a.IsDead).OrderBy(a => a.Distance(Player)).First()));

            if (SkillQ.IsReady())
            {
                if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position))
                {
                    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);
                    }
                }
                else if ((targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && targetObj.IsValidTarget(1300) && (CanKill(targetObj, SkillQ, 1) || (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Mana >= (Config.Item(Name + "useHarE").GetValue <bool>() ? 130 : 80) && Player.Health * 100 / Player.MaxHealth >= Config.Item(Name + "harMode").GetValue <Slider>().Value&& jumpObj.Count() >= 1)))
                {
                    SkillQ.Cast(PacketCast);
                }
            }
            if (Config.Item(Name + "useHarE").GetValue <bool>() && SkillE.IsReady() && SkillE.Instance.Name == "BlindMonkEOne" && SkillE.InRange(targetObj.Position))
            {
                SkillE.Cast(PacketCast);
            }
            if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && ((SkillE.Level == 0 && !(targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && Player.Distance(targetObj) < 200) || (Config.Item(Name + "useHarE").GetValue <bool>() && targetObj.HasBuff("BlindMonkEOne", true)) || (!Config.Item(Name + "useHarE").GetValue <bool>() && !(targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && Player.Distance(targetObj) < 200)) && !JumpCasted)
            {
                SkillW.CastOnUnit(jumpObj.First(), PacketCast);
                JumpCasted = true;
                Utility.DelayAction.Add(300, () => JumpCasted = false);
            }
        }
示例#5
0
 private void NormalCombo(bool IsHarass = false)
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool("Combo", "Q") && SkillQ.IsReady() && IsHarass ? Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 50 : targetObj.IsValidTarget(800) && !Orbwalk.InAutoAttackRange(targetObj))
     {
         if (IsHarass)
         {
             Orbwalk.SetAttack(false);
             Player.IssueOrder(GameObjectOrder.AttackUnit, targetObj);
             Orbwalk.SetAttack(true);
         }
         else
         {
             SkillQ.Cast(PacketCast());
         }
     }
     if (ItemBool("Combo", "E") && SkillE.IsReady() && !Player.HasBuff("GarenE", true) && !Player.HasBuff("GarenQ", true) && SkillE.InRange(targetObj.Position))
     {
         SkillE.Cast(PacketCast());
     }
     if (ItemBool("Combo", "W") && SkillW.IsReady() && Orbwalk.InAutoAttackRange(targetObj) && Player.Health * 100 / Player.MaxHealth <= ItemSlider("Combo", "WUnder"))
     {
         SkillW.Cast(PacketCast());
     }
     if (ItemBool("Combo", "R") && ItemBool("Ultimate", targetObj.ChampionName) && SkillR.IsReady() && SkillR.InRange(targetObj.Position) && CanKill(targetObj, SkillR))
     {
         SkillR.CastOnUnit(targetObj, PacketCast());
     }
     if (ItemBool("Combo", "Item") && Items.CanUseItem(Rand) && Player.CountEnemysInRange(450) >= 1)
     {
         Items.UseItem(Rand);
     }
     if (ItemBool("Combo", "Ignite"))
     {
         CastIgnite(targetObj);
     }
 }
示例#6
0
        private void LaneJungClear()
        {
            var minionObj = MinionManager.GetMinions(Player.Position, 1000, MinionTypes.All, MinionTeam.NotAlly).FirstOrDefault();

            if (minionObj == null)
            {
                return;
            }
            if (Config.Item(Name + "useClearQ").GetValue <bool>() && SkillQ.IsReady() && !Player.HasBuff("PowerBall", true))
            {
                if (!SkillE.InRange(minionObj.Position))
                {
                    SkillQ.Cast(PacketCast);
                }
                else if (!Player.HasBuff("DefensiveBallCurl", true))
                {
                    SkillQ.Cast(PacketCast);
                }
            }
            if (Config.Item(Name + "useClearE").GetValue <bool>() && SkillE.IsReady() && SkillE.InRange(minionObj.Position))
            {
                switch (Config.Item(Name + "useClearEMode").GetValue <StringList>().SelectedIndex)
                {
                case 0:
                    SkillE.CastOnUnit(minionObj, PacketCast);
                    break;

                case 1:
                    if (Player.HasBuff("DefensiveBallCurl", true))
                    {
                        SkillE.CastOnUnit(minionObj, PacketCast);
                    }
                    break;
                }
            }
            if (Config.Item(Name + "useClearW").GetValue <bool>() && SkillW.IsReady() && SkillE.InRange(minionObj.Position) && !Player.HasBuff("PowerBall", true))
            {
                SkillW.Cast(PacketCast);
            }
        }
示例#7
0
 private void Harass()
 {
     if (targetObj == null)
     {
         return;
     }
     if (Config.Item("useHarE").GetValue <bool>() && SkillE.IsReady() && SkillQ.InRange(targetObj.Position))
     {
         SkillE.Cast(targetObj.Position + Vector3.Normalize(targetObj.Position - Player.Position) * 100, PacketCast());
     }
     if (Config.Item("useHarE").GetValue <bool>() && flagPos != default(Vector3) && targetObj.IsValidTarget(180, true, flagPos) && SkillQ.InRange(targetObj.Position) && SkillQ.IsReady())
     {
         if (Player.Health * 100 / Player.MaxHealth >= Config.Item("harMode").GetValue <Slider>().Value)
         {
             SkillQ.Cast(flagPos, PacketCast());
         }
     }
     else if (SkillQ.InRange(targetObj.Position) && SkillQ.IsReady())
     {
         SkillQ.Cast(targetObj.Position, PacketCast());
     }
 }
示例#8
0
 private void Harass()
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool("Harass", "W") && (SkillW.IsReady() || Player.HasBuff("RenektonExecuteReady")) && !Player.IsDashing() && (AACount >= 1 || (SkillE.IsReady() && SkillE.Instance.Name != "RenektonSliceAndDice")) && Orbwalk.InAutoAttackRange(targetObj))
     {
         Orbwalk.SetAttack(false);
         Player.IssueOrder(GameObjectOrder.AttackUnit, targetObj);
         Orbwalk.SetAttack(true);
     }
     if (ItemBool("Harass", "Q") && SkillQ.IsReady() && !Player.IsDashing() && AACount >= 2 && SkillQ.InRange(targetObj.Position))
     {
         SkillQ.Cast(PacketCast());
     }
     if (ItemBool("Harass", "E") && !Player.IsDashing())
     {
         if (SkillE.IsReady())
         {
             if (SkillE.Instance.Name == "RenektonSliceAndDice")
             {
                 if (SkillE.InRange(targetObj.Position) && Player.HealthPercentage() >= ItemSlider("Harass", "EAbove"))
                 {
                     HarassBackPos = Player.ServerPosition;
                     SkillE.Cast(Player.Position.To2D().Extend(targetObj.Position.To2D(), targetObj.Distance3D(Player) + 200), PacketCast());
                 }
             }
             else if (!ECasted || AACount >= 2)
             {
                 SkillE.Cast(HarassBackPos, PacketCast());
             }
         }
         else if (HarassBackPos != default(Vector3))
         {
             HarassBackPos = default(Vector3);
         }
     }
 }
示例#9
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())
     {
         if (args.Target is Obj_AI_Hero && Orbwalk.CurrentMode == Orbwalk.Mode.Harass && ItemBool("Harass", "Q"))
         {
             SkillQ.Cast(PacketCast());
         }
         else if (args.Target is Obj_AI_Minion && CanKill((Obj_AI_Minion)args.Target, SkillQ) && ((Orbwalk.CurrentMode == Orbwalk.Mode.LastHit && ItemBool("Misc", "QLastHit")) || ((Orbwalk.CurrentMode == Orbwalk.Mode.LaneClear || Orbwalk.CurrentMode == Orbwalk.Mode.LaneFreeze) && ItemBool("Clear", "Q") && ItemList("Clear", "QMode") == 1)))
         {
             SkillQ.Cast(PacketCast());
         }
     }
     else if (sender.IsEnemy && ItemBool("Misc", "WSurvive") && SkillW.IsReady())
     {
         if (args.Target.IsMe && (Orbwalk.IsAutoAttack(args.SData.Name) && Player.Health <= sender.GetAutoAttackDamage(Player, true)))
         {
             SkillW.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))
                     {
                         SkillW.Cast(PacketCast());
                     }
                 }
             }
         }
     }
 }
示例#10
0
        private void LaneJungClear()
        {
            var minionObj = MinionManager.GetMinions(Player.Position, SkillE.Range - 50, MinionTypes.All, MinionTeam.NotAlly);

            if (minionObj.Count == 0)
            {
                return;
            }
            var posEFarm = SkillE.GetLineFarmLocation(minionObj);

            if (Config.Item("useClearE").GetValue <bool>() && SkillE.IsReady() && SkillE.Instance.Name == "RenektonSliceAndDice")
            {
                SkillE.Cast(posEFarm.MinionsHit >= 2 ? posEFarm.Position : minionObj.First().Position.To2D(), PacketCast());
            }
            if (Config.Item("useClearQ").GetValue <bool>() && SkillQ.IsReady() && minionObj.Count(i => i.IsValidTarget(SkillQ.Range)) >= 2 && !ECasted)
            {
                SkillQ.Cast(PacketCast());
            }
            if (Config.Item("useClearW").GetValue <bool>() && !ECasted && SkillW.IsReady() && minionObj.FirstOrDefault(i => SkillW.InRange(i.Position) && (Player.Mana >= SkillW.Instance.ManaCost) ? CanKill(i, SkillW, 1) : CanKill(i, SkillW)) != null)
            {
                SkillW.Cast(PacketCast());
            }
            if (Config.Item("useClearE").GetValue <bool>() && SkillE.IsReady() && SkillE.Instance.Name != "RenektonSliceAndDice" && !ECasted)
            {
                SkillE.Cast(posEFarm.MinionsHit >= 2 ? posEFarm.Position : minionObj.First().Position.To2D(), PacketCast());
            }
            if (Config.Item("useClearI").GetValue <bool>() && minionObj.Count(i => i.IsValidTarget(350)) >= 2 && !ECasted)
            {
                if (Items.CanUseItem(Tiamat))
                {
                    Items.UseItem(Tiamat);
                }
                if (Items.CanUseItem(Hydra))
                {
                    Items.UseItem(Hydra);
                }
            }
        }
示例#11
0
        private void LaneJungClear()
        {
            var minionObj = MinionManager.GetMinions(Player.Position, SkillE.Range - 50, MinionTypes.All, MinionTeam.NotAlly);

            if (minionObj.Count == 0)
            {
                return;
            }
            var posQFarm = SkillQ.GetLineFarmLocation(minionObj);
            var posEFarm = SkillE.GetCircularFarmLocation(minionObj);

            if (Config.Item("useClearE").GetValue <bool>() && SkillE.IsReady())
            {
                SkillE.Cast(posEFarm.MinionsHit >= 2 ? posEFarm.Position : minionObj.First().Position.To2D(), PacketCast());
            }
            if (Config.Item("useClearE").GetValue <bool>() && flagPos != default(Vector3) && minionObj.Count(i => i.IsValidTarget(180, true, flagPos)) >= 2)
            {
                if (Config.Item("useClearQ").GetValue <bool>() && SkillQ.IsReady() && SkillQ.InRange(flagPos))
                {
                    SkillQ.Cast(flagPos, PacketCast());
                }
            }
            else if (Config.Item("useClearQ").GetValue <bool>() && SkillQ.IsReady())
            {
                SkillQ.Cast(posQFarm.MinionsHit >= 2 ? posQFarm.Position : minionObj.First().Position.To2D(), PacketCast());
            }
            if (Config.Item("useClearI").GetValue <bool>() && minionObj.Count(i => i.IsValidTarget(350)) >= 2)
            {
                if (Items.CanUseItem(Tiamat))
                {
                    Items.UseItem(Tiamat);
                }
                if (Items.CanUseItem(Hydra))
                {
                    Items.UseItem(Hydra);
                }
            }
        }
示例#12
0
 private void OnGameUpdate(EventArgs args)
 {
     if (Player.IsDead || MenuGUI.IsChatOpen || Player.IsChannelingImportantSpell() || Player.IsRecalling())
     {
         return;
     }
     if (Orbwalk.CurrentMode == Orbwalk.Mode.Combo || Orbwalk.CurrentMode == Orbwalk.Mode.Harass)
     {
         NormalCombo(Orbwalk.CurrentMode.ToString());
     }
     else if (Orbwalk.CurrentMode == Orbwalk.Mode.LaneClear || Orbwalk.CurrentMode == Orbwalk.Mode.LaneFreeze)
     {
         LaneJungClear();
     }
     else if (Orbwalk.CurrentMode == Orbwalk.Mode.LastHit)
     {
         LastHit();
     }
     else if (Orbwalk.CurrentMode == Orbwalk.Mode.Flee && SkillQ.IsReady())
     {
         SkillQ.Cast(PacketCast());
     }
 }
示例#13
0
 private void NormalCombo(string Mode)
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool(Mode, "Q") && Mode == "Combo" && SkillQ.IsReady() && Player.HealthPercentage() <= ItemSlider(Mode, "QUnder") && Player.CountEnemysInRange(800) >= 1)
     {
         SkillQ.Cast(PacketCast());
     }
     if (ItemBool(Mode, "W") && SkillW.IsReady() && SkillW.InRange(targetObj.Position))
     {
         if (Utility.IsBothFacing(Player, targetObj, 35))
         {
             if (Player.GetAutoAttackDamage(targetObj, true) < targetObj.GetAutoAttackDamage(Player, true) || Player.Health < targetObj.Health)
             {
                 SkillW.Cast(PacketCast());
             }
         }
         else if (Player.IsFacing(targetObj, 35) && !targetObj.IsFacing(Player, 35) && Player.Distance3D(targetObj) > Orbwalk.GetAutoAttackRange() + 50)
         {
             SkillW.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() >= ItemSlider(Mode, "EAbove")))))
     {
         SkillE.Cast(Player.Position.To2D().Extend(targetObj.Position.To2D(), targetObj.Distance3D(Player) + 200), PacketCast());
     }
     if (ItemBool(Mode, "Item") && Mode == "Combo")
     {
         UseItem(targetObj);
     }
     if (ItemBool(Mode, "Ignite") && Mode == "Combo")
     {
         CastIgnite(targetObj);
     }
 }
示例#14
0
        private void KillStealMob()
        {
            var Obj = ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, SkillQ2.Range) && i.Team == GameObjectTeam.Neutral).FirstOrDefault(i => new string[] { "SRU_Baron", "SRU_Dragon", "SRU_Blue", "SRU_Red" }.Any(a => i.Name.StartsWith(a) && !i.Name.StartsWith(a + "Mini")));

            CustomOrbwalk(Obj);
            if (Obj == null)
            {
                return;
            }
            if (SkillQ.IsReady() && SkillQ.GetHealthPrediction(Obj) - (SkillQ.Instance.Name == "BlindMonkQOne" ? SkillQ.GetDamage(Obj) : 0) - (SmiteReady() ? Player.GetSummonerSpellDamage(Obj, Damage.SummonerSpell.Smite) : 0) + 5 <= GetQ2Dmg(Obj, ((SkillQ.Instance.Name == "BlindMonkQOne") ? SkillQ.GetDamage(Obj) : 0) + (SmiteReady() ? Player.GetSummonerSpellDamage(Obj, Damage.SummonerSpell.Smite) : 0)))
            {
                if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(Obj.Position))
                {
                    SkillQ.CastIfHitchanceEquals(Obj, HitChance.Medium, PacketCast());
                }
                else if (Obj.HasBuff("BlindMonkSonicWave"))
                {
                    SkillQ.Cast(PacketCast());
                    if (SmiteReady())
                    {
                        Utility.DelayAction.Add((int)((Player.Distance3D(Obj) - 760) / SkillQ.Speed * 1000 + 300), () => CastSmite(Obj, false));
                    }
                }
            }
            var nearObj = ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(i => IsValid(i, SkillQ2.Range) && !(i is Obj_AI_Turret) && i.HasBuff("BlindMonkSonicWave") && i.Distance3D(Obj) <= 760);

            if (SkillQ.IsReady() && SkillQ.Instance.Name != "BlindMonkQOne" && SmiteReady() && SkillQ.GetHealthPrediction(Obj) + 100 <= Player.GetSummonerSpellDamage(Obj, Damage.SummonerSpell.Smite) && nearObj != null)
            {
                SkillQ.Cast(PacketCast());
                Utility.DelayAction.Add((int)((Player.Distance3D(nearObj) - 760) / SkillQ.Speed * 1000 + 300), () => CastSmite(Obj));
            }
            if (SmiteReady())
            {
                CastSmite(Obj);
            }
        }
示例#15
0
        private void KillStealBrDr()
        {
            var minionObj = MinionManager.GetMinions(Player.Position, 1300, MinionTypes.All, MinionTeam.NotAlly).FirstOrDefault(i => i.Name == "Worm12.1.1" || i.Name == "Dragon6.1.1");

            Orbwalk(minionObj);
            if (minionObj == null)
            {
                return;
            }
            if (SkillQ.IsReady() && !SmiteReady() && minionObj.Health - SkillQ.GetDamage(minionObj) < GetQ2Dmg(minionObj, SkillQ.GetDamage(minionObj)))
            {
                if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(minionObj.Position))
                {
                    SkillQ.CastIfHitchanceEquals(minionObj, HitChance.VeryHigh, PacketCast);
                }
                else if ((minionObj.HasBuff("BlindMonkQOne", true) || minionObj.HasBuff("blindmonkqonechaos", true)) && minionObj.IsValidTarget(1300))
                {
                    SkillQ.Cast(PacketCast);
                    return;
                }
            }
            if (SkillQ.IsReady() && SmiteReady() && minionObj.Health - (SkillQ.GetDamage(minionObj) + Player.GetSummonerSpellDamage(minionObj, Damage.SummonerSpell.Smite)) < GetQ2Dmg(minionObj, SkillQ.GetDamage(minionObj) + Player.GetSummonerSpellDamage(minionObj, Damage.SummonerSpell.Smite)))
            {
                if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(minionObj.Position))
                {
                    SkillQ.CastIfHitchanceEquals(minionObj, HitChance.VeryHigh, PacketCast);
                }
                else if ((minionObj.HasBuff("BlindMonkQOne", true) || minionObj.HasBuff("blindmonkqonechaos", true)) && minionObj.IsValidTarget(1300))
                {
                    SkillQ.Cast(PacketCast);
                    Utility.DelayAction.Add(400, () => CastSmite(minionObj));
                    return;
                }
            }
            CastSmite(minionObj);
        }
示例#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());
                }
            }
        }
示例#17
0
 private void NormalCombo()
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool("Combo", "W") && (SkillW.IsReady() || Player.HasBuff("RenektonExecuteReady")) && !Player.IsDashing() && Orbwalk.InAutoAttackRange(targetObj))
     {
         Orbwalk.SetAttack(false);
         Player.IssueOrder(GameObjectOrder.AttackUnit, targetObj);
         Orbwalk.SetAttack(true);
     }
     if (ItemBool("Combo", "Q") && SkillQ.IsReady() && !Player.IsDashing() && SkillQ.InRange(targetObj.Position))
     {
         SkillQ.Cast(PacketCast());
     }
     if (ItemBool("Combo", "E") && SkillE.IsReady() && SkillE.InRange(targetObj.Position))
     {
         if (SkillE.Instance.Name == "RenektonSliceAndDice")
         {
             SkillE.Cast(Player.Position.To2D().Extend(targetObj.Position.To2D(), targetObj.Distance3D(Player) + 200), PacketCast());
         }
         else if (!ECasted || !IsValid(targetObj, SkillE.Range - 30) || CanKill(targetObj, SkillE, Player.Mana >= 50 ? 1 : 0))
         {
             SkillE.Cast(Player.Position.To2D().Extend(targetObj.Position.To2D(), targetObj.Distance3D(Player) + 200), PacketCast());
         }
     }
     if (ItemBool("Combo", "Item"))
     {
         UseItem(targetObj);
     }
     if (ItemBool("Combo", "Ignite"))
     {
         CastIgnite(targetObj);
     }
 }
示例#18
0
 private void LaneJungClear()
 {
     foreach (var Obj in ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, 450)).OrderBy(i => i.Health))
     {
         if (ItemBool("Clear", "Q") && SkillQ.IsReady())
         {
             if (CanKill(Obj, SkillQ) && Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange() + 50)
             {
                 Orbwalk.SetAttack(false);
                 Player.IssueOrder(GameObjectOrder.AttackUnit, Obj);
                 Orbwalk.SetAttack(true);
                 break;
             }
             else if (Player.Distance(Obj) > 500)
             {
                 SkillQ.Cast(PacketCast());
             }
         }
         if (ItemBool("Clear", "E") && SkillE.IsReady() && !Player.HasBuff("GarenE", true) && !Player.HasBuff("GarenQ", true) && SkillE.InRange(Obj.Position))
         {
             SkillE.Cast(PacketCast());
         }
     }
 }
示例#19
0
 private void LastHit()
 {
     if (SkillQ.IsReady() || Player.HasBuff("NasusQ", true))
     {
         Orbwalk.SetAttack(false);
         var minionObj = (Obj_AI_Base)ObjectManager.Get <Obj_AI_Turret>().FirstOrDefault(i => i.IsValidTarget() && Orbwalk.InAutoAttackRange(i) && i.Health <= GetBonusDmg(i));
         if (minionObj == null)
         {
             minionObj = MinionManager.GetMinions(Player.Position, 500, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth).FirstOrDefault(i => Orbwalk.InAutoAttackRange(i) && i.Health <= GetBonusDmg(i));
         }
         if (minionObj != null)
         {
             if (!Player.HasBuff("NasusQ", true))
             {
                 SkillQ.Cast(PacketCast());
             }
             if (Player.HasBuff("NasusQ", true))
             {
                 Player.IssueOrder(GameObjectOrder.AttackUnit, minionObj);
             }
         }
         Orbwalk.SetAttack(true);
     }
 }
示例#20
0
        private void LaneJungClear()
        {
            var minionObj = ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, 1300)).OrderBy(i => i.Health);

            foreach (var Obj in minionObj)
            {
                if (SmiteReady() && Obj.Team == GameObjectTeam.Neutral)
                {
                    string[] Mob = { "SRU_Red", "SRU_Blue", "SRU_Krug", "SRU_Gromp", "SRU_Razorbeak", "SRU_Murkwolf" };
                    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);
                    }
                }
                var Passive = Player.HasBuff("blindmonkpassive_cosmetic", true);
                if (ItemBool("Clear", "E") && SkillE.IsReady())
                {
                    if (SkillE.Instance.Name == "BlindMonkEOne" && (minionObj.Count(i => SkillE.InRange(i.Position)) >= 2 || (Obj.MaxHealth >= 1200 && SkillE.InRange(Obj.Position))))
                    {
                        if (!Passive)
                        {
                            SkillE.Cast(PacketCast());
                        }
                    }
                    else if (Obj.HasBuff("BlindMonkEOne", true) && IsValid(Obj, 575) && (!ECasted || !Passive))
                    {
                        SkillE.Cast(PacketCast());
                    }
                }
                if (ItemBool("Clear", "W") && SkillW.IsReady() && Orbwalk.InAutoAttackRange(Obj))
                {
                    if (SkillW.Instance.Name == "BlindMonkWOne")
                    {
                        if (!Passive)
                        {
                            SkillW.Cast(PacketCast());
                        }
                    }
                    else if (!WCasted || !Passive)
                    {
                        SkillW.Cast(PacketCast());
                    }
                }
                if (ItemBool("Clear", "Q") && SkillQ.IsReady())
                {
                    if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(Obj.Position))
                    {
                        if ((!Passive || !Orbwalk.InAutoAttackRange(Obj)) && !CanKill(Obj, SkillQ))
                        {
                            SkillQ.Cast(Obj, PacketCast());
                        }
                    }
                    else if ((Obj.HasBuff("BlindMonkQOne", true) || Obj.HasBuff("blindmonkqonechaos", true)) && (Obj.Health + 35 <= GetQ2Dmg(Obj) || Player.Distance3D(Obj) > 500 || !QCasted || !Passive))
                    {
                        SkillQ.Cast(PacketCast());
                    }
                }
                if (ItemBool("Clear", "Item"))
                {
                    UseItem(Obj, true);
                }
            }
        }
示例#21
0
        private void InsecCombo()
        {
            Orbwalk(targetObj);
            if (targetObj == null)
            {
                return;
            }
            Vector3 posJumpTo = default(Vector3);

            if (SkillR.IsReady() && (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex == 2 || (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2 && allyObj != null)))
            {
                var posKickTo = (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2) ? allyObj.Position : Game.CursorPos;
                posJumpTo = posKickTo + Vector3.Normalize(targetObj.Position - posKickTo) * (targetObj.Distance(posKickTo) + 250);
                if (SkillR.InRange(targetObj.Position))
                {
                    var posKick  = Player.Position + Vector3.Normalize(targetObj.Position - Player.Position) * (targetObj.Distance(Player) + 250);
                    var distKick = (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2) ? allyObj.Distance(targetObj) - allyObj.Distance(posKick) : Game.CursorPos.Distance(targetObj.Position) - Game.CursorPos.Distance(posKick);
                    if (distKick > 0 && distKick / 250 > 0.7)
                    {
                        SkillR.CastOnUnit(targetObj, PacketCast);
                        return;
                    }
                }
                if (Config.Item(Name + "insecFlash").GetValue <bool>())
                {
                    if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Distance(posJumpTo) < 600 && GetWardSlot() != null)
                    {
                        WardJump(posJumpTo);
                        InsecJumpCasted = true;
                        return;
                    }
                    else if (FlashReady() && !InsecJumpCasted)
                    {
                        var Obj = ObjectManager.Get <Obj_AI_Base>().Where(i => !i.IsMe && i.IsAlly && !(i is Obj_AI_Turret) && i.Distance(Player) <= SkillW.Range + i.BoundingRadius && i.Distance(posJumpTo) < 550).OrderBy(i => i.Distance(posJumpTo)).FirstOrDefault();
                        if (Obj != null)
                        {
                            if (Player.Distance(posJumpTo) < 1000 && !FlyCasted)
                            {
                                if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && !JumpCasted)
                                {
                                    SkillW.CastOnUnit(Obj, PacketCast);
                                    JumpCasted = true;
                                    Utility.DelayAction.Add(1000, () => JumpCasted = false);
                                }
                                if (SkillW.IsReady() && SkillW.Instance.Name != "BlindMonkWOne" && JumpCasted)
                                {
                                    Utility.DelayAction.Add(400, () =>
                                    {
                                        CastFlash(posJumpTo);
                                        SkillR.CastOnUnit(targetObj, PacketCast);
                                    });
                                    return;
                                }
                            }
                        }
                        else if (!JumpCasted && Player.Distance(posJumpTo) < 600)
                        {
                            CastFlash(posJumpTo);
                            return;
                        }
                    }
                }
                else if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Distance(posJumpTo) < 600)
                {
                    WardJump(posJumpTo);
                    return;
                }
            }
            if (SkillQ.IsReady())
            {
                if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position))
                {
                    if (Config.Item(Name + "smite").GetValue <bool>() && SkillQ.GetPrediction(targetObj).Hitchance == HitChance.Collision)
                    {
                        if (!SmiteCollision(targetObj, SkillQ))
                        {
                            SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast);
                        }
                    }
                    else
                    {
                        if (posJumpTo != default(Vector3) && SkillR.IsReady())
                        {
                            var enemyObj = ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(i => i.IsValidTarget(SkillQ.Range) && i.Distance(posJumpTo) < 550 && SkillQ.GetPrediction(i).Hitchance >= HitChance.Medium && !CanKill(i, SkillQ));
                            SkillQ.CastIfHitchanceEquals((enemyObj != null) ? enemyObj : targetObj, (enemyObj != null) ? HitChance.Medium : HitChance.VeryHigh, PacketCast);
                        }
                        else
                        {
                            SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast);
                        }
                    }
                }
                else
                {
                    if ((targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && targetObj.IsValidTarget(1300))
                    {
                        if (CanKill(targetObj, SkillQ, 1) || (!SkillR.IsReady() && !RCasted && KickCasted) || Player.Distance(SkillR.IsReady() ? posJumpTo : targetObj.Position) > 600 || !QCasted)
                        {
                            SkillQ.Cast(PacketCast);
                        }
                    }
                    else if (posJumpTo != default(Vector3) && SkillR.IsReady())
                    {
                        if (ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(i => (i.HasBuff("BlindMonkQOne", true) || i.HasBuff("blindmonkqonechaos", true)) && i.IsValidTarget(1300) && i.Distance(posJumpTo) < 550) != null)
                        {
                            SkillQ.Cast(PacketCast);
                        }
                    }
                }
            }
        }
示例#22
0
 private void NormalCombo()
 {
     if (targetObj == null)
     {
         return;
     }
     if (Config.Item(Name + "pusage").GetValue <bool>() && Player.HasBuff("blindmonkpassive_cosmetic", true) && LXOrbwalker.InAutoAttackRange(targetObj) && LXOrbwalker.CanAttack())
     {
         return;
     }
     if (Config.Item(Name + "eusage").GetValue <bool>() && SkillE.IsReady() && SkillE.Instance.Name == "BlindMonkEOne" && SkillE.InRange(targetObj.Position))
     {
         SkillE.Cast(PacketCast);
     }
     if (Config.Item(Name + "qusage").GetValue <bool>() && SkillQ.IsReady())
     {
         if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position))
         {
             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);
             }
         }
         else if (targetObj.IsValidTarget(1300) && (targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)))
         {
             if (Player.Distance(targetObj) > 500 || CanKill(targetObj, SkillQ, 1) || (targetObj.HasBuff("BlindMonkEOne", true) && SkillE.InRange(targetObj.Position)) || !QCasted)
             {
                 SkillQ.Cast(PacketCast);
             }
         }
     }
     if (Config.Item(Name + "eusage").GetValue <bool>() && SkillE.IsReady() && targetObj.IsValidTarget(575) && targetObj.HasBuff("BlindMonkEOne", true) && (Player.Distance(targetObj) > 450 || !ECasted))
     {
         SkillE.Cast(PacketCast);
     }
     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) || (targetObj.Health - SkillR.GetDamage(targetObj) < GetQ2Dmg(targetObj, SkillR.GetDamage(targetObj)) && SkillQ.IsReady() && (targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && Player.Mana >= 50))
         {
             SkillR.CastOnUnit(targetObj, PacketCast);
         }
     }
     if (Config.Item(Name + "wusage").GetValue <bool>() && SkillW.IsReady() && SkillE.InRange(targetObj.Position) && Player.Health * 100 / Player.MaxHealth <= Config.Item(Name + "autowusage").GetValue <Slider>().Value)
     {
         if (SkillW.Instance.Name == "BlindMonkWOne" && !WCasted)
         {
             SkillW.Cast(PacketCast);
             WCasted = true;
             Utility.DelayAction.Add(1000, () => WCasted = false);
         }
         else if (!Player.HasBuff("blindmonkwoneshield", true) && !WCasted)
         {
             SkillW.Cast(PacketCast);
         }
     }
     if (Config.Item(Name + "iusage").GetValue <bool>())
     {
         UseItem(targetObj);
     }
     if (Config.Item(Name + "ignite").GetValue <bool>())
     {
         CastIgnite(targetObj);
     }
 }
示例#23
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);
            }
        }
示例#24
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();
                        }
                    }
                }
            }
        }
示例#25
0
 private void InsecCombo()
 {
     CustomOrbwalk(targetObj);
     if (targetObj == null)
     {
         return;
     }
     if (GetInsecPos() != default(Vector3))
     {
         if (SkillR.InRange(targetObj.Position) && (GetInsecPos(true).Distance(targetObj.Position) - GetInsecPos(true).Distance(Player.Position.To2D().Extend(targetObj.Position.To2D(), targetObj.Distance3D(Player) + 500).To3D())) / 500 > 0.7)
         {
             SkillR.CastOnUnit(targetObj, PacketCast());
             return;
         }
         if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Position.Distance(GetInsecPos()) < 600 && (GetWardSlot() != null || GetWardSlot().Stacks > 0 || WardCasted))
         {
             WardJump(GetInsecPos());
             if (ItemBool("Insec", "Flash"))
             {
                 InsecJumpCasted = true;
             }
             return;
         }
         if (ItemBool("Insec", "Flash") && FlashReady() && !InsecJumpCasted && !WardCasted)
         {
             var jumpObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillW.Range + i.BoundingRadius, false) && !(i is Obj_AI_Turret) && i.Position.Distance(GetInsecPos()) < 500).OrderBy(i => i.Position.Distance(GetInsecPos()));
             if (jumpObj.Count() > 0 && !JumpCasted)
             {
                 foreach (var Obj in jumpObj)
                 {
                     if (Player.Position.Distance(GetInsecPos()) < Player.Distance3D(Obj) + Obj.Position.Distance(GetInsecPos()) && !FlyCasted)
                     {
                         if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne")
                         {
                             SkillW.CastOnUnit(Obj, PacketCast());
                             return;
                         }
                     }
                 }
             }
             else if (Player.Position.Distance(GetInsecPos()) < 600 && !JumpCasted)
             {
                 CastFlash(GetInsecPos());
                 return;
             }
         }
     }
     if (SkillQ.IsReady())
     {
         if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position))
         {
             var nearObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillQ.Range) && !(i is Obj_AI_Turret) && i.Position.Distance(GetInsecPos()) < 500 && !CanKill(i, SkillQ)).OrderBy(i => i.Position.Distance(GetInsecPos()));
             if (GetInsecPos() != default(Vector3) && nearObj.Count() > 0)
             {
                 foreach (var Obj in nearObj)
                 {
                     SkillQ.CastIfHitchanceEquals(Obj, HitChance.VeryHigh, PacketCast());
                 }
             }
             else
             {
                 if (ItemBool("Misc", "SmiteCol"))
                 {
                     if (!SmiteCollision(targetObj, SkillQ))
                     {
                         SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                     }
                 }
                 else
                 {
                     SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                 }
             }
         }
         else if ((targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && IsValid(targetObj, 1300) && (CanKill(targetObj, SkillQ, 1) || (!SkillR.IsReady() && !RCasted && KickCasted) || Player.Position.Distance((GetInsecPos() != default(Vector3)) ? GetInsecPos() : targetObj.Position) > 600 || !QCasted))
         {
             SkillQ.Cast(PacketCast());
         }
         else if (GetInsecPos() != default(Vector3) && ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(i => (i.HasBuff("BlindMonkQOne", true) || i.HasBuff("blindmonkqonechaos", true)) && IsValid(i, 1300) && i.Position.Distance(GetInsecPos()) < 500) != null)
         {
             SkillQ.Cast(PacketCast());
         }
     }
 }
示例#26
0
        private void Harass()
        {
            if (targetObj == null)
            {
                CurHarassStage = HarassStage.Nothing;
                return;
            }
            switch (CurHarassStage)
            {
            case HarassStage.Nothing:
                CurHarassStage = HarassStage.Doing;
                break;

            case HarassStage.Doing:
                if (SkillQ.IsReady())
                {
                    if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position))
                    {
                        if (ItemBool("Misc", "SmiteCol"))
                        {
                            if (!SmiteCollision(targetObj, SkillQ))
                            {
                                SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                            }
                        }
                        else
                        {
                            SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                        }
                    }
                    else if ((targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && IsValid(targetObj, 1300) && (CanKill(targetObj, SkillQ, 1) || (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Mana >= SkillW.Instance.ManaCost + ((ItemBool("Harass", "E") && SkillE.IsReady() && SkillE.Instance.Name == "BlindMonkEOne") ? SkillQ.Instance.ManaCost + SkillE.Instance.ManaCost : SkillQ.Instance.ManaCost) && Player.Health * 100 / Player.MaxHealth >= ItemSlider("Harass", "Q2Above"))))
                    {
                        HarrasBackPos = Player.ServerPosition;
                        SkillQ.Cast(PacketCast());
                        Utility.DelayAction.Add((int)((Player.Distance3D(targetObj) + ((ItemBool("Harass", "E") && SkillE.IsReady() && SkillE.Instance.Name == "BlindMonkEOne") ? SkillE.Range : 0)) / SkillQ.Speed * 1000 - 100) * 2, () => CurHarassStage = HarassStage.Finish);
                    }
                }
                if (ItemBool("Harass", "E") && SkillE.IsReady())
                {
                    if (SkillE.Instance.Name == "BlindMonkEOne" && SkillE.InRange(targetObj.Position))
                    {
                        SkillE.Cast(PacketCast());
                    }
                    else if (targetObj.HasBuff("BlindMonkEOne", true) && IsValid(targetObj, 575))
                    {
                        CurHarassStage = HarassStage.Finish;
                    }
                }
                break;

            case HarassStage.Finish:
                if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne")
                {
                    var jumpObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillW.Range + i.BoundingRadius, false) && !(i is Obj_AI_Turret)).OrderByDescending(i => i.Distance3D(Player)).OrderBy(i => ObjectManager.Get <Obj_AI_Turret>().Where(a => IsValid(a, float.MaxValue, false)).OrderBy(a => a.Distance3D(Player)).FirstOrDefault().Distance3D(i));
                    if (jumpObj.Count() > 0 && !JumpCasted)
                    {
                        foreach (var Obj in jumpObj)
                        {
                            SkillW.CastOnUnit(Obj, PacketCast());
                        }
                    }
                    else if (GetWardSlot() != null || GetWardSlot().Stacks > 0 || WardCasted)
                    {
                        WardJump(HarrasBackPos);
                    }
                }
                else
                {
                    if (HarrasBackPos != default(Vector3))
                    {
                        HarrasBackPos = default(Vector3);
                    }
                    CurHarassStage = HarassStage.Nothing;
                }
                break;
            }
        }
示例#27
0
 private void NormalCombo()
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool("Combo", "Passive") && Player.HasBuff("blindmonkpassive_cosmetic", true) && Orbwalk.InAutoAttackRange(targetObj) && Orbwalk.CanAttack())
     {
         return;
     }
     if (ItemBool("Combo", "E") && SkillE.IsReady())
     {
         if (SkillE.Instance.Name == "BlindMonkEOne" && SkillE.InRange(targetObj.Position))
         {
             SkillE.Cast(PacketCast());
         }
         else if (targetObj.HasBuff("BlindMonkEOne", true) && IsValid(targetObj, 575) && (Player.Distance3D(targetObj) > 450 || !ECasted))
         {
             SkillE.Cast(PacketCast());
         }
     }
     if (ItemBool("Combo", "Q") && SkillQ.IsReady())
     {
         if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position))
         {
             if (ItemBool("Misc", "SmiteCol"))
             {
                 if (!SmiteCollision(targetObj, SkillQ))
                 {
                     SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                 }
             }
             else
             {
                 SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
             }
         }
         else if ((targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && IsValid(targetObj, 1300))
         {
             if (Player.Distance3D(targetObj) > 500 || CanKill(targetObj, SkillQ, 1) || (targetObj.HasBuff("BlindMonkEOne", true) && SkillE.InRange(targetObj.Position) && !Orbwalk.InAutoAttackRange(targetObj)) || !QCasted)
             {
                 SkillQ.Cast(PacketCast());
             }
         }
     }
     if (ItemBool("Combo", "R") && ItemBool("Ultimate", targetObj.ChampionName) && SkillR.IsReady() && SkillR.InRange(targetObj.Position))
     {
         if (CanKill(targetObj, SkillR) || (targetObj.Health - SkillR.GetDamage(targetObj) + 35 <= GetQ2Dmg(targetObj, SkillR.GetDamage(targetObj)) && SkillQ.IsReady() && IsValid(targetObj, 1300) && (targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true))))
         {
             SkillR.CastOnUnit(targetObj, PacketCast());
         }
     }
     if (ItemBool("Combo", "W") && SkillW.IsReady() && Orbwalk.InAutoAttackRange(targetObj) && Player.Health * 100 / Player.MaxHealth <= ItemList("Combo", "WUnder"))
     {
         if (SkillW.Instance.Name == "BlindMonkWOne")
         {
             SkillW.Cast(PacketCast());
         }
         else if (!Player.HasBuff("blindmonkwoneshield", true) && !WCasted)
         {
             SkillW.Cast(PacketCast());
         }
     }
     if (ItemBool("Combo", "Item"))
     {
         UseItem(targetObj);
     }
     if (ItemBool("Combo", "Ignite"))
     {
         CastIgnite(targetObj);
     }
 }
示例#28
0
 private void NormalCombo()
 {
     if (targetObj == null)
     {
         return;
     }
     if (ItemBool("Combo", "Passive") && Player.HasBuff("BlindMonkFlurry") && Orbwalk.InAutoAttackRange(targetObj) && Orbwalk.CanAttack())
     {
         return;
     }
     if (ItemBool("Combo", "E") && SkillE.IsReady())
     {
         if (SkillE.Instance.Name == "BlindMonkEOne" && SkillE.InRange(targetObj.Position))
         {
             SkillE.Cast(PacketCast());
         }
         else if (targetObj.HasBuff("BlindMonkTempest") && SkillE2.InRange(targetObj.Position) && (Player.Distance3D(targetObj) > 450 || !ECasted))
         {
             SkillE.Cast(PacketCast());
         }
     }
     if (ItemBool("Combo", "Q") && SkillQ.IsReady())
     {
         if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position))
         {
             if (ItemBool("Misc", "SmiteCol"))
             {
                 if (!SmiteCollision(targetObj, SkillQ))
                 {
                     SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                 }
             }
             else
             {
                 SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
             }
         }
         else if (targetObj.HasBuff("BlindMonkSonicWave") && SkillQ2.InRange(targetObj.Position))
         {
             if (Player.Distance3D(targetObj) > 500 || CanKill(targetObj, SkillQ2, 1) || (targetObj.HasBuff("BlindMonkTempest") && SkillE.InRange(targetObj.Position) && !Orbwalk.InAutoAttackRange(targetObj)) || !QCasted)
             {
                 SkillQ.Cast(PacketCast());
             }
         }
     }
     if (ItemBool("Combo", "R") && ItemBool("Ultimate", targetObj.ChampionName) && SkillR.IsReady() && SkillR.InRange(targetObj.Position))
     {
         if (CanKill(targetObj, SkillR) || (SkillR.GetHealthPrediction(targetObj) - SkillR.GetDamage(targetObj) + 5 <= GetQ2Dmg(targetObj, SkillR.GetDamage(targetObj)) && ItemBool("Combo", "Q") && SkillQ.IsReady() && targetObj.HasBuff("BlindMonkSonicWave")))
         {
             SkillR.CastOnUnit(targetObj, PacketCast());
         }
     }
     if (ItemBool("Combo", "W") && SkillW.IsReady())
     {
         if (ItemBool("Combo", "WSurvive") || ItemBool("Combo", "WGap"))
         {
             if (SkillW.Instance.Name == "BlindMonkWOne")
             {
                 if (ItemBool("Combo", "WSurvive") && Orbwalk.InAutoAttackRange(targetObj) && Player.HealthPercentage() <= ItemList("Combo", "WUnder"))
                 {
                     SkillW.Cast(PacketCast());
                 }
                 else if (ItemBool("Combo", "WGap") && Player.Distance3D(targetObj) >= Orbwalk.GetAutoAttackRange() + 50)
                 {
                     var jumpObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillW.Range + i.BoundingRadius, false) && !(i is Obj_AI_Turret) && i.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 50).OrderBy(i => i.Distance3D(targetObj));
                     if (jumpObj.Count() > 0 && !JumpCasted)
                     {
                         foreach (var Obj in jumpObj)
                         {
                             SkillW.CastOnUnit(Obj, PacketCast());
                         }
                     }
                     else if (ItemBool("Combo", "WGapWard") && Player.Distance3D(targetObj) <= SkillW.Range + Orbwalk.GetAutoAttackRange() + 50 && (GetWardSlot() != null || GetWardSlot().Stacks > 0 || WardCasted))
                     {
                         WardJump(targetObj.Position);
                     }
                 }
             }
             else if (SkillE.InRange(targetObj.Position) && !Player.HasBuff("BlindMonkSafeguard") && !WCasted)
             {
                 SkillW.Cast(PacketCast());
             }
         }
     }
     if (ItemBool("Combo", "Item"))
     {
         UseItem(targetObj);
     }
     if (ItemBool("Combo", "Ignite"))
     {
         CastIgnite(targetObj);
     }
 }
示例#29
0
        private void LaneJungClear()
        {
            var minionObj = ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, SkillQ2.Range)).OrderBy(i => i.Health);

            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);
                    }
                }
                var Passive = Player.HasBuff("BlindMonkFlurry");
                if (ItemBool("Clear", "E") && SkillE.IsReady() && !FarmCasted)
                {
                    if (SkillE.Instance.Name == "BlindMonkEOne" && (minionObj.Count(i => SkillE.InRange(i.Position)) >= 2 || (Obj.MaxHealth >= 1200 && SkillE.InRange(Obj.Position))))
                    {
                        if (!Passive)
                        {
                            SkillE.Cast(PacketCast());
                            FarmCasted = true;
                            Utility.DelayAction.Add(500, () => FarmCasted = false);
                        }
                    }
                    else if (Obj.HasBuff("BlindMonkTempest") && SkillE2.InRange(Obj.Position) && (!ECasted || !Passive))
                    {
                        SkillE.Cast(PacketCast());
                        FarmCasted = true;
                        Utility.DelayAction.Add(500, () => FarmCasted = false);
                    }
                }
                if (ItemBool("Clear", "W") && SkillW.IsReady() && !FarmCasted)
                {
                    if (SkillW.Instance.Name == "BlindMonkWOne")
                    {
                        if (!Passive && Orbwalk.InAutoAttackRange(Obj))
                        {
                            SkillW.Cast(PacketCast());
                            FarmCasted = true;
                            Utility.DelayAction.Add(500, () => FarmCasted = false);
                        }
                    }
                    else if (SkillE.InRange(Obj.Position) && (!WCasted || !Passive))
                    {
                        SkillW.Cast(PacketCast());
                        FarmCasted = true;
                        Utility.DelayAction.Add(500, () => FarmCasted = false);
                    }
                }
                if (ItemBool("Clear", "Q") && SkillQ.IsReady() && !FarmCasted)
                {
                    if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(Obj.Position))
                    {
                        if ((!Passive || !Orbwalk.InAutoAttackRange(Obj)) && !CanKill(Obj, SkillQ))
                        {
                            SkillQ.CastIfHitchanceEquals(Obj, HitChance.Medium, PacketCast());
                        }
                    }
                    else if (Obj.HasBuff("BlindMonkSonicWave") && (SkillQ2.GetHealthPrediction(Obj) + 5 <= GetQ2Dmg(Obj) || Player.Distance3D(Obj) > 500 || !QCasted || !Passive))
                    {
                        SkillQ.Cast(PacketCast());
                    }
                }
                if (ItemBool("Clear", "Item"))
                {
                    UseItem(Obj, true);
                }
            }
        }
示例#30
0
 private void StarCombo()
 {
     CustomOrbwalk(targetObj);
     if (targetObj == null)
     {
         return;
     }
     UseItem(targetObj);
     if (SkillE.IsReady())
     {
         if (SkillE.Instance.Name == "BlindMonkEOne" && SkillE.InRange(targetObj.Position))
         {
             SkillE.Cast(PacketCast());
         }
         else if (targetObj.HasBuff("BlindMonkTempest") && SkillE2.InRange(targetObj.Position) && (Player.Distance3D(targetObj) > 450 || !ECasted))
         {
             SkillE.Cast(PacketCast());
         }
     }
     if (SkillQ.IsReady())
     {
         if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position))
         {
             if (ItemBool("Misc", "SmiteCol"))
             {
                 if (!SmiteCollision(targetObj, SkillQ))
                 {
                     SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
                 }
             }
             else
             {
                 SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast());
             }
         }
         else if (targetObj.HasBuff("BlindMonkSonicWave") && SkillQ2.InRange(targetObj.Position) && (CanKill(targetObj, SkillQ2, 1) || (!SkillR.IsReady() && !RCasted && KickCasted) || (!SkillR.IsReady() && !RCasted && !KickCasted && !QCasted)))
         {
             SkillQ.Cast(PacketCast());
         }
     }
     if (SkillW.IsReady())
     {
         if (SkillW.Instance.Name == "BlindMonkWOne")
         {
             if (SkillR.IsReady())
             {
                 if (SkillQ.IsReady() && targetObj.HasBuff("BlindMonkSonicWave") && !SkillR.InRange(targetObj.Position) && Player.Distance3D(targetObj) < SkillW.Range + SkillR.Range - 170)
                 {
                     WardJump(targetObj.Position);
                 }
             }
             else if (Orbwalk.InAutoAttackRange(targetObj))
             {
                 SkillW.Cast(PacketCast());
             }
         }
         else if (SkillE.InRange(targetObj.Position) && !Player.HasBuff("BlindMonkSafeguard") && !WCasted)
         {
             SkillW.Cast(PacketCast());
         }
     }
     if (SkillR.IsReady() && SkillQ.IsReady() && targetObj.HasBuff("BlindMonkSonicWave") && SkillR.InRange(targetObj.Position))
     {
         SkillR.CastOnUnit(targetObj, PacketCast());
     }
 }