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()); } } }
bool CanContinueWith(StarSolutions s) { return(s == solution); }
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); } } }