public BattleMenuItem[] GetItemMenuList(int type, Character character)
{
BattleMenuItem[] list = new BattleMenuItem[0];
if(this.addBack && this.backFirst)
{
list = ArrayHelper.Add(this.GetBackItem(), list);
}
ArrayList items = new ArrayList();
foreach(int key in GameHandler.Items().Keys)
{
if(DataHolder.Item(key).useInBattle &&
(this.combineItems || DataHolder.Item(key).itemType == type))
{
items.Add(key);
}
}
items.Sort(new ItemNameSorter());
for(int i=0; i<items.Count; i++)
{
int itemID = (int)items[i];
if(DataHolder.Item(itemID).TargetSelf())
{
list = ArrayHelper.Add(new BattleMenuItem(DataHolder.Items().GetContent(itemID), itemID, 0,
BattleMenu.ITEM, true, GameHandler.GetItemCount(itemID).ToString(),
new BattleAction(AttackSelection.ITEM, character, character.battleID, itemID, 0)), list);
}
else if(DataHolder.Item(itemID).TargetNone())
{
list = ArrayHelper.Add(new BattleMenuItem(DataHolder.Items().GetContent(itemID), itemID, 0,
BattleMenu.ITEM, true, GameHandler.GetItemCount(itemID).ToString(),
new BattleAction(AttackSelection.ITEM, character, BattleAction.NONE, itemID, 0)), list);
list[list.Length-1].action.targetRaycast = DataHolder.Item(itemID).targetRaycast;
}
else if(DataHolder.Item(itemID).TargetSingleEnemy() &&
DataHolder.BattleControl().IsAutoUseOnTarget() &&
DataHolder.Item(itemID).useRange.InRange(character, DataHolder.BattleControl().partyTarget))
{
list = ArrayHelper.Add(new BattleMenuItem(DataHolder.Items().GetContent(itemID), itemID, 0,
BattleMenu.ITEM, true, GameHandler.GetItemCount(itemID).ToString(),
new BattleAction(AttackSelection.ITEM, character, BattleAction.PARTY_TARGET, itemID, 0)), list);
}
else
{
list = ArrayHelper.Add(new BattleMenuItem(DataHolder.Items().GetContent(itemID), itemID,
BattleMenu.ITEM, true, GameHandler.GetItemCount(itemID).ToString()), list);
}
}
if(this.addBack && !this.backFirst)
{
list = ArrayHelper.Add(this.GetBackItem(), list);
}
return list;
}