Exemplo n.º 1
0
    public void OpenSaleDialog()
    {
        if (!IsSaleUnit())
        {
            return;
        }

        SoundUtil.PlaySE(SEID.SE_MENU_OK2);

        //----------------------------------------
        // パラメータリミットチェック
        //----------------------------------------
        //チェック対象:コイン・ユニットポイント
        PRM_LIMIT_ERROR_TYPE ret = MainMenuUtil.ChkPrmLimit((uint)m_UnitBGPanel.Money, 0, 0, 0, (uint)m_UnitBGPanel.Point);
        Dialog warningDialog     = null;

        switch (ret)
        {
        case PRM_LIMIT_ERROR_TYPE.PRM_LIMIT_ERR_COIN:
            // コインが最大数オーバー
            warningDialog = Dialog.Create(DialogType.DialogYesNo);
            warningDialog.SetDialogTextFromTextkey(DialogTextType.Title, "ERROR_SALE_LIMIT_COIN_TITLE");
            warningDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "ERROR_SALE_LIMIT_COIN");
            break;

        case PRM_LIMIT_ERROR_TYPE.PRM_LIMIT_ERR_UNITPOINT:
            // ユニットポイントが最大数オーバー
            warningDialog = Dialog.Create(DialogType.DialogYesNo);
            warningDialog.SetDialogTextFromTextkey(DialogTextType.Title, "ERROR_SALE_LIMIT_UNITPOINT_TITLE");
            warningDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "ERROR_SALE_LIMIT_UNITPOINT");
            break;

        case PRM_LIMIT_ERROR_TYPE.PRM_LIMIT_ERR_OTHER:
            // コインとユニットポイントが最大数オーバー
            warningDialog = Dialog.Create(DialogType.DialogYesNo);
            warningDialog.SetDialogTextFromTextkey(DialogTextType.Title, "ERROR_SALE_LIMIT_OTHER_TITLE");
            warningDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "ERROR_SALE_LIMIT_OTHER");
            break;
        }

        if (warningDialog != null)
        {
            warningDialog.SetDialogTextFromTextkey(DialogTextType.YesText, "common_button4");
            warningDialog.SetDialogTextFromTextkey(DialogTextType.NoText, "common_button5");
            warningDialog.SetDialogEvent(DialogButtonEventType.YES, () =>
            {
                openSaleWarningDialog();
            });
            warningDialog.Show();
            return;
        }

        openSaleWarningDialog();
    }
Exemplo n.º 2
0
    /// <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;
        }
    }