public static CharacterStateControl[] SortedTargetSelect(CharacterStateControl[] characterStatus, SkillStatus skillState, AIActionClip actionClip = null) { List <CharacterStateControl> list = new List <CharacterStateControl>(); foreach (CharacterStateControl characterStateControl in characterStatus) { if (CharacterStateControlSorter.CheckTargetSelect(characterStateControl, actionClip)) { list.Add(characterStateControl); } } if (list.Count > 0) { Comparison <CharacterStateControl> comparison = (CharacterStateControl x, CharacterStateControl y) => CharacterStateControlSorter.CompareTargetSelect(x, y, actionClip); list.Sort(comparison); } else { list = new List <CharacterStateControl>(characterStatus); Comparison <CharacterStateControl> comparison2 = (CharacterStateControl x, CharacterStateControl y) => CharacterStateControlSorter.CompareBaseTargetSelect(x, y, skillState); list.Sort(comparison2); } return(list.ToArray()); }