public void SetData(MonthSignAwardVO vO) { _vip = transform.Find("VIP").gameObject; _day = transform.GetText("DayBg/Text"); _icon = transform.GetRawImage("AwardIcon"); _mask = transform.Find("Mask"); _retroactive = _mask.Find("Retroactive"); _noGet = _mask.Find("NotGet"); _alreadyGet = _mask.Find("AlreadyGet"); _curMayGet = _mask.Find("CurMayGet"); _num = transform.GetText("NumBg/Text"); foreach (var t in vO.Awards) { _icon.texture = ResourceManager.Load <Texture>(t.IconPath, ModuleConfig.MODULE_ACTIVITY, true); _num.text = t.Num.ToString(); } _day.text = vO.Id.ToString(); OnClick(vO); _vip.SetActive(vO.IsShowVipImage); }
private void MonthRetroactive(MonthSignAwardVO vO) { //先判断是否还有补签次数 var maxSignNum = _model.GetMonthSignBuysNum(); var curSignNum = _model.BuyCounts; if (curSignNum >= maxSignNum) { FlowText.ShowMessage(I18NManager.Get("Activity_Hint4")); //本月无剩余签到次数 return; } var pB = _model.GetMonthSignBuysRule(curSignNum); if (_window == null) { _window = PopupManager.ShowWindow <MonthRetroactiveWindow>("Activity/Prefabs/MonthRetroactiveWindow"); _window.SetData(pB.Gem, maxSignNum - curSignNum); _window.WindowActionCallback = evt => { if (evt == WindowEvent.Yes) { SendMonthSignBuyReq(vO); } }; } }
/// <summary> /// 初始化月签奖励 /// </summary> private void InitMonthSignAwards() { _monthSignAwards = new List <MonthSignAwardVO>(); int monthDays = 0; //月的天数 int index = _starDay - 1; //11号的下标索引 int toDayIdIndex = 0; var dt = DateUtil.GetTodayDt(); var curTimeStamp = ClientTimer.Instance.GetCurrentTimeStamp(); var sixTimeStamp = DateUtil.GetNotTimezoneTimeStamp(new DateTime(dt.Year, dt.Month, _starDay, 6, 0, 0)); if (curTimeStamp < sixTimeStamp) //自然日期小于11号的6点,是上个月 { var lastMonthDt = dt.AddMonths(-1); //获取上个月的DT monthDays = DateTime.DaysInMonth(lastMonthDt.Year, lastMonthDt.Month); //获取上个月的天数 Debug.LogError("上个月的天数monthDays===>" + monthDays); var dt1 = new DateTime(lastMonthDt.Year, lastMonthDt.Month, _starDay, 6, 0, 0); var dt2 = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second); var ts1 = new TimeSpan(dt1.Ticks); var ts2 = new TimeSpan(dt2.Ticks); var tsSub = ts1.Subtract(ts2).Duration(); toDayIdIndex = tsSub.Days; Debug.LogError("上个月toDayIdIndex===>" + toDayIdIndex); } else //自然日期>=11号是且大于11号早上6点,本月 { monthDays = DateTime.DaysInMonth(dt.Year, dt.Month); Debug.LogError("当月的天数monthDays===>" + monthDays); var dt1 = new DateTime(dt.Year, dt.Month, _starDay, 6, 0, 0); var dt2 = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second); var ts1 = new TimeSpan(dt1.Ticks); var ts2 = new TimeSpan(dt2.Ticks); var tsSub = ts1.Subtract(ts2).Duration(); toDayIdIndex = tsSub.Days; Debug.LogError("当月toDayIdIndex===>" + toDayIdIndex); } for (int i = 0; i < monthDays; i++) { var vo = new MonthSignAwardVO(_monthSignRule[index], i + 1); _monthSignAwards.Add(vo); index++; if (index >= _monthSignRule.Count) { index = 0; } } ToDayId = _monthSignAwards[toDayIdIndex].Id; Debug.LogError("ToDayId===>" + ToDayId); SetSignState(); }
public void UpdateMonthSignItemUI(MonthSignAwardVO vO, int dayId) { for (int i = 0; i < _parent.childCount; i++) { if (_parent.GetChild(i).name == dayId.ToString()) { _parent.GetChild(i).GetComponent <MonthSginAwardItem>().SetData(vO); break; } } //_parent.GetChild(id - 1).GetComponent<MonthSginAwardItem>().SetData(vO); }
public MonthSignAwardVO GetMonthSignAwardVO(int day) { MonthSignAwardVO vo = null; foreach (var t in _monthSignAwards) { if (t.DayId == day) { vo = t; break; } } return(vo); }
private void SendMonthSignBuyReq(MonthSignAwardVO vO) { MonthSignBuyReq req = new MonthSignBuyReq { Date = vO.DayId }; byte[] data = NetWorkManager.GetByteData(req); NetWorkManager.Instance.Send <MonthSignBuyRes>(CMD.ACTIVITY_MONTH_SING_BUY, data, res => { Debug.LogError("30补签回包数据:" + res.Awards); GlobalData.PlayerModel.UpdateUserMoney(res.UserMoney); RewardUtil.AddReward(res.Awards); foreach (var t in res.Awards) { RewardVo vo = new RewardVo(t); FlowText.ShowMessage(I18NManager.Get("Activity_Get", vo.Name, vo.Num)); } _model.UpdateUserMonthSignInfo(res.UserMonthSign); UpdateMonthSignAwards(res.UserMonthSign); }); }
private void OnClick(MonthSignAwardVO vO) { switch (vO.State) { case EveryDaySignState.Retroactive: SetState(_retroactive.gameObject.name); PointerClickListener.Get(_retroactive.gameObject).onClick = go => { EventDispatcher.TriggerEvent(EventConst.MonthRetroactive, vO); }; break; case EveryDaySignState.AlreadyGet: SetState(_alreadyGet.gameObject.name); break; case EveryDaySignState.NotGet: SetState(_noGet.gameObject.name); PointerClickListener.Get(_noGet.gameObject).onClick = go => { FlowText.ShowMessage(ClientData.GetItemDescById(vO.Awards[0].Id, vO.Awards[0].Resource).ItemDesc); }; break; case EveryDaySignState.CurMayGet: SetState(_curMayGet.gameObject.name); PointerClickListener.Get(_curMayGet.gameObject).onClick = go => { EventDispatcher.TriggerEvent(EventConst.MonthSigin, vO); }; break; } }
/// <summary> /// 发送签到请求 /// </summary> /// <param name="vO"></param> private void MonthSigin(MonthSignAwardVO vO) { NetWorkManager.Instance.Send <MonthSignRewardRes>(CMD.ACTIVITY_MONTH_SING_REWARD, null, MonthSiginSuccCallback); }
/// <summary> /// 是否显示月签红点 /// </summary> /// <returns></returns> private bool IsShowMonthSignRedDot() { bool isShow = false; var isOpenMonthSign = GlobalData.ActivityModel.GetActivityVo(ActivityType.ActivityMonthSignin) == null; if (isOpenMonthSign) { Debug.Log("MonthSign No Open"); Debug.Log("MonthSignRedDot===>" + isShow); return(isShow); } List <MonthSignAwardVO> awardVos = new List <MonthSignAwardVO>(); var monthSignRules = GlobalData.ActivityModel.BaseActivityRule.MonthSignRules; var userMonthSignInfo = GlobalData.ActivityModel.AllActivityInfo.UserMonthSign; int monthDays; //月天数 var starDay = GlobalData.ConfigModel.GetConfigByKey(GameConfigKey.MONTH_SIGN_RESET_DAY); //11号 int index = starDay - 1; int toDayIdIndex; var dt = DateUtil.GetTodayDt(); var lastMonthDt = dt.AddMonths(-1); //上个月的Dt var curTimeStamp = ClientTimer.Instance.GetCurrentTimeStamp(); var sixTimeStamp = DateUtil.GetNotTimezoneTimeStamp(new DateTime(dt.Year, dt.Month, starDay, 6, 0, 0)); //每月11号6点,跨月刷新点 if (curTimeStamp < sixTimeStamp) { monthDays = DateTime.DaysInMonth(lastMonthDt.Year, lastMonthDt.Month); toDayIdIndex = DurationDays(true, starDay, lastMonthDt, dt); } else { monthDays = DateTime.DaysInMonth(dt.Year, dt.Month); toDayIdIndex = DurationDays(false, starDay, lastMonthDt, dt); } for (int i = 0; i < monthDays; i++) { var vo = new MonthSignAwardVO(monthSignRules[index], i + 1); awardVos.Add(vo); index++; if (index >= monthSignRules.Count) { index = 0; } } Debug.LogError("toDayIdIndex===>" + toDayIdIndex); int toDayId = awardVos[toDayIdIndex].Id; Debug.LogError("toDayId===>" + toDayId); if (userMonthSignInfo == null) { isShow = true; Debug.LogError("userMonthSignInfo is Null ===>" + isShow); return(isShow); } else { var dates = userMonthSignInfo.Dates; foreach (var t in awardVos) { if (t.Id <= toDayId) { if (!dates.Contains(t.DayId) && t.Id == toDayId) { isShow = true; Debug.Log("MonthSignRedDot===>" + isShow); return(isShow); } } } } isShow = IsShowMonthSignAccumulativeRedDot(); Debug.Log("MonthSignRedDot===>" + isShow); return(isShow); }