/// <summary> /// クエスト決定 /// </summary> /// <param name="quest_id"></param> private void SelectQuest(uint quest_index) { SoundUtil.PlaySE(SEID.SE_MENU_OK2); EpisodeDataContext selectArea = m_QuestSelect.EpisodeList[m_SelectAreaIndex]; QuestDataContext selectQuest = m_QuestSelect.QuestList[(int)quest_index]; switch (m_QuestSelect.QuestList[(int)quest_index].m_QuestType) { case QuestDataContext.ExecType.Quest: break; case QuestDataContext.ExecType.Quest2: { { MainMenuParam.m_QuestStamina = 0; MainMenuParam.m_QuestKey = 0; MainMenuParam.m_QuestTicket = 0; switch (selectQuest.master.consume_type) { case 1: MainMenuParam.m_QuestStamina = selectQuest.m_Point; break; case 2: MainMenuParam.m_QuestKey = selectQuest.m_Point; break; case 3: MainMenuParam.m_QuestTicket = selectQuest.m_Point; break; } MainMenuParam.m_QuestAreaAmendList = selectArea.amend.m_AreaMasterDataAmendList; } if (MainMenuManager.HasInstance) { MainMenuParam.m_QuestSelectAreaID = selectArea.master.fix_id; MainMenuParam.m_QuestSelectMissionID = selectQuest.master.fix_id; MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_QUEST_SELECT_DETAIL, false, false); } } break; case QuestDataContext.ExecType.Event: { //---------------------------------------- // パラメータリミットチェック //---------------------------------------- //チェック対象:コイン、チケット、フレンドポイント PRM_LIMIT_ERROR_TYPE ret = MainMenuUtil.ChkPrmLimit(1, 1, 1, 0, 0); //チェック対象:消費アイテム全て ret = MainMenuUtil.ChkPrmLimitItem(1, -1, ret); //チェック対象:クエストキー全て ret = MainMenuUtil.ChkPrmLimitQuestKey(1, -1, ret); MainMenuUtil.ShowParamLimitDialog(ret, DialogType.DialogYesNo, (isPositive) => { if (isPositive == true) { //---------------------------------------- // ストーリー画面の表示 //---------------------------------------- StoryView cutin = StoryView.Create(); cutin.SetScenario(selectQuest.master.story, selectQuest.master.fix_id); cutin.SetReloadQuestListEvent(() => { int hasAreaCount = 0; bool hasSelectArea = false; selectQuest.SetFlag(selectQuest.master.fix_id); updateEpisodeListInfo(ref hasAreaCount, ref hasSelectArea); // 表示しているエリアが期限切れ if (hasSelectArea == false) { openWarningAreaDialog(); } }); cutin.Show(() => { #if BUILD_TYPE_DEBUG Debug.Log("StoryView Completed"); #endif }); } }); } break; } }