Пример #1
0
    public void OnClickReceiveButton()
    {
#if BUILD_TYPE_DEBUG
        Debug.Log("CALL OnClickReceiveButton:" + gameObject.name);
#endif
        //連打防止
        if (ServerApi.IsExists)
        {
            return;
        }

        if (GlobalMenuManager.Instance.IsPageClosing() == true)
        {
            return;
        }

        if (GlobalMenuManager.Instance.IsCangeTime())
        {
            return;
        }
        SoundUtil.PlaySE(SEID.SE_MENU_OK2);

        ServerDataUtilSend.SendPacketAPI_AchievementOpen(
            new uint[]
        {
            Achievement.fix_id
        },
            null).
        setSuccessAction(
            (_data) =>
        {
            //ユーザー情報更新
            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvOpenAchievement>(UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();

            RecvOpenAchievementValue result = _data.GetResult <RecvOpenAchievement>().result;
            MissionOneOpenResultMessage(result);
            MissionGroup.SetEnaleReceiveButtonAll(false);
            MissionGroup.Activate();

            // 開封した新規達成アチーブメントを削除
            ResidentParam.DelAchievementClear(result.achievement_opened);
#if BUILD_TYPE_DEBUG
            Debug.LogError("FINISH:" + ((result.achievement_opened != null) ? result.achievement_opened.Length : 0));
#endif
            MainMenuManager.Instance.UpdateUserStatusFromGlobalMenu();
        }).
        setErrorAction(
            (_data) =>
        {
            Debug.LogError("ERROR:" + _data.m_PacketCode);
            MissionGroup.SetEnaleReceiveButtonAll(true);
        }).
        SendStart();
    }
Пример #2
0
    //----------------------------------------------------------------------------

    /*!
     *  @brief  アチーブメント操作:新規達成アチーブメントから要素を削除
     */
    //----------------------------------------------------------------------------
    static public void DelAchievementClear(uint[] fix_ids)
    {
        if (fix_ids.IsNullOrEmpty() == false)
        {
            for (int i = 0; i < fix_ids.Length; ++i)
            {
                ResidentParam.DelAchievementClear(fix_ids[i]);
            }

            MainMenuHeader.SetupMissionClearMessage();
        }
    }
Пример #3
0
    public static IEnumerator PopupWebViewStart(PopupWebViewType type,
                                                uint id            = 0,
                                                Action callback    = null,
                                                Action closeAction = null)
    {
        if (TutorialManager.IsExists)
        {
            if (callback != null)
            {
                callback();
            }
        }
        else
        {
            WebViewDayCheck();

            List <uint>    webViewList = MainMenuWebViewShowChk.GetPopupWebViewList(type, id);
            WaitForSeconds wait        = new WaitForSeconds(0.5f);
            int            opencount   = 0;
            for (int i = 0; i < webViewList.Count; ++i)
            {
                MasterDataWebView master = MasterFinder <MasterDataWebView> .Instance.Find((int)webViewList[i]);

                if (master != null)
                {
                    WebView webView = WebView.OpenWebView(master.url_web,
                                                          closeAction,
                                                          master.fix_id);
                    while (webView.isOpen == true)
                    {
                        yield return(null);
                    }

                    ResidentParam.DelAchievementClear(master.webview_param_1);
                    opencount++;
                }

                yield return(wait);
            }

            if (callback != null)
            {
                callback();
            }

            if (opencount <= 0 &&
                closeAction != null)
            {
                closeAction();
            }
        }
    }
Пример #4
0
    //一括受取ボタン
    public void OnClickReceiveAllButton()
    {
#if BUILD_TYPE_DEBUG
        Debug.Log("CALLOnClickReceiveAllButton");
#endif

        if (GlobalMenuManager.Instance.IsPageClosing() == true)
        {
            return;
        }

        //連打防止
        if (ServerApi.IsExists)
        {
            return;
        }

        if (GlobalMenuManager.Instance.IsCangeTime())
        {
            return;
        }

        SoundUtil.PlaySE(SEID.SE_MENU_OK);

        List <MasterDataAchievementConverted> tmpOpenCollection = CurrentMissionGroup.Collection.FindAll((v) => v.IsState_Achieve || v.IsState_AchieveEffect);
        List <MasterDataAchievementConverted> openCollection    = new List <MasterDataAchievementConverted>();

        //--------------------------------------
        // フィルター設定に該当するミッションを抽出する
        //--------------------------------------
        MasterDataDefineLabel.AchievementReceiveType filterType = MasterDataDefineLabel.AchievementReceiveType.NONE;
        if (m_FilterInfo != null)
        {
            filterType = m_FilterInfo.m_receive_type;
        }
        for (int i = 0; i < tmpOpenCollection.Count; ++i)
        {
            if (MasterDataUtil.CheckReceivePresentType(tmpOpenCollection[i].present_ids, filterType) == true)
            {
                openCollection.Add(tmpOpenCollection[i]);
            }
        }

        uint[] present = openCollection.Select((v) => v.fix_id).ToArray();  // 現在のタブで、報酬があるアチーブメントの配列

        // リクエスト
        ServerDataUtilSend.SendPacketAPI_AchievementOpen(present, new uint[]
        {
            (uint)CurrentMissionGroup.missionGroupType
        }).
        setSuccessAction((_data) =>
        {
            //ユーザー情報更新
            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvOpenAchievement>(UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();

            RecvOpenAchievementValue result = _data.GetResult <RecvOpenAchievement>().result;
            MissionAllOpenResultMessage(result);
#if BUILD_TYPE_DEBUG
            Debug.Log("FINISH:" + result.achievement_opened);
#endif
            CurrentMissionGroup.SetEnaleReceiveButtonAll(false);     // 開封したミッションリストのボタンを押せなくする
            CurrentMissionGroup.Activate();

            // 開封した新規達成アチーブメントを削除
            ResidentParam.DelAchievementClear(result.achievement_opened);

            MainMenuManager.Instance.UpdateUserStatusFromGlobalMenu();
        }).
        setErrorAction((_data) =>
        {
            Debug.LogError("ERROR:" + _data.m_PacketCode);
            CurrentMissionGroup.SetEnaleReceiveButtonAll(true);
        }).
        SendStart();
    }