Exemplo n.º 1
0
    public void addScoreInfo(PacketStructUserScoreInfo scoreInfo, MasterDataScoreEvent scoreEventMaster)
    {
        ScoreEventContext scoreEvent = new ScoreEventContext();

        //スコア情報
        scoreEvent.ScoreInfo = scoreInfo;
        //タイトル
        scoreEvent.Title = scoreEventMaster.title;
        //期間
        string timeFormat = GameTextUtil.GetText("score_time_format");

        if (TimeEventManager.Instance.ChkEventActive(scoreEventMaster.event_id) == true)
        {
            //開催中
            MasterDataEvent eventData = MasterDataUtil.GetMasterDataEventFromID(scoreEventMaster.event_id);
            DateTime        startTime = TimeUtil.GetDateTime(eventData.timing_start);
            if (eventData.timing_end != 0)
            {
                DateTime endTime = TimeUtil.GetDateTime(eventData.timing_end);
                endTime         = endTime.SubtractAMinute();
                scoreEvent.Time = string.Format(GameTextUtil.GetText("score_period"), startTime.ToString(timeFormat), endTime.ToString(timeFormat));
            }
            else
            {
                //終了期限なし
                scoreEvent.Time = string.Format(GameTextUtil.GetText("score_period_infinite"), startTime.ToString(timeFormat), "");
            }
            scoreEvent.IsTimeEnd = false;
        }
        else
        {
            //イベント終了
            if (scoreEventMaster.receiving_end != 0)
            {
                DateTime endTime = TimeUtil.GetDateTime(scoreEventMaster.receiving_end);
                endTime = endTime.SubtractAMinute();
                string kikanFormat = GameTextUtil.GetText("Score_period_01");
                scoreEvent.TimeEnd = string.Format(kikanFormat, endTime.ToString(timeFormat));
            }
            else
            {
                scoreEvent.TimeEnd = GameTextUtil.GetText("Score_period_02");
            }
            scoreEvent.IsTimeEnd = true;
        }
        //エリア情報
        scoreEvent.AreaMessage = GameTextUtil.GetText("score_notice");
        //ハイスコア
        scoreEvent.HiScoreLabel = GameTextUtil.GetText("score_subtitle_highscore");
        scoreEvent.HiScore      = string.Format(GameTextUtil.GetText("score_entity_01"), scoreInfo.hi_score);
        scoreEvent.HiScorePt    = GameTextUtil.GetText("score_entity_02");
        //累積スコア
        scoreEvent.TotalScoreLabel = GameTextUtil.GetText("score_subtitle_cumulative");;
        scoreEvent.TotalScore      = string.Format(GameTextUtil.GetText("score_entity_01"), scoreInfo.total_score);
        scoreEvent.TotalScorePt    = GameTextUtil.GetText("score_entity_02");
        //報酬情報更新
        updateScoreReward(scoreEvent, scoreInfo);

        //アイコン
        MasterDataPresent imagePresent = null;

        if (scoreEventMaster.image_present_id != 0)
        {
            imagePresent = MasterDataUtil.GetPresentParamFromID(scoreEventMaster.image_present_id);
        }
        if (imagePresent != null)
        {
            MainMenuUtil.GetPresentIcon(imagePresent, (sprite) =>
            {
                scoreEvent.IconImage = sprite;
            });
        }
        else
        {
            UnitIconImageProvider.Instance.Get(
                1,
                (sprite) =>
            {
                scoreEvent.IconImage = sprite;
            });
        }

        scoreEvent.DidSelectItem = OnSelectItem;

        EventList.Add(scoreEvent);
    }
Exemplo n.º 2
0
    private void openScoreInfo()
    {
        if (m_ScoreDialog != null ||
            ServerApi.IsExists)
        {
            return;
        }

        SoundUtil.PlaySE(SEID.SE_MENU_OK);

        m_ScoreDialog = ScoreEventDialog.Create(SceneObjReferMainMenu.Instance.m_MainMenuGroupCamera.GetComponent <Camera>());

        int[] event_ids = new int[scoreEventList.Count];
        for (int i = 0; i < scoreEventList.Count; i++)
        {
            event_ids[i] = (int)scoreEventList[i].event_id;
        }
        ServerDataUtilSend.SendPacketAPI_GetUserScoreInfo(event_ids)
        .setSuccessAction((data) =>
        {
            RecvGetUserScoreInfo scoreInfo = data.GetResult <RecvGetUserScoreInfo>();
            if (scoreInfo != null &&
                scoreInfo.result != null &&
                scoreInfo.result.score_infos != null)
            {
                for (int i = 0; i < scoreInfo.result.score_infos.Length; i++)
                {
                    PacketStructUserScoreInfo Info = scoreInfo.result.score_infos[i];
                    if (Info == null)
                    {
                        continue;
                    }

                    MasterDataScoreEvent scoreEventMaster = scoreEventList.Find((m) => m.event_id == Info.event_id);
                    if (scoreEventMaster == null)
                    {
                        continue;
                    }

                    m_ScoreDialog.addScoreInfo(Info, scoreEventMaster);
                }


                bool isTutorial = (LocalSaveManagerRN.Instance.GetIsShowTutorialDialog(TutorialDialog.FLAG_TYPE.SCORE) == false);
                if (isTutorial)
                {
#if BUILD_TYPE_DEBUG
                    Debug.LogError(string.Format("チュートリアルを表示する FLAG_TYPE:{0}", TutorialDialog.FLAG_TYPE.SCORE.ToString()));
#endif
                    TutorialDialog.Create().SetTutorialType(TutorialDialog.FLAG_TYPE.SCORE).Show(() =>
                    {
                        isTutorial = false;
                    });
                }

                m_HomeMenu.IsViewScoreInfo = false;
                m_ScoreDialog.Show(() =>
                {
                    m_ScoreDialog = null;
                    m_HomeMenu.IsViewScoreInfo = true;
                });
            }
            else
            {
                DestroyObject(m_ScoreDialog.gameObject);
                m_ScoreDialog = null;

                Dialog errorDialog = Dialog.Create(DialogType.DialogOK);
                errorDialog.SetDialogText(DialogTextType.Title, "警告");
                errorDialog.SetDialogText(DialogTextType.MainText, "スコアイベントは開催されていません。");
                errorDialog.SetDialogText(DialogTextType.OKText, "閉じる");
                errorDialog.SetDialogEvent(DialogButtonEventType.OK, () =>
                {
                    m_HomeMenu.IsViewScoreInfo = false;
                });
                errorDialog.Show();
            }
        })
        .setErrorAction((data) =>
        {
            DestroyObject(m_ScoreDialog.gameObject);
            m_ScoreDialog = null;
        })
        .SendStart();
    }