Example #1
0
    /// <summary>
    /// 特別ログインボーナスの表示
    /// </summary>
    void OnStartPeriodLogin()
    {
        m_CurrentLoginPeriodData = UserDataAdmin.Instance.m_StructPeriodLogin[m_CurrentPeriodIndex];
        if (m_CurrentLoginPeriodData == null)
        {
            LoginBonusFSM.Instance.SendFsmNextEvent();
        }
        else
        {
            m_IsExcecLoginBonus = true;

            LoginBonusDialog dialog = LoginBonusDialog.Create();

            AndroidBackKeyManager.Instance.StackPush(gameObject, () =>
            {
                dialog.OnClickBGPanel();
            });

            dialog.SetUpPeriodLoginList(m_CurrentLoginPeriodData);
            dialog.LoadResources(() =>
            {
                dialog.Show();
            });
            dialog.CloseAction = () =>
            {
                AndroidBackKeyManager.Instance.StackPop(gameObject);
                LoginBonusFSM.Instance.SendFsmNextEvent();
            };
        }

        ++m_CurrentPeriodIndex;
    }
Example #2
0
    /// <summary>
    /// 期間ログインボーナスリストの作成
    /// </summary>
    /// <param name="loginPeriodData"></param>
    public void SetUpPeriodLoginList(PacketStructPeriodLogin loginPeriodData)
    {
        m_LoginPeriodData = loginPeriodData;
        //------------------------------------------------
        //開始日
        //------------------------------------------------
        int nStartYear  = TimeUtil.GetDateTimeToYear(loginPeriodData.timing_start);
        int nStartMonth = TimeUtil.GetDateTimeToMonth(loginPeriodData.timing_start);
        int nStartDay   = TimeUtil.GetDateTimeToDay(loginPeriodData.timing_start);
        //int nStartHour = TimeUtil.GetDateTimeToHour(loginPeriodData.timing_start);
        //int nStartMin = 0;//分を設定する箇所は今の所無いので、0固定

        //------------------------------------------------
        //終了日(設定日時から-1分した日時に加工)
        //------------------------------------------------
        DateTime cEndEvent = DateTime.MinValue;

        if (loginPeriodData.timing_end > 0)
        {
            cEndEvent = TimeUtil.GetShowEventEndTime(loginPeriodData.timing_end);
        }

        int nEndYear  = 0;
        int nEndMonth = 0;
        int nEndDay   = 0;
        int nEndHour  = 0;
        int nEndMin   = 0;

        if (cEndEvent != DateTime.MinValue)
        {
            nEndYear  = cEndEvent.Year;
            nEndMonth = cEndEvent.Month;
            nEndDay   = cEndEvent.Day;
            nEndHour  = cEndEvent.Hour;
            nEndMin   = cEndEvent.Minute;
        }

        TitleText      = loginPeriodData.event_name;
        StartDateText  = string.Format(GameTextUtil.GetText("loginbonus_period_start"), nStartYear, nStartMonth, nStartDay);
        StartDateText += GameTextUtil.GetText("loginbonus_period_tilde");

        EndDateText = "";
        if (cEndEvent != DateTime.MinValue)
        {
            EndDateText = string.Format(GameTextUtil.GetText("loginbonus_period_end"), nEndYear, nEndMonth, nEndDay);
        }

        string detailText = "";

        if (loginPeriodData.period_login != null && loginPeriodData.period_login.IsRange((int)loginPeriodData.login_count - 1))
        {
            detailText = loginPeriodData.period_login[(int)loginPeriodData.login_count - 1].message;
        }

        m_RecordPanel.IsViewRecordList  = true;
        m_RecordPanel.DetailText        = detailText;
        m_RecordPanel.m_LoginBonusIndex = loginPeriodData.login_count - 1;

        for (int i = 0; i < loginPeriodData.period_login.Length; ++i)
        {
            MasterDataPeriodLoginConverted periodLoginMaster = loginPeriodData.period_login[i];

            LoginBonusRecordListContext record = new LoginBonusRecordListContext();

            record.present_ids = periodLoginMaster.present_ids;
            record.message     = periodLoginMaster.message;
            record.date_count  = periodLoginMaster.date_count;

            if (periodLoginMaster.present_ids.IsNullOrEmpty() == false)
            {
                int presentID = periodLoginMaster.present_ids[0];
                MainMenuUtil.GetPresentIcon(MasterDataUtil.GetPresentParamFromID((uint)presentID), sprite => {
                    record.IconImage = sprite;
                });
            }
            else
            {
                MainMenuUtil.GetPresentIcon(null, sprite => {
                    record.IconImage = sprite;
                });
            }

            record.SetPeriodLoginState(periodLoginMaster.date_count, loginPeriodData.login_count);

            record.DidSelectItem = OnSelectRecord;
            m_RecordPanel.Records.Add(record);
        }

#if BUILD_TYPE_DEBUG
        DebugDialogCheckNoPresent(m_RecordPanel.Records);
#endif
    }