protected virtual void ApplyBattleHierarchy(BattleStateHierarchyData hierarchyData, bool onAutoPlay = false, int continueWaitSecond = 10)
    {
        hierarchyData.batteWaves      = this._battleWaves;
        hierarchyData.digiStoneNumber = this._digiStoneNumber;
        hierarchyData.useStageId      = this._useStageId;
        hierarchyData.areaName        = this._areaName;
        hierarchyData.leaderCharacter = 0;
        hierarchyData.limitRound      = this._limitRound;
        int onAutoPlay2 = 0;

        if (onAutoPlay)
        {
            onAutoPlay2 = 2;
        }
        hierarchyData.onAutoPlay          = onAutoPlay2;
        hierarchyData.usePlayerCharacters = new PlayerStatus[this._usePlayerCharactersId.Length];
        for (int i = 0; i < hierarchyData.usePlayerCharacters.Length; i++)
        {
            PlayerStatus  playerStatus = ResourcesPath.GetPlayerStatus(this._usePlayerCharactersId[i]);
            List <string> list         = new List <string>();
            list.Add("public_attack");
            foreach (string text in playerStatus.skillIds)
            {
                if (text != "public_attack")
                {
                    list.Add(text);
                }
            }
            playerStatus.skillIds = list.ToArray();
            hierarchyData.usePlayerCharacters[i] = playerStatus;
            hierarchyData.AddCharacterDatas(playerStatus.groupId, ResourcesPath.GetCharacterData(playerStatus.groupId));
            hierarchyData.AddLeaderSkillStatus(playerStatus.leaderSkillId, ResourcesPath.GetLeaderSkillStatus(playerStatus.leaderSkillId));
            hierarchyData.AddSkillStatus("public_attack", ResourcesPath.GetSkillStatus("public_attack"));
            hierarchyData.AddSkillStatus(playerStatus.skillIds[1], ResourcesPath.GetSkillStatus(playerStatus.skillIds[1]));
            hierarchyData.AddSkillStatus(playerStatus.skillIds[2], ResourcesPath.GetSkillStatus(playerStatus.skillIds[2]));
        }
        foreach (BattleWave battleWave in hierarchyData.batteWaves)
        {
            battleWave.enemyStatuses = new CharacterStatus[battleWave.useEnemiesId.Length];
            for (int l = 0; l < battleWave.useEnemiesId.Length; l++)
            {
                string      id          = battleWave.useEnemiesId[l];
                EnemyStatus enemyStatus = ResourcesPath.GetEnemyStatus(id);
                battleWave.enemyStatuses[l] = enemyStatus;
                List <string> list2 = new List <string>();
                list2.Add("public_attack");
                list2.AddRange(enemyStatus.enemyAiPattern.GetAllSkillID());
                battleWave.enemyStatuses[l].skillIds = list2.ToArray();
                hierarchyData.AddCharacterDatas(enemyStatus.groupId, ResourcesPath.GetCharacterData(enemyStatus.groupId));
                hierarchyData.AddLeaderSkillStatus(enemyStatus.leaderSkillId, ResourcesPath.GetLeaderSkillStatus(enemyStatus.leaderSkillId));
                foreach (string text2 in battleWave.enemyStatuses[l].skillIds)
                {
                    hierarchyData.AddSkillStatus(text2, ResourcesPath.GetSkillStatus(text2));
                }
            }
        }
    }