internal virtual void RecreateAbilities() { Abilities = new Dictionary <SNOPower, Skill>(); //No default rage generation Ability.. then we add the Instant Melee Ability. if (!HotBar.HotbarContainsAPrimarySkill()) { Skill defaultAbility = Bot.Character.Class.DefaultAttack; AbilityLogicConditions.CreateAbilityLogicConditions(ref defaultAbility); Abilities.Add(defaultAbility.Power, defaultAbility); HotBar.RuneIndexCache.Add(defaultAbility.Power, -1); Logger.DBLog.DebugFormat("[Funky] Added Skill {0}", defaultAbility.Power); } //Create the abilities foreach (var item in HotBar.HotbarPowers) { Skill newAbility = Bot.Character.Class.CreateAbility(item); AbilityLogicConditions.CreateAbilityLogicConditions(ref newAbility); newAbility.SuccessfullyUsed += AbilitySuccessfullyUsed; //combat ability set property if ((AbilityExecuteFlags.ClusterLocation | AbilityExecuteFlags.ClusterTarget | AbilityExecuteFlags.ClusterTargetNearest | AbilityExecuteFlags.Location | AbilityExecuteFlags.Target).HasFlag(newAbility.ExecutionType)) { newAbility.IsCombat = true; } Abilities.Add(item, newAbility); Logger.DBLog.DebugFormat("[Funky] Added Skill {0} using RuneIndex {1}", newAbility.Power, newAbility.RuneIndex); } //Sort Abilities SortedAbilities = Abilities.Values.OrderByDescending(a => a.Priority).ThenBy(a => a.Range).ToList(); }