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