public Queue <CharacterStateControl> GetSortedSpeedCharacerList(CharacterStateControl[] controlers = null)
    {
        BattleStateData          battleStateData = BattleStateManager.current.battleStateData;
        BattleStateManager       current         = BattleStateManager.current;
        BattleStateHierarchyData hierarchyData   = BattleStateManager.current.hierarchyData;

        CharacterStateControl[]       collection = (controlers != null) ? controlers : this.GetTotalCharacters();
        Queue <CharacterStateControl> queue      = new Queue <CharacterStateControl>(collection);

        if (controlers == null)
        {
            foreach (CharacterStateControl characterStateControl in queue)
            {
                characterStateControl.SpeedRandomize(hierarchyData.onEnableRandomValue);
                current.fraudCheck.FraudCheckOverflowMaxSpeed(characterStateControl);
            }
        }
        CharacterStateControl[] collection2 = CharacterStateControlSorter.SortedSpeedEnemyPriority(queue.ToArray());
        queue = new Queue <CharacterStateControl>(collection2);
        battleStateData.currentTurnNumber = 0;
        battleStateData.SetOrderInSortedCharacter(queue, -1);
        if (!current.onEnableTutorial)
        {
            hierarchyData.onEnableRandomValue = true;
        }
        return(queue);
    }