/// <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; }
/// <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 }