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