示例#1
0
    // Update is called once per frame
    void Update()
    {
        switch (m_ScenePhase)
        {
        case ScenePhase.START:
            MasterDataEnemyGroup[] master_data_array = BattleParam.m_MasterDataCache.getAllEnemyGroup();
            if (master_data_array != null)
            {
                m_IsEnableEnemyUI = true;
            }
            initPlayerParty1();

            m_ScenePhase = ScenePhase.INIT;
            break;

        case ScenePhase.INIT:
            m_ScenePhase = ScenePhase.PLAYER_SETUP;
            break;

        case ScenePhase.PLAYER_SETUP:
            setup_for_screen();
            m_ScenePhase = ScenePhase.PLAYER_SETUP_WAIT;
            break;

        case ScenePhase.PLAYER_SETUP_WAIT:
            // OnPushButtonStart() が呼ばれれば進む.
            update_setup_ui();
            break;

        case ScenePhase.INIT_PLAYER:
            BattleParam.m_MasterDataCache.clearCachePlayerAll();
            BattleParam.m_MasterDataCache.clearCacheEnemyAll();
            setup_from_screen();
            initPlayerParty2();

            BattleParam.QuestInitialize(null);

            m_ScenePhase = ScenePhase.INIT_ENEMY;
            break;

        case ScenePhase.INIT_ENEMY:
            resetBattleRequest();
            createBattleRequest();
            m_ScenePhase = ScenePhase.INIT_BATTLE_MANAGER;
            break;

        case ScenePhase.INIT_BATTLE_MANAGER:
        {
            GameObject effect_prefab = Resources.Load <GameObject>("Prefab/BattleScene/InGameEffectPrefab");
            GameObject effect_obj    = Instantiate(effect_prefab);      // effect_prefabのコンポーネントを書き換えると以前に書き換えた情報が残っているので別オブジェクトを一回生成
            SceneObjReferGameMainEffect effect_assign = effect_obj.GetComponent <SceneObjReferGameMainEffect>();
            SceneObjReferGameMain.Instance.setEffectAssignObj(effect_assign);
        }
            BattleParam.BattleInitialize(BattleParam.m_BattleRequest, null);
            BattleParam.setKensyoParam(m_SkillTurnCondition, m_KobetsuHP_EnemyAtkRate, m_KobetsuHPEnemyAttackAll, m_KobetsuHPEnemyTargetHate);
            BattleParam.BattleStart();
            m_ScenePhase = ScenePhase.BATTILING;
            break;

        case ScenePhase.BATTILING:
            if (BattleParam.getBattlePhase() == BattleParam.BattlePhase.NOT_BATTLE)
            {
                // クリアした
                bool is_next_battle = createBattleRequest();
                if (is_next_battle)
                {
                    // 次の戦闘がある
                    m_ScenePhase = ScenePhase.INIT_BATTLE_MANAGER;
                }
                else
                {
                    // 終了
                    BattleParam.endBattleScene();
                    m_ScenePhase = ScenePhase.INIT;
                }
            }
            if (BattleParam.getBattlePhase() == BattleParam.BattlePhase.RETIRE)
            {
                // ゲームオーバー
                BattleParam.endBattleScene();
                m_ScenePhase = ScenePhase.INIT;
            }
            break;

        default:
            break;
        }
    }