Example #1
0
    public IEnumerator LoadPassiveEffect(string skillPassive, Action <PassiveEffectParams[], string> result)
    {
        BattleDebug.Log("--- 受動スキルエフェクト単体ロード [" + skillPassive + "] : 開始");
        List <PassiveEffectParams> passiveList = new List <PassiveEffectParams>();

        for (int i = 0; i < base.battleStateData.maxCharacterLength; i++)
        {
            GameObject prefab      = base.stateManager.serverControl.GetPassiveEffectPrefab(skillPassive);
            GameObject skillObject = base.Instantiate <GameObject>(prefab);
            yield return(null);

            skillObject.name = skillPassive;
            skillObject.transform.SetParent(base.battleStateData.skillEffectRoot);
            PassiveEffectParams passiveEffectParams = skillObject.GetComponent <PassiveEffectParams>();
            IEnumerator         skillInit           = passiveEffectParams.Initialize(base.hierarchyData.cameraObject.camera3D);
            while (skillInit.MoveNext())
            {
                yield return(null);
            }
            skillObject.SetActive(false);
            passiveList.Add(passiveEffectParams);
        }
        result(passiveList.ToArray(), skillPassive);
        BattleDebug.Log("--- 受動スキルエフェクト単体ロード [" + skillPassive + "] : 完了");
        yield break;
    }
Example #2
0
    public IEnumerator LoadCameraMotion(string cameraMotionId, Action <CameraParams, string> result = null)
    {
        BattleDebug.Log("--- カメラモーション単体ロード cameraMotionId[" + cameraMotionId + "] : 開始");
        CameraParams cameraParams = null;

        if (this.cameraParamsObject.TryGetValue(cameraMotionId, out cameraParams))
        {
            cameraParams = this.cameraParamsObject[cameraMotionId];
        }
        else
        {
            GameObject cameraMotionPrefab = this.m_battleStateManager.serverControl.GetCameraMotionPrefab(cameraMotionId);
            GameObject cameraMotion       = base.Instantiate <GameObject>(cameraMotionPrefab);
            this.cameraParamsObject.Add(cameraMotionId, cameraMotion.GetComponent <CameraParams>());
            cameraParams = this.cameraParamsObject[cameraMotionId];
            cameraParams.gameObject.name = cameraMotionId;
            yield return(null);

            cameraParams.transform.SetParent(this.battleStateData.cameraMotionRoot);
            cameraParams.currentTargetCamera = this.hierarchyData.cameraObject.camera3D;
            cameraParams.GetPostEffectController(this.hierarchyData.cameraObject.postEffect);
            cameraParams.gameObject.SetActive(false);
        }
        if (result != null)
        {
            result(cameraParams, cameraMotionId);
        }
        BattleDebug.Log("--- カメラモーション単体ロード cameraMotionId[" + cameraMotionId + "] : 完了");
        yield break;
    }
    protected override IEnumerator MainRoutine()
    {
        BattleObjectPooler.CallInitialize();
        BattleObjectPooler.isCheckEnable = false;
        TextureTimeScrollRealTime.TimeReset();
        this.SetLoadingImage(true);
        this.SetActiveHierarcyRendering(false);
        base.stateManager.initialize.InitializeRoots();
        base.battleStateData.beforeConfirmDigiStoneNumber = base.hierarchyData.digiStoneNumber;
        List <IEnumerator> functionList = new List <IEnumerator>();

        functionList.Add(this.LoadBeforeInitializeUI());
        functionList.Add(this.InitSound());
        functionList.Add(this.CheckRecover());
        functionList.Add(this.LoadResources());
        functionList.Add(this.LoadPlayer());
        functionList.Add(this.LoadEnemy());
        functionList.Add(this.LoadCharacterAfter());
        functionList.Add(this.LoadCommonEffect());
        functionList.Add(this.LoadSkill());
        functionList.Add(this.LoadAfterInitializeUI());
        Action loading = base.stateManager.battleUiComponents.initializeUi.GetLoadingInvoke(functionList.Count);

        TimeProfiler.BeginTotalProfile();
        foreach (IEnumerator function in functionList)
        {
            TimeProfiler.BeginProfile();
            while (function.MoveNext())
            {
                yield return(null);
            }
            loading();
            yield return(new WaitForEndOfFrame());

            TimeProfiler.EndProfile();
            DkLog.W(string.Format("経過時間 : {0} | {1}", TimeProfiler.ElapseTime, function), false);
        }
        TimeProfiler.EndTotalProfile();
        DkLog.W(string.Format("経過時間(total) : {0}", TimeProfiler.TotalElapseTime), false);
        for (int i = 0; i < base.hierarchyData.usePlayerCharacters.Length; i++)
        {
            bool isLeade = i == base.hierarchyData.leaderCharacter;
            CharacterStateControl characterStateControl = base.battleStateData.playerCharacters[i];
            string resourcePath            = GUIMonsterIcon.InternalGetMonsterIconPathByIconId(characterStateControl.playerStatus.thumbnailId);
            string monsterIconPathByIconId = GUIMonsterIcon.GetMonsterIconPathByIconId(characterStateControl.playerStatus.thumbnailId);
            base.stateManager.uiControl.ApplyMonsterButtonIcon(i, characterStateControl, isLeade, resourcePath, monsterIconPathByIconId);
        }
        BattleDebug.Log("--- バトルGC : 開始");
        Resources.UnloadUnusedAssets();
        GC.Collect();
        BattleDebug.Log("--- バトルGC : 完了");
        this.SetActiveHierarcyRendering(true);
        this.SetLoadingImage(false);
        base.stateManager.uiControl.SetTouchEnable(true);
        base.stateManager.SetBattleScreen(BattleScreen.BattleStartAction);
        base.stateManager.battleUiComponents.InitSafeArea();
        yield break;
    }
    private IEnumerator LoadCommonEffect()
    {
        int maxEnemiesLength = 0;
        int maxBossLength    = 0;

        for (int i = 0; i < base.hierarchyData.batteWaves.Length; i++)
        {
            maxEnemiesLength = Mathf.Max(maxEnemiesLength, base.hierarchyData.batteWaves[i].useEnemiesId.Length);
            int num = 0;
            foreach (bool flag in base.hierarchyData.batteWaves[i].enemiesBossFlag)
            {
                if (flag)
                {
                    num++;
                }
            }
            maxBossLength = Mathf.Max(maxBossLength, num);
        }
        int playerLength        = base.hierarchyData.usePlayerCharacters.Length;
        int maxDigimonLength    = playerLength + maxEnemiesLength;
        List <IEnumerator> list = new List <IEnumerator>();

        base.battleStateData.isRoundStartApRevival = new bool[maxDigimonLength];
        base.stateManager.initialize.SetHitEffectPool("EFF_COM_APUP", AffectEffect.ApUp.ToString());
        base.battleStateData.stageGimmickUpEffect   = new AlwaysEffectParams[maxDigimonLength];
        base.battleStateData.stageGimmickDownEffect = new AlwaysEffectParams[maxDigimonLength];
        if (!base.stateManager.onEnableTutorial)
        {
            for (int k = 0; k < maxDigimonLength; k++)
            {
                string effectId = "EFF_COM_GimmickUP";
                Action <AlwaysEffectParams, int> result = delegate(AlwaysEffectParams res, int index)
                {
                    base.battleStateData.stageGimmickUpEffect[index] = res;
                };
                IEnumerator item = base.stateManager.initialize.LoadAlwaysEffect(effectId, k, result);
                list.Add(item);
                string effectId2 = "EFF_COM_GimmickDOWN";
                Action <AlwaysEffectParams, int> result2 = delegate(AlwaysEffectParams res, int index)
                {
                    base.battleStateData.stageGimmickDownEffect[index] = res;
                };
                IEnumerator item2 = base.stateManager.initialize.LoadAlwaysEffect(effectId2, k, result2);
                list.Add(item2);
            }
        }
        BattleDebug.Log("共通エフェクトのロード: 開始");
        IEnumerator LoadDataStore = base.stateManager.initialize.LoadCoroutine(list.ToArray());

        while (LoadDataStore.MoveNext())
        {
            yield return(null);
        }
        BattleDebug.Log("共通エフェクトのロード: 完了");
        yield break;
    }
Example #5
0
    public IEnumerator LoadAlwaysEffect(string effectId, int index, Action <AlwaysEffectParams, int> result)
    {
        BattleDebug.Log(string.Concat(new object[]
        {
            "--- 常設エフェクト単体ロード effectId[",
            effectId,
            "] index[",
            index,
            "] : 開始"
        }));
        AlwaysEffectParams alwaysParam = null;
        GameObject         effect      = null;

        if (!BattleObjectPooler.TryGetAlwaysEffectParams(effectId, index, out alwaysParam))
        {
            GameObject prefab = base.stateManager.serverControl.GetAlwaysEffectPrefab(effectId);
            effect = base.Instantiate <GameObject>(prefab);
            yield return(null);

            effect.name = effectId;
            alwaysParam = effect.GetComponent <AlwaysEffectParams>();
            BattleObjectPooler.AddAlwaysEffectParams(effectId, alwaysParam);
        }
        else
        {
            effect = alwaysParam.gameObject;
        }
        effect.transform.SetParent(base.battleStateData.alwaysEffectRoot);
        effect.transform.position = Vector3.zero;
        effect.transform.rotation = Quaternion.identity;
        IEnumerator initialize = alwaysParam.Initialize(base.hierarchyData.cameraObject.camera3D);

        while (initialize.MoveNext())
        {
            yield return(null);
        }
        base.stateManager.threeDAction.StopAlwaysEffectAction(new AlwaysEffectParams[]
        {
            alwaysParam
        });
        base.stateManager.soundPlayer.AddEffectSe(alwaysParam.inSeId);
        base.stateManager.soundPlayer.AddEffectSe(alwaysParam.alwaysSeId);
        base.stateManager.soundPlayer.AddEffectSe(alwaysParam.outSeId);
        result(alwaysParam, index);
        BattleDebug.Log(string.Concat(new object[]
        {
            "--- 常設エフェクト単体ロード effectId[",
            effectId,
            "] index[",
            index,
            "] : 完了"
        }));
        yield break;
    }
    private IEnumerator LoadBeforeInitializeUI()
    {
        BattleDebug.Log("ロード開始前UI初期化: 開始");
        IEnumerator initializeUI = base.stateManager.uiControl.BeforeInitializeUI();

        while (initializeUI.MoveNext())
        {
            yield return(null);
        }
        BattleDebug.Log("ロード開始前UI初期化: 完了");
        yield break;
    }
Example #7
0
    public IEnumerator LoadBattleInternalResources(string id, Action <GameObject> result)
    {
        BattleDebug.Log("--- バトル内部リソース単体ロード id[" + id + "] : 開始");
        GameObject BattleInternalResources = base.Instantiate <GameObject>(ResourcesPath.GetBattleInternalResourcesPrefab(id));

        yield return(null);

        BattleInternalResources.name = id;
        BattleInternalResources.transform.SetParent(base.battleStateData.BattleInternalResourcesRoot);
        BattleInternalResources.transform.Clear();
        result(BattleInternalResources);
        BattleDebug.Log("--- バトル内部リソース単体ロード id[" + id + "] : 完了");
        yield break;
    }
Example #8
0
    public IEnumerator LoadSpawnPoint(string spawnPointId)
    {
        BattleDebug.Log("--- 出現ポイント単体ロード spawnPointId[" + spawnPointId + "] : 開始");
        GameObject spawnPoint = base.Instantiate <GameObject>(base.stateManager.serverControl.GetSpawnPointPrefab(spawnPointId));

        yield return(null);

        spawnPoint.name = spawnPointId;
        spawnPoint.transform.SetParent(base.battleStateData.spawnPointRoot);
        spawnPoint.transform.Clear();
        base.battleStateData.preloadSpawnPoints.Add(spawnPointId, spawnPoint.GetComponent <SpawnPointParams>());
        BattleDebug.Log("--- 出現ポイント単体ロード spawnPointId[" + spawnPointId + "] : 完了");
        yield break;
    }
Example #9
0
    protected override IEnumerator LoadAfterInitializeUI()
    {
        BattleDebug.Log("ロード完了後UI初期化: 開始");
        IEnumerator afterInitializeUI = base.stateManager.uiControlPvP.AfterInitializeUI();

        while (afterInitializeUI.MoveNext())
        {
            yield return(null);
        }
        BattleDebug.Log("ロード完了後UI初期化: 完了");
        base.hierarchyData.on2xSpeedPlay = true;
        base.stateManager.pvpFunction.InitializeTCPClient(false);
        yield break;
    }
Example #10
0
    public IEnumerator LoadCharacterParam(string characterId, int index, Action <CharacterParams, int, string> result)
    {
        BattleDebug.Log(string.Concat(new object[]
        {
            "--- モンスター単体ロード characterId[",
            characterId,
            "] index[",
            index,
            "] : 開始"
        }));
        GameObject prefab    = base.stateManager.serverControl.GetCharacterPrefab(characterId);
        GameObject character = base.Instantiate <GameObject>(prefab);

        yield return(null);

        character.name = characterId;
        character.transform.SetParent(base.battleStateData.characterRoot);
        character.transform.position = Vector3.zero;
        character.transform.rotation = Quaternion.identity;
        CharacterParams characterParams = character.GetComponent <CharacterParams>();
        CapsuleCollider col             = characterParams.GetComponent <CapsuleCollider>();

        col.radius = 1.03f;
        if (base.battleStateData.useCharacterShadow)
        {
            characterParams.SetShadowObject();
            yield return(null);
        }
        characterParams.PlayAnimation(CharacterAnimationType.idle, SkillType.Attack, 0, null, null);
        yield return(null);

        characterParams.Initialize(base.hierarchyData.cameraObject.camera3D);
        GameObject      hasColliderObject = characterParams.collider.gameObject;
        BattleStateData battleStateData   = base.battleStateData;

        battleStateData.characterColliderLayerMask |= 1 << hasColliderObject.layer;
        character.gameObject.SetActive(false);
        result(characterParams, index, characterId);
        BattleDebug.Log(string.Concat(new object[]
        {
            "--- モンスター単体ロード characterId[",
            characterId,
            "] index[",
            index,
            "] : 完了"
        }));
        yield break;
    }
Example #11
0
    public IEnumerator LoadHitEffect(string effectId, int index, Action <HitEffectParams, int> result)
    {
        BattleDebug.Log(string.Concat(new object[]
        {
            "-- ヒットエフェクト単体ロード effectId[",
            effectId,
            "] index[",
            index,
            "] : 開始"
        }));
        HitEffectParams hitEffectParams = null;
        GameObject      hitEffect       = null;

        if (!BattleObjectPooler.TryGetHitEffectParams(effectId, index, out hitEffectParams))
        {
            GameObject prefab = base.stateManager.serverControl.GetHitEffectPrefab(effectId);
            hitEffect = base.Instantiate <GameObject>(prefab);
            yield return(null);

            hitEffect.name  = effectId;
            hitEffectParams = hitEffect.GetComponent <HitEffectParams>();
            BattleObjectPooler.AddHitEffectParams(effectId, hitEffectParams);
        }
        else
        {
            hitEffect = hitEffectParams.gameObject;
        }
        hitEffect.transform.SetParent(base.battleStateData.hitEffectRoot);
        hitEffect.SetActive(false);
        IEnumerator initialize = hitEffectParams.Initialize(base.hierarchyData.cameraObject.camera3D);

        while (initialize.MoveNext())
        {
            yield return(null);
        }
        base.stateManager.soundPlayer.AddEffectSe(hitEffectParams.seId);
        result(hitEffectParams, index);
        BattleDebug.Log(string.Concat(new object[]
        {
            "-- ヒットエフェクト単体ロード effectId[",
            effectId,
            "] index[",
            index,
            "] : 完了"
        }));
        yield break;
    }
Example #12
0
    public IEnumerator LoadStage()
    {
        BattleDebug.Log("--- ステージ単体ロード: 開始");
        GameObject stage = base.Instantiate <GameObject>(base.stateManager.serverControl.GetStagePrefab(base.hierarchyData.useStageId));

        yield return(null);

        stage.name = base.hierarchyData.useStageId;
        stage.transform.SetParent(base.battleStateData.stageRoot);
        base.hierarchyData.stageParams = stage.GetComponent <StageParams>();
        base.hierarchyData.stageParams.SetHierarchyEnviroments(base.hierarchyData.cameraObject);
        base.battleStateData.stageObject        = stage;
        stage.transform.localPosition           = Vector3.zero;
        stage.transform.localRotation           = Quaternion.identity;
        base.battleStateData.useCharacterShadow = base.hierarchyData.stageParams.UseCharacterShadow;
        BattleDebug.Log("--- ステージ単体ロード: 完了");
        yield break;
    }
    protected virtual IEnumerator LoadAfterInitializeUI()
    {
        base.stateManager.uiControl.ApplyChipNumber(base.battleStateData.currentGettedChip);
        base.stateManager.uiControl.ApplyExpNumber(base.battleStateData.currentGettedExp);
        BattleDebug.Log("ロード完了後UI初期化: 開始");
        IEnumerator afterInitializeUI = base.stateManager.uiControl.AfterInitializeUI();

        while (afterInitializeUI.MoveNext())
        {
            yield return(null);
        }
        BattleDebug.Log("ロード完了後UI初期化: 完了");
        if (PlayerPrefs.GetInt("Battle2xSpeedPlay", 0) == 1)
        {
            base.hierarchyData.on2xSpeedPlay = true;
        }
        int autoFlag = PlayerPrefs.GetInt("BattleAutoPlay", 0);

        if (0 < autoFlag)
        {
            if (autoFlag == 1)
            {
                base.hierarchyData.onAutoPlay = 1;
            }
            else if (autoFlag == 2)
            {
                base.hierarchyData.onAutoPlay = 2;
            }
        }
        if (base.battleMode == BattleMode.Tutorial)
        {
            base.hierarchyData.on2xSpeedPlay = false;
            base.hierarchyData.onAutoPlay    = 0;
        }
        base.stateManager.uiControl.ApplyHideHitIcon();
        base.stateManager.uiControl.ApplyDroppedItemHide();
        base.stateManager.uiControl.ApplyAutoPlay(base.hierarchyData.onAutoPlay);
        base.stateManager.uiControl.Apply2xPlay(base.hierarchyData.on2xSpeedPlay);
        base.stateManager.uiControl.ApplyAreaName(base.hierarchyData.areaName);
        bool sleep = base.hierarchyData.onAutoPlay > 0;

        base.stateManager.sleep.SetSleepOff(sleep);
        yield break;
    }
    protected override IEnumerator LoadAfterInitializeUI()
    {
        BattleDebug.Log("ロード完了後UI初期化: 開始");
        base.stateManager.uiControl.ApplyChipNumber(base.battleStateData.currentGettedChip);
        base.stateManager.uiControl.ApplyExpNumber(base.battleStateData.currentGettedExp);
        IEnumerator afterInitializeUI = base.stateManager.uiControlMulti.AfterInitializeUI();

        while (afterInitializeUI.MoveNext())
        {
            yield return(null);
        }
        BattleDebug.Log("ロード完了後UI初期化: 完了");
        base.hierarchyData.on2xSpeedPlay = true;
        base.stateManager.uiControl.ApplyHideHitIcon();
        base.stateManager.uiControl.ApplyDroppedItemHide();
        base.stateManager.uiControl.ApplyAutoPlay(base.hierarchyData.onAutoPlay);
        base.stateManager.uiControl.Apply2xPlay(base.hierarchyData.on2xSpeedPlay);
        base.stateManager.uiControl.ApplyAreaName(base.hierarchyData.areaName);
        base.stateManager.multiFunction.InitializeTCPClient(false);
        yield break;
    }
Example #15
0
    public IEnumerator LoadInvocationEffect(string skillInvocation, Action <InvocationEffectParams, string> result)
    {
        BattleDebug.Log("--- 発動スキルエフェクト単体ロード [" + skillInvocation + "] : 開始");
        GameObject skillObject = base.Instantiate <GameObject>(base.stateManager.serverControl.GetInvocationEffectPrefab(skillInvocation));

        yield return(null);

        skillObject.name = skillInvocation;
        skillObject.transform.SetParent(base.battleStateData.skillEffectRoot);
        InvocationEffectParams invocationEffectParams = skillObject.GetComponent <InvocationEffectParams>();
        IEnumerator            skillInit = invocationEffectParams.SkillInitialize(base.hierarchyData.cameraObject.camera3D, base.battleStateData.stageObject, base.hierarchyData.cameraObject.sunLightColorChanger);

        while (skillInit.MoveNext())
        {
            yield return(null);
        }
        skillObject.SetActive(false);
        result(invocationEffectParams, skillInvocation);
        BattleDebug.Log("--- 発動スキルエフェクト単体ロード [" + skillInvocation + "] : 完了");
        yield break;
    }
    protected virtual IEnumerator LoadPlayer()
    {
        int playerLength        = base.hierarchyData.usePlayerCharacters.Length;
        List <IEnumerator> list = new List <IEnumerator>();

        base.battleStateData.playerCharacters           = new CharacterStateControl[playerLength];
        base.battleStateData.revivalReservedEffect      = new AlwaysEffectParams[playerLength];
        base.battleStateData.isRevivalReservedCharacter = new bool[playerLength];
        base.battleStateData.isRoundStartHpRevival      = new bool[playerLength];
        LeaderSkillStatus leaderCharacterSkillStatus = null;
        PlayerStatus      getStatusLeader            = base.hierarchyData.usePlayerCharacters[base.hierarchyData.leaderCharacter];

        if (getStatusLeader.isHavingLeaderSkill)
        {
            leaderCharacterSkillStatus = base.hierarchyData.GetLeaderSkillStatus(getStatusLeader.leaderSkillId);
        }
        CharacterDatas leaderCharacterData = base.hierarchyData.GetCharacterDatas(getStatusLeader.groupId);

        for (int i = 0; i < playerLength; i++)
        {
            CharacterStatus   characterStatus   = base.hierarchyData.usePlayerCharacters[i];
            Tolerance         tolerance         = characterStatus.tolerance;
            CharacterDatas    characterDatas    = base.hierarchyData.GetCharacterDatas(characterStatus.groupId);
            SkillStatus[]     skillStatuses     = characterStatus.skillIds.Select((string item) => base.hierarchyData.GetSkillStatus(item)).ToArray <SkillStatus>();
            LeaderSkillStatus leaderSkillStatus = base.hierarchyData.GetLeaderSkillStatus(characterStatus.leaderSkillId);
            bool isEnemy = false;
            base.battleStateData.playerCharacters[i]           = base.stateManager.initialize.LoadCharacterStateControl(characterStatus, tolerance, characterDatas, skillStatuses, leaderCharacterSkillStatus, leaderCharacterData, leaderSkillStatus, isEnemy);
            base.battleStateData.playerCharacters[i].myIndex   = i;
            base.battleStateData.isRevivalReservedCharacter[i] = false;
            Action <CharacterParams, int, string> result = delegate(CharacterParams c, int index, string id)
            {
                base.battleStateData.playerCharacters[index].CharacterParams = c;
            };
            IEnumerator item4 = base.stateManager.initialize.LoadCharacterParam(characterStatus.prefabId, i, result);
            list.Add(item4);
            string effectId = "revivalReservationEffect";
            Action <AlwaysEffectParams, int> result2 = delegate(AlwaysEffectParams a, int id)
            {
                base.battleStateData.revivalReservedEffect[id] = a;
            };
            IEnumerator item2 = base.stateManager.initialize.LoadAlwaysEffect(effectId, i, result2);
            list.Add(item2);
            base.stateManager.initialize.SetHitEffectPool("EFF_COM_DEATH");
            base.stateManager.initialize.SetHitEffectPool("EFF_COM_L_HEAL");
        }
        base.battleStateData.leaderCharacter          = base.battleStateData.playerCharacters[base.hierarchyData.leaderCharacter];
        base.battleStateData.leaderCharacter.isLeader = true;
        base.battleStateData.insertCharacterEffect    = new AlwaysEffectParams[playerLength];
        for (int j = 0; j < playerLength; j++)
        {
            string insertPlayerPath = this.insertPlayerPath;
            Action <AlwaysEffectParams, int> result3 = delegate(AlwaysEffectParams res, int index)
            {
                base.battleStateData.insertCharacterEffect[index] = res;
            };
            IEnumerator item3 = base.stateManager.initialize.LoadAlwaysEffect(insertPlayerPath, j, result3);
            list.Add(item3);
        }
        BattleDebug.Log("プレイヤーキャラクタ / 関連エフェクトのロード: 開始");
        IEnumerator LoadDataStore = base.stateManager.initialize.LoadCoroutine(list.ToArray());

        while (LoadDataStore.MoveNext())
        {
            yield return(null);
        }
        base.stateManager.system.IfFullMemoryCallGC();
        BattleDebug.Log("プレイヤーキャラクタ / 関連エフェクトのロード: 完了");
        yield break;
    }
    protected virtual IEnumerator LoadEnemy()
    {
        int maxEnemiesLength = 0;
        int maxBossLength    = 0;

        for (int i = 0; i < base.hierarchyData.batteWaves.Length; i++)
        {
            maxEnemiesLength = Mathf.Max(maxEnemiesLength, base.hierarchyData.batteWaves[i].useEnemiesId.Length);
            int num = 0;
            foreach (bool flag in base.hierarchyData.batteWaves[i].enemiesBossFlag)
            {
                if (flag)
                {
                    num++;
                }
            }
            maxBossLength = Mathf.Max(maxBossLength, num);
        }
        List <IEnumerator> list = new List <IEnumerator>();
        LeaderSkillStatus  leaderCharacterLeaderSkill = null;
        CharacterStatus    getStatusEnemyLeader       = base.hierarchyData.batteWaves[0].enemyStatuses[base.hierarchyData.leaderCharacter];

        if (getStatusEnemyLeader.isHavingLeaderSkill)
        {
            leaderCharacterLeaderSkill = base.hierarchyData.GetLeaderSkillStatus(getStatusEnemyLeader.leaderSkillId);
        }
        CharacterDatas           enemyLeaderCharacterData        = base.hierarchyData.GetCharacterDatas(getStatusEnemyLeader.groupId);
        Dictionary <string, int> characterParamsIdListBattleWave = new Dictionary <string, int>();

        base.battleStateData.preloadEnemies = new CharacterStateControl[base.hierarchyData.batteWaves.Length][];
        for (int k = 0; k < base.battleStateData.preloadEnemies.Length; k++)
        {
            base.battleStateData.preloadEnemies[k] = new CharacterStateControl[base.hierarchyData.batteWaves[k].useEnemiesId.Length];
            Dictionary <string, int> dictionary = new Dictionary <string, int>();
            for (int l = 0; l < base.battleStateData.preloadEnemies[k].Length; l++)
            {
                CharacterStatus   characterStatus   = base.hierarchyData.batteWaves[k].enemyStatuses[l];
                Tolerance         tolerance         = characterStatus.tolerance;
                CharacterDatas    characterDatas    = base.hierarchyData.GetCharacterDatas(characterStatus.groupId);
                SkillStatus[]     skillStatuses     = characterStatus.skillIds.Select((string item) => base.hierarchyData.GetSkillStatus(item)).ToArray <SkillStatus>();
                LeaderSkillStatus leaderSkillStatus = base.hierarchyData.GetLeaderSkillStatus(characterStatus.leaderSkillId);
                bool isEnemy = true;
                base.battleStateData.preloadEnemies[k][l]         = base.stateManager.initialize.LoadCharacterStateControl(characterStatus, tolerance, characterDatas, skillStatuses, leaderCharacterLeaderSkill, enemyLeaderCharacterData, leaderSkillStatus, isEnemy);
                base.battleStateData.preloadEnemies[k][l].myIndex = l;
                if (l == base.hierarchyData.leaderCharacter)
                {
                    base.battleStateData.preloadEnemies[k][l].isLeader = true;
                }
                string prefabId = characterStatus.prefabId;
                if (!dictionary.ContainsKey(prefabId))
                {
                    dictionary.Add(prefabId, 1);
                }
                else
                {
                    Dictionary <string, int> dictionary2;
                    string key;
                    dictionary[prefabId] = ((dictionary2 = dictionary)[key = prefabId] = dictionary2[key] + 1);
                }
            }
            foreach (KeyValuePair <string, int> keyValuePair in dictionary)
            {
                if (characterParamsIdListBattleWave.ContainsKey(keyValuePair.Key))
                {
                    if (characterParamsIdListBattleWave[keyValuePair.Key] < keyValuePair.Value)
                    {
                        characterParamsIdListBattleWave[keyValuePair.Key] = keyValuePair.Value;
                    }
                }
                else
                {
                    characterParamsIdListBattleWave.Add(keyValuePair.Key, keyValuePair.Value);
                }
            }
        }
        foreach (KeyValuePair <string, int> keyValuePair2 in characterParamsIdListBattleWave)
        {
            for (int m = 0; m < keyValuePair2.Value; m++)
            {
                IEnumerator item6 = base.stateManager.initialize.LoadCharacterParam(keyValuePair2.Key, m, delegate(CharacterParams c, int index, string id)
                {
                    base.battleStateData.preloadEnemiesParams.Add(id, index.ToString(), c);
                });
                list.Add(item6);
            }
        }
        base.battleStateData.droppingItemNormalEffect = new AlwaysEffectParams[base.battleStateData.maxDropNum];
        base.battleStateData.droppingItemRareEffect   = new AlwaysEffectParams[base.battleStateData.maxDropNum];
        for (int n = 0; n < maxEnemiesLength; n++)
        {
            base.stateManager.initialize.SetHitEffectPool("EFF_COM_DEATH");
            base.stateManager.initialize.SetHitEffectPool("EFF_COM_BOSSDEATH");
        }
        for (int num2 = 0; num2 < base.battleStateData.maxDropNum; num2++)
        {
            string effectId = "droppingItemEffectNormal";
            Action <AlwaysEffectParams, int> result = delegate(AlwaysEffectParams a, int index)
            {
                base.battleStateData.droppingItemNormalEffect[index] = a;
            };
            IEnumerator item2 = base.stateManager.initialize.LoadAlwaysEffect(effectId, num2, result);
            list.Add(item2);
            string effectId2 = "droppingItemEffectRare";
            Action <AlwaysEffectParams, int> result2 = delegate(AlwaysEffectParams a, int index)
            {
                base.battleStateData.droppingItemRareEffect[index] = a;
            };
            IEnumerator item3 = base.stateManager.initialize.LoadAlwaysEffect(effectId2, num2, result2);
            list.Add(item3);
        }
        base.battleStateData.leaderEnemyCharacter = base.battleStateData.enemies[base.hierarchyData.leaderCharacter];
        base.battleStateData.insertEnemyEffect    = new AlwaysEffectParams[maxEnemiesLength];
        for (int num3 = 0; num3 < maxEnemiesLength; num3++)
        {
            string insertEnemyPath = this.insertEnemyPath;
            Action <AlwaysEffectParams, int> result3 = delegate(AlwaysEffectParams res, int index)
            {
                base.battleStateData.insertEnemyEffect[index] = res;
            };
            IEnumerator item4 = base.stateManager.initialize.LoadAlwaysEffect(insertEnemyPath, num3, result3);
            list.Add(item4);
        }
        base.battleStateData.insertBossCharacterEffect = new AlwaysEffectParams[maxBossLength];
        for (int num4 = 0; num4 < maxBossLength; num4++)
        {
            string effectId3 = "insertBossCharacterEffect";
            Action <AlwaysEffectParams, int> result4 = delegate(AlwaysEffectParams res, int index)
            {
                base.battleStateData.insertBossCharacterEffect[index] = res;
            };
            IEnumerator item5 = base.stateManager.initialize.LoadAlwaysEffect(effectId3, num4, result4);
            list.Add(item5);
        }
        BattleDebug.Log("敵キャラクタ / 関連エフェクトのロード: 開始");
        IEnumerator LoadDataStore = base.stateManager.initialize.LoadCoroutine(list.ToArray());

        while (LoadDataStore.MoveNext())
        {
            yield return(null);
        }
        base.stateManager.system.IfFullMemoryCallGC();
        BattleDebug.Log("敵キャラクタ / 関連エフェクトのロード: 完了");
        yield break;
    }
    private IEnumerator LoadResources()
    {
        List <IEnumerator> LoadObjectStore = new List <IEnumerator>();

        LoadObjectStore.Add(base.stateManager.initialize.LoadBattleInternalResources("WinCameraMotion", delegate(GameObject g)
        {
            base.battleStateData.winCameraMotionInternalResources = g.GetComponent <BattleCameraSwitcher>();
            base.battleStateData.winCameraMotionInternalResources.Initialize(base.hierarchyData.cameraObject.camera3D);
        }));
        LoadObjectStore.Add(base.stateManager.initialize.LoadBattleInternalResources("CommandSelectCameraMotion", delegate(GameObject g)
        {
            base.battleStateData.normalCommandSelectTweenTargetCamera            = g.GetComponent <TweenCameraTargetFunction>();
            base.battleStateData.normalCommandSelectTweenTargetCamera.isFoolowUp = false;
            base.battleStateData.normalCommandSelectTweenTargetCamera.Initialize(base.hierarchyData.cameraObject.camera3D);
        }));
        bool isBigBoss = false;

        foreach (BattleWave battleWave in base.hierarchyData.batteWaves)
        {
            if (battleWave.cameraType == 1)
            {
                isBigBoss = true;
                break;
            }
        }
        if (isBigBoss)
        {
            LoadObjectStore.Add(base.stateManager.initialize.LoadBattleInternalResources("BigBossCommandSelectCameraMotion", delegate(GameObject g)
            {
                base.battleStateData.bigBossCommandSelectTweenTargetCamera            = g.GetComponent <TweenCameraTargetFunction>();
                base.battleStateData.bigBossCommandSelectTweenTargetCamera.isFoolowUp = false;
                base.battleStateData.bigBossCommandSelectTweenTargetCamera.Initialize(base.hierarchyData.cameraObject.camera3D);
            }));
        }
        if (base.hierarchyData.onInstanceStage)
        {
            LoadObjectStore.Add(base.stateManager.initialize.LoadStage());
        }
        LoadObjectStore.Add(base.stateManager.initialize.LoadSpawnPoint(this.enemySpawnPoint1));
        LoadObjectStore.Add(base.stateManager.initialize.LoadSpawnPoint(this.enemySpawnPoint2));
        LoadObjectStore.Add(base.stateManager.initialize.LoadSpawnPoint(this.enemySpawnPoint3));
        if (isBigBoss)
        {
            LoadObjectStore.Add(base.stateManager.initialize.LoadSpawnPoint("0001_enemiesOne_small_bigboss"));
        }
        BattleDebug.Log("ステージ / 内部リソースのロード: 開始");
        IEnumerator LoadDataStore = base.stateManager.initialize.LoadCoroutine(LoadObjectStore.ToArray());

        while (LoadDataStore.MoveNext())
        {
            yield return(null);
        }
        if (isBigBoss)
        {
            base.battleStateData.commandSelectTweenTargetCamera = base.battleStateData.bigBossCommandSelectTweenTargetCamera;
        }
        else
        {
            base.battleStateData.commandSelectTweenTargetCamera = base.battleStateData.normalCommandSelectTweenTargetCamera;
        }
        BattleDebug.Log("ステージ / 内部リソースのロード: 完了");
        yield break;
    }