BattleMenu.BattleMenuList C# (CSharp) Method

BattleMenuList() public method

public BattleMenuList ( Character, character ) : BattleMenuItem[],
character Character,
return BattleMenuItem[],
    public BattleMenuItem[] BattleMenuList(Character character)
    {
        BattleMenuItem[] list = new BattleMenuItem[0];
        this.LoadIcons();

        if(this.addBack && this.backFirst && DataHolder.BattleSystem().IsRealTime())
        {
            list = ArrayHelper.Add(this.GetBackItem(), list);
        }

        for(int i=0; i<this.order.Length; i++)
        {
            if(this.order[i] == BattleMenu.ATTACK && this.showAttack)
            {
                if(DataHolder.BattleControl().IsAutoUseOnTarget() &&
                    character.InAttackRange(DataHolder.BattleControl().partyTarget))
                {
                    list = ArrayHelper.Add(new BattleMenuItem(
                            new GUIContent(this.attackName[GameHandler.GetLanguage()].ToString(), this.attackIcon),
                            -1, BattleMenu.ATTACK, true, "",
                            new BattleAction(AttackSelection.ATTACK, character, BattleAction.PARTY_TARGET, -1, 0)), list);
                }
                else
                {
                    list = ArrayHelper.Add(new BattleMenuItem(
                            new GUIContent(this.attackName[GameHandler.GetLanguage()].ToString(), this.attackIcon),
                            -1, BattleMenu.ATTACK, true, ""), list);
                }
            }
            else if(this.order[i] == BattleMenu.SKILL && this.showSkills)
            {
                SkillLearn[] skills = character.GetSkills();
                if(this.combineSkills)
                {
                    if(skills.Length > 0)
                    {
                        list = ArrayHelper.Add(new BattleMenuItem(
                            new GUIContent(this.skillName[GameHandler.GetLanguage()].ToString(), this.skillIcon),
                            -1, BattleMenu.SKILL, false, ""), list);
                    }
                }
                else
                {
                    ArrayList types = new ArrayList();
                    for(int j=0; j<skills.Length; j++)
                    {
                        if(DataHolder.Skill(skills[j].skillID).useInBattle)
                        {
                            int st = DataHolder.Skill(skills[j].skillID).skilltype;
                            if(!types.Contains(st))
                            {
                                types.Add(st);
                            }
                        }
                    }
                    types.Sort(new SkillTypeSorter());
                    for(int j=0; j<types.Count; j++)
                    {
                        list = ArrayHelper.Add(new BattleMenuItem(DataHolder.SkillTypes().GetContent(
                                (int)types[j]), (int)types[j], BattleMenu.SKILL, false, ""), list);
                    }
                }
            }
            else if(this.order[i] == BattleMenu.ITEM && this.showItems)
            {
                if(this.combineItems)
                {
                    list = ArrayHelper.Add(new BattleMenuItem(
                        new GUIContent(this.itemName[GameHandler.GetLanguage()].ToString(), this.itemIcon),
                        -1, BattleMenu.ITEM, false, ""), list);
                }
                else
                {
                    ArrayList types = new ArrayList();
                    foreach(int key in GameHandler.Items().Keys)
                    {
                        if(DataHolder.Item(key).useInBattle)
                        {
                            int it = DataHolder.Item(key).itemType;
                            if(!types.Contains(it))
                            {
                                types.Add(it);
                            }
                        }
                    }
                    types.Sort(new ItemTypeSorter());
                    for(int j=0; j<types.Count; j++)
                    {
                        list = ArrayHelper.Add(new BattleMenuItem(DataHolder.ItemTypes().GetContent(
                                (int)types[j]), (int)types[j], BattleMenu.ITEM, false, ""), list);
                    }
                }
            }
            else if(this.order[i] == BattleMenu.DEFEND && this.showDefend)
            {
                list = ArrayHelper.Add(new BattleMenuItem(
                    new GUIContent(this.defendName[GameHandler.GetLanguage()].ToString(), this.defendIcon),
                    -1, BattleMenu.DEFEND, false, ""), list);
            }
            else if(this.order[i] == BattleMenu.ESCAPE && this.showEscape)
            {
                list = ArrayHelper.Add(new BattleMenuItem(
                    new GUIContent(this.escapeName[GameHandler.GetLanguage()].ToString(), this.escapeIcon),
                    -1, BattleMenu.ESCAPE, false, ""), list);
            }
            else if(this.order[i] == BattleMenu.ENDTURN && this.showEndTurn)
            {
                list = ArrayHelper.Add(new BattleMenuItem(
                    new GUIContent(this.endTurnName[GameHandler.GetLanguage()].ToString(), this.endTurnIcon),
                    -1, BattleMenu.ENDTURN, false, ""), list);
            }
        }

        if(this.addBack && !this.backFirst && DataHolder.BattleSystem().IsRealTime())
        {
            list = ArrayHelper.Add(this.GetBackItem(), list);
        }

        return list;
    }