示例#1
0
    void OpenLineUp(MasterDataStepUpGachaManage stepupgachamanage, uint assign_id)
    {
        SoundUtil.PlaySE(SEID.SE_MENU_OK);

        m_Canvas.enabled = false;

        string title = GameTextUtil.GetText("gacha_lineup_title1");

        if (stepupgachamanage.special_assign_id != 0 &&
            stepupgachamanage.special_assign_id == assign_id)
        {
            title = GameTextUtil.GetText("gacha_lineup_title2");
        }

        // タイトルにステップ数追加
        if (stepupgachamanage.step_num == 0)
        {
            // 初回ステップ
            title += GameTextUtil.GetText("gacha_lineup_step1");
        }
        else
        {
            title += string.Format(GameTextUtil.GetText("gacha_lineup_step2"), stepupgachamanage.step_num);
        }

        ScratchLineUpDialog lineupdialog = ScratchLineUpDialog.Create();

        lineupdialog.SetCamera(SceneObjReferMainMenu.Instance.m_MainMenuGroupCamera.GetComponent <Camera>());
        lineupdialog.setup(m_GachaMaster, stepupgachamanage, assign_id, true, title);
        lineupdialog.m_CloseAction = () =>
        {
            m_Canvas.enabled = true;
        };
    }
示例#2
0
    public void setup(MasterDataGacha _master)
    {
        m_IsMoveScratchResult = false;
        m_Master      = _master;
        m_GroupMaster = MasterFinder <MasterDataGachaGroup> .Instance.Find((int)m_Master.gacha_group_id);

        if (m_Master.type == MasterDataDefineLabel.GachaType.STEP_UP)
        {
            m_StepMaster       = MasterDataUtil.GetMasterDataStepUpGachaFromGachaID(m_Master.fix_id);
            m_StepManageMaster = MasterDataUtil.GetCurrentStepUpGachaManageMaster(m_Master.fix_id);
        }

        uint startTimeU = 0;
        uint endTimeU   = 0;

        if (m_GroupMaster != null)
        {
            startTimeU = m_GroupMaster.sale_period_start;
            endTimeU   = m_GroupMaster.sale_period_end;
        }
        else
        {
            startTimeU = m_Master.timing_start;
            endTimeU   = m_Master.timing_end;
        }

        DateText = "";
        if (endTimeU != 0)
        {
            DateTime startTime = TimeUtil.GetDateTime(startTimeU);
            DateTime endTime   = TimeUtil.GetDateTime(endTimeU);
            endTime = endTime.SubtractAMinute();
            // 看板テキスト
            string kikanFormat = GameTextUtil.GetText("scratch_display1");
            DateText = string.Format(kikanFormat, startTime.ToString("yyyy/MM/dd(HH:mm)"), endTime.ToString("yyyy/MM/dd(HH:mm)"));
        }

        // 看板イメージ
        BoadImage = null;
        BoadAlpha = 0;
        if (m_Master.type == MasterDataDefineLabel.GachaType.STEP_UP)
        {
            // ステップアップスクラッチの場合は看板サイズ変更
            BoadHeight = 234;
        }

        // ラインナップボタンの設定
        setupLineupButton();

        // 詳細ボタンの表示・非表示
        m_DetailText = "";
        if (m_GroupMaster != null &&
            m_Master.type != MasterDataDefineLabel.GachaType.STEP_UP)
        {
            m_DetailText = MasterDataUtil.GetGachaText(EMASTERDATA_SERVER.GACHA_GROUP,
                                                       m_Master.gacha_group_id,
                                                       MasterDataDefineLabel.GachaTextRefType.DETAIL);
        }

        if (m_DetailText.IsNullOrEmpty() == false ||
            m_Master.type == MasterDataDefineLabel.GachaType.STEP_UP)
        {
            IsInfo = true;
        }
        else
        {
            IsInfo = false;
        }

        IsUsedTip       = false;
        IsViewMaxButton = true;

        updatePointText();

        // おまけの表示
        if (m_Master.type == MasterDataDefineLabel.GachaType.STEP_UP)
        {
            IsViewBonusLabel = (m_StepManageMaster.present_enable == MasterDataDefineLabel.BoolType.ENABLE);
            string presentName = "";
            int    presentNum  = 0;
            MasterDataPresent[] presentArray = MasterDataUtil.GetPresentMasterFromGroupID(m_StepManageMaster.present_group_id);
            if (presentArray.IsNullOrEmpty() == false)
            {
                presentName = MasterDataUtil.GetPresentName(presentArray[0]);
                presentNum  = MasterDataUtil.GetPresentCount(presentArray[0]);
            }

            string present_message = "「" + presentName + "」" + " ×" + presentNum;
            BonusText = string.Format(GameTextUtil.GetText("Gacha_Bonus"), present_message);
        }

        LoadBoadImage();
    }
示例#3
0
    void setup()
    {
        Records.Clear();

        string detailtext = "";

        m_GachaMaster = MasterFinder <MasterDataGacha> .Instance.Find((int)m_GachaId);

        MasterDataStepUpGacha _stepUpGachaMaster = MasterDataUtil.GetMasterDataStepUpGachaFromGachaID(m_GachaMaster.fix_id);

        if (_stepUpGachaMaster != null)
        {
            detailtext = MasterDataUtil.GetGachaText(EMASTERDATA_SERVER.STEP_UP_GACHA,
                                                     _stepUpGachaMaster.fix_id,
                                                     MasterDataDefineLabel.GachaTextRefType.DETAIL);
        }

        // TOP項目の作成
        StepUpDetailListContext top = new StepUpDetailListContext();

        top.Banner_url            = m_GachaMaster.url_img;
        top.DetailText            = detailtext;
        top.IsStep                = false;
        top.FinishLoadImageAction = () =>
        {
            m_LastUpdateCount = 5;
        };
        Records.Add(top);

        m_StepManageList = MasterFinder <MasterDataStepUpGachaManage> .Instance.SelectWhere("where gacha_id = ? ORDER BY step_num ASC", m_GachaId);

        // ステップ項目の作成
        if (m_StepManageList != null)
        {
            for (int i = 0; i < m_StepManageList.Count; ++i)
            {
                MasterDataStepUpGachaManage stepManage = m_StepManageList[i];

                detailtext = MasterDataUtil.GetGachaText(EMASTERDATA_SERVER.STEP_UP_GACHA_MANAGE,
                                                         stepManage.fix_id,
                                                         MasterDataDefineLabel.GachaTextRefType.DETAIL);

                StepUpDetailListContext item = new StepUpDetailListContext();
                item.StepManageID        = stepManage.fix_id;
                item.Banner_url          = stepManage.url_img;
                item.DetailText          = detailtext;
                item.LotExecText         = GameTextUtil.GetText("Gacha_LottNum") + stepManage.total_lot_exec.ToString();
                item.IsViewBornusLabel   = (stepManage.present_enable == MasterDataDefineLabel.BoolType.ENABLE);
                item.IsViewLineUpNormal  = (stepManage.normal1_assign_id > 0);
                item.IsViewLineUpRainbow = (stepManage.special_assign_id > 0);

                // ステップ数の表示
                if (stepManage.step_num == 0)
                {
                    // 初回ステップ
                    item.TitleText = GameTextUtil.GetText("Gacha_step_04");
                }
                else
                {
                    item.TitleText = string.Format(GameTextUtil.GetText("Gacha_StepNum"), stepManage.step_num);
                }

                // 値段の表示
                string priceText = GameTextUtil.GetText("Price_Chip");
                priceText += stepManage.price;

                // 有料チップの場合
                if (_stepUpGachaMaster.paid_tip_only == MasterDataDefineLabel.BoolType.ENABLE)
                {
                    priceText += GameTextUtil.GetText("Gacha_step_03");
                }
                item.PriceText = priceText;

                // おまけの表示
                MasterDataPresent[] presentArray = MasterDataUtil.GetPresentMasterFromGroupID(stepManage.present_group_id);
                string present_message           = "";
                if (presentArray != null)
                {
                    for (int present_count = 0; present_count < presentArray.Length; ++present_count)
                    {
                        if (present_count > 0)
                        {
                            present_message += "\n";
                        }

                        string presentName  = MasterDataUtil.GetPresentName(presentArray[present_count]);
                        int    presentCount = MasterDataUtil.GetPresentCount(presentArray[present_count]);

                        present_message += presentName + " ×" + presentCount;
                    }
                }
                item.BonusText = string.Format(GameTextUtil.GetText("Gacha_step_01"), present_message);

                //
                item.LinUpNormalButtonModel.OnClicked += () =>
                {
                    OpenLineUp(stepManage, stepManage.normal1_assign_id);
                };
                item.LinUpRainbowButtonModel.OnClicked += () =>
                {
                    OpenLineUp(stepManage, stepManage.special_assign_id);
                };
                item.FinishLoadImageAction = () =>
                {
                    m_LastUpdateCount = 5;
                };
                Records.Add(item);
            }
        }
    }
示例#4
0
    public void setup(MasterDataGacha gachaMaster,
                      MasterDataStepUpGachaManage stepUpManageMaster,
                      uint assgin_id,
                      bool usedTip,
                      string title)
    {
        if (gachaMaster == null)
        {
            return;
        }

        MasterDataGacha _master = gachaMaster;

        if (_master.type != MasterDataDefineLabel.GachaType.STEP_UP &&
            _master.rainbow_decide == assgin_id)
        {
            // 確定ラインナップの場合
            _master = MasterFinder <MasterDataGacha> .Instance.Find(_master.rainbow_decide);

            if (_master == null)
            {
                return;
            }
        }

        TitleText = title;

        uint startTimeU = _master.timing_start;
        uint endTimeU   = _master.timing_end;

        // 販売日程(終了日が無期限のときは表示しない)
        DateText = "";
        if (endTimeU != 0)
        {
            string   dateFormat = GameTextUtil.GetText("scratch_display2");
            DateTime startTime  = TimeUtil.GetDateTime(startTimeU);
            DateTime endTime    = TimeUtil.GetDateTime(endTimeU).SubtractAMinute();
            DateText = String.Format(dateFormat,
                                     startTime.ToString("yyyy/MM/dd(HH:mm)"),
                                     endTime.ToString("yyyy/MM/dd(HH:mm)"));
        }

        var guide_master_type = EMASTERDATA_SERVER.GACHA_GROUP;
        var gachatextreftype  = MasterDataDefineLabel.GachaTextRefType.NONE;

        uint gacha_fix_id = 0;
        uint _step_id     = 0;
        uint _assgin_id   = 0;

        if (_master.type == MasterDataDefineLabel.GachaType.STEP_UP)
        {
            guide_master_type = EMASTERDATA_SERVER.STEP_UP_GACHA;

            var _stepUpGachaMaster = MasterDataUtil.GetMasterDataStepUpGachaFromGachaID(_master.fix_id);
            if (_stepUpGachaMaster != null)
            {
                gacha_fix_id = _stepUpGachaMaster.fix_id;
            }
            else
            {
#if BUILD_TYPE_DEBUG
                string text = String.Format("StepUpGachaMaster.gacha_idに\n「{0}」が未定義です", _master.fix_id);
                DialogManager.Open1B_Direct("ScratchLineUpDialog",
                                            text,
                                            "common_button7", true, true).
                SetOkEvent(() =>
                {
                });
#endif
            }

            _step_id = stepUpManageMaster.fix_id;

            _assgin_id = assgin_id;

            if (stepUpManageMaster.normal1_assign_id == assgin_id)
            {
                gachatextreftype = MasterDataDefineLabel.GachaTextRefType.NOMAL1_RATE_URL;
            }
            else if (stepUpManageMaster.normal2_assign_id == assgin_id)
            {
                gachatextreftype = MasterDataDefineLabel.GachaTextRefType.NOMAL2_RATE_URL;
            }
            else if (stepUpManageMaster.special_assign_id == assgin_id)
            {
                gachatextreftype = MasterDataDefineLabel.GachaTextRefType.SPECIAL_RATE_URL;
            }

            if (gachatextreftype != MasterDataDefineLabel.GachaTextRefType.NONE)
            {
                m_ProbabilityUrl = MasterDataUtil.GetGachaText(EMASTERDATA_SERVER.STEP_UP_GACHA_MANAGE,
                                                               _step_id,
                                                               gachatextreftype);
            }
        }
        else
        {
            guide_master_type = EMASTERDATA_SERVER.GACHA_GROUP;
            gacha_fix_id      = _master.gacha_group_id;

            gachatextreftype = MainMenuParam.m_GachaRainbowDecide == assgin_id
                                ? MasterDataDefineLabel.GachaTextRefType.SPECIAL_RATE_URL
                                : MasterDataDefineLabel.GachaTextRefType.NOMAL1_RATE_URL;

            m_ProbabilityUrl = MasterDataUtil.GetGachaText(guide_master_type,
                                                           gacha_fix_id,
                                                           gachatextreftype);
        }

        //ガイドライン
        m_GuidLineText = MasterDataUtil.GetGachaText(guide_master_type,
                                                     gacha_fix_id,
                                                     MasterDataDefineLabel.GachaTextRefType.GUIDLINE);


        //確率URL
        if (m_ProbabilityUrl.Length > 0)
        {
            ProbabilityText = GameTextUtil.GetText("Gacha_step_05");
            IsProbability   = true;
        }
        else
        {
            IsProbability = false;
        }

        // ガイドラインボタン表示フラグ
        IsUsedTip = usedTip;

        // 排出ユニット一覧
        ServerDataUtilSend.SendPacketAPI_GetGachaLineup((int)_master.fix_id, _step_id, _assgin_id)
        .setSuccessAction(_data =>
        {
            SortList <LineUpListItemContex> tmpLineup = new SortList <LineUpListItemContex>();
            PacketStructGachaLineup[] lineup          = _data.GetResult <RecvGetGachaLineup>().result.gacha_assign_unit_list;
            for (int i = 0; i < lineup.Length; i++)
            {
                LineUpListItemContex newItem = new LineUpListItemContex(i, lineup[i]);
                //newItem.DidSelectItem += OnSelectItem;
                tmpLineup.Body.Add(newItem);
            }
            tmpLineup.AddSortInfo(SORT_PARAM.RATIO_UP, SORT_ORDER.DESCENDING);
            tmpLineup.AddSortInfo(SORT_PARAM.LIMITED, SORT_ORDER.DESCENDING);
            tmpLineup.AddSortInfo(SORT_PARAM.GROUP_ID, SORT_ORDER.ASCENDING);
            tmpLineup.AddSortInfo(SORT_PARAM.RARITY, SORT_ORDER.DESCENDING);
            tmpLineup.AddSortInfo(SORT_PARAM.ID, SORT_ORDER.ASCENDING);

            m_RecvGachaLineup = tmpLineup.Exec(SORT_OBJECT_TYPE.LINUP_LIST);

            scrollContent.Initialize(this);
        })
        .setErrorAction(_date =>
        {
            Close();
        })
        .SendStart();

        //BackKey設定
        AndroidBackKeyManager.Instance.StackPush(gameObject, OnCloseButton);
    }
示例#5
0
    // ダイアログ(特殊) ガチャラインナップ
    private void OnLineUp(Scratch.LineUp _type)
    {
        if (TutorialManager.IsExists)
        {
            MasterDataGacha isMaster = MasterFinder <MasterDataGacha> .Instance.Find((int)Context.lineupMaster[(int)_type]);

            if (isMaster == null)
            {
                return;
            }

            if (isMaster.fix_id != GlobalDefine.TUTORIAL_SCRATCH ||
                isMaster.gacha_group_id == 0)
            {
                return;
            }
        }

        string title = "";

        switch (_type)
        {
        case Scratch.LineUp.A:
            title = GameTextUtil.GetText("gacha_lineup_title1") + GameTextUtil.GetText("gacha_lineup_half1");
            break;

        case Scratch.LineUp.B:
            title = GameTextUtil.GetText("gacha_lineup_title1") + GameTextUtil.GetText("gacha_lineup_half2");
            break;

        case Scratch.LineUp.Normal:
            title = GameTextUtil.GetText("gacha_lineup_title1");
            break;

        case Scratch.LineUp.Rainbow:
            title = GameTextUtil.GetText("gacha_lineup_title2");
            break;

        default:
            break;
        }

        MasterDataStepUpGachaManage stepUpGachaManage = null;
        MasterDataGacha             master            = null;

        if (Context.gachaMaster.type == MasterDataDefineLabel.GachaType.STEP_UP)
        {
            stepUpGachaManage = MasterDataUtil.GetCurrentStepUpGachaManageMaster(Context.gachaMaster.fix_id);
            master            = Context.gachaMaster;
            // タイトルにステップ数追加
            if (stepUpGachaManage.step_num == 0)
            {
                // 初回ステップ
                title += GameTextUtil.GetText("gacha_lineup_step1");
            }
            else
            {
                title += string.Format(GameTextUtil.GetText("gacha_lineup_step2"), stepUpGachaManage.step_num);
            }
        }
        else
        {
            master = MasterFinder <MasterDataGacha> .Instance.Find((int)Context.lineupMaster[(int)_type]);
        }

        if (master == null)
        {
            return;
        }

        ScratchLineUpDialog lineupdialog = ScratchLineUpDialog.Create();

        lineupdialog.SetCamera(SceneObjReferMainMenu.Instance.m_MainMenuGroupCamera.GetComponent <Camera>());
        lineupdialog.setup(master, stepUpGachaManage, Context.lineupMaster[(int)_type], Context.IsUsedTip, title);

        SoundUtil.PlaySE(SEID.SE_MENU_OK);
    }
示例#6
0
    public static string GetGachaPlayText(int count, MasterDataGacha _master)
    {
        string _ret    = "";
        string payItem = "";
        uint   price   = (uint)(_master.price * count);

        MasterDataDefineLabel.BoolType paid_tip_only = _master.paid_tip_only;

        switch (_master.type)
        {
        case MasterDataDefineLabel.GachaType.NONE:
            //Money使用
            payItem = "Money";
            break;

        case MasterDataDefineLabel.GachaType.RARE:
        case MasterDataDefineLabel.GachaType.EVENT:
        case MasterDataDefineLabel.GachaType.TUTORIAL:
            // チップ使用
            payItem = GameTextUtil.GetText("common_text6");
            //有料チップ専用なら有料チップ数を設定
            if (paid_tip_only == MasterDataDefineLabel.BoolType.ENABLE)
            {
                payItem = GameTextUtil.GetText("common_text13");
            }
            break;

        case MasterDataDefineLabel.GachaType.NORMAL:
        case MasterDataDefineLabel.GachaType.LUNCH:
            // フレンドポイント使用
            payItem = GameTextUtil.GetText("common_text1");
            break;

        case MasterDataDefineLabel.GachaType.TICKET:
            break;

        case MasterDataDefineLabel.GachaType.EVENT_POINT:
            break;

        case MasterDataDefineLabel.GachaType.ITEM_POINT:
            // アイテムポイント使用
            payItem = MasterDataUtil.GetItemNameFromGachaMaster(_master);
            break;

        case MasterDataDefineLabel.GachaType.STEP_UP:
            MasterDataStepUpGacha stepMaster = MasterDataUtil.GetMasterDataStepUpGachaFromGachaID(_master.fix_id);
            paid_tip_only = stepMaster.paid_tip_only;

            // チップ使用
            payItem = GameTextUtil.GetText("common_text6");
            //有料チップ専用なら有料チップ数を設定
            if (paid_tip_only == MasterDataDefineLabel.BoolType.ENABLE)
            {
                payItem = GameTextUtil.GetText("common_text13");
            }
            break;

        default:
            break;
        }
        uint itemVal = 0;

        //--------------------------------
        // ガチャタイプにあわせて引ける回数を計算
        //--------------------------------
        switch (_master.type)
        {
        // 友情ガチャ
        case MasterDataDefineLabel.GachaType.NORMAL:
        {
            itemVal = UserDataAdmin.Instance.m_StructPlayer.have_friend_pt;
        }
        break;

        // レア
        case MasterDataDefineLabel.GachaType.RARE:
        // イベント(コラボ)
        case MasterDataDefineLabel.GachaType.EVENT:
        // チュートリアル
        case MasterDataDefineLabel.GachaType.TUTORIAL:
        // イベント2
        case MasterDataDefineLabel.GachaType.EVENT_2:
        {
            itemVal = UserDataAdmin.Instance.m_StructPlayer.have_stone;
            //有料チップ専用なら有料チップ数を設定
            if (paid_tip_only == MasterDataDefineLabel.BoolType.ENABLE)
            {
                itemVal = UserDataAdmin.Instance.m_StructPlayer.have_stone_pay;
            }
        }
        break;

        // ランチ
        case MasterDataDefineLabel.GachaType.LUNCH:
        {
            itemVal = 1;
        }
        break;

        case MasterDataDefineLabel.GachaType.EVENT_POINT:
        {
            itemVal = 1;
        }
        break;

        case MasterDataDefineLabel.GachaType.ITEM_POINT:
        {
            itemVal = UserDataAdmin.Instance.GetItemPoint(_master.cost_item_id);
        }
        break;

        // ステップアップ
        case MasterDataDefineLabel.GachaType.STEP_UP:
        {
            MasterDataStepUpGachaManage stepManageMaster = MasterDataUtil.GetCurrentStepUpGachaManageMaster(_master.fix_id);
            price   = stepManageMaster.price;
            itemVal = UserDataAdmin.Instance.m_StructPlayer.have_stone;
            //有料チップ専用なら有料チップ数を設定
            if (paid_tip_only == MasterDataDefineLabel.BoolType.ENABLE)
            {
                itemVal = UserDataAdmin.Instance.m_StructPlayer.have_stone_pay;
            }
        }
        break;
        }
        if (count == 1)
        {
            string mainFormat = GetText("sc146q_content1");
            _ret = string.Format(mainFormat, payItem, price, itemVal);
        }
        else
        {
            string mainFormat = GetText("sc147q_content");
            _ret = string.Format(mainFormat, payItem, price, itemVal, count);
        }

#if BUILD_TYPE_DEBUG
        if (DebugOption.Instance.disalbeDebugMenu == false)
        {
            _ret += "\n\r" + "\n\r<color=#FF0000>デバッグ表示</color>\n\r";
            _ret += "スクラッチID[ " + _master.fix_id + " ]";
        }
#endif

        return(_ret);
    }