static Config() { try { var hero = EntityManager.Heroes.AllHeroes; var heroName = hero.Select(h => h.BaseSkinName).ToArray(); var summonerList = Program.SpellDB.Where(i => i.SpellType == SpellType.SummonerSpell).ToList(); var itemList = Program.SpellDB.Where(i => i.SpellType == SpellType.Item).ToList(); var wardList = Program.SpellDB.Where(i => i.SpellType == SpellType.Ward).ToList(); var trapList = Program.SpellDB.Where(t => heroName.Contains(t.ChampionName) && t.SpellType == SpellType.Trap).ToList(); var spellList = Program.SpellDB.Where(s => heroName.Contains(s.ChampionName) && s.SpellType == SpellType.Spell).ToList(); #region Main Menu Menu = MainMenu.AddMenu("TimerBuddy", "TimerBuddy", "TimerBuddy - Life is all about Timing!"); Menu.AddGroupLabel("Welcome to TimerBuddy xD"); Menu.AddLabel(string.Format("{0} datas Loaded", summonerList.Count + itemList.Count + trapList.Count + spellList.Count + wardList.Count)); Menu.AddGroupLabel("General Settings"); Menu.AddImportanceItem("minImportance", "Minimum Importance Level to draw: "); //Menu.AddGroupLabel("Spell Timer"); Menu.AddCheckBox("sTimer", "Spell Timer", true); Menu.AddCheckBox("ssTimer", "Summoner Spell Timer", true); Menu.AddCheckBox("itemTimer", "Item Timer", true); Menu.AddBlank("mainBlank"); Menu.AddCheckBox("trapTimer", "Trap Timer", true); Menu.AddCheckBox("wardTimer", "Ward Timer", true); Menu.AddSeparator(); Menu.AddGroupLabel("Additional Features"); Menu.AddCheckBox("blinkTracker", "Blink Tracker", true); Menu.AddCheckBox("cloneTracker", "Clone Tracker (WIP)", false); Menu.AddSeparator(); Menu.AddGroupLabel("Credits"); Menu.AddLabel("Tychus - Addon Developer"); Menu.AddLabel("Hellsing - Dev-a-lot"); Menu.AddLabel("and Developing forum buddies"); #endregion #region SC2Menu SC2Menu = Menu.AddSubMenu("Time Tracking List"); SC2Menu.AddGroupLabel("Dragon, Baron Nashor Spawn Time"); SC2Menu.AddCheckBox("jungleEnable", "Enable", true); SC2Menu.AddBlank("blank"); SC2Menu.AddCheckBox("jungle", "Alarm 10 seconds before", true); SC2Menu.AddCheckBox("jungle1min", "Alarm 1 minute before", true); SC2Menu.AddSeparator(); SC2Menu.AddGroupLabel("Spell Cooldown"); SC2Menu.AddCheckBox("ult", "Ultimate (Near heros)", true); SC2Menu.AddCheckBox("globalUlt", "Global Ultimate", true); SC2Menu.AddCheckBox("ss", "Summoner Spell (Player Only)", true); SC2Menu.AddSeparator(); SC2Menu.AddGroupLabel("Global Alarms"); foreach (var database in SC2TimerDatabase.Database.Where(d => heroName.Contains(d.ChampionName) && d.SC2Type == SC2Type.Spell)) SC2Menu.AddCheckBox("sc2global" + database.ChampionName, database.ChampionName + " " + database.Slot.ToString(), database.Global); SC2Menu.AddSeparator(); SC2Menu.AddGroupLabel("Misc settings"); //SC2Menu.AddSlider("duration", "Notifications duration time", 10, 2, 20); SC2Menu.AddSlider("maxSlot", "Maximum notifications number", 5, 2, 8); #endregion #region SpellMenu if (spellList.Count > 0) { SpellMenu = Menu.AddSubMenu("Spell List"); foreach (var s in spellList) { if (MenuChecker.Contains(s.MenuCode)) continue; MenuChecker.Add(s.MenuCode); SpellMenu.AddGroupLabel(s.MenuCode); SpellMenu.AddCheckBox(s.MenuCode + "draw", "Draw", true); SpellMenu.AddCheckBox(s.MenuCode + "onlyme", "Drawing only Player is " + s.ChampionName, s.OnlyMe); SpellMenu.AddImportanceItem(s.MenuCode + "importance", "Importance Level: ", s.Importance.ToInt()); SpellMenu.AddDrawTypeItem(s.MenuCode + "drawtype", "Drawing Style: ", s.DrawType.ToInt()); SpellMenu.AddColorItem(s.MenuCode + "color"); SpellMenu.AddSeparator(); } } #endregion #region SummonerMenu if (summonerList.Count > 0) { SummonerMenu = Menu.AddSubMenu("SummonerSpell List"); foreach (var t in summonerList) { if (MenuChecker.Contains(t.MenuCode)) continue; MenuChecker.Add(t.MenuCode); SummonerMenu.AddGroupLabel(t.MenuCode); SummonerMenu.Add(t.MenuCode + "draw", new CheckBox("Draw")); SummonerMenu.AddImportanceItem(t.MenuCode + "importance", "Importance Level: ", t.Importance.ToInt()); SummonerMenu.AddDrawTypeItem(t.MenuCode + "drawtype", "Drawing Style: ", t.DrawType.ToInt()); SummonerMenu.AddColorItem(t.MenuCode + "color"); SummonerMenu.AddSeparator(); } } #endregion #region ItemMenu if (itemList.Count > 0) { ItemMenu = Menu.AddSubMenu("Item List"); foreach (var i in itemList) { ItemMenu.AddGroupLabel(i.MenuCode); ItemMenu.AddCheckBox(i.MenuCode + "draw", "Draw", true); ItemMenu.AddBlank(i.MenuCode + "blank"); ItemMenu.AddCheckBox(i.MenuCode + "ally", "Draw ally Item", true); ItemMenu.AddCheckBox(i.MenuCode + "enemy", "Draw enemy Item", true); ItemMenu.AddImportanceItem(i.MenuCode + "importance", "Importance Level: ", i.Importance.ToInt()); ItemMenu.AddDrawTypeItem(i.MenuCode + "drawtype", "Drawing Style: ", i.DrawType.ToInt()); ItemMenu.AddColorItem(i.MenuCode + "color"); ItemMenu.AddSeparator(); } } #endregion #region TrapMenu if (trapList.Count > 0) { TrapMenu = Menu.AddSubMenu("Trap List"); foreach (var t in trapList) { TrapMenu.AddGroupLabel(t.MenuCode); TrapMenu.AddCheckBox(t.MenuCode + "draw", "Draw", true); TrapMenu.AddCheckBox(t.MenuCode + "ally", "Draw ally trap", true); TrapMenu.AddCheckBox(t.MenuCode + "drawCircle", "Draw circle", true); TrapMenu.AddCheckBox(t.MenuCode + "enemy", "Draw enemy trap", true); TrapMenu.AddColorItem(t.MenuCode + "color", 0); TrapMenu.AddSeparator(); } TrapMenu.AddGroupLabel("Misc"); TrapMenu.AddCheckBox("circleOnlyEnemy", "Draw circle only enemies trap", true); } #endregion #region WardMenu if (wardList.Count > 0) { WardMenu = Menu.AddSubMenu("Ward List"); foreach (var w in wardList) { WardMenu.AddGroupLabel(w.MenuCode); WardMenu.AddCheckBox(w.MenuCode + "draw", "Draw", true); WardMenu.AddCheckBox(w.MenuCode + "ally", "Draw ally ward", true); WardMenu.AddCheckBox(w.MenuCode + "drawCircle", "Draw circle", true); WardMenu.AddCheckBox(w.MenuCode + "enemy", "Draw enemy ward", true); WardMenu.AddColorItem(w.MenuCode + "color", w.Color.ToInt()); WardMenu.AddSeparator(); } } #endregion #region MiscMenu MiscMenu = Menu.AddSubMenu("Misc Settigns"); MiscMenu.AddGroupLabel("Drawing"); MiscMenu.AddCheckBox("error", "Show Error Message", false); MiscMenu.AddLabel("If you find bugs, please report bugs with error code"); MiscMenu.AddSeparator(); MiscMenu.AddGroupLabel("Blink Tracker"); MiscMenu.AddCheckBox("blinkAlly", "Draw Ally", false); MiscMenu.AddCheckBox("blinkEnemy", "Draw Enemy", true); #endregion /* DebugMenu = Menu.AddSubMenu("Debug"); DebugMenu.Add("s1", new Slider("Slider 1", 0, 0, 200)); DebugMenu.Add("s2", new Slider("Slider 2", 0, 0, 200)); DebugMenu.Add("s3", new Slider("Slider 3", 0, 0, 200)); DebugMenu.Add("s4", new Slider("Slider 4", 0, 0, 200)); DebugMenu.Add("s5", new Slider("Slider 5", 0, 0, 200)); DebugMenu.Add("c1", new CheckBox("CheckBox 1")); DebugMenu.Add("c2", new CheckBox("CheckBox 2")); DebugMenu.Add("c3", new CheckBox("CheckBox 3"));*/ hero.Clear(); summonerList.Clear(); spellList.Clear(); itemList.Clear(); wardList.Clear(); trapList.Clear(); MenuChecker.Clear(); } catch (Exception e) { e.ErrorMessage("MENU"); } }