/* 探索開始 */ 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")); }
/* * ================================================ * ゲームメインループ * ================================================ */ 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); } }
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)); }