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;
}