BattleMenu.GetSkillMenuList C# (CSharp) Method

GetSkillMenuList() public method

public GetSkillMenuList ( int type, Character, character ) : BattleMenuItem[],
type int
character Character,
return BattleMenuItem[],
    public BattleMenuItem[] GetSkillMenuList(int type, Character character)
    {
        BattleMenuItem[] list = new BattleMenuItem[0];
        if(this.addBack && this.backFirst)
        {
            list = ArrayHelper.Add(this.GetBackItem(), list);
        }

        ArrayList skills = new ArrayList();
        SkillLearn[] s = character.GetSkills();
        for(int i=0; i<s.Length; i++)
        {
            if(DataHolder.Skill(s[i].skillID).useInBattle &&
                (this.combineSkills || DataHolder.Skill(s[i].skillID).skilltype == type))
            {
                skills.Add(s[i].skillID);
            }
        }
        skills.Sort(new SkillNameSorter());
        for(int i=0; i<skills.Count; i++)
        {
            SkillLearn sk = character.GetSkill((int)skills[i]);
            if(sk != null)
            {
                if(DataHolder.Skill(sk.skillID).TargetSelf())
                {
                    list = ArrayHelper.Add(new BattleMenuItem(sk.GetContent(), sk.skillID, sk.GetLevel(), BattleMenu.SKILL, true,
                            DataHolder.Skill(sk.skillID).GetSkillCostString(character, sk.GetLevel()),
                            new BattleAction(AttackSelection.SKILL, character,
                            character.battleID, sk.skillID, sk.GetLevel())), list);
                }
                else if(DataHolder.Skill(sk.skillID).TargetNone())
                {
                    list = ArrayHelper.Add(new BattleMenuItem(sk.GetContent(), sk.skillID, sk.GetLevel(), BattleMenu.SKILL, true,
                            DataHolder.Skill(sk.skillID).GetSkillCostString(character, sk.GetLevel()),
                            new BattleAction(AttackSelection.SKILL, character,
                            BattleAction.NONE, sk.skillID, sk.GetLevel())), list);
                    list[list.Length-1].action.targetRaycast = DataHolder.Skill(sk.skillID).targetRaycast;
                }
                else if(DataHolder.Skill(sk.skillID).TargetSingleEnemy() &&
                    DataHolder.BattleControl().IsAutoUseOnTarget() &&
                    DataHolder.Skill(sk.skillID).InRange(character, DataHolder.BattleControl().partyTarget, sk.GetLevel()))
                {
                    list = ArrayHelper.Add(new BattleMenuItem(sk.GetContent(), sk.skillID, sk.GetLevel(), BattleMenu.SKILL, true,
                            DataHolder.Skill(sk.skillID).GetSkillCostString(character, sk.GetLevel()),
                            new BattleAction(AttackSelection.SKILL, character,
                            BattleAction.PARTY_TARGET, sk.skillID, sk.GetLevel())), list);
                }
                else
                {
                    list = ArrayHelper.Add(new BattleMenuItem(sk.GetContent(), sk.skillID, sk.GetLevel(), BattleMenu.SKILL, true,
                            DataHolder.Skill(sk.skillID).GetSkillCostString(character, sk.GetLevel()), null), list);
                }
            }
        }
        if(this.addBack && !this.backFirst)
        {
            list = ArrayHelper.Add(this.GetBackItem(), list);
        }
        return list;
    }