Exemplo n.º 1
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);
            }
        }
    }
Exemplo n.º 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();
    }
Exemplo n.º 3
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);
    }