void Awake() { instance = this; }
protected override void AddToMenu() { var ultimateMenu = Ultimate.AddToMenu(Menu); ultimateMenu.AddItem( new MenuItem(ultimateMenu.Name + ".range", "Range").SetValue(new Slider((int)R.Range, 1000, 3000))) .ValueChanged += delegate(object sender, OnValueChangeEventArgs args) { R.Range = args.GetNewValue <Slider>().Value; }; R.Range = Menu.Item(ultimateMenu.Name + ".range").GetValue <Slider>().Value; var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.High }, { "W", HitChance.VeryHigh }, { "R", HitChance.High } }); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".e-mode", "E Mode").SetValue(new StringList(new[] { "Auto", "Cursor" }))); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".e-safety", "E Safety Distance").SetValue(new Slider(300, 0, 500))); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.High }, { "W", HitChance.VeryHigh } }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { DefaultValue = 30 }); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(false)); var laneClearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ResourceManager.AddToMenu( laneClearMenu, new ResourceManagerArgs( "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 50, 30, 30 } }); laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".q", "Use Q").SetValue(true)); var jungleClearMenu = Menu.AddSubMenu(new Menu("Jungle Clear", Menu.Name + ".jungle-clear")); ResourceManager.AddToMenu( jungleClearMenu, new ResourceManagerArgs( "jungle-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 50, 30, 30 } }); jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".q", "Use Q").SetValue(true)); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true)); var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", "Use Q").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); miscMenu.AddItem(new MenuItem(miscMenu.Name + ".w-push", "W Pushing").SetValue(true)); var qGapcloserMenu = miscMenu.AddSubMenu(new Menu("Q Gapcloser", miscMenu.Name + "q-gapcloser")); GapcloserManager.AddToMenu( qGapcloserMenu, new HeroListManagerArgs("q-gapcloser") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(qGapcloserMenu, "q-gapcloser", true); var eGapcloserMenu = miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser")); GapcloserManager.AddToMenu( eGapcloserMenu, new HeroListManagerArgs("e-gapcloser") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }, true); BestTargetOnlyManager.AddToMenu(eGapcloserMenu, "e-gapcloser"); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q); IndicatorManager.Add(W); IndicatorManager.Add("R", hero => R.IsReady() ? R.GetDamage(hero) * 0.8f : 0); IndicatorManager.Finale(); }
protected override void AddToMenu() { var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.High } }); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".gold-percent", "Pick Gold Health <= %").SetValue(new Slider(20, 5, 75))); comboMenu.AddItem( new MenuItem(comboMenu.Name + ".red-min", "Pick Red Targets >=").SetValue(new Slider(3, 1, 5))); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.High } }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { DefaultValue = 30 }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass-blue", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "W Blue", DefaultValue = 50 }); harassMenu.AddItem( new MenuItem(harassMenu.Name + ".w-card", "Pick Card").SetValue( new StringList(new[] { "Auto", "Gold", "Red", "Blue" }, 3))); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ResourceManager.AddToMenu( laneclearMenu, new ResourceManagerArgs( "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, MaxValue = 101, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 50, 50, 50 }, IgnoreJungleOption = true }); ResourceManager.AddToMenu( laneclearMenu, new ResourceManagerArgs( "lane-clear-blue", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "Blue", Advanced = true, MaxValue = 101, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 60, 60, 60 }, IgnoreJungleOption = true }); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q-min", "Q Min.").SetValue(new Slider(4, 1, 5))); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w", "Use W").SetValue(true)); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".w", "Use Gold Card").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); var qImmobileMenu = miscMenu.AddSubMenu(new Menu("Q Immobile", miscMenu.Name + "q-immobile")); HeroListManager.AddToMenu( qImmobileMenu, new HeroListManagerArgs("q-immobile") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(qImmobileMenu, "q-immobile", true); miscMenu.AddItem( new MenuItem(miscMenu.Name + ".q-range", "Q Range").SetValue( new Slider((int)Q.Range, 500, (int)Q.Range))).ValueChanged += delegate(object sender, OnValueChangeEventArgs args) { Q.Range = args.GetNewValue <Slider>().Value; }; miscMenu.AddItem( new MenuItem(miscMenu.Name + ".w-range", "Card Pick Distance").SetValue( new Slider((int)W.Range, 500, 800))).ValueChanged += delegate(object sender, OnValueChangeEventArgs args) { W.Range = args.GetNewValue <Slider>().Value; }; miscMenu.AddItem( new MenuItem(miscMenu.Name + ".w-delay", "Card Pick Delay").SetValue(new Slider(150, 0, 400))) .ValueChanged += delegate(object sender, OnValueChangeEventArgs args) { Cards.Delay = args.GetNewValue <Slider>().Value; }; miscMenu.AddItem( new MenuItem(miscMenu.Name + ".mode", "W Mode").SetValue(new StringList(new[] { "Burst", "Team" }))); miscMenu.AddItem(new MenuItem(miscMenu.Name + ".r-card", "Pick Card on R").SetValue(true)); var manualMenu = Menu.AddSubMenu(new Menu("Manual", Menu.Name + ".manual")); manualMenu.AddItem( new MenuItem(manualMenu.Name + ".blue", "Hotkey Blue").SetValue(new KeyBind('T', KeyBindType.Press))); manualMenu.AddItem( new MenuItem(manualMenu.Name + ".red", "Hotkey Red").SetValue(new KeyBind('Y', KeyBindType.Press))); manualMenu.AddItem( new MenuItem(manualMenu.Name + ".gold", "Hotkey Gold").SetValue(new KeyBind('U', KeyBindType.Press))); Q.Range = Menu.Item(Menu.Name + ".miscellaneous.q-range").GetValue <Slider>().Value; W.Range = Menu.Item(Menu.Name + ".miscellaneous.w-range").GetValue <Slider>().Value; Cards.Delay = Menu.Item(Menu.Name + ".miscellaneous.w-delay").GetValue <Slider>().Value; IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q); IndicatorManager.Add( "W", hero => (W.IsReady() || Cards.Status == SelectStatus.Selecting || Cards.Status == SelectStatus.Ready) && Cards.Status != SelectStatus.Selected ? W.GetDamage(hero) : (Cards.Status == SelectStatus.Selected ? (Cards.Has(CardColor.Blue) ? W.GetDamage(hero) : (Cards.Has(CardColor.Red) ? W.GetDamage(hero, 1) : W.GetDamage(hero, 2))) : 0)); IndicatorManager.Add("E", hero => E.Level > 0 && GetEStacks() >= 2 ? E.GetDamage(hero) : 0); IndicatorManager.Finale(); _eStacks = DrawingManager.Add("E Stacks", true); _rMinimap = DrawingManager.Add("R Minimap", true); }
protected override void AddToMenu() { DrawingManager.Add("R Flash", R.Range + SummonerManager.Flash.Range); var ultimateMenu = _ultimate.AddToMenu(Menu); ultimateMenu.AddItem( new MenuItem(ultimateMenu.Name + ".range", "Range").SetValue(new Slider(700, 400, 825))).ValueChanged += delegate(object sender, OnValueChangeEventArgs args) { R.Range = args.GetNewValue <Slider>().Value; DrawingManager.Update("R Flash", args.GetNewValue <Slider>().Value + SummonerManager.Flash.Range); }; ultimateMenu.AddItem(new MenuItem(ultimateMenu.Name + ".backwards", "Backwards Flash").SetValue(true)); var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.High }, { "W", HitChance.High }, { "R", HitChance.High } }); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".aa", "Use AutoAttacks").SetValue(false)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.VeryHigh }, { "W", HitChance.High } }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { DefaultValue = 30 }); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".aa", "Use AutoAttacks").SetValue(false)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e", "Use E").SetValue(true)); var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ResourceManager.AddToMenu( laneclearMenu, new ResourceManagerArgs( "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 50, 30, 30 }, IgnoreJungleOption = true }); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".aa", "Use AutoAttacks").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w", "Use W").SetValue(true)); laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e", "Use E").SetValue(true)); var lasthitMenu = Menu.AddSubMenu(new Menu("Last Hit", Menu.Name + ".lasthit")); ResourceManager.AddToMenu( lasthitMenu, new ResourceManagerArgs( "lasthit", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Maximum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 90, 70, 70 } }); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e", "Use E").SetValue(true)); lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e-poison", "Use E Poison").SetValue(true)); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".w", "Use W").SetValue(true)); var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".e", "Use E").SetValue(true)); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".e-poison", "Use E Poison Only").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); DelayManager.AddToMenu(miscMenu, "e-delay", "E", 420, 0, 1000); var qGapcloserMenu = miscMenu.AddSubMenu(new Menu("Q Gapcloser", miscMenu.Name + "q-gapcloser")); GapcloserManager.AddToMenu( qGapcloserMenu, new HeroListManagerArgs("q-gapcloser") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(qGapcloserMenu, "q-gapcloser", true); var qFleeingMenu = miscMenu.AddSubMenu(new Menu("Q Fleeing", miscMenu.Name + "q-fleeing")); HeroListManager.AddToMenu( qFleeingMenu, new HeroListManagerArgs("q-fleeing") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(qFleeingMenu, "q-fleeing", true); var wGapcloserMenu = miscMenu.AddSubMenu(new Menu("W Gapcloser", miscMenu.Name + "w-gapcloser")); GapcloserManager.AddToMenu( wGapcloserMenu, new HeroListManagerArgs("w-gapcloser") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }, true); BestTargetOnlyManager.AddToMenu(wGapcloserMenu, "w-gapcloser"); var wImmobileMenu = miscMenu.AddSubMenu(new Menu("W Immobile", miscMenu.Name + "w-immobile")); BuffManager.AddToMenu( wImmobileMenu, BuffManager.ImmobileBuffs, new HeroListManagerArgs("w-immobile") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }, true); BestTargetOnlyManager.AddToMenu(wImmobileMenu, "w-immobile"); var wFleeingMenu = miscMenu.AddSubMenu(new Menu("W Fleeing", miscMenu.Name + "w-fleeing")); HeroListManager.AddToMenu( wFleeingMenu, new HeroListManagerArgs("w-fleeing") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(wFleeingMenu, "w-fleeing", true); R.Range = Menu.Item(Menu.Name + ".ultimate.range").GetValue <Slider>().Value; DrawingManager.Update( "R Flash", Menu.Item(Menu.Name + ".ultimate.range").GetValue <Slider>().Value + SummonerManager.Flash.Range); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q); IndicatorManager.Add(W); IndicatorManager.Add("E", hero => E.GetDamage(hero) * 3); IndicatorManager.Add(R); IndicatorManager.Finale(); Weights.AddItem( new Weights.Item("poison-time", "Poison Time", 5, false, hero => GetPoisonBuffEndTime(hero) + 1)); }
/// <summary> /// Exports data and indicators values /// </summary> public void ExportIndicators() { string stage = String.Empty; if (Data.IsProgramBeta) { stage = " " + Language.T("Beta"); } else if (Data.IsProgramReleaseCandidate) { stage = " " + "RC"; } string ff = Data.Ff; // Format modifier to print float numbers string df = Data.Df; // Format modifier to print date var sb = new StringBuilder(); sb.Append("Forex Strategy Builder v" + Data.ProgramVersion + stage + Environment.NewLine); sb.Append("Strategy name: " + Data.Strategy.StrategyName + Environment.NewLine); sb.Append("Exported on " + DateTime.Now + Environment.NewLine); sb.Append(Data.Symbol + " " + Data.PeriodString + Environment.NewLine); sb.Append("Number of bars: " + Data.Bars); sb.Append("\t\t\t\t\t\t\t\t"); for (int slot = 0; slot < Data.Strategy.Slots; slot++) { string strSlotType = ""; switch (Data.Strategy.Slot[slot].SlotType) { case SlotTypes.Open: strSlotType = "Opening point of the position"; break; case SlotTypes.OpenFilter: strSlotType = "Opening logic condition"; break; case SlotTypes.Close: strSlotType = "Closing point of the position"; break; case SlotTypes.CloseFilter: strSlotType = "Closing logic condition"; break; } sb.Append(strSlotType + "\t"); for (int i = 0; i < Data.Strategy.Slot[slot].Component.Length; i++) { sb.Append("\t"); } } sb.Append(Environment.NewLine); // Names of the indicator components sb.Append("\t\t\t\t\t\t\t\t"); for (int slot = 0; slot < Data.Strategy.Slots; slot++) { Indicator indicator = IndicatorManager.ConstructIndicator(Data.Strategy.Slot[slot].IndicatorName); indicator.Initialize(Data.Strategy.Slot[slot].SlotType); sb.Append(indicator + "\t"); for (int i = 0; i < Data.Strategy.Slot[slot].Component.Length; i++) { sb.Append("\t"); } } sb.Append(Environment.NewLine); // Data sb.Append("Date" + "\t"); sb.Append("Hour" + "\t"); sb.Append("Open" + "\t"); sb.Append("High" + "\t"); sb.Append("Low" + "\t"); sb.Append("Close" + "\t"); sb.Append("Volume" + "\t"); for (int slot = 0; slot < Data.Strategy.Slots; slot++) { sb.Append("\t"); foreach (IndicatorComp comp in Data.Strategy.Slot[slot].Component) { sb.Append(comp.CompName + "\t"); } } sb.Append(Environment.NewLine); for (int bar = 0; bar < Data.Bars; bar++) { sb.Append(Data.Time[bar].ToString(df) + "\t"); sb.Append(Data.Time[bar].ToString("HH:mm") + "\t"); sb.Append(Data.Open[bar].ToString(ff) + "\t"); sb.Append(Data.High[bar].ToString(ff) + "\t"); sb.Append(Data.Low[bar].ToString(ff) + "\t"); sb.Append(Data.Close[bar].ToString(ff) + "\t"); sb.Append(Data.Volume[bar] + "\t"); for (int slot = 0; slot < Data.Strategy.Slots; slot++) { sb.Append("\t"); foreach (IndicatorComp comp in Data.Strategy.Slot[slot].Component) { sb.Append(comp.Value[bar] + "\t"); } } sb.Append(Environment.NewLine); } string fileName = Data.Strategy.StrategyName + "-" + Data.Symbol + "-" + Data.Period; SaveData(fileName, sb); }
protected override void AddToMenu() { var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo")); HitchanceManager.AddToMenu( comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo", new Dictionary <string, HitChance> { { "Q", HitChance.VeryHigh }, { "E", HitChance.VeryHigh }, { "R", HitChance.VeryHigh } }); ResourceManager.AddToMenu( comboMenu, new ResourceManagerArgs( "combo-r", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "R", DefaultValue = 30 }); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true)); comboMenu.AddItem(new MenuItem(comboMenu.Name + ".r", "Use R").SetValue(true)); var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass")); HitchanceManager.AddToMenu( harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass", new Dictionary <string, HitChance> { { "Q", HitChance.High }, { "R", HitChance.VeryHigh } }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { DefaultValue = 30 }); ResourceManager.AddToMenu( harassMenu, new ResourceManagerArgs( "harass-r", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Prefix = "R", DefaultValue = 30 }); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(false)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true)); harassMenu.AddItem(new MenuItem(harassMenu.Name + ".r", "Use R").SetValue(true)); var laneClearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear")); ResourceManager.AddToMenu( laneClearMenu, new ResourceManagerArgs( "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 50, 30, 30 } }); laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".w", "Use W").SetValue(true)); laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".e", "Use E").SetValue(true)); laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".e-min", "E Min.").SetValue(new Slider(3, 1, 5))); laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".r", "Use R").SetValue(false)); laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".r-min", "R Min.").SetValue(new Slider(3, 1, 5))); var jungleClearMenu = Menu.AddSubMenu(new Menu("Jungle Clear", Menu.Name + ".jungle-clear")); ResourceManager.AddToMenu( jungleClearMenu, new ResourceManagerArgs( "jungle-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum) { Advanced = true, LevelRanges = new SortedList <int, int> { { 1, 6 }, { 6, 12 }, { 12, 18 } }, DefaultValues = new List <int> { 30, 10, 10 } }); jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".w", "Use W").SetValue(true)); jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".e", "Use E").SetValue(true)); jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".r", "Use R").SetValue(false)); var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee")); fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true)); var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal")); killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".r", "Use R").SetValue(true)); var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous")); var eGapcloserMenu = miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser")); GapcloserManager.AddToMenu( eGapcloserMenu, new HeroListManagerArgs("e-gapcloser") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }, true); BestTargetOnlyManager.AddToMenu(eGapcloserMenu, "e-gapcloser"); var rImmobileMenu = miscMenu.AddSubMenu(new Menu("R Immobile", miscMenu.Name + "r-immobile")); BuffManager.AddToMenu( rImmobileMenu, BuffManager.ImmobileBuffs, new HeroListManagerArgs("r-immobile") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }, true); BestTargetOnlyManager.AddToMenu(rImmobileMenu, "r-immobile"); var rGapcloserMenu = miscMenu.AddSubMenu(new Menu("R Gapcloser", miscMenu.Name + "r-gapcloser")); GapcloserManager.AddToMenu( rGapcloserMenu, new HeroListManagerArgs("r-gapcloser") { IsWhitelist = false, Allies = false, Enemies = true, DefaultValue = false }); BestTargetOnlyManager.AddToMenu(rGapcloserMenu, "r-gapcloser", true); miscMenu.AddItem( new MenuItem(miscMenu.Name + ".spells-atk", "Use Spells if Atk Speed <= x / 100").SetValue( new Slider(175, 100, 500))); miscMenu.AddItem(new MenuItem(miscMenu.Name + ".r-max", "R Max. Stacks").SetValue(new Slider(5, 1, 10))); IndicatorManager.AddToMenu(DrawingManager.Menu, true); IndicatorManager.Add(Q); IndicatorManager.Add(W); IndicatorManager.Add(E); IndicatorManager.Add(R); IndicatorManager.Finale(); }