Example #1
0
        internal void ArrangeResearchAbilities(DBABILITIES abilities)
        {
            researchPointsPanel.Visible = false;

            unit hero = abilities.Owner as unit;
            if (hero == null) return;

            List<DBABILITY> baseAbils = abilities.GetRange(hero.BaseHeroAbilList);
            List<DBABILITY> availableForResearch = (researchRestriction == 0) ? abilities.GetWithAvailableResearchPoints(hero.BaseHeroAbilList) : baseAbils;

            bool found;
            for (int i = 0; i < abilitySlots.Count; i++)
            {
                found = false;
                Button b = abilitySlots[i] as Button;

                foreach (DBABILITY ability in baseAbils)
                    if (ability.Profile.ResearchSlotPriority == i)
                    {
                        PlaceResearchAbility(b, ability.Profile, availableForResearch.Contains(ability));
                        found = true;
                        break;
                    }

                if (!found)
                    PlaceResearchAbility(b, null, false);
            }
        }