Beispiel #1
0
        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();
        }