static InterrupterMenu() { var interrupterMenu = Menu.AddSubMenu("Interrupter"); _enabled = interrupterMenu.Add("InterrupterEnabled", new CheckBox("Enable Interrupter")); interrupterMenu.AddSeparator(); interrupterMenu.AddGroupLabel("Interruptible Spells !"); interrupterMenu.AddSeparator(5); var intt = new Interrupter(); foreach ( var data in EntityManager.Heroes.Enemies.Where(x => Interrupter.Interruptible.ContainsKey(x.Hero)) .Select(x => Interrupter.Interruptible.FirstOrDefault(key => key.Key == x.Hero))) { var dangerlevel = Interrupter.Interruptible.FirstOrDefault(pair => pair.Key == data.Key); interrupterMenu.AddGroupLabel(data.Key + " " + data.Value.SpellSlot); interrupterMenu.Add("Enabled." + data.Key, new CheckBox("Enabled")).OnValueChange += delegate(ValueBase <bool> sender, ValueBase <bool> .ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) { interrupterMenuInfo.Enabled = args.NewValue; } }; interrupterMenu.Add("DangerLevel." + data.Key, new ComboBox("Danger Level", new[] { "High", "Medium", "Low" }, (int)dangerlevel.Value.DangerLevel)).OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) { interrupterMenuInfo.DangerLevel = (DangerLevel)args.NewValue; } }; interrupterMenu.Add("PercentHP." + data.Key, new Slider("Only if Im below of {0} % of my HP", 100)).OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) { interrupterMenuInfo.PercentHp = args.NewValue; } }; interrupterMenu.Add("EnemiesNear." + data.Key, new Slider("Only if {0} or less enemies are near", 5, 1, 5)).OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) { interrupterMenuInfo.EnemiesNear = args.NewValue; } }; var rand = new Random(); interrupterMenu.Add("Delay." + data.Key, new Slider("Humanizer delay", rand.Next(15, 50), 0, 500)).OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) { interrupterMenuInfo.Delay = args.NewValue; } }; interrupterMenu.AddSeparator(5); InterrupterMenuValues.Add(new Interrupter.InterrupterMenuInfo { Champion = data.Key, SpellSlot = data.Value.SpellSlot, Delay = interrupterMenu["Delay." + data.Key].Cast <Slider>().CurrentValue, DangerLevel = (DangerLevel)interrupterMenu["DangerLevel." + data.Key].Cast <ComboBox>().CurrentValue, Enabled = interrupterMenu["Enabled." + data.Key].Cast <CheckBox>().CurrentValue, EnemiesNear = interrupterMenu["EnemiesNear." + data.Key].Cast <Slider>().CurrentValue, PercentHp = interrupterMenu["PercentHP." + data.Key].Cast <Slider>().CurrentValue }); foundinterruptiblespells++; } if (foundinterruptiblespells == 0) { interrupterMenu.AddGroupLabel("No interruptible spells found !"); } }
static InterrupterMenu() { var interrupterMenu = Menu.AddSubMenu("Interrupter"); _enabled = interrupterMenu.Add("InterrupterEnabled", new CheckBox("Enable Interrupter")); interrupterMenu.AddSeparator(); interrupterMenu.AddGroupLabel("Interruptible Spells !"); interrupterMenu.AddSeparator(5); var intt = new Interrupter(); foreach ( var data in EntityManager.Heroes.Enemies.Where(x => Interrupter.Interruptible.ContainsKey(x.Hero)) .Select(x => Interrupter.Interruptible.FirstOrDefault(key => key.Key == x.Hero))) { var dangerlevel = Interrupter.Interruptible.FirstOrDefault(pair => pair.Key == data.Key); interrupterMenu.AddGroupLabel(data.Key + " " + data.Value.SpellSlot); interrupterMenu.Add("Enabled." + data.Key, new CheckBox("Enabled")).OnValueChange += delegate(ValueBase<bool> sender, ValueBase<bool>.ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) interrupterMenuInfo.Enabled = args.NewValue; }; interrupterMenu.Add("DangerLevel." + data.Key, new ComboBox("Danger Level", new[] {"High", "Medium", "Low"}, (int) dangerlevel.Value.DangerLevel)).OnValueChange += delegate(ValueBase<int> sender, ValueBase<int>.ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) interrupterMenuInfo.DangerLevel = (DangerLevel) args.NewValue; }; interrupterMenu.Add("PercentHP." + data.Key, new Slider("Only if Im below of {0} % of my HP", 100)).OnValueChange += delegate(ValueBase<int> sender, ValueBase<int>.ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) interrupterMenuInfo.PercentHp = args.NewValue; }; interrupterMenu.Add("EnemiesNear." + data.Key, new Slider("Only if {0} or less enemies are near", 5, 1, 5)).OnValueChange += delegate (ValueBase<int> sender, ValueBase<int>.ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) interrupterMenuInfo.EnemiesNear = args.NewValue; }; var rand = new Random(); interrupterMenu.Add("Delay." + data.Key, new Slider("Humanizer delay", rand.Next(15, 50), 0, 500)).OnValueChange += delegate (ValueBase<int> sender, ValueBase<int>.ValueChangeArgs args) { var interrupterMenuInfo = InterrupterMenuValues.FirstOrDefault(i => i.Champion == data.Key); if (interrupterMenuInfo != null) interrupterMenuInfo.Delay = args.NewValue; }; interrupterMenu.AddSeparator(5); InterrupterMenuValues.Add(new Interrupter.InterrupterMenuInfo { Champion = data.Key, SpellSlot = data.Value.SpellSlot, Delay = interrupterMenu["Delay." + data.Key].Cast<Slider>().CurrentValue, DangerLevel = (DangerLevel)interrupterMenu["DangerLevel." + data.Key].Cast<ComboBox>().CurrentValue, Enabled = interrupterMenu["Enabled." + data.Key].Cast<CheckBox>().CurrentValue, EnemiesNear = interrupterMenu["EnemiesNear." + data.Key].Cast<Slider>().CurrentValue, PercentHp = interrupterMenu["PercentHP." + data.Key].Cast<Slider>().CurrentValue }); foundinterruptiblespells++; } if (foundinterruptiblespells == 0) { interrupterMenu.AddGroupLabel("No interruptible spells found !"); } }