コード例 #1
0
ファイル: StarCombo.cs プロジェクト: spall9/MoonyLeeKicks
 private void SearchForSolution()
 {
     if (canAllyJump && Enabled(MenuEntry.UseAlly))
     {
         solution = StarSolutions.Ally;
     }
     else if (canWardJump && target.Distance(me) <= WardManager.WardRange && Enabled(MenuEntry.UseWard))
     {
         solution = StarSolutions.Ward;
     }
     else if (canFlash && target.Distance(me) <= SpellManager.Flash.Range && Enabled(MenuEntry.UseFlash))
     {
         solution = StarSolutions.Flash;
     }
     else if ((canWardJump || canAllyJump) && canFlash && Enabled(MenuEntry.UseFlash))//maybe flash + ward?
     {
         var ally =
             EntityManager.Heroes.Allies.Where(
                 x => x.IsValid && x.Distance(target) < SpellManager.R.Range)
             .OrderBy(x => x.Distance(me)).FirstOrDefault();
         bool allyValid = ally != null && !ally.Equals(default(AIHeroClient)) && ally.IsValid;
         if (allyValid && ally.Distance(me) <= SpellManager.W1.Range + SpellManager.Flash.Range && Enabled(MenuEntry.UseAlly))
         {
             SpellManager.Flash.Cast(me.Position.Extend(ally, SpellManager.Flash.Range).To3D());
         }
         else if (target.Distance(me) <= WardManager.WardRange + SpellManager.Flash.Range && canWardJump &&
                  Enabled(MenuEntry.UseWard))
         {
             WardManager.CastWardTo(me.Position.Extend(target, WardManager.WardRange).To3D());
         }
     }
 }
コード例 #2
0
ファイル: StarCombo.cs プロジェクト: spall9/MoonyLeeKicks
 bool CanContinueWith(StarSolutions s)
 {
     return(s == solution);
 }
コード例 #3
0
ファイル: StarCombo.cs プロジェクト: spall9/MoonyLeeKicks
        private void GameOnOnUpdate(EventArgs args)
        {
            if (!LeeSinMenu.starComboMenu["starComboKey"].Cast <KeyBind>().CurrentValue)
            {
                errorString = string.Empty;
                return;
            }

            if (target.HasBuff("BlindMonkQOne") && SpellManager.CanCastQ2)
            {
                SpellManager.Q2.Cast();
            }

            if (!hasResources)
            {
                if (!SpellManager.R.IsReady())
                {
                    errorString = "R not ready";
                }
                else if ((!WardManager.CanCastWard || !SpellManager.FlashReady) && !canAllyJump)
                {
                    errorString = "Cannot dash";
                }
                else if (canAllyJump && (!SpellManager.CanCastW1 || me.Mana < 50))
                {
                    errorString = "Cannot jump to ally";
                }

                return;
            }
            else if (!SelectionHandler.LastTargetValid)
            {
                errorString = "Target not selected";
                return;
            }
            else
            {
                errorString = string.Empty;
            }

            Orbwalker.OrbwalkTo(Game.CursorPos);

            if (solution == StarSolutions.None)
            {
                SearchForSolution();
            }
            else
            {
                Core.DelayAction(() =>
                {
                    if (solution != StarSolutions.None)
                    {
                        solution = StarSolutions.None;
                    }
                }, 4000);
            }

            if (CanContinueWith(StarSolutions.Ally))
            {
                if (SpellManager.CanCastW1 && me.Mana >= 50)
                {
                    var ally =
                        EntityManager.Heroes.Allies.Where(
                            x =>
                            x.IsValid && x.Distance(me) <= SpellManager.W1.Range &&
                            x.Distance(target) < SpellManager.R.Range)
                        .OrderBy(x => x.Distance(target))
                        .First();
                    SpellManager.W1.Cast(ally);
                }

                if (target.Distance(me) <= SpellManager.R.Range)
                {
                    SpellManager.R.Cast(target);
                }
            }
            else if (CanContinueWith(StarSolutions.Ward))
            {
                if (canWardJump)
                {
                    var jumpPos = GetJumpPos(true, Enabled(MenuEntry.MovementPrediction)).To3D();
                    WardManager.CastWardTo(jumpPos);
                }

                if (target.Distance(me) <= SpellManager.R.Range)
                {
                    SpellManager.R.Cast(target);
                }
            }
            else if (CanContinueWith(StarSolutions.Flash))
            {
                if (canFlash)
                {
                    SpellManager.Flash.Cast(GetJumpPos(false).To3D());
                }

                if (target.Distance(me) <= SpellManager.R.Range)
                {
                    SpellManager.R.Cast(target);
                }
            }
        }