예제 #1
0
    /* 探索開始 */
    private IEnumerator StartAdventure()
    {
        // 探索開始
        GameObject obj      = GameObject.Find(Variables.Save.Name);; // パーティーオブジェクトを探す
        mSaveData  saveData = obj.GetComponent <mSaveData>();

        // パーティ選択画面を表示
        yield return(DecideEditParty.Loop(saveData.GetSaveParty(), "【戻る】", "利用するパーティを選んでください"));

        int id = DecideEditParty.editPartyId;

        if (id >= 0)
        {
            saveData.GetSaveParty().mainParty = id;
        }
        else
        {
            yield break;
        }

        // セーブデータオブジェクトを破棄して
        // パーティオブジェクトを生成
        saveData.StartAdventure();
        SoundManager.PlaySe(Variables.SE.SeName.system_dec2);

        yield return(MoveScene("TES"));
    }
예제 #2
0
    /*
     * ================================================
     * ゲームメインループ
     * ================================================
     */
    IEnumerator MainLoop()
    {
        /* 初期化処理 */
        yield return(Init()); // セーブデータの読み込みにウェイトを挟む

        /* メインループ */
        editPartyStatus    = EDIT_PARTY_STATUS._CHANGE_CHARACTER;
        editPartyStatus    = EDIT_PARTY_STATUS._PARTY_SELECT;
        changeCharaPartyId = -1;
        while (true)
        {
            switch (editPartyStatus)
            {
            // 編集するパーティの選択
            case EDIT_PARTY_STATUS._PARTY_SELECT:
                yield return(DecideEditParty.Loop(saveData.GetSaveParty()));

                editPartyId     = DecideEditParty.editPartyId;
                editPartyStatus = DecideEditParty.editPartyStatus;
                break;

            // 編成対象となるキャラクターの選択
            case EDIT_PARTY_STATUS._CHANGE_CHARACTER:
                SetEditParty();     // editPartyId に応じて、パーティ情報を格納
                yield return(DecideChangeCharacter.Loop(editParty));

                changeCharaPartyId = DecideChangeCharacter.changeCharaPartyId;
                editPartyStatus    = DecideChangeCharacter.editPartyStatus;
                break;

            // 誰を加入させるか選択
            case EDIT_PARTY_STATUS._JOIN_CHARACTER:
                yield return(DecideJoinCharacter.Loop(saveData.GetObtainChara()));

                joinCharaId     = DecideJoinCharacter.joinCharaId;
                editPartyStatus = DecideJoinCharacter.editPartyStatus;
                break;

            // 実際の入れ替え処理
            case EDIT_PARTY_STATUS._DECIDED_JOIN_CHARACTER:
                ChangeMember();
                SaveParty();
                editPartyStatus = EDIT_PARTY_STATUS._CHANGE_CHARACTER;
                break;

            case EDIT_PARTY_STATUS._END:
                yield return(Utility._Scene.MoveScene("Base", "Images\\Background\\Black", 90));

                break;

            default:
                break;
            }
            // フリーズを防止
            yield return(0);
        }
    }
예제 #3
0
    IEnumerator Encount()
    {
        // エンカウント準備
        GameObject obj = new GameObject();

        obj.AddComponent <EnemyGroup>();
        GameObject obj2 = new GameObject();

        _saveData = obj2.AddComponent <mSaveData>();

        // 1フレウェイトでもセットは終わりそうだけど。
        yield return(Utility._Wait.WaitFrame(10));

        yield return(obj2.GetComponent <mSaveData>().WaitLoad());

        _saveData.GetSaveParty().mainParty = 0;
        for (int i = 0; i < _partyCharacterId.Length; i++)
        {
            _saveData.GetSaveParty().partyCharacterId[0, i] = _partyCharacterId[i];
        }

        _saveData.StartAdventure();
        yield return(Utility._Encount.Encount(_encountGroupId));
    }