예제 #1
0
    // 購入確認ダイアログボックス表示
    private void possible(ProductsListItemContex contex)
    {
        SoundUtil.PlaySE(SEID.SE_MENU_OK);
        Dialog newDialog = Dialog.Create(DialogType.DialogYesNo).SetStrongYes();

        newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "sh126q_title");
        string mainFormat = GameTextUtil.GetText("sh126q_content1");

        newDialog.SetDialogText(DialogTextType.MainText, string.Format(mainFormat, contex.NameText, "", string.Format("{0:#,0}", contex.Price), string.Format("{0:#,0}", UnitPoint)));
        newDialog.SetDialogTextFromTextkey(DialogTextType.YesText, "common_button4");
        newDialog.SetDialogTextFromTextkey(DialogTextType.NoText, "common_button5");

        newDialog.SetDialogEvent(DialogButtonEventType.YES, new System.Action(() =>
        {
#if BUILD_TYPE_DEBUG
            Debug.Log("はい");
#endif
            purchase(contex);       // 購入処理
        }));
        newDialog.SetDialogEvent(DialogButtonEventType.NO, new System.Action(() =>
        {
#if BUILD_TYPE_DEBUG
            Debug.Log("いいえ");
#endif
        }));
        newDialog.Show();
    }
예제 #2
0
    public void AddRecord(int id, MasterDataPointShopProduct product)
    {
        var model  = new ListItemModel((uint)id);
        var contex = new ProductsListItemContex(id, product, model);

        model.OnClicked += () =>
        {
            OnClickedRecordButton(contex);
        };
        model.OnLongPressed += () =>
        {
            contex.OnClickedButton();
        };

        // レコードの追加先を指定
        switch (product.product_type)
        {
        case MasterDataDefineLabel.PointShopType.ITEM:
            Records0.Add(contex);
            break;

        case MasterDataDefineLabel.PointShopType.UNIT:
            Records1.Add(contex);
            break;

        case MasterDataDefineLabel.PointShopType.UNIT_BUILDUP:
            Records2.Add(contex);
            break;

        case MasterDataDefineLabel.PointShopType.UNIT_EVOL:
            Records3.Add(contex);
            break;
        }
    }
예제 #3
0
    // 購入処理
    private void purchase(ProductsListItemContex contex)
    {
#if BUILD_TYPE_DEBUG
        Debug.Log("購入 SendPacketAPI_PointShopPurchase");
#endif

        MasterDataDefineLabel.PointShopType _itemType = contex.Product.product_type;
        // レコード
        var serverApi = ServerDataUtilSend.SendPacketAPI_PointShopPurchase(contex.Product.fix_id);

        // SendStartの成功時の振る舞い
        serverApi.setSuccessAction(_data =>
        {
            var purchase = _data.GetResult <ServerDataDefine.RecvPointShopPurchase>().result;
            if (purchase == null)
            {
                // 購入失敗
#if BUILD_TYPE_DEBUG
                Debug.Log("購入失敗");
#endif
                return;
            }

#if BUILD_TYPE_DEBUG
            Debug.Log("購入処理");
#endif

            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvPointShopPurchase>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();

            Dialog _newDialog = Dialog.Create(DialogType.DialogOK);
            _newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "sh127q_title");
            string mainText = GameTextUtil.GetText("sh127q_content1");
            if (_itemType == MasterDataDefineLabel.PointShopType.ITEM)
            {
                mainText += "\n\r" + GameTextUtil.GetText("sh127q_content2");
            }
            _newDialog.SetDialogText(DialogTextType.MainText, mainText);
            _newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
            _newDialog.SetOkEvent(() =>
            {
                StartCoroutine(MainMenuWebViewShowChk.PopupWebViewStart(MainMenuWebViewShowChk.PopupWebViewType.Mission));
            });
            _newDialog.Show();

            // ユニットポイント表示の更新
            UnitPoint = UserDataAdmin.Instance.m_StructPlayer.have_unit_point;
        });

        // SendStartの失敗時の振る舞い
        serverApi.setErrorAction(_date =>
        {
#if BUILD_TYPE_DEBUG
            Debug.Log("MASTER_HASH_GET:Error");
#endif
        });

        serverApi.SendStart();
    }
예제 #4
0
 // 購入不能
 private void notPossible(ProductsListItemContex contex)
 {
 }
예제 #5
0
    // レコードボタンのフィードバック
    public void OnClickedRecordButton(ProductsListItemContex contex)
    {
        // 値段(ユニットポイント)チェック
        if (contex.Price > UnitPoint)
        {
            SoundUtil.PlaySE(SEID.SE_MENU_RET);
            Dialog newDialog = Dialog.Create(DialogType.DialogOK);
            newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "sh126q_title");
            newDialog.SetDialogText(DialogTextType.MainText, string.Format(GameTextUtil.GetText("sh126q_content2"), contex.NameText));
            newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
            newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() =>
            {
#if BUILD_TYPE_DEBUG
                Debug.Log("OK");
#endif
            }));
            newDialog.Show();

            return;
        }

        //-----------------------------------------------------------
        // アイテム所持数チェック
        //-----------------------------------------------------------
        if (contex.Product.product_type == MasterDataDefineLabel.PointShopType.ITEM)
        {
            PacketStructUseItem[] items = UserDataAdmin.Instance.m_StructPlayer.item_list;
            PacketStructUseItem   item  = Array.Find(items, (v) => v.item_id == contex.Product.product_param1);

            if (item != null && item.item_cnt >= GlobalDefine.VALUE_MAX_ITEM)
            {
                SoundUtil.PlaySE(SEID.SE_MENU_RET);
                Dialog newDialog = Dialog.Create(DialogType.DialogOK);
                newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "point_upperlimit_item_title");
                newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "point_upperlimit_item_content");
                newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
                newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() =>
                {
                }));
                newDialog.Show();

                return;
            }
        }

        //-----------------------------------------------------------
        // ユニット所持数チェック
        //-----------------------------------------------------------
        if (contex.Product.product_type == MasterDataDefineLabel.PointShopType.UNIT ||
            contex.Product.product_type == MasterDataDefineLabel.PointShopType.UNIT_EVOL ||
            contex.Product.product_type == MasterDataDefineLabel.PointShopType.UNIT_BUILDUP ||
            contex.Product.product_type == MasterDataDefineLabel.PointShopType.UNIT_LINK)
        {
            int unitMax   = (int)UserDataAdmin.Instance.m_StructPlayer.total_unit;
            int unitTotal = 0;
            if (UserDataAdmin.Instance.m_StructPlayer.unit_list != null)
            {
                unitTotal = UserDataAdmin.Instance.m_StructPlayer.unit_list.Length;
            }

            if (unitTotal >= unitMax)
            {
                bool bUnitFull = (UserDataAdmin.Instance.m_StructPlayer.total_unit >= MasterDataUtil.GetUserUnitMax()); // ユニット所持枠上限
                if (bUnitFull == false)
                {
                    // 有料拡張分も見る
                    bUnitFull = (UserDataAdmin.Instance.m_StructPlayer.extend_unit >= MasterDataUtil.GetMasterDataGlobalParamFromID(GlobalDefine.GLOBALPARAMS_UNIT_MAX_EXTEND));
                }

                SoundUtil.PlaySE(SEID.SE_MENU_RET);

                if (bUnitFull == false)
                {
                    // ユニット所持枠購入上限内
                    Dialog newDialog = Dialog.Create(DialogType.DialogOK);
                    newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "point_upperlimit_unit_title");
                    newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "point_upperlimit_unit_content");
                    newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
                    newDialog.SetDialogObjectEnabled(DialogObjectType.VerticalButtonList, true);
                    newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_01"), () =>
                    {
                        //ユニット枠拡張
                        StoreDialogManager.Instance.OpenDialogUnitExtend();
                    });
                    newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_02"), () =>
                    {
                        if (MainMenuManager.HasInstance)
                        {
                            MainMenuParam.m_BuildupBaseUnitUniqueId = 0;
                            MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_UNIT_BUILDUP, false, false);
                        }
                    });
                    newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_03"), () =>
                    {
                        if (MainMenuManager.HasInstance)
                        {
                            MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_UNIT_SALE, false, false);
                        }
                    });
                    newDialog.Show();
                }
                else
                {
                    Dialog newDialog = Dialog.Create(DialogType.DialogOK);
                    newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "point_upperlimit_unit_title");
                    newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "sc256q_content2");
                    newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
                    newDialog.SetDialogObjectEnabled(DialogObjectType.VerticalButtonList, true);
                    newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_02"), () =>
                    {
                        if (MainMenuManager.HasInstance)
                        {
                            MainMenuParam.m_BuildupBaseUnitUniqueId = 0;
                            MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_UNIT_BUILDUP, false, false);
                        }
                    });
                    newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_03"), () =>
                    {
                        if (MainMenuManager.HasInstance)
                        {
                            MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_UNIT_SALE, false, false);
                        }
                    });
                    newDialog.Show();
                }
                return;
            }
        }

        possible(contex);       // 購入可能
    }