示例#1
0
    /// <summary>
    /// その他アイテムの表示
    /// </summary>
    void OnStartOthersItem()
    {
        // 本文
        List <string> mainTextList = new List <string>();

        // その他の入手アイテム
        long[] othersIDList = UserDataAdmin.Instance.m_StructOthersPresent.serial_numbers;
        List <MasterDataPresent> messageList = new List <MasterDataPresent>();
        List <MasterDataPresent> othersList  = new List <MasterDataPresent>();

        if (othersIDList != null)
        {
            for (int i = 0; i < othersIDList.Length; i++)
            {
                PacketStructPresent tmp           = UserDataAdmin.Instance.SearchPresent(othersIDList[i]);
                MasterDataPresent   presentMaster = MasterDataUtil.ConvertStructPresentToMasterData(tmp);
                if (presentMaster != null)
                {
                    switch (presentMaster.present_type)
                    {
                    case MasterDataDefineLabel.PresentType.MSG:
                    case MasterDataDefineLabel.PresentType.NOTICE:
                        messageList.Add(presentMaster);
                        break;

                    default:
                        othersList.Add(presentMaster);
                        break;
                    }
                }
            }
        }

        // その他の入手アイテムが1個以上ある場合は表示する
        if (0 < othersList.Count || 0 < MainMenuParam.m_LoginFriendPointGet)
        {
            // タイトル
            string othreText = string.Format(GameTextUtil.GetText("pp4q_title_3"));

            // プレゼントの初回表示
            if (0 < othersList.Count)
            {
                // アイテム
                foreach (var presentMaster in othersList)
                {
                    string text = string.Format(GameTextUtil.GetText("pp4q_content_2"),
                                                MasterDataUtil.GetPresentName(presentMaster),
                                                MasterDataUtil.GetPresentCount(presentMaster));

                    othreText += "\n" + text;
                }
            }

            // 運営からのお知らせ
            if (messageList != null && messageList.Count() > 0)
            {
                var    presentMaster = messageList.First();
                string text          = string.Format(GameTextUtil.GetText("pp4q_content_2"),
                                                     MasterDataUtil.GetPresentName(presentMaster),
                                                     messageList.Count());

                othreText += "\n" + text;
            }

            // 助っ人経由で入手した友情ポイント
            if (0 < MainMenuParam.m_LoginFriendPointGet)
            {
                // {0}人の助っ人をしました。友情ポイント×{1}
                string text = string.Format(GameTextUtil.GetText("pp4q_content_1"),
                                            MainMenuParam.m_LoginFriendHelpCt,    //!< ログイン情報:フレンド:助っ人として助けた人数
                                            MainMenuParam.m_LoginFriendPointGet); //!< ログイン情報:フレンド:フレンドポイント:今回取得分
                othreText += "\n" + text;
            }

            mainTextList.Add(othreText);
        }

        if (mainTextList.IsNullOrEmpty() == true)
        {
            LoginBonusFSM.Instance.SendFsmNextEvent();
        }
        else
        {
            // 本文の連結
            string MainText = string.Join("\n\n", mainTextList.ToArray());

            // ダイアログ設定
            Dialog newDialog = Dialog.Create(DialogType.DialogScroll);
            newDialog.SetDialogText(DialogTextType.Title, GameTextUtil.GetText("pp4q_title_0"));
            newDialog.SetTextAlignment(DialogTextType.MainText, TMPro.TextAlignmentOptions.Center);
            newDialog.SetDialogText(DialogTextType.MainText, MainText);
            newDialog.SetDialogText(DialogTextType.OKText, GameTextUtil.GetText("common_button1"));
            newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() =>
            {
                LoginBonusFSM.Instance.SendFsmNextEvent();
            }));

            // ダイアログ表示
            newDialog.Show();
        }
    }